diff --git a/.clangd b/.clangd index 82ee5628b0..6133ae7229 100644 --- a/.clangd +++ b/.clangd @@ -1,33 +1,4 @@ CompileFlags: - Add: - [ - -Wno-unknown-attributes, - -Wno-maybe-uninitialized, - -Wno-unknown-warning-option, - -Wno-pointer-to-int-cast, - -Wno-int-to-void-pointer-cast, - -DPROGMEM=, - ] - Remove: - [ - -W*, - -mmcu=*, - -mcpu=*, - -mfpu=*, - -mfloat-abi=*, - -mno-unaligned-access, - -mno-thumb-interwork, - -mcall-prologues, - -D__has_include*, - -mlra, - ] - Compiler: clang -Diagnostics: - UnusedIncludes: None - Suppress: - [ - asm_invalid_output_constraint, - asm_invalid_input_constraint, - invalid_asm_value_for_constraint, - anyx86_interrupt_attribute, - ] + Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues] + Compiler: clang diff --git a/.editorconfig b/.editorconfig index 692a84da61..3a537d01b2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,8 +11,7 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true - # To match GitHub Actions formatting -[*.{yaml,yml}] +[{*.yaml,*.yml}] # To match GitHub Actions formatting indent_size = 2 [*.md] diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3e32f4d994..a5d185e1dd 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -38,4 +38,4 @@ body: - type: textarea attributes: label: Additional Context - description: Add any other relevant information about the problem here. + description: Add any other relevant information about the problem here. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 868237d959..d402488d40 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,6 @@ + ## Description @@ -14,7 +15,7 @@ - [ ] New feature - [ ] Enhancement/optimization - [ ] Keyboard (addition or update) -- [ ] Keymap/layout (addition or update) +- [ ] Keymap/layout/userspace (addition or update) - [ ] Documentation ## Issues Fixed or Closed by This PR diff --git a/.github/labeler.yml b/.github/labeler.yml index 82f9672bb7..270cd1a813 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -54,7 +54,3 @@ dd: - data/constants/** - data/mappings/** - data/schemas/** -community_module: - - changed-files: - - any-glob-to-any-file: - - modules/** diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml index cdf6349878..db78f16112 100644 --- a/.github/workflows/api.yml +++ b/.github/workflows/api.yml @@ -25,7 +25,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 1 persist-credentials: false diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index a2c6a104a8..b4465277b0 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -15,7 +15,6 @@ on: - quantum/**/* - tests/**/* - tmk_core/**/* - - lib/python/**/* - util/**/* - Makefile - '*.mk' @@ -28,7 +27,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index 6cefd58901..ddc7cb10d1 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -6,13 +6,13 @@ permissions: on: push: - branches: [master, develop, xap] + branches: [master, develop] workflow_dispatch: inputs: branch: type: choice description: "Branch to build" - options: [master, develop, xap] + options: [master, develop] env: # https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits @@ -45,14 +45,14 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v4 - name: Determine concurrency id: generate_slice_length run: | target_count=$( { qmk find -km default 2>/dev/null - qmk find -km xap 2>/dev/null + # qmk find -km xap 2>/dev/null } | sort | uniq | wc -l) slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution echo "slice_length=$slice_length" >> $GITHUB_OUTPUT @@ -63,7 +63,8 @@ jobs: strategy: fail-fast: false matrix: - keymap: [default, xap] + keymap: [default] + # keymap: [default, xap] uses: ./.github/workflows/ci_build_major_branch_keymap.yml with: branch: ${{ inputs.branch || github.ref_name }} @@ -82,12 +83,12 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v4 with: pattern: firmware-* path: . diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index f5533cf07a..2e0f3036a3 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -37,7 +37,7 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v4 - name: Generate build targets id: generate_targets @@ -62,7 +62,7 @@ jobs: echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT - name: Upload targets json - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v4 with: name: targets-${{ inputs.keymap }} path: targets.json @@ -89,10 +89,10 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v4 - name: Get target definitions - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v4 with: name: targets-${{ inputs.keymap }} path: . @@ -112,7 +112,7 @@ jobs: qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed - name: Upload binaries - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v4 with: name: firmware-${{ inputs.keymap }}-${{ matrix.target }} if-no-files-found: ignore @@ -136,17 +136,17 @@ jobs: steps: - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v4 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v4 with: pattern: firmware-${{ inputs.keymap }}-* path: . merge-multiple: true - name: Upload all firmwares - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v4 with: name: firmware-${{ inputs.keymap }} if-no-files-found: ignore diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index fc24c6b366..77b5bfe073 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -24,7 +24,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml index 5c046b8f64..afcda1fe98 100644 --- a/.github/workflows/develop_update.yml +++ b/.github/workflows/develop_update.yml @@ -15,7 +15,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fe5d6027e2..7f588fda60 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.4 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml index fc33f883a8..283a255342 100644 --- a/.github/workflows/feature_branch_update.yml +++ b/.github/workflows/feature_branch_update.yml @@ -21,7 +21,7 @@ jobs: - riot steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index be6617e2b2..74c518fe05 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -10,7 +10,6 @@ on: - 'lib/arm_atsam/**' - 'lib/lib8tion/**' - 'lib/python/**' - - 'modules/**' - 'platforms/**' - 'quantum/**' - 'tests/**' @@ -26,7 +25,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -36,7 +35,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v47 + uses: tj-actions/changed-files@v45 with: use_rest_api: true diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index 74a42669d6..ea60fc95b4 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -39,7 +39,7 @@ jobs: qmk format-text -a git diff - - uses: rlespinasse/github-slug-action@v5 + - uses: rlespinasse/github-slug-action@v3.x - name: Become QMK Bot run: | @@ -47,7 +47,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v6 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 0e9f29908e..2dc354dda2 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -10,4 +10,4 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v6 + - uses: actions/labeler@v5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7d4ff0a977..829ca6392c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -27,7 +27,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v47 + uses: tj-actions/changed-files@v45 with: use_rest_api: true diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml index 06759102cc..a31526084f 100644 --- a/.github/workflows/regen.yml +++ b/.github/workflows/regen.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 - name: Run qmk generators run: | diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 4798e86c59..0f01411141 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -19,14 +19,14 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 - name: Run qmk generators run: | util/regen.sh git diff - - uses: rlespinasse/github-slug-action@v5 + - uses: rlespinasse/github-slug-action@v3.x - name: Become QMK Bot run: | @@ -34,7 +34,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v6 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 25649ce943..ce9bd0f316 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -45,7 +45,7 @@ jobs: stale-pr-label: stale days-before-pr-stale: 45 days-before-pr-close: 30 - exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware + exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold stale-pr-message: > Thank you for your contribution! diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 7ab9969242..a834053a76 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -26,7 +26,7 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 with: submodules: recursive - name: Install dependencies diff --git a/.gitignore b/.gitignore index 6ec26d3876..c3f2f063cd 100644 --- a/.gitignore +++ b/.gitignore @@ -64,7 +64,6 @@ build/ cmake-build-debug CMakeLists.txt *.pdf -*.zip # Let these ones be user specific, since we have so many different configurations *.code-workspace @@ -95,11 +94,6 @@ tags *.mpeg *.ttf *.otf -# Un-ignore limited image file formats in docs -!docs/public/**.gif -!docs/public/**.jpg -!docs/public/**.jpeg -!docs/public/**.png # Things Travis sees /.vs @@ -124,5 +118,4 @@ compile_commands.json # VIA(L) files that don't belong in QMK repo via*.json -/keyboards/**/keymaps/via/* /keyboards/**/keymaps/vial/* diff --git a/.vscode/settings.json b/.vscode/settings.json index c04ea51de1..f369ecb174 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,13 +10,6 @@ "**/*.uf2": true }, "files.associations": { - // QMK Filetypes - "keyboard.json": "jsonc", - "info.json": "jsonc", - "keymap.json": "jsonc", - "qmk.json": "jsonc", - "qmk_module.json": "jsonc", - // Standard filetypes "*.h": "c", "*.c": "c", "*.inc": "c", @@ -35,23 +28,7 @@ "[json]": { "editor.formatOnSave": false }, - "clangd.arguments": ["--header-insertion=never"], - "json.schemas": [ - { - "fileMatch": ["qmk.json"], - "url": "./data/schemas/user_repo_v1_1.jsonschema" - }, - { - "fileMatch": ["qmk_module.json"], - "url": "./data/schemas/community_module.jsonschema" - }, - { - "fileMatch": ["keyboard.json", "info.json"], - "url": "./data/schemas/keyboard.jsonschema" - }, - { - "fileMatch": ["keymap.json"], - "url": "./data/schemas/keymap.jsonschema" - } + "clangd.arguments": [ + "--header-insertion=never" ] } diff --git a/Doxyfile b/Doxyfile index f8c60f5f84..42f2e70c0e 100644 --- a/Doxyfile +++ b/Doxyfile @@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \ RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = */protocol/arm_atsam/* EXCLUDE_SYMBOLS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * diff --git a/Makefile b/Makefile index 5bb4f0d8eb..5fcd6bbf0f 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,6 @@ ifeq ($(ROOT_DIR),) endif include paths.mk -include $(BUILDDEFS_PATH)/support.mk TEST_OUTPUT_DIR := $(BUILD_DIR)/test ERROR_FILE := $(BUILD_DIR)/error_occurred @@ -114,29 +113,6 @@ endef # Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND) -# As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional -# resolution of keyboard_aliases.hjson for provided rule -define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB - # Split on ":", padding with empty strings to avoid indexing issues - TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE)) - TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE)) - - TOKEN1:=$$(shell $(QMK_BIN) resolve-alias --allow-unknown $$(TOKEN1)) - - FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1)) - ifneq ($$(FOUNDx),) - RULE := $$(TOKENr) - RULE_FOUND := true - MATCHED_ITEM := $$(TOKEN1) - else - RULE_FOUND := false - MATCHED_ITEM := - endif -endef - -# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST_KB -TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND) - define ALL_IN_LIST_LOOP OLD_RULE$1 := $$(RULE) $$(eval $$(call $1,$$(ITEM$1))) @@ -162,7 +138,7 @@ define PARSE_RULE $$(eval $$(call PARSE_TEST)) # If the rule starts with the name of a known keyboard, then continue # the parsing from PARSE_KEYBOARD - else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true) + else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true) KEYBOARD_RULE=$$(MATCHED_ITEM) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) else @@ -194,6 +170,17 @@ define PARSE_KEYBOARD # include the correct makefile to determine the actual name of it CURRENT_KB := $1 + # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB)) + + DEFAULT_FOLDER := $$(CURRENT_KB) + + # We assume that every rules.mk will contain the full default value + $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk) + ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB)) + $$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk) + endif + CURRENT_KB := $$(DEFAULT_FOLDER) + # 5/4/3/2/1 KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB) KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1))) @@ -255,7 +242,7 @@ endef # if we are going to compile all keyboards, match the rest of the rule # for each of them define PARSE_ALL_KEYBOARDS - $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards))) + $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults))) endef # Prints a list of all known keymaps for the given keyboard @@ -447,7 +434,7 @@ git-submodules: git-submodule .PHONY: list-keyboards list-keyboards: - $(QMK_BIN) list-keyboards | tr '\n' ' ' + $(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' ' .PHONY: list-tests list-tests: @@ -455,7 +442,7 @@ list-tests: .PHONY: generate-keyboards-file generate-keyboards-file: - $(QMK_BIN) list-keyboards + $(QMK_BIN) list-keyboards --no-resolve-defaults .PHONY: clean clean: diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 82bb9387a6..63f9fea915 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -21,10 +21,10 @@ $(TEST_OUTPUT)_SRC := \ $(SRC) \ $(QUANTUM_PATH)/keymap_introspection.c \ tests/test_common/matrix.c \ - tests/test_common/pointing_device_driver.c \ tests/test_common/test_driver.cpp \ tests/test_common/keyboard_report_util.cpp \ - tests/test_common/mouse_report_util.cpp \ + tests/test_common/keycode_util.cpp \ + tests/test_common/keycode_table.cpp \ tests/test_common/test_fixture.cpp \ tests/test_common/test_keymap_key.cpp \ tests/test_common/test_logger.cpp \ diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 640dedc31e..ccd7e50b05 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -11,7 +11,6 @@ endif .DEFAULT_GOAL := all include paths.mk -include $(BUILDDEFS_PATH)/support.mk include $(BUILDDEFS_PATH)/message.mk # Helper to add defines with a 'QMK_' prefix @@ -98,44 +97,20 @@ endif # Pull in rules.mk files from all our subfolders --include $(KEYBOARD_PATH_5)/rules.mk --include $(KEYBOARD_PATH_4)/rules.mk --include $(KEYBOARD_PATH_3)/rules.mk --include $(KEYBOARD_PATH_2)/rules.mk --include $(KEYBOARD_PATH_1)/rules.mk - -# Create dependencies on DD keyboard config - structure validated elsewhere -DD_CONFIG_FILES := -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","") + include $(KEYBOARD_PATH_5)/rules.mk endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","") + include $(KEYBOARD_PATH_4)/rules.mk endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","") + include $(KEYBOARD_PATH_3)/rules.mk endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","") + include $(KEYBOARD_PATH_2)/rules.mk endif -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json -endif - -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") + include $(KEYBOARD_PATH_1)/rules.mk endif MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) @@ -211,10 +186,7 @@ endif # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") ifneq ("$(wildcard $(KEYMAP_C))", "") - # Allow a separately-found keymap.c next to keymap.json -- the keymap.c - # generator will include the other keymap.c in the process, if supplied. - OTHER_KEYMAP_C := $(KEYMAP_C) - OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\" + $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.) endif KEYMAP_PATH := $(KEYMAP_JSON_PATH) @@ -222,27 +194,25 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h - ifeq ($(OTHER_KEYMAP_C),) - # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c) - -include $(KEYMAP_PATH)/rules.mk - endif + # Load the keymap-level rules.mk if exists + -include $(KEYMAP_PATH)/rules.mk # Load any rules.mk content from keymap.json INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) include $(INFO_RULES_MK) # Add rules to generate the keymap files - indentation here is important -$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) +$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)) @$(BUILD_CMD) -$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) +$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON)) @$(BUILD_CMD) -$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) +$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-keymap-h --quiet --output $(INTERMEDIATE_OUTPUT)/src/keymap.h $(KEYMAP_JSON)) @$(BUILD_CMD) @@ -251,44 +221,6 @@ generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/ endif -# Community modules -COMMUNITY_RULES_MK = $(shell $(QMK_BIN) generate-community-modules-rules-mk -kb $(KEYBOARD) --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/community_rules.mk $(KEYMAP_JSON)) -include $(COMMUNITY_RULES_MK) - -$(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) - @$(BUILD_CMD) - -$(INTERMEDIATE_OUTPUT)/src/community_modules.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-community-modules-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(KEYMAP_JSON)) - @$(BUILD_CMD) - -$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(KEYMAP_JSON)) - @$(BUILD_CMD) - -$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON)) - @$(BUILD_CMD) - -$(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-led-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(KEYMAP_JSON)) - @$(BUILD_CMD) - -$(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-rgb-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(KEYMAP_JSON)) - @$(BUILD_CMD) - -SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c - -generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc - include $(BUILDDEFS_PATH)/converters.mk # Generate the board's version.h file. @@ -378,14 +310,6 @@ endif # Find all of the config.h files and add them to our CONFIG_H define. CONFIG_H := - -define config_h_community_module_appender - ifneq ("$(wildcard $(1)/config.h)","") - CONFIG_H += $(1)/config.h - endif -endef -$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module)))) - ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","") CONFIG_H += $(KEYBOARD_PATH_5)/config.h endif @@ -403,14 +327,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","") endif POST_CONFIG_H := - -define post_config_h_community_module_appender - ifneq ("$(wildcard $(1)/post_config.h)","") - POST_CONFIG_H += $(1)/post_config.h - endif -endef -$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_config_h_community_module_appender,$(module)))) - ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","") POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h endif @@ -427,6 +343,40 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","") POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h endif +# Create dependencies on DD keyboard config - structure validated elsewhere +DD_CONFIG_FILES := +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json +endif + +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json +endif + CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c @@ -491,18 +441,21 @@ ifneq ("$(CONVERTER)","") endif # Pull in post_rules.mk files from all our subfolders --include $(KEYBOARD_PATH_1)/post_rules.mk --include $(KEYBOARD_PATH_2)/post_rules.mk --include $(KEYBOARD_PATH_3)/post_rules.mk --include $(KEYBOARD_PATH_4)/post_rules.mk --include $(KEYBOARD_PATH_5)/post_rules.mk - -define post_rules_mk_community_module_includer - ifneq ("$(wildcard $(1)/post_rules.mk)","") - include $(1)/post_rules.mk - endif -endef -$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module)))) +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_rules.mk)","") + include $(KEYBOARD_PATH_1)/post_rules.mk +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_rules.mk)","") + include $(KEYBOARD_PATH_2)/post_rules.mk +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_rules.mk)","") + include $(KEYBOARD_PATH_3)/post_rules.mk +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_rules.mk)","") + include $(KEYBOARD_PATH_4)/post_rules.mk +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","") + include $(KEYBOARD_PATH_5)/post_rules.mk +endif ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") CONFIG_H += $(KEYMAP_PATH)/config.h diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk index ccdad1b4e7..d0de63c6f5 100644 --- a/builddefs/build_test.mk +++ b/builddefs/build_test.mk @@ -7,7 +7,6 @@ endif OPT = g include paths.mk -include $(BUILDDEFS_PATH)/support.mk include $(BUILDDEFS_PATH)/message.mk TARGET=test/$(TEST_OUTPUT) @@ -62,7 +61,6 @@ include $(BUILDDEFS_PATH)/common_features.mk include $(BUILDDEFS_PATH)/generic_features.mk include $(PLATFORM_PATH)/common.mk include $(TMK_PATH)/protocol.mk -include $(QUANTUM_PATH)/battery/tests/rules.mk include $(QUANTUM_PATH)/debounce/tests/rules.mk include $(QUANTUM_PATH)/encoder/tests/rules.mk include $(QUANTUM_PATH)/os_detection/tests/rules.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 1da13997b5..498614dd26 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -28,11 +28,6 @@ QUANTUM_SRC += \ $(QUANTUM_DIR)/sync_timer.c \ $(QUANTUM_DIR)/logging/debug.c \ $(QUANTUM_DIR)/logging/sendchar.c \ - $(QUANTUM_DIR)/process_keycode/process_default_layer.c \ - $(QUANTUM_DIR)/process_keycode/process_oneshot.c \ - $(QUANTUM_DIR)/process_keycode/process_quantum.c \ - -include $(QUANTUM_DIR)/nvm/rules.mk VPATH += $(QUANTUM_DIR)/logging # Fall back to lib/printf if there is no platform provided print @@ -134,13 +129,13 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) MOUSE_ENABLE := yes VPATH += $(QUANTUM_DIR)/pointing_device SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c + SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom) SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]')) endif OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER)) - OPT_DEFS += -DPOINTING_DEVICE_DRIVER_NAME=$(strip $(POINTING_DEVICE_DRIVER)) ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) @@ -173,82 +168,84 @@ endif VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash EEPROM_DRIVER ?= vendor -ifneq ($(strip $(EEPROM_DRIVER)),none) - ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) +ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) - else - OPT_DEFS += -DEEPROM_ENABLE - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom - COMMON_VPATH += $(DRIVER_PATH)/eeprom - COMMON_VPATH += $(PLATFORM_COMMON_DIR) - ifeq ($(strip $(EEPROM_DRIVER)), custom) - # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM - SRC += eeprom_driver.c - else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) - # Wear-leveling EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - else ifeq ($(strip $(EEPROM_DRIVER)), i2c) - # External I2C EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C - I2C_DRIVER_REQUIRED = yes - SRC += eeprom_driver.c eeprom_i2c.c - else ifeq ($(strip $(EEPROM_DRIVER)), spi) - # External SPI EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI - SPI_DRIVER_REQUIRED = yes - SRC += eeprom_driver.c eeprom_spi.c - else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) - # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - COMMON_VPATH += $(DRIVER_PATH)/flash - SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c - else ifeq ($(strip $(EEPROM_DRIVER)), transient) - # Transient EEPROM implementation -- no data storage but provides runtime area for it - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT - SRC += eeprom_driver.c eeprom_transient.c - else ifeq ($(strip $(EEPROM_DRIVER)), vendor) - # Vendor-implemented EEPROM - OPT_DEFS += -DEEPROM_VENDOR - ifeq ($(PLATFORM),AVR) - # Automatically provided by avr-libc, nothing required - else ifeq ($(PLATFORM),CHIBIOS) - ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) - # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - COMMON_VPATH += $(DRIVER_PATH)/flash - SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c - else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G0xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) - # Wear-leveling EEPROM implementation, backed by MCU flash - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - WEAR_LEVELING_DRIVER ?= embedded_flash - else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) - # True EEPROM on STM32L0xx, L1xx - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 - SRC += eeprom_driver.c eeprom_stm32_L0_L1.c - else ifneq ($(filter $(MCU_SERIES),RP2040),) - # Wear-leveling EEPROM implementation, backed by RP2040 flash - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - WEAR_LEVELING_DRIVER ?= rp2040_flash - else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) - # Teensy EEPROM implementations - OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM - SRC += eeprom_kinetis_flexram.c - else - # Fall back to transient, i.e. non-persistent - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT - SRC += eeprom_driver.c eeprom_transient.c - endif - else ifeq ($(PLATFORM),TEST) - # Test harness "EEPROM" - OPT_DEFS += -DEEPROM_TEST_HARNESS - SRC += eeprom.c +else + OPT_DEFS += -DEEPROM_ENABLE + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom + COMMON_VPATH += $(DRIVER_PATH)/eeprom + COMMON_VPATH += $(PLATFORM_COMMON_DIR) + ifeq ($(strip $(EEPROM_DRIVER)), custom) + # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM + SRC += eeprom_driver.c + else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) + # Wear-leveling EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + else ifeq ($(strip $(EEPROM_DRIVER)), i2c) + # External I2C EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C + I2C_DRIVER_REQUIRED = yes + SRC += eeprom_driver.c eeprom_i2c.c + else ifeq ($(strip $(EEPROM_DRIVER)), spi) + # External SPI EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI + SPI_DRIVER_REQUIRED = yes + SRC += eeprom_driver.c eeprom_spi.c + else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) + # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash + COMMON_VPATH += $(DRIVER_PATH)/flash + SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c + else ifeq ($(strip $(EEPROM_DRIVER)), transient) + # Transient EEPROM implementation -- no data storage but provides runtime area for it + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + SRC += eeprom_driver.c eeprom_transient.c + else ifeq ($(strip $(EEPROM_DRIVER)), vendor) + # Vendor-implemented EEPROM + OPT_DEFS += -DEEPROM_VENDOR + ifeq ($(PLATFORM),AVR) + # Automatically provided by avr-libc, nothing required + else ifeq ($(PLATFORM),CHIBIOS) + ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) + # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash + COMMON_VPATH += $(DRIVER_PATH)/flash + SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c + else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),) + # Wear-leveling EEPROM implementation, backed by MCU flash + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + WEAR_LEVELING_DRIVER ?= embedded_flash + else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) + # True EEPROM on STM32L0xx, L1xx + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 + SRC += eeprom_driver.c eeprom_stm32_L0_L1.c + else ifneq ($(filter $(MCU_SERIES),RP2040),) + # Wear-leveling EEPROM implementation, backed by RP2040 flash + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + WEAR_LEVELING_DRIVER ?= rp2040_flash + else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) + # Teensy EEPROM implementations + OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM + SRC += eeprom_kinetis_flexram.c + else + # Fall back to transient, i.e. non-persistent + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + SRC += eeprom_driver.c eeprom_transient.c endif + else ifeq ($(PLATFORM),ARM_ATSAM) + # arm_atsam EEPROM + OPT_DEFS += -DEEPROM_SAMD + SRC += eeprom_samd.c + else ifeq ($(PLATFORM),TEST) + # Test harness "EEPROM" + OPT_DEFS += -DEEPROM_TEST_HARNESS + SRC += eeprom.c endif endif endif @@ -269,14 +266,18 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none) ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash) OPT_DEFS += -DHAL_USE_EFL SRC += wear_leveling_efl.c + POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_efl_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash) FLASH_DRIVER := spi SRC += wear_leveling_flash_spi.c + POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash) SRC += wear_leveling_rp2040_flash.c + POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy) COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash SRC += legacy_flash_ops.c wear_leveling_legacy.c + POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_legacy_config.h endif endif endif @@ -309,11 +310,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h OPT_DEFS += -DRGBLIGHT_ENABLE OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]')) - SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgblight/rgblight.c SRC += $(QUANTUM_DIR)/rgblight/rgblight_drivers.c CIE1931_CURVE := yes + RGB_KEYCODES_ENABLE := yes endif ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812) @@ -435,13 +436,6 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) SRC += snled27351-mono.c endif - ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes) - OPT_DEFS += -DLED_MATRIX_CUSTOM_KB - endif - - ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes) - OPT_DEFS += -DLED_MATRIX_CUSTOM_USER - endif endif # Deprecated driver names - do not use @@ -466,16 +460,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h - - # TODO: Remove this - SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c - - SRC += $(QUANTUM_DIR)/process_keycode/process_rgb_matrix.c SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c LIB8TION_ENABLE := yes CIE1931_CURVE := yes + RGB_KEYCODES_ENABLE := yes ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s) SPI_DRIVER_REQUIRED = yes @@ -578,6 +568,10 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) endif endif +ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c +endif + VARIABLE_TRACE ?= no ifneq ($(strip $(VARIABLE_TRACE)),no) SRC += $(QUANTUM_DIR)/variable_trace.c @@ -635,18 +629,6 @@ ifeq ($(strip $(VIA_ENABLE)), yes) RAW_ENABLE := yes BOOTMAGIC_ENABLE := yes TRI_LAYER_ENABLE := yes - ifeq ($(strip $(VIA_INSECURE)), yes) - OPT_DEFS += -DVIA_INSECURE - endif -endif - -ifeq ($(strip $(RAW_ENABLE)), yes) - OPT_DEFS += -DRAW_ENABLE - SRC += raw_hid.c -endif - -ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) - SEND_STRING_ENABLE := yes endif VALID_CUSTOM_MATRIX_TYPES:= yes lite no @@ -727,7 +709,6 @@ ifeq ($(strip $(LIB8TION_ENABLE)), yes) # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines OPT_DEFS += -DLIB8_ATTINY endif - OPT_DEFS += -DFASTLED_SCALE8_FIXED=1 -DFASTLED_BLEND_FIXED=1 SRC += $(LIB_PATH)/lib8tion/lib8tion.c endif @@ -899,19 +880,19 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]')) NO_USB_STARTUP_CHECK := yes - CONNECTION_ENABLE := yes COMMON_VPATH += $(DRIVER_PATH)/bluetooth - SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c + SRC += outputselect.c ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) SPI_DRIVER_REQUIRED = yes - SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c + ANALOG_DRIVER_REQUIRED = yes + SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp endif ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) UART_DRIVER_REQUIRED = yes - SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c + SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c endif endif @@ -945,32 +926,6 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) endif endif -ifeq ($(strip $(BATTERY_ENABLE)), yes) - BATTERY_DRIVER_REQUIRED := yes -endif - -VALID_BATTERY_DRIVER_TYPES := adc custom vendor - -BATTERY_DRIVER ?= none -ifeq ($(strip $(BATTERY_DRIVER_REQUIRED)), yes) - ifeq ($(filter $(BATTERY_DRIVER),$(VALID_BATTERY_DRIVER_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid BATTERY_DRIVER,BATTERY_DRIVER="$(BATTERY_DRIVER)" is not a valid battery driver) - endif - - OPT_DEFS += -DBATTERY_DRIVER_$(strip $(shell echo $(BATTERY_DRIVER) | tr '[:lower:]' '[:upper:]')) - - COMMON_VPATH += $(DRIVER_PATH)/battery - - ifneq ($(strip $(BATTERY_DRIVER)), custom) - SRC += battery_$(strip $(BATTERY_DRIVER)).c - endif - - # add extra deps - ifeq ($(strip $(BATTERY_DRIVER)), adc) - ANALOG_DRIVER_REQUIRED = yes - endif -endif - VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor WS2812_DRIVER ?= bitbang @@ -981,9 +936,7 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) - COMMON_VPATH += $(DRIVER_PATH)/led - - SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c + SRC += ws2812_$(strip $(WS2812_DRIVER)).c ifeq ($(strip $(PLATFORM)), CHIBIOS) ifeq ($(strip $(WS2812_DRIVER)), pwm) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index d6f91b10e4..cfd261737c 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -43,25 +43,25 @@ ifneq ($(USE_CCACHE),no) CC_PREFIX ?= ccache endif -#---------------- Debug Options ---------------- - -DEBUG_ENABLE ?= no -ifeq ($(strip $(DEBUG_ENABLE)),yes) - CFLAGS += -ggdb3 - CXXFLAGS += -ggdb3 - ASFLAGS += -ggdb3 -# Create a map file when debugging - LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -endif - - #---------------- C Compiler Options ---------------- ifeq ($(strip $(LTO_ENABLE)), yes) + ifeq ($(PLATFORM),ARM_ATSAM) + $(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.) + $(info If unsure, set LTO_ENABLE = no.) + endif CDEFS += -flto CDEFS += -DLTO_ENABLE endif +DEBUG_ENABLE ?= yes +ifeq ($(strip $(SKIP_DEBUG_INFO)),yes) + DEBUG_ENABLE=no +endif + +ifeq ($(strip $(DEBUG_ENABLE)),yes) + CFLAGS += -g$(DEBUG) +endif CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) # add color @@ -83,6 +83,9 @@ CFLAGS += -fcommon #---------------- C++ Compiler Options ---------------- +ifeq ($(strip $(DEBUG_ENABLE)),yes) + CXXFLAGS += -g$(DEBUG) +endif CXXFLAGS += $(CXXDEFS) CXXFLAGS += -O$(OPT) # to suppress "warning: only initialized variables can be placed into program memory area" @@ -103,10 +106,14 @@ endif #---------------- Linker Options ---------------- +CREATE_MAP ?= yes +ifeq ($(CREATE_MAP),yes) + LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref +endif ifeq ($(VERBOSE_LD_CMD),yes) LDFLAGS += -v endif - +#LDFLAGS += -Wl,--relax LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) LDFLAGS += -lm @@ -119,11 +126,15 @@ ADHLNS_ENABLE ?= no ifeq ($(ADHLNS_ENABLE),yes) # Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time ifeq ($(strip $(LTO_ENABLE)), yes) - LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst + LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst else - CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) + CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) - ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 + ifeq ($(strip $(DEBUG_ENABLE)),yes) + ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 + else + ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 + endif endif endif @@ -168,7 +179,7 @@ MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@) # For a ChibiOS build, ensure that the board files have the hook overrides injected define BOARDSRC_INJECT_HOOKS -$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): FILE_SPECIFIC_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h +$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h endef $(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ)))) @@ -289,10 +300,10 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN) ifneq ($$(VERBOSE_C_INCLUDE),) $$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H)) endif - $$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + $$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) @$$(BUILD_CMD) ifneq ($$(DUMP_C_MACROS),) - $$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$<) + $$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<) @$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD)) endif @@ -300,13 +311,13 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN) $1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN) @mkdir -p $$(@D) @$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD) - $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) @$$(BUILD_CMD) $1/%.o : %.cc $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN) @mkdir -p $$(@D) @$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD) - $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) @$$(BUILD_CMD) # Assemble: create object files from assembler source files. diff --git a/builddefs/converters.mk b/builddefs/converters.mk index 9f8e80706e..b1e5a1bed2 100644 --- a/builddefs/converters.mk +++ b/builddefs/converters.mk @@ -1,3 +1,15 @@ +# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms +# and should not be replicated for new boards. These will be removed from +# documentation as well as existing keymaps in due course. +ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),) +$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.) +endif + +ifneq (,$(filter $(MCU),atmega32u4)) + # TODO: opt in rather than assume everything uses a pro micro + PIN_COMPATIBLE ?= promicro +endif + # Remove whitespace from any rule.mk provided vars # - env cannot be overwritten but cannot have whitespace anyway CONVERT_TO:=$(strip $(CONVERT_TO)) diff --git a/builddefs/docsgen/.vitepress/config.mts b/builddefs/docsgen/.vitepress/config.mts index d2fe2886b2..54ecae2e86 100644 --- a/builddefs/docsgen/.vitepress/config.mts +++ b/builddefs/docsgen/.vitepress/config.mts @@ -39,15 +39,8 @@ export default defineConfig(({ mode }) => { provider: "local", }, - editLink: { - pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path' - }, - lastUpdated: true, - sidebar: sidebar, - externalLinkIcon: true, - socialLinks: [ { icon: { svg: '' }, link: "https://reddit.com/r/olkb" }, { icon: "discord", link: "https://discord.gg/qmk" }, diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index b6c56f3448..435e7481f1 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,7 +1,7 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.4.21", + "vite": "^5.2.10", "vitepress": "^1.1.0", "vitepress-plugin-tabs": "^0.5.0", "vue": "^3.4.24" diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index e5eaaa2c8f..b40c1298d0 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -178,220 +178,205 @@ "@docsearch/css" "3.6.0" algoliasearch "^4.19.1" -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@rollup/rollup-android-arm-eabi@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285" - integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA== +"@rollup/rollup-android-arm-eabi@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062" + integrity sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q== -"@rollup/rollup-android-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d" - integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g== +"@rollup/rollup-android-arm64@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz#ffb84f1359c04ec8a022a97110e18a5600f5f638" + integrity sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w== -"@rollup/rollup-darwin-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844" - integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g== +"@rollup/rollup-darwin-arm64@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz#b2fcee8d4806a0b1b9185ac038cc428ddedce9f4" + integrity sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw== -"@rollup/rollup-darwin-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf" - integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ== +"@rollup/rollup-darwin-x64@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz#fcb25ccbaa3dd33a6490e9d1c64bab2e0e16b932" + integrity sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ== -"@rollup/rollup-freebsd-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c" - integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew== +"@rollup/rollup-linux-arm-gnueabihf@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz#40d46bdfe667e5eca31bf40047460e326d2e26bb" + integrity sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw== -"@rollup/rollup-freebsd-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467" - integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA== +"@rollup/rollup-linux-arm-musleabihf@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz#7741df2448c11c56588b50835dbfe91b1a10b375" + integrity sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg== -"@rollup/rollup-linux-arm-gnueabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b" - integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw== +"@rollup/rollup-linux-arm64-gnu@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz#0a23b02d2933e4c4872ad18d879890b6a4a295df" + integrity sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w== -"@rollup/rollup-linux-arm-musleabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327" - integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg== +"@rollup/rollup-linux-arm64-musl@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz#e37ef259358aa886cc07d782220a4fb83c1e6970" + integrity sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg== -"@rollup/rollup-linux-arm64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae" - integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA== +"@rollup/rollup-linux-powerpc64le-gnu@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz#8c69218b6de05ee2ba211664a2d2ac1e54e43f94" + integrity sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w== -"@rollup/rollup-linux-arm64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05" - integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g== +"@rollup/rollup-linux-riscv64-gnu@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz#d32727dab8f538d9a4a7c03bcf58c436aecd0139" + integrity sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng== -"@rollup/rollup-linux-loongarch64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee" - integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ== +"@rollup/rollup-linux-s390x-gnu@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz#d46097246a187d99fc9451fe8393b7155b47c5ec" + integrity sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ== -"@rollup/rollup-linux-powerpc64le-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba" - integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ== +"@rollup/rollup-linux-x64-gnu@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz#6356c5a03a4afb1c3057490fc51b4764e109dbc7" + integrity sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA== -"@rollup/rollup-linux-riscv64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e" - integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw== +"@rollup/rollup-linux-x64-musl@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz#03a5831a9c0d05877b94653b5ddd3020d3c6fb06" + integrity sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA== -"@rollup/rollup-linux-s390x-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e" - integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ== +"@rollup/rollup-win32-arm64-msvc@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz#6cc0db57750376b9303bdb6f5482af8974fcae35" + integrity sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA== -"@rollup/rollup-linux-x64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0" - integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g== +"@rollup/rollup-win32-ia32-msvc@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz#aea0b7e492bd9ed46971cb80bc34f1eb14e07789" + integrity sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w== -"@rollup/rollup-linux-x64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80" - integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA== - -"@rollup/rollup-win32-arm64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691" - integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw== - -"@rollup/rollup-win32-ia32-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3" - integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ== - -"@rollup/rollup-win32-x64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645" - integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw== +"@rollup/rollup-win32-x64-msvc@4.16.4": + version "4.16.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz#c09ad9a132ccb5a67c4f211d909323ab1294f95f" + integrity sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A== "@shikijs/core@1.3.0", "@shikijs/core@^1.3.0": version "1.3.0" @@ -405,10 +390,10 @@ dependencies: shiki "1.3.0" -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/linkify-it@*": version "3.0.5" @@ -604,34 +589,34 @@ entities@^4.5.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== +esbuild@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" + integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" + "@esbuild/aix-ppc64" "0.20.2" + "@esbuild/android-arm" "0.20.2" + "@esbuild/android-arm64" "0.20.2" + "@esbuild/android-x64" "0.20.2" + "@esbuild/darwin-arm64" "0.20.2" + "@esbuild/darwin-x64" "0.20.2" + "@esbuild/freebsd-arm64" "0.20.2" + "@esbuild/freebsd-x64" "0.20.2" + "@esbuild/linux-arm" "0.20.2" + "@esbuild/linux-arm64" "0.20.2" + "@esbuild/linux-ia32" "0.20.2" + "@esbuild/linux-loong64" "0.20.2" + "@esbuild/linux-mips64el" "0.20.2" + "@esbuild/linux-ppc64" "0.20.2" + "@esbuild/linux-riscv64" "0.20.2" + "@esbuild/linux-s390x" "0.20.2" + "@esbuild/linux-x64" "0.20.2" + "@esbuild/netbsd-x64" "0.20.2" + "@esbuild/openbsd-x64" "0.20.2" + "@esbuild/sunos-x64" "0.20.2" + "@esbuild/win32-arm64" "0.20.2" + "@esbuild/win32-ia32" "0.20.2" + "@esbuild/win32-x64" "0.20.2" estree-walker@^2.0.2: version "2.0.2" @@ -677,29 +662,29 @@ mitt@^3.0.1: resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== perfect-debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -postcss@^8.4.38, postcss@^8.4.43: - version "8.5.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" - integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== +postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: - nanoid "^3.3.8" - picocolors "^1.1.1" - source-map-js "^1.2.1" + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" preact@^10.0.0: version "10.20.2" @@ -711,32 +696,29 @@ rfdc@^1.3.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -rollup@^4.20.0: - version "4.31.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4" - integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw== +rollup@^4.13.0: + version "4.16.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.16.4.tgz#fe328eb41293f20c9593a095ec23bdc4b5d93317" + integrity sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA== dependencies: - "@types/estree" "1.0.6" + "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.31.0" - "@rollup/rollup-android-arm64" "4.31.0" - "@rollup/rollup-darwin-arm64" "4.31.0" - "@rollup/rollup-darwin-x64" "4.31.0" - "@rollup/rollup-freebsd-arm64" "4.31.0" - "@rollup/rollup-freebsd-x64" "4.31.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.31.0" - "@rollup/rollup-linux-arm-musleabihf" "4.31.0" - "@rollup/rollup-linux-arm64-gnu" "4.31.0" - "@rollup/rollup-linux-arm64-musl" "4.31.0" - "@rollup/rollup-linux-loongarch64-gnu" "4.31.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.31.0" - "@rollup/rollup-linux-riscv64-gnu" "4.31.0" - "@rollup/rollup-linux-s390x-gnu" "4.31.0" - "@rollup/rollup-linux-x64-gnu" "4.31.0" - "@rollup/rollup-linux-x64-musl" "4.31.0" - "@rollup/rollup-win32-arm64-msvc" "4.31.0" - "@rollup/rollup-win32-ia32-msvc" "4.31.0" - "@rollup/rollup-win32-x64-msvc" "4.31.0" + "@rollup/rollup-android-arm-eabi" "4.16.4" + "@rollup/rollup-android-arm64" "4.16.4" + "@rollup/rollup-darwin-arm64" "4.16.4" + "@rollup/rollup-darwin-x64" "4.16.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.16.4" + "@rollup/rollup-linux-arm-musleabihf" "4.16.4" + "@rollup/rollup-linux-arm64-gnu" "4.16.4" + "@rollup/rollup-linux-arm64-musl" "4.16.4" + "@rollup/rollup-linux-powerpc64le-gnu" "4.16.4" + "@rollup/rollup-linux-riscv64-gnu" "4.16.4" + "@rollup/rollup-linux-s390x-gnu" "4.16.4" + "@rollup/rollup-linux-x64-gnu" "4.16.4" + "@rollup/rollup-linux-x64-musl" "4.16.4" + "@rollup/rollup-win32-arm64-msvc" "4.16.4" + "@rollup/rollup-win32-ia32-msvc" "4.16.4" + "@rollup/rollup-win32-x64-msvc" "4.16.4" fsevents "~2.3.2" shiki@1.3.0, shiki@^1.3.0: @@ -751,11 +733,6 @@ source-map-js@^1.2.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - speakingurl@^14.0.1: version "14.0.1" resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" @@ -766,14 +743,14 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.9, vite@^5.4.21: - version "5.4.21" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" - integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== +vite@^5.2.10, vite@^5.2.9: + version "5.2.10" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7" + integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw== dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" + esbuild "^0.20.1" + postcss "^8.4.38" + rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index 6d394977bd..dc34a64230 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -21,12 +21,10 @@ SPACE_CADET_ENABLE ?= yes GENERIC_FEATURES = \ AUTO_SHIFT \ AUTOCORRECT \ - BATTERY \ BOOTMAGIC \ CAPS_WORD \ COMBO \ COMMAND \ - CONNECTION \ CRC \ DEFERRED_EXEC \ DIGITIZER \ @@ -36,10 +34,8 @@ GENERIC_FEATURES = \ DYNAMIC_TAPPING_TERM \ GRAVE_ESC \ HAPTIC \ - KEYCODE_STRING \ KEY_LOCK \ KEY_OVERRIDE \ - LAYER_LOCK \ LEADER \ MAGIC \ MOUSEKEY \ @@ -63,7 +59,6 @@ define HANDLE_GENERIC_FEATURE SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c) - SRC += $$(wildcard $$(QUANTUM_DIR)/nvm/$$(NVM_DRIVER_LOWER)/nvm_$2.c) VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/) OPT_DEFS += -D$1_ENABLE endef diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 1c1a3ebf8e..81d8400a80 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -67,6 +67,7 @@ OTHER_OPTION_NAMES = \ PS2_DRIVER \ RAW_ENABLE \ SWAP_HANDS_ENABLE \ + RING_BUFFERED_6KRO_REPORT_ENABLE \ WATCHDOG_ENABLE \ ERGOINU \ NO_USB_STARTUP_CHECK \ diff --git a/builddefs/support.mk b/builddefs/support.mk deleted file mode 100644 index 7ef7b9b041..0000000000 --- a/builddefs/support.mk +++ /dev/null @@ -1,11 +0,0 @@ -# Helper to determine if a compiler option is supported -# Args: -# $(1) = option to test, if successful will be output -# $(2) = option to use if $(1) is not supported -# $(3) = additional arguments to pass to the compiler during the test, but aren't contained in the output -cc-option = $(shell \ - if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \ - then echo "$(1)"; else echo "$(2)"; fi) - -# Helper to pass comma character to make functions (use with `$(,)` to pass in `$(call ...)` arguments) -, := , diff --git a/builddefs/testlist.mk b/builddefs/testlist.mk index 2e81fe576b..74a794adcd 100644 --- a/builddefs/testlist.mk +++ b/builddefs/testlist.mk @@ -1,7 +1,6 @@ TEST_LIST = $(sort $(patsubst %/test.mk,%, $(shell find $(ROOT_DIR)tests -type f -name test.mk))) FULL_TESTS := $(notdir $(TEST_LIST)) -include $(QUANTUM_PATH)/battery/tests/testlist.mk include $(QUANTUM_PATH)/debounce/tests/testlist.mk include $(QUANTUM_PATH)/encoder/tests/testlist.mk include $(QUANTUM_PATH)/os_detection/tests/testlist.mk diff --git a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson index 11b68d16a0..d2b8c1d7d9 100644 --- a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "~", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson index 7a9dea9d13..713f3f2829 100644 --- a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson @@ -629,4 +629,4 @@ "label": "(narrow non-breaking space)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson index e28970ed33..17006a64df 100644 --- a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "₢", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson index a663088e22..bfe5d5b54c 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson @@ -638,4 +638,4 @@ "label": "÷", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson index 0bf0f3b221..1dc091584b 100644 --- a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson index 50464921fa..82632aa637 100644 --- a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson @@ -400,4 +400,4 @@ "label": "§", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson index 8b1572bfcb..9cfb88c489 100644 --- a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson @@ -432,4 +432,4 @@ "label": "*", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson index 0e8f7a75c6..fffcd9f9ad 100644 --- a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson index 485d86aa21..534f99c8e6 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson @@ -299,4 +299,4 @@ "label": ":", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson index 69ce14486e..70c0b3c0aa 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson @@ -314,4 +314,4 @@ "label": "@", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson index 6fa9868e4c..8a70dae7ef 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "\"", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson index 276d3fe664..bbf7512581 100644 --- a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson @@ -364,4 +364,4 @@ "label": "ž", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson deleted file mode 100644 index 9b4fa33053..0000000000 --- a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson +++ /dev/null @@ -1,596 +0,0 @@ -{ - "aliases": { -/* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - "KC_GRV": { - "key": "EU_GRV", - "label": "`", - } - "KC_1": { - "key": "EU_1", - "label": "1", - } - "KC_2": { - "key": "EU_2", - "label": "2", - } - "KC_3": { - "key": "EU_3", - "label": "3", - } - "KC_4": { - "key": "EU_4", - "label": "4", - } - "KC_5": { - "key": "EU_5", - "label": "5", - } - "KC_6": { - "key": "EU_6", - "label": "6", - } - "KC_7": { - "key": "EU_7", - "label": "7", - } - "KC_8": { - "key": "EU_8", - "label": "8", - } - "KC_9": { - "key": "EU_9", - "label": "9", - } - "KC_0": { - "key": "EU_0", - "label": "0", - } - "KC_MINS": { - "key": "EU_MINS", - "label": "-", - } - "KC_EQL": { - "key": "EU_EQL", - "label": "=", - } - "KC_Q": { - "key": "EU_Q", - "label": "Q", - } - "KC_W": { - "key": "EU_W", - "label": "W", - } - "KC_E": { - "key": "EU_E", - "label": "E", - } - "KC_R": { - "key": "EU_R", - "label": "R", - } - "KC_T": { - "key": "EU_T", - "label": "T", - } - "KC_Y": { - "key": "EU_Y", - "label": "Y", - } - "KC_U": { - "key": "EU_U", - "label": "U", - } - "KC_I": { - "key": "EU_I", - "label": "I", - } - "KC_O": { - "key": "EU_O", - "label": "O", - } - "KC_P": { - "key": "EU_P", - "label": "P", - } - "KC_LBRC": { - "key": "EU_LBRC", - "label": "[", - } - "KC_RBRC": { - "key": "EU_RBRC", - "label": "]", - } - "KC_BSLS": { - "key": "EU_BSLS", - "label": "\\", - } - "KC_A": { - "key": "EU_A", - "label": "A", - } - "KC_S": { - "key": "EU_S", - "label": "S", - } - "KC_D": { - "key": "EU_D", - "label": "D", - } - "KC_F": { - "key": "EU_F", - "label": "F", - } - "KC_G": { - "key": "EU_G", - "label": "G", - } - "KC_H": { - "key": "EU_H", - "label": "H", - } - "KC_J": { - "key": "EU_J", - "label": "J", - } - "KC_K": { - "key": "EU_K", - "label": "K", - } - "KC_L": { - "key": "EU_L", - "label": "L", - } - "KC_SCLN": { - "key": "EU_SCLN", - "label": ";", - } - "KC_QUOT": { - "key": "EU_QUOT", - "label": "'", - } - "KC_Z": { - "key": "EU_Z", - "label": "Z", - } - "KC_X": { - "key": "EU_X", - "label": "X", - } - "KC_C": { - "key": "EU_C", - "label": "C", - } - "KC_V": { - "key": "EU_V", - "label": "V", - } - "KC_B": { - "key": "EU_B", - "label": "B", - } - "KC_N": { - "key": "EU_N", - "label": "N", - } - "KC_M": { - "key": "EU_M", - "label": "M", - } - "KC_COMM": { - "key": "EU_COMM", - "label": ",", - } - "KC_DOT": { - "key": "EU_DOT", - "label": ".", - } - "KC_SLSH": { - "key": "EU_SLSH", - "label": "/", - } -/* Shifted symbols - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │ │ │ │ │ │ │ │ │ │ : │ " │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ │ │ │ │ │ │ │ │ < │ > │ ? │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - "S(EU_GRV)": { - "key": "EU_TILD", - "label": "~", - } - "S(EU_1)": { - "key": "EU_EXLM", - "label": "!", - } - "S(EU_2)": { - "key": "EU_AT", - "label": "@", - } - "S(EU_3)": { - "key": "EU_HASH", - "label": "#", - } - "S(EU_4)": { - "key": "EU_DLR", - "label": "$", - } - "S(EU_5)": { - "key": "EU_PERC", - "label": "%", - } - "S(EU_6)": { - "key": "EU_CIRC", - "label": "^", - } - "S(EU_7)": { - "key": "EU_AMPR", - "label": "&", - } - "S(EU_8)": { - "key": "EU_ASTR", - "label": "*", - } - "S(EU_9)": { - "key": "EU_LPRN", - "label": "(", - } - "S(EU_0)": { - "key": "EU_RPRN", - "label": ")", - } - "S(EU_MINS)": { - "key": "EU_UNDS", - "label": "_", - } - "S(EU_EQL)": { - "key": "EU_PLUS", - "label": "+", - } - "S(EU_LBRC)": { - "key": "EU_LCBR", - "label": "{", - } - "S(EU_RBRC)": { - "key": "EU_RCBR", - "label": "}", - } - "S(EU_BSLS)": { - "key": "EU_PIPE", - "label": "|", - } - "S(EU_SCLN)": { - "key": "EU_COLN", - "label": ":", - } - "S(EU_QUOT)": { - "key": "EU_DQUO", - "label": "\"", - } - "S(EU_COMM)": { - "key": "EU_LABK", - "label": "<", - } - "S(EU_DOT)": { - "key": "EU_RABK", - "label": ">", - } - "S(EU_SLSH)": { - "key": "EU_QUES", - "label": "?", - } -/* AltGr symbols - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ – │ × │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - "ALGR(EU_GRV)": { - "key": "EU_DGRV", - "label": "` (dead)", - } - "ALGR(EU_1)": { - "key": "EU_IEXL", - "label": "¡", - } - "ALGR(EU_2)": { - "key": "EU_FORD", - "label": "ª", - } - "ALGR(EU_3)": { - "key": "EU_MORD", - "label": "º", - } - "ALGR(EU_4)": { - "key": "EU_PND", - "label": "£", - } - "ALGR(EU_5)": { - "key": "EU_EURO", - "label": "€", - } - "ALGR(EU_6)": { - "key": "EU_DCIR", - "label": "^ (dead)", - } - "ALGR(EU_7)": { - "key": "EU_RNGA", - "label": "˚ (dead)", - } - "ALGR(EU_8)": { - "key": "EU_DLQU", - "label": "„", - } - "ALGR(EU_9)": { - "key": "EU_LDQU", - "label": "“", - } - "ALGR(EU_0)": { - "key": "EU_RDQU", - "label": "”", - } - "ALGR(EU_MINS)": { - "key": "EU_NDSH", - "label": "–", - } - "ALGR(EU_EQL)": { - "key": "EU_MUL", - "label": "×", - } - "ALGR(EU_Q)": { - "key": "EU_AE", - "label": "æ", - } - "ALGR(EU_W)": { - "key": "EU_ARNG", - "label": "Å", - } - "ALGR(EU_E)": { - "key": "EU_EDIA", - "label": "Ë", - } - "ALGR(EU_R)": { - "key": "EU_YACU", - "label": "Ý", - } - "ALGR(EU_T)": { - "key": "EU_THRN", - "label": "Þ", - } - "ALGR(EU_Y)": { - "key": "EU_YDIA", - "label": "Ÿ", - } - "ALGR(EU_U)": { - "key": "EU_UDIA", - "label": "Ü", - } - "ALGR(EU_I)": { - "key": "EU_IDIA", - "label": "Ï", - } - "ALGR(EU_O)": { - "key": "EU_ODIA", - "label": "Ö", - } - "ALGR(EU_P)": { - "key": "EU_OE", - "label": "Œ", - } - "ALGR(EU_LBRC)": { - "key": "EU_LDAQ", - "label": "«", - } - "ALGR(EU_RBRC)": { - "key": "EU_RDAQ", - "label": "»", - } - "ALGR(EU_BSLS)": { - "key": "EU_NOT", - "label": "¬", - } - "ALGR(EU_A)": { - "key": "EU_ADIA", - "label": "Ä", - } - "ALGR(EU_S)": { - "key": "EU_SS", - "label": "ß", - } - "ALGR(EU_D)": { - "key": "EU_ETH", - "label": "Ð", - } - "ALGR(EU_F)": { - "key": "EU_EGRV", - "label": "È", - } - "ALGR(EU_G)": { - "key": "EU_EACU", - "label": "É", - } - "ALGR(EU_H)": { - "key": "EU_UGRV", - "label": "Ù", - } - "ALGR(EU_J)": { - "key": "EU_UACU", - "label": "Ú", - } - "ALGR(EU_K)": { - "key": "EU_IJ", - "label": "IJ", - } - "ALGR(EU_L)": { - "key": "EU_OSTR", - "label": "Ø", - } - "ALGR(EU_SCLN)": { - "key": "EU_DEG", - "label": "°", - } - "ALGR(EU_QUOT)": { - "key": "EU_ACUT", - "label": "´ (dead)", - } - "ALGR(EU_Z)": { - "key": "EU_AGRV", - "label": "À", - } - "ALGR(EU_X)": { - "key": "EU_AACU", - "label": "Á", - } - "ALGR(EU_C)": { - "key": "EU_CCED", - "label": "Ç", - } - "ALGR(EU_V)": { - "key": "EU_IGRV", - "label": "Ì", - } - "ALGR(EU_B)": { - "key": "EU_IACU", - "label": "Í", - } - "ALGR(EU_N)": { - "key": "EU_NTIL", - "label": "Ñ", - } - "ALGR(EU_M)": { - "key": "EU_DGRK", - "label": "μ (dead Greek key)", - } - "ALGR(EU_COMM)": { - "key": "EU_OGRV", - "label": "Ò", - } - "ALGR(EU_DOT)": { - "key": "EU_OACU", - "label": "Ó", - } - "ALGR(EU_SLSH)": { - "key": "EU_IQUE", - "label": "¿", - } -/* Shift+AltGr symbols - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ ‚ │ ‘ │ ’ │ — │ ÷ │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ ‹ │ › │ ¦ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ │ │ │ │ │ │ │ │ │ │ … │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - "ALGR(EU_TILD)": { - "key": "EU_DTIL", - "label": "~ (dead)", - } - "S(ALGR(EU_1))": { - "key": "EU_SUP1", - "label": "¹", - } - "S(ALGR(EU_2))": { - "key": "EU_SUP2", - "label": "²", - } - "S(ALGR(EU_3))": { - "key": "EU_SUP3", - "label": "³", - } - "ALGR(EU_DLR)": { - "key": "EU_YEN", - "label": "¥", - } - "S(EU_EURO)": { - "key": "EU_CENT", - "label": "¢", - } - "S(EU_DCIR)": { - "key": "EU_CARN", - "label": "ˇ (dead)", - } - "S(ALGR(EU_7))": { - "key": "EU_MACR", - "label": "¯ (dead)", - } - "S(EU_DLQU)": { - "key": "EU_SLQU", - "label": "‚", - } - "S(EU_LDQU)": { - "key": "EU_LSQU", - "label": "‘", - } - "S(EU_RDQU)": { - "key": "EU_RSQU", - "label": "’", - } - "S(EU_NDSH)": { - "key": "EU_MDSH", - "label": "—", - } - "S(EU_MUL)": { - "key": "EU_DIV", - "label": "÷", - } - "S(EU_LDAQ)": { - "key": "EU_LSAQ", - "label": "‹", - } - "S(EU_RDAQ)": { - "key": "EU_RSAQ", - "label": "›", - } - "S(ALGR(EU_BSLS))": { - "key": "EU_BRKP", - "label": "¦", - } - "S(ALGR(EU_S))": { - "key": "EU_SECT", - "label": "§", - } - "S(ALGR(EU_SCLN))": { - "key": "EU_MDDT", - "label": "·", - } - "ALGR(EU_DQUO)": { - "key": "EU_DIAE", - "label": "¨ (dead)", - } - "ALGR(EU_QUES)": { - "key": "EU_ELLP", - "label": "…", - } - } -} diff --git a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson index 68d209a5f3..d59b6fab26 100644 --- a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson @@ -527,7 +527,7 @@ "key": "FA_PIPE", "label": "|", } - "ALGR(FA_RE)": { + "ALGR(FA_RA)": { "key": "FA_SUBA", "label": "ٖ", } diff --git a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson index a4d3c99a6f..b284192962 100644 --- a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson index 351dfe89d8..8ba7b35d2e 100644 --- a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson @@ -364,4 +364,4 @@ "label": "¤", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson index 92646c4de8..90981d085d 100644 --- a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson @@ -620,4 +620,4 @@ "label": "≠", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson index bb924e9852..b698018d5b 100644 --- a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson @@ -673,4 +673,4 @@ "label": "±", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson index 015438abb2..a1cfd44956 100644 --- a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson index fa3b8d67b5..366ed5b9d1 100644 --- a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson @@ -653,4 +653,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson index b61a317b19..9c7f8796bf 100644 --- a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson @@ -388,4 +388,4 @@ "label": "©", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson index aaf0563623..b519229f35 100644 --- a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson @@ -344,4 +344,4 @@ "label": "÷", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson index e7ae0d340c..d4fc908dc0 100644 --- a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson @@ -432,4 +432,4 @@ "label": "*", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson index 59478a1018..f4d6025a77 100644 --- a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson index 99487a5b90..94e553469e 100644 --- a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "´ (dead)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson index 8b859d6de8..951c564f62 100644 --- a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson @@ -361,4 +361,4 @@ "label": "}", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson index 551f094974..328755ca67 100644 --- a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson @@ -681,4 +681,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson index aed90f203d..4beccd804a 100644 --- a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson @@ -685,4 +685,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson index 779eef8a84..d95712abd9 100644 --- a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson @@ -327,4 +327,4 @@ "label": "_", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson index 8e04d8ed2a..5ee19c9e4e 100644 --- a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson @@ -307,4 +307,4 @@ "label": "?", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson index 510a2c83a7..ab80f0fdd9 100644 --- a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson @@ -437,4 +437,4 @@ "label": "¨ (dead)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson index f6140d7f93..dfb527878e 100644 --- a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "\\", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson index 2ab6f83c94..a4ea30d592 100644 --- a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson @@ -365,4 +365,4 @@ "label": "+", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson index 88ede311a6..980bddbf7a 100644 --- a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson @@ -214,4 +214,4 @@ "label": "(layer 4)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson index 8536a004de..fb3d1bc84b 100644 --- a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson @@ -113,4 +113,4 @@ "key": "NO_MU" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson index 45cd26ae1c..98ea7e6aab 100644 --- a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson index 0cc79c5631..4e8cbb5d0e 100644 --- a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson index 78cfe9dd41..fb00ef0c62 100644 --- a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson @@ -83,4 +83,4 @@ "key": "PV_U" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson index 8e1fe29f8b..9656dd9821 100644 --- a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson @@ -70,4 +70,4 @@ "key": "PD_U" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson index f09f2c9b64..609011b1f7 100644 --- a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "Ń", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson index ec773ddbb5..c8e43065d2 100644 --- a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "€", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson index 503a3e92a6..b1c9aaad98 100644 --- a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson @@ -617,4 +617,4 @@ "label": "–", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson index f388523146..42b1e89d3b 100644 --- a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson @@ -441,4 +441,4 @@ "label": "»", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson index 41904be634..d83fc0f61f 100644 --- a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson @@ -288,4 +288,4 @@ "label": "₽", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson index 3ddd7f15df..98957930a0 100644 --- a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson @@ -304,4 +304,4 @@ "label": "€", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson index eec0877aa7..ca4746b646 100644 --- a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson @@ -404,4 +404,4 @@ "label": "§", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson index dbf39b5f49..14eb4b783a 100644 --- a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson @@ -440,4 +440,4 @@ "label": "}", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson index d264d3d392..fd1a4eb4fc 100644 --- a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson @@ -400,4 +400,4 @@ "label": "§", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson index 9656e35674..db3b068e97 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "}", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson index fa0a93ff85..39119a6a91 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "}", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson index 51ad69a55a..fb1de29e6e 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson @@ -340,4 +340,4 @@ "label": "`", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson index f538a81bd9..6db71ea241 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson index 59f0173e89..ab7c3ad8d1 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson @@ -639,4 +639,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson index cf2c0d9fdf..cafd815776 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson @@ -637,4 +637,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson index 911cbc2be8..c82c79c711 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson @@ -639,4 +639,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson index d8e532f792..4555739ccd 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson @@ -637,4 +637,4 @@ "label": "—", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson index e4a5f91158..ae260a5e56 100644 --- a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "\\", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson index e518658314..83fb86e49c 100644 --- a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "\\", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson index 0f527e04d6..2689f10dbe 100644 --- a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson @@ -477,4 +477,4 @@ "label": "º", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson index e736bb52a2..e00cee9ce3 100644 --- a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "` (dead)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson index aa97e11fa9..006bf5c59e 100644 --- a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson @@ -350,4 +350,4 @@ "label": "Á" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson index 3596dc14e0..2e8629f58b 100644 --- a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson @@ -292,4 +292,4 @@ "label": "ґ", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson index 15b21dd526..ecac6ca161 100644 --- a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson @@ -585,4 +585,4 @@ "label": "̉ (dead)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson index 34328be8b8..36a574a4ad 100644 --- a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson @@ -505,4 +505,4 @@ "label": "¢", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson index fcf848dd87..d6bdf2e02d 100644 --- a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson @@ -573,4 +573,4 @@ "label": "̉ (dead)", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson index 14220e560e..27471a15e4 100644 --- a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson index f05ec1a3ea..86f6a5bffb 100644 --- a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1.hjson b/data/constants/keycodes/keycodes_0.0.1.hjson index c40baf13dc..7ba1ecf201 100644 --- a/data/constants/keycodes/keycodes_0.0.1.hjson +++ b/data/constants/keycodes/keycodes_0.0.1.hjson @@ -93,4 +93,4 @@ "key": "SAFE_RANGE" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson index 66aba7b1fc..430211ecca 100644 --- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -1140,7 +1140,7 @@ "0x00AE": { "group": "media", "key": "KC_MEDIA_PLAY_PAUSE", - "label": "Play/Pause Track", + "label": "Mute", "aliases": [ "KC_MPLY" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson index b851d72eef..0bda7c29f3 100644 --- a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson @@ -225,4 +225,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_magic.hjson b/data/constants/keycodes/keycodes_0.0.1_magic.hjson index 0e3e8dc55f..7ee1f2bce9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_magic.hjson @@ -246,4 +246,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_midi.hjson b/data/constants/keycodes/keycodes_0.0.1_midi.hjson index 5ab9ef24d5..b9826f92c9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_midi.hjson @@ -84,7 +84,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", "aliases": [ - "MI_Gs", + "MI_Gs" "MI_Ab" ] }, @@ -99,7 +99,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", "aliases": [ - "MI_As", + "MI_As" "MI_Bb" ] }, diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson index 7d031728a6..645bcd6a39 100644 --- a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson @@ -225,4 +225,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson index 85844ae99c..039d09b2fa 100644 --- a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson @@ -37,4 +37,4 @@ "key": "SQ_SCLR" } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.2_basic.hjson b/data/constants/keycodes/keycodes_0.0.2_basic.hjson index d9cefe7e93..2b5df85d99 100644 --- a/data/constants/keycodes/keycodes_0.0.2_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_basic.hjson @@ -17,4 +17,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.2_kb.hjson b/data/constants/keycodes/keycodes_0.0.2_kb.hjson index 28c4a8e8be..f9ffc7432d 100644 --- a/data/constants/keycodes/keycodes_0.0.2_kb.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_kb.hjson @@ -2,131 +2,131 @@ "keycodes": { "0x7E00": { "group": "kb", - "key": "QK_KB_0" + "key": "QK_KB_0", }, "0x7E01": { "group": "kb", - "key": "QK_KB_1" + "key": "QK_KB_1", }, "0x7E02": { "group": "kb", - "key": "QK_KB_2" + "key": "QK_KB_2", }, "0x7E03": { "group": "kb", - "key": "QK_KB_3" + "key": "QK_KB_3", }, "0x7E04": { "group": "kb", - "key": "QK_KB_4" + "key": "QK_KB_4", }, "0x7E05": { "group": "kb", - "key": "QK_KB_5" + "key": "QK_KB_5", }, "0x7E06": { "group": "kb", - "key": "QK_KB_6" + "key": "QK_KB_6", }, "0x7E07": { "group": "kb", - "key": "QK_KB_7" + "key": "QK_KB_7", }, "0x7E08": { "group": "kb", - "key": "QK_KB_8" + "key": "QK_KB_8", }, "0x7E09": { "group": "kb", - "key": "QK_KB_9" + "key": "QK_KB_9", }, "0x7E0A": { "group": "kb", - "key": "QK_KB_10" + "key": "QK_KB_10", }, "0x7E0B": { "group": "kb", - "key": "QK_KB_11" + "key": "QK_KB_11", }, "0x7E0C": { "group": "kb", - "key": "QK_KB_12" + "key": "QK_KB_12", }, "0x7E0D": { "group": "kb", - "key": "QK_KB_13" + "key": "QK_KB_13", }, "0x7E0E": { "group": "kb", - "key": "QK_KB_14" + "key": "QK_KB_14", }, "0x7E0F": { "group": "kb", - "key": "QK_KB_15" + "key": "QK_KB_15", }, "0x7E10": { "group": "kb", - "key": "QK_KB_16" + "key": "QK_KB_16", }, "0x7E11": { "group": "kb", - "key": "QK_KB_17" + "key": "QK_KB_17", }, "0x7E12": { "group": "kb", - "key": "QK_KB_18" + "key": "QK_KB_18", }, "0x7E13": { "group": "kb", - "key": "QK_KB_19" + "key": "QK_KB_19", }, "0x7E14": { "group": "kb", - "key": "QK_KB_20" + "key": "QK_KB_20", }, "0x7E15": { "group": "kb", - "key": "QK_KB_21" + "key": "QK_KB_21", }, "0x7E16": { "group": "kb", - "key": "QK_KB_22" + "key": "QK_KB_22", }, "0x7E17": { "group": "kb", - "key": "QK_KB_23" + "key": "QK_KB_23", }, "0x7E18": { "group": "kb", - "key": "QK_KB_24" + "key": "QK_KB_24", }, "0x7E19": { "group": "kb", - "key": "QK_KB_25" + "key": "QK_KB_25", }, "0x7E1A": { "group": "kb", - "key": "QK_KB_26" - }, + "key": "QK_KB_26", + }, "0x7E1B": { "group": "kb", - "key": "QK_KB_27" + "key": "QK_KB_27", }, "0x7E1C": { "group": "kb", - "key": "QK_KB_28" + "key": "QK_KB_28", }, "0x7E1D": { "group": "kb", - "key": "QK_KB_29" + "key": "QK_KB_29", }, "0x7E1E": { "group": "kb", - "key": "QK_KB_30" + "key": "QK_KB_30", }, "0x7E1F": { "group": "kb", - "key": "QK_KB_31" - } + "key": "QK_KB_31", + }, } } diff --git a/data/constants/keycodes/keycodes_0.0.2_magic.hjson b/data/constants/keycodes/keycodes_0.0.2_magic.hjson index 2fc8ba038d..81758975e3 100644 --- a/data/constants/keycodes/keycodes_0.0.2_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_magic.hjson @@ -248,4 +248,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.2_midi.hjson b/data/constants/keycodes/keycodes_0.0.2_midi.hjson index ddf79be96c..c15c2dd433 100644 --- a/data/constants/keycodes/keycodes_0.0.2_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_midi.hjson @@ -86,7 +86,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", "aliases": [ - "MI_Gs", + "MI_Gs" "MI_Ab" ] }, @@ -101,7 +101,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", "aliases": [ - "MI_As", + "MI_As" "MI_Bb" ] }, diff --git a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson index 445a2c9328..eedaed166c 100644 --- a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson @@ -66,4 +66,4 @@ ] } } -} +} \ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.2_user.hjson b/data/constants/keycodes/keycodes_0.0.2_user.hjson index a30e8e8eed..42392dc649 100644 --- a/data/constants/keycodes/keycodes_0.0.2_user.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_user.hjson @@ -2,131 +2,131 @@ "keycodes": { "0x7E40": { "group": "user", - "key": "QK_USER_0" + "key": "QK_USER_0", }, "0x7E41": { "group": "user", - "key": "QK_USER_1" + "key": "QK_USER_1", }, "0x7E42": { "group": "user", - "key": "QK_USER_2" + "key": "QK_USER_2", }, "0x7E43": { "group": "user", - "key": "QK_USER_3" + "key": "QK_USER_3", }, "0x7E44": { "group": "user", - "key": "QK_USER_4" + "key": "QK_USER_4", }, "0x7E45": { "group": "user", - "key": "QK_USER_5" + "key": "QK_USER_5", }, "0x7E46": { "group": "user", - "key": "QK_USER_6" + "key": "QK_USER_6", }, "0x7E47": { "group": "user", - "key": "QK_USER_7" + "key": "QK_USER_7", }, "0x7E48": { "group": "user", - "key": "QK_USER_8" + "key": "QK_USER_8", }, "0x7E49": { "group": "user", - "key": "QK_USER_9" + "key": "QK_USER_9", }, "0x7E4A": { "group": "user", - "key": "QK_USER_10" + "key": "QK_USER_10", }, "0x7E4B": { "group": "user", - "key": "QK_USER_11" + "key": "QK_USER_11", }, "0x7E4C": { "group": "user", - "key": "QK_USER_12" + "key": "QK_USER_12", }, "0x7E4D": { "group": "user", - "key": "QK_USER_13" + "key": "QK_USER_13", }, "0x7E4E": { "group": "user", - "key": "QK_USER_14" + "key": "QK_USER_14", }, "0x7E4F": { "group": "user", - "key": "QK_USER_15" + "key": "QK_USER_15", }, "0x7E50": { "group": "user", - "key": "QK_USER_16" + "key": "QK_USER_16", }, "0x7E51": { "group": "user", - "key": "QK_USER_17" + "key": "QK_USER_17", }, "0x7E52": { "group": "user", - "key": "QK_USER_18" + "key": "QK_USER_18", }, "0x7E53": { "group": "user", - "key": "QK_USER_19" + "key": "QK_USER_19", }, "0x7E54": { "group": "user", - "key": "QK_USER_20" + "key": "QK_USER_20", }, "0x7E55": { "group": "user", - "key": "QK_USER_21" + "key": "QK_USER_21", }, "0x7E56": { "group": "user", - "key": "QK_USER_22" + "key": "QK_USER_22", }, "0x7E57": { "group": "user", - "key": "QK_USER_23" + "key": "QK_USER_23", }, "0x7E58": { "group": "user", - "key": "QK_USER_24" + "key": "QK_USER_24", }, "0x7E59": { "group": "user", - "key": "QK_USER_25" + "key": "QK_USER_25", }, "0x7E5A": { "group": "user", - "key": "QK_USER_26" - }, + "key": "QK_USER_26", + }, "0x7E5B": { "group": "user", - "key": "QK_USER_27" + "key": "QK_USER_27", }, "0x7E5C": { "group": "user", - "key": "QK_USER_28" + "key": "QK_USER_28", }, "0x7E5D": { "group": "user", - "key": "QK_USER_29" + "key": "QK_USER_29", }, "0x7E5E": { "group": "user", - "key": "QK_USER_30" + "key": "QK_USER_30", }, "0x7E5F": { "group": "user", - "key": "QK_USER_31" - } + "key": "QK_USER_31", + }, } } diff --git a/data/constants/keycodes/keycodes_0.0.6.hjson b/data/constants/keycodes/keycodes_0.0.6.hjson deleted file mode 100644 index f03ef747a4..0000000000 --- a/data/constants/keycodes/keycodes_0.0.6.hjson +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ranges": { - "0x52E0/0x001F": { - "define": "QK_PERSISTENT_DEF_LAYER" - } - } -} diff --git a/data/constants/keycodes/keycodes_0.0.6_connection.hjson b/data/constants/keycodes/keycodes_0.0.6_connection.hjson deleted file mode 100644 index 9be1106825..0000000000 --- a/data/constants/keycodes/keycodes_0.0.6_connection.hjson +++ /dev/null @@ -1,115 +0,0 @@ -{ - "ranges": { - "0x7780/0x003F": { - "define": "QK_CONNECTION" - } - } - "keycodes": { - "0x7780": { - "group": "connection", - "key": "QK_OUTPUT_AUTO", - "aliases": [ - "OU_AUTO" - ] - }, - "0x7781": { - "group": "connection", - "key": "QK_OUTPUT_NEXT", - "aliases": [ - "OU_NEXT" - ] - }, - "0x7782": { - "group": "connection", - "key": "QK_OUTPUT_PREV", - "aliases": [ - "OU_PREV" - ] - }, - "0x7783": { - "group": "connection", - "key": "QK_OUTPUT_NONE", - "aliases": [ - "OU_NONE" - ] - }, - "0x7784": { - "group": "connection", - "key": "QK_OUTPUT_USB", - "aliases": [ - "OU_USB" - ] - }, - "0x7785": { - "group": "connection", - "key": "QK_OUTPUT_2P4GHZ", - "aliases": [ - "OU_2P4G" - ] - }, - "0x7786": { - "group": "connection", - "key": "QK_OUTPUT_BLUETOOTH", - "aliases": [ - "OU_BT" - ] - }, - - "0x7790": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE_NEXT", - "aliases": [ - "BT_NEXT" - ] - }, - "0x7791": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE_PREV", - "aliases": [ - "BT_PREV" - ] - }, - "0x7792": { - "group": "connection", - "key": "QK_BLUETOOTH_UNPAIR", - "aliases": [ - "BT_UNPR" - ] - } - "0x7793": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE1", - "aliases": [ - "BT_PRF1" - ] - }, - "0x7794": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE2", - "aliases": [ - "BT_PRF2" - ] - }, - "0x7795": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE3", - "aliases": [ - "BT_PRF3" - ] - }, - "0x7796": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE4", - "aliases": [ - "BT_PRF4" - ] - }, - "0x7797": { - "group": "connection", - "key": "QK_BLUETOOTH_PROFILE5", - "aliases": [ - "BT_PRF5" - ] - }, - } -} diff --git a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson deleted file mode 100644 index be3285f9e4..0000000000 --- a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson +++ /dev/null @@ -1,14 +0,0 @@ -{ - "keycodes": { - "0x7C20": "!delete!", // old QK_OUTPUT_AUTO - "0x7C21": "!delete!", // old QK_OUTPUT_USB - "0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH - "0x7C7B": { - "group": "quantum", - "key": "QK_LAYER_LOCK", - "aliases": [ - "QK_LLCK" - ] - } - } -} diff --git a/data/constants/keycodes/keycodes_0.0.7.hjson b/data/constants/keycodes/keycodes_0.0.7.hjson deleted file mode 100644 index 52e1a50443..0000000000 --- a/data/constants/keycodes/keycodes_0.0.7.hjson +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ranges": { - "0x77C0/0x003F": { - "define": "QK_COMMUNITY_MODULE" - } - } -} diff --git a/data/constants/module_hooks/0.1.0.hjson b/data/constants/module_hooks/0.1.0.hjson deleted file mode 100644 index c77f4c297e..0000000000 --- a/data/constants/module_hooks/0.1.0.hjson +++ /dev/null @@ -1,25 +0,0 @@ -{ - keyboard_pre_init: { - ret_type: void - args: void - } - keyboard_post_init: { - ret_type: void - args: void - } - pre_process_record: { - ret_type: bool - args: uint16_t keycode, keyrecord_t *record - call_params: keycode, record - } - process_record: { - ret_type: bool - args: uint16_t keycode, keyrecord_t *record - call_params: keycode, record - } - post_process_record: { - ret_type: void - args: uint16_t keycode, keyrecord_t *record - call_params: keycode, record - } -} diff --git a/data/constants/module_hooks/1.0.0.hjson b/data/constants/module_hooks/1.0.0.hjson deleted file mode 100644 index 4e7bf30412..0000000000 --- a/data/constants/module_hooks/1.0.0.hjson +++ /dev/null @@ -1,26 +0,0 @@ -{ - housekeeping_task: { - ret_type: void - args: void - } - suspend_power_down: { - ret_type: void - args: void - } - suspend_wakeup_init: { - ret_type: void - args: void - } - shutdown: { - ret_type: bool - args: bool jump_to_bootloader - call_params: jump_to_bootloader - } - process_detected_host_os: { - ret_type: bool - args: os_variant_t os - call_params: os - guard: defined(OS_DETECTION_ENABLE) - header: os_detection.h - } -} diff --git a/data/constants/module_hooks/1.1.0.hjson b/data/constants/module_hooks/1.1.0.hjson deleted file mode 100644 index b50dad6a66..0000000000 --- a/data/constants/module_hooks/1.1.0.hjson +++ /dev/null @@ -1,55 +0,0 @@ -{ - pointing_device_init: { - ret_type: void - args: void - guard: defined(POINTING_DEVICE_ENABLE) - } - pointing_device_task: { - ret_type: report_mouse_t - args: report_mouse_t mouse_report - call_params: mouse_report - guard: defined(POINTING_DEVICE_ENABLE) - header: report.h - } - rgb_matrix_indicators: { - ret_type: bool - args: void - guard: defined(RGB_MATRIX_ENABLE) - header: rgb_matrix.h - } - rgb_matrix_indicators_advanced: { - ret_type: bool - args: uint8_t led_min, uint8_t led_max - call_params: led_min, led_max - guard: defined(RGB_MATRIX_ENABLE) - header: rgb_matrix.h - } - led_matrix_indicators: { - ret_type: bool - args: void - guard: defined(LED_MATRIX_ENABLE) - header: led_matrix.h - } - led_matrix_indicators_advanced: { - ret_type: bool - args: uint8_t led_min, uint8_t led_max - call_params: led_min, led_max - guard: defined(LED_MATRIX_ENABLE) - header: led_matrix.h - } - default_layer_state_set: { - ret_type: layer_state_t - args: layer_state_t state - call_params: state - guard: !defined(NO_ACTION_LAYER) - header: action_layer.h - } - layer_state_set: { - ret_type: layer_state_t - args: layer_state_t state - call_params: state - guard: !defined(NO_ACTION_LAYER) - header: action_layer.h - } - -} diff --git a/data/constants/module_hooks/1.1.1.hjson b/data/constants/module_hooks/1.1.1.hjson deleted file mode 100644 index 49f5d0d5d0..0000000000 --- a/data/constants/module_hooks/1.1.1.hjson +++ /dev/null @@ -1,3 +0,0 @@ -{ - // This version exists to signify addition of LED/RGB effect support. -} diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index 32322a0309..71902c92d6 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -84,11 +84,6 @@ "board": "STEMCELL", "bootloader": "tinyuf2", "processor": "STM32F411" - }, - "svlinky": { - "board": "QMK_PM2040", - "bootloader": "rp2040", - "processor": "RP2040" } } } diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 4c53aa4339..4c895cf5d5 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -43,14 +43,6 @@ "BOOTMAGIC_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"}, "BOOTMAGIC_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"}, - // Battery - "BATTERY_SAMPLE_INTERVAL": {"info_key": "battery.sample_interval", "value_type": "int"}, - "BATTERY_ADC_PIN": {"info_key": "battery.adc.pin"}, - "BATTERY_ADC_REF_VOLTAGE_MV": {"info_key": "battery.adc.reference_voltage", "value_type": "int"}, - "BATTERY_ADC_VOLTAGE_DIVIDER_R1": {"info_key": "battery.adc.divider_r1", "value_type": "int"}, - "BATTERY_ADC_VOLTAGE_DIVIDER_R2": {"info_key": "battery.adc.divider_r2", "value_type": "int"}, - "BATTERY_ADC_RESOLUTION": {"info_key": "battery.adc.resolution", "value_type": "int"}, - // Caps Word "BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "flag"}, "CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"}, @@ -72,12 +64,6 @@ "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false}, "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false}, - // host - "NKRO_DEFAULT_ON": {"info_key": "host.default.nkro", "value_type": "bool"}, - - // Layer locking - "LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"}, - // Indicators "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, @@ -128,7 +114,6 @@ "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "flag"}, "MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, - "MATRIX_MASKED": {"info_key": "matrix_pins.masked", "value_type": "flag"}, // Mouse Keys "MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"}, @@ -192,7 +177,7 @@ // Split Keyboard "SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"}, - "SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed"}, + "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, "SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false}, "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"}, @@ -212,8 +197,6 @@ "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"}, // Tapping - "CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"}, - "FLOW_TAP_TERM": {"info_key": "tapping.flow_tap_term", "value_type": "int"}, "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"}, "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"}, "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"}, @@ -227,6 +210,7 @@ "TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"}, // USB + "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag"}, "USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"}, "USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"}, "USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"}, @@ -264,7 +248,6 @@ "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"}, - "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag", "deprecated": true, "replace_with": "`host.default.nkro` in info.json"}, // Items we want flagged in lint "VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true}, diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson deleted file mode 100644 index b33cb4fa1f..0000000000 --- a/data/mappings/info_defaults.hjson +++ /dev/null @@ -1,74 +0,0 @@ -{ - "bootmagic": { - "matrix": [0, 0] - }, - "backlight": { - "default": { - "on": true - }, - "breathing_period": 6, - "levels": 3, - "on_state": 1 - }, - "debounce": 5, - "features": { - "command": false, - "console": false - }, - "indicators": { - "on_state": 1 - }, - "led_matrix": { - "default": { - "animation": "solid", - "on": true, - "val": 255, - "speed": 128 - }, - "led_flush_limit": 16, - "max_brightness": 255, - "sleep": false, - "speed_steps": 16, - "val_steps": 16 - }, - "rgblight": { - "default": { - "animation": "static_light", - "on": true, - "hue": 0, - "sat": 255, - "val": 255, - "speed": 0 - }, - "brightness_steps": 17, - "hue_steps": 8, - "max_brightness": 255, - "saturation_steps": 17, - "sleep": false - }, - "rgb_matrix": { - "default": { - "animation": "cycle_left_right", - "on": true, - "hue": 0, - "sat": 255, - "val": 255, - "speed": 128 - }, - "hue_steps": 8, - "led_flush_limit": 16, - "max_brightness": 255, - "sat_steps": 16, - "sleep": false, - "speed_steps": 16, - "val_steps": 16 - }, - "split": { - "serial": { - "driver": "bitbang" - } - }, - "ws2812": { - "driver": "bitbang" - } -} diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 5ecd5c12b3..64972af63b 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -13,7 +13,6 @@ "AUDIO_DRIVER": {"info_key": "audio.driver"}, "BACKLIGHT_DRIVER": {"info_key": "backlight.driver"}, - "BATTERY_DRIVER": {"info_key": "battery.driver"}, "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, "BOARD": {"info_key": "board"}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, @@ -54,8 +53,7 @@ "WS2812_DRIVER": {"info_key": "ws2812.driver"}, // Items we want flagged in lint - "CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, - "CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, - "DEFAULT_FOLDER": {"info_key": "_invalid.default_folder", "invalid": true}, + "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, + "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} } diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 3978235e20..bca1865fc9 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -68,81 +68,6 @@ "bakeneko80": { "target": "kkatano/bakeneko80" }, - "bastardkb/charybdis/3x5/v2/elitec": { - "target": "bastardkb/charybdis/3x5/elitec" - }, - "bastardkb/charybdis/3x5/v2/splinky_2": { - "target": "bastardkb/charybdis/3x5/elitec" - }, - "bastardkb/charybdis/3x5/v2/splinky_3": { - "target": "bastardkb/charybdis/3x5/elitec" - }, - "bastardkb/charybdis/3x5/v2/stemcell": { - "target": "bastardkb/charybdis/3x5/elitec" - }, - "bastardkb/charybdis/3x6/v2/elitec": { - "target": "bastardkb/charybdis/3x6/elitec" - }, - "bastardkb/charybdis/3x6/v2/splinky_2": { - "target": "bastardkb/charybdis/3x6/elitec" - }, - "bastardkb/charybdis/3x6/v2/splinky_3": { - "target": "bastardkb/charybdis/3x6/elitec" - }, - "bastardkb/charybdis/3x6/v2/stemcell": { - "target": "bastardkb/charybdis/3x6/elitec" - }, - "bastardkb/charybdis/4x6/v2/elitec": { - "target": "bastardkb/charybdis/4x6/elitec" - }, - "bastardkb/charybdis/4x6/v2/splinky_2": { - "target": "bastardkb/charybdis/4x6/elitec" - }, - "bastardkb/charybdis/4x6/v2/splinky_3": { - "target": "bastardkb/charybdis/4x6/elitec" - }, - "bastardkb/charybdis/4x6/v2/stemcell": { - "target": "bastardkb/charybdis/4x6/elitec" - }, - "bastardkb/dilemma/3x5_2/splinky": { - "target": "bastardkb/dilemma/3x5_2/promicro" - }, - "bastardkb/scylla/v2/elitec": { - "target": "bastardkb/scylla/promicro" - }, - "bastardkb/scylla/v2/splinky_2": { - "target": "bastardkb/scylla/promicro" - }, - "bastardkb/scylla/v2/splinky_3": { - "target": "bastardkb/scylla/promicro" - }, - "bastardkb/scylla/v2/stemcell": { - "target": "bastardkb/scylla/promicro" - }, - "bastardkb/skeletyl/v2/elitec": { - "target": "bastardkb/skeletyl/promicro" - }, - "bastardkb/skeletyl/v2/splinky_2": { - "target": "bastardkb/skeletyl/promicro" - }, - "bastardkb/skeletyl/v2/splinky_3": { - "target": "bastardkb/skeletyl/promicro" - }, - "bastardkb/skeletyl/v2/stemcell": { - "target": "bastardkb/skeletyl/promicro" - }, - "bastardkb/tbkmini/v2/elitec": { - "target": "bastardkb/tbkmini/promicro" - }, - "bastardkb/tbkmini/v2/splinky_2": { - "target": "bastardkb/tbkmini/promicro" - }, - "bastardkb/tbkmini/v2/splinky_3": { - "target": "bastardkb/tbkmini/promicro" - }, - "bastardkb/tbkmini/v2/stemcell": { - "target": "bastardkb/tbkmini/promicro" - }, "bear_face": { "target": "bear_face/v1" }, @@ -215,15 +140,9 @@ "custommk/genesis": { "target": "custommk/genesis/rev1" }, - "cxt_studio":{ - "target":"cxt_studio/12e4" - }, "daisy": { "target": "ktec/daisy" }, - "deemen17/de60": { - "target": "deemen17/de60/r1" - }, "dp3000": { "target": "dp3000/rev1" }, @@ -275,9 +194,6 @@ "ergodone": { "target": "ktec/ergodone" }, - "ergodox_stm32": { - "target": "handwired/ergodox_stm32" - }, "ergoinu": { "target": "dm9records/ergoinu" }, @@ -332,11 +248,44 @@ "handwired/jscotto/scottostarter": { "target": "handwired/scottokeebs/scottostarter" }, - "helix": { - "target": "helix/beta" + "helix/pico/sc/back": { + "target": "helix/pico/sc" }, - "helix/rev2": { - "target": "helix/beta" + "helix/pico/sc/under": { + "target": "helix/pico/sc" + }, + "helix/rev2/back/oled": { + "target": "helix/rev2/back" + }, + "helix/rev2/oled": { + "target": "helix/rev2" + }, + "helix/rev2/oled/back": { + "target": "helix/rev2/back" + }, + "helix/rev2/oled/under": { + "target": "helix/rev2/under" + }, + "helix/rev2/sc/back": { + "target": "helix/rev2/sc" + }, + "helix/rev2/sc/oled": { + "target": "helix/rev2/sc" + }, + "helix/rev2/sc/oledback": { + "target": "helix/rev2/sc" + }, + "helix/rev2/sc/oledunder": { + "target": "helix/rev2/sc" + }, + "helix/rev2/sc/under": { + "target": "helix/rev2/sc" + }, + "helix/rev2/under": { + "target": "helix/rev2/sc" + }, + "helix/rev2/under/oled": { + "target": "helix/rev2/under" }, "honeycomb": { "target": "keyhive/honeycomb" @@ -392,9 +341,6 @@ "keycapsss/plaid_pad": { "target": "keycapsss/plaid_pad/rev1" }, - "keyten/kt60hs_t": { - "target": "keyten/kt60hs_t/v1" - }, "kira75": { "target": "kira/kira75" }, @@ -449,9 +395,6 @@ "lfkeyboards/smk65": { "target": "lfkeyboards/smk65/revb" }, - "ll3macorn/bongopad": { - "target": "ll3ma/bongopad" - }, "m3v3van": { "target": "matthewdias/m3n3van" }, @@ -632,9 +575,6 @@ "ploopyco/trackball": { "target": "ploopyco/trackball/rev1_005" }, - "plywrks/ply8x": { - "target": "plywrks/ply8x/solder" - }, "polilla": { "target": "polilla/rev1" }, @@ -1087,7 +1027,7 @@ "target": "kprepublic/bm68hsrgb/rev1" }, "late9/rev1": { - "target": "ivndbt/late9/rev1" + "target": "rookiebwoy/late9/rev1" }, "latin17rgb": { "target": "latincompass/latin17rgb" @@ -1252,7 +1192,7 @@ "target": "spaceholdings/nebula68b" }, "neopad/rev1": { - "target": "ivndbt/neopad/rev1" + "target": "rookiebwoy/neopad/rev1" }, "niu_mini": { "target": "kbdfans/niu_mini" @@ -1425,12 +1365,6 @@ "runner3680/5x8": { "target": "omkbd/runner3680/5x8" }, - "saevus/cor": { - "target": "concreteflowers/cor" - }, - "saevus/cor_tkl": { - "target": "concreteflowers/cor_tkl" - }, "scarletbandana": { "target": "woodkeys/scarletbandana" }, @@ -1575,9 +1509,6 @@ "ymd96": { "target": "ymdk/ymd96" }, - "ymdk/id75": { - "target": "ymdk/id75/f103" - }, "ymdk_np21": { "target": "ymdk/np21" }, @@ -1615,757 +1546,5 @@ }, "dnworks/9973": { "target": "dnworks/tkl87" - }, - // DEFAULT_FOLDER removed during 2025 Q1 cycle - "0_sixty": { - "target": "0_sixty/base" - }, - "0xcb/splaytoraid": { - "target": "0xcb/splaytoraid/rp2040_ce" - }, - "1upkeyboards/pi40": { - "target": "1upkeyboards/pi40/mit_v1_0" - }, - "1upkeyboards/pi50": { - "target": "1upkeyboards/pi50/grid" - }, - "1upkeyboards/sweet16": { - "target": "1upkeyboards/sweet16/v1" - }, - "25keys/aleth42": { - "target": "25keys/aleth42/rev1" - }, - "25keys/zinc": { - "target": "25keys/zinc/rev1" - }, - "40percentclub/i75": { - "target": "40percentclub/i75/promicro" - }, - "40percentclub/polyandry": { - "target": "40percentclub/polyandry/promicro" - }, - "8pack": { - "target": "8pack/rev12" - }, - "adkb96": { - "target": "adkb96/rev1" - }, - "adm42": { - "target": "adm42/rev4" - }, - "aeboards/satellite": { - "target": "aeboards/satellite/rev1" - }, - "atreus": { - "target": "atreus/astar" - }, - "atreyu": { - "target": "atreyu/rev1" - }, - "biacco42/ergo42": { - "target": "biacco42/ergo42/rev1" - }, - "binepad/bn009": { - "target": "binepad/bn009/r2" - }, - "binepad/bnr1": { - "target": "binepad/bnr1/v2" - }, - "boston_meetup": { - "target": "boston_meetup/2019" - }, - "bpiphany/frosty_flake": { - "target": "bpiphany/frosty_flake/20140521" - }, - "buzzard": { - "target": "buzzard/rev1" - }, - "cannonkeys/db60": { - "target": "cannonkeys/db60/rev2" - }, - "clickety_split/leeloo": { - "target": "clickety_split/leeloo/rev3" - }, - "converter/palm_usb": { - "target": "converter/palm_usb/stowaway" - }, - "crkbd": { - "target": "crkbd/rev1" - }, - "dailycraft/bat43": { - "target": "dailycraft/bat43/rev2" - }, - "dailycraft/claw44": { - "target": "dailycraft/claw44/rev1" - }, - "dailycraft/sandbox": { - "target": "dailycraft/sandbox/rev2" - }, - "dailycraft/wings42": { - "target": "dailycraft/wings42/rev2" - }, - "delikeeb/vanana": { - "target": "delikeeb/vanana/rev2" - }, - "delikeeb/waaffle/rev3": { - "target": "delikeeb/waaffle/rev3/pro_micro" - }, - "deltasplit75": { - "target": "deltasplit75/v2" - }, - "drhigsby/ogurec": { - "target": "drhigsby/ogurec/left_pm" - }, - "duck/octagon": { - "target": "duck/octagon/v2" - }, - "duck/orion": { - "target": "duck/orion/v3" - }, - "ducky/one2mini": { - "target": "ducky/one2mini/1861st" - }, - "ducky/one2sf": { - "target": "ducky/one2sf/1967st" - }, - "dumbpad": { - "target": "dumbpad/v0x" - }, - "durgod/galaxy": { - "target": "durgod/dgk6x/galaxy" - }, - "durgod/venus": { - "target": "durgod/dgk6x/venus" - }, - "dztech/tofu/ii": { - "target": "dztech/tofu/ii/v1" - }, - "dztech/tofu/jr": { - "target": "dztech/tofu/jr/v1" - }, - "eco": { - "target": "eco/rev2" - }, - "ergoslab": { - "target": "ergoslab/rev1" - }, - "ergotravel": { - "target": "ergotravel/rev1" - }, - "evyd13/atom47": { - "target": "evyd13/atom47/rev4" - }, - "fortitude60": { - "target": "fortitude60/rev1" - }, - "fruitykeeb/fruitbar/r1": { - "target": "fruitykeeb/fruitbar/r1/promicro" - }, - "ghs/jem": { - "target": "ghs/jem/soldered" - }, - "hadron": { - "target": "hadron/ver2" - }, - "handwired/bento": { - "target": "handwired/bento/rev1" - }, - "handwired/dactyl_manuform/6x6": { - "target": "handwired/dactyl_manuform/6x6/promicro" - }, - "handwired/meck_tkl": { - "target": "handwired/meck_tkl/blackpill_f401" - }, - "handwired/ms_sculpt_mobile": { - "target": "handwired/ms_sculpt_mobile/teensy2pp" - }, - "handwired/onekey": { - "target": "handwired/onekey/promicro" - }, - "handwired/pill60": { - "target": "handwired/pill60/bluepill" - }, - "handwired/postageboard": { - "target": "handwired/postageboard/mini" - }, - "handwired/qc60": { - "target": "handwired/qc60/proto" - }, - "handwired/sono1": { - "target": "handwired/sono1/t2pp" - }, - "handwired/splittest": { - "target": "handwired/splittest/promicro" - }, - "handwired/stef9998/split_5x7": { - "target": "handwired/stef9998/split_5x7/rev1" - }, - "handwired/symmetric70_proto/promicro": { - "target": "handwired/symmetric70_proto/promicro/base" - }, - "handwired/symmetric70_proto/proton_c": { - "target": "handwired/symmetric70_proto/proton_c/base" - }, - "handwired/unk": { - "target": "handwired/unk/rev1" - }, - "handwired/xealous": { - "target": "handwired/xealous/rev1" - }, - "hillside/46": { - "target": "hillside/46/0_1" - }, - "hhkb/ansi": { - "target": "hhkb/ansi/32u4" - }, - "hillside/48": { - "target": "hillside/48/0_1" - }, - "hillside/52": { - "target": "hillside/52/0_1" - }, - "ibnuda/squiggle": { - "target": "ibnuda/squiggle/rev1" - }, - "idobao/id80/v1": { - "target": "idobao/id80/v2/ansi" - }, - "idobao/id80/v3": { - "target": "idobao/id80/v3/ansi" - }, - "inett_studio/sq80": { - "target": "inett_studio/sq80/hotswap_layout_i" - }, - "input_club/infinity60": { - "target": "input_club/infinity60/led" - }, - "jacky_studio/bear_65": { - "target": "jacky_studio/bear_65/rev1" - }, - "jacky_studio/piggy60/rev1": { - "target": "jacky_studio/piggy60/rev1/solder" - }, - "jadookb/jkb65": { - "target": "jadookb/jkb65/r1" - }, - "jian": { - "target": "jian/rev2" - }, - "jiran": { - "target": "jiran/rev1" - }, - "jorne": { - "target": "jorne/rev1" - }, - "junco": { - "target": "junco/rev1" - }, - "kakunpc/angel17": { - "target": "kakunpc/angel17/rev1" - }, - "kakunpc/angel64": { - "target": "kakunpc/angel64/rev1" - }, - "kakunpc/business_card": { - "target": "kakunpc/business_card/beta" - }, - "kakunpc/suihankey": { - "target": "kakunpc/suihankey/rev1" - }, - "kakunpc/suihankey/split": { - "target": "kakunpc/suihankey/split/rev1" - }, - "kapcave/paladinpad": { - "target": "kapcave/paladinpad/rev2" - }, - "kapl": { - "target": "kapl/rev1" - }, - "kbdfans/d45": { - "target": "kbdfans/d45/v2" - }, - "kbdfans/kbd75": { - "target": "kbdfans/kbd75/rev1" - }, - "keebio/bdn9": { - "target": "keebio/bdn9/rev1" - }, - "keebio/convolution": { - "target": "keebio/convolution/rev1" - }, - "keebio/foldkb": { - "target": "keebio/foldkb/rev1" - }, - "keebio/kbo5000": { - "target": "keebio/kbo5000/rev1" - }, - "keebio/levinson": { - "target": "keebio/levinson/rev2" - }, - "keebio/quefrency": { - "target": "keebio/quefrency/rev1" - }, - "keebio/rorschach": { - "target": "keebio/rorschach/rev1" - }, - "keebio/sinc": { - "target": "keebio/sinc/rev1" - }, - "keebio/viterbi": { - "target": "keebio/viterbi/rev2" - }, - "keycapsss/kimiko": { - "target": "keycapsss/kimiko/rev2" - }, - "keyhive/navi10": { - "target": "keyhive/navi10/rev3" - }, - "keyhive/uno": { - "target": "keyhive/uno/rev1" - }, - "kin80": { - "target": "kin80/blackpill401" - }, - "kprepublic/cstc40/daughterboard": { - "target": "kprepublic/cstc40/rev1" - }, - "kprepublic/cstc40/single_pcb": { - "target": "kprepublic/cstc40/rev2" - }, - "kumaokobo/kudox_full": { - "target": "kumaokobo/kudox_full/rev1" - }, - "kumaokobo/kudox_game": { - "target": "kumaokobo/kudox_game/rev2" - }, - "kumaokobo/kudox": { - "target": "kumaokobo/kudox/rev3" - }, - "kumaokobo/pico": { - "target": "kumaokobo/pico/65keys" - }, - "lazydesigners/dimple": { - "target": "lazydesigners/dimple/staggered/rev1" - }, - "lets_split": { - "target": "lets_split/rev2" - }, - "lfkeyboards/lfk87": { - "target": "lfkeyboards/lfk78/revc" - }, - "lily58": { - "target": "lily58/rev1" - }, - "lime": { - "target": "lime/rev1" - }, - "maple_computing/christmas_tree": { - "target": "maple_computing/christmas_tree/v2017" - }, - "maple_computing/ivy": { - "target": "maple_computing/ivy/rev1" - }, - "maple_computing/launchpad": { - "target": "maple_computing/launchpad/rev1" - }, - "maple_computing/minidox": { - "target": "maple_computing/minidox/rev1" - }, - "mariorion_v25": { - "target": "mariorion_v25/prod" - }, - "marksard/rhymestone": { - "target": "marksard/rhymestone/rev1" - }, - "marksard/treadstone32": { - "target": "marksard/treadstone32/rev1" - }, - "marksard/treadstone48": { - "target": "marksard/treadstone48/rev1" - }, - "maxipad": { - "target": "maxipad/promicro" - }, - "mechkeys/mechmini": { - "target": "mechkeys/mechmini/v2" - }, - "mechllama/g35": { - "target": "mechllama/g35/v2" - }, - "mechlovin/adelais": { - "target": "mechlovin/adelais/standard_led/arm/rev2" - }, - "mechlovin/adelais/standard_led/arm/rev4": { - "target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303" - }, - "mechlovin/adelais/standard_led/arm": { - "target": "mechlovin/adelais/standard_led/arm/rev2" - }, - "mechlovin/adelais/standard_led/avr": { - "target": "mechlovin/adelais/standard_led/avr/rev1" - }, - "mechlovin/hannah65/rev1": { - "target": "mechlovin/hannah65/rev1/haus" - }, - "mechlovin/infinity87/rev1": { - "target": "mechlovin/infinity87/rev1/standard" - }, - "mechlovin/infinity87": { - "target": "mechlovin/infinity87/rgb_rev1" - }, - "mechlovin/mechlovin9": { - "target": "mechlovin/mechlovin9/rev1" - }, - "mechlovin/olly/jf": { - "target": "mechlovin/olly/jf/rev1" - }, - "mechlovin/zed1800": { - "target": "mechlovin/zed1800/saber" - }, - "mechlovin/zed65/no_backlight": { - "target": "mechlovin/zed65/no_backlight/wearhaus66" - }, - "mechlovin/zed65": { - "target": "mechlovin/zed65/no_backlight/wearhaus66" - }, - "mechwild/bde": { - "target": "mechwild/bde/rev2" - }, - "mechwild/mokulua": { - "target": "mechwild/mokulua/standard" - }, - "mechwild/obe/f401": { - "target": "mechwild/obe/f401/base" - }, - "mechwild/obe/f411": { - "target": "mechwild/obe/f411/base" - }, - "mechwild/obe": { - "target": "mechwild/obe/f401/base" - }, - "mechwild/waka60/f401": { - "target": "mechwild/waka60/f401/base" - }, - "mechwild/waka60/f411": { - "target": "mechwild/waka60/f411/base" - }, - "mechwild/waka60": { - "target": "mechwild/waka60/f401/base" - }, - "murcielago": { - "target": "murcielago/rev1" - }, - "nullbitsco/scramble": { - "target": "nullbitsco/scramble/v2" - }, - "omkbd/ergodash": { - "target": "omkbd/ergodash/rev1" - }, - "omkbd/runner3680": { - "target": "omkbd/runner3680/5x8" - }, - "orthodox": { - "target": "orthodox/rev3" - }, - "peej/rosaline": { - "target": "peej/rosaline/staggered" - }, - "peej/tripel": { - "target": "peej/tripel/left" - }, - "peranekofactory/tone": { - "target": "peranekofactory/tone/rev2" - }, - "phase_studio/titan65": { - "target": "phase_studio/titan65/hotswap" - }, - "pica40": { - "target": "pica40/rev2" - }, - "pinky": { - "target": "pinky/3" - }, - "ploopyco/madromys": { - "target": "ploopyco/madromys/rev1_001" - }, - "ploopyco/trackball_mini": { - "target": "ploopyco/trackball_mini/rev1_001" - }, - "ploopyco/trackball_nano": { - "target": "ploopyco/trackball_nano/rev1_001" - }, - "ploopyco/trackball_thumb": { - "target": "ploopyco/trackball_thumb/rev1_001" - }, - "primekb/meridian": { - "target": "primekb/meridian/ktr1010" - }, - "primekb/prime_e": { - "target": "primekb/prime_e/std" - }, - "program_yoink": { - "target": "program_yoink/staggered" - }, - "projectcain/vault35": { - "target": "projectcain/vault35/atmega32u4" - }, - "qpockets/space_space": { - "target": "qpockets/space_space/rev2" - }, - "qwertyydox": { - "target": "qwertyydox/rev1" - }, - "rate/pistachio": { - "target": "rate/pistachio/rev2" - }, - "recompile_keys/choco60": { - "target": "recompile_keys/choco60/rev1" - }, - "recompile_keys/nomu30": { - "target": "recompile_keys/nomu30/rev1" - }, - "redox/rev1": { - "target": "redox/rev1/base" - }, - "rgbkb/mun": { - "target": "rgbkb/mun/rev1" - }, - "rgbkb/sol3": { - "target": "rgbkb/sol3/rev1" - }, - "rgbkb/sol": { - "target": "rgbkb/sol/rev2" - }, - "rgbkb/zen": { - "target": "rgbkb/zen/rev2" - }, - "rgbkb/zygomorph": { - "target": "rgbkb/zygomorph/rev1" - }, - "rmi_kb/herringbone": { - "target": "rmi_kb/herringbone/v1" - }, - "rmi_kb/mona": { - "target": "rmi_kb/mona/v1_1" - }, - "rmi_kb/tkl_ff": { - "target": "rmi_kb/tkl_ff/v1" - }, - "rmi_kb/wete": { - "target": "rmi_kb/wete/v2" - }, - "rookiebwoy/late9": { - "target": "ivndbt/late9/rev1" - }, - "rookiebwoy/neopad": { - "target": "ivndbt/neopad/rev1" - }, - "ivndbt/late9": { - "target": "ivndbt/late9/rev1" - }, - "ivndbt/neopad": { - "target": "ivndbt/neopad/rev1" - }, - "rura66": { - "target": "rura66/rev1" - }, - "salicylic_acid3/7skb": { - "target": "salicylic_acid3/7skb/rev1" - }, - "salicylic_acid3/getta25": { - "target": "salicylic_acid3/getta25/rev1" - }, - "salicylic_acid3/jisplit89": { - "target": "salicylic_acid3/jisplit89/rev1" - }, - "salicylic_acid3/naked48": { - "target": "salicylic_acid3/naked48/rev1" - }, - "salicylic_acid3/naked60": { - "target": "salicylic_acid3/naked60/rev1" - }, - "salicylic_acid3/naked64": { - "target": "salicylic_acid3/naked64/rev1" - }, - "salicylic_acid3/setta21": { - "target": "salicylic_acid3/setta21/rev1" - }, - "sawnsprojects/okayu": { - "target": "sawnsprojects/okayu/stm32f072" - }, - "smoll/lefty": { - "target": "smoll/lefty/rev2" - }, - "sofle": { - "target": "sofle/rev1" - }, - "spaceholdings/nebula68b": { - "target": "spaceholdings/nebula68b/solder" - }, - "spacetime": { - "target": "spacetime/rev1" - }, - "splitkb/aurora/corne": { - "target": "splitkb/aurora/corne/rev1" - }, - "splitkb/aurora/helix": { - "target": "splitkb/aurora/helix/rev1" - }, - "splitkb/aurora/lily58": { - "target": "splitkb/aurora/lily58/rev1" - }, - "splitkb/aurora/sofle_v2": { - "target": "splitkb/aurora/sofle_v2/rev1" - }, - "splitkb/aurora/sweep": { - "target": "splitkb/aurora/sweep/rev1" - }, - "splitkb/kyria": { - "target": "splitkb/kyria/rev3" - }, - "splitkb/kyria/rev1": { - "target": "splitkb/kyria/rev1/base" - }, - "splitkb/kyria/rev2": { - "target": "splitkb/kyria/rev2/base" - }, - "splitty": { - "target": "splitty/rev1" - }, - "studiokestra/galatea": { - "target": "studiokestra/galatea/rev1" - }, - "takashiski/hecomi": { - "target": "takashiski/hecomi/alpha" - }, - "takashiski/namecard2x4": { - "target": "takashiski/namecard2x4/rev2" - }, - "teleport/native": { - "target": "teleport/native/iso" - }, - "themadnoodle/noodlepad": { - "target": "themadnoodle/noodlepad/v1" - }, - "tkw/grandiceps": { - "target": "tkw/grandiceps/rev1" - }, - "tominabox1/le_chiffre": { - "target": "tominabox1/le_chiffre/rev1" - }, - "tominabox1/littlefoot_lx": { - "target": "tominabox1/littlefoot_lx/rev1" - }, - "tominabox1/underscore33": { - "target": "tominabox1/underscore33/rev1" - }, - "trnthsn/e8ghty": { - "target": "trnthsn/e8ghty/stm32f103" - }, - "trnthsn/s6xty5neor2": { - "target": "trnthsn/s6xty5neor2/stm32f103" - }, - "tweetydabird/lotus58/elite_c": { - "target": "tweetydabird/lotus58" - }, - "tweetydabird/lotus58/nanoboot": { - "target": "tweetydabird/lotus58" - }, - "tweetydabird/lotus58/promicro": { - "target": "tweetydabird/lotus58" - }, - "tweetydabird/lotus58/rp2040_ce": { - "target": "tweetydabird/lotus58" - }, - "unison": { - "target": "unison/v04" - }, - "uzu42": { - "target": "uzu42/rev1" - }, - "vitamins_included": { - "target": "vitamins_included/rev2" - }, - "westm/westm68": { - "target": "westm/westm68/rev2" - }, - "westm/westm9": { - "target": "westm/westm9/rev2" - }, - "woodkeys/meira": { - "target": "woodkeys/meira/promicro" - }, - "work_louder/loop": { - "target": "work_louder/loop/rev3" - }, - "work_louder/work_board": { - "target": "work_louder/work_board/rev3" - }, - "yanghu/unicorne": { - "target": "yanghu/unicorne/f411" - }, - "yosino58": { - "target": "yosino58/rev1" - }, - "ymdk/yd60mq": { - "target": "ymdk/yd60mq/12led" - }, - "yushakobo/navpad/10": { - "target": "yushakobo/navpad/10/rev1" - }, - "yynmt/acperience12": { - "target": "yynmt/acperience12/rev1" - }, - "zsa/planck_ez": { - "target": "zsa/planck_ez/base" - }, - // DEFAULT_FOLDER removed during 2025 Q3 cycle - "cannonkeys/satisfaction75": { - "target": "cannonkeys/satisfaction75/rev1" - }, - "converter/adb_usb": { - "target": "converter/adb_usb/rev1" - }, - "converter/sun_usb": { - "target": "converter/sun_usb/type5" - }, - "converter/usb_usb": { - "target": "converter/usb_usb/hasu" - }, - "durgod/dgk6x": { - "target": "durgod/dgk6x/hades_ansi" - }, - "ergodox_ez": { - "target": "ergodox_ez/base" - }, - "ferris/0_2": { - "target": "ferris/0_2/base" - }, - "handwired/dygma/raise": { - "target": "handwired/dygma/raise/ansi" - }, - "helix/rev3_4rows": { - "target": "helix/rev3" - }, - "helix/rev3_5rows": { - "target": "helix/rev3" - }, - "ibm/model_m/mschwingen": { - "target": "ibm/model_m/mschwingen/led_wired" - }, - "mechwild/sugarglider": { - "target": "mechwild/sugarglider/wide_oled/f401" - }, - "mechwild/sugarglider/wide_oled": { - "target": "mechwild/sugarglider/wide_oled/f401" - }, - "novelkeys/nk65": { - "target": "novelkeys/nk65/v1" - }, - "novelkeys/nk65/base": { - "target": "novelkeys/nk65/v1" - }, - "sirius/uni660/rev2": { - "target": "sirius/uni660/rev2/ansi" } } diff --git a/data/schemas/api_keyboard.jsonschema b/data/schemas/api_keyboard.jsonschema index a3b7872ee0..6a30b5d990 100644 --- a/data/schemas/api_keyboard.jsonschema +++ b/data/schemas/api_keyboard.jsonschema @@ -1,7 +1,7 @@ { "$id": "qmk.api.keyboard.v1", "allOf": [ - {"$ref": "./keyboard.jsonschema#"}, + {"$ref": "qmk.keyboard.v1"}, { "properties": { "keymaps": { @@ -10,8 +10,8 @@ "url": {"type": "string"} } }, - "parse_errors": {"$ref": "./definitions.jsonschema#/string_array"}, - "parse_warnings": {"$ref": "./definitions.jsonschema#/string_array"}, + "parse_errors": {"$ref": "qmk.definitions.v1#/string_array"}, + "parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"}, "processor_type": {"type": "string"}, "protocol": {"type": "string"}, "keyboard_folder": {"type": "string"}, diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema deleted file mode 100644 index 92981ceb5c..0000000000 --- a/data/schemas/community_module.jsonschema +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema#", - "$id": "qmk.community_module.v1", - "title": "Community Module Information", - "type": "object", - "required": ["module_name", "maintainer"], - "properties": { - "module_name": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "license": {"type": "string"}, - "url": { - "type": "string", - "format": "uri" - }, - "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"}, - "features": {"$ref": "./keyboard.jsonschema#/definitions/features_config"} - } -} diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 93b1c82b1c..7649a8e31b 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -17,9 +17,9 @@ "additionalProperties": false, "required": ["pin_a", "pin_b"], "properties": { - "pin_a": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "pin_b": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } } @@ -28,29 +28,24 @@ "dip_switch_config": { "type": "object", "properties": { - "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} + "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } - }, - "features_config": { - "$ref": "./definitions.jsonschema#/boolean_array", - "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, - "not": {"required": ["lto"]} } }, "type": "object", "not": {"required": ["vendorId", "productId"]}, // reject via keys... "properties": { - "keyboard_name": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "keyboard_folder": {"$ref": "./definitions.jsonschema#/keyboard"}, - "maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "manufacturer": {"$ref": "./definitions.jsonschema#/text_identifier"}, + "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"}, + "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"}, "url": { "type": "string", "format": "uri" }, "development_board": { "type": "string", - "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera", "svlinky"] + "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera"] }, "pin_compatible": { "type": "string", @@ -84,7 +79,6 @@ "STM32F407", "STM32F411", "STM32F446", - "STM32G0B1", "STM32G431", "STM32G474", "STM32H723", @@ -98,7 +92,6 @@ "GD32VF103", "WB32F3G71", "WB32FQ95", - "AT32F415", "atmega16u2", "atmega32u2", "atmega16u4", @@ -119,8 +112,8 @@ "type": "object", "additionalProperties": false, "properties": { - "data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, + "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "default_brightness": { "type": "integer", "minimum": 0, @@ -145,13 +138,13 @@ "enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"] }, "macro_beep": {"type": "boolean"}, - "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, + "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, "power_control": { "type": "object", "additionalProperties": false, "properties": { - "on_state": {"$ref": "./definitions.jsonschema#/bit"}, - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"} + "on_state": {"$ref": "qmk.definitions.v1#/bit"}, + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} } }, "voices": {"type": "boolean"} @@ -171,45 +164,23 @@ "properties": { "on": {"type": "boolean"}, "breathing": {"type": "boolean"}, - "brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, "breathing": {"type": "boolean"}, - "breathing_period": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "levels": { "type": "integer", "minimum": 1, "maximum": 31 }, - "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, - "on_state": {"$ref": "./definitions.jsonschema#/bit"}, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"}, "as_caps_lock": {"type": "boolean"} } }, - "battery": { - "type": "object", - "additionalProperties": false, - "properties": { - "driver": { - "type": "string", - "enum": ["adc", "custom", "vendor"] - }, - "adc": { - "type": "object", - "additionalProperties": false, - "properties": { - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "reference_voltage": {"type": "integer"}, - "divider_r1": {"type": "integer"}, - "divider_r2": {"type": "integer"}, - "resolution": {"type": "integer"} - } - }, - "sample_interval": {"type": "integer"} - } - }, "bluetooth": { "type": "object", "additionalProperties": false, @@ -245,7 +216,6 @@ "type": "string", "enum": [ "apm32-dfu", - "at32-dfu", "atmel-dfu", "bootloadhid", "caterina", @@ -291,7 +261,7 @@ "type": "string", "enum": ["COL2ROW", "ROW2COL"] }, - "debounce": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "caps_word": { "type": "object", "additionalProperties": false, @@ -299,20 +269,20 @@ "enabled": {"type": "boolean"}, "both_shifts_turns_on": {"type": "boolean"}, "double_tap_shift_turns_on": {"type": "boolean"}, - "idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "invert_on_shift": {"type": "boolean"} } }, "combo": { "type": "object", "properties": { - "count": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "term": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "term": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "community_layouts": { "type": "array", - "items": {"$ref": "./definitions.jsonschema#/filename"} + "items": {"$ref": "qmk.definitions.v1#/filename"} }, "dip_switch": { "$ref": "#/definitions/dip_switch_config", @@ -342,10 +312,10 @@ "properties": { "driver": { "type": "string", - "enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] + "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] }, - "backing_size": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "logical_size": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } } @@ -356,16 +326,20 @@ "enabled": {"type": "boolean"} } }, - "features": { "$ref": "#/definitions/features_config" }, + "features": { + "$ref": "qmk.definitions.v1#/boolean_array", + "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, + "not": {"required": ["lto"]} + }, "indicators": { "type": "object", "properties": { - "caps_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "num_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "scroll_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "compose": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "kana": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "on_state": {"$ref": "./definitions.jsonschema#/bit"} + "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, "joystick": { @@ -373,20 +347,20 @@ "properties": { "enabled": {"type": "boolean"}, "driver": {"type": "string"}, - "button_count": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "axis_resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "button_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "axes": { "type": "object", - "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}, + "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]} "additionalProperties": { "oneOf": [ { "type": "object", "properties": { - "input_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "low": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "rest": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "high": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "input_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "low": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "rest": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "high": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, { @@ -398,20 +372,14 @@ } } }, - "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"}, - "layer_lock": { - "type": "object", - "properties": { - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} - } - }, + "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, "layout_aliases": { "type": "object", - "additionalProperties": {"$ref": "./definitions.jsonschema#/layout_macro"} + "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"} }, "layouts": { "type": "object", - "propertyNames": {"$ref": "./definitions.jsonschema#/layout_macro"}, + "propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"}, "additionalProperties": { "type": "object", "additionalProperties": false, @@ -426,7 +394,7 @@ "additionalProperties": false, "required": ["x", "y"], "properties": { - "encoder": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "label": { "type": "string", "pattern": "^[^\\n]*$" @@ -440,17 +408,13 @@ "minimum": 0 } }, - "r": {"$ref": "./definitions.jsonschema#/signed_decimal"}, - "rx": {"$ref": "./definitions.jsonschema#/unsigned_decimal"}, - "ry": {"$ref": "./definitions.jsonschema#/unsigned_decimal"}, - "h": {"$ref": "./definitions.jsonschema#/key_unit"}, - "w": {"$ref": "./definitions.jsonschema#/key_unit"}, - "x": {"$ref": "./definitions.jsonschema#/key_unit"}, - "y": {"$ref": "./definitions.jsonschema#/key_unit"}, - "hand": { - "type": "string", - "enum": ["L", "R", "*"] - } + "r": {"$ref": "qmk.definitions.v1#/signed_decimal"}, + "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, + "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, + "h": {"$ref": "qmk.definitions.v1#/key_unit"}, + "w": {"$ref": "qmk.definitions.v1#/key_unit"}, + "x": {"$ref": "qmk.definitions.v1#/key_unit"}, + "y": {"$ref": "qmk.definitions.v1#/key_unit"} } } } @@ -466,24 +430,12 @@ } } }, - "host": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": false, - "properties": { - "nkro": {"type": "boolean"} - } - } - } - }, "leader_key": { "type": "object", "properties": { "timing": {"type": "boolean"}, "strict_processing": {"type": "boolean"}, - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "matrix_pins": { @@ -493,39 +445,32 @@ "custom": {"type": "boolean"}, "custom_lite": {"type": "boolean"}, "ghost": {"type": "boolean"}, - "input_pressed_state": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "io_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "masked": {"type": "boolean"}, + "input_pressed_state": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "direct": { "type": "array", - "items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} + "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} }, - "cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, - "rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} - } - }, - "modules": { - "type": "array", - "items": { - "type": "string" + "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, + "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } }, "mouse_key": { "type": "object", "properties": { "enabled": {"type": "boolean"}, - "delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "max_speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "time_to_max": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "wheel_delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, "oneshot": { "type": "object", "properties": { - "tap_toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "led_matrix": { @@ -533,7 +478,7 @@ "properties": { "animations": { "type": "object", - "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, + "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, "additionalProperties": {"type": "boolean"} }, "default": { @@ -542,8 +487,8 @@ "properties": { "on": {"type": "boolean"}, "animation": {"type": "string"}, - "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, "driver": { @@ -569,28 +514,27 @@ "type": "array", "minItems": 2, "maxItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} }, - "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "react_on_keyup": {"type": "boolean"}, "sleep": {"type": "boolean"}, "split_count": { "type": "array", "minItems": 2, "maxItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} }, "layout": { "type": "array", "items": { "type": "object", "additionalProperties": false, - "required": ["x", "y"], "properties": { "matrix": { "type": "array", @@ -601,9 +545,9 @@ "minimum": 0 } }, - "x": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "y": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "x": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "y": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -614,7 +558,7 @@ "properties": { "animations": { "type": "object", - "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, + "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, "additionalProperties": {"type": "boolean"} }, "default": { @@ -623,10 +567,10 @@ "properties": { "on": {"type": "boolean"}, "animation": {"type": "string"}, - "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, "driver": { @@ -654,30 +598,29 @@ "type": "array", "minItems": 2, "maxItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} }, - "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "sat_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "react_on_keyup": {"type": "boolean"}, "sleep": {"type": "boolean"}, "split_count": { "type": "array", "minItems": 2, "maxItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} }, "layout": { "type": "array", "items": { "type": "object", "additionalProperties": false, - "required": ["x", "y"], "properties": { "matrix": { "type": "array", @@ -688,9 +631,9 @@ "minimum": 0 } }, - "x": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "y": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "x": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "y": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -702,27 +645,27 @@ "properties": { "animations": { "type": "object", - "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, + "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, "additionalProperties": {"type": "boolean"} }, - "brightness_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "default": { "type": "object", "additionalProperties": false, "properties": { "on": {"type": "boolean"}, "animation": {"type": "string"}, - "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } }, "driver": { "type": "string", "enum": ["apa102", "custom", "ws2812"] }, - "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "layers": { "type": "object", "additionalProperties": false, @@ -737,29 +680,29 @@ "override_rgb": {"type": "boolean"} } }, - "led_count": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "led_map": { "type": "array", "minItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} }, - "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "pin": { - "$ref": "./definitions.jsonschema#/mcu_pin", + "$ref": "qmk.definitions.v1#/mcu_pin", "$comment": "Deprecated: use ws2812.pin instead" }, "rgbw": { "type": "boolean", "$comment": "Deprecated: use ws2812.rgbw instead" }, - "saturation_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sleep": {"type": "boolean"}, "split": {"type": "boolean"}, "split_count": { "type": "array", "minItems": 2, "maxItems": 2, - "items": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } }, @@ -768,8 +711,8 @@ "additionalProperties": false, "properties": { "enabled": {"type": "boolean"}, - "unlock_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "unlock_sequence": { "type": "array", "minItems": 1, @@ -803,8 +746,8 @@ "properties": { "enabled": {"type": "boolean"}, "mouse_enabled": {"type": "boolean"}, - "clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, + "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "driver": { "type": "string", "enum": ["busywait", "interrupt", "usart", "vendor"] @@ -841,11 +784,11 @@ "properties": { "direct": { "type": "array", - "items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} + "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} }, - "cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, - "rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, - "unused": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} + "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, + "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, + "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } } } @@ -872,21 +815,22 @@ "type": "object", "additionalProperties": false, "properties": { - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "matrix_grid": { - "$ref": "./definitions.jsonschema#/mcu_pin_array", + "$ref": "qmk.definitions.v1#/mcu_pin_array", "minItems": 2, "maxItems": 2 } } }, "soft_serial_pin": { - "$ref": "./definitions.jsonschema#/mcu_pin", + "$ref": "qmk.definitions.v1#/mcu_pin", "$comment": "Deprecated: use split.serial.pin instead" }, "soft_serial_speed": { "type": "integer", - "$comment": "Deprecated: use split.serial.speed instead" + "minimum": 0, + "maximum": 5 }, "serial": { "type": "object", @@ -896,12 +840,7 @@ "type": "string", "enum": ["bitbang", "usart", "vendor"] }, - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "speed": { - "type": "integer", - "minimum": 0, - "maximum": 5 - } + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} } }, "transport": { @@ -929,7 +868,7 @@ } }, "watchdog": {"type": "boolean"}, - "watchdog_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sync_matrix_state": { "type": "boolean", "$comment": "Deprecated: use sync.matrix_state instead" @@ -945,8 +884,8 @@ "additionalProperties": false, "properties": { "enabled": {"type": "boolean"}, - "polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "main": { @@ -956,7 +895,7 @@ }, "matrix_grid": { "type": "array", - "items": {"$ref": "./definitions.jsonschema#/mcu_pin"}, + "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "$comment": "Deprecated: use split.handedness.matrix_grid instead" } } @@ -968,7 +907,6 @@ "tapping": { "type": "object", "properties": { - "chordal_hold": {"type": "boolean"}, "force_hold": {"type": "boolean"}, "force_hold_per_key": {"type": "boolean"}, "ignore_mod_tap_interrupt": {"type": "boolean"}, @@ -978,9 +916,9 @@ "permissive_hold_per_key": {"type": "boolean"}, "retro": {"type": "boolean"}, "retro_per_key": {"type": "boolean"}, - "term": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "term_per_key": {"type": "boolean"}, - "toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "usb": { @@ -988,20 +926,16 @@ "additionalProperties": false, "properties": { "device_ver": { - "$ref": "./definitions.jsonschema#/hex_number_4d", + "$ref": "qmk.definitions.v1#/hex_number_4d", "$comment": "Deprecated: use device_version instead" }, - "device_version": {"$ref": "./definitions.jsonschema#/bcd_version"}, - "force_nkro": { - "type": "boolean", - "$comment": "Deprecated: use host.default.nkro instead" - - }, - "pid": {"$ref": "./definitions.jsonschema#/hex_number_4d"}, - "vid": {"$ref": "./definitions.jsonschema#/hex_number_4d"}, - "max_power": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "device_version": {"$ref": "qmk.definitions.v1#/bcd_version"}, + "force_nkro": {"type": "boolean"}, + "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, + "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, + "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "no_startup_check": {"type": "boolean"}, - "polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "shared_endpoint": { "type": "object", "additionalProperties": false, @@ -1010,7 +944,7 @@ "mouse": {"type": "boolean"} } }, - "suspend_wakeup_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "wait_for_enumeration": {"type": "boolean"} } }, @@ -1018,9 +952,9 @@ "type": "object", "additionalProperties": false, "properties": { - "keys_per_scan": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "tap_keycode_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, - "tap_capslock_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "locking": { "type": "object", "additionalProperties": false, @@ -1035,10 +969,10 @@ "type": "object", "additionalProperties": false, "properties": { - "esc_output": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "esc_input": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "led": {"$ref": "./definitions.jsonschema#/mcu_pin"}, - "speaker": {"$ref": "./definitions.jsonschema#/mcu_pin"} + "esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "led": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"} } }, "ws2812": { @@ -1049,10 +983,10 @@ "type": "string", "enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"] }, - "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "rgbw": {"type": "boolean"}, - "i2c_address": {"$ref": "./definitions.jsonschema#/hex_number_2d"}, - "i2c_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} + "i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"}, + "i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } } diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema index 0f9dfc763e..df6ce95a83 100644 --- a/data/schemas/keycodes.jsonschema +++ b/data/schemas/keycodes.jsonschema @@ -30,10 +30,10 @@ "keycodes": { "type": "object", "propertyNames": { - "$ref": "./definitions.jsonschema#/hex_number_4d" + "$ref": "qmk.definitions.v1#/hex_number_4d" }, "additionalProperties": { - "type": "object", // use './definitions.jsonschema#/keycode_decl' when problem keycodes are removed + "type": "object", // use 'qmk.definitions.v1#/keycode_decl' when problem keycodes are removed "required": [ "key" ], diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 99aeaa6b6c..7233e896e9 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -10,10 +10,10 @@ "minLength": 1, "pattern": "^[a-z][0-9a-z_]*$" }, - "host_language": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "keyboard": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "keymap": {"$ref": "./definitions.jsonschema#/text_identifier"}, - "layout": {"$ref": "./definitions.jsonschema#/layout_macro"}, + "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "layout": {"$ref": "qmk.definitions.v1#/layout_macro"}, "layers": { "type": "array", "items": { @@ -55,11 +55,11 @@ "keycodes": { "type": "array", "items": { - "$ref": "./definitions.jsonschema#/text_identifier" + "$ref": "qmk.definitions.v1#/text_identifier" } }, "duration": { - "$ref": "./definitions.jsonschema#/unsigned_int" + "$ref": "qmk.definitions.v1#/unsigned_int" } } } @@ -67,16 +67,15 @@ } } }, - "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"}, - "config": {"$ref": "./keyboard.jsonschema#"}, + "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, + "config": {"$ref": "qmk.keyboard.v1"}, "notes": { "type": "string" - }, - "modules": { - "type": "array", - "items": { - "type": "string" - } } - } + }, + "required": [ + "keyboard", + "layout", + "layers" + ] } diff --git a/data/schemas/user_repo_v0.jsonschema b/data/schemas/user_repo_v0.jsonschema index 58d955abe2..b18ac50428 100644 --- a/data/schemas/user_repo_v0.jsonschema +++ b/data/schemas/user_repo_v0.jsonschema @@ -8,7 +8,7 @@ ], "properties": { "userspace_version": { - "type": "string" - } + "type": "string", + }, } } diff --git a/data/schemas/user_repo_v1.jsonschema b/data/schemas/user_repo_v1.jsonschema index 07c61d0fea..69a59bce00 100644 --- a/data/schemas/user_repo_v1.jsonschema +++ b/data/schemas/user_repo_v1.jsonschema @@ -6,10 +6,10 @@ "definitions": { "build_target": { "oneOf": [ - {"$ref": "./definitions.jsonschema#/keyboard_keymap_tuple"}, - {"$ref": "./definitions.jsonschema#/json_file_path"} + {"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"}, + {"$ref": "qmk.definitions.v1#/json_file_path"} ] - } + }, }, "required": [ "userspace_version", diff --git a/data/schemas/user_repo_v1_1.jsonschema b/data/schemas/user_repo_v1_1.jsonschema index cd6d89ad81..5a7ccce063 100644 --- a/data/schemas/user_repo_v1_1.jsonschema +++ b/data/schemas/user_repo_v1_1.jsonschema @@ -6,11 +6,11 @@ "definitions": { "build_target": { "oneOf": [ - {"$ref": "./definitions.jsonschema#/keyboard_keymap_tuple"}, - {"$ref": "./definitions.jsonschema#/keyboard_keymap_env"}, - {"$ref": "./definitions.jsonschema#/json_file_path"} + {"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"}, + {"$ref": "qmk.definitions.v1#/keyboard_keymap_env"}, + {"$ref": "qmk.definitions.v1#/json_file_path"} ] - } + }, }, "required": [ "userspace_version", diff --git a/data/templates/keyboard/keyboard.json b/data/templates/keyboard/keyboard.json index 87aa853cbb..94085d7f5a 100644 --- a/data/templates/keyboard/keyboard.json +++ b/data/templates/keyboard/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/docs/ChangeLog/20200229.md b/docs/ChangeLog/20200229.md index fd075c24e0..02bca3e371 100644 --- a/docs/ChangeLog/20200229.md +++ b/docs/ChangeLog/20200229.md @@ -36,7 +36,7 @@ Four times a year QMK runs a process for merging Breaking Changes. A Breaking Ch ## Encoder flip * Flips the encoder direction so that `clockwise == true` is for actually turning the knob clockwise -* Adds `ENCODER_DIRECTION_FLIP` define, so that reversing the expected direction is simple for users. +* Adds `ENCODER_DIRECTION_FLIP` define, so that reversing the expected dirction is simple for users. * Cleans up documentation page for encoders diff --git a/docs/ChangeLog/20200530.md b/docs/ChangeLog/20200530.md index 701b6bd5d6..9def9ae123 100644 --- a/docs/ChangeLog/20200530.md +++ b/docs/ChangeLog/20200530.md @@ -19,7 +19,7 @@ These PRs move the V-USB driver code out of the qmk_firmware repository and into Updates all of the per key tap-hold functions to pass the `keyrecord_t` structure, and include documentation changes. -Any remaining versions or code outside of the main repo will need to be converted: +Any remaining versions or code outside of the main repo will need to be converted: | Old function | New Function | |------------------------------------------------------|---------------------------------------------------------------------------| |`uint16_t get_tapping_term(uint16_t keycode)` |`uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record)` | @@ -38,7 +38,7 @@ After the next breaking change you will not be able to build if `bin/qmk hello` [#8269](https://github.com/qmk/qmk_firmware/pull/8269) - Provides debug functionality on ChibiOS/ARM that is more compliant than previous integrations. -- Less maintenance, fewer QMK customisations, and allows QMK to sidestep previous compile and runtime issues. +- Less maintenence, fewer QMK customisations, and allows QMK to sidestep previous compile and runtime issues. - A `make git-submodule` may be required after pulling the latest QMK Firmware code to update to the new dependency. ### Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup @@ -51,10 +51,8 @@ After the next breaking change you will not be able to build if `bin/qmk hello` The `RGB_DISABLE_AFTER_TIMEOUT` definition is now deprecated, and has been superseded by `RGB_DISABLE_TIMEOUT`. To use the new definition, rename `RGB_DISABLE_AFTER_TIMEOUT` to `RGB_DISABLE_TIMEOUT` in your `config.h` file, and multiply the value set by 1200. -```diff --#define RGB_DISABLE_AFTER_TIMEOUT 100 -+#define RGB_DISABLE_TIMEOUT 120000 -``` +Before: `#define RGB_DISABLE_AFTER_TIMEOUT 100` +After: `#define RGB_DISABLE_TIMEOUT 120000` ### Switch to qmk forks for everything @@ -105,8 +103,8 @@ This allows current lily58 firmware to advance with updates to the `split_common - Alternatively, if you did not change the OLED code from that in `default`, you may find it easier to simply copy the [relevant section](https://github.com/qmk/qmk_firmware/blob/4ac310668501ae6786c711ecc8f01f62ddaa1c0b/keyboards/lily58/keymaps/default/keymap.c#L138-L172). Otherwise, the changes you need to make are as follows (sample change [here](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7R138-R173)) - [Remove](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7L138-L141) the block ```c -#ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display +#ifdef SSD1306OLED + iota_gfx_init(!has_usb()); // turns on the display #endif ``` - Within the block bounded by `#ifdef OLED_DRIVER_ENABLE` and `#endif // OLED_DRIVER_ENABLE`, add the following block to ensure that your two OLEDs are rotated correctly across the left and right sides: @@ -129,7 +127,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { * Refactor to use split_common and remove split codes under the zinc/revx/ * Add - backlight RGB LED and/or underglow RGB LED option -* Add - continuous RGB animations feature (between L and R halves) +* Add - continuous RGB animations feature (between L and R halves) * Fix - keymap files to adapt to changes * all authors of keymaps confirmed this PR * Update - documents and rules.mk @@ -166,8 +164,8 @@ void keyboard_pre_init_kb(void) { - The following changes are for compatibility with the OLED driver. If you don't use the OLED driver you may safely delete [this section](https://github.com/qmk/qmk_firmware/blob/e6b9980bd45c186f7360df68c24b6e05a80c10dc/keyboards/lily58/keymaps/default/keymap.c#L144-L190) - [Remove](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7L91-L158) the block ```c -#ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display +#ifdef SSD1306OLED + iota_gfx_init(!has_usb()); // turns on the display #endif ``` - Within the block bounded by `#ifdef OLED_DRIVER_ENABLE` and `#endif // OLED_DRIVER_ENABLE`, add the following block to ensure that your two OLEDs are rotated correctly across the left and right sides: diff --git a/docs/ChangeLog/20210529.md b/docs/ChangeLog/20210529.md index e3d250874a..69923b0c5a 100644 --- a/docs/ChangeLog/20210529.md +++ b/docs/ChangeLog/20210529.md @@ -12,7 +12,7 @@ Added support for MK66F18 (Teensy 3.6) microcontroller. ### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) {#new-command-qmk-console} -A new `qmk console` command has been added for attaching to your keyboard's console. It operates similarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages. +A new `qmk console` command has been added for attaching to your keyboard's console. It operates similiarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages. ### Improved command: qmk config {#improve-command-qmk-config} @@ -121,8 +121,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_UP); } } - return true; - // If you return true, this will allow the keyboard level code to run, as well. + return true; + // If you return true, this will allow the keyboard level code to run, as well. //Returning false will override the keyboard level code. Depending on how the keyboard level function is set up. } ``` diff --git a/docs/ChangeLog/20210828.md b/docs/ChangeLog/20210828.md index 9268711262..18b1d92b0c 100644 --- a/docs/ChangeLog/20210828.md +++ b/docs/ChangeLog/20210828.md @@ -104,7 +104,7 @@ void dip_switch_update_user(uint8_t index, bool active) { } } -void dip_switch_update_mask_kb(uint32_t state) { +void dip_switch_update_mask_kb(uint32_t state) { dip_switch_update_mask_user(state); } diff --git a/docs/ChangeLog/20220226.md b/docs/ChangeLog/20220226.md index 29283a3a9c..a10b6447ea 100644 --- a/docs/ChangeLog/20220226.md +++ b/docs/ChangeLog/20220226.md @@ -29,7 +29,7 @@ Bootloader configuration is no longer assumed. Keyboards must now set either: ### Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127)) -In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products. +In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products. ### Updated Keyboard Codebases {#updated-keyboard-codebases} diff --git a/docs/ChangeLog/20240825.md b/docs/ChangeLog/20240825.md index 943347cebc..c8525b3396 100644 --- a/docs/ChangeLog/20240825.md +++ b/docs/ChangeLog/20240825.md @@ -4,7 +4,7 @@ August 2024 brings another maintenance release of QMK. Almost all PRs this cycle were to do with cleanup or re-organization of existing features and code. -One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository. +One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the the VIA team's repo: `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed). ## Changes Requiring User Action @@ -76,7 +76,7 @@ In line with the [notice period](../support_deprecation_policy#how-much-advance- ### Migration of VIA keymaps to VIA team control -Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository. +Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed). Any existing or newly-opened PRs against `qmk_firmware` will now be asked to remove any `via`-enabled keymaps from their submissions. diff --git a/docs/ChangeLog/20241124.md b/docs/ChangeLog/20241124.md deleted file mode 100644 index f18c5d981e..0000000000 --- a/docs/ChangeLog/20241124.md +++ /dev/null @@ -1,122 +0,0 @@ -# QMK Breaking Changes - 2024 November 24 Changelog - -## Notable Features - -November 2024 brings a relatively lightweight QMK release. As with previous cycles, almost all PRs were related to cleanup or re-organization of aspects of QMK. - -One notable item is the removal of `arm_atsam` -- this affects users with `massdrop/ctrl` or `massdrop/alt` keyboards. These have no current replacement, but support for an alternative to the `arm_atsam` backend is nearing completion. Unfortunately the alternative backend didn't make this quarter's list of merges, so there's a temporary removal of these boards. Users who need to build for these targets should stay on the `0.26.x` version of QMK until these boards have been restored. - -## Changes Requiring User Action - -### Updated Keyboard Codebases - -One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository. - -| Old Keyboard Name | New Keyboard Name | -|-------------------|-------------------------| -| saevus/cor | concreteflowers/cor | -| saevus/cor_tkl | concreteflowers/cor_tkl | - -## 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. - -### RGB Keycode Overhaul ([#23679](https://github.com/qmk/qmk_firmware/pull/23679), [#24484](https://github.com/qmk/qmk_firmware/pull/24484), [#24490](https://github.com/qmk/qmk_firmware/pull/24490)) - -RGB keycodes have been reworked to allow for both rgblight and rgb_matrix to coexist for the handful of boards in the repo with both enabled. Previously, `RGB_xxx` style keycodes were available, but now for rgblight we have `UG_xxx` (underglow), and `RM_xxx` for rgb_matrix. Default keymaps have been updated to reflect whichever system the respective board enables. - -Longer-term, `RGB_xxx` style keycodes will be removed, but for now they act as if they're `UG_xxx`, and `UG_xxx` keycodes act upon both rgblight and rgb_matrix simultaneously. Put simply, the existing `RGB_xxx` keycodes act as they always have, giving users time to transition across to the new keycodes instead. - -### ADNS9800 and PMW33xx sensor firmware ROM removal ([#24428](https://github.com/qmk/qmk_firmware/pull/24428)) - -Following on from the last Breaking Changes cycle, Binary blobs for optical sensors have been removed from the QMK codebase. Hooks allowing users to supply their own have been put in place; users wishing to source firmware blobs and integrate them into their keymap may do so. Doing so renders their firmware un-distributable due to licensing incompatibility with the GPL -- as such user firmware containing such blobs must not be distributed. - -Please get in touch with the QMK team on Discord if your sensor is no longer functional. - -## Full changelist - -Core: -* Refactor F4 ld files to use common files ([#18059](https://github.com/qmk/qmk_firmware/pull/18059)) -* Add LD7032 support to QP. ([#20828](https://github.com/qmk/qmk_firmware/pull/20828)) -* Add combo key repress feature ([#22858](https://github.com/qmk/qmk_firmware/pull/22858)) -* Add Layer Lock feature ([#23430](https://github.com/qmk/qmk_firmware/pull/23430)) -* Added MCU support for ArteryTek AT32F415 ([#23445](https://github.com/qmk/qmk_firmware/pull/23445)) -* Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. ([#23451](https://github.com/qmk/qmk_firmware/pull/23451)) -* Separate RGBLight/RGB Matrix keycode handling ([#23679](https://github.com/qmk/qmk_firmware/pull/23679)) -* Allow for inverted SPI CS logic ([#23699](https://github.com/qmk/qmk_firmware/pull/23699)) -* Add timer_save and _restore functions. ([#23887](https://github.com/qmk/qmk_firmware/pull/23887)) -* Allow for `get_hardware_id()` to be used for serial number. ([#24053](https://github.com/qmk/qmk_firmware/pull/24053)) -* Segregrate keycode at pre-process record quantum ([#24194](https://github.com/qmk/qmk_firmware/pull/24194)) -* Add ability to poweroff ADNS5050 sensor ([#24223](https://github.com/qmk/qmk_firmware/pull/24223)) -* quantum: util: add bit and bitmask helpers ([#24229](https://github.com/qmk/qmk_firmware/pull/24229)) -* Add new connection keycodes for Bluetooth, 2.4GHz. ([#24251](https://github.com/qmk/qmk_firmware/pull/24251)) -* `usb_device_state`: consolidate usb state handling across implementations ([#24258](https://github.com/qmk/qmk_firmware/pull/24258)) -* Remove global k_rgb_matrix_split ([#24348](https://github.com/qmk/qmk_firmware/pull/24348)) -* util: uf2families: sync with upstream ([#24351](https://github.com/qmk/qmk_firmware/pull/24351)) -* [Maintenance] builddefs: common_rules: overhaul debug information generation ([#24352](https://github.com/qmk/qmk_firmware/pull/24352)) -* Add easier way to set default single layer ([#24376](https://github.com/qmk/qmk_firmware/pull/24376)) -* Tweak OS detect, add OS_DETECTION_SINGLE_REPORT ([#24379](https://github.com/qmk/qmk_firmware/pull/24379)) -* Reinstate global `k_rgb_matrix_split` ([#24388](https://github.com/qmk/qmk_firmware/pull/24388)) -* Bring supported STM32F4 configs in line with F4x1 ([#24413](https://github.com/qmk/qmk_firmware/pull/24413)) -* Extended wheel reports ([#24422](https://github.com/qmk/qmk_firmware/pull/24422)) -* Remove binary blobs from optical sensors. ([#24428](https://github.com/qmk/qmk_firmware/pull/24428)) -* Remove `STM32_PWM_USE_ADVANCED` references ([#24432](https://github.com/qmk/qmk_firmware/pull/24432)) -* Remove `RING_BUFFERED_6KRO_REPORT_ENABLE` due to disuse. ([#24433](https://github.com/qmk/qmk_firmware/pull/24433)) -* Move pointing device driver code ([#24445](https://github.com/qmk/qmk_firmware/pull/24445)) -* Add svlinky converter ([#24449](https://github.com/qmk/qmk_firmware/pull/24449)) -* Update combo user function variable ([#24467](https://github.com/qmk/qmk_firmware/pull/24467)) -* `qmk find`: expand operator support ([#24468](https://github.com/qmk/qmk_firmware/pull/24468)) -* Rename RGB and HSV structs ([#24471](https://github.com/qmk/qmk_firmware/pull/24471)) -* RGBLight: Improve RGB Test animation ([#24477](https://github.com/qmk/qmk_firmware/pull/24477)) -* Change default ARM hardware PWM WS2812 tick frequency to 800kHz ([#24508](https://github.com/qmk/qmk_firmware/pull/24508)) -* Add pointing tests ([#24513](https://github.com/qmk/qmk_firmware/pull/24513)) -* Joystick: add support for 8-way hat switch ([#24515](https://github.com/qmk/qmk_firmware/pull/24515)) -* Refactor Riverflow matrix effect with runner ([#24520](https://github.com/qmk/qmk_firmware/pull/24520)) -* Update Pixel Rain to respect LED range limits ([#24532](https://github.com/qmk/qmk_firmware/pull/24532)) -* Update Jellybean Raindrops to respect LED range limits ([#24534](https://github.com/qmk/qmk_firmware/pull/24534)) -* Refactor Breathing effect with runner ([#24535](https://github.com/qmk/qmk_firmware/pull/24535)) -* Refactor LED Breathing effect with runner ([#24540](https://github.com/qmk/qmk_firmware/pull/24540)) -* Expose rgb_matrix_update_pwm_buffers to be available in keymaps ([#24573](https://github.com/qmk/qmk_firmware/pull/24573)) -* Simple Python script to show polling rate ([#24622](https://github.com/qmk/qmk_firmware/pull/24622)) -* Add keycode PDF(layer) to set the default layer in EEPROM ([#24630](https://github.com/qmk/qmk_firmware/pull/24630)) -* Provide method to save a single default layer in the full range of 0-31 ([#24639](https://github.com/qmk/qmk_firmware/pull/24639)) - -CLI: -* Refactor painter arguments to table instead of commandline ([#24456](https://github.com/qmk/qmk_firmware/pull/24456)) -* `qmk new-keyboard`: separate dev board and MCU selection ([#24548](https://github.com/qmk/qmk_firmware/pull/24548)) -* Bump minimum required Python version ([#24554](https://github.com/qmk/qmk_firmware/pull/24554)) - -Submodule updates: -* Remove `arm_atsam` platform ([#24337](https://github.com/qmk/qmk_firmware/pull/24337)) - -Keyboards: -* add ergodox Community Layout for LAYOUT_ergodox keyboards ([#22963](https://github.com/qmk/qmk_firmware/pull/22963)) -* Cutie Club Fidelity Layout Additions ([#23838](https://github.com/qmk/qmk_firmware/pull/23838)) -* Add Ploopyco functions for host state control ([#23953](https://github.com/qmk/qmk_firmware/pull/23953)) -* Corne rev4 ([#24084](https://github.com/qmk/qmk_firmware/pull/24084)) -* Rename saevus to concreteflowers ([#24249](https://github.com/qmk/qmk_firmware/pull/24249)) -* Remove `60_tsangan_hhkb` community layout ([#24355](https://github.com/qmk/qmk_firmware/pull/24355)) -* add USART configuration to config.h for PS/2 mouse support ([#24398](https://github.com/qmk/qmk_firmware/pull/24398)) -* Add SteelSeries Prime+ mouse ([#24408](https://github.com/qmk/qmk_firmware/pull/24408)) -* Rename RGB/HSV structs: keyboard-level code ([#24476](https://github.com/qmk/qmk_firmware/pull/24476)) -* xiudi/xd002: Remove broken oversized `multilayer_rgb` keymap ([#24480](https://github.com/qmk/qmk_firmware/pull/24480)) -* Update keycodes for keyboards with RGB Matrix ([#24484](https://github.com/qmk/qmk_firmware/pull/24484)) -* Cipulot Updates ([#24539](https://github.com/qmk/qmk_firmware/pull/24539)) -* Update keymaps to use PDF keycode ([#24633](https://github.com/qmk/qmk_firmware/pull/24633)) -* Remove keyboard use of eeconfig_read_default_layer ([#24635](https://github.com/qmk/qmk_firmware/pull/24635)) - -Keyboard fixes: -* Fix rendering of `keymap_config.no_gui` within `led_update_kb` ([#24473](https://github.com/qmk/qmk_firmware/pull/24473)) -* Fix duplication of core `GU_TOGG` keycode ([#24474](https://github.com/qmk/qmk_firmware/pull/24474)) -* keebio/nyquist: Remove invalid I2C config ([#24479](https://github.com/qmk/qmk_firmware/pull/24479)) -* horrortroll/nyx/rev1: Fix compilation of custom RGB effect ([#24481](https://github.com/qmk/qmk_firmware/pull/24481)) - -Others: -* Improve consistency of syntax within `data/constants/keycodes` ([#24528](https://github.com/qmk/qmk_firmware/pull/24528)) - -Bugs: -* WS2812 API rework ([#24364](https://github.com/qmk/qmk_firmware/pull/24364)) -* Backward compatibility for new RGB keycode handling ([#24490](https://github.com/qmk/qmk_firmware/pull/24490)) -* Fix compiliation issues with OS Detection ([#24502](https://github.com/qmk/qmk_firmware/pull/24502)) -* Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. ([#24593](https://github.com/qmk/qmk_firmware/pull/24593)) -* Review fixes for layer lock feature ([#24627](https://github.com/qmk/qmk_firmware/pull/24627)) diff --git a/docs/ChangeLog/20250223.md b/docs/ChangeLog/20250223.md deleted file mode 100644 index 858848a60b..0000000000 --- a/docs/ChangeLog/20250223.md +++ /dev/null @@ -1,135 +0,0 @@ -# QMK Breaking Changes - 2025 February 23 Changelog - -## Notable Features - -### Community Modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848)) - -Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds. - -These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may currently implement. - -See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks. - -First-class support for [External Userspace](../newbs_external_userspace) is included out of the box, so there's even more reason to take the plunge and convert your keymap builds to a userspace repository! - -::: tip -An example with a new keycode and some debugging information in the QMK repository [lives here](https://github.com/qmk/qmk_firmware/tree/master/modules/qmk/hello_world), and a community module port of [getreuer's SOCD Cleaner](https://getreuer.info/posts/keyboards/socd-cleaner/) can be found in [tzarc's modules repo](https://github.com/tzarc/qmk_modules). -::: - -### Chordal Hold ([#24560](https://github.com/qmk/qmk_firmware/pull/24560)) - -Chordal Hold implements, by default, an "opposite hands" rule. Suppose a tap-hold key is pressed and then, before the tapping term, another key is pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two keys are on the same hand. - -Chordal Hold may be useful to avoid accidental modifier activation with mod-taps, particularly in rolled keypresses when using home row mods. - -See the [Chordal Hold documentation](../tap_hold#chordal-hold) for more information. - -## Changes Requiring User Action - -### Updated Keyboard Codebases - -| Old Keyboard Name | New Keyboard Name | -|-------------------------|-----------------------------| -| cxt_studio | cxt_studio/12e4 | -| ergodox_stm32 | handwired/ergodox_stm32 | -| ploopyco/mouse | ploopyco/mouse/rev1_002 | -| ploopyco/trackball/rev1 | ploopyco/trackball/rev1_004 | -| ymdk/id75 | ymdk/id75/f103 | - -## 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. - -### DEFAULT_FOLDER removal ([#24836](https://github.com/qmk/qmk_firmware/pull/24836)) - -`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system. -Parent folders containing common configuration would create invalid build targets. - -With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets. -The `DEFAULT_FOLDER` functionality is now redundant and the intent is for `rules.mk` to become pure configuration. - -Backwards compatibility of build targets has been maintained where possible. - -## Full changelist - -Core: -* Chaining OSL and MO ([#23065](https://github.com/qmk/qmk_firmware/pull/23065)) -* Add extra keymap for EurKEY layout ([#24241](https://github.com/qmk/qmk_firmware/pull/24241)) -* Add leader_add_user callback ([#24266](https://github.com/qmk/qmk_firmware/pull/24266)) -* always return audio pin to 0 on ARM ([#24503](https://github.com/qmk/qmk_firmware/pull/24503)) -* Update Starlight matrix effects ([#24521](https://github.com/qmk/qmk_firmware/pull/24521)) -* Refactor Hue Breathing matrix effect with runner ([#24525](https://github.com/qmk/qmk_firmware/pull/24525)) -* Ensure timer_read() is safe to call from interrupt handlers on ARM ([#24529](https://github.com/qmk/qmk_firmware/pull/24529)) -* Update Raindrops effect to respect LED range limits ([#24531](https://github.com/qmk/qmk_firmware/pull/24531)) -* Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. ([#24560](https://github.com/qmk/qmk_firmware/pull/24560)) -* Azoteq - improve I2C behaviour while polling. ([#24611](https://github.com/qmk/qmk_firmware/pull/24611)) -* macOS install: remove bad ARM toolchains ([#24637](https://github.com/qmk/qmk_firmware/pull/24637)) -* small refactoring of TIMER_DIFF ([#24678](https://github.com/qmk/qmk_firmware/pull/24678)) -* Subscript alef correction ([#24707](https://github.com/qmk/qmk_firmware/pull/24707)) -* Created SH1107 driver for quantum painter ([#24724](https://github.com/qmk/qmk_firmware/pull/24724)) -* [CI] Regenerate Files ([#24772](https://github.com/qmk/qmk_firmware/pull/24772)) -* Patch up issue for inverted complementary output on Backlight ([#24794](https://github.com/qmk/qmk_firmware/pull/24794)) -* Patch up issue when compile with APA102 driver ([#24800](https://github.com/qmk/qmk_firmware/pull/24800)) -* Consolidate send_string implementations. ([#24817](https://github.com/qmk/qmk_firmware/pull/24817)) -* Consolidate timer_elapsed implementations ([#24830](https://github.com/qmk/qmk_firmware/pull/24830)) -* `i2c_master`: remove deprecated functions ([#24832](https://github.com/qmk/qmk_firmware/pull/24832)) -* Resolve keyboard_aliases when processing keyboard make targets ([#24834](https://github.com/qmk/qmk_firmware/pull/24834)) -* LED drivers: remove deprecated defines ([#24837](https://github.com/qmk/qmk_firmware/pull/24837)) -* `ferris/0_1`: update I2C API usage ([#24839](https://github.com/qmk/qmk_firmware/pull/24839)) -* Unify i2c_master headers ([#24846](https://github.com/qmk/qmk_firmware/pull/24846)) -* Community modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848)) -* Relocate base WS2812 code ([#24850](https://github.com/qmk/qmk_firmware/pull/24850)) -* Unify UART headers ([#24855](https://github.com/qmk/qmk_firmware/pull/24855)) -* Unify spi_master headers ([#24857](https://github.com/qmk/qmk_firmware/pull/24857)) -* Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. ([#24879](https://github.com/qmk/qmk_firmware/pull/24879)) - -CLI: -* Extend lint to reject 'blank' files ([#23994](https://github.com/qmk/qmk_firmware/pull/23994)) -* `qmk docs`: restore `--port` and `--browser` arguments ([#24623](https://github.com/qmk/qmk_firmware/pull/24623)) -* Update via2json layout macro searching ([#24640](https://github.com/qmk/qmk_firmware/pull/24640)) -* Change `new-keymap` keymap name prompt ([#24701](https://github.com/qmk/qmk_firmware/pull/24701)) -* default_keyboard.h generation tweaks ([#24715](https://github.com/qmk/qmk_firmware/pull/24715)) -* Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders ([#24802](https://github.com/qmk/qmk_firmware/pull/24802)) -* Reject readme dummy content ([#24913](https://github.com/qmk/qmk_firmware/pull/24913)) - -Submodule updates: -* chibios: usb_main: remove OTG sof workaround ([#24259](https://github.com/qmk/qmk_firmware/pull/24259)) -* Update ChibiOS to latest stable branch. ([#24651](https://github.com/qmk/qmk_firmware/pull/24651)) -* Update ChibiOS `stable_21.11.x`. ([#24714](https://github.com/qmk/qmk_firmware/pull/24714)) -* Update ChibiOS-Contrib. ([#24803](https://github.com/qmk/qmk_firmware/pull/24803)) - -Keyboards: -* refactor: move ymdk/id75 to revision ([#24590](https://github.com/qmk/qmk_firmware/pull/24590)) -* skyloong/gk61: Remove overriding of core keycode behaviour ([#24655](https://github.com/qmk/qmk_firmware/pull/24655)) -* moky/moky88: Remove use of deprecated defines ([#24656](https://github.com/qmk/qmk_firmware/pull/24656)) -* Updating Promenade keyboard (Missing keys in matrix, other minor changes to keymap) ([#24705](https://github.com/qmk/qmk_firmware/pull/24705)) -* Moving cxt_studio keyboard to own folder ([#24748](https://github.com/qmk/qmk_firmware/pull/24748)) -* Add CXT Studio 12E3 keyboard ([#24749](https://github.com/qmk/qmk_firmware/pull/24749)) -* Add Silakka54 keyboard ([#24757](https://github.com/qmk/qmk_firmware/pull/24757)) -* Add more layout for skiller_sgk50_s4 ([#24784](https://github.com/qmk/qmk_firmware/pull/24784)) -* Add watchdog service to RGBKB Sol 3 ([#24786](https://github.com/qmk/qmk_firmware/pull/24786)) -* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24835](https://github.com/qmk/qmk_firmware/pull/24835)) -* Remove DEFAULT_FOLDER where keyboard aliases already exists ([#24838](https://github.com/qmk/qmk_firmware/pull/24838)) -* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24845](https://github.com/qmk/qmk_firmware/pull/24845)) -* Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') ([#24868](https://github.com/qmk/qmk_firmware/pull/24868)) -* handwired/xealous - Remove DEFAULT_FOLDER ([#24877](https://github.com/qmk/qmk_firmware/pull/24877)) -* Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade ([#24880](https://github.com/qmk/qmk_firmware/pull/24880)) -* Move Ergodox STM32 to handwired folder ([#24903](https://github.com/qmk/qmk_firmware/pull/24903)) -* Remove readme dummy content ([#24912](https://github.com/qmk/qmk_firmware/pull/24912)) -* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24915](https://github.com/qmk/qmk_firmware/pull/24915)) -* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24938](https://github.com/qmk/qmk_firmware/pull/24938)) - -Keyboard fixes: -* Fix up CI with `DEFAULT_FOLDER`. ([#24842](https://github.com/qmk/qmk_firmware/pull/24842)) -* rgbkb/pan - Remove invalid build target ([#24844](https://github.com/qmk/qmk_firmware/pull/24844)) - -Others: -* Formally deprecate DEFAULT_FOLDER ([#24836](https://github.com/qmk/qmk_firmware/pull/24836)) -* Correct I2C API reference ([#24840](https://github.com/qmk/qmk_firmware/pull/24840)) - -Bugs: -* Retro Tapping Re-Write; Key Roll Fix ([#23641](https://github.com/qmk/qmk_firmware/pull/23641)) -* Fix Quantum Painter compiliation issues with heavy optimization ([#24667](https://github.com/qmk/qmk_firmware/pull/24667)) -* Bugfix and update for AT32F415 ([#24807](https://github.com/qmk/qmk_firmware/pull/24807)) -* Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. ([#24878](https://github.com/qmk/qmk_firmware/pull/24878)) -* fix EEPROM driver for STM32L0/1 cat.1 devices ([#24928](https://github.com/qmk/qmk_firmware/pull/24928)) diff --git a/docs/ChangeLog/20250525.md b/docs/ChangeLog/20250525.md deleted file mode 100644 index c8859e0ea1..0000000000 --- a/docs/ChangeLog/20250525.md +++ /dev/null @@ -1,299 +0,0 @@ -# QMK Breaking Changes - 2025 May 25 Changelog - -## Notable Features - -### Flow Tap ([#25125](https://github.com/qmk/qmk_firmware/pull/25125)) - -Adds Flow Tap as a core tap-hold option to disable HRMs during fast typing, aka Global Quick Tap, Require Prior Idle. - -Flow Tap modifies mod-tap MT and layer-tap LT keys such that when pressed within a short timeout of the preceding key, the tapping behavior is triggered. It basically disables the hold behavior during fast typing, creating a "flow of taps." It also helps to reduce the input lag of tap-hold keys during fast typing, since the tapped behavior is sent immediately. - -See the [Flow Tap documentation](../tap_hold#flow-tap) for more information. - -### Community Modules `1.1.1` ([#25050](https://github.com/qmk/qmk_firmware/pull/25050), [#25187](https://github.com/qmk/qmk_firmware/pull/25187)) - -Version `1.1.1` introduces support for module defined RGB matrix effects and indicator callbacks, as well as pointing and layer state callbacks. - -See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks. - -## Changes Requiring User Action - -### Updated Keyboard Codebases - -| Old Keyboard Name | New Keyboard Name | -|------------------------|----------------------| -| chew | chew/split | -| deemen17/de60fs | deemen17/de60/r1 | -| keyten/kt60hs_t | keyten/kt60hs_t/v1 | -| plywrks/ply8x | plywrks/ply8x/solder | -| rookiebwoy/late9/rev1 | ivndbt/late9/rev1 | -| rookiebwoy/neopad/rev1 | ivndbt/neopad/rev1 | - -## 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. - -### Deprecation of `qmk generate-compilation-database` ([#25237](https://github.com/qmk/qmk_firmware/pull/25237)) - -This command has been deprecated as it cannot take into account configurables such as [converters](/feature_converters) or environment variables normally specified on the command line; please use the `--compiledb` flag with `qmk compile` instead. - -### Deprecation of `usb.force_nkro`/`FORCE_NKRO` ([#25262](https://github.com/qmk/qmk_firmware/pull/25262)) - -Unpicking the assumption that only USB can do NKRO, forcing of NKRO on every boot has been deprecated. As this setting persists, it produces unnecessary user confusion when the various NKRO keycodes (for example `NK_TOGG`) do not behave as expected. - -The new defaults can be configured in the following ways: - -:::::tabs - -==== keyboard.json - -```json [keyboard.json] -{ - "host": { // [!code focus] - "default": { // [!code focus] - "nkro": true // [!code focus] - } // [!code focus] - } // [!code focus] -} - -``` - -==== keymap.json - -```json [keymap.json] -{ - "config": { - "host": { // [!code focus] - "default": { // [!code focus] - "nkro": true // [!code focus] - } // [!code focus] - } // [!code focus] - } -} - -``` - -==== config.h - -```c [config.h] -#pragma once - -#define NKRO_DEFAULT_ON true // [!code focus] -``` - -::::: - -The deprecated options will be removed in a future breaking changes cycle. - -### `CTPC`/`CONVERT_TO_PROTON_C` removal ([#25111](https://github.com/qmk/qmk_firmware/pull/25111)) - -Deprecated build options `CTPC` and `CONVERT_TO_PROTON_C` have been removed. Users should of these should migrate to `CONVERT_TO=proton_c`. - -see the [Converters Feature](../feature_converters) documentation for more information. - -### `DEFAULT_FOLDER` removal ([#23281](https://github.com/qmk/qmk_firmware/pull/23281)) - -`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system. -Parent folders containing common configuration would create invalid build targets. - -With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets. -The `DEFAULT_FOLDER` functionality is now redundant and the intent is for `rules.mk` to become pure configuration. - -Backwards compatibility of build targets has been maintained where possible. - -### Converter `Pin Compatible` updates ([#20330](https://github.com/qmk/qmk_firmware/pull/20330)) - -Converter support will be further limited to only function if a keyboard declares that is is compatible. - -This can be configured in the following ways: - -:::::tabs - -==== keyboard.json - -```json [keyboard.json] -{ - "development_board": "promicro", // [!code focus] -} -``` - -==== rules.mk - -```make [rules.mk] -PIN_COMPATIBLE = promicro -``` - -::::: - -see the [Converters Feature](../feature_converters) documentation for more information. - -### Deprecation of `encoder_update_{kb|user}` - -These callbacks are now considered end-of-life and will be removed over the next breaking changes cycle, ending August 2025. PRs containing these callbacks will be asked to change to use [encoder mapping](/features/encoders#encoder-map). - -`ENCODER_MAP_ENABLE` will subsequently be changed to "default-on" when encoders are enabled, and future breaking changes cycles will remove this flag entirely. - -To migrate usage of `encoder_update_user` to encoder map you'll need to handle all of the following changes in your `keymap.c`: - -:::::tabs - -=== 1. Add keycode definitions - -Define new keycodes: - -```c -enum { - MY_ENCODER_LEFT = QK_USER, // [!code focus] - MY_ENCODER_RIGHT, // [!code focus] -}; -``` - -=== 2. Add encoder mapping - -Add the keycodes to a new encoder map (optionally with transparent layers above, if you want identical functionality of layer-independence): - -```c -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MY_ENCODER_LEFT, MY_ENCODER_RIGHT) }, // [!code focus] - [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, // [!code focus] - [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, // [!code focus] - [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, // [!code focus] -}; -#endif -``` - -=== 3. Add keycode processing - -Handle the new keycodes within `process_record_user`, much like any other keycode in your keymap: - -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MY_ENCODER_LEFT: // [!code focus] - if (record->event.pressed) { // [!code focus] - // Add the same code you had in your `encoder_update_user` for the left-rotation code // [!code focus] - } // [!code focus] - return false; // Skip all further processing of this keycode // [!code focus] - case MY_ENCODER_RIGHT: // [!code focus] - if (record->event.pressed) { // [!code focus] - // Add the same code you had in your `encoder_update_user` for the right-rotation code // [!code focus] - } // [!code focus] - return false; // Skip all further processing of this keycode // [!code focus] - } -} -``` - -=== 4. Remove old code - -Remove your implementation of `encoder_update_user` from your `keymap.c`. - -:::::: - -If your board has multiple encoders, each encoder will need its own pair of keycodes defined as per above. - -## Full changelist - -Core: -* Non-volatile memory data repository pattern ([#24356](https://github.com/qmk/qmk_firmware/pull/24356)) -* High resolution scrolling (without feature report parsing) ([#24423](https://github.com/qmk/qmk_firmware/pull/24423)) -* Implement battery level interface ([#24666](https://github.com/qmk/qmk_firmware/pull/24666)) -* get_keycode_string(): function to format keycodes as strings, for more readable debug logging. ([#24787](https://github.com/qmk/qmk_firmware/pull/24787)) -* [Cleanup] Handling of optional `*.mk` files ([#24952](https://github.com/qmk/qmk_firmware/pull/24952)) -* Add EOL to non-keyboard files ([#24990](https://github.com/qmk/qmk_firmware/pull/24990)) -* use `keycode_string` in unit tests ([#25042](https://github.com/qmk/qmk_firmware/pull/25042)) -* Add additional hooks for Community modules ([#25050](https://github.com/qmk/qmk_firmware/pull/25050)) -* Remove `CTPC`/`CONVERT_TO_PROTON_C` options ([#25111](https://github.com/qmk/qmk_firmware/pull/25111)) -* Flow Tap tap-hold option to disable HRMs during fast typing (aka Global Quick Tap, Require Prior Idle). ([#25125](https://github.com/qmk/qmk_firmware/pull/25125)) -* Remove `bluefruit_le_read_battery_voltage` function ([#25129](https://github.com/qmk/qmk_firmware/pull/25129)) -* Avoid duplication in generated community modules `rules.mk` ([#25135](https://github.com/qmk/qmk_firmware/pull/25135)) -* [chore]: move and rename mouse/scroll min/max defines ([#25141](https://github.com/qmk/qmk_firmware/pull/25141)) -* Ignore the Layer Lock key in Repeat Key and Caps Word. ([#25171](https://github.com/qmk/qmk_firmware/pull/25171)) -* Allow for disabling EEPROM subsystem entirely. ([#25173](https://github.com/qmk/qmk_firmware/pull/25173)) -* Implement connection keycode logic ([#25176](https://github.com/qmk/qmk_firmware/pull/25176)) -* Align ChibiOS `USB_WAIT_FOR_ENUMERATION` implementation ([#25184](https://github.com/qmk/qmk_firmware/pull/25184)) -* Enable community modules to define LED matrix and RGB matrix effects. ([#25187](https://github.com/qmk/qmk_firmware/pull/25187)) -* Bind Bluetooth driver to `host_driver_t` ([#25199](https://github.com/qmk/qmk_firmware/pull/25199)) -* Enhance Flow Tap to work better for rolls over multiple tap-hold keys. ([#25200](https://github.com/qmk/qmk_firmware/pull/25200)) -* Remove force disable of NKRO when Bluetooth enabled ([#25201](https://github.com/qmk/qmk_firmware/pull/25201)) -* [New Feature/Core] New RGB Matrix Animation "Starlight Smooth" ([#25203](https://github.com/qmk/qmk_firmware/pull/25203)) -* Add battery changed callbacks ([#25207](https://github.com/qmk/qmk_firmware/pull/25207)) -* Generate versions to keycode headers ([#25219](https://github.com/qmk/qmk_firmware/pull/25219)) -* Add raw_hid support to host driver ([#25255](https://github.com/qmk/qmk_firmware/pull/25255)) -* Deprecate `usb.force_nkro`/`FORCE_NKRO` ([#25262](https://github.com/qmk/qmk_firmware/pull/25262)) -* [Chore] use {rgblight,rgb_matrix}_hsv_to_rgb overrides ([#25271](https://github.com/qmk/qmk_firmware/pull/25271)) -* Remove outdated `nix` support due to bit-rot. ([#25280](https://github.com/qmk/qmk_firmware/pull/25280)) - -CLI: -* Align to latest CLI dependencies ([#24553](https://github.com/qmk/qmk_firmware/pull/24553)) -* Exclude external userspace from lint checking ([#24680](https://github.com/qmk/qmk_firmware/pull/24680)) -* [Modules] Provide access to current path in `rules.mk`. ([#25061](https://github.com/qmk/qmk_firmware/pull/25061)) -* Add "license" field to Community Module JSON schema. ([#25085](https://github.com/qmk/qmk_firmware/pull/25085)) -* Prompt for converter when creating new keymap ([#25116](https://github.com/qmk/qmk_firmware/pull/25116)) -* Extend lint checks to reject duplication of defaults ([#25149](https://github.com/qmk/qmk_firmware/pull/25149)) -* Add lint warning for empty url ([#25182](https://github.com/qmk/qmk_firmware/pull/25182)) -* Deprecate `qmk generate-compilation-database`. ([#25237](https://github.com/qmk/qmk_firmware/pull/25237)) -* Use relative paths for schemas, instead of $id. Enables VScode validation. ([#25251](https://github.com/qmk/qmk_firmware/pull/25251)) - -Submodule updates: -* STM32G0x1 support ([#24301](https://github.com/qmk/qmk_firmware/pull/24301)) -* Update develop branch to Pico SDK 1.5.1 ([#25178](https://github.com/qmk/qmk_firmware/pull/25178)) -* Add `compiler_support.h` ([#25274](https://github.com/qmk/qmk_firmware/pull/25274)) - -Keyboards: -* add 75_(ansi|iso) Community Layouts to mechlovin/olly/octagon ([#22459](https://github.com/qmk/qmk_firmware/pull/22459)) -* Add the plywrks ply8x hotswap variant. ([#23558](https://github.com/qmk/qmk_firmware/pull/23558)) -* Add Community Layout support to daskeyboard4 ([#23884](https://github.com/qmk/qmk_firmware/pull/23884)) -* New standard layout for Savage65 (65_ansi_blocker_tsangan_split_bs) ([#24690](https://github.com/qmk/qmk_firmware/pull/24690)) -* Add Icebreaker keyboard ([#24723](https://github.com/qmk/qmk_firmware/pull/24723)) -* Update Tractyl Manuform and add F405 (weact) variant ([#24764](https://github.com/qmk/qmk_firmware/pull/24764)) -* Chew folders ([#24785](https://github.com/qmk/qmk_firmware/pull/24785)) -* modelh: add prerequisites for via support ([#24932](https://github.com/qmk/qmk_firmware/pull/24932)) -* Only configure `STM32_HSECLK` within `board.h` ([#25001](https://github.com/qmk/qmk_firmware/pull/25001)) -* Allow LVGL onekey keymap to be able compile for other board ([#25005](https://github.com/qmk/qmk_firmware/pull/25005)) -* Remove Sofle `rgb_default` keymap & tidy readme's ([#25010](https://github.com/qmk/qmk_firmware/pull/25010)) -* Migrate remaining `split.soft_serial_pin` to `split.serial.pin` ([#25046](https://github.com/qmk/qmk_firmware/pull/25046)) -* Update keymap for keycult 1800 ([#25070](https://github.com/qmk/qmk_firmware/pull/25070)) -* Add kt60HS-T v2 PCB ([#25080](https://github.com/qmk/qmk_firmware/pull/25080)) -* Refactor Deemen17 Works DE60 ([#25088](https://github.com/qmk/qmk_firmware/pull/25088)) -* Rookiebwoy to ivndbt ([#25142](https://github.com/qmk/qmk_firmware/pull/25142)) -* Remove duplication of RGB Matrix defaults ([#25146](https://github.com/qmk/qmk_firmware/pull/25146)) -* ymdk/id75/rp2040 ([#25157](https://github.com/qmk/qmk_firmware/pull/25157)) -* Remove duplication of RGBLight defaults ([#25169](https://github.com/qmk/qmk_firmware/pull/25169)) -* Remove empty `url` fields ([#25181](https://github.com/qmk/qmk_firmware/pull/25181)) -* Remove more duplication of defaults ([#25189](https://github.com/qmk/qmk_firmware/pull/25189)) -* Remove `"console":false` from keyboards ([#25190](https://github.com/qmk/qmk_firmware/pull/25190)) -* Remove `"command":false` from keyboards ([#25193](https://github.com/qmk/qmk_firmware/pull/25193)) -* Remove redundant keyboard headers ([#25208](https://github.com/qmk/qmk_firmware/pull/25208)) -* Add debounce to duplicated defaults check ([#25246](https://github.com/qmk/qmk_firmware/pull/25246)) -* Remove duplicate of SPI default config from keyboards ([#25266](https://github.com/qmk/qmk_firmware/pull/25266)) -* Resolve miscellaneous keyboard lint warnings ([#25268](https://github.com/qmk/qmk_firmware/pull/25268)) -* Configure boards to use development_board - 0-9 ([#25287](https://github.com/qmk/qmk_firmware/pull/25287)) -* Configure boards to use development_board - UVWXYZ ([#25288](https://github.com/qmk/qmk_firmware/pull/25288)) -* Configure boards to use development_board - S ([#25293](https://github.com/qmk/qmk_firmware/pull/25293)) -* Configure boards to use development_board - T ([#25294](https://github.com/qmk/qmk_firmware/pull/25294)) - -Keyboard fixes: -* Fix `boardsource/beiwagon` RGB Matrix coordinates ([#25018](https://github.com/qmk/qmk_firmware/pull/25018)) -* amptrics/0422 - Prevent OOB in `update_leds_for_layer` ([#25209](https://github.com/qmk/qmk_firmware/pull/25209)) -* salicylic_acid3/getta25 - Fix oled keymap ([#25295](https://github.com/qmk/qmk_firmware/pull/25295)) - -Others: -* Require 'x'/'y' properties for LED/RGB Matrix layout ([#24997](https://github.com/qmk/qmk_firmware/pull/24997)) -* Align `new-keyboard` template to current standards ([#25191](https://github.com/qmk/qmk_firmware/pull/25191)) - -Bugs: -* Fix OS_DETECTION_KEYBOARD_RESET ([#25015](https://github.com/qmk/qmk_firmware/pull/25015)) -* Fix outdated GPIO control function usage ([#25060](https://github.com/qmk/qmk_firmware/pull/25060)) -* Cater for use of `__errno_r()` in ChibiOS syscalls.c with newer picolibc revisions ([#25121](https://github.com/qmk/qmk_firmware/pull/25121)) -* Fixup eeconfig lighting reset. ([#25166](https://github.com/qmk/qmk_firmware/pull/25166)) -* Fix for Flow Tap: fix handling of distinct taps and timer updates. ([#25175](https://github.com/qmk/qmk_firmware/pull/25175)) -* Minimise force-included files ([#25194](https://github.com/qmk/qmk_firmware/pull/25194)) -* Ensure `qmk_userspace_paths` maintains detected order ([#25204](https://github.com/qmk/qmk_firmware/pull/25204)) -* Resolve alias for `qmk new-keymap` keyboard prompts ([#25210](https://github.com/qmk/qmk_firmware/pull/25210)) -* gcc15 AVR compilation fixes ([#25238](https://github.com/qmk/qmk_firmware/pull/25238)) -* Fix typos introduced by PR #25050 ([#25250](https://github.com/qmk/qmk_firmware/pull/25250)) -* Fix Wear Leveling compilation ([#25254](https://github.com/qmk/qmk_firmware/pull/25254)) -* Remove more USB only branches from NKRO handling ([#25263](https://github.com/qmk/qmk_firmware/pull/25263)) -* [Fix] lib8tion: enable fixed scale8 and blend functions ([#25272](https://github.com/qmk/qmk_firmware/pull/25272)) -* Fix tap_hold code blocks ([#25298](https://github.com/qmk/qmk_firmware/pull/25298)) diff --git a/docs/ChangeLog/20250831.md b/docs/ChangeLog/20250831.md deleted file mode 100644 index 12ce19289f..0000000000 --- a/docs/ChangeLog/20250831.md +++ /dev/null @@ -1,181 +0,0 @@ -# QMK Breaking Changes - 2025 Aug 31 Changelog - -## Changes Requiring User Action - -### Updated Keyboard Codebases - -| Old Keyboard Name | New Keyboard Name | -|--------------------------------------|----------------------------------| -| bastardkb/charybdis/3x5/v2/elitec | bastardkb/charybdis/3x5/elitec | -| bastardkb/charybdis/3x5/v2/splinky_2 | bastardkb/charybdis/3x5/elitec | -| bastardkb/charybdis/3x5/v2/splinky_3 | bastardkb/charybdis/3x5/elitec | -| bastardkb/charybdis/3x5/v2/stemcell | bastardkb/charybdis/3x5/elitec | -| bastardkb/charybdis/3x6/v2/elitec | bastardkb/charybdis/3x6/elitec | -| bastardkb/charybdis/3x6/v2/splinky_2 | bastardkb/charybdis/3x6/elitec | -| bastardkb/charybdis/3x6/v2/splinky_3 | bastardkb/charybdis/3x6/elitec | -| bastardkb/charybdis/3x6/v2/stemcell | bastardkb/charybdis/3x6/elitec | -| bastardkb/charybdis/4x6/v2/elitec | bastardkb/charybdis/4x6/elitec | -| bastardkb/charybdis/4x6/v2/splinky_2 | bastardkb/charybdis/4x6/elitec | -| bastardkb/charybdis/4x6/v2/splinky_3 | bastardkb/charybdis/4x6/elitec | -| bastardkb/charybdis/4x6/v2/stemcell | bastardkb/charybdis/4x6/elitec | -| bastardkb/dilemma/3x5_2/splinky | bastardkb/dilemma/3x5_2/promicro | -| bastardkb/scylla/v2/elitec | bastardkb/scylla/promicro | -| bastardkb/scylla/v2/splinky_2 | bastardkb/scylla/promicro | -| bastardkb/scylla/v2/splinky_3 | bastardkb/scylla/promicro | -| bastardkb/scylla/v2/stemcell | bastardkb/scylla/promicro | -| bastardkb/skeletyl/v2/elitec | bastardkb/skeletyl/promicro | -| bastardkb/skeletyl/v2/splinky_2 | bastardkb/skeletyl/promicro | -| bastardkb/skeletyl/v2/splinky_3 | bastardkb/skeletyl/promicro | -| bastardkb/skeletyl/v2/stemcell | bastardkb/skeletyl/promicro | -| bastardkb/tbkmini/v2/elitec | bastardkb/tbkmini/promicro | -| bastardkb/tbkmini/v2/splinky_2 | bastardkb/tbkmini/promicro | -| bastardkb/tbkmini/v2/splinky_3 | bastardkb/tbkmini/promicro | -| bastardkb/tbkmini/v2/stemcell | bastardkb/tbkmini/promicro | -| helix/rev2 | helix/beta | -| helix/rev3_4rows | helix/rev3 | -| helix/rev3_5rows | helix/rev3 | -| kprepublic/cstc40/daughterboard | kprepublic/cstc40/rev1 | -| kprepublic/cstc40/single_pcb | kprepublic/cstc40/rev2 | -| ll3macorn/bongopad | ll3ma/bongopad | -| novelkeys/nk65/base | novelkeys/nk65/v1 | -| tweetydabird/lotus58/elite_c | tweetydabird/lotus58 | -| tweetydabird/lotus58/nanoboot | tweetydabird/lotus58 | -| tweetydabird/lotus58/promicro | tweetydabird/lotus58 | -| tweetydabird/lotus58/rp2040_ce | tweetydabird/lotus58 | - -### Mitigate VIA keylogger security issues [#25414](https://github.com/qmk/qmk_firmware/pull/25414) - -VIA's keyboard matrix testing functionality, which allows users to identify active key presses, has been identified as a potential security concern by community members and security researchers. This feature has been demonstrated to enable unauthorized keystroke capture, with documented examples showing how malicious scripts could exploit this capability to create keyloggers. A recent security assessment revealed that user credentials could be compromised by exploiting the matrix testing function combined with VIA's keycode assignment queries. In this attack scenario, a script could remain active during a locked session and capture password input when users authenticate upon return. - -The QMK team notified the VIA team of this security vulnerability on May 17, 2022, and made multiple subsequent attempts to coordinate a mitigation strategy. Despite repeated outreach, the VIA team has provided no acknowledgment or response to these security concerns. Given the severity of the potential security implications and the lack of engagement from the VIA team, the QMK team has unilaterally implemented a security enhancement that modifies the keyboard matrix testing functionality to prevent the reporting of key press events. This change prioritizes user security and data protection over potential feature compatibility concerns within VIA. - -## 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. - -### `DEFAULT_FOLDER` removal ([#23281](https://github.com/qmk/qmk_firmware/pull/23281)) - -`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system. -Parent folders containing common configuration would create invalid build targets. - -With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets. -The `DEFAULT_FOLDER` functionality is now removed with the intent that `rules.mk` is now pure configuration. - -Backwards compatibility of build targets has been maintained where possible. - -### Converter `Pin Compatible` updates ([#20330](https://github.com/qmk/qmk_firmware/pull/20330)) - -Converter support has been further limited to only function if a keyboard declares that it is compatible. - -This can be configured in the following ways: - -:::::tabs - -==== keyboard.json - -```json [keyboard.json] -{ - "development_board": "promicro", // [!code focus] -} -``` - -==== rules.mk - -```make [rules.mk] -PIN_COMPATIBLE = promicro -``` - -::::: - -see the [Converters Feature](../feature_converters) documentation for more information. - -### Removal of deprecated RGB and Mouse keycodes ([#25444](https://github.com/qmk/qmk_firmware/pull/25444)) - -Backwards compatibility of deprecated RGB and Mouse keycodes has been removed. - -See the following documentation for the list of currently supported keycodes: - -* [RGB Lighting](../features/rgblight#keycodes) -* [RGB Matrix](../features/rgb_matrix#keycodes) -* [Mouse keys](../features/mouse_keys#mapping-mouse-actions) - -## Full changelist - -Core: -* Remove converter assumption that everything is a promicro ([#20330](https://github.com/qmk/qmk_firmware/pull/20330)) -* Remove `DEFAULT_FOLDER` handling ([#23281](https://github.com/qmk/qmk_firmware/pull/23281)) -* Add core handling for pointing device failures. ([#25315](https://github.com/qmk/qmk_firmware/pull/25315)) -* Relocate remaining `process_record_quantum` keycodes ([#25328](https://github.com/qmk/qmk_firmware/pull/25328)) -* Remove `process_action_kb` callback ([#25331](https://github.com/qmk/qmk_firmware/pull/25331)) -* Add `{rgb|led}_matrix_get_mode_name()`. ([#25344](https://github.com/qmk/qmk_firmware/pull/25344)) -* Align sleep_led logic ([#25395](https://github.com/qmk/qmk_firmware/pull/25395)) -* Mitigate VIA keylogger security issues ([#25414](https://github.com/qmk/qmk_firmware/pull/25414)) -* Deprecate some nonstandard mod & mod-tap keycode aliases ([#25437](https://github.com/qmk/qmk_firmware/pull/25437)) -* Refactor Starlight Smooth matrix effect ([#25442](https://github.com/qmk/qmk_firmware/pull/25442)) -* Remove deprecated `RGB_` and Mouse keycodes ([#25444](https://github.com/qmk/qmk_firmware/pull/25444)) -* Configure SPI for `QMK_PM2040` board ([#25481](https://github.com/qmk/qmk_firmware/pull/25481)) -* Configure SPI for `STEMCELL` board ([#25486](https://github.com/qmk/qmk_firmware/pull/25486)) -* Configure SPI for `QMK_BLOK` board ([#25487](https://github.com/qmk/qmk_firmware/pull/25487)) -* Clamp reactive offset value ([#25489](https://github.com/qmk/qmk_firmware/pull/25489)) -* Relocate `AUDIO_INIT_DELAY` implementation ([#25491](https://github.com/qmk/qmk_firmware/pull/25491)) -* Add MATRIX_ROWS_PER_HAND definition ([#25513](https://github.com/qmk/qmk_firmware/pull/25513)) -* Refactor battery driver ([#25550](https://github.com/qmk/qmk_firmware/pull/25550)) -* Add cachyos as pattern when installing dependencies ([#25580](https://github.com/qmk/qmk_firmware/pull/25580)) - -CLI: -* Add MATRIX_MASKED DD config ([#25383](https://github.com/qmk/qmk_firmware/pull/25383)) -* Ensure keyboard aliases do not point to themselves ([#25500](https://github.com/qmk/qmk_firmware/pull/25500)) - -Keyboards: -* [Update] E8ghtyNeo caps indicator ([#25009](https://github.com/qmk/qmk_firmware/pull/25009)) -* Keychron C3 Pro `c3_pro.c` corrections ([#25049](https://github.com/qmk/qmk_firmware/pull/25049)) -* Update franky36 pid and vid ([#25160](https://github.com/qmk/qmk_firmware/pull/25160)) -* Added Encoder support for Soyuz ([#25279](https://github.com/qmk/qmk_firmware/pull/25279)) -* CSTC40 rev3 (FXTWINK) ([#25285](https://github.com/qmk/qmk_firmware/pull/25285)) -* Migrate remaining `DEFAULT_FOLDER` to keyboard aliases ([#25291](https://github.com/qmk/qmk_firmware/pull/25291)) -* Configure boards to use development_board - R ([#25316](https://github.com/qmk/qmk_firmware/pull/25316)) -* Configure boards to use development_board - P ([#25317](https://github.com/qmk/qmk_firmware/pull/25317)) -* Configure boards to use development_board - NO ([#25338](https://github.com/qmk/qmk_firmware/pull/25338)) -* Configure boards to use development_board - LM ([#25341](https://github.com/qmk/qmk_firmware/pull/25341)) -* maple_computing/launchpad - Remove broken `default_rgb` keymap ([#25342](https://github.com/qmk/qmk_firmware/pull/25342)) -* update winry25 VID and PID ([#25351](https://github.com/qmk/qmk_firmware/pull/25351)) -* Configure boards to use development_board - DE ([#25369](https://github.com/qmk/qmk_firmware/pull/25369)) -* Configure boards to use development_board - FGHIJ ([#25370](https://github.com/qmk/qmk_firmware/pull/25370)) -* refactor(mercutio): layouts & reformatting ([#25408](https://github.com/qmk/qmk_firmware/pull/25408)) -* Configure boards to use development_board - ABC ([#25417](https://github.com/qmk/qmk_firmware/pull/25417)) -* Configure boards to use development_board - K ([#25421](https://github.com/qmk/qmk_firmware/pull/25421)) -* Refactor `helix/pico` ([#25428](https://github.com/qmk/qmk_firmware/pull/25428)) -* Refactor `helix/rev2` ([#25429](https://github.com/qmk/qmk_firmware/pull/25429)) -* Refactor `helix/rev3_{4,5}rows` ([#25430](https://github.com/qmk/qmk_firmware/pull/25430)) -* Migrate `helix` common configuration ([#25433](https://github.com/qmk/qmk_firmware/pull/25433)) -* Refactor `bastardkb/tbkmini` ([#25438](https://github.com/qmk/qmk_firmware/pull/25438)) -* Convert `novelkeys/nk65` to use RGB Matrix ([#25450](https://github.com/qmk/qmk_firmware/pull/25450)) -* Convert moon to lite custom matrix ([#25452](https://github.com/qmk/qmk_firmware/pull/25452)) -* Refactor `bastardkb/skeletyl` ([#25456](https://github.com/qmk/qmk_firmware/pull/25456)) -* Refactor `bastardkb/scylla` ([#25459](https://github.com/qmk/qmk_firmware/pull/25459)) -* Refactor `bastardkb/dilemma/3x5_2` ([#25462](https://github.com/qmk/qmk_firmware/pull/25462)) -* Migrate `usb.force_nkro` to `host.default.nkro` ([#25468](https://github.com/qmk/qmk_firmware/pull/25468)) -* Give mouse report to pointing_device_task_user first in ploopyco devices ([#25475](https://github.com/qmk/qmk_firmware/pull/25475)) -* Refactor `bastardkb/charybdis/3x5` ([#25488](https://github.com/qmk/qmk_firmware/pull/25488)) -* Refactor `bastardkb/charybdis/3x6` ([#25493](https://github.com/qmk/qmk_firmware/pull/25493)) -* Refactor `bastardkb/charybdis/4x6` ([#25494](https://github.com/qmk/qmk_firmware/pull/25494)) -* Rebrand For Ll3ma Keyboards ([#25498](https://github.com/qmk/qmk_firmware/pull/25498)) -* Remove some encoder resolution that duplicate defaults ([#25517](https://github.com/qmk/qmk_firmware/pull/25517)) -* Remove overriding of `DF()` within keyboards ([#25541](https://github.com/qmk/qmk_firmware/pull/25541)) -* Refactor inland/kb83 ([#25542](https://github.com/qmk/qmk_firmware/pull/25542)) -* Refactor `tweetydabird/lotus58` ([#25547](https://github.com/qmk/qmk_firmware/pull/25547)) -* Swap spleeb to default GENERIC_PROMICRO_RP2040 board files ([#25564](https://github.com/qmk/qmk_firmware/pull/25564)) - -Keyboard fixes: -* Fix `keebio/quefrency/rev1:default60` ([#25423](https://github.com/qmk/qmk_firmware/pull/25423)) -* Fixup `bastardkb/tbkmini` keymap's build target ([#25458](https://github.com/qmk/qmk_firmware/pull/25458)) -* Miscellaneous fixes for lint warnings ([#25469](https://github.com/qmk/qmk_firmware/pull/25469)) -* Fix pytest/has_community default keymap location ([#25471](https://github.com/qmk/qmk_firmware/pull/25471)) -* Fix serial speed DD configuration & migrate keyboards ([#25546](https://github.com/qmk/qmk_firmware/pull/25546)) -* Update rgb x coordinate of rightmost column ([#25556](https://github.com/qmk/qmk_firmware/pull/25556)) - -Bugs: -* Fix buggy switch statement in quantum.c ([#25322](https://github.com/qmk/qmk_firmware/pull/25322)) -* Compilation fixes for `-fno-common` ([#25436](https://github.com/qmk/qmk_firmware/pull/25436)) -* Only userspace should be searched for keyboard aliases when locating keymaps ([#25477](https://github.com/qmk/qmk_firmware/pull/25477)) -* Allow `qmk flash ` to flash AT32 boards ([#25497](https://github.com/qmk/qmk_firmware/pull/25497)) diff --git a/docs/_aliases.json b/docs/_aliases.json index 0dfcdea1e2..f06e032215 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -16,8 +16,6 @@ "/tutorial": "/newbs", "/unicode": "/feature_unicode", - "/features/bluetooth": "/features/wireless", - "/adc_driver": "/drivers/adc", "/apa102_driver": "/drivers/apa102", "/audio_driver": "/drivers/audio", @@ -26,7 +24,7 @@ "/feature_auto_shift": "/features/auto_shift", "/feature_autocorrect": "/features/autocorrect", "/feature_backlight": "/features/backlight", - "/feature_bluetooth": "/features/wireless", + "/feature_bluetooth": "/features/bluetooth", "/feature_bootmagic": "/features/bootmagic", "/feature_caps_word": "/features/caps_word", "/feature_combo": "/features/combo", diff --git a/docs/_sidebar.json b/docs/_sidebar.json index d237b0e1d0..2ca62af92a 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -24,13 +24,6 @@ { "text": "Glossary", "link": "/reference_glossary" } ] }, - { - "text": "Licensing", - "items": [ - { "text": "License Violations", "link": "/license_violations" }, - { "text": "Proprietary Libraries", "link": "/proprietary_libs" } - ] - }, { "text": "Configurator", "items": [ @@ -66,7 +59,6 @@ "items": [ { "text": "Customizing Functionality", "link": "/custom_quantum_functions" }, { "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" }, - { "text": "Community Modules", "link": "/features/community_modules" }, { "text": "Keymap Overview", "link": "/keymap" }, { "text": "Development Environments", @@ -131,7 +123,6 @@ { "text": "Key Lock", "link": "/features/key_lock" }, { "text": "Key Overrides", "link": "/features/key_overrides" }, { "text": "Layers", "link": "/feature_layers" }, - { "text": "Layer Lock", "link": "/features/layer_lock" }, { "text": "One Shot Keys", "link": "/one_shot_keys" }, { "text": "OS Detection", "link": "/features/os_detection" }, { "text": "Raw HID", "link": "/features/rawhid" }, @@ -175,8 +166,8 @@ ] }, { "text": "Audio", "link": "/features/audio" }, - { "text": "Battery", "link": "/features/battery" }, - { "text": "Bootmagic", "link": "/features/bootmagic" }, + { "text": "Bluetooth", "link": "/features/bluetooth" }, + { "text": "Bootmagic Lite", "link": "/features/bootmagic" }, { "text": "Converters", "link": "/feature_converters" }, { "text": "Custom Matrix", "link": "/custom_matrix" }, { "text": "DIP Switch", "link": "/features/dip_switch" }, @@ -188,8 +179,7 @@ { "text": "Pointing Device", "link": "/features/pointing_device" }, { "text": "PS/2 Mouse", "link": "/features/ps2_mouse" }, { "text": "Split Keyboard", "link": "/features/split_keyboard" }, - { "text": "Stenography", "link": "/features/stenography" }, - { "text": "Wireless", "link": "/features/wireless" } + { "text": "Stenography", "link": "/features/stenography" } ] }, { @@ -214,7 +204,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20250831" + "link": "/ChangeLog/20240825" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } @@ -234,7 +224,6 @@ { "text": "ADC Driver", "link": "/drivers/adc" }, { "text": "APA102 Driver", "link": "/drivers/apa102" }, { "text": "Audio Driver", "link": "/drivers/audio" }, - { "text": "Battery Driver", "link": "/drivers/battery" }, { "text": "EEPROM Driver", "link": "/drivers/eeprom" }, { "text": "Flash Driver", "link": "/drivers/flash" }, { "text": "I2C Driver", "link": "/drivers/i2c" }, diff --git a/docs/api_development_overview.md b/docs/api_development_overview.md index eb164bec52..e55d034100 100644 --- a/docs/api_development_overview.md +++ b/docs/api_development_overview.md @@ -4,7 +4,7 @@ This page attempts to introduce developers to the QMK Compiler. It does not go i # Overview -The QMK Compile API consists of a few moving parts: +The QMK Compile API consists of a few movings parts: ![Architecture Diagram](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg) diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 1e9335d8bc..7f87283e85 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? -* [2025 Aug 31](ChangeLog/20250831) -* [2025 May 25](ChangeLog/20250525) -* [2025 Feb 23](ChangeLog/20250223) +* [2024 Aug 25](ChangeLog/20240825) +* [2024 May 26](ChangeLog/20240526) +* [2024 Feb 25](ChangeLog/20240225) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for November 30, 2025. +The next Breaking Change is scheduled for August 25, 2024. ### Important Dates -* 2025 Aug 31 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2025 Nov 2 - `develop` closed to new PRs. -* 2025 Nov 2 - Call for testers. -* 2025 Nov 16 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2025 Nov 23 - `develop` is locked, only critical bugfix PRs merged. -* 2025 Nov 28 - `master` is locked, no PRs merged. -* 2025 Nov 30 - Merge `develop` to `master`. -* 2025 Nov 30 - `master` is unlocked. PRs can be merged again. +* 2024 Aug 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2024 Oct 27 - `develop` closed to new PRs. +* 2024 Oct 27 - Call for testers. +* 2024 Nov 10 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2024 Nov 17 - `develop` is locked, only critical bugfix PRs merged. +* 2024 Nov 22 - `master` is locked, no PRs merged. +* 2024 Nov 24 - Merge `develop` to `master`. +* 2024 Nov 24 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 29ceb09db7..1596aa1f54 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,10 +2,6 @@ This page links to all previous changelogs from the QMK Breaking Changes process. -* [2025 Aug 31](ChangeLog/20250831) - version 0.30.0 -* [2025 May 25](ChangeLog/20250525) - version 0.29.0 -* [2025 Feb 23](ChangeLog/20250223) - version 0.28.0 -* [2024 Nov 24](ChangeLog/20241124) - version 0.27.0 * [2024 Aug 25](ChangeLog/20240825) - version 0.26.0 * [2024 May 26](ChangeLog/20240526) - version 0.25.0 * [2024 Feb 25](ChangeLog/20240225) - version 0.24.0 diff --git a/docs/cli.md b/docs/cli.md index ab25a480ab..7d4c10cedd 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -6,7 +6,7 @@ The QMK CLI (command line interface) makes building and working with QMK keyboar ### Requirements {#requirements} -QMK requires Python 3.9 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. +QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. ### Install Using Homebrew (macOS, some Linux) {#install-using-homebrew} @@ -18,21 +18,9 @@ export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware` qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment ``` -### Install Using uv {#install-using-uv} - -If you have installed [uv](https://docs.astral.sh/uv/), the QMK CLI can be installed and managed as a uv tool: - -``` -uv tool install qmk -export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware` -qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment -``` - -This installation can be updated via `uv tool upgrade qmk`. See [Upgrading tools](https://docs.astral.sh/uv/guides/tools/#upgrading-tools) for more information. - ### Install Using pip {#install-using-easy_install-or-pip} -If your system is not listed above you can install QMK manually. First ensure that you have Python 3.9 (or later) installed and have installed pip. Then install QMK with this command: +If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command: ``` python3 -m pip install qmk diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 02f362b14c..7d74d8e617 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -17,12 +17,12 @@ qmk compile [-c] **Usage for Keymaps**: ``` -qmk compile [-c] [-e =] [-j ] [--compiledb] -kb -km +qmk compile [-c] [-e =] [-j ] -kb -km ``` **Usage in Keyboard Directory**: -Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap ` +Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap ` ``` qmk compile ``` @@ -30,7 +30,7 @@ qmk compile **Usage for building all keyboards that support a specific keymap**: ``` -qmk compile -kb all -km +qmk compile -kb all -km ``` **Example**: @@ -62,7 +62,7 @@ $ qmk compile Must be under `qmk_firmware/layouts/`, and in a keymap folder. ``` -qmk compile -kb +qmk compile -kb ``` **Example**: @@ -77,30 +77,11 @@ $ qmk compile -kb dz60 It is possible to speed up compilation by adding the `-j`/`--parallel` flag. ``` -qmk compile -j -kb +qmk compile -j -kb ``` The `num_jobs` argument determines the maximum number of jobs that can be used. Setting it to zero will enable parallel compilation without limiting the maximum number of jobs. ``` -qmk compile -j 0 -kb -``` - -**Compilation Database**: - -Creates a `compile_commands.json` file. - -Does your IDE/editor use a language server but doesn't _quite_ find all the necessary include files? Do you hate red squigglies? Do you wish your editor could figure out `#include QMK_KEYBOARD_H`? You might need a [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)! Compiling using this argument can create this for you. - -**Example:** - -``` -$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak -$ qmk compile --compiledb -Ψ Making clean -Ψ Gathering build instructions from make ........ -Ψ Found 63 compile commands -Ψ Writing build database to /Users/you/src/qmk_firmware/compile_commands.json -Ψ Compiling keymap with make ........ -... build log continues ... +qmk compile -j 0 -kb ``` ## `qmk flash` @@ -120,7 +101,7 @@ qmk flash [-bl ] [-c] [-e =] [-j ] -km [-bl ] [-c] [-e =] [-j ] +qmk flash -kb -km [-bl ] [-c] [-e =] [-j ] ``` **Usage for pre-compiled firmwares**: @@ -172,26 +153,20 @@ qmk cd This command allows for searching through keyboard/keymap targets, filtering by specific criteria. `info.json` and `rules.mk` files contribute to the search data, as well as keymap configurations, and the results can be filtered using "dotty" syntax matching the overall `info.json` file format. -For example, one could search for all keyboards powered by the STM32F411 microcontroller: +For example, one could search for all keyboards using STM32F411: ``` -qmk find -f 'processor==STM32F411' +qmk find -f 'processor=STM32F411' ``` -The list can be further constrained by passing additional filter expressions: +...and one can further constrain the list to keyboards using STM32F411 as well as rgb_matrix support: ``` -qmk find -f 'processor==STM32F411' -f 'features.rgb_matrix==true' +qmk find -f 'processor=STM32F411' -f 'features.rgb_matrix=true' ``` -The following filter expressions are supported: +The following filter expressions are also supported: - - `key == value`: Match targets where `key` is equal to `value`. May include wildcards such as `*` and `?`. - - `key != value`: Match targets where `key` is not `value`. May include wildcards such as `*` and `?`. - - `key < value`: Match targets where `key` is a number less than `value`. - - `key > value`: Match targets where `key` is a number greater than `value`. - - `key <= value`: Match targets where `key` is a number less than or equal to `value`. - - `key >= value`: Match targets where `key` is a number greater than or equal to `value`. - `exists(key)`: Match targets where `key` is present. - `absent(key)`: Match targets where `key` is not present. - `contains(key, value)`: Match targets where `key` contains `value`. Can be used for strings, arrays and object keys. @@ -200,7 +175,7 @@ The following filter expressions are supported: You can also list arbitrary values for each matched target with `--print`: ``` -qmk find -f 'processor==STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix' +qmk find -f 'processor=STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix' ``` **Usage**: @@ -631,15 +606,14 @@ This command compiles all the External Userspace build targets. **Usage**: ``` -qmk userspace-compile [-h] [-e ENV] [-p] [-n] [-c] [-j PARALLEL] [-t] +qmk userspace-compile [-h] [-e ENV] [-n] [-c] [-j PARALLEL] [-t] options: -h, --help show this help message and exit - -e, --env ENV Set a variable to be passed to make. May be passed multiple times. - -p, --print-failures Print failed builds. + -e ENV, --env ENV Set a variable to be passed to make. May be passed multiple times. -n, --dry-run Don't actually build, just show the commands to be run. -c, --clean Remove object files before compiling. - -j, --parallel PARALLEL + -j PARALLEL, --parallel PARALLEL Set the number of parallel make jobs; 0 means unlimited. -t, --no-temp Remove temporary files during build. ``` @@ -714,28 +688,52 @@ qmk format-c qmk format-c -b branch_name ``` -## `qmk docs` - -This command starts a local HTTP server which you can use for browsing or improving the docs, and provides live reload capability whilst editing. Default port is 8936. -Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser. - -Requires `node` and `yarn` to be installed as prerequisites. +## `qmk generate-compilation-database` **Usage**: ``` -usage: qmk docs [-h] [-b] [-p PORT] +qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP] +``` + +Creates a `compile_commands.json` file. + +Does your IDE/editor use a language server but doesn't _quite_ find all the necessary include files? Do you hate red squigglies? Do you wish your editor could figure out `#include QMK_KEYBOARD_H`? You might need a [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)! The qmk tool can build this for you. + +This command needs to know which keyboard and keymap to build. It uses the same configuration options as the `qmk compile` command: arguments, current directory, and config files. + +**Example:** + +``` +$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak +$ qmk generate-compilation-database +Ψ Making clean +Ψ Gathering build instructions from make -n gh60/satan:colemak +Ψ Found 50 compile commands +Ψ Writing build database to /Users/you/src/qmk_firmware/compile_commands.json +``` + +Now open your dev environment and live a squiggly-free life. + +## `qmk docs` + +This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 5173. + +This command requires `node` and `yarn` to be installed as prerequisites, and provides live reload capability whilst editing. + +**Usage**: + +``` +usage: qmk docs [-h] options: - -h, --help show this help message and exit - -b, --browser Open the docs in the default browser. - -p, --port PORT Port number to use. + -h, --help show this help message and exit ``` ## `qmk generate-docs` -This command generates QMK documentation for production. -Use the `-s`/`--serve` flag to also serve the static site on port 4173 once built. Note that this does not provide live reloading; use `qmk docs` instead for development purposes. +This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs. +Use the `-s`/`--serve` flag to also serve the static site once built. Default port is 4173. This command requires `node` and `yarn` to be installed as prerequisites, and requires the operating system to support symlinks. @@ -878,13 +876,3 @@ Run single test: ``` qmk test-c --test basic ``` - -## `qmk generate-compilation-database` - -**Usage**: - -``` -qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP] -``` - -This command has been deprecated as it cannot take into account configurables such as [converters](/feature_converters) or environment variables normally specified on the command line; please use the `--compiledb` flag with `qmk compile` instead. diff --git a/docs/cli_development.md b/docs/cli_development.md index 74ac53d327..2e74220d4b 100644 --- a/docs/cli_development.md +++ b/docs/cli_development.md @@ -44,7 +44,7 @@ def hello(cli): First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function. -Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.9/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. +Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. # User Interaction @@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below. -Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.9/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. +Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. You should never use the format operator (`%`) directly, always pass values as arguments. ### Logging (`cli.log`) -The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.9/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. +The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. The default log level is `INFO`. If the user runs `qmk -v ` the default log level will be set to `DEBUG`. diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md index b25466bf82..502ee9102e 100644 --- a/docs/coding_conventions_python.md +++ b/docs/coding_conventions_python.md @@ -2,7 +2,7 @@ Most of our style follows PEP8 with some local modifications to make things less nit-picky. -* We target Python 3.9 for compatibility with all supported platforms. +* We target Python 3.7 for compatibility with all supported platforms. * We indent using four (4) spaces (soft tabs) * We encourage liberal use of comments * Think of them as a story describing the feature @@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the ## Integration Tests -Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.9/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. +Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. ## Unit Tests diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index f148c39191..785aee30d5 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -57,10 +57,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s * [WB32F3G71xx](http://www.westberrytech.com) * [WB32FQ95xx](http://www.westberrytech.com) -### Artery (AT32) - - * [AT32F415](https://www.arterychip.com/en/product/AT32F415.jsp) - ### NXP (Kinetis) * [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x) @@ -79,6 +75,10 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040). +## Atmel ATSAM + +There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware. + ## RISC-V ### GigaDevice diff --git a/docs/config_options.md b/docs/config_options.md index 91c17cf09d..a1ca8c8d50 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -140,6 +140,8 @@ If you define these options you will enable the associated feature, which may in * `#define ENABLE_COMPILE_KEYCODE` * Enables the `QK_MAKE` keycode +* `#define FORCE_NKRO` + * NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots. * `#define STRICT_LAYER_RELEASE` * force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases) @@ -364,6 +366,8 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i ## Build Options +* `DEFAULT_FOLDER` + * Used to specify a default folder when a keyboard has more than one sub-folder. * `FIRMWARE_FORMAT` * Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building. * `SRC` @@ -397,7 +401,6 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i * `atmel-dfu` * `lufa-dfu` * `qmk-dfu` - * `qmk-hid` * `halfkay` * `caterina` * `bootloadhid` @@ -410,7 +413,7 @@ Use these to enable or disable building certain features. The more you have enab * `MAGIC_ENABLE` * MAGIC actions (BOOTMAGIC without the boot) * `BOOTMAGIC_ENABLE` - * Enable Bootmagic + * Enable Bootmagic Lite * `MOUSEKEY_ENABLE` * Mouse keys * `EXTRAKEY_ENABLE` @@ -423,6 +426,8 @@ Use these to enable or disable building certain features. The more you have enab * Key combo feature * `NKRO_ENABLE` * USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +* `RING_BUFFERED_6KRO_REPORT_ENABLE` + * USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed. * `AUDIO_ENABLE` * Enable the audio subsystem. * `KEY_OVERRIDE_ENABLE` diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md index 0dfc41ea21..40304dc57b 100644 --- a/docs/configurator_default_keymaps.md +++ b/docs/configurator_default_keymaps.md @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" ], [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", diff --git a/docs/configurator_diagram.drawio b/docs/configurator_diagram.drawio index 661f884def..091a3a76b8 100644 --- a/docs/configurator_diagram.drawio +++ b/docs/configurator_diagram.drawio @@ -1 +1 @@ -5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== +5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== \ No newline at end of file diff --git a/docs/configurator_diagram.svg b/docs/configurator_diagram.svg index 1e540d70a6..bcf0bf76d1 100644 --- a/docs/configurator_diagram.svg +++ b/docs/configurator_diagram.svg @@ -1,3 +1,3 @@ -
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
+
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/contributing.md b/docs/contributing.md index 70a00b706d..bbb1997a6f 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -106,10 +106,10 @@ 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 -b +qmk docs ``` -Which should automatically open your browser; otherwise, navigate to `http://localhost:8936/`. +and navigating to `http://localhost:5173/`. ## Keyboards diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 2c4eac64f0..1479eb53f6 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -9,19 +9,12 @@ This page does not assume any special knowledge about QMK, but reading [Understa We have structured QMK as a hierarchy: * Core (`_quantum`) - * Community Module (`_`) - * Community Module -> Keyboard/Revision (`__kb`) - * Community Module -> Keymap (`__user`) * Keyboard/Revision (`_kb`) * Keymap (`_user`) Each of the functions described below can be defined with a `_kb()` suffix or a `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level. -When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` at an appropriate location, otherwise the keymap level function will never be called. - -Functions at the `__xxx()` level are intended to allow keyboards or keymaps to override or enhance the processing associated with a [community module](/features/community_modules). - -When defining module overrides such as `process_record_()`, the same pattern should be used; the module must invoke `process_record__kb()` as appropriate. +When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called. # Custom Keycodes @@ -106,7 +99,7 @@ These are the three main initialization functions, listed in the order that they * `keyboard_post_init_*` - Happens at the end of the firmware's startup process. This is where you'd want to put "customization" code, for the most part. ::: warning -For most people, the `keyboard_post_init_user` function is what you want to implement. For instance, this is where you want to set up things for RGB Underglow. +For most people, the `keyboard_post_init_user` function is what you want to call. For instance, this is where you want to set up things for RGB Underglow. ::: ## Keyboard Pre Initialization code @@ -145,7 +138,7 @@ void keyboard_pre_init_user(void) { This is called when the matrix is initialized, and after some of the hardware has been set up, but before many of the features have been initialized. -This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependent on where it's started. +This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependant on where it's started. ### `matrix_init_*` Function Documentation @@ -209,7 +202,7 @@ You should use this function if you need custom matrix scanning code. It can als This function gets called at the end of all QMK processing, before starting the next iteration. You can safely assume that QMK has dealt with the last matrix scan at the time that these functions are invoked -- layer states have been updated, USB reports have been sent, LEDs have been updated, and displays have been drawn. -Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To keep your board responsive, it's suggested to do as little as possible during these function calls, potentially throttling their behaviour if you do indeed require implementing something special. +Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To keep your board responsive, it's suggested to do as little as possible during these function calls, potentially throtting their behaviour if you do indeed require implementing something special. ### Example `void housekeeping_task_user(void)` implementation @@ -246,7 +239,7 @@ void check_rgb_timeout(void) { } } /* Then, call the above functions from QMK's built in post processing functions like so */ -/* Runs at the end of each scan loop, check if RGB timeout has occurred or not */ +/* Runs at the end of each scan loop, check if RGB timeout has occured or not */ void housekeeping_task_user(void) { #ifdef RGBLIGHT_TIMEOUT check_rgb_timeout(); @@ -316,7 +309,7 @@ bool shutdown_kb(bool jump_to_bootloader) { if (!shutdown_user(jump_to_bootloader)) { return false; } - + if (jump_to_bootloader) { // red for bootloader rgb_matrix_set_color_all(RGB_OFF); diff --git a/docs/data_driven_config.md b/docs/data_driven_config.md index a97b314a2f..2c1a56e004 100644 --- a/docs/data_driven_config.md +++ b/docs/data_driven_config.md @@ -6,7 +6,7 @@ This page describes how QMK's data driven JSON configuration system works. It is Historically QMK has been configured through a combination of two mechanisms- `rules.mk` and `config.h`. While this worked well when QMK was only a handful of keyboards we've grown to encompass nearly 4000 supported keyboards. That extrapolates out to 6000 configuration files under `keyboards/` alone! The freeform nature of these files and the unique patterns people have used to avoid duplication have made ongoing maintenance a challenge, and a large number of our keyboards follow patterns that are outdated and sometimes harder to understand. -We have also been working on bringing the power of QMK to people who aren't comfortable with a CLI, and other projects such as VIA are working to make using QMK as easy as installing a program. These tools need information about how a keyboard is laid out or what pins and features are available so that users can take full advantage of QMK. We introduced `info.json` as a first step towards this. The QMK API is an effort to combine these 3 sources of information- `config.h`, `rules.mk`, and `info.json`- into a single source of truth that end-user tools can use. +We have also been working on bringing the power of QMK to people who aren't comformable with a CLI, and other projects such as VIA are working to make using QMK as easy as installing a program. These tools need information about how a keyboard is laid out or what pins and features are available so that users can take full advantage of QMK. We introduced `info.json` as a first step towards this. The QMK API is an effort to combine these 3 sources of information- `config.h`, `rules.mk`, and `info.json`- into a single source of truth that end-user tools can use. Now we have support for generating `rules.mk` and `config.h` values from `info.json`, allowing us to have a single source of truth. This will allow us to use automated tooling to maintain keyboards saving a lot of time and maintenance work. diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 6fbcfa3bff..099376faeb 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have ## Installation -Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. -Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. +Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. +Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. Alternatively, hold `BOOT` while inserting the USB cable. @@ -22,7 +22,7 @@ If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is pr If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install. -![Zadig with a bootloader driver correctly installed](/b8VgXzx.png) +![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png) Finally, unplug and replug the keyboard to make sure the new driver has been loaded. If you are using the QMK Toolbox to flash, exit and restart it too, as it can sometimes fail to recognize the driver change. @@ -30,15 +30,15 @@ Finally, unplug and replug the keyboard to make sure the new driver has been loa If you find that you can no longer type with the keyboard, you may have accidentally replaced the driver for the keyboard itself instead of for the bootloader. This can happen when the keyboard is not in the bootloader mode. You can easily confirm this in Zadig - a healthy keyboard has the `HidUsb` driver installed on all of its interfaces: -![A healthy keyboard as seen by Zadig](/Hx0E5kC.png) +![A healthy keyboard as seen by Zadig](https://i.imgur.com/Hx0E5kC.png) Open the Device Manager, select **View → Devices by container**, and look for an entry with your keyboard's name. -![The board with the wrong driver installed, in Device Manager](/o7WLvBl.png) +![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/o7WLvBl.png) Right-click each entry and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first if it appears. -![The Device Uninstall dialog, with the "delete driver" checkbox ticked](/aEs2RuA.png) +![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png) Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat this process until Zadig reports the correct driver. @@ -54,11 +54,11 @@ Open the Device Manager, select **View → Devices by container**, and look for Find the `Inf name` value in the Details tab of the device properties. This should generally be something like `oemXX.inf`: -![Device properties showing the Inf name value](/Bu4mk9m.png) +![Device properties showing the Inf name value](https://i.imgur.com/Bu4mk9m.png) Then, open a new Command Prompt window as an Administrator (type in `cmd` into the Start menu and press Ctrl+Shift+Enter). Run `pnputil /enum-drivers` to verify the `Inf name` matches the `Published Name` field of one of the entries: -![pnputil output with matching driver highlighted](/3RrSjzW.png) +![pnputil output with matching driver highlighted](https://i.imgur.com/3RrSjzW.png) Run `pnputil /delete-driver oemXX.inf /uninstall`. This will delete the driver and remove it from any devices using it. Note that this will not uninstall the device itself. @@ -98,7 +98,6 @@ The device name here is the name that appears in Zadig, and may not be what the |`bootloadhid` |HIDBoot |`16C0:05DF` |HidUsb | |`usbasploader`|USBasp |`16C0:05DC` |libusbK| |`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB | -|`at32-dfu` |AT32 Bootloader DFU |`2E3C:DF11` |WinUSB | |`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | |`gd32v-dfu` |GD32V BOOTLOADER |`28E9:0189` |WinUSB | |`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | diff --git a/docs/drivers/audio.md b/docs/drivers/audio.md index 165e61f065..c764c97369 100644 --- a/docs/drivers/audio.md +++ b/docs/drivers/audio.md @@ -57,32 +57,27 @@ This driver needs one Timer per enabled/used DAC channel, to trigger conversion; Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timers 6, 7 and 8: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_DAC TRUE // [!code focus] -#define HAL_USE_GPT TRUE // [!code focus] - +```c +//halconf.h: +#define HAL_USE_DAC TRUE +#define HAL_USE_GPT TRUE #include_next ``` -```c [mcuconf.h] -#pragma once +```c +// mcuconf.h: #include_next - -#undef STM32_DAC_USE_DAC1_CH1 // [!code focus] -#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus] -#undef STM32_DAC_USE_DAC1_CH2 // [!code focus] -#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus] -#undef STM32_GPT_USE_TIM6 // [!code focus] -#define STM32_GPT_USE_TIM6 TRUE // [!code focus] -#undef STM32_GPT_USE_TIM7 // [!code focus] -#define STM32_GPT_USE_TIM7 TRUE // [!code focus] -#undef STM32_GPT_USE_TIM8 // [!code focus] -#define STM32_GPT_USE_TIM8 TRUE // [!code focus] +#undef STM32_DAC_USE_DAC1_CH1 +#define STM32_DAC_USE_DAC1_CH1 TRUE +#undef STM32_DAC_USE_DAC1_CH2 +#define STM32_DAC_USE_DAC1_CH2 TRUE +#undef STM32_GPT_USE_TIM6 +#define STM32_GPT_USE_TIM6 TRUE +#undef STM32_GPT_USE_TIM7 +#define STM32_GPT_USE_TIM7 TRUE +#undef STM32_GPT_USE_TIM8 +#define STM32_GPT_USE_TIM8 TRUE ``` -::: ::: tip Note: DAC1 (A4) uses TIM6, DAC2 (A5) uses TIM7, and the audio state timer uses TIM8 (configurable). @@ -100,28 +95,23 @@ only needs one timer (GPTD6, Tim6) to trigger the DAC unit to do a conversion; t Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timer 6: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_DAC TRUE // [!code focus] -#define HAL_USE_GPT TRUE // [!code focus] - +```c +//halconf.h: +#define HAL_USE_DAC TRUE +#define HAL_USE_GPT TRUE #include_next ``` -```c [mcuconf.h] -#pragma once +```c +// mcuconf.h: #include_next - -#undef STM32_DAC_USE_DAC1_CH1 // [!code focus] -#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus] -#undef STM32_DAC_USE_DAC1_CH2 // [!code focus] -#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus] -#undef STM32_GPT_USE_TIM6 // [!code focus] -#define STM32_GPT_USE_TIM6 TRUE // [!code focus] +#undef STM32_DAC_USE_DAC1_CH1 +#define STM32_DAC_USE_DAC1_CH1 TRUE +#undef STM32_DAC_USE_DAC1_CH2 +#define STM32_DAC_USE_DAC1_CH2 TRUE +#undef STM32_GPT_USE_TIM6 +#define STM32_GPT_USE_TIM6 TRUE ``` -::: ### DAC Config @@ -180,25 +170,19 @@ This driver uses the ChibiOS-PWM system to produce a square-wave on specific out The hardware directly toggles the pin via its alternate function. See your MCU's data-sheet for which pin can be driven by what timer - looking for TIMx_CHy and the corresponding alternate function. A configuration example for the STM32F103C8 would be: - -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_PWM TRUE // [!code focus] -#define HAL_USE_PAL TRUE // [!code focus] - +```c +//halconf.h: +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE #include_next ``` -```c [mcuconf.h] -#pragma once +```c +// mcuconf.h: #include_next - -#undef STM32_PWM_USE_TIM1 // [!code focus] -#define STM32_PWM_USE_TIM1 TRUE // [!code focus] +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE ``` -::: If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions - TIM1_CH1 = PA8 <- alternate0 diff --git a/docs/drivers/aw20216s.md b/docs/drivers/aw20216s.md index a8c87dd0f9..36a6d63c33 100644 --- a/docs/drivers/aw20216s.md +++ b/docs/drivers/aw20216s.md @@ -2,7 +2,7 @@ SPI 18x12 LED matrix driver by Awinic. Supports a maximum of four drivers, each controlling up to 216 single-color LEDs, or 72 RGB LEDs. -[AW20216S Datasheet](https://doc.awinic.com/doc/202412/a055779b-49c0-4d09-8f04-73029f44b72b.pdf) +[AW20216S Datasheet](https://doc.awinic.com/doc/20230609wm/b6a9c70b-e1bd-495b-925f-bcbed3fc2620.pdf) ## Usage {#usage} @@ -44,7 +44,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { diff --git a/docs/drivers/battery.md b/docs/drivers/battery.md deleted file mode 100644 index ae07668cc0..0000000000 --- a/docs/drivers/battery.md +++ /dev/null @@ -1,52 +0,0 @@ -# Battery Driver - -This driver provides support for directly sampling battery level. - -## Usage - -To use this driver, add the following to your `rules.mk`: - -```make -BATTERY_DRIVER_REQUIRED = yes -``` - -::::info Note -This is already configured for you if you are using the [Battery](../features/battery) feature. -:::: - -## Driver Configuration {#driver-configuration} - -Driver selection can be configured in `rules.mk` as `BATTERY_DRIVER`. Valid values are `adc`, `vendor`, or `custom`. See below for information on individual drivers. - -### ADC Driver {#adc-driver} - -The default configuration assumes the battery is connected to a ADC capable pin through a voltage divider. - -```make -BATTERY_DRIVER = adc -``` - -The following `#define`s apply only to the `adc` driver: - -|Define |Default |Description | -|---------------------------------|--------------|--------------------------------------------------------------| -|`BATTERY_ADC_PIN` |*Not defined* |The GPIO pin connected to the voltage divider. | -|`BATTERY_ADC_REF_VOLTAGE_MV` |`3300` |The ADC reverence voltage, in millivolts. | -|`BATTERY_ADC_VOLTAGE_DIVIDER_R1` |`100` |The voltage divider resistance, in kOhm. Set to 0 to disable. | -|`BATTERY_ADC_VOLTAGE_DIVIDER_R2` |`100` |The voltage divider resistance, in kOhm. Set to 0 to disable. | -|`BATTERY_ADC_RESOLUTION` |`10` |The ADC resolution configured for the ADC Driver. | - -### Custom Driver {#custom-driver} - -A custom driver is expected to implement the following interface: - -```c -void battery_driver_init(void) { - // Perform any initialisation here -} - -uint8_t battery_driver_sample_percent(void) { - // Read and return current state here - return value; -} -``` diff --git a/docs/drivers/gpio.md b/docs/drivers/gpio.md index b21a17bc39..9ce4f2aa20 100644 --- a/docs/drivers/gpio.md +++ b/docs/drivers/gpio.md @@ -13,7 +13,7 @@ The following macros provide basic control of GPIOs and are found in `platforms/ |`gpio_set_pin_input_low(pin)` |Set pin as input with builtin pull-down resistor (unavailable on AVR)| |`gpio_set_pin_output(pin)` |Set pin as output (alias of `gpio_set_pin_output_push_pull`) | |`gpio_set_pin_output_push_pull(pin)` |Set pin as output, push/pull mode | -|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR) | +|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR and ATSAM) | |`gpio_write_pin_high(pin)` |Set pin level as high, assuming it is an output | |`gpio_write_pin_low(pin)` |Set pin level as low, assuming it is an output | |`gpio_write_pin(pin, level)` |Set pin level, assuming it is an output | diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index ad74d0e481..10949ed59e 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -16,22 +16,17 @@ You can then call the I2C API by including `i2c_master.h` in your code. ## I2C Addressing {#note-on-i2c-addresses} -I2C addresses listed on datasheets and the internet are usually represented as a 7-bit value. The eighth bit (the least significant bit) controls whether the operation is a read or a write. +All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting +the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed +on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be +shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`. -All of the address parameters expected by the driver API should therefore be pushed to the upper 7 bits of the address byte; the driver will take care of setting the read/write bit as appropriate. - -This is easy to do via the bitwise left shift operator. For example, if your device has an address of `0x18` you might create a define for convenience: +You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`: ```c #define MY_I2C_ADDRESS (0x18 << 1) ``` -Or, you can shift the address ahead of time: - -```c -#define MY_I2C_ADDRESS 0x30 -``` - See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details. ## AVR Configuration {#avr-configuration} @@ -44,12 +39,12 @@ The following defines can be used to configure the I2C master driver: No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU: -|MCU |`SCL`|`SDA`| -|-------------|-----|-----| -|ATmega16/32U4|`D0` |`D1` | -|AT90USB64/128|`D0` |`D1` | -|ATmega32A |`C0` |`C1` | -|ATmega328/P |`C5` |`C4` | +|MCU |`SCL`|`SDA`| +|------------------|-----|-----| +|ATmega16/32U4 |`D0` |`D1` | +|AT90USB64/128 |`D0` |`D1` | +|ATmega32A |`C0` |`C1` | +|ATmega328/P |`C5` |`C4` | ::: tip The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver. @@ -57,27 +52,20 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri ## ChibiOS/ARM Configuration {#arm-configuration} -You'll need to determine which pins can be used for I2C -- as an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. +You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. -To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: +To enable I2C, modify your board's `halconf.h` to enable I2C: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_I2C TRUE // [!code focus] - -#include_next +```c +#define HAL_USE_I2C TRUE ``` -```c [mcuconf.h] -#pragma once -#include_next +Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: -#undef STM32_I2C_USE_I2C2 // [!code focus] -#define STM32_I2C_USE_I2C2 TRUE // [!code focus] +```c +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE ``` -::: |`mcuconf.h` Setting |Description |Default| |----------------------------|----------------------------------------------------------------------------------|-------| @@ -88,19 +76,15 @@ To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your b Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -|`config.h` Override|Description |Default| -|-------------------|-------------------------------------------------------------|-------| -|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.|`I2CD1`| -|`I2C1_SCL_PIN` |The pin to use for SCL |`B6` | -|`I2C1_SCL_PAL_MODE`|The alternate function mode for SCL |`4` | -|`I2C1_SDA_PIN` |The pin to use for SDA |`B7` | -|`I2C1_SDA_PAL_MODE`|The alternate function mode for SDA |`4` | +|`config.h` Overrride |Description |Default| +|------------------------|--------------------------------------------------------------|-------| +|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`| +|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` | +|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` | +|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` | +|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` | -::: tip -Currently only a single I2C peripheral is supported, therefore the `I2C1_*` defines are used for configuration regardless of the selected peripheral. -::: - -The following configuration values are dependent on the ChibiOS I2C LLD, which is dictated by the microcontroller. +The following configuration values depend on the specific MCU in use. ### I2Cv1 {#arm-configuration-i2cv1} @@ -156,7 +140,7 @@ void i2c_init(void) { --- -### `i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} +### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} Send multiple bytes to the selected I2C device. @@ -164,10 +148,10 @@ Send multiple bytes to the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `const uint8_t* data` + - `uint8_t *data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -177,29 +161,6 @@ Send multiple bytes to the selected I2C device. --- -### `i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit-p} - -Send multiple bytes from PROGMEM to the selected I2C device. - -On ARM devices, this function is simply an alias for `i2c_transmit(address, data, length, timeout)`. - -#### Arguments {#api-i2c-transmit-p-arguments} - - - `uint8_t address` - The 7-bit I2C address of the device. - - `const uint8_t* data` - A pointer to the data to transmit. - - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. - - `uint16_t timeout` - The time in milliseconds to wait for a response from the target device. - -#### Return Value {#api-i2c-transmit-p-return} - -`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - ---- - ### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-receive} Receive multiple bytes from the selected I2C device. @@ -208,10 +169,10 @@ Receive multiple bytes from the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `uint8_t* data` - A pointer to a buffer to read into. + - `uint8_t *data` + A pointer to the buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -221,9 +182,9 @@ Receive multiple bytes from the selected I2C device. --- -### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} +### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} -Write to a register with an 8-bit address on the I2C device. +Writes to a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-write-register-arguments} @@ -231,10 +192,10 @@ Write to a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to write to. - - `const uint8_t* data` + - `uint8_t *data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -244,9 +205,9 @@ Write to a register with an 8-bit address on the I2C device. --- -### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} +### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} -Write to a register with a 16-bit address (big endian) on the I2C device. +Writes to a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-write-register16-arguments} @@ -254,10 +215,10 @@ Write to a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to write to. - - `const uint8_t* data` + - `uint8_t *data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -269,7 +230,7 @@ Write to a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register} -Read from a register with an 8-bit address on the I2C device. +Reads from a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-read-register-arguments} @@ -277,10 +238,8 @@ Read from a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to read from. - - `uint8_t data` - A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -292,7 +251,7 @@ Read from a register with an 8-bit address on the I2C device. ### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register16} -Read from a register with a 16-bit address (big endian) on the I2C device. +Reads from a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-read-register16-arguments} @@ -300,10 +259,8 @@ Read from a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to read from. - - `uint8_t* data` - A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -315,19 +272,19 @@ Read from a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address} -Ping the I2C bus for a specific address. +Pings the I2C bus for a specific address. -On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). +On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsucessful response to ping attempt). -This function is weakly defined, meaning it can be overridden if necessary for your particular use case. +This function is weakly defined, meaning it can be overridden if necessary for your particular use case: -#### Arguments {#api-i2c-ping-address-arguments} +#### Arguments - `uint8_t address` - The 7-bit I2C address of the device. + The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value {#api-i2c-ping-address-return} +#### Return Value `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. diff --git a/docs/drivers/is31fl3218.md b/docs/drivers/is31fl3218.md index ccc70c3340..1c98069120 100644 --- a/docs/drivers/is31fl3218.md +++ b/docs/drivers/is31fl3218.md @@ -37,7 +37,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = { diff --git a/docs/drivers/is31fl3236.md b/docs/drivers/is31fl3236.md index 83ce227203..98e05e4abd 100644 --- a/docs/drivers/is31fl3236.md +++ b/docs/drivers/is31fl3236.md @@ -50,7 +50,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3236_led_t PROGMEM g_is31fl3236_leds[IS31FL3236_LED_COUNT] = { diff --git a/docs/drivers/is31fl3729.md b/docs/drivers/is31fl3729.md index 1461874707..32618d82d5 100644 --- a/docs/drivers/is31fl3729.md +++ b/docs/drivers/is31fl3729.md @@ -120,7 +120,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3729_led_t PROGMEM g_is31fl3729_leds[IS31FL3729_LED_COUNT] = { diff --git a/docs/drivers/is31fl3731.md b/docs/drivers/is31fl3731.md index 78b3d7b1ce..0d928a919e 100644 --- a/docs/drivers/is31fl3731.md +++ b/docs/drivers/is31fl3731.md @@ -61,7 +61,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { diff --git a/docs/drivers/is31fl3733.md b/docs/drivers/is31fl3733.md index 13e9148a29..e299f785bd 100644 --- a/docs/drivers/is31fl3733.md +++ b/docs/drivers/is31fl3733.md @@ -145,7 +145,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { diff --git a/docs/drivers/is31fl3736.md b/docs/drivers/is31fl3736.md index e03275531c..b679a232cd 100644 --- a/docs/drivers/is31fl3736.md +++ b/docs/drivers/is31fl3736.md @@ -129,7 +129,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { diff --git a/docs/drivers/is31fl3737.md b/docs/drivers/is31fl3737.md index e4663aa019..d23def237f 100644 --- a/docs/drivers/is31fl3737.md +++ b/docs/drivers/is31fl3737.md @@ -117,7 +117,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = { diff --git a/docs/drivers/is31fl3741.md b/docs/drivers/is31fl3741.md index b26262da7c..dce5c08b21 100644 --- a/docs/drivers/is31fl3741.md +++ b/docs/drivers/is31fl3741.md @@ -117,7 +117,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { diff --git a/docs/drivers/is31fl3742a.md b/docs/drivers/is31fl3742a.md index e4f15162f6..ebe648cba4 100644 --- a/docs/drivers/is31fl3742a.md +++ b/docs/drivers/is31fl3742a.md @@ -117,7 +117,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3742a_led_t PROGMEM g_is31fl3742a_leds[IS31FL3742A_LED_COUNT] = { diff --git a/docs/drivers/is31fl3743a.md b/docs/drivers/is31fl3743a.md index b031edd5fb..9ca55c5eeb 100644 --- a/docs/drivers/is31fl3743a.md +++ b/docs/drivers/is31fl3743a.md @@ -127,7 +127,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { diff --git a/docs/drivers/is31fl3745.md b/docs/drivers/is31fl3745.md index fb53dd3690..f13f029bfe 100644 --- a/docs/drivers/is31fl3745.md +++ b/docs/drivers/is31fl3745.md @@ -127,7 +127,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3745_led_t PROGMEM g_is31fl3745_leds[IS31FL3745_LED_COUNT] = { diff --git a/docs/drivers/is31fl3746a.md b/docs/drivers/is31fl3746a.md index 19439a8a40..bdd5c18357 100644 --- a/docs/drivers/is31fl3746a.md +++ b/docs/drivers/is31fl3746a.md @@ -132,7 +132,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT] = { diff --git a/docs/drivers/serial.md b/docs/drivers/serial.md index 2c78f59043..75d11bc93b 100644 --- a/docs/drivers/serial.md +++ b/docs/drivers/serial.md @@ -12,6 +12,8 @@ The Serial driver powers the [Split Keyboard](../features/split_keyboard) featur Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards. ::: +
+ ## Bitbang This is the Default driver, absence of configuration assumes this driver. It works by [bit banging](https://en.wikipedia.org/wiki/Bit_banging) a GPIO pin using the CPU. It is therefore not as efficient as a dedicated hardware peripheral, which the Half-duplex and Full-duplex drivers use. @@ -33,7 +35,7 @@ On ARM platforms the bitbang driver causes connection issues when using it toget +-------+ +-------+ ``` -One GPIO pin is needed for the bitbang driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SOFT_SERIAL_PIN` (SSP) in the configuration. A TRS or USB cable provides enough conductors for this driver to function. +One GPIO pin is needed for the bitbang driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SOFT_SERIAL_PIN` (SSP) in the configuration. A TRS or USB cable provides enough conductors for this driver to function. ### Setup @@ -51,24 +53,20 @@ SERIAL_DRIVER = bitbang #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 ``` -3. On ARM platforms you must turn on ChibiOS PAL callbacks: +3. On ARM platforms you must turn on ChibiOS `PAL_USE_CALLBACKS` feature: -```c -#pragma once +* In `halconf.h` add the line `#define PAL_USE_CALLBACKS TRUE`. -#define PAL_USE_CALLBACKS TRUE // [!code focus] - -#include_next -``` +
## USART Half-duplex -Targeting ARM boards based on ChibiOS, where communication is offloaded to a USART hardware device that supports Half-duplex operation. The advantages over bitbanging are fast, accurate timings and reduced CPU usage. Therefore it is advised to choose Half-duplex over Bitbang if MCU is capable of utilising Half-duplex, and Full-duplex can't be used instead (e.g. lack of available GPIO pins, or incompatible PCB design). +Targeting ARM boards based on ChibiOS, where communication is offloaded to a USART hardware device that supports Half-duplex operation. The advantages over bitbanging are fast, accurate timings and reduced CPU usage. Therefore it is advised to choose Half-duplex over Bitbang if MCU is capable of utilising Half-duplex, and Full-duplex can't be used instead (e.g. lack of available GPIO pins, or imcompatible PCB design). ### Pin configuration ``` - LEFT RIGHT + LEFT RIGHT +-------+ | | +-------+ | | R R | | | | | SERIAL | | | @@ -80,7 +78,7 @@ Targeting ARM boards based on ChibiOS, where communication is offloaded to a USA +-------+ +-------+ ``` -Only one GPIO pin is needed for the Half-duplex driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SERIAL_USART_TX_PIN` in the configuration. Ensure that the pin chosen for split communication can operate as the TX pin of the contoller's USART peripheral. A TRS or USB cable provides enough conductors for this driver to function. As the split connection is configured to operate in open-drain mode, an **external pull-up resistor is needed to keep the line high**. Resistor values of 1.5kΩ to 8.2kΩ are known to work. +Only one GPIO pin is needed for the Half-duplex driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SERIAL_USART_TX_PIN` in the configuration. Ensure that the pin chosen for split communication can operate as the TX pin of the contoller's USART peripheral. A TRS or USB cable provides enough conductors for this driver to function. As the split connection is configured to operate in open-drain mode, an **external pull-up resistor is needed to keep the line high**. Resistor values of 1.5kΩ to 8.2kΩ are known to work. ::: warning ***Note:*** A pull-up resistor isn't required for RP2040 controllers configured with PIO subsystem. @@ -119,6 +117,8 @@ For STM32 MCUs several GPIO configuration options can be changed as well. See th 4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). +
+ ## USART Full-duplex Targeting ARM boards based on ChibiOS where communication is offloaded to an USART hardware device. The advantages over bitbanging are fast, accurate timings and reduced CPU usage; therefore it is advised to choose this driver over all others where possible. Due to its internal design Full-duplex is slightly more efficient than the Half-duplex driver, but Full-duplex should be primarily chosen if Half-duplex operation is not supported by the controller's USART peripheral. @@ -179,46 +179,38 @@ For STM32 MCUs several GPIO configuration options, including the ability for `TX 4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). +
+ ## Choosing a driver subsystem ### The `SERIAL` driver The `SERIAL` Subsystem is supported for the majority of ChibiOS MCUs and should be used whenever supported. Follow these steps in order to activate it: -1. Enable the SERIAL subsystem in the ChibiOS HAL. +1. In your keyboards `halconf.h` add: - Add the following to your keyboard's `halconf.h`, creating it if necessary: +```c +#define HAL_USE_SERIAL TRUE +``` - ```c - #pragma once +2. In your keyboards `mcuconf.h`: activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. + +Just below `#include_next ` add: - #define HAL_USE_SERIAL TRUE // [!code focus] +```c +#include_next - #include_next - ``` +#undef STM32_SERIAL_USE_USARTn +#define STM32_SERIAL_USE_USARTn TRUE +``` -2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. +Where 'n' matches the peripheral number of your selected USART on the MCU. - Add the following to your keyboard's `mcuconf.h`, creating it if necessary: +3. In you keyboards `config.h`: override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`. - ```c - #pragma once - - #include_next - - #undef STM32_SERIAL_USE_USARTn // [!code focus] - #define STM32_SERIAL_USE_USARTn TRUE // [!code focus] - ``` - - Where *n* matches the peripheral number of your selected USART on the MCU. - -3. Override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`. - - Add the following to your keyboard's `config.h`: - - ```c - #define SERIAL_USART_DRIVER SD3 - ``` +```c + #define SERIAL_USART_DRIVER SD3 + ``` ### The `SIO` driver @@ -226,41 +218,31 @@ The `SIO` Subsystem was added to ChibiOS with the 21.11 release and is only supp Follow these steps in order to activate it: -1. Enable the SIO subsystem in the ChibiOS HAL. +1. In your keyboards `halconf.h` add: - Add the following to your keyboard's `halconf.h`, creating it if necessary: +```c +#define HAL_USE_SIO TRUE +``` - ```c - #pragma once +2. In your keyboards `mcuconf.h:` activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. + +Just below `#include_next ` add: - #define HAL_USE_SIO TRUE // [!code focus] +```c +#include_next - #include_next - ``` +#undef STM32_SIO_USE_USARTn +#define STM32_SIO_USE_USARTn TRUE +``` -2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. +Where 'n' matches the peripheral number of your selected USART on the MCU. - Add the following to your keyboard's `mcuconf.h`, creating it if necessary: - - ```c - #pragma once - - #include_next - - #undef STM32_SIO_USE_USARTn // [!code focus] - #define STM32_SIO_USE_USARTn TRUE // [!code focus] - ``` - - Where *n* matches the peripheral number of your selected USART on the MCU. - -3. Override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`. - - Add the following to your keyboard's `config.h`: - - ```c - #define SERIAL_USART_DRIVER SIOD3 - ``` +3. In the keyboard's `config.h` file: override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`. +```c + #define SERIAL_USART_DRIVER SIOD3 + ``` + ### The `PIO` driver The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using an integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation modes are fully supported with this driver. Half-duplex uses the built-in pull-ups and GPIO manipulation of the RP2040 to drive the line high by default, thus an external pull-up resistor **is not required**. @@ -272,20 +254,20 @@ Optionally, the PIO peripheral utilized for split communication can be changed w The Serial PIO program uses 2 state machines, 13 instructions and the complete interrupt handler of the PIO peripheral it is running on. +
+ ## Advanced Configuration There are several advanced configuration options that can be defined in your keyboards `config.h` file: ### Baudrate -If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions. +If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions. ```c -#define SELECT_SOFT_SERIAL_SPEED n +#define SELECT_SOFT_SERIAL_SPEED {#} ``` -Where *n* is one of: - | Speed | Bitbang | Half-duplex and Full-duplex | | ----- | -------------------------- | --------------------------- | | `0` | 189000 baud (experimental) | 460800 baud | @@ -305,21 +287,23 @@ This is the default time window in milliseconds in which a successful communicat #define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20 ``` +
+ ## Troubleshooting -If you're having issues with serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file: +If you're having issues withe serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file: ```c #define SERIAL_DEBUG ``` - + ::: tip The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](../faq_debug). ::: ## Alternate Functions for selected STM32 MCUs -Pins for USART Peripherals with +Pins for USART Peripherals with ### STM32F303 / Proton-C [Datasheet](https://www.st.com/resource/en/datasheet/stm32f303cc.pdf) diff --git a/docs/drivers/snled27351.md b/docs/drivers/snled27351.md index c0785711d9..1d91182f7c 100644 --- a/docs/drivers/snled27351.md +++ b/docs/drivers/snled27351.md @@ -52,7 +52,7 @@ Depending on the ChibiOS board configuration, you may need to [enable and config ## LED Mapping {#led-mapping} -In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: +In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`: ```c const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { diff --git a/docs/drivers/spi.md b/docs/drivers/spi.md index 56b294ad3a..ddc35de851 100644 --- a/docs/drivers/spi.md +++ b/docs/drivers/spi.md @@ -32,25 +32,20 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc. -To enable SPI, modify your board's `halconf.h` to enable SPI, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: +To enable SPI, modify your board's `halconf.h` to enable SPI: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_SPI TRUE // [!code focus] - -#include_next +```c +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD ``` -```c [mcuconf.h] -#pragma once -#include_next +Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: -#undef STM32_SPI_USE_SPI2 // [!code focus] -#define STM32_SPI_USE_SPI2 TRUE // [!code focus] +```c +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE ``` -::: Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. @@ -86,7 +81,7 @@ Start an SPI transaction. #### Arguments {#api-spi-start-arguments} - `pin_t slavePin` - The GPIO pin connected to the desired device's `SS` line. + The QMK pin to assert as the slave select pin, eg. `B4`. - `bool lsbFirst` Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. - `uint8_t mode` @@ -104,7 +99,7 @@ Start an SPI transaction. #### Return Value {#api-spi-start-return} -`true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. +`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`. --- @@ -129,7 +124,7 @@ Read a byte from the selected SPI device. #### Return Value {#api-spi-read-return} -`SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. +`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device. --- @@ -157,7 +152,7 @@ Receive multiple bytes from the selected SPI device. #### Arguments {#api-spi-receive-arguments} - `uint8_t *data` - A pointer to a buffer to read into. + A pointer to the buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. diff --git a/docs/drivers/uart.md b/docs/drivers/uart.md index b895266cab..23f5b3d6e4 100644 --- a/docs/drivers/uart.md +++ b/docs/drivers/uart.md @@ -35,27 +35,23 @@ You'll need to determine which pins can be used for UART -- as an example, STM32 To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: ```c -#pragma once - -#include_next - -#undef STM32_SERIAL_USE_USART2 // [!code focus] -#define STM32_SERIAL_USE_USART2 TRUE // [!code focus] +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 TRUE ``` Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -|`config.h` Override|Description |Default| -|-------------------|---------------------------------------------------------------|-------| -|`UART_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` | -|`UART_TX_PIN` |The pin to use for TX |`A9` | -|`UART_TX_PAL_MODE` |The alternate function mode for TX |`7` | -|`UART_RX_PIN` |The pin to use for RX |`A10` | -|`UART_RX_PAL_MODE` |The alternate function mode for RX |`7` | -|`UART_CTS_PIN` |The pin to use for CTS |`A11` | -|`UART_CTS_PAL_MODE`|The alternate function mode for CTS |`7` | -|`UART_RTS_PIN` |The pin to use for RTS |`A12` | -|`UART_RTS_PAL_MODE`|The alternate function mode for RTS |`7` | +| `config.h` override | Description | Default Value | +| --------------------------- | --------------------------------------------------------------- | ------------- | +| `#define UART_DRIVER` | USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc. | `SD1` | +| `#define UART_TX_PIN` | The pin to use for TX | `A9` | +| `#define UART_TX_PAL_MODE` | The alternate function mode for TX | `7` | +| `#define UART_RX_PIN` | The pin to use for RX | `A10` | +| `#define UART_RX_PAL_MODE` | The alternate function mode for RX | `7` | +| `#define UART_CTS_PIN` | The pin to use for CTS | `A11` | +| `#define UART_CTS_PAL_MODE` | The alternate function mode for CTS | `7` | +| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` | +| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` | ## API {#api} @@ -111,7 +107,7 @@ Receive multiple bytes. #### Arguments {#api-uart-receive-arguments} - `uint8_t *data` - A pointer to a buffer to read into. + A pointer to the buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. @@ -123,4 +119,4 @@ Return whether the receive buffer contains data. Call this function to determine #### Return Value {#api-uart-available-return} -`true` if there is data available to read. +`true` if the receive buffer length is non-zero. diff --git a/docs/drivers/ws2812.md b/docs/drivers/ws2812.md index 0c26ec6248..61addf1917 100644 --- a/docs/drivers/ws2812.md +++ b/docs/drivers/ws2812.md @@ -144,51 +144,31 @@ The following defines apply only to ARM devices: |`WS2812_T1L`|`(WS2812_TIMING - WS2812_T1H)`|The length of a "1" bit's low phase in nanoseconds (bitbang and PIO drivers only)| |`WS2812_T0L`|`(WS2812_TIMING - WS2812_T0H)`|The length of a "0" bit's low phase in nanoseconds (bitbang and PIO drivers only)| -### Logic Levels {#logic-levels} +### Push-Pull and Open Drain {#push-pull-open-drain} -WS2812 LEDs usually operate at 5V, but some microcontrollers, particularly ARM-based ones, run on 3.3V. This can pose an issue when driving the LED chain as the logic level voltage is lower than the power supply voltage, leading to unreliable data transmission. There are two main workarounds: +By default, the GPIO used for data transmission is configured as a *push-pull* output, meaning the pin is effectively always driven either to VCC or to ground. -#### 1. Open Drain Circuit {#open-drain-circuit} +For situations where the logic level voltage is lower than the power supply voltage, however, this can pose an issue. The solution is to configure the pin for *open drain* mode instead, and use a pullup resistor between the DI pin and VCC. In this mode, the MCU can only pull the GPIO *low*, or leave it floating. The pullup resistor is then responsible for pulling the line high, when the MCU is not driving the GPIO. -By default, `WS2812_DI_PIN` is configured as a *push-pull* output, meaning the pin is effectively always driven either to VCC or to ground; however, it can be configured in *open drain* mode instead. - -In this mode, the MCU will only pull the GPIO *low*, and leaves it floating otherwise. A pullup resistor (typically around 10kΩ) between DI and 5V is then responsible for pulling the line high when the MCU is not driving the GPIO. - -To use the DI pin in open drain configuration, add the following to your `config.h`: +To configure the DI pin for open drain configuration, add the following to your `config.h`: ```c #define WS2812_EXTERNAL_PULLUP ``` -::: warning -Because the GPIO is being pulled to 5V in this situation rather than VCC (3.3V), **it must be a 5V tolerant pin**. Consult your MCU's datasheet first – if there are no eligible pins, you must use a level shifter instead. -::: - -#### 2. Level Shifter {#level-shifter} - -A level shifter IC, such as the SN74LV1T34, can be placed between the GPIO and the first LED's DI pin to convert the 3.3V logic to 5V. This requires no additional configuration in the firmware, nor a 5V tolerant GPIO, but may be more expensive and is generally less handwire-friendly. - ### SPI Driver {#arm-spi-driver} Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_SPI TRUE // [!code focus] - -#include_next +`halconf.h`: +```c +#define HAL_USE_SPI TRUE ``` -```c [mcuconf.h] -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI1 // [!code focus] -#define STM32_SPI_USE_SPI1 TRUE // [!code focus] +`mcuconf.h`: +```c +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE ``` -::: The following `define`s apply only to the `spi` driver: @@ -233,23 +213,15 @@ The following `#define`s apply only to the PIO driver: Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_PWM TRUE // [!code focus] - -#include_next +`halconf.h`: +```c +#define HAL_USE_PWM TRUE ``` -```c [mcuconf.h] -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM2 // [!code focus] -#define STM32_PWM_USE_TIM2 TRUE // [!code focus] +`mcuconf.h`: +```c +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE ``` -::: The following `#define`s apply only to the `pwm` driver: @@ -264,49 +236,18 @@ The following `#define`s apply only to the `pwm` driver: |`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) | ::: tip -Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32). Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. +Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. ::: ## API {#api} -### `void ws2812_init(void)` {#api-ws2812-init} +### `void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds)` {#api-ws2812-setleds} -Initialize the LED driver. This function should be called first. +Send RGB data to the WS2812 LED chain. ---- +#### Arguments {#api-ws2812-setleds-arguments} -### `void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color} - -Set the color of a single LED. This function does not immediately update the LEDs; call `ws2812_flush()` after you are finished. - -#### Arguments {#api-ws2812-set-color-arguments} - - - `int index` - The LED index in the WS2812 chain. - - `uint8_t red` - The red value to set. - - `uint8_t green` - The green value to set. - - `uint8_t blue` - The blue value to set. - ---- - -### `void ws812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all} - -Set the color of all LEDs. - -#### Arguments {#api-ws2812-set-color-all-arguments} - - - `uint8_t red` - The red value to set. - - `uint8_t green` - The green value to set. - - `uint8_t blue` - The blue value to set. - ---- - -### `void ws2812_flush(void)` {#api-ws2812-flush} - -Flush the PWM values to the LED chain. + - `rgb_led_t *ledarray` + A pointer to the LED array. + - `uint16_t number_of_leds` + The length of the LED array. diff --git a/docs/easy_maker.md b/docs/easy_maker.md index 4a6aa1cb61..e94477322b 100644 --- a/docs/easy_maker.md +++ b/docs/easy_maker.md @@ -24,7 +24,7 @@ As its name implies Direct Pin works by connecting one switch per pin. The other Here is a schematic showing how we connect a single button to pin A3 on a ProMicro: -![Schematic diagram showing a ProMicro with a wire coming out of A3, connecting to the left side of a switch. Another wire comes out of the right side of the switch to connect to the Ground Plane.](/JcDhZll.png) +![Schematic diagram showing a ProMicro with a wire coming out of A3, connecting to the left side of a switch. Another wire comes out of the right side of the switch to connect to the Ground Plane.](https://i.imgur.com/JcDhZll.png) Once you have wired your switches you can assign keycodes to each pin and build a firmware by selecting the MCU you are using from the Keyboard dropdown. Use this link to show only Easy Maker Direct Pin: diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 269049afb8..36374974df 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -77,17 +77,6 @@ KL: kc: 172, col: 2, row: 0, pressed: 1, time: 16303, int: 0, count: 0 KL: kc: 172, col: 2, row: 0, pressed: 0, time: 16411, int: 0, count: 0 ``` -### Which keycode is this keypress? - -Keycodes are logged in the example above as numerical codes, which may be difficult to interpret. For more readable logging, add `KEYCODE_STRING_ENABLE = yes` in your `rules.mk` and use `get_keycode_string(kc)`. For example: - -```c -uprintf("kc: %s\n", get_keycode_string(keycode)); -``` - -This logs the keycode as a human-readable string like "`LT(2,KC_D)`" rather than a numerical code like "`0x4207`." See the [Keycode String](unit_testing#keycode-string) section of the Unit Testing page for more information. - - ### How long did it take to scan for a keypress? When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h` @@ -140,7 +129,7 @@ needed for older distros. ## Can't Get Message on Console Check: - *hid_listen* finds your device. See above. -- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug). +- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). - Set `debug_enable=true`. See [Debugging](#debugging) - Try using `print` function instead of debug print. See **common/print.h**. - Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). diff --git a/docs/faq_general.md b/docs/faq_general.md index c80c1b8938..fe26dc3806 100644 --- a/docs/faq_general.md +++ b/docs/faq_general.md @@ -38,7 +38,7 @@ Awesome! Open up a Pull Request for it. We'll review the code, and merge it! That's amazing! We would love to assist you with that! -In fact, we have a [whole page](https://qmk.fm/trademark) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK. +In fact, we have a [whole page](https://qmk.fm/powered/) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK. If you have any questions about this, open an issue or head to [Discord](https://discord.gg/qmk). diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md index dbaf7de991..56ccc6f6cc 100644 --- a/docs/faq_keymap.md +++ b/docs/faq_keymap.md @@ -13,7 +13,7 @@ Keycodes are actually defined in [quantum/keycode.h](https://github.com/qmk/qmk_ There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here: -![Keyboard Layout Image](/5wsh5wM.png) +![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png) ## How Can I Make Custom Names For Complex Keycodes? @@ -34,7 +34,7 @@ On first run, the VIA code in the firmware will copy the keymap from flash memor The simple fix for this is to clear the EEPROM. You can do this in several ways: -* Hold the Bootmagic key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board. +* Hold the Bootmagic Lite key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board. * Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap. * Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards. diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index a6f8bc8372..7f5a10d1c1 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -2,40 +2,29 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent. -|Key |Aliases |Description | -|----------|-------------------------------|-------------------------------------------------------------------------------| -|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | -|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | -|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | -|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | -|`LCS(kc)` | |Hold Left Control and Left Shift and press `kc` | -|`LCA(kc)` | |Hold Left Control and Left Alt and press `kc` | -|`LCG(kc)` | |Hold Left Control and Left GUI and press `kc` | -|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | -|`LSG(kc)` | |Hold Left Shift and Left GUI and press `kc` | -|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | -|`LCSG(kc)`| |Hold Left Control, Left Shift and Left GUI and press `kc` | -|`LCAG(kc)`| |Hold Left Control, Left Alt and Left GUI and press `kc` | -|`LSAG(kc)`| |Hold Left Shift, Left Alt and Left GUI and press `kc` | -|`RCTL(kc)`| |Hold Right Control and press `kc` | -|`RSFT(kc)`| |Hold Right Shift and press `kc` | -|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | -|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` | -|`RCA(kc)` | |Hold Right Control and Right Alt and press `kc` | -|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | -|`RCG(kc)` | |Hold Right Control and Right GUI and press `kc` | -|`RSA(kc)` | |Hold Right Shift and Right Alt and press `kc` | -|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | -|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | -|`RCSG(kc)`| |Hold Right Control, Right Shift and Right GUI and press `kc` | -|`RCAG(kc)`| |Hold Right Control, Right Alt and Right GUI and press `kc` | -|`RSAG(kc)`| |Hold Right Shift, Right Alt and Right GUI and press `kc` | -|`MEH(kc)` | |Hold Left Control, Left Shift and Left Alt and press `kc` | -|`HYPR(kc)`| |Hold Left Control, Left Shift, Left Alt and Left GUI and press `kc`1| +|Key |Aliases |Description | +|----------|----------------------------------|------------------------------------------------------| +|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | +|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | +|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | +|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` | +|`RCTL(kc)`| |Hold Right Control and press `kc` | +|`RSFT(kc)`| |Hold Right Shift and press `kc` | +|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | +|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | +|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | +|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | +|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | +|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | +|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | +|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | +|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | +|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | +|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | +|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | -1. More information on the Hyper key can be found on [this blog post by Brett Terpstra](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/). - -You can also chain them, for example `LCTL(LALT(KC_DEL))`, `C(A(KC_DEL))`, or `LCA(KC_DEL)` all make a key that sends Control+Alt+Delete with a single keypress. +You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress. # Checking Modifier State {#checking-modifier-state} diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 06cc7b3a11..0021c34e51 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -21,7 +21,6 @@ The following converters are available at this time: | `promicro` | `liatris` | | `promicro` | `imera` | | `promicro` | `michi` | -| `promicro` | `svlinky` | | `elite_c` | `stemcell` | | `elite_c` | `rp2040_ce` | | `elite_c` | `elite_pi` | @@ -88,7 +87,6 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co | [Liatris](https://splitkb.com/products/liatris) | `liatris` | | [Imera](https://splitkb.com/products/imera) | `imera` | | [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` | -| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` | Converter summary: @@ -107,7 +105,6 @@ Converter summary: | `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | | `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` | | `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` | -| `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` | ### Proton C {#proton_c} @@ -173,9 +170,6 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040#rp2040_ce) docs. -### Svlinky {#svlinky} - -Feature set is a pro micro equivalent of the [RP2040 Community Edition](#rp2040_ce), except that two of the analog GPIO have been replaced with digital only GPIO. These two were moved to the FPC connector to support the [VIK specification](https://github.com/sadekbaroudi/vik). This means that if you are expecting analog support on all 4 pins as provided on a RP2040 Community Edition pinout, you will not have that. Please see the [Svlinky github page](https://github.com/sadekbaroudi/svlinky) for more details. ## Elite-C diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md index 4e3b0f4543..eb29b4ef26 100644 --- a/docs/feature_debounce_type.md +++ b/docs/feature_debounce_type.md @@ -47,7 +47,7 @@ susceptible to noise, you must choose a debounce method that will also mitigate * Debounce algorithms often have a 'debounce time' parameter, that specifies the maximum settling time of the switch contacts. This time might be measured in various units: * Cycles-based debouncing waits n cycles (scans), decreasing count by one each matrix_scan - * Timestamp-based debouncing stores the millisecond timestamp a change occurred, and does subtraction to figure out time elapsed. + * Timestamp-based debouncing stores the millisecond timestamp a change occurred, and does substraction to figure out time elapsed. * Timestamp-based debouncing is usually superior, especially in the case of noise-resistant devices because settling times of physical switches is specified in units of time, and should not depend on the matrix scan-rate of the keyboard. * Cycles-based debouncing is sometimes considered inferior, because the settling time that it is able to compensate for depends on the diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md index 7d40e81f5a..2912407ac7 100644 --- a/docs/feature_eeprom.md +++ b/docs/feature_eeprom.md @@ -100,7 +100,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled if (user_config.rgb_layer_change) { // only if this is enabled user_config.rgb_layer_change = false; // disable it, and - eeconfig_update_user(user_config.raw); // write the settings to EEPROM + eeconfig_update_user(user_config.raw); // write the setings to EEPROM } } return true; break; @@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } ``` -And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic](features/bootmagic) functionality. For example, if you want to set rgb layer indication by default, and save the default valued. +And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. ```c void eeconfig_init_user(void) { // EEPROM is getting reset! diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 8e6510ca2a..fe9932fadb 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -8,8 +8,7 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended. -* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. Note that this is a temporary switch that only persists until the keyboard loses power. -* `PDF(layer)` - sets a persistent default layer. This switch, which will last through a power loss, might be used to switch from QWERTY to Dvorak layout and only switch again when you want to. +* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions#programming-the-behavior-of-any-keycode).) * `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. * `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15. The modifiers this keycode accept are prefixed with `MOD_`, not `KC_`. These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`. * `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15. @@ -18,14 +17,11 @@ These functions allow you to activate layers in various ways. Note that layers a * `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed). * `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps. -See also the [Layer Lock key](features/layer_lock), which locks the highest -active layer until pressed again. - ### Caveats {#caveats} Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode. -For a similar reason, the `layer` argument of `LM()` is also limited to layers 0-15 and the `mod` argument must fit within 5 bits. As a consequence, although left and right modifiers are supported by `LM()`, it is impossible to mix and match left and right modifiers. Specifying at least one right-hand modifier in a combination such as `MOD_RALT|MOD_LSFT` will convert *all* the listed modifiers to their right-hand counterpart. So, using the aforementioned mod-mask will actually send Right Alt+Right Shift. Make sure to use the `MOD_xxx` constants over alternative ways of specifying modifiers when defining your layer-mod key. +For a similar reason, the `layer` argument of `LM()` is also limited to layers 0-15 and the `mod` argument must fit within 5 bits. As a consequence, although left and right modifiers are supported by `LM()`, it is impossible to mix and match left and right modifiers. Specifying at least one right-hand modifier in a combination such as `MOD_RALT|MOD_LSFT` will convert *all* the listed modifiers to their right-hand counterpart. So, using the aforementionned mod-mask will actually send Right Alt+Right Shift. Make sure to use the `MOD_xxx` constants over alternative ways of specifying modifiers when defining your layer-mod key. | `LM(1,KC_LSFT)` | `LM(1,MOD_MASK_SHIFT)` | `LM(1,MOD_BIT(KC_LSFT))` | `LM(1,MOD_LSFT)` | |:---------------:|:----------------------:|:------------------------:|:----------------:| @@ -61,27 +57,26 @@ Sometimes, you might want to switch between layers in a macro or as part of a ta There are a number of functions (and variables) related to how you can use or manipulate the layers. -|Function |Description | -|---------------------------------------------|--------------------------------------------------------------------------------------------------------| -|`layer_state_set(layer_mask)` |Directly sets the layer state (avoid unless you know what you are doing). | -|`layer_clear()` |Clears all layers (turns them all off). | -|`layer_move(layer)` |Turns specified layer on, and all other layers off. | -|`layer_on(layer)` |Turns specified layer on, leaves all other layers in existing state. | -|`layer_off(layer)` |Turns specified layer off, leaves all other layers in existing state. | -|`layer_invert(layer)` |Inverts/toggles the state of the specified layer | -|`layer_or(layer_mask)` |Turns on layers based on matching bits between specified layer and existing layer state. | -|`layer_and(layer_mask)` |Turns on layers based on matching enabled bits between specified layer and existing layer state. | -|`layer_xor(layer_mask)` |Turns on layers based on non-matching bits between specified layer and existing layer state. | -|`layer_debug(layer_mask)` |Prints out the current bit mask and highest active layer to debugger console. | -|`default_layer_set(layer_mask)` |Directly sets the default layer state (avoid unless you know what you are doing). | -|`default_layer_or(layer_mask)` |Turns on layers based on matching bits between specified layer and existing default layer state. | -|`default_layer_and(layer_mask)` |Turns on layers based on matching enabled bits between specified layer and existing default layer state.| -|`default_layer_xor(layer_mask)` |Turns on layers based on non-matching bits between specified layer and existing default layer state. | -|`default_layer_debug(layer_mask)` |Prints out the current bit mask and highest active default layer to debugger console. | -|[`set_single_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) |Sets the default layer, but does _not_ write it to persistent memory (EEPROM). | -|[`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer)|Sets the default layer and writes it to persistent memory (EEPROM). | -|[`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) |Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off).| -|[`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) |Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. | +|Function |Description | +|----------------------------------------------|---------------------------------------------------------------------------------------------------------| +| `layer_state_set(layer_mask)` | Directly sets the layer state (avoid unless you know what you are doing). | +| `layer_clear()` | Clears all layers (turns them all off). | +| `layer_move(layer)` | Turns specified layer on, and all other layers off. | +| `layer_on(layer)` | Turns specified layer on, leaves all other layers in existing state. | +| `layer_off(layer)` | Turns specified layer off, leaves all other layers in existing state. | +| `layer_invert(layer)` | Inverts/toggles the state of the specified layer | +| `layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing layer state. | +| `layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing layer state. | +| `layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing layer state. | +| `layer_debug(layer_mask)` | Prints out the current bit mask and highest active layer to debugger console. | +| `default_layer_set(layer_mask)` | Directly sets the default layer state (avoid unless you know what you are doing). | +| `default_layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing default layer state. | +| `default_layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing default layer state. | +| `default_layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing default layer state. | +| `default_layer_debug(layer_mask)` | Prints out the current bit mask and highest active default layer to debugger console. | +| [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer and writes it to persistent memory (EEPROM). | +| [`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) | Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off). | +| [`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) | Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. | In addition to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passes the layer state to the function, where it can be read or modified. @@ -154,7 +149,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_CYCLE_LAYERS: // Our logic will happen on presses, nothing is done on releases - if (!record->event.pressed) { + if (!record->event.pressed) { // We've already handled the keycode (doing nothing), let QMK know so no further code is run unnecessarily return false; } diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 404eb4b38d..055bb3ff8f 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -42,7 +42,38 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator ### Selecting Your Host Keyboard Layout -If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros — you may need to type different keys to get the same letters! To address this you can use [language-specific keycodes](reference_keymap_extras). +If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros - you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your `keymap.json`, like so: + +```json +{ + "keyboard": "handwired/my_macropad", + "keymap": "my_keymap", + "host_language": "dvorak", + "macros": [ + ["Hello, World!"] + ], + "layout": "LAYOUT_all", + "layers": [ + ["QK_MACRO_0"] + ] +} +``` + +The current list of available languages is: + +| belgian | bepo | br_abnt2 | canadian_multilingual | +|:-------:|:----:|:--------:|:---------------------:| +| **colemak** | **croatian** | **czech** | **danish** | +| **dvorak_fr** | **dvorak** | **dvp** | **estonian** | +| **finnish** | **fr_ch** | **french_afnor** | **french** | +| **french_osx** | **german_ch** | **german** | **german_osx** | +| **hungarian** | **icelandic** | **italian** | **italian_osx_ansi** | +| **italian_osx_iso** | **jis** | **latvian** | **lithuanian_azerty** | +| **lithuanian_qwerty** | **norman** | **norwegian** | **portuguese** | +| **portuguese_osx_iso** | **romanian** | **serbian_latin** | **slovak** | +| **slovenian** | **spanish_dvorak** | **spanish_latin_america** | **spanish** | +| **swedish** | **turkish_f** | **turkish_q** | **uk** | +| **us_international** | **workman** | **workman_zxcvm** | ### Macro Basics @@ -117,9 +148,7 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality). Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button. -::: tip -It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). -::: +?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). You might want to add more than one macro. You can do that by adding another keycode and adding another case to the switch statement, like so: diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 2c8c08b38e..1e7c3b37cd 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -24,10 +24,10 @@ For example, make planck:jack -Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`. +Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`. ::: warning -This `name` can be [overridden](#override-default-userspace), if needed. +This `name` can be [overridden](#override-default-userspace), if needed. ::: ## `Rules.mk` @@ -38,9 +38,9 @@ It's highly recommended that you use `.c` as the default source file to be SRC += .c -Additional files may be added in the same way - it's recommended you have one named ``.c/.h to start off with, though. +Additional files may be added in the same way - it's recommended you have one named ``.c/.h to start off with, though. -The `/users//rules.mk` file will be included in the build _after_ the `rules.mk` from your keymap. This allows you to have features in your userspace `rules.mk` that depend on individual QMK features that may or may not be available on a specific keyboard. +The `/users//rules.mk` file will be included in the build _after_ the `rules.mk` from your keymap. This allows you to have features in your userspace `rules.mk` that depend on individual QMK features that may or may not be available on a specific keyboard. For example, if you have RGB control features shared between all your keyboards that support RGB lighting, you can add support for that if the RGBLIGHT feature is enabled: ```make @@ -74,15 +74,14 @@ Additionally, `config.h` here will be processed like the same file in your keyma The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. -::: warning -You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) -::: +!>You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) + ## Readme (`readme.md`) Please include authorship (your name, GitHub username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses). -You can use this as a template: +You can use this as a template: ``` Copyright @ @@ -100,9 +99,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ``` -You'd want to replace the year, name, email and GitHub username with your info. +You'd want to replace the year, name, email and GitHub username with your info. -Additionally, this is a good place to document your code, if you wish to share it with others. +Additionally, this is a good place to document your code, if you wish to share it with others. ## Build All Keyboards That Support a Specific Keymap @@ -118,21 +117,20 @@ This is ideal for when you want ensure everything compiles successfully when pre ## Examples -For a brief example, checkout [`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/_example). - -For more complicated examples, checkout the [`awesome-qmk` collection](https://github.com/qmk/awesome-qmk). +For a brief example, checkout [`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/_example). +For a more complicated example, checkout [`/users/drashna/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna)'s userspace. ### Customized Functions -QMK has a bunch of [functions](custom_quantum_functions) that have [`_quantum`, `_kb`, and `_user` versions](custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap) that you can use. You will pretty much always want to use the user version of these functions. But the problem is that if you use them in your userspace, then you don't have a version that you can use in your keymap. +QMK has a bunch of [functions](custom_quantum_functions) that have [`_quantum`, `_kb`, and `_user` versions](custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap) that you can use. You will pretty much always want to use the user version of these functions. But the problem is that if you use them in your userspace, then you don't have a version that you can use in your keymap. -However, you can actually add support for keymap version, so that you can use it in both your userspace and your keymap! +However, you can actually add support for keymap version, so that you can use it in both your userspace and your keymap! -For instance, let's look at the `layer_state_set_user()` function. You can enable the [Tri Layer State](ref_functions#olkb-tri-layers) functionality on all of your boards, while also retaining the Tri Layer functionality in your `keymap.c` files. +For instance, let's look at the `layer_state_set_user()` function. You can enable the [Tri Layer State](ref_functions#olkb-tri-layers) functionality on all of your boards, while also retaining the Tri Layer functionality in your `keymap.c` files. -In your `` file, you'd want to add this: +In your `` file, you'd want to add this: ```c __attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) { @@ -144,7 +142,7 @@ layer_state_t layer_state_set_user (layer_state_t state) { return layer_state_set_keymap (state); } ``` -The `__attribute__ ((weak))` part tells the compiler that this is a placeholder function that can then be replaced by a version in your `keymap.c`. That way, you don't need to add it to your `keymap.c`, but if you do, you won't get any conflicts because the function is the same name. +The `__attribute__ ((weak))` part tells the compiler that this is a placeholder function that can then be replaced by a version in your `keymap.c`. That way, you don't need to add it to your `keymap.c`, but if you do, you won't get any conflicts because the function is the same name. The `_keymap` part here doesn't matter, it just needs to be something other than `_quantum`, `_kb`, or `_user`, since those are already in use. So you could use `layer_state_set_mine`, `layer_state_set_fn`, or anything else. @@ -152,7 +150,7 @@ You can see a list of this and other common functions in [`template.c`](https:// ### Custom Features -Since the Userspace feature can support a staggering number of boards, you may have boards that you want to enable certain functionality for, but not for others. And you can actually create "features" that you can enable or disable in your own userspace. +Since the Userspace feature can support a staggering number of boards, you may have boards that you want to enable certain functionality for, but not for others. And you can actually create "features" that you can enable or disable in your own userspace. For instance, if you wanted to have a bunch of macros available, but only on certain boards (to save space), you could "hide" them being a `#ifdef MACROS_ENABLED`, and then enable it per board. To do this, add this to your rules.mk ```make @@ -160,11 +158,11 @@ ifeq ($(strip $(MACROS_ENABLED)), yes) OPT_DEFS += -DMACROS_ENABLED endif ``` -The `OPT_DEFS` setting causes `MACROS_ENABLED` to be defined for your keyboards (note the `-D` in front of the name), and you could use `#ifdef MACROS_ENABLED` to check the status in your c/h files, and handle that code based on that. +The `OPT_DEFS` setting causes `MACROS_ENABLED` to be defined for your keyboards (note the `-D` in front of the name), and you could use `#ifdef MACROS_ENABLED` to check the status in your c/h files, and handle that code based on that. Then you add `MACROS_ENABLED = yes` to the `rules.mk` for you keymap to enable this feature and the code in your userspace. -And in your `process_record_user` function, you'd do something like this: +And in your `process_record_user` function, you'd do something like this: ```c bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -188,9 +186,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ### Consolidated Macros -If you wanted to consolidate macros and other functions into your userspace for all of your keymaps, you can do that. This builds upon the [Customized Functions](#customized-functions) example above. This lets you maintain a bunch of macros that are shared between the different keyboards, and allow for keyboard specific macros, too. +If you wanted to consolidate macros and other functions into your userspace for all of your keymaps, you can do that. This builds upon the [Customized Functions](#customized-functions) example above. This lets you maintain a bunch of macros that are shared between the different keyboards, and allow for keyboard specific macros, too. -First, you'd want to go through all of your `keymap.c` files and replace `process_record_user` with `process_record_keymap` instead. This way, you can still use keyboard specific codes on those boards, and use your custom "global" keycodes as well. You'll also want to replace `SAFE_RANGE` with `NEW_SAFE_RANGE` so that you won't have any overlapping keycodes +First, you'd want to go through all of your `keymap.c` files and replace `process_record_user` with `process_record_keymap` instead. This way, you can still use keyboard specific codes on those boards, and use your custom "global" keycodes as well. You'll also want to replace `SAFE_RANGE` with `NEW_SAFE_RANGE` so that you wont have any overlapping keycodes Then add `#include ".h"` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap. @@ -246,7 +244,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } ``` -For boards that may not have a shift button (such as on a macro pad), we need a way to always include the bootloader option. To do that, add the following to the `rules.mk` in your userspace folder: +For boards that may not have a shift button (such as on a macro pad), we need a way to always include the bootloader option. To do that, add the following to the `rules.mk` in your userspace folder: ```make ifeq ($(strip $(FLASH_BOOTLOADER)), yes) @@ -256,7 +254,7 @@ endif This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make :`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time. -Also, holding Shift will add the flash target (`:flash`) to the command. Holding Control will add some commands that will speed up compiling time by processing multiple files at once. +Also, holding Shift will add the flash target (`:flash`) to the command. Holding Control will add some commands that will speed up compiling time by processing multiple files at once. And for the boards that lack a shift key, or that you want to always attempt the flashing part, you can add `FLASH_BOOTLOADER = yes` to the `rules.mk` of that keymap. diff --git a/docs/features/audio.md b/docs/features/audio.md index a5f770d811..2f5e5b2d98 100644 --- a/docs/features/audio.md +++ b/docs/features/audio.md @@ -73,13 +73,16 @@ Should you rather choose to generate and use your own sample-table with the DAC ### PWM (software) -If the DAC pins are unavailable (or the MCU has no usable DAC at all, like STM32F1xx); PWM can be an alternative. +if the DAC pins are unavailable (or the MCU has no usable DAC at all, like STM32F1xx); PWM can be an alternative. Note that there is currently only one speaker/pin supported. -To use this feature, set `AUDIO_DRIVER = pwm_software` in `rules.mk` and set `#define AUDIO_PIN C13` (can be any pin) in `config.h` to have the selected pin output a pwm signal, generated from a timer callback which toggles the pin in software. +set in `rules.mk`: + +`AUDIO_DRIVER = pwm_software` and in `config.h`: +`#define AUDIO_PIN C13` (can be any pin) to have the selected pin output a pwm signal, generated from a timer callback which toggles the pin in software. #### Wiring -The usual piezo wiring: red goes to the selected AUDIO_PIN, black goes to ground. +the usual piezo wiring: red goes to the selected AUDIO_PIN, black goes to ground. OR if you can chose to drive one piezo with two pins, for example `#define AUDIO_PIN B1`, `#define AUDIO_PIN_ALT B2` in `config.h`, with `#define AUDIO_PIN_ALT_AS_NEGATIVE` - then the red lead could go to B1, the black to B2. @@ -156,7 +159,7 @@ PLAY_LOOP(my_song); It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif` to avoid causing problems when audio isn't built into the keyboard. -The available keycodes for audio are: +The available keycodes for audio are: |Key |Aliases |Description | |-------------------------|---------|-------------------------------------------| @@ -175,8 +178,8 @@ These keycodes turn all of the audio functionality on and off. Turning it off m |`AUDIO_PIN` | *Not defined* |Configures the pin that the speaker is connected to. | |`AUDIO_PIN_ALT` | *Not defined* |Configures the pin for a second speaker or second pin connected to one speaker. | |`AUDIO_PIN_ALT_AS_NEGATIVE` | *Not defined* |Enables support for one speaker connected to two pins. | -|`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accommodate for USB startup issues. | -|`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simultaneously. | +|`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accomidate for USB startup issues. | +|`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simutaneously. | |`AUDIO_POWER_CONTROL_PIN` | *Not defined* |Enables power control code to enable or cut off power to speaker (such as with PAM8302 amp). | |`AUDIO_POWER_CONTROL_PIN_ON_STATE`| `1` |The state of the audio power control pin when audio is "on" - `1` for high, `0` for low. | |`STARTUP_SONG` | `STARTUP_SOUND` |Plays when the keyboard starts up (audio.c) | @@ -298,9 +301,9 @@ Things that return false are not part of the mask, and are always processed. ### Music Map -By default, the Music Mode uses the columns and row to determine the scale for the keys. For a board that uses a rectangular matrix that matches the keyboard layout, this is just fine. However, for boards that use a more complicated matrix (such as the Planck Rev6, or many split keyboards) this would result in a very skewed experience. +By default, the Music Mode uses the columns and row to determine the scale for the keys. For a board that uses a rectangular matrix that matches the keyboard layout, this is just fine. However, for boards that use a more complicated matrix (such as the Planck Rev6, or many split keyboards) this would result in a very skewed experience. -However, the Music Map option allows you to remap the scaling for the music mode, so it fits the layout, and is more natural. +However, the Music Map option allows you to remap the scaling for the music mode, so it fits the layout, and is more natural. To enable this feature, add `#define MUSIC_MAP` to your `config.h` file, and then you will want to add a `uint8_t music_map` to your keyboard's `c` file, or your `keymap.c`. @@ -313,13 +316,13 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_4x12( ); ``` -You will want to use whichever `LAYOUT` macro that your keyboard uses here. This maps it to the correct key location. Start in the bottom left of the keyboard layout, and move to the right, and then upwards. Fill in all the entries until you have a complete matrix. +You will want to use whichever `LAYOUT` macro that your keyboard uses here. This maps it to the correct key location. Start in the bottom left of the keyboard layout, and move to the right, and then upwards. Fill in all the entries until you have a complete matrix. -You can look at the [Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e9ace1487887c1f8b4a7e8e6d87c322988bec9ce/keyboards/planck/planck.c#L24-L29) as an example of how to implement this. +You can look at the [Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e9ace1487887c1f8b4a7e8e6d87c322988bec9ce/keyboards/planck/planck.c#L24-L29) as an example of how to implement this. ## Audio Click -This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly. +This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly. Keycodes available: @@ -338,7 +341,7 @@ The feature is disabled by default, to save space. To enable it, add this to yo #define AUDIO_CLICKY ``` -You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values: +You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values: | Option | Default Value | Description | |--------|---------------|-------------| @@ -346,7 +349,7 @@ You can configure the default, min and max frequencies, the stepping and built i | `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). | | `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the highest frequency. Too high may result in coworkers attacking you. | | `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. This is a multiplicative factor. The default steps the frequency up/down by a musical minor third. | -| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. | +| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. | | `AUDIO_CLICKY_DELAY_DURATION` | 1 | An integer note duration where 1 is 1/16th of the tempo, or a sixty-fourth note (see `quantum/audio/musical_notes.h` for implementation details). The main clicky effect will be delayed by this duration. Adjusting this to values around 6-12 will help compensate for loud switches. | ## MIDI Functionality diff --git a/docs/features/autocorrect.md b/docs/features/autocorrect.md index 57024f2cd2..df3f2e0fd8 100644 --- a/docs/features/autocorrect.md +++ b/docs/features/autocorrect.md @@ -8,7 +8,7 @@ The feature maintains a small buffer of recent key presses. On each key press, i The tricky part is how to efficiently check the buffer for typos. We don’t want to spend too much memory or time on storing or searching the typos. A good solution is to represent the typos with a trie data structure. A trie is a tree data structure where each node is a letter, and words are formed by following a path to one of the leaves. -![An example trie](/HL5DP8H.png) +![An example trie](https://i.imgur.com/HL5DP8H.png) Since we search whether the buffer ends in a typo, we store the trie writing in reverse. The trie is queried starting from the last letter, then second to last letter, and so on, until either a letter doesn’t match or we reach a leaf, meaning a typo was found. @@ -279,7 +279,7 @@ All autocorrection data is stored in a single flat array autocorrect_data. Each * 01 ⇒ branching node: a trie node with multiple children. * 10 ⇒ leaf node: a leaf, corresponding to a typo and storing its correction. -![An example trie](/HL5DP8H.png) +![An example trie](https://i.imgur.com/HL5DP8H.png) **Branching node**. Each branch is encoded with one byte for the keycode (KC_A–KC_Z) followed by a link to the child node. Links between nodes are 16-bit byte offsets relative to the beginning of the array, serialized in little endian order. diff --git a/docs/features/backlight.md b/docs/features/backlight.md index 87d5a36c00..94726756fd 100644 --- a/docs/features/backlight.md +++ b/docs/features/backlight.md @@ -161,23 +161,15 @@ Note that the choice of timer may conflict with the [Audio](audio) feature. Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_PWM TRUE // [!code focus] - -#include_next +`halconf.h`: +```c +#define HAL_USE_PWM TRUE ``` -```c [mcuconf.h] -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM4 // [!code focus] -#define STM32_PWM_USE_TIM4 TRUE // [!code focus] +`mcuconf.h`: +```c +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE ``` -::: The following `#define`s apply only to the `pwm` driver: @@ -195,23 +187,15 @@ Refer to the ST datasheet for your particular MCU to determine these values. For Depending on the ChibiOS board configuration, you may need to enable general-purpose timers at the keyboard level. For STM32, this would look like: -::: code-group -```c [halconf.h] -#pragma once - -#define HAL_USE_GPT TRUE // [!code focus] - -#include_next +`halconf.h`: +```c +#define HAL_USE_GPT TRUE ``` -```c [mcuconf.h] -#pragma once - -#include_next - -#undef STM32_GPT_USE_TIM15 // [!code focus] -#define STM32_GPT_USE_TIM15 TRUE // [!code focus] +`mcuconf.h`: +```c +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 TRUE ``` -::: The following `#define`s apply only to the `timer` driver: @@ -227,7 +211,7 @@ In this typical example, the backlight LEDs are all connected in parallel toward A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU. The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information. -![Backlight example circuit](/BmAvoUC.png) +![Backlight example circuit](https://i.imgur.com/BmAvoUC.png) ## API {#api} diff --git a/docs/features/battery.md b/docs/features/battery.md deleted file mode 100644 index f5c725efb9..0000000000 --- a/docs/features/battery.md +++ /dev/null @@ -1,55 +0,0 @@ -# Battery - -This feature provides the high level abstraction for sampling battery level. - -## Usage - -To use this driver, add the following to your `rules.mk`: - -```make -BATTERY_ENABLE = yes -``` - -## Basic Configuration {#basic-configuration} - -Add the following to your `config.h`: - -|Define |Default |Description | -|--------------------------|--------|--------------------------------------------------| -|`BATTERY_SAMPLE_INTERVAL` |`30000` |The time between battery samples in milliseconds. | - -## Driver Configuration {#driver-configuration} - -See the [Battery Driver](../drivers/battery) documentation for more information. - -## Functions - -### `uint8_t battery_get_percent(void)` {#api-battery-get-percent} - -Sample battery level. - -#### Return Value {#api-battery-get-percent-return} - -The battery percentage, in the range 0-100. - -## Callbacks - -### `void battery_percent_changed_user(uint8_t level)` {#api-battery-percent-changed-user} - -User hook called when battery level changed. - -### Arguments {#api-battery-percent-changed-user-arguments} - - - `uint8_t level` - The battery percentage, in the range 0-100. - ---- - -### `void battery_percent_changed_kb(uint8_t level)` {#api-battery-percent-changed-kb} - -Keyboard hook called when battery level changed. - -### Arguments {#api-battery-percent-changed-kb-arguments} - - - `uint8_t level` - The battery percentage, in the range 0-100. diff --git a/docs/features/bluetooth.md b/docs/features/bluetooth.md new file mode 100644 index 0000000000..1dbf15f4e1 --- /dev/null +++ b/docs/features/bluetooth.md @@ -0,0 +1,46 @@ +# Bluetooth + +## Bluetooth Known Supported Hardware + +Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input. + +|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| +|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------| +|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 | +|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 | + +Not Supported Yet but possible: +* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514) +* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability. +* Sparkfun Bluetooth Mate +* HM-13 based boards + +### Adafruit BLE SPI Friend +Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines: +* `#define BLUEFRUIT_LE_RST_PIN D4` +* `#define BLUEFRUIT_LE_CS_PIN B4` +* `#define BLUEFRUIT_LE_IRQ_PIN E6` + +A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip. + + +## Bluetooth Rules.mk Options + +The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`. + +Add the following to your `rules.mk`: + +```make +BLUETOOTH_ENABLE = yes +BLUETOOTH_DRIVER = bluefruit_le # or rn42 +``` + +## Bluetooth Keycodes + +This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both. + +|Key |Aliases |Description | +|---------------------|---------|----------------------------------------------| +|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth| +|`QK_OUTPUT_USB` |`OU_USB` |USB only | +|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only | diff --git a/docs/features/bootmagic.md b/docs/features/bootmagic.md index 15c2bec293..49fae5ba45 100644 --- a/docs/features/bootmagic.md +++ b/docs/features/bootmagic.md @@ -46,7 +46,7 @@ When [handedness](split_keyboard#setting-handedness) is predetermined via option } ``` -If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 column 4. To use that key as the right half's Bootmagic trigger, add these entries to your `config.h` file: +If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic trigger, add these entries to your `config.h` file: ```c #define BOOTMAGIC_ROW_RIGHT 4 diff --git a/docs/features/combo.md b/docs/features/combo.md index afe202ad54..bdb8c4b15f 100644 --- a/docs/features/combo.md +++ b/docs/features/combo.md @@ -152,15 +152,14 @@ In order to use these features, the following configuration options and function | Config Flag | Function | Description | |-----------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------| -| `COMBO_TERM_PER_COMBO` | `uint16_t get_combo_term(uint16_t combo_index, combo_t *combo)` | Optional per-combo timeout window. (default: `COMBO_TERM`) | -| `COMBO_MUST_HOLD_PER_COMBO` | `bool get_combo_must_hold(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) | -| `COMBO_MUST_TAP_PER_COMBO` | `bool get_combo_must_tap(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) | -| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | `bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) | +| `COMBO_TERM_PER_COMBO` | uint16_t get_combo_term(uint16_t index, combo_t \*combo) | Optional per-combo timeout window. (default: `COMBO_TERM`) | +| `COMBO_MUST_HOLD_PER_COMBO` | bool get_combo_must_hold(uint16_t index, combo_t \*combo) | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) | +| `COMBO_MUST_TAP_PER_COMBO` | bool get_combo_must_tap(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) | +| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | bool get_combo_must_press_in_order(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) | Examples: ```c -#ifdef COMBO_TERM_PER_COMBO -uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) { +uint16_t get_combo_term(uint16_t index, combo_t *combo) { // decide by combo->keycode switch (combo->keycode) { case KC_X: @@ -168,7 +167,7 @@ uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) { } // or with combo index, i.e. its name from enum. - switch (combo_index) { + switch (index) { case COMBO_NAME_HERE: return 9001; } @@ -183,10 +182,8 @@ uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) { return COMBO_TERM; } -#endif -#ifdef COMBO_MUST_HOLD_PER_COMBO -bool get_combo_must_hold(uint16_t combo_index, combo_t *combo) { +bool get_combo_must_hold(uint16_t index, combo_t *combo) { // Same as above, decide by keycode, the combo index, or by the keys in the chord. if (KEYCODE_IS_MOD(combo->keycode) || @@ -195,17 +192,15 @@ bool get_combo_must_hold(uint16_t combo_index, combo_t *combo) { return true; } - switch (combo_index) { + switch (index) { case COMBO_NAME_HERE: return true; } return false; } -#endif -#ifdef COMBO_MUST_TAP_PER_COMBO -bool get_combo_must_tap(uint16_t combo_index, combo_t *combo) { +bool get_combo_must_tap(uint16_t index, combo_t *combo) { // If you want all combos to be tap-only, just uncomment the next line // return true @@ -224,9 +219,7 @@ bool get_combo_must_tap(uint16_t combo_index, combo_t *combo) { return false; } -#endif -#ifdef COMBO_MUST_PRESS_IN_ORDER_PER_COMBO bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) { switch (combo_index) { /* List combos here that you want to only activate if their keys @@ -238,7 +231,6 @@ bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) { return false; } } -#endif ``` ### Generic hook to (dis)allow a combo activation @@ -315,50 +307,6 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key return false; } ``` - -### Customizable key repress -By defining `COMBO_PROCESS_KEY_REPRESS` and implementing `bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode)` you can run your custom code when you repress just released key of a combo. By combining it with custom `process_combo_event` we can for example make special handling for Alt+Tab to switch windows, which, on combo F+G activation, registers Alt and presses Tab - then we can switch windows forward by releasing G and pressing it again, or backwards with F key. Here's the full example: - -```c -enum combos { - CMB_ALTTAB -}; - -const uint16_t PROGMEM combo_alttab[] = {KC_F, KC_G, COMBO_END}; - -combo_t key_combos[COMBO_LENGTH] = { - [CMB_ALTTAB] = COMBO(combo_alttab, KC_NO), // KC_NO to leave processing for process_combo_event -}; - -void process_combo_event(uint16_t combo_index, bool pressed) { - switch (combo_index) { - case CMB_ALTTAB: - if (pressed) { - register_mods(MOD_LALT); - tap_code(KC_TAB); - } else { - unregister_mods(MOD_LALT); - } - break; - } -} - -bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) { - switch (combo_index) { - case CMB_ALTTAB: - switch (keycode) { - case KC_F: - tap_code16(S(KC_TAB)); - return true; - case KC_G: - tap_code(KC_TAB); - return true; - } - } - return false; -} -``` - ### Layer independent combos If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer. diff --git a/docs/features/command.md b/docs/features/command.md index a6f96dcd83..7ad45103c7 100644 --- a/docs/features/command.md +++ b/docs/features/command.md @@ -1,6 +1,6 @@ # Command -Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command. +Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command. On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`: diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md deleted file mode 100644 index eff07c939a..0000000000 --- a/docs/features/community_modules.md +++ /dev/null @@ -1,164 +0,0 @@ -# Community Modules - -Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds. - -These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may implement. - -## Adding a Community Module to your build - -Community Modules have first-class support for [External Userspace](/newbs_external_userspace), and QMK strongly recommends using External Userspace for hosting keymaps and Community Modules together. - -Modules must live in either of two locations: - -* `/modules/` -* `/modules/` - -A basic module is provided within QMK itself -- `qmk/hello_world` -- which prints out a notification over [HID console](/faq_debug) after 10 seconds, and adds a new keycode, `COMMUNITY_MODULE_HELLO` (aliased to `CM_HELO`) which types `Hello there.` to the active application when the corresponding key is pressed. - -To add this module to your build, in your keymap's directory create a `keymap.json` with the following content: - -```json -{ - "modules": [ - "qmk/hello_world" - ] -} -``` - -If you already have a `keymap.json`, you'll need to manually merge the `modules` section into your keymap. - -::: warning -Community Modules are not supported by QMK Configurator. If you wish to use Community Modules, you must build your own firmware. -::: - -## Adding a Community Module to your External Userspace - -Module authors are encouraged to provide a git repository on GitHub which may be imported into a user's external userspace. If a user wishes to import a module repository, they can do the following: - -```sh -cd /path/to/your/external/userspace -mkdir -p modules -# Replace the following {user} and {repo} with the author's community module repository -git submodule add https://github.com/{user}/{repo}.git modules/{user} -git submodule update --init --recursive -``` - -This will ensure the copy of the module is made in your userspace. - -Add a new entry into your `keymap.json` with the desired modules, replacing `{user}` and `{module_name}` as appropriate: - -```json -{ - "modules": [ - "qmk/hello_world", - "{user}/{module_name}" - ] -} -``` - -::: info -The module listed in `keymap.json` is the relative path within the `modules/` directory. So long as the module is present _somewhere_ under `modules/`, then the `keymap.json` can refer to that path. -::: - -## Writing a QMK Community Module - -As stated earlier, Community Module authors are strongly encouraged to provide their modules through git, allowing users to leverage submodules to import functionality. - -### `qmk_module.json` - -A Community Module is denoted by a `qmk_module.json` file such as the following: - -```json -{ - "module_name": "Hello World", - "maintainer": "QMK Maintainers", - "license": "GPL-2.0-or-later", - "features": { - "deferred_exec": true - }, - "keycodes": [ - { - "key": "COMMUNITY_MODULE_HELLO", - "aliases": ["CM_HELO"] - } - ] -} -``` - -At minimum, the module must provide the `module_name` and `maintainer` fields. - -The `license` field is encouraged to indicate the terms for using and sharing the module. It is recommended to use a [SPDX license identifier](https://spdx.org/licenses/) like "`Apache-2.0`" or "`GPL-2.0-or-later`" if possible. - -The `url` field may specify a URL to more information about the module. - -The use of `features` matches the definition normally provided within `keyboard.json` and `info.json`, allowing a module to signal to the build system that it has its own dependencies. In the example above, it enables the _deferred executor_ feature whenever the above module is used in a build. - -The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap. - -### `rules.mk` / `post_rules.mk` - -These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap. - -### `.c` - -This file will be automatically added to the build if the filename matches the directory name. For example, the `qmk/hello_world` module contains a `hello_world.c` file, which is automatically added to the build. - -::: info -Other files intended to be included must use the normal method of `SRC += my_file.c` inside `rules.mk`. -::: - -::: tip -This file should use `ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1,0,0);` to enforce a minimum version of the API that it requires, ensuring the Community Module is built with a compatible version of QMK. The list of APIs and corresponding version is given at the bottom of this document. Note the use of commas instead of periods. -::: - -### `introspection.c` / `introspection.h` - -These two files hook into the keymap introspection logic -- the header is prepended before the user keymap, and the C source file is appended after the user keymap. - -The header may provide definitions which are useful to the user's `keymap.c`. - -The source file may provide functions which allow access to information specified in the user's `keymap.c`. - -::: warning -Introspection is a relatively advanced topic within QMK, and existing patterns should be followed. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk). -::: - -### `led_matrix_module.inc` - -This file defines LED matrix effects in the same form as used with `led_matrix_kb.inc` and `led_matrix_user.inc` (see [Custom LED Matrix Effects](led_matrix#custom-led-matrix-effects)). Effect mode names are prepended with `LED_MATRIX_COMMUNITY_MODULE_`. - -### `rgb_matrix_module.inc` - -This file defines RGB matrix effects in the same form as used with `rgb_matrix_kb.inc` and `rgb_matrix_user.inc` (see [Custom RGB Matrix Effects](rgb_matrix#custom-rgb-matrix-effects)). Effect mode names are prepended with `RGB_MATRIX_COMMUNITY_MODULE_`. - -### Compatible APIs - -Community Modules may provide specializations for the following APIs: - -| Base API | API Format | Example (`hello_world` module) | API Version | -|----------------------------------|-------------------------------------------|---------------------------------------------|-------------| -| `keyboard_pre_init` | `keyboard_pre_init_` | `keyboard_pre_init_hello_world` | `0.1.0` | -| `keyboard_post_init` | `keyboard_post_init_` | `keyboard_post_init_hello_world` | `0.1.0` | -| `pre_process_record` | `pre_process_record_` | `pre_process_record_hello_world` | `0.1.0` | -| `process_record` | `process_record_` | `process_record_hello_world` | `0.1.0` | -| `post_process_record` | `post_process_record_` | `post_process_record_hello_world` | `0.1.0` | -| `housekeeping_task` | `housekeeping_task_` | `housekeeping_task_hello_world` | `1.0.0` | -| `suspend_power_down` | `suspend_power_down_` | `suspend_power_down_hello_world` | `1.0.0` | -| `suspend_wakeup_init` | `suspend_wakeup_init_` | `suspend_wakeup_init_hello_world` | `1.0.0` | -| `shutdown` | `shutdown_` | `shutdown_hello_world` | `1.0.0` | -| `process_detected_host_os` | `process_detected_host_os_` | `process_detected_host_os_hello_world` | `1.0.0` | -| `default_layer_state_set` | `default_layer_state_set_` | `default_layer_state_set_hello_world` | `1.1.0` | -| `layer_state_set` | `layer_state_set_` | `layer_state_set_hello_world` | `1.1.0` | -| `led_matrix_indicators` | `led_matrix_indicators_` | `led_matrix_indicators_hello_world` | `1.1.0` | -| `led_matrix_indicators_advanced` | `led_matrix_indicators_advanced_` | `led_matrix_indicators_advanced_hello_world` | `1.1.0` | -| `rgb_matrix_indicators` | `rgb_matrix_indicators_` | `rgb_matrix_indicators_hello_world` | `1.1.0` | -| `rgb_matrix_indicators_advanced` | `rgb_matrix_indicators_advanced_` | `rgb_matrix_indicators_advanced_hello_world` | `1.1.0` | -| `pointing_device_init` | `pointing_device_init_` | `pointing_device_init_hello_world` | `1.1.0` | -| `pointing_device_task` | `pointing_device_task_` | `pointing_device_task_hello_world` | `1.1.0` | - - -::: info -An unspecified API is disregarded if a Community Module does not provide a specialization for it. -::: - -Each API has an equivalent `__kb()` and `__user()` hook, as per the normal QMK [`_quantum`, `_kb`, and `_user` functions](/custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap). diff --git a/docs/features/encoders.md b/docs/features/encoders.md index 59f949be65..a674eaa4a6 100644 --- a/docs/features/encoders.md +++ b/docs/features/encoders.md @@ -68,7 +68,7 @@ Additionally, if one side does not have an encoder, you can specify `{}` for the ``` ::: warning -Keep in mind that whenever you change the encoder resolution, you will need to reflash the half that has the encoder affected by the change. +Keep in mind that whenver you change the encoder resolution, you will need to reflash the half that has the encoder affected by the change. ::: ## Encoder map {#encoder-map} diff --git a/docs/features/haptic_feedback.md b/docs/features/haptic_feedback.md index 08e66ea8e1..52667965a0 100644 --- a/docs/features/haptic_feedback.md +++ b/docs/features/haptic_feedback.md @@ -44,14 +44,14 @@ Not all keycodes below will work depending on which haptic mechanism you have ch |`QK_HAPTIC_MODE_NEXT` |`HF_NEXT`| Go to next DRV2605L waveform | |`QK_HAPTIC_MODE_PREVIOUS` |`HF_PREV`| Go to previous DRV2605L waveform | |`QK_HAPTIC_CONTINUOUS_TOGGLE`|`HF_CONT`| Toggle continuous haptic mode on/off | -|`QK_HAPTIC_CONTINUOUS_UP` |`HF_CONU`| Increase DRV2605L continuous haptic strength | -|`QK_HAPTIC_CONTINUOUS_DOWN` |`HF_COND`| Decrease DRV2605L continuous haptic strength | +|`QK_HAPTIC_CONTINUOUS_UP` |`HF_CONU`| Increase DRV2605L continous haptic strength | +|`QK_HAPTIC_CONTINUOUS_DOWN` |`HF_COND`| Decrease DRV2605L continous haptic strength | |`QK_HAPTIC_DWELL_UP` |`HF_DWLU`| Increase Solenoid dwell time | |`QK_HAPTIC_DWELL_DOWN` |`HF_DWLD`| Decrease Solenoid dwell time | ### Solenoids -The solenoid code supports relay switches, and similar hardware, as well as solenoids. +The solenoid code supports relay switches, and similar hardware, as well as solenoids. For a regular solenoid, you will need a build a circuit to drive the solenoid through a mosfet as most MCU will not be able to provide the current needed to drive the coil in the solenoid. @@ -75,7 +75,7 @@ For relay switches, the hardware may already contain all of that ciruitry, and j |`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the switch is in buzz mode. | * If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds. -* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times within the buzz period. +* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times withing the buzz period. * With the current implementation, for any of the above time settings, the precision of these settings may be affected by how fast the keyboard is able to scan the matrix. Therefore, if the keyboards scanning routine is slow, it may be preferable to set `SOLENOID_DWELL_STEP_SIZE` to a value slightly smaller than the time it takes to scan the keyboard. @@ -104,7 +104,7 @@ Eccentric Rotating Mass vibration motors (ERM) is motor with a off-set weight at ``` ##### LRA -Linear resonant actuators (LRA, also know as a linear vibrator) works different from a ERM. A LRA has a weight and magnet suspended by springs and a voice coil. When the drive signal is applied, the weight would be vibrate on a single axis (side to side or up and down). Since the weight is attached to a spring, there is a resonance effect at a specific frequency. This frequency is where the LRA will operate the most efficiently. Refer to the motor's datasheet for the recommended range for this frequency. +Linear resonant actuators (LRA, also know as a linear vibrator) works different from a ERM. A LRA has a weight and magnet suspended by springs and a voice coil. When the drive signal is applied, the weight would be vibrate on a single axis (side to side or up and down). Since the weight is attached to a spring, there is a resonance effect at a specific frequency. This frequency is where the LRA will operate the most efficiently. Refer to the motor's datasheet for the recommanded range for this frequency. ```c #define DRV2605L_FB_ERM_LRA 1 @@ -114,7 +114,7 @@ Linear resonant actuators (LRA, also know as a linear vibrator) works different /* Please refer to your datasheet for the optimal setting for your specific motor. */ #define DRV2605L_RATED_VOLTAGE 2 #define DRV2605L_V_PEAK 2.8 -#define DRV2605L_V_RMS 2.0 +#define DRV2605L_V_RMS 2.0 #define DRV2605L_V_PEAK 2.1 #define DRV2605L_F_LRA 205 /* resonance freq */ ``` @@ -125,7 +125,7 @@ DRV2605L comes with preloaded library of various waveform sequences that can be List of waveform sequences from the datasheet: -|seq# | Sequence name |seq# | Sequence name |seq# |Sequence name | +|seq# | Sequence name |seq# | Sequence name |seq# |Sequence name | |-----|---------------------|-----|-----------------------------------|-----|--------------------------------------| | 1 | strong_click | 43 | lg_dblclick_med_60 | 85 | transition_rampup_med_smooth2 | | 2 | strong_click_60 | 44 | lg_dblsharp_tick | 86 | transition_rampup_short_smooth1 | diff --git a/docs/features/joystick.md b/docs/features/joystick.md index cbf6c6daf7..f3fd209d5a 100644 --- a/docs/features/joystick.md +++ b/docs/features/joystick.md @@ -1,6 +1,6 @@ # Joystick {#joystick} -This feature provides game controller input as a joystick device supporting up to 6 axes, 32 buttons and a hat switch. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code. +This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code. An analog device such as a [potentiometer](https://en.wikipedia.org/wiki/Potentiometer) found on an analog joystick's axes is based on a voltage divider, where adjusting the movable wiper controls the output voltage which can then be read by the microcontroller's ADC. @@ -18,8 +18,6 @@ By default the joystick driver is `analog`, but you can change this with: JOYSTICK_DRIVER = digital ``` -When using `analog` with ARM, [you must use 3.3v with your Joystick](../drivers/adc). Although ARM boards such as the [Helios](https://keeb.supply/products/0xcb-helios) have 5v pin output, the ADC driver does not support it. - ## Configuration {#configuration} By default, two axes and eight buttons are defined, with a reported resolution of 8 bits (-127 to +127). This can be changed in your `config.h`: @@ -37,42 +35,6 @@ By default, two axes and eight buttons are defined, with a reported resolution o You must define at least one button or axis. Also note that the maximum ADC resolution of the supported AVR MCUs is 10-bit, and 12-bit for most STM32 MCUs. ::: -### Hat Switch {#hat-switch} - -To enable the 8-way hat switch, add the following to your `config.h`: - -```c -#define JOYSTICK_HAS_HAT -```` - -The position can be set by calling `joystick_set_hat(value)`. The range of values moves clockwise from the top (ie. north), with the default "center" position represented by a value of `-1`: - -``` - 0 - 7 N 1 - NW .--'--. NE - / \ -6 W | -1 | E 2 - \ / - SW '--.--' SE - 5 S 3 - 4 -``` - -Alternatively you can use these predefined names: - -|Define |Value|Angle| -|------------------------|-----|-----| -|`JOYSTICK_HAT_CENTER` |`-1` | | -|`JOYSTICK_HAT_NORTH` |`0` |0° | -|`JOYSTICK_HAT_NORTHEAST`|`1` |45° | -|`JOYSTICK_HAT_EAST` |`2` |90° | -|`JOYSTICK_HAT_SOUTHEAST`|`3` |135° | -|`JOYSTICK_HAT_SOUTH` |`4` |180° | -|`JOYSTICK_HAT_SOUTHWEST`|`5` |225° | -|`JOYSTICK_HAT_WEST` |`6` |270° | -|`JOYSTICK_HAT_NORTHWEST`|`7` |315° | - ### Axes {#axes} When defining axes for your joystick, you must provide a definition array typically in your `keymap.c`. @@ -185,8 +147,6 @@ Contains the state of the joystick. A bit-packed array containing the joystick button states. The size is calculated as `(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1`. - `int16_t axes[]` An array of analog values for each defined axis. - - `int8_t hat` - The hat switch position. - `bool dirty` Whether the current state needs to be sent to the host. @@ -260,14 +220,3 @@ Set the value of the given axis. The axis to set the value of. - `int16_t value` The value to set. - ---- - -### `void joystick_set_hat(int8_t value)` {#api-joystick-set-hat} - -Set the position of the hat switch. - -#### Arguments {#api-joystick-set-hat-arguments} - - - `int8_t value` - The hat switch position to set. diff --git a/docs/features/key_overrides.md b/docs/features/key_overrides.md index e83f0295ab..9b6015175c 100644 --- a/docs/features/key_overrides.md +++ b/docs/features/key_overrides.md @@ -135,11 +135,11 @@ bool momentary_layer(bool key_down, void *layer) { return false; } -const key_override_t fn_override = {.trigger_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RALT), // +const key_override_t fn_override = {.trigger_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL), // .layers = ~(1 << LAYER_FN), // - .suppressed_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RALT), // + .suppressed_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL), // .options = ko_option_no_unregister_on_other_key_down, // - .negative_mod_mask = (uint8_t) ~(MOD_BIT(KC_RGUI) | MOD_BIT(KC_RALT)), // + .negative_mod_mask = (uint8_t) ~(MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL)), // .custom_action = momentary_layer, // .context = (void *)LAYER_FN, // .trigger = KC_NO, // diff --git a/docs/features/layer_lock.md b/docs/features/layer_lock.md deleted file mode 100644 index 27856ada26..0000000000 --- a/docs/features/layer_lock.md +++ /dev/null @@ -1,139 +0,0 @@ -# Layer Lock - -Some [layer switches](../feature_layers#switching-and-toggling-layers) access -the layer by holding the key, including momentary layer `MO(layer)` and layer -tap `LT(layer, key)` keys. You may sometimes need to stay on the layer for a -long period of time. Layer Lock "locks" the current layer to stay on, supposing -it was accessed by one of: - - * `MO(layer)` momentary layer switch - * `LT(layer, key)` layer tap - * `OSL(layer)` one-shot layer - * `TT(layer)` layer tap toggle - * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) - -Press the Layer Lock key again to unlock the layer. Additionally, when a layer -is locked, layer switch keys that turn off the layer such as `TO(other_layer)` -will unlock it. - - -## How do I enable Layer Lock - -In your rules.mk, add: - -```make -LAYER_LOCK_ENABLE = yes -``` - -Pick a key in your keymap on a layer you intend to lock, and assign it the -keycode `QK_LAYER_LOCK` (short alias `QK_LLCK`). Note that locking the base -layer has no effect, so typically, this key is used on layers above the base -layer. - - -## Example use - -Consider a keymap with the following base layer. - -![Base layer with a MO(NAV) key.](/DkEhj9x.png) - -The highlighted key is a momentary layer switch `MO(NAV)`. Holding it accesses a -navigation layer. - -![Nav layer with a Layer Lock key.](/2wUZNWk.png) - - -Holding the NAV key is fine for brief use, but awkward to continue holding when -using navigation functions continuously. The Layer Lock key comes to the rescue: - -1. Hold the NAV key, activating the navigation layer. -2. Tap Layer Lock. -3. Release NAV. The navigation layer stays on. -4. Make use of the arrow keys, etc. -5. Tap Layer Lock or NAV again to turn the navigation layer back off. - -A variation that would also work is to put the Layer Lock key on the base layer -and make other layers transparent (`KC_TRNS`) in that position. Pressing the -Layer Lock key locks (or unlocks) the highest active layer, regardless of which -layer the Layer Lock key is on. - - -## Idle timeout - -Optionally, Layer Lock may be configured to unlock if the keyboard is idle -for some time. In config.h, define `LAYER_LOCK_IDLE_TIMEOUT` in units of -milliseconds: - -```c -#define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. -``` - - -## Functions - -Use the following functions to query and manipulate the layer lock state. - -| Function | Description | -|----------------------------|------------------------------------| -| `is_layer_locked(layer)` | Checks whether `layer` is locked. | -| `layer_lock_on(layer)` | Locks and turns on `layer`. | -| `layer_lock_off(layer)` | Unlocks and turns off `layer`. | -| `layer_lock_invert(layer)` | Toggles whether `layer` is locked. | - - -## Representing the current Layer Lock state - -There is an optional callback `layer_lock_set_user()` that gets called when a -layer is locked or unlocked. This is useful to represent the current lock state -for instance by setting an LED. In keymap.c, define - -```c -bool layer_lock_set_user(layer_state_t locked_layers) { - // Do something like `set_led(is_layer_locked(NAV));` - return true; -} -``` - -The argument `locked_layers` is a bitfield in which the kth bit is on if the kth -layer is locked. Alternatively, you can use `is_layer_locked(layer)` to check if -a given layer is locked. - - -## Combine Layer Lock with a mod-tap - -It is possible to create a [mod-tap MT key](../mod_tap) that acts as a modifier -on hold and Layer Lock on tap. Since Layer Lock is not a [basic -keycode](../keycodes_basic), attempting `MT(mod, QK_LLCK)` is invalid does not -work directly, yet this effect can be achieved through [changing the tap -function](../mod_tap#changing-tap-function). For example, the following -implements a `SFTLLCK` key that acts as Shift on hold and Layer Lock on tap: - -```c -#define SFTLLCK LSFT_T(KC_0) - -// Use SFTLLCK in your keymap... - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SFTLLCK: - if (record->tap.count) { - if (record->event.pressed) { - // Toggle the lock on the highest layer. - layer_lock_invert(get_highest_layer(layer_state)); - } - return false; - } - break; - - // Other macros... - } - return true; -} -``` - -In the above, `KC_0` is an arbitrary placeholder for the tapping keycode. This -keycode will never be sent, so any basic keycode will do. In -`process_record_user()`, the tap press event is changed to toggle the lock on -the highest layer. Layer Lock can be combined with a [layer-tap LT -key](../feature_layers#switching-and-toggling-layers) similarly. - diff --git a/docs/features/leader_key.md b/docs/features/leader_key.md index 9f9086e1ae..a36e630a36 100644 --- a/docs/features/leader_key.md +++ b/docs/features/leader_key.md @@ -154,21 +154,6 @@ User callback, invoked when the leader sequence ends. --- -### `bool leader_add_user(uint16_t keycode)` {#api-leader-add-user} - -User callback, invoked when a keycode is added to the leader sequence. - -#### Arguments {#api-leader-add-user-arguments} - - - `uint16_t keycode` - The keycode to added to the leader sequence. - -#### Return Value {#api-leader-add-user-return} - -`true` to finish the key sequence, `false` to continue. - ---- - ### `void leader_start(void)` {#api-leader-start} Begin the leader sequence, resetting the buffer and timer. diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 28d24bc400..756cc11e2b 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -214,30 +214,9 @@ led_matrix_mode(LED_MATRIX_CUSTOM_my_cool_effect); For inspiration and examples, check out the built-in effects under `quantum/led_matrix/animations/`. -## Naming - -If you wish to be able to use the name of an effect in your code -- say for a display indicator -- then you can enable the function `led_matrix_get_mode_name` in the following manner: - -In your keymap's `config.h`: -```c -#define LED_MATRIX_MODE_NAME_ENABLE -``` - -In your `keymap.c` -```c -const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode()); -// do something with `effect_name`, like `oled_write_ln(effect_name, false);` -``` - -::: info -`led_matrix_get_mode_name()` is not enabled by default as it increases the amount of flash memory used by the firmware based on the number of effects enabled. -::: - - ## Additional `config.h` Options {#additional-configh-options} ```c -#define LED_MATRIX_MODE_NAME_ENABLE // enables led_matrix_get_mode_name() #define LED_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses) #define LED_MATRIX_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off #define LED_MATRIX_SLEEP // turn off effects when suspended @@ -248,8 +227,6 @@ const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode()); #define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set #define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set -#define LED_MATRIX_VAL_STEP 8 // The value by which to increment the brightness per adjustment action -#define LED_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action #define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set #define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR diff --git a/docs/features/mouse_keys.md b/docs/features/mouse_keys.md index 86b50fa9c8..d755084f8e 100644 --- a/docs/features/mouse_keys.md +++ b/docs/features/mouse_keys.md @@ -214,9 +214,7 @@ When additional overlapping mouse key is pressed, the mouse cursor will continue |`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration | |`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)| -::: tip -This feature will not be applied on Inertial mode -::: +?> This feature will not be applied on Inertial mode ## Use with PS/2 Mouse and Pointing Device diff --git a/docs/features/os_detection.md b/docs/features/os_detection.md index 880e88d4b9..d0556d2549 100644 --- a/docs/features/os_detection.md +++ b/docs/features/os_detection.md @@ -70,33 +70,17 @@ The process is done in steps, generating a number of intermediate results until We therefore resort to debouncing the result until it has been stable for a given amount of milliseconds. This amount can be configured, in case your board is not stable within the default debouncing time of 200ms. +## KVM and USB switches + +Some KVM and USB switches may not trigger the USB controller on the keyboard to fully reset upon switching machines. +If your keyboard does not redetect the OS in this situation, you can force the keyboard to reset when the USB initialization event is detected, forcing the USB controller to be reconfigured. + ## Configuration Options -* `#define OS_DETECTION_DEBOUNCE 250` +* `#define OS_DETECTION_DEBOUNCE 200` * defined the debounce time for OS detection, in milliseconds - * defaults to 250ms * `#define OS_DETECTION_KEYBOARD_RESET` - * enables the keyboard reset upon a USB device reinitilization - * this setting may help with detection issues when switching between devices on some KVMs (see [Troubleshooting](#troubleshooting)) -* `#define OS_DETECTION_SINGLE_REPORT` - * allows the report callbacks to be called only once, when the OS detection result is considered stable - * subsequent changes in the detection results, if any, are ignored - * this setting may help with delayed stability issues when switching devices on some KVMs (see [Troubleshooting](#troubleshooting)) - -## Troubleshooting - -Some KVMs and USB switches may cause issues when the OS detection is turned on. -Here is a list of common issues and how to fix them: - -* **Problem**: _keyboard won't redetect the OS when switching between machines using a KVM_ - * **Explanation**: some KVMs keep the USB controller powered on during the switch and OS - detection happens when the USB device description is being assembled. - * **Solution**: use `OS_DETECTION_KEYBOARD_RESET` to force the keyboard to reset upon switching. -* **Problem**: _keyboard OS detection callback gets invoked even minuted after startup_ - * **Explanation**: some OSes, notably macOS on ARM-based Macs, may cause this behavior. - The actual cause is not known at this time.' - * **Solution**: use `OS_DETECTION_SINGLE_REPORT` to suppress repeated callback invocations. - + * enables the keyboard reset upon a USB device reinitilization, such as switching devices on some KVMs ## Debug diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md index d6dcddcdf0..a6bf521a18 100644 --- a/docs/features/pointing_device.md +++ b/docs/features/pointing_device.md @@ -51,7 +51,7 @@ The ADNS 9800 is an SPI driven optical sensor, that uses laser output for surfac | `ADNS9800_CS_PIN` | (Required) Sets the Chip Select pin connected to the sensor. | `POINTING_DEVICE_CS_PIN` | -The CPI range is 800-8200, in increments of 200. Defaults to 1800 CPI. +The CPI range is 800-8200, in increments of 200. Defaults to 1800 CPI. ### Analog Joystick @@ -258,7 +258,7 @@ To use the paw 3204 sensor, add this to your `rules.mk` POINTING_DEVICE_DRIVER = paw3204 ``` -The paw 3204 sensor uses a serial type protocol for communication, and requires an additional light source. +The paw 3204 sensor uses a serial type protocol for communication, and requires an additional light source. | Setting (`config.h`) | Description | Default | | -------------------- |--------------------------------------------------------------- | -------------------------- | @@ -275,7 +275,7 @@ To use the Pimoroni Trackball module, add this to your `rules.mk`: POINTING_DEVICE_DRIVER = pimoroni_trackball ``` -The Pimoroni Trackball module is a I2C based breakout board with an RGB enable trackball. +The Pimoroni Trackball module is a I2C based breakout board with an RGB enable trackball. | Setting (`config.h`) | Description | Default | | ------------------------------------ | ---------------------------------------------------------------------------------- | ------- | @@ -379,14 +379,14 @@ POINTING_DEVICE_DRIVER = custom Using the custom driver will require implementing the following functions: ```c -bool pointing_device_driver_init(void) { return true; } +void pointing_device_driver_init(void) {} report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { return mouse_report; } uint16_t pointing_device_driver_get_cpi(void) { return 0; } void pointing_device_driver_set_cpi(uint16_t cpi) {} ``` ::: warning -Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/pointing_device_drivers.c`, but there may be cases where it's very specific to the hardware. So these functions are provided, just in case. +Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/pointing_device_drivers.c`, but there may be cases where it's very specific to the hardware. So these functions are provided, just in case. ::: ## Common Configuration @@ -394,7 +394,6 @@ Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/ | Setting | Description | Default | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- | | `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ | -| `WHEEL_EXTENDED_REPORT` | (Optional) Enables support for extended wheel reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ | | `POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ | | `POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ | | `POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ | @@ -413,38 +412,12 @@ Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/ When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and `POINTING_DEVICE_TASK_THROTTLE_MS` will default to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness. ::: -The `POINTING_DEVICE_CS_PIN`, `POINTING_DEVICE_SDIO_PIN`, and `POINTING_DEVICE_SCLK_PIN` provide a convenient way to define a single pin that can be used for an interchangeable sensor config. This allows you to have a single config, without defining each device. Each sensor allows for this to be overridden with their own defines. +The `POINTING_DEVICE_CS_PIN`, `POINTING_DEVICE_SDIO_PIN`, and `POINTING_DEVICE_SCLK_PIN` provide a convenient way to define a single pin that can be used for an interchangeable sensor config. This allows you to have a single config, without defining each device. Each sensor allows for this to be overridden with their own defines. ::: warning Any pointing device with a lift/contact status can integrate inertial cursor feature into its driver, controlled by `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE`. e.g. PMW3360 can use Lift_Stat from Motion register. Note that `POINTING_DEVICE_MOTION_PIN` cannot be used with this feature; continuous polling of `get_report()` is needed to generate glide reports. ::: -## High Resolution Scrolling - -| Setting | Description | Default | -| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------- | -| `POINTING_DEVICE_HIRES_SCROLL_ENABLE` | (Optional) Enables high resolution scrolling. | _not defined_ | -| `POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER`| (Optional) Resolution multiplier value used by high resolution scrolling. Must be between 1 and 127, inclusive. | `120` | -| `POINTING_DEVICE_HIRES_SCROLL_EXPONENT` | (Optional) Resolution exponent value used by high resolution scrolling. Must be between 0 and 127, inclusive. | `0` | - -The `POINTING_DEVICE_HIRES_SCROLL_ENABLE` setting enables smooth and continuous scrolling when using trackballs or high-end encoders as mouse wheels (as opposed to the typical stepped behavior of most mouse wheels). -This works by adding a resolution multiplier to the HID descriptor for mouse wheel reports, causing the host computer to interpret each wheel tick sent by the keyboard as a fraction of a normal wheel tick. -The resolution multiplier is set to `1 / (POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER * (10 ^ POINTING_DEVICE_HIRES_SCROLL_EXPONENT))`, which is `1 / 120` by default. -If even smoother scrolling than provided by this default value is desired, first try using `#define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 1` which will result in a multiplier of `1 / 1200`. - -The function `pointing_device_get_hires_scroll_resolution()` can be called to get the pre-computed resolution multiplier value as a `uint16_t`. - -::: warning -High resolution scrolling usually results in larger and/or more frequent mouse reports. This can result in overflow errors and overloading of the host computer's input buffer. -To deal with these issues, define `WHEEL_EXTENDED_REPORT` and throttle the rate at which mouse reports are sent. -::: - -::: warning -Many programs, especially those that implement their own smoothing for scrolling, don't work well when they receive simultaneous vertical and horizontal wheel inputs (e.g. from high resolution drag-scroll using a trackball). -These programs typically implement their smoothing in a way that assumes the user will only scroll in one axis at a time, resulting in slow or jittery motion when trying to scroll at an angle. -This can be addressed by snapping scrolling to one axis at a time. -::: - ## Split Keyboard Configuration The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](split_keyboard#data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device. @@ -465,24 +438,22 @@ If there is a `_RIGHT` configuration option or callback, the [common configurati ::: -## Callbacks and Functions +## Callbacks and Functions -| Function | Description | -| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. | -| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. | -| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. | -| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user code can intercept and modify the data. Returns a mouse report. | -| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. | -| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. | -| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. | -| `pointing_device_get_report(void)` | Returns the current mouse report (as a `report_mouse_t` data structure). | -| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `report_mouse_t` data structured passed to the function. | -| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. | -| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `report_mouse_t` data and returns true only if it has changed. | -| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. | -| `pointing_device_get_status(void)` | Returns device status as `pointing_device_status_t` a good return is `POINTING_DEVICE_STATUS_SUCCESS`. | -| `pointing_device_set_status(pointing_device_status_t status)` | Sets device status, anything other than `POINTING_DEVICE_STATUS_SUCCESS` will disable reports from the device.| +| Function | Description | +| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. | +| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. | +| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. | +| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user code can intercept and modify the data. Returns a mouse report. | +| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. | +| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. | +| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. | +| `pointing_device_get_report(void)` | Returns the current mouse report (as a `report_mouse_t` data structure). | +| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `report_mouse_t` data structured passed to the function. | +| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. | +| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `report_mouse_t` data and returns true only if it has changed. | +| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. | ## Split Keyboard Callbacks and Functions @@ -513,7 +484,7 @@ To manually manipulate the mouse reports outside of the `pointing_device_task_*` * `pointing_device_get_report()` - Returns the current report_mouse_t that represents the information sent to the host computer * `pointing_device_set_report(report_mouse_t mouse_report)` - Overrides and saves the report_mouse_t to be sent to the host computer -* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report. +* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report. When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden. @@ -548,7 +519,7 @@ Recall that the mouse report is set to zero (except the buttons) whenever it is ### Drag Scroll or Mouse Scroll -A very common implementation is to use the mouse movement to scroll instead of moving the cursor on the system. This uses the `pointing_device_task_user` callback to intercept and modify the mouse report before it's sent to the host system. +A very common implementation is to use the mouse movement to scroll instead of moving the cursor on the system. This uses the `pointing_device_task_user` callback to intercept and modify the mouse report before it's sent to the host system. ```c enum custom_keycodes { @@ -575,7 +546,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } ``` -This allows you to toggle between scrolling and cursor movement by pressing the DRAG_SCROLL key. +This allows you to toggle between scrolling and cursor movement by pressing the DRAG_SCROLL key. ### Advanced Drag Scroll @@ -711,7 +682,7 @@ If you are having issues with pointing device drivers debug messages can be enab ```c #define POINTING_DEVICE_DEBUG ``` - + ::: tip The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](../faq_debug). ::: @@ -720,7 +691,7 @@ The messages will be printed out to the `CONSOLE` output. For additional informa --- # Automatic Mouse Layer {#pointing-device-auto-mouse} -When using a pointing device combined with a keyboard the mouse buttons are often kept on a separate layer from the default keyboard layer, which requires pressing or holding a key to change layers before using the mouse. To make this easier and more efficient an additional pointing device feature may be enabled that will automatically activate a target layer as soon as the pointing device is active _(in motion, mouse button pressed etc.)_ and deactivate the target layer after a set time. +When using a pointing device combined with a keyboard the mouse buttons are often kept on a separate layer from the default keyboard layer, which requires pressing or holding a key to change layers before using the mouse. To make this easier and more efficient an additional pointing device feature may be enabled that will automatically activate a target layer as soon as the pointing device is active _(in motion, mouse button pressed etc.)_ and deactivate the target layer after a set time. Additionally if any key that is defined as a mouse key is pressed then the layer will be held as long as the key is pressed and the timer will be reset on key release. When a non-mouse key is pressed then the layer is deactivated early _(with some exceptions see below)_. Mod, mod tap, and one shot mod keys are ignored _(i.e. don't hold or activate layer but do not deactivate the layer either)_ when sending a modifier keycode _(e.g. hold for mod tap)_ allowing for mod keys to be used with the mouse without activating the target layer when typing. @@ -754,9 +725,8 @@ void pointing_device_init_user(void) { } ``` -Because the auto mouse feature can be disabled/enabled during runtime and starts as disabled by default it must be enabled by calling `set_auto_mouse_enable(true);` somewhere in firmware before the feature will work. - -_Note: for setting the target layer during initialization either setting `AUTO_MOUSE_DEFAULT_LAYER` in `config.h` or calling `set_auto_mouse_layer()` can be used._ +Because the auto mouse feature can be disabled/enabled during runtime and starts as disabled by default it must be enabled by calling `set_auto_mouse_enable(true);` somewhere in firmware before the feature will work. +_Note: for setting the target layer during initialization either setting `AUTO_MOUSE_DEFAULT_LAYER` in `config.h` or calling `set_auto_mouse_layer()` can be used._ ## How to Customize: @@ -775,7 +745,7 @@ There are a few ways to control the auto mouse feature with both `config.h` opti ### Adding mouse keys -While all default mouse keys and layer keys(for current mouse layer) are treated as mouse keys, additional Keyrecords can be added to mouse keys by adding them to the is_mouse_record_* stack. +While all default mouse keys and layer keys(for current mouse layer) are treated as mouse keys, additional Keyrecords can be added to mouse keys by adding them to the is_mouse_record_* stack. #### Callbacks for setting up additional key codes as mouse keys: | Callback | Description | @@ -783,7 +753,7 @@ While all default mouse keys and layer keys(for current mouse layer) are treated | `bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record)` | keyboard level callback for adding mouse keys | | `bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record)` | user/keymap level callback for adding mouse keys | -##### To use the callback function to add mouse keys: +##### To use the callback function to add mouse keys: The following code will cause the enter key and all of the arrow keys to be treated as mouse keys (hold target layer while they are pressed and reset active layer timer). ```c @@ -807,7 +777,7 @@ bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) { There are several functions that allow for more advanced interaction with the auto mouse feature allowing for greater control. -### Functions to control auto mouse enable and target layer: +### Functions to control auto mouse enable and target layer: | Function | Description | Aliases | Return type | | :--------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------- | --------------: | | `set_auto_mouse_enable(bool enable)` | Enable or disable auto mouse (true:enable, false:disable) | | `void`(None) | @@ -826,27 +796,25 @@ There are several functions that allow for more advanced interaction with the au | `get_auto_mouse_key_tracker(void)` | Gets the current count for the auto mouse key tracker. | | `int8_t` | | `set_auto_mouse_key_tracker(int8_t key_tracker)` | Sets/Overrides the current count for the auto mouse key tracker. | | `void`(None) | -_NOTES:_ - -- _Due to the nature of how some functions work, the `auto_mouse_trigger_reset`, and `auto_mouse_layer_off` functions should never be called in the `layer_state_set_*` stack as this can cause indefinite loops._ -- _It is recommended that `remove_auto_mouse_layer` is used in the `layer_state_set_*` stack of functions and `auto_mouse_layer_off` is used everywhere else_ -- _`remove_auto_mouse_layer(state, false)` or `auto_mouse_layer_off()` should be called before any instance of `set_auto_mouse_enabled(false)` or `set_auto_mouse_layer(layer)` to ensure that the target layer will be removed appropriately before disabling auto mouse or changing target to avoid a stuck layer_ - -### Functions for handling custom key events: +_NOTES:_ + - _Due to the nature of how some functions work, the `auto_mouse_trigger_reset`, and `auto_mouse_layer_off` functions should never be called in the `layer_state_set_*` stack as this can cause indefinite loops._ + - _It is recommended that `remove_auto_mouse_layer` is used in the `layer_state_set_*` stack of functions and `auto_mouse_layer_off` is used everywhere else_ + - _`remove_auto_mouse_layer(state, false)` or `auto_mouse_layer_off()` should be called before any instance of `set_auto_mouse_enabled(false)` or `set_auto_mouse_layer(layer)` to ensure that the target layer will be removed appropriately before disabling auto mouse or changing target to avoid a stuck layer_ + +### Functions for handling custom key events: | Function | Description | Return type | | :--------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------: | | `auto_mouse_keyevent(bool pressed)` | Auto mouse mouse key event (true: key down, false: key up) | `void`(None) | | `auto_mouse_trigger_reset(bool pressed)` | Reset auto mouse status on key down and start delay timer (non-mouse key event) | `void`(None) | | `auto_mouse_toggle(void)` | Toggle on/off target toggle state (disables layer deactivation when true) | `void`(None) | -| `get_auto_mouse_toggle(void)` | Return value of toggling state variable | `bool` | - +| `get_auto_mouse_toggle(void)` | Return value of toggling state variable | `bool` | _NOTE: Generally it would be preferable to use the `is_mouse_record_*` functions to add any additional keys that should act as mouse keys rather than adding `auto_mouse_keyevent(record.event->pressed)` to `process_records_*`_ -### Advanced control examples +### Advanced control examples -#### Disable auto mouse on certain layers: +#### Disable auto mouse on certain layers: -The auto mouse feature can be disabled any time and this can be helpful if you want to disable the auto mouse feature under certain circumstances such as when particular layers are active. One issue however is the handling of the target layer, it needs to be removed appropriately **before** disabling auto mouse _(see notes under control functions above)_. The following function would disable the auto_mouse feature whenever the layers `_LAYER5` through `_LAYER7` are active as the top most layer _(ignoring target layer)_. +The auto mouse feature can be disabled any time and this can be helpful if you want to disable the auto mouse feature under certain circumstances such as when particular layers are active. One issue however is the handling of the target layer, it needs to be removed appropriately **before** disabling auto mouse _(see notes under control functions above)_. The following function would disable the auto_mouse feature whenever the layers `_LAYER5` through `_LAYER7` are active as the top most layer _(ignoring target layer)_. ```c // in keymap.c: @@ -885,7 +853,7 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { auto_mouse_layer_off(); set_auto_mouse_layer(_MOUSE_LAYER_2); break; - + default: if((AUTO_MOUSE_TARGET_LAYER) == _MOUSE_LAYER_1) break; auto_mouse_layer_off(); @@ -895,11 +863,9 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { } ``` -### Use custom keys to control auto mouse: - -Custom key records could also be created that control the auto mouse feature. - -The code example below would create a custom key that would toggle the auto mouse feature on and off when pressed while also setting a bool that could be used to disable other code that may turn it on such as the layer code above. +### Use custom keys to control auto mouse: +Custom key records could also be created that control the auto mouse feature. +The code example below would create a custom key that would toggle the auto mouse feature on and off when pressed while also setting a bool that could be used to disable other code that may turn it on such as the layer code above. ```c // in config.h: @@ -928,11 +894,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { ## Customize Target Layer Activation -Layer activation can be customized by overwriting the `auto_mouse_activation` function. This function is checked every time `pointing_device_task` is called when inactive and every `AUTO_MOUSE_DEBOUNCE` ms when active, and will evaluate pointing device level conditions that trigger target layer activation. When it returns true, the target layer will be activated barring the usual exceptions _(e.g. delay time has not expired)_. +Layer activation can be customized by overwriting the `auto_mouse_activation` function. This function is checked every time `pointing_device_task` is called when inactive and every `AUTO_MOUSE_DEBOUNCE` ms when active, and will evaluate pointing device level conditions that trigger target layer activation. When it returns true, the target layer will be activated barring the usual exceptions _(e.g. delay time has not expired)_. By default it will return true if any of the `mouse_report` axes `x`,`y`,`h`,`v` are non zero, or if there is any mouse buttons active in `mouse_report`. _Note: The Cirque pinnacle track pad already implements a custom activation function that will activate on touchdown as well as movement all of the default conditions, currently this only works for the master side of split keyboards._ - + | Function | Description | Return type | | :--------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------: | | `auto_mouse_activation(report_mouse_t mouse_report)` | Overwritable function that controls target layer activation (when true) | `bool` | @@ -944,12 +910,12 @@ When using a custom pointing device (overwriting `pointing_device_task`) the fol ```c bool pointing_device_task(void) { //...Custom pointing device task code - + // handle automatic mouse layer (needs report_mouse_t as input) pointing_device_task_auto_mouse(local_mouse_report); - + //...More custom pointing device task code - + return pointing_device_send(); } ``` diff --git a/docs/features/ps2_mouse.md b/docs/features/ps2_mouse.md index 6ef7e46768..90f4cca827 100644 --- a/docs/features/ps2_mouse.md +++ b/docs/features/ps2_mouse.md @@ -23,11 +23,8 @@ MODULE 5+ --------+--+--------- PWR CONTROLLER CLK ------+------------ PIN ``` -## Driver Configuration {#driver-configuration} -Driver selection can be configured in `rules.mk` as `PS2_DRIVER`, or in `info.json` as `ps2.driver`. Valid values are `busywait` (default), `interrupt`, `usart`, or `vendor`. See below for information on individual drivers. - -### Busywait Driver {#busywait-driver} +## Busywait Version {#busywait-version} Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible. @@ -48,7 +45,7 @@ In your keyboard config.h: #endif ``` -### Interrupt Driver (AVR/ATMega32u4) {#interrupt-driver-avr} +### Interrupt Version (AVR/ATMega32u4) {#interrupt-version-avr} The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data. @@ -81,7 +78,7 @@ In your keyboard config.h: #endif ``` -### Interrupt Driver (ARM chibios) {#interrupt-driver-chibios} +### Interrupt Version (ARM chibios) {#interrupt-version-chibios} Pretty much any two pins can be used for the (software) interrupt variant on ARM cores. The example below uses A8 for clock, and A9 for data. @@ -93,24 +90,20 @@ PS2_ENABLE = yes PS2_DRIVER = interrupt ``` -In your keyboard `config.h`: +In your keyboard config.h: ```c #define PS2_CLOCK_PIN A8 #define PS2_DATA_PIN A9 ``` -And in the ChibiOS specific `halconf.h`: - +And in the chibios specifig halconf.h: ```c -#pragma once - -#define PAL_USE_CALLBACKS TRUE // [!code focus] - -#include_next +#define PAL_USE_CALLBACKS TRUE ``` -### USART Driver {#usart-driver} + +### USART Version {#usart-version} To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version. @@ -162,7 +155,7 @@ In your keyboard config.h: #endif ``` -### RP2040 PIO Driver {#rp2040-pio-driver} +### RP2040 PIO Version {#rp2040-pio-version} The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU. diff --git a/docs/features/repeat_key.md b/docs/features/repeat_key.md index 543dfd1008..7f2bdc44e6 100644 --- a/docs/features/repeat_key.md +++ b/docs/features/repeat_key.md @@ -5,7 +5,7 @@ Key after tapping the Z key types another "`z`." This is useful for typing doubled letters, like the `z` in "`dazzle`": a double tap on Z can instead be a roll from Z to Repeat, which is potentially faster and more comfortable. The Repeat Key is also useful for -hotkeys, like repeating Ctrl + Shift + Right Arrow to select by word. +hotkeys, like repeating Ctrl + Shift + Right Arrow to select by word. Repeat Key remembers mods that were active with the last key press. These mods are combined with any additional mods while pressing the Repeat Key. If the last @@ -49,10 +49,10 @@ reduce firmware size, Alternate Repeat may be disabled by adding in config.h: The following alternate keys are defined by default. See `get_alt_repeat_key_keycode_user()` below for how to change or add to these -definitions. Where it makes sense, these definitions also include combinations +definitions. Where it makes sense, these definitions also include combinations with mods, like Ctrl + Left ↔ Ctrl + Right Arrow. -**Navigation** +**Navigation** |Keycodes |Description | |-----------------------------------|-----------------------------------| @@ -65,7 +65,7 @@ with mods, like Ctrl + Left ↔ Ctrl + Right Arrow. |`MS_WHLL` ↔ `MS_WHLR` | Mouse Wheel Left ↔ Right | |`MS_WHLU` ↔ `MS_WHLD` | Mouse Wheel Up ↔ Down | -**Misc** +**Misc** |Keycodes |Description | |-----------------------------------|-----------------------------------| @@ -73,7 +73,7 @@ with mods, like Ctrl + Left ↔ Ctrl + Right Arrow. |`KC_LBRC` ↔ `KC_RBRC` | `[` ↔ `]` | |`KC_LCBR` ↔ `KC_RCBR` | `{` ↔ `}` | -**Media** +**Media** |Keycodes |Description | |-----------------------------------|-----------------------------------| @@ -176,9 +176,9 @@ macro](../feature_macros). This way macros can be used without having to dedicate keys to them. The following defines a couple shortcuts. * Typing K, Alt Repeat produces "`keyboard`," with the - initial "`k`" typed as usual and the "`eybord`" produced by the macro. + initial "`k`" typed as usual and the "`eybord`" produced by the macro. * Typing ., Alt Repeat produces "`../`," handy for "up - directory" on the shell. Similarly, . types the initial "`.`" and + directory" on the shell. Similary, . types the initial "`.`" and "`./`" is produced by the macro. ```c @@ -290,7 +290,7 @@ By default, pressing the Repeat Key will simply behave as if the last key were pressed again. This also works with macro keys with custom handlers, invoking the macro again. In case fine-tuning is needed for sensible repetition, you can handle how a key is repeated with `get_repeat_key_count()` within -`process_record_user()`. +`process_record_user()`. The `get_repeat_key_count()` function returns a signed count of times the key has been repeated or alternate repeated. When a key is pressed as usual, @@ -306,16 +306,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { if (get_repeat_key_count() > 0) { // MY_MACRO is being repeated! if (record->event.pressed) { - SEND_STRING("repeat!"); + SEND_STRING("repeat!"); } - } else { + } else { // MY_MACRO is being used normally. - if (record->event.pressed) { + if (record->event.pressed) { SEND_STRING("macro"); } } return false; - + // Other macros... } return true; @@ -347,19 +347,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { case MY_MACRO: if (get_repeat_key_count() > 0) { // Repeating. if (record->event.pressed) { - SEND_STRING("repeat!"); + SEND_STRING("repeat!"); } } else if (get_repeat_key_count() < 0) { // Alternate repeating. if (record->event.pressed) { SEND_STRING("alt repeat!"); } } else { // Used normally. - if (record->event.pressed) { + if (record->event.pressed) { SEND_STRING("macro"); } } return false; - + // Other macros... } return true; @@ -377,7 +377,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) { | `set_last_mods(mods)` | Set the mods to apply when repeating. | | `get_repeat_key_count()` | Signed count of times the key has been repeated or alternate repeated. | | `get_alt_repeat_key_keycode()` | Keycode to be used for alternate repeating. | - + ## Additional "Alternate" keys @@ -437,7 +437,7 @@ static void process_altrep3(uint16_t keycode, uint8_t mods) { bool process_record_user(uint16_t keycode, keyrecord_t* record) { switch (keycode) { - case ALTREP2: + case ALTREP2: if (record->event.pressed) { process_altrep2(get_last_keycode(), get_last_mods()); } diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 95ee4c4896..bc14bb6277 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -81,21 +81,38 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{ ## Keycodes {#keycodes} -|Key |Aliases |Description | -|-------------------------------|---------|-----------------------------------| -|`QK_RGB_MATRIX_ON` |`RM_ON` |Turn on RGB Matrix | -|`QK_RGB_MATRIX_OFF` |`RM_OFF` |Turn off RGB Matrix | -|`QK_RGB_MATRIX_TOGGLE` |`RM_TOGG`|Toggle RGB Matrix on or off | -|`QK_RGB_MATRIX_MODE_NEXT` |`RM_NEXT`|Cycle through animations | -|`QK_RGB_MATRIX_MODE_PREVIOUS` |`RM_PREV`|Cycle through animations in reverse| -|`QK_RGB_MATRIX_HUE_UP` |`RM_HUEU`|Cycle through hue | -|`QK_RGB_MATRIX_HUE_DOWN` |`RM_HUED`|Cycle through hue in reverse | -|`QK_RGB_MATRIX_SATURATION_UP` |`RM_SATU`|Increase the saturation | -|`QK_RGB_MATRIX_SATURATION_DOWN`|`RM_SATD`|Decrease the saturation | -|`QK_RGB_MATRIX_VALUE_UP` |`RM_VALU`|Increase the brightness level | -|`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | -|`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | -|`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +All RGB keycodes are currently shared with the RGBLIGHT system: + +|Key |Aliases |Description | +|-------------------|----------|--------------------------------------------------------------------------------------| +|`RGB_TOG` | |Toggle RGB lighting on or off | +|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held | +|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held | +|`RGB_HUI` | |Increase hue, decrease hue when Shift is held | +|`RGB_HUD` | |Decrease hue, increase hue when Shift is held | +|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held | +|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held | +|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held | +|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held | +|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held| +|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held| +|`RGB_MODE_PLAIN` |`RGB_M_P` |Static (no animation) mode | +|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode | +|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) | +|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) | + +* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system. + +`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped. + +::: tip +`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead. +::: + + +::: warning +By default, if you have both the [RGB Light](rgblight) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. +::: ## RGB Matrix Effects {#rgb-matrix-effects} @@ -125,13 +142,13 @@ enum rgb_matrix_effects { RGB_MATRIX_CYCLE_SPIRAL, // Full gradient spinning spiral around center of keyboard RGB_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard RGB_MATRIX_RAINBOW_BEACON, // Full tighter gradient spinning around center of keyboard - RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halves of keyboard + RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard RGB_MATRIX_FLOWER_BLOOMING, // Full tighter gradient of first half scrolling left to right and second half scrolling right to left RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation - RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight amount at the same time, then shifts back - RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight amount in a wave to the right, then back to the left - RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight amount and then back down in a wave to the right + RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back + RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight ammount in a wave to the right, then back to the left + RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight ammount and then back down in a wave to the right RGB_MATRIX_PIXEL_FRACTAL, // Single hue fractal filled keys pulsing horizontally out to edges RGB_MATRIX_PIXEL_FLOW, // Pulsing RGB flow along LED wiring with random hues RGB_MATRIX_PIXEL_RAIN, // Randomly light keys with random hues @@ -150,7 +167,6 @@ enum rgb_matrix_effects { RGB_MATRIX_SOLID_SPLASH, // Hue & value pulse away from a single key hit then fades value out RGB_MATRIX_SOLID_MULTISPLASH, // Hue & value pulse away from multiple key hits then fades value out RGB_MATRIX_STARLIGHT, // LEDs turn on and off at random at varying brightness, maintaining user set color - RGB_MATRIX_STARLIGHT_SMOOTH, // LEDs slowly increase and decrease in brightness randomly RGB_MATRIX_STARLIGHT_DUAL_HUE, // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30 RGB_MATRIX_STARLIGHT_DUAL_SAT, // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30 RGB_MATRIX_RIVERFLOW, // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing @@ -194,7 +210,6 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` | |`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` | |`#define ENABLE_RGB_MATRIX_STARLIGHT` |Enables `RGB_MATRIX_STARLIGHT` | -|`#define ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH` |Enables `RGB_MATRIX_STARLIGHT_SMOOTH` | |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE` |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE` | |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT` |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT` | |`#define ENABLE_RGB_MATRIX_RIVERFLOW` |Enables `RGB_MATRIX_RIVERFLOW` | @@ -240,7 +255,7 @@ In order to change the delay of temperature decrease define `RGB_MATRIX_TYPING_H As heatmap uses the physical position of the leds set in the g_led_config, you may need to tweak the following options to get the best effect for your keyboard. Note the size of this grid is `224x64`. -Limit the distance the effect spreads to surrounding keys. +Limit the distance the effect spreads to surrounding keys. ```c #define RGB_MATRIX_TYPING_HEATMAP_SPREAD 40 @@ -274,7 +289,7 @@ Solid reactive effects will pulse RGB light on key presses with user configurabl #define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE ``` -Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RM_SPDU`/`RM_SPDD`). +Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RGB_SPI`/`RGB_SPD`). ## Custom RGB Matrix Effects {#custom-rgb-matrix-effects} @@ -365,30 +380,9 @@ These are shorthands to popular colors. The `RGB` ones can be passed to the `set These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h). Feel free to add to this list! -## Naming - -If you wish to be able to use the name of an effect in your code -- say for a display indicator -- then you can enable the function `rgb_matrix_get_mode_name` in the following manner: - -In your keymap's `config.h`: -```c -#define RGB_MATRIX_MODE_NAME_ENABLE -``` - -In your `keymap.c` -```c -const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode()); -// do something with `effect_name`, like `oled_write_ln(effect_name, false);` -``` - -::: info -`rgb_matrix_get_mode_name()` is not enabled by default as it increases the amount of flash memory used by the firmware based on the number of effects enabled. -::: - - ## Additional `config.h` Options {#additional-configh-options} ```c -#define RGB_MATRIX_MODE_NAME_ENABLE // enables rgb_matrix_get_mode_name() #define RGB_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses) #define RGB_MATRIX_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off #define RGB_MATRIX_SLEEP // turn off effects when suspended @@ -401,13 +395,10 @@ const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode()); #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set -#define RGB_MATRIX_HUE_STEP 8 // The value by which to increment the hue per adjustment action -#define RGB_MATRIX_SAT_STEP 16 // The value by which to increment the saturation per adjustment action -#define RGB_MATRIX_VAL_STEP 16 // The value by which to increment the brightness per adjustment action -#define RGB_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action #define RGB_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set -#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. - // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature) +#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. + // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR #define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards ``` @@ -505,18 +496,18 @@ This example sets the modifiers to be a specific color based on the layer state. ```c bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - hsv_t hsv = {0, 255, 255}; + HSV hsv = {0, 255, 255}; - if (get_highest_layer(layer_state|default_layer_state) == 2) { - hsv = (hsv_t){130, 255, 255}; + if (layer_state_is(layer_state, 2)) { + hsv = (HSV){130, 255, 255}; } else { - hsv = (hsv_t){30, 255, 255}; + hsv = (HSV){30, 255, 255}; } if (hsv.v > rgb_matrix_get_val()) { hsv.v = rgb_matrix_get_val(); } - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); for (uint8_t i = led_min; i < led_max; i++) { if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER @@ -882,13 +873,13 @@ Set the global effect hue, saturation, and value (brightness). New state is not --- -### `hsv_t rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv} +### `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_t` struct. +The current effect HSV as an `HSV` struct. --- diff --git a/docs/features/rgblight.md b/docs/features/rgblight.md index 20d32c4f5a..794398a0f9 100644 --- a/docs/features/rgblight.md +++ b/docs/features/rgblight.md @@ -55,14 +55,10 @@ Changing the **Hue** cycles around the circle.
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.
Changing the **Value** sets the overall brightness.
-![QMK Color Wheel with HSV Values](/vkYVo66.jpg) +![QMK Color Wheel with HSV Values](https://i.imgur.com/vkYVo66.jpg) ## Keycodes -::: warning -These keycodes also simultaneously control [RGB Matrix](rgb_matrix), if enabled. This behaviour is in the process of being deprecated, so during this time it is recommended to additionally include the dedicated RGB Matrix keycodes to your keymap, and add `#define RGB_MATRIX_DISABLE_SHARED_KEYCODES` to `config.h`. -::: - |Key |Aliases |Description | |------------------------------|----------|---------------------------------------------------------------------| |`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off | @@ -91,18 +87,24 @@ These keycodes also simultaneously control [RGB Matrix](rgb_matrix), if enabled. These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead. ::: + +::: warning +By default, if you have both the RGB Light and the [RGB Matrix](rgb_matrix) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. +::: + ## Configuration Your RGB lighting can be configured by placing these `#define`s in your `config.h`: |Define |Default |Description | |---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------| -|`RGBLIGHT_HUE_STEP` |`8` |The value by which to increment the hue per adjustment action | -|`RGBLIGHT_SAT_STEP` |`17` |The value by which to increment the saturation per adjustment action | -|`RGBLIGHT_VAL_STEP` |`17` |The value by which to increment the brightness per adjustment action | +|`RGBLIGHT_HUE_STEP` |`8` |The number of steps to cycle through the hue by | +|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by | +|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by | |`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | |`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep | |`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added | +|`RGBLIGHT_DISABLE_KEYCODES`|*Not defined* |If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature| |`RGBLIGHT_DEFAULT_MODE` |`RGBLIGHT_MODE_STATIC_LIGHT`|The default mode to use upon clearing the EEPROM | |`RGBLIGHT_DEFAULT_HUE` |`0` (red) |The default hue to use upon clearing the EEPROM | |`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM | diff --git a/docs/features/space_cadet.md b/docs/features/space_cadet.md index 66761f5a46..0abdaebf33 100644 --- a/docs/features/space_cadet.md +++ b/docs/features/space_cadet.md @@ -32,7 +32,7 @@ COMMAND_ENABLE = no ## Configuration -By default Space Cadet assumes a US ANSI layout, but if your layout uses different keys for parentheses, you can redefine them in your `config.h`. In addition, you can redefine the modifier to send on tap, or even send no modifier at all. The new configuration defines bundle all options up into a single define of 3 key codes in this order: the `Modifier` when held or when used with other keys, the `Tap Modifier` sent when tapped (no modifier if `KC_TRNS`), finally the `Keycode` sent when tapped. Now keep in mind, mods from other keys will still apply to the `Keycode` if say `KC_RSFT` is held while tapping `SC_LSPO` key with `KC_TRNS` as the `Tap Modifier`. +By default Space Cadet assumes a US ANSI layout, but if your layout uses different keys for parentheses, you can redefine them in your `config.h`. In addition, you can redefine the modifier to send on tap, or even send no modifier at all. The new configuration defines bundle all options up into a single define of 3 key codes in this order: the `Modifier` when held or when used with other keys, the `Tap Modifer` sent when tapped (no modifier if `KC_TRNS`), finally the `Keycode` sent when tapped. Now keep in mind, mods from other keys will still apply to the `Keycode` if say `KC_RSFT` is held while tapping `SC_LSPO` key with `KC_TRNS` as the `Tap Modifer`. |Define |Default |Description | |----------------|-------------------------------|---------------------------------------------------------------------------------| diff --git a/docs/features/split_keyboard.md b/docs/features/split_keyboard.md index a6fbad1c8f..49582c3946 100644 --- a/docs/features/split_keyboard.md +++ b/docs/features/split_keyboard.md @@ -1,12 +1,12 @@ -# Split Keyboard +# Split Keyboard -Many keyboards in the QMK Firmware repo are "split" keyboards. They use two controllers—one plugging into USB, and the second connected by a serial or an I2C connection over a TRRS or similar cable. +Many keyboards in the QMK Firmware repo are "split" keyboards. They use two controllers—one plugging into USB, and the second connected by a serial or an I2C connection over a TRRS or similar cable. -Split keyboards can have a lot of benefits, but there is some additional work needed to get them enabled. +Split keyboards can have a lot of benefits, but there is some additional work needed to get them enabled. -QMK Firmware has a generic implementation that is usable by any board, as well as numerous board specific implementations. +QMK Firmware has a generic implementation that is usable by any board, as well as numerous board specific implementations. -For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards. +For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards. ::: warning ARM split supports most QMK subsystems when using the 'serial' and 'serial_usart' drivers. I2C slave is currently unsupported. @@ -29,33 +29,33 @@ Notes: ## Hardware Configuration -This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves. +This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves. ### Required Hardware Apart from diodes and key switches for the keyboard matrix in each half, you will need 2x TRRS sockets and 1x TRRS cable. -Alternatively, you can use any sort of cable and socket that has at least 3 wires. +Alternatively, you can use any sort of cable and socket that has at least 3 wires. If you want to use I2C to communicate between halves, you will need a cable with at least 4 wires and 2x 4.7kΩ pull-up resistors. -#### Considerations +#### Considerations -The most commonly used connection is a TRRS cable and jacks. These provide 4 wires, making them very useful for split keyboards, and are easy to find. +The most commonly used connection is a TRRS cable and jacks. These provide 4 wires, making them very useful for split keyboards, and are easy to find. -However, since one of the wires carries VCC, this means that the boards are not hot pluggable. You should always disconnect the board from USB before unplugging and plugging in TRRS cables, or you can short the controller, or worse. +However, since one of the wires carries VCC, this means that the boards are not hot pluggable. You should always disconnect the board from USB before unplugging and plugging in TRRS cables, or you can short the controller, or worse. -Another option is to use phone cables (as in, old school RJ-11/RJ-14 cables). Make sure that you use one that actually supports 4 wires/lanes. +Another option is to use phone cables (as in, old school RJ-11/RJ-14 cables). Make sure that you use one that actually supports 4 wires/lanes. -However, USB cables, SATA cables, and even just 4 wires have been known to be used for communication between the controllers. +However, USB cables, SATA cables, and even just 4 wires have been known to be used for communication between the controllers. ::: warning -Using USB cables for communication between the controllers works just fine, but the connector could be mistaken for a normal USB connection and potentially short out the keyboard, depending on how it's wired. For this reason, they are not recommended for connecting split keyboards. +Using USB cables for communication between the controllers works just fine, but the connector could be mistaken for a normal USB connection and potentially short out the keyboard, depending on how it's wired. For this reason, they are not recommended for connecting split keyboards. ::: ### Serial Wiring -The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0/D1/D2/D3 (aka PD0/PD1/PD2/PD3) between the two Pro Micros. +The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0/D1/D2/D3 (aka PD0/PD1/PD2/PD3) between the two Pro Micros. ::: tip Note that the pin used here is actually set by `SOFT_SERIAL_PIN` below. @@ -66,7 +66,7 @@ Note that the pin used here is actually set by `SOFT_SERIAL_PIN` below. ### I2C Wiring -The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0/pin 3 and PD1/pin 2, respectively) between the two Pro Micros. +The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0/pin 3 and PD1/pin 2, respectively) between the two Pro Micros. The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves. Note that the total resistance for the connected system should be within spec at 2.2k-10kOhm, with an 'ideal' at 4.7kOhm, regardless of the placement and number. @@ -75,13 +75,13 @@ Note that the total resistance for the connected system should be within spec at ## Firmware Configuration -To enable the split keyboard feature, add the following to your `rules.mk`: +To enable the split keyboard feature, add the following to your `rules.mk`: ```make SPLIT_KEYBOARD = yes ``` -If you're using a custom transport (communication method), then you will also need to add: +If you're using a custom transport (communication method), then you will also need to add: ```make SPLIT_TRANSPORT = custom @@ -91,11 +91,11 @@ SPLIT_TRANSPORT = custom Configuring your layout in a split keyboard works slightly differently to a non-split keyboard. Take for example the following layout. The top left numbers refer to the matrix row and column, and the bottom right are the order of the keys in the layout: -![Physical layout](/QeY6kMQ.png) +![Physical layout](https://i.imgur.com/QeY6kMQ.png) Since the matrix scanning procedure operates on entire rows, it first populates the left half's rows, then the right half's. Thus, the matrix as QMK views it has double the rows instead of double the columns: -![Matrix](/4wjJzBU.png) +![Matrix](https://i.imgur.com/4wjJzBU.png) ### Setting Handedness @@ -109,7 +109,7 @@ You can configure the firmware to read a pin on the controller to determine hand #define SPLIT_HAND_PIN B7 ``` -This will read the specified pin. By default, if it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side. +This will read the specified pin. By default, if it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side. This behaviour can be flipped by adding this to you `config.h` file: @@ -141,10 +141,10 @@ While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successful #### Handedness by EEPROM -This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout. +This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout. -To enable this method, add the following to your `config.h` file: +To enable this method, add the following to your `config.h` file: ```c #define EE_HANDS @@ -176,7 +176,7 @@ Some controllers (e.g. Blackpill with DFU compatible bootloader) will need to be [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/) can also be used to flash EEPROM handedness files. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand ::: -This setting is not changed when re-initializing the EEPROM using the `EE_CLR` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/)'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. +This setting is not changed when re-initializing the EEPROM using the `EE_CLR` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/)'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common). @@ -208,13 +208,13 @@ Because not every split keyboard is identical, there are a number of additional #define USE_I2C ``` -This configures the use of I2C support for split keyboard transport (AVR only). +This configures the use of I2C support for split keyboard transport (AVR only). ```c #define SOFT_SERIAL_PIN D0 ``` -This sets the pin to be used for serial communication. If you're not using serial, you shouldn't need to define this. +This sets the pin to be used for serial communication. If you're not using serial, you shouldn't need to define this. However, if you are using serial and I2C on the board, you will need to set this, and to something other than D0 and D1 (as these are used for I2C communication). @@ -235,7 +235,7 @@ If you're having issues with serial communication, you can change this value, as #define FORCED_SYNC_THROTTLE_MS 100 ``` -This sets the maximum number of milliseconds before forcing a synchronization of data from master to slave. Under normal circumstances this sync occurs whenever the data _changes_, for safety a data transfer occurs after this number of milliseconds if no change has been detected since the last sync. +This sets the maximum number of milliseconds before forcing a synchronization of data from master to slave. Under normal circumstances this sync occurs whenever the data _changes_, for safety a data transfer occurs after this number of milliseconds if no change has been detected since the last sync. ```c #define SPLIT_MAX_CONNECTION_ERRORS 10 @@ -249,7 +249,7 @@ Set to 0 to disable the disconnection check altogether. ``` How long (in milliseconds) the master part should block all connection attempts to the slave after the communication has been flagged as disconnected (see `SPLIT_MAX_CONNECTION_ERRORS` above). -One communication attempt will be allowed every time this amount of time has passed since the last attempt. If that attempt succeeds, the communication is seen as working again. +One communication attempt will be allowed everytime this amount of time has passed since the last attempt. If that attempt succeeds, the communication is seen as working again. Set to 0 to disable this throttling of communications while disconnected. This can save you a couple of bytes of firmware size. @@ -280,7 +280,7 @@ This enables syncing of the Host LED status (caps lock, num lock, etc) between b #define SPLIT_MODS_ENABLE ``` -This enables transmitting modifier state (normal, weak, oneshot and oneshot locked) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifier state (e.g. displaying status on an OLED screen). +This enables transmitting modifier state (normal, weak, oneshot and oneshot locked) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifer state (e.g. displaying status on an OLED screen). ```c #define SPLIT_WPM_ENABLE @@ -304,7 +304,7 @@ This enables transmitting the current ST7565 on/off status to the slave side of #define SPLIT_POINTING_ENABLE ``` -This enables transmitting the pointing device status to the master side of the split keyboard. The purpose of this feature is to enable use pointing devices on the slave side. +This enables transmitting the pointing device status to the master side of the split keyboard. The purpose of this feature is to enable use pointing devices on the slave side. ::: warning There is additional required configuration for `SPLIT_POINTING_ENABLE` outlined in the [pointing device documentation](pointing_device#split-keyboard-configuration). @@ -401,7 +401,7 @@ By default, the inbound and outbound data is limited to a maximum of 32 bytes ea ### Hardware Configuration Options -There are some settings that you may need to configure, based on how the hardware is set up. +There are some settings that you may need to configure, based on how the hardware is set up. ```c #define MATRIX_ROW_PINS_RIGHT { } @@ -433,7 +433,7 @@ This option enables synchronization of the RGB Light modes between the controlle #define RGBLED_SPLIT { 6, 6 } ``` -This sets how many LEDs are directly connected to each controller. The first number is the left side, and the second number is the right side. +This sets how many LEDs are directly connected to each controller. The first number is the left side, and the second number is the right side. ::: tip This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable it, if it's not. @@ -444,7 +444,7 @@ This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable #define SPLIT_USB_DETECT ``` -Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and active USB communication, then that half assumes it is the master, otherwise it assumes it is the slave. +Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave. Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection). @@ -479,7 +479,7 @@ This set the maximum slave timeout when waiting for communication from master wh Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`. -Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targeted). +Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targetted). ### Teensy boards @@ -497,11 +497,11 @@ Once you have done that, you will want to solder the diode from the 5V pad to th You may need to use the 5V pad from the regulator block above as the pads were too small and placed too closely together to place the Schottky diode properly. -![Teensy++ 2.0](/BPEC5n5.jpg) +![Teensy++ 2.0](https://i.imgur.com/BPEC5n5.png) ## Additional Resources -Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. +Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. However, the RGB Light section is out of date, as it was written long before the RGB Split code was added to QMK Firmware. Instead, wire each strip up directly to the controller. diff --git a/docs/features/st7565.md b/docs/features/st7565.md index 09a1efce30..de3e44d8e9 100644 --- a/docs/features/st7565.md +++ b/docs/features/st7565.md @@ -182,12 +182,12 @@ void st7565_render(void); void st7565_set_cursor(uint8_t col, uint8_t line); // Advances the cursor to the next page, writing ' ' if true -// Wraps to the beginning when out of bounds +// Wraps to the begining when out of bounds void st7565_advance_page(bool clearPageRemainder); // Moves the cursor forward 1 character length // Advance page if there is not enough room for the next character -// Wraps to the beginning when out of bounds +// Wraps to the begining when out of bounds void st7565_advance_char(void); // Writes a single character to the buffer at current cursor position diff --git a/docs/features/stenography.md b/docs/features/stenography.md index b253890e13..c6c2155a9a 100644 --- a/docs/features/stenography.md +++ b/docs/features/stenography.md @@ -4,32 +4,24 @@ The [Open Steno Project](https://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports -## Steno Support in QMK - -There are three ways that QMK keyboards can support steno, with varying degrees of configuration required: - -1. Plover with [Arpeggiation](https://plover.wiki/index.php/Glossary#Arpeggiate) requires no changes to any keyboard and is supported by QMK as well as any other QWERTY keyboard. -2. Plover with [NKRO](https://plover.wiki/index.php/Using_a_standard_keyboard_with_Plover#NKRO). If your keyboard supports NKRO in hardware and you have NKRO enabled as a USB endpoint, you can chord with the keyboard. Many devices will arrive stock like this and will require no changes. -3. Steno Machine Protocols. This requires the most configuration, but this has the advantage of allowing you to use your keyboard keys normally (either on another layer or another piece of hardware) without enabling and disabling your steno software. - ## Plover with QWERTY Keyboard {#plover-with-qwerty-keyboard} Plover can work with any standard QWERTY keyboard, although it is more efficient if the keyboard supports NKRO (n-key rollover) to allow Plover to see all the pressed keys at once. An example keymap for Plover can be found in `planck/keymaps/default`. Switching to the `PLOVER` layer adjusts the position of the keyboard to support the number bar. -To enable NKRO, add `NKRO_ENABLE = yes` in your `rules.mk` and make sure to press `NK_ON` to turn it on because `NKRO_ENABLE = yes` merely adds the possibility of switching to NKRO mode but it doesn't automatically switch to it. If you want to automatically switch, add `#define NKRO_DEFAULT_ON true` in your `config.h`. +To enable NKRO, add `NKRO_ENABLE = yes` in your `rules.mk` and make sure to press `NK_ON` to turn it on because `NKRO_ENABLE = yes` merely adds the possibility of switching to NKRO mode but it doesn't automatically switch to it. If you want to automatically switch, add `#define FORCE_NKRO` in your `config.h`. You may also need to adjust your layout, either in QMK or in Plover, if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys. ## Plover with Steno Protocol {#plover-with-steno-protocol} -Plover also understands the language of several steno machines. QMK can speak a couple of these languages: TX Bolt and GeminiPR. An example layout can be found in `splitography/keymaps/default`. +Plover also understands the language of several steno machines. QMK can speak a couple of these languages: TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`. When QMK speaks to Plover over a steno protocol, Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover. In this mode, Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard. ::: info -Due to hardware limitations, you might not be able to run both a virtual serial port and other features (mouse keys, NKRO, or MIDI support) at the same time. You will likely encounter a compile time error if this is the case. Disable those other features as necessary. +Note: Due to hardware limitations, you might not be able to run both a virtual serial port and mouse emulation at the same time. ::: ::: warning @@ -102,7 +94,7 @@ STENO_ENABLE = yes STENO_PROTOCOL = all ``` -If you want to switch protocols programmatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](../keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`. +If you want to switch protocols programatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](../keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`. The default protocol is Gemini PR but the last protocol used is stored in non-volatile memory so QMK will remember your choice between reboots of your keyboard — assuming that your keyboard features (emulated) EEPROM. @@ -164,7 +156,7 @@ At the end of this scenario given as an example, `chord` would have five bits se ## Keycode Reference {#keycode-reference} ::: info -TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both. +Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both. ::: |GeminiPR|TX Bolt|Steno Key| diff --git a/docs/features/tap_dance.md b/docs/features/tap_dance.md index d533e41aaa..3c4040db22 100644 --- a/docs/features/tap_dance.md +++ b/docs/features/tap_dance.md @@ -170,6 +170,20 @@ typedef struct { uint16_t held; } tap_dance_tap_hold_t; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + + switch (keycode) { + case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations + action = &tap_dance_actions[QK_TAP_DANCE_GET_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + } + return true; +} + void tap_dance_tap_hold_finished(tap_dance_state_t *state, void *user_data) { tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data; @@ -197,29 +211,12 @@ void tap_dance_tap_hold_reset(tap_dance_state_t *state, void *user_data) { } } -#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \ - { \ - .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, \ - .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), \ - } +#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \ + { .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), } tap_dance_action_t tap_dance_actions[] = { [CT_CLN] = ACTION_TAP_DANCE_TAP_HOLD(KC_COLN, KC_SCLN), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_action_t *action; - - switch (keycode) { - case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations - action = &tap_dance_actions[QK_TAP_DANCE_GET_INDEX(keycode)]; - if (!record->event.pressed && action->state.count && !action->state.finished) { - tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; - tap_code16(tap_hold->tap); - } - } - return true; -} ``` #### Example 4: 'Quad Function Tap-Dance' {#example-4} @@ -276,12 +273,12 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following: * How to figure out tap dance state: interrupted and pressed. * * Interrupted: If the state of a dance is "interrupted", that means that another key has been hit - * under the tapping term. This is typically indicative that you are trying to "tap" the key. + * under the tapping term. This is typically indicitive that you are trying to "tap" the key. * * Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term * has ended, but the key is still being pressed down. This generally means the key is being "held". * - * One thing that is currently not possible with qmk software in regards to tap dance is to mimic the "permissive hold" + * One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold" * feature. In general, advanced tap dances do not work well if they are used with commonly typed letters. * For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters. * @@ -293,7 +290,7 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following: * Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or * in a web form. So 'tab' would be a poor choice for a tap dance. * Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the - * letter 'p', the word 'pepper' would be quite frustrating to type. + * letter 'p', the word 'pepper' would be quite frustating to type. * * For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested * diff --git a/docs/features/wireless.md b/docs/features/wireless.md deleted file mode 100644 index 0d73ad3583..0000000000 --- a/docs/features/wireless.md +++ /dev/null @@ -1,58 +0,0 @@ -# Wireless / Bluetooth - -## Bluetooth Known Supported Hardware - -Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input. - -|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| -|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------| -|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 | -|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 | - -Not Supported Yet but possible: -* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514) -* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability. -* Sparkfun Bluetooth Mate -* HM-13 based boards - -### Adafruit BLE SPI Friend -Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines: -* `#define BLUEFRUIT_LE_RST_PIN D4` -* `#define BLUEFRUIT_LE_CS_PIN B4` -* `#define BLUEFRUIT_LE_IRQ_PIN E6` - -A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip. - - -## Bluetooth Rules.mk Options - -The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`. - -Add the following to your `rules.mk`: - -```make -BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = bluefruit_le # or rn42 -``` - -## Bluetooth Keycodes - -This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both. - -| Key | Aliases | Description | -|-----------------------------|-----------|-----------------------------------------------------------------------------------------------| -| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless | -| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | -| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | -| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** | -| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only | -| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** | -| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only | -| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** | diff --git a/docs/flashing.md b/docs/flashing.md index 29dc780aaf..798331eb23 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -53,7 +53,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr //#define QMK_LED E6 //#define QMK_SPEAKER C6 ``` -Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. +Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. @@ -209,7 +209,7 @@ To enable the additional features, add the following defines to your `config.h`: //#define QMK_SPEAKER C6 ``` -Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. +Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. @@ -345,39 +345,6 @@ Flashing sequence: 3. Flash a .bin file 4. Reset the device into application mode (may be done automatically) -## AT32 DFU - -All AT32 MCUs come preloaded with a factory bootloader that cannot be modified nor deleted. - -To ensure compatibility with the AT32-DFU bootloader, make sure this block is present in your `rules.mk`: - -```make -# Bootloader selection -BOOTLOADER = at32-dfu -``` - -Compatible flashers: - -* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line) - ``` - dfu-util -a 0 -d 2E3C:DF11 -s 0x8000000:leave -D - ``` - -Flashing sequence: - -1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOT` keycode - * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped - * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge -2. Wait for the OS to detect the device -3. Flash a .bin file -4. Reset the device into application mode (may be done automatically) - -### `make` Targets - -* `:dfu-util`: Waits until an AT32 bootloader device is available, and then flashes the firmware. -* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM. - ## tinyuf2 Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on F303/F401/F411. diff --git a/docs/getting_started_docker.md b/docs/getting_started_docker.md index 42322397b4..6e69b17d34 100644 --- a/docs/getting_started_docker.md +++ b/docs/getting_started_docker.md @@ -5,7 +5,6 @@ This project includes a Docker workflow that will allow you to build a new firmw ## Requirements The main prerequisite is a working `docker` or `podman` install. - * [Docker CE](https://docs.docker.com/install/#supported-platforms) * [Podman](https://podman.io/getting-started/installation) @@ -19,7 +18,6 @@ cd qmk_firmware ``` Run the following command to build a keymap: - ``` util/docker_build.sh : # For example: util/docker_build.sh planck/rev6:default @@ -34,8 +32,6 @@ util/docker_build.sh keyboard:keymap:target # For example: util/docker_build.sh planck/rev6:default:flash ``` -Note that mass storage bootloaders are not supported by the `flash` target. In this case you will have to manually copy the firmware file to the keyboard. - You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use: ``` @@ -50,13 +46,6 @@ By default docker or podman are automatically detected and docker is preferred o RUNTIME="podman" util/docker_build.sh keyboard:keymap:target ``` -If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS): - -``` -SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target -``` - - ## FAQ ### Why can't I flash on Windows/macOS diff --git a/docs/getting_started_github.md b/docs/getting_started_github.md index 4cc9978d3d..b8587dbb13 100644 --- a/docs/getting_started_github.md +++ b/docs/getting_started_github.md @@ -8,15 +8,15 @@ This guide assumes you're somewhat comfortable with running things at the comman Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork": -![Fork on GitHub](/8Toomz4.jpg) +![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg) If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button: -![Download from GitHub](/N1NYcSz.jpg) +![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg) And be sure to select "HTTPS", and select the link and copy it: -![HTTPS link](/eGO0ohO.jpg) +![HTTPS link](https://i.imgur.com/eGO0ohO.jpg) From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link: @@ -57,10 +57,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git Your changes now exist on your fork on GitHub - if you go back there (`https://github.com//qmk_firmware`), you can create a "New Pull Request" by clicking this button: -![New Pull Request](/DxMHpJ8.jpg) +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request": -![Create Pull Request](/Ojydlaj.jpg) +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :) diff --git a/docs/getting_started_introduction.md b/docs/getting_started_introduction.md index 4a44e0e700..9417351747 100644 --- a/docs/getting_started_introduction.md +++ b/docs/getting_started_introduction.md @@ -19,8 +19,8 @@ Within the folder `keyboards`, its subfolder `handwired` and its vendor and manu * `config.h`: The file that sets the default compile time options. Do not edit this file directly, instead use a keymap specific `config.h`. * `info.json`: The file used for setting layout for QMK Configurator. See [Configurator Support](reference_configurator_support) for more information. * `readme.md`: A brief overview of the keyboard. -* `.h`: This file is where the keyboard layout is defined against the keyboard's switch matrix. -* `.c`: This file is where you can find custom code for the keyboard. +* `.h`: This file is where the keyboard layout is defined against the keyboard's switch matrix. +* `.c`: This file is where you can find custom code for the keyboard. For more information on project structure, see [QMK Keyboard Guidelines](hardware_keyboard_guidelines). diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md index 54f915e444..59455adb30 100644 --- a/docs/getting_started_make_guide.md +++ b/docs/getting_started_make_guide.md @@ -1,8 +1,8 @@ # More Detailed `make` Instructions -The full syntax of the `make` command is `::`, where: +The full syntax of the `make` command is `::`, where: -* `` is the path of the keyboard, for example `planck` +* `` is the path of the keyboard, for example `planck` * Use `all` to compile all keyboards * Specify the path to compile a revision, for example `planck/rev4` or `planck/rev3` * If the keyboard doesn't have any folders, it can be left out diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 25be46fdb7..9aeee7512d 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -36,12 +36,12 @@ What you want to achieve is one leg from each switch being attached to the corre It is fairly simple to plan for an ortholinear keyboard (like a Planck). -![Example Planck matrix](/FRShcLD.png) +![Example Planck matrix](https://i.imgur.com/FRShcLD.png) Image from [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](https://www.keyboard-layout-editor.com). -![Example ISO matrix](/UlJ4ZDP.png) +![Example ISO matrix](https://i.imgur.com/UlJ4ZDP.png) Bear in mind that the number of rows plus the number of columns can not exceed the number of I/O pins on your controller. So the fullsize matrix shown above would be possible on a Proton C or Teensy++, but not on a regular Teensy or Pro Micro. @@ -51,14 +51,14 @@ Bear in mind that the number of rows plus the number of columns can not exceed t | :------------ |:-------------:| ------:| ------ | | Pro Micro* | ATmega32u4 | 20 | [link](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro#Teensy++_2.0) | | Teensy 2.0 | ATmega32u4 | 25 | [link](https://www.pjrc.com/teensy/pinout.html) | -| [QMK Proton C](https://qmk.fm/proton-c/) | STM32F303xC | 36 | [link 1](https://qmk.fm/proton-c-pinout.jpg), [2](https://deskthority.net/wiki/QMK_Proton_C) | +| [QMK Proton C](https://qmk.fm/proton-c/) | STM32F303xC | 36 | [link 1](https://i.imgur.com/RhtrAlc.png), [2](https://deskthority.net/wiki/QMK_Proton_C) | | Teensy++ 2.0 | AT90USB1286 | 46 | [link](https://www.pjrc.com/teensy/pinout.html#Teensy_2.0) | *Elite C is essentially the same as a Pro Micro with a USB-C instead of Micro-USB There are also a number of boards designed specifically for handwiring that mount directly to a small number of switches and offer pinouts for the rest. Though these are generally more expensive and may be more difficult to get hold of. -Postage board mini mounted in place +Postage board mini mounted in place | Board | Controller | # I/O | | :------------ |:-------------:| ------:| @@ -74,13 +74,13 @@ Established materials and techniques include: | Technique | Examples | Pros | Cons | Image | :-----------| :------- | :------ | :--- | :--- -| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | ![Stripped wire](/0GNIYY0.jpg) -| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](/mBe5vkL.jpg) -| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](/b4b7KDb.jpg) -| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](/aTnG8TV.jpg) -| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](/CnASmPo.jpg) -| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](/AvXZShD.jpg) -| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](/RFyNMlL.jpg) +| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | ![Stripped wire](https://i.imgur.com/0GNIYY0.jpg) +| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](https://i.imgur.com/mBe5vkL.jpg) +| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg) +| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](https://i.imgur.com/aTnG8TV.jpg) +| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) +| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](https://i.imgur.com/AvXZShD.jpg) +| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](https://i.imgur.com/RFyNMlL.jpg) Note that these methods can be combined. Prepare your lengths of wire before moving on to soldering. @@ -97,11 +97,11 @@ There are a lot of soldering guides and tips available elsewhere but here are so To ensure a strong solder joint you want a good amount of contact between the solder and the two pieces of metal you are connecting. A good way of doing this (though not required) is looping around pins or twisting wires together before applying solder. -Looped around rod +Looped around rod Looped diode leg If your diodes are on a packaging strip and need a bend in them (either the start of a loop or for connecting to its neighbour) this can easily done by bending it over something straight like the edge of a box, table, or ruler. This also helps keep track of the direction of the diode as all the bends will be on the same side. -Bent diode legs +Bent diode legs If your iron has temperature control, set it to 315ºC (600ºF). @@ -162,9 +162,9 @@ The pins you'll absolutely have to avoid, as with any controller, are: GND, VCC, Cut wires to the length of the distance from the a point on each column/row to the controller. You can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work. -Ribbon cable can be used to keep this extra tidy. You may also want to consider routing the wires beneath the existing columns/rows. +Ribbon cable can be used to keep this extra tidy. You may also want to consider routing the wires beneath the exisiting columns/rows. -Ribbon Cable +Ribbon Cable As you solder the wires to the controller make a note of which row/column is going to which pin on the controller as we'll use this data to setup the matrix when we create the firmware. @@ -188,7 +188,7 @@ qmk import-kbfirmware /path/to/export.json For example: ``` -$ qmk import-kbfirmware ~/Downloads/gh62.json +$ qmk import-kbfirmware ~/Downloads/gh62.json Ψ Importing gh62.json. ⚠ Support here is basic - Consider using 'qmk new-keyboard' instead @@ -227,16 +227,16 @@ If you've done all of these things, keep in mind that sometimes you might have h ## Finishing up -Once you have confirmed that the keyboard is working, if you have used a separate (non handwire specific) controller you will want to secure it in place. This can be done in many different ways e.g. hot glue, double sided sticky tape, 3D printed caddy, electrical tape. +Once you have confirmed that the keyboard is working, if you have used a seperate (non handwire specific) controller you will want to secure it in place. This can be done in many different ways e.g. hot glue, double sided sticky tape, 3D printed caddy, electrical tape. -If you found this fulfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/) +If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/) -There are a lot of possibilities inside the firmware - explore [the documentation](/) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help! +There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help! ## Links to Other Guides - [matt3o's step by step guide (BrownFox build)](https://deskthority.net/viewtopic.php?f=7&t=6050) also his [website](https://matt3o.com/hand-wiring-a-custom-keyboard/) and [video guide](https://www.youtube.com/watch?v=LVzpsjFWPP4) -- [Cribbit's "Modern hand wiring guide - stronger, cleaner, easier"](https://geekhack.org/index.php?topic=87689.0) +- [Cribbit's "Modern hand wiring guide - stronger, cleaner, easier"](https://geekhack.org/index.php?topic=87689.0) - [Sasha Solomon's "Building my first Keyboard"](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) - [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) - [Masterzen's "Handwired keyboard build log"](https://www.masterzen.fr/2018/12/16/handwired-keyboard-build-log-part-1/) diff --git a/docs/hardware_drivers.md b/docs/hardware_drivers.md index 40a25d9fa7..694d46971a 100644 --- a/docs/hardware_drivers.md +++ b/docs/hardware_drivers.md @@ -24,7 +24,7 @@ Support for WS2811/WS2812{a,b,c} LED's. For more information see the [RGB Light] ## IS31FL3731 -Support for up to 2 drivers. Each driver implements 2 charlieplex matrices to individually address LEDs using I2C. This allows up to 144 same color LEDs or 32 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](features/rgb_matrix) page. +Support for up to 2 drivers. Each driver impliments 2 charlieplex matrices to individually address LEDs using I2C. This allows up to 144 same color LEDs or 32 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](features/rgb_matrix) page. ## IS31FL3733 diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 0b8f35a373..de67fa3bc3 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -44,11 +44,7 @@ QMK uses sub-folders both for organization and to share code between revisions o qmk_firmware/keyboards/top_folder/sub_1/sub_2/sub_3/sub_4 ``` -If a sub-folder has a `keyboard.json` file it will be considered a compilable keyboard. It will be available in QMK Configurator and tested with `make all`. If you are using a folder to organize several keyboards from the same maker you should not have a `keyboard.json` file. - -::: tip -When configuring a keyboard with multiple revisions (like the `clueboard/66` example below), an `info.json` file at the top keyboard level (eg. `clueboard/66`) should be used for configuration shared between revisions. Then `keyboard.json` in each revision directory containing revision-specific configuration, and indicating a buildable keyboard. -::: +If a sub-folder has a `rules.mk` file it will be considered a compilable keyboard. It will be available in QMK Configurator and tested with `make all`. If you are using a folder to organize several keyboards from the same maker you should not have a `rules.mk` file. Example: @@ -56,49 +52,35 @@ Clueboard uses sub-folders for both purposes, organization and keyboard revision * [`qmk_firmware`](https://github.com/qmk/qmk_firmware/tree/master) * [`keyboards`](https://github.com/qmk/qmk_firmware/tree/master/keyboards) - * [`clueboard`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard) ← This is the organization folder, there's no `keyboard.json` file - * [`60`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/60) ← This is a compilable keyboard - it has a `keyboard.json` file - * [`66`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66) ← This is not a compilable keyboard - a revision must be specified + * [`clueboard`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard) ← This is the organization folder, there's no `rules.mk` file + * [`60`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/60) ← This is a compilable keyboard, it has a `rules.mk` file + * [`66`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66) ← This is also compilable- it uses `DEFAULT_FOLDER` to specify `rev3` as the default revision * [`rev1`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1) ← compilable: `make clueboard/66/rev1` * [`rev2`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev2) ← compilable: `make clueboard/66/rev2` - * [`rev3`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev3) ← compilable: `make clueboard/66/rev3` + * [`rev3`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev3) ← compilable: `make clueboard/66/rev3` or `make clueboard/66` ## Keyboard Folder Structure -Your keyboard should be located in `qmk_firmware/keyboards/` and the folder name should be your keyboard's name as described in the previous section. Inside this folder should be several files, some of which are optional: +Your keyboard should be located in `qmk_firmware/keyboards/` and the folder name should be your keyboard's name as described in the previous section. Inside this folder should be several files: * `readme.md` -* `keyboard.json` (or `info.json`) +* `info.json` * `config.h` * `rules.mk` -* `.c` -* `.h` +* `.c` +* `.h` ### `readme.md` All projects need to have a `readme.md` file that explains what the keyboard is, who made it and where it's available. If applicable, it should also contain links to more information, such as the maker's website. Please follow the [published template](documentation_templates#keyboard-readmemd-template). -### `keyboard.json`/`info.json` +### `info.json` -The `keyboard.json` file is necessary for your keyboard (or keyboard revision) to be considered a buildable keyboard. The same content is valid in both `info.json` and `keyboard.json`. For the available configuration options of this file, see the [reference page](reference_info_json). This file is also used by the [QMK API](https://github.com/qmk/qmk_api), and by the [QMK Configurator](https://config.qmk.fm/) to display a representation of the available layouts of your keyboard. - -Additionally, this is where layouts available on your keyboard are defined. If you only have a single layout, it should be named `LAYOUT`. When defining multiple layouts, you should have a base layout, named `LAYOUT_all`, that supports all possible switch positions in your matrix, even if that layout is impossible to build physically. This is the layout that should be used in the `default` keymap. You should then have additional keymaps named `default_` that configure keymaps for the other layouts. Layout macro names are entirely lowercase, except for the prefix of `LAYOUT`. - -As an example, if you have a 60% PCB that supports ANSI and ISO, you might define the following layouts and keymaps: - -| Layout Name | Keymap Name | Description | -|-------------|--------------|------------------------------------------| -| LAYOUT_all | default | A layout that supports both ISO and ANSI | -| LAYOUT_ansi | default_ansi | An ANSI layout | -| LAYOUT_iso | default_iso | An ISO layout | - -::: tip -Providing only `LAYOUT_all` is invalid, as is providing a `LAYOUT` when multiple layouts are present. -::: +This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. You can also set metadata here. For more information see the [reference page](reference_info_json). ### `config.h` -Some projects will need to have a `config.h` that configures parameters that are not possible to be set in `keyboard.json`. This is not a required file. +All projects need to have a `config.h` file that sets things like the matrix size, product name, USB VID/PID, description and other settings. In general, use this file to set essential information and defaults for your keyboard that will always work. The `config.h` files can also be placed in sub-folders, and the order in which they are read is as follows: @@ -129,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue - // iOS devices need less than 100 + // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif @@ -156,7 +138,7 @@ If you define options using `post_config.h` as in the above example, you should ### `rules.mk` -This file is typically used to configure hardware drivers (eg. pointing device), or to include additional C files in compilation. This is not a required file. +The presence of this file means that the folder is a keyboard target and can be used in `make` commands. This is where you setup the build environment for your keyboard and configure the default set of features. The `rules.mk` file can also be placed in a sub-folder, and its reading order is as follows: @@ -203,9 +185,9 @@ The `post_rules.mk` file can interpret `features` of a keyboard-level before `co See `build_keyboard.mk` and `common_features.mk` for more details. ::: -### `.c` +### `` -This file should contain C code required for the functionality of your keyboard, for example hardware initialisation code, OLED display code, and so on. This file should only contain code necessary for the keyboard to work, and *not* things that should be left to the end user to configure in their keymap. This file is automatically included in compilation if it exists. This is not a required file. +This is where you will write custom code for your keyboard. Typically you will write code to initialize and interface with the hardware in your keyboard. If your keyboard consists of only a key matrix with no LEDs, speakers, or other auxiliary hardware this file can be blank. The following functions are typically defined in this file: @@ -214,13 +196,33 @@ The following functions are typically defined in this file: * `bool process_record_kb(uint16_t keycode, keyrecord_t *record)` * `bool led_update_kb(led_t led_state)` -### `.h` +### `` -This file can contain function prototypes for custom functions and other header file code utilised by `.c`. The `.c` file should include this file. This is not a required file. +This file is used to define the matrix for your keyboard. You should define at least one C macro which translates an array into a matrix representing the physical switch matrix for your keyboard. If it's possible to build your keyboard with multiple layouts you should define additional macros. + +If you have only a single layout you should call this macro `LAYOUT`. + +When defining multiple layouts you should have a base layout, named `LAYOUT_all`, that supports all possible switch positions on your matrix, even if that layout is impossible to build physically. This is the macro you should use in your `default` keymap. You should then have additional keymaps named `default_` that use your other layout macros. This will make it easier for people to use the layouts you define. + +Layout macro names are entirely lowercase, except for the word `LAYOUT` at the front. + +As an example, if you have a 60% PCB that supports ANSI and ISO you might define the following layouts and keymaps: + +| Layout Name | Keymap Name | Description | +|-------------|-------------|-------------| +| LAYOUT_all | default | A layout that supports both ISO and ANSI | +| LAYOUT_ansi | default_ansi | An ANSI layout | +| LAYOUT_iso | default_iso | An ISO layout | + +::: tip +Providing only `LAYOUT_all` is invalid - especially when implementing the additional layouts within 3rd party tooling. +::: ## Image/Hardware Files -In an effort to keep the repo size down we do not accept binary files of any format, with few exceptions. Hosting them elsewhere (such as ) and linking them in the `readme.md` is preferred. Hardware files such as plates, cases, and PCBs can be published in a personal repository or elsewhere, and linked to by your keyboard's `readme.md` file. +In an effort to keep the repo size down we're no longer accepting binary files of any format, with few exceptions. Hosting them elsewhere (such as ) and linking them in the `readme.md` is preferred. + +Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm repo](https://github.com/qmk/qmk.fm) and they will be made available on [qmk.fm](https://qmk.fm). Downloadable files are stored in `//` (name follows the same format as above) which are served at `https://qmk.fm//`, and pages are generated from `/_pages//` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` folder for an example. ## Keyboard Defaults @@ -230,6 +232,8 @@ Given the amount of functionality that QMK exposes it's very easy to confuse new [Magic Keycodes](keycodes_magic) and [Command](features/command) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. +By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in. + If your keyboard does not have 2 shift keys you should provide a working default for `IS_COMMAND`, even when you have set `COMMAND_ENABLE = no`. This will give your users a default to conform to if they do enable Command. ## Custom Keyboard Programming @@ -238,7 +242,7 @@ As documented on [Customizing Functionality](custom_quantum_functions) you can d ## Non-Production/Handwired Projects -We're happy to accept any project that uses QMK, including handwired ones, but we have a separate `/keyboards/handwired/` folder for them, so the main `/keyboards/` folder doesn't get overcrowded. If a prototype project becomes a production project at some point in the future, we'd be happy to move it to the main `/keyboards/` folder! +We're happy to accept any project that uses QMK, including prototypes and handwired ones, but we have a separate `/keyboards/handwired/` folder for them, so the main `/keyboards/` folder doesn't get overcrowded. If a prototype project becomes a production project at some point in the future, we'd be happy to move it to the main `/keyboards/` folder! ## Warnings as Errors diff --git a/docs/keycodes.md b/docs/keycodes.md index c540a7ce7f..9038c2b6d7 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -176,11 +176,11 @@ See also: [Basic Keycodes](keycodes_basic) |`KC_LEFT_CTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ | |`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ | |`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ | -|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Super key) |✔ |✔ |✔ | +|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |✔ |✔ |✔ | |`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control |✔ |✔ |✔ | |`KC_RIGHT_SHIFT` |`KC_RSFT` |Right Shift |✔ |✔ |✔ | |`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) |✔ |✔ |✔ | -|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Super key) |✔ |✔ |✔ | +|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ | |`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔3|✔ | |`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔3|✔ | |`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔3|✔ | @@ -203,8 +203,8 @@ See also: [Basic Keycodes](keycodes_basic) |`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ | |`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ | |`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ | -|`KC_MEDIA_FAST_FORWARD` |`KC_MFFD` |Fast Forward |✔ |✔5|✔ | -|`KC_MEDIA_REWIND` |`KC_MRWD` |Rewind |✔6|✔5|✔ | +|`KC_MEDIA_FAST_FORWARD` |`KC_MFFD` |Next Track |✔ |✔5|✔ | +|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔6|✔5|✔ | |`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ | |`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ | |`KC_CONTROL_PANEL` |`KC_CPNL` |Open Control Panel |✔ | | | @@ -290,27 +290,15 @@ See also: [Backlighting](features/backlight) | `QK_BACKLIGHT_DOWN` | `BL_DOWN` | Decrease the backlight level | | `QK_BACKLIGHT_TOGGLE_BREATHING` | `BL_BRTG` | Toggle backlight breathing | -## Wireless/Bluetooth {#bluetooth} +## Bluetooth {#bluetooth} -See also: [Wireless](features/wireless) +See also: [Bluetooth](features/bluetooth) -| Key | Aliases | Description | -|-----------------------------|-----------|-----------------------------------------------------------------------------------------------| -| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless | -| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | -| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | -| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** | -| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only | -| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** | -| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only | -| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** | -| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** | +|Key |Aliases |Description | +|---------------------|---------|----------------------------------------------| +|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth| +|`QK_OUTPUT_USB` |`OU_USB` |USB only | +|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only | ## Caps Word {#caps-word} @@ -387,23 +375,15 @@ See also: [Key Lock](features/key_lock) |---------|--------------------------------------------------------------| |`QK_LOCK`|Hold down the next key pressed, until the key is pressed again| -## Layer Lock {#layer-lock} - -See also: [Layer Lock](features/layer_lock) - -|Key |Aliases |Description | -|---------------|---------|----------------------------------| -|`QK_LAYER_LOCK`|`QK_LLCK`|Locks or unlocks the highest layer| - ## Layer Switching {#layer-switching} See also: [Layer Switching](feature_layers#switching-and-toggling-layers) |Key |Description | |----------------|----------------------------------------------------------------------------------| -|`DF(layer)` |Set the base (default) layer until the keyboard loses power | -|`PDF(layer)` |Set the base (default) layer in EEPROM | +|`DF(layer)` |Set the base (default) layer | |`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| +|`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](one_shot_keys) for details. | |`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. Where `mod` is a mods_bit. Mods can be viewed [here](mod_tap). Example Implementation: `LM(LAYER_1, MOD_LALT)`| |`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped | |`TG(layer)` |Toggle `layer` on or off | @@ -657,74 +637,58 @@ See also: [Mouse Keys](features/mouse_keys) See also: [Modifier Keys](feature_advanced_keycodes#modifier-keys) -|Key |Aliases |Description | -|----------|-------------------------------|-------------------------------------------------------------------| -|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | -|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | -|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | -|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | -|`LCS(kc)` | |Hold Left Control and Left Shift and press `kc` | -|`LCA(kc)` | |Hold Left Control and Left Alt and press `kc` | -|`LCG(kc)` | |Hold Left Control and Left GUI and press `kc` | -|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | -|`LSG(kc)` | |Hold Left Shift and Left GUI and press `kc` | -|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | -|`LCSG(kc)`| |Hold Left Control, Left Shift and Left GUI and press `kc` | -|`LCAG(kc)`| |Hold Left Control, Left Alt and Left GUI and press `kc` | -|`LSAG(kc)`| |Hold Left Shift, Left Alt and Left GUI and press `kc` | -|`RCTL(kc)`| |Hold Right Control and press `kc` | -|`RSFT(kc)`| |Hold Right Shift and press `kc` | -|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | -|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` | -|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | -|`RCA(kc)` | |Hold Right Control and Right Alt and press `kc` | -|`RCG(kc)` | |Hold Right Control and Right GUI and press `kc` | -|`RSA(kc)` | |Hold Right Shift and Right Alt and press `kc` | -|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | -|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | -|`RCSG(kc)`| |Hold Right Control, Right Shift and Right GUI and press `kc` | -|`RCAG(kc)`| |Hold Right Control, Right Alt and Right GUI and press `kc` | -|`RSAG(kc)`| |Hold Right Shift, Right Alt and Right GUI and press `kc` | -|`MEH(kc)` | |Hold Left Control, Left Shift and Left Alt and press `kc` | -|`HYPR(kc)`| |Hold Left Control, Left Shift, Left Alt and Left GUI and press `kc`| -|`KC_MEH` | |Left Control, Left Shift and Left Alt | -|`KC_HYPR` | |Left Control, Left Shift, Left Alt and Left GUI | +|Key |Aliases |Description | +|----------|----------------------------------|------------------------------------------------------| +|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | +|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | +|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | +|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` | +|`RCTL(kc)`| |Hold Right Control and press `kc` | +|`RSFT(kc)`| |Hold Right Shift and press `kc` | +|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt (AltGr) and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` | +|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and Left GUI and press `kc` | +|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | +|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | +|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | +|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | +|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | +|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | +|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | +|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | +|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | +|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | +|`KC_MEH` | |Left Control, Shift and Alt | +|`KC_HYPR` | |Left Control, Shift, Alt and GUI | ## Mod-Tap Keys {#mod-tap-keys} See also: [Mod-Tap](mod_tap) -|Key |Aliases |Description | -|-------------|-----------------------------------------------------------------|---------------------------------------------------------------------------| -|`MT(mod, kc)`| |`mod` when held, `kc` when tapped | -|`LCTL_T(kc)` |`CTL_T(kc)` |Left Control when held, `kc` when tapped | -|`LSFT_T(kc)` |`SFT_T(kc)` |Left Shift when held, `kc` when tapped | -|`LALT_T(kc)` |`ALT_T(kc)`, `LOPT_T(kc)`, `OPT_T(kc)` |Left Alt when held, `kc` when tapped | -|`LGUI_T(kc)` |`GUI_T(kc)`, `LCMD_T(kc)`, `LWIN_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | -|`LCS_T(kc)` | |Left Control and Left Shift when held, `kc` when tapped | -|`LCA_T(kc)` | |Left Control and Left Alt when held, `kc` when tapped | -|`LCG_T(kc)` | |Left Control and Left GUI when held, `kc` when tapped | -|`LSA_T(kc)` | |Left Shift and Left Alt when held, `kc` when tapped | -|`LSG_T(kc)` | |Left Shift and Left GUI when held, `kc` when tapped | -|`LAG_T(kc)` | |Left Alt and Left GUI when held, `kc` when tapped | -|`LCSG_T(kc)` | |Left Control, Left Shift and Left GUI when held, `kc` when tapped | -|`LCAG_T(kc)` | |Left Control, Left Alt and Left GUI when held, `kc` when tapped | -|`LSAG_T(kc)` | |Left Shift, Left Alt and Left GUI when held, `kc` when tapped | -|`RCTL_T(kc)` | |Right Control when held, `kc` when tapped | -|`RSFT_T(kc)` | |Right Shift when held, `kc` when tapped | -|`RALT_T(kc)` |`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt when held, `kc` when tapped | -|`RGUI_T(kc)` |`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | -|`RCS_T(kc)` | |Right Control and Right Shift when held, `kc` when tapped | -|`RCA_T(kc)` | |Right Control and Right Alt when held, `kc` when tapped | -|`RCG_T(kc)` | |Right Control and Right GUI when held, `kc` when tapped | -|`RSA_T(kc)` | |Right Shift and Right Alt when held, `kc` when tapped | -|`RSG_T(kc)` | |Right Shift and Right GUI when held, `kc` when tapped | -|`RAG_T(kc)` | |Right Alt and Right GUI when held, `kc` when tapped | -|`RCSG_T(kc)` | |Right Control, Right Shift and Right GUI when held, `kc` when tapped | -|`RCAG_T(kc)` | |Right Control, Right Alt and Right GUI when held, `kc` when tapped | -|`RSAG_T(kc)` | |Right Shift, Right Alt and Right GUI when held, `kc` when tapped | -|`MEH_T(kc)` | |Left Control, Left Shift and Left Alt when held, `kc` when tapped | -|`HYPR_T(kc)` | |Left Control, Left Shift, Left Alt and Left GUI when held, `kc` when tapped| +|Key |Aliases |Description | +|-------------|-----------------------------------------------------------------|--------------------------------------------------------------| +|`MT(mod, kc)`| |`mod` when held, `kc` when tapped | +|`LCTL_T(kc)` |`CTL_T(kc)` |Left Control when held, `kc` when tapped | +|`LSFT_T(kc)` |`SFT_T(kc)` |Left Shift when held, `kc` when tapped | +|`LALT_T(kc)` |`LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` |Left Alt when held, `kc` when tapped | +|`LGUI_T(kc)` |`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | +|`RCTL_T(kc)` | |Right Control when held, `kc` when tapped | +|`RSFT_T(kc)` | |Right Shift when held, `kc` when tapped | +|`RALT_T(kc)` |`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt (AltGr) when held, `kc` when tapped | +|`RGUI_T(kc)` |`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | +|`LSG_T(kc)` |`SGUI_T(kc)`, `SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LAG_T(kc)` | |Left Alt and GUI when held, `kc` when tapped | +|`RSG_T(kc)` | |Right Shift and GUI when held, `kc` when tapped | +|`RAG_T(kc)` | |Right Alt and GUI when held, `kc` when tapped | +|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | +|`LSA_T(kc)` | |Left Shift and Left Alt when held, `kc` when tapped | +|`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped | +|`RCS_T(kc)` | |Right Control and Right Shift when held, `kc` when tapped | +|`LCAG_T(kc)` | |Left Control, Alt and GUI when held, `kc` when tapped | +|`RCAG_T(kc)` | |Right Control, Alt and GUI when held, `kc` when tapped | +|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | +|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped | +|`HYPR_T(kc)` |`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| ## Tapping Term Keys {#tapping-term-keys} @@ -764,25 +728,23 @@ See also: [RGB Lighting](features/rgblight) |`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) | |`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) | -## RGB Matrix {#rgb-matrix} +## RGB Matrix Lighting {#rgb-matrix-lighting} -See also: [RGB Matrix](features/rgb_matrix) +See also: [RGB Matrix Lighting](features/rgb_matrix) -|Key |Aliases |Description | -|-------------------------------|---------|-----------------------------------| -|`QK_RGB_MATRIX_ON` |`RM_ON` |Turn on RGB Matrix | -|`QK_RGB_MATRIX_OFF` |`RM_OFF` |Turn off RGB Matrix | -|`QK_RGB_MATRIX_TOGGLE` |`RM_TOGG`|Toggle RGB Matrix on or off | -|`QK_RGB_MATRIX_MODE_NEXT` |`RM_NEXT`|Cycle through animations | -|`QK_RGB_MATRIX_MODE_PREVIOUS` |`RM_PREV`|Cycle through animations in reverse| -|`QK_RGB_MATRIX_HUE_UP` |`RM_HUEU`|Cycle through hue | -|`QK_RGB_MATRIX_HUE_DOWN` |`RM_HUED`|Cycle through hue in reverse | -|`QK_RGB_MATRIX_SATURATION_UP` |`RM_SATU`|Increase the saturation | -|`QK_RGB_MATRIX_SATURATION_DOWN`|`RM_SATD`|Decrease the saturation | -|`QK_RGB_MATRIX_VALUE_UP` |`RM_VALU`|Increase the brightness level | -|`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | -|`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | -|`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +|Key |Aliases |Description | +|-------------------|----------|--------------------------------------------------------------------------------------| +|`RGB_TOG` | |Toggle RGB lighting on or off | +|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held | +|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held | +|`RGB_HUI` | |Increase hue, decrease hue when Shift is held | +|`RGB_HUD` | |Decrease hue, increase hue when Shift is held | +|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held | +|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held | +|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held | +|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held | +|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held| +|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held| ## US ANSI Shifted Symbols {#us-ansi-shifted-symbols} @@ -816,41 +778,13 @@ See also: [US ANSI Shifted Symbols](keycodes_us_ansi_shifted) See also: [One Shot Keys](one_shot_keys) -|Key |Aliases |Description | -|--------------------|---------|---------------------------------------------------------------------| -|`QK_ONE_SHOT_TOGGLE`|`OS_TOGG`|Toggles One Shot keys status | -|`QK_ONE_SHOT_ON` |`OS_ON` |Turns One Shot keys on | -|`QK_ONE_SHOT_OFF` |`OS_OFF` |Turns One Shot keys off | -|`OSL(layer)` | |Switch to `layer` for one keypress | -|`OSM(mod)` | |Hold `mod` for one keypress | -|`OS_LCTL` | |Hold Left Control for one keypress | -|`OS_LSFT` | |Hold Left Shift for one keypress | -|`OS_LALT` | |Hold Left Alt for one keypress | -|`OS_LGUI` | |Hold Left GUI for one keypress | -|`OS_LCS` | |Hold Left Control and Left Shift for one keypress | -|`OS_LCA` | |Hold Left Control and left Alt for one keypress | -|`OS_LCG` | |Hold Left Control and Left GUI for one keypress | -|`OS_LSA` | |Hold Left Shift and Left Alt for one keypress | -|`OS_LSG` | |Hold Left Shift and Left GUI for one keypress | -|`OS_LAG` | |Hold Left Alt and Left GUI for one keypress | -|`OS_LCSG` | |Hold Left Control, Left Shift and Left GUI for one keypress | -|`OS_LCAG` | |Hold Left Control, Left Alt and Left GUI for one keypress | -|`OS_LSAG` | |Hold Left Shift, Left Alt and Left GUI for one keypress | -|`OS_RCTL` | |Hold Right Control for one keypress | -|`OS_RSFT` | |Hold Right Shift for one keypress | -|`OS_RALT` | |Hold Right Alt for one keypress | -|`OS_RGUI` | |Hold Right GUI for one keypress | -|`OS_RCS` | |Hold Right Control and Right Shift for one keypress | -|`OS_RCA` | |Hold Right Control and Right Alt for one keypress | -|`OS_RCG` | |Hold Right Control and Right GUI for one keypress | -|`OS_RSA` | |Hold Right Shift and Right Alt for one keypress | -|`OS_RSG` | |Hold Right Shift and Right GUI for one keypress | -|`OS_RAG` | |Hold Right Alt and Right GUI for one keypress | -|`OS_RCSG` | |Hold Right Control, Right Shift and Right GUI for one keypress | -|`OS_RCAG` | |Hold Right Control, Right Alt and Right GUI for one keypress | -|`OS_RSAG` | |Hold Right Shift, Right Alt and Right GUI for one keypress | -|`OS_MEH` | |Hold Left Control, Left Shift and Left Alt for one keypress | -|`OS_HYPR` | |Hold Left Control, Left Shift, Left Alt and Left GUI for one keypress| +|Key |Aliases |Description | +|--------------------|---------|----------------------------------| +|`OSM(mod)` | |Hold `mod` for one keypress | +|`OSL(layer)` | |Switch to `layer` for one keypress| +|`QK_ONE_SHOT_TOGGLE`|`OS_TOGG`|Toggles One Shot keys status | +|`QK_ONE_SHOT_ON` |`OS_ON` |Turns One Shot keys on | +|`QK_ONE_SHOT_OFF` |`OS_OFF` |Turns One Shot keys off | ## Programmable Button Support {#programmable-button} diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md index 8b0e1d694d..6ff422f89b 100644 --- a/docs/keycodes_basic.md +++ b/docs/keycodes_basic.md @@ -108,16 +108,16 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07 ## Modifiers -|Key |Aliases |Description | -|----------------|-------------------------------|-------------------------------------| -|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control | -|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift | -|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) | -|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Super key) | -|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control | -|`KC_RIGHT_SHIFT`|`KC_RSFT` |Right Shift | -|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) | -|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Super key)| +|Key |Aliases |Description | +|----------------|-------------------------------|------------------------------------| +|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control | +|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift | +|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) | +|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) | +|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control | +|`KC_RIGHT_SHIFT`|`KC_RSFT` |Right Shift | +|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) | +|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)| ## International @@ -219,8 +219,8 @@ Some of these keycodes may behave differently depending on the OS. For example, |`KC_WWW_STOP` |`KC_WSTP`|Browser Stop | |`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh | |`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites | -|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Fast Forward | -|`KC_MEDIA_REWIND` |`KC_MRWD`|Rewind | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track | +|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track | |`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up | |`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down | |`KC_CONTROL_PANEL` |`KC_CPNL`|Open Control Panel | diff --git a/docs/license_violations.md b/docs/license_violations.md deleted file mode 100644 index 0b152f6960..0000000000 --- a/docs/license_violations.md +++ /dev/null @@ -1,105 +0,0 @@ -# License Violations - -QMK Firmware has seen its fair share of license violations, which hurts the community and frustrates the QMK maintainers. - -Typical non-compliance includes: - -* Not providing any source code -* Providing "crippled" source code, such as a wired-only firmware for a wireless-capable board - -Boards from vendors who don't provide source code are proving to be a significant time sink as the QMK team and other support helpers volunteer their time trying to determine which board someone has before they can help -- and in these cases they can't help. Occasionally this is followed by abuse; something that QMK and its volunteers should not be subjected to, rather redirected to the vendor in question. - -The QMK team now actively directs support requests back to each vendor - vendors must provide their own product support for their boards. The QMK team are volunteers, the vendor must not expect the team to act as their support staff. - -## Offending Vendors - -The QMK team cannot tell you which boards you should or should not purchase, but please consider the lack of license compliance from the following vendors before making your decision. If you wish to look at the boards upstream QMK Firmware currently supports, you can search [here](https://browse.qmk.fm/). - -If you own a board from one of the following vendors already, consider asking them for the equivalent QMK source code if it's not already available. With enough customers demanding corresponding source code, vendors may start to change their policies. - -| Vendor | Reason | -|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Ajazz | Selling tri-mode boards based on QMK without sources. | -| Alpaca / Apos | Selling wireless boards with "open" source code, but linking against closed-source wireless libraries. Crippled source code already unknowingly merged to QMK. | -| Attack Shark | Selling tri-mode boards based on QMK without sources. (Clones of Ajazz?) | -| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. | -| CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | -| ColorReco | Selling tri-mode boards based on QMK without sources. | -| CrossDIY | Selling wired boards based on QMK without sources. | -| Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | -| Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | -| Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | -| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | -| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | -| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. | -| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | -| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | -| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | -| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | -| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | -| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided | -| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | -| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Riccks | Selling tri-mode boards based on QMK without sources. | -| Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | -| Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | -| Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | -| TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | -| Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | -| XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. | -| Yunzii | Selling tri-mode boards based on QMK without sources, just `via.json` provided. Refuses to release sources due to proprietary wireless driver, in direct violation of the GPL. | -| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | - -::: danger Violations -Links are not provided above as the QMK team does not wish to inadvertently promote purchases of boards in violation of QMK's license. -::: - -## Licensing - -QMK Firmware's license requires full disclosure of source code for any firmware which is based on QMK. This includes any of the following scenarios: - -* Use of public QMK Firmware, but with "closed source" privately-held board definitions -* Vendor-customised QMK Firmware, which the vendor keeps private for building their own boards -* Any other non-QMK firmware which includes portions of QMK Firmware, such as adaptation of `via.c` into any other non-QMK firmware, even if used as a reference when translated to another programming language. - -As per the GPL license requirements, vendors must provide entire source code for the as-shipped firmware. - -QMK has traditionally been lenient with this clause -- providing source code to the QMK community is necessary but reproducing the exact build may not be possible. QMK has required functionally-equivalent source code to be made available. In rare cases exact code may be requested; vendors must keep copies regardless. - -At minimum, vendors must provide the source code through some distribution mechanism. This could potentially be an clearly available downloadable copy of the code online, a fork of QMK Firmware, or even a DVD accompanying the product in the box. - -If sources are unable to be provided in a timely fashion, QMK may revoke the vendor's license, effectively rendering them unable to leverage QMK. - -Vendors choosing to keep things closed-source because of a desire to have a "competitive edge" compared to other vendors is unacceptable to both QMK and the community, and is a breach of the QMK license. There's no reason to do so; any new or interesting vendor-specific feature will be quickly replicated by other vendors or the community anyway. - -## QMK PR Considerations - -Vendors who submit PRs to QMK Firmware whilst not providing full sources for all of their license-violating boards will be put on hold until source code for all violating boards is provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright. - -Submitting crippled source code in order to attain a merge into QMK Firmware to pave the way for VIA support is unacceptable. This includes submitting a wired-only firmware for a wireless-capable board, or any other PR which does not include key features as-advertised. - -Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired and wireless) is an unacceptable scenario as this creates confusion for support. Many customers have flashed boards with the wrong firmware, which could have been avoided if vendors were obvious about their board identification mechanisms. - -If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past. - -PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation. - -## Detection - -If the QMK team identifies or is informed of a license violation from a vendor: - -* Any current and future PRs for that vendor will be indefinitely put on hold, preventing merge into QMK Firmware, thus preventing any out-of-the-box VIA support -* Any existing keyboards from the vendor may be removed from QMK Firmware -* Vendors will be added to the _offending vendors_ list above - -Repeated violations may result in that vendor being disallowed from contributing the QMK in its entirety. In the worst case, the QMK team may choose to revoke a vendor's license to use QMK Firmware outright. - -## Remediation - -Vendors must provide fully-featured source code for each of their identified violations, matching the feature capabilities of their as-shipped products. This will usually be in their own fork of QMK Firmware while awaiting a merge into upstream. - -Once all identified violations have been remediated, current and future PRs will no longer be on hold and the vendor will be removed from the offending vendors list above. diff --git a/docs/mod_tap.md b/docs/mod_tap.md index 67922c0915..37c2ba3473 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -2,18 +2,18 @@ The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down. -The modifiers (`mod`) argument to the `MT()` macro are prefixed with `MOD_`, not `KC_`: +The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`: |Modifier |Description | |----------|----------------------------------------| |`MOD_LCTL`|Left Control | |`MOD_LSFT`|Left Shift | |`MOD_LALT`|Left Alt | -|`MOD_LGUI`|Left GUI (Windows/Command/Super key) | +|`MOD_LGUI`|Left GUI (Windows/Command/Meta key) | |`MOD_RCTL`|Right Control | |`MOD_RSFT`|Right Shift | |`MOD_RALT`|Right Alt (AltGr) | -|`MOD_RGUI`|Right GUI (Windows/Command/Super key) | +|`MOD_RGUI`|Right GUI (Windows/Command/Meta key) | |`MOD_HYPR`|Hyper (Left Control, Shift, Alt and GUI)| |`MOD_MEH` |Meh (Left Control, Shift, and Alt) | @@ -27,38 +27,29 @@ This key would activate Left Control and Left Shift when held, and send Escape w For convenience, QMK includes some Mod-Tap shortcuts to make common combinations more compact in your keymap: -|Key |Aliases |Description | -|------------|-----------------------------------------------------------------|---------------------------------------------------------------------------------------| -|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | -|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | -|`LALT_T(kc)`|`ALT_T(kc)`, `LOPT_T(kc)`, `OPT_T(kc)` |Left Alt when held, `kc` when tapped | -|`LGUI_T(kc)`|`GUI_T(kc)`, `LCMD_T(kc)`, `LWIN_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | -|`LCS_T(kc)` | |Left Control and Left Shift when held, `kc` when tapped | -|`LCA_T(kc)` | |Left Control and Left Alt when held, `kc` when tapped | -|`LCG_T(kc)` | |Left Control and Left GUI when held, `kc` when tapped | -|`LSA_T(kc)` | |Left Shift and Left Alt when held, `kc` when tapped | -|`LSG_T(kc)` | |Left Shift and Left GUI when held, `kc` when tapped | -|`LAG_T(kc)` | |Left Alt and Left GUI when held, `kc` when tapped | -|`LCSG_T(kc)`| |Left Control, Left Shift and Left GUI when held, `kc` when tapped | -|`LCAG_T(kc)`| |Left Control, Left Alt and Left GUI when held, `kc` when tapped | -|`LSAG_T(kc)`| |Left Shift, Left Alt and Left GUI when held, `kc` when tapped | -|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped | -|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped | -|`RALT_T(kc)`|`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt when held, `kc` when tapped | -|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | -|`RCS_T(kc)` | |Right Control and Right Shift when held, `kc` when tapped | -|`RCA_T(kc)` | |Right Control and Right Alt when held, `kc` when tapped | -|`RCG_T(kc)` | |Right Control and Right GUI when held, `kc` when tapped | -|`RSA_T(kc)` | |Right Shift and Right Alt when held, `kc` when tapped | -|`RSG_T(kc)` | |Right Shift and Right GUI when held, `kc` when tapped | -|`RAG_T(kc)` | |Right Alt and Right GUI when held, `kc` when tapped | -|`RCSG_T(kc)`| |Right Control, Right Shift and Right GUI when held, `kc` when tapped | -|`RCAG_T(kc)`| |Right Control, Right Alt and Right GUI when held, `kc` when tapped | -|`RSAG_T(kc)`| |Right Shift, Right Alt and Right GUI when held, `kc` when tapped | -|`MEH_T(kc)` | |Left Control, Left Shift and Left Alt when held, `kc` when tapped | -|`HYPR_T(kc)`| |Left Control, Left Shift, Left Alt and Left GUI when held, `kc` when tapped1| - -1. More information on the Hyper key can be found on [this blog post by Brett Terpstra](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/). +|Key |Aliases |Description | +|------------|-----------------------------------------------------------------|--------------------------------------------------------------| +|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | +|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | +|`LALT_T(kc)`|`LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` |Left Alt when held, `kc` when tapped | +|`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped | +|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped | +|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped | +|`RALT_T(kc)`|`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt when held, `kc` when tapped | +|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | +|`LSG_T(kc)` |`SGUI_T(kc)`, `SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LAG_T(kc)` | |Left Alt and GUI when held, `kc` when tapped | +|`RSG_T(kc)` | |Right Shift and GUI when held, `kc` when tapped | +|`RAG_T(kc)` | |Right Alt and GUI when held, `kc` when tapped | +|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | +|`LSA_T(kc)` | |Left Shift and Alt when held, `kc` when tapped | +|`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped | +|`RCS_T(kc)` | |Right Control and Right Shift when held, `kc` when tapped | +|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped | +|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped | +|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | +|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped | +|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| ## Caveats diff --git a/docs/newbs.md b/docs/newbs.md index 95cde67f0c..64593cbad1 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -4,7 +4,7 @@ Your computer keyboard has a processor inside of it, similar to the one inside y QMK tries to put a lot of power into your hands by making easy things easy, and hard things possible. You don't have to know how to program to create powerful keymaps — you only have to follow a few simple syntax rules. -Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://browse.qmk.fm/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. +Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://qmk.fm/keyboards/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. ::: tip Is This Guide For Me? If the thought of programming intimidates you, please [take a look at our online GUI](newbs_building_firmware_configurator) instead. diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index 82442b7adc..f3afd6a896 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -33,7 +33,7 @@ qmk new-keymap If you did not configure your environment, or you have multiple keyboards, you can specify a keyboard name: ```sh -qmk new-keymap -kb +qmk new-keymap -kb ``` Look at the output from that command, you should see something like this: @@ -42,7 +42,7 @@ Look at the output from that command, you should see something like this: Ψ Created a new keymap called in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/. ``` -This is the location of your new keymap file. Your keyboards default keymap file may be a `.json` file or a `.c` file. If your keymap is a `.json` file it can be converted to a `.c` file using QMK's [`json2c`](cli_commands#qmk-json2c) utility. +This is the location of your new `keymap.c` file. ## Open `keymap.c` In Your Favorite Text Editor diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md index 6d441311dc..85522e405c 100644 --- a/docs/newbs_building_firmware_configurator.md +++ b/docs/newbs_building_firmware_configurator.md @@ -1,6 +1,6 @@ # QMK Configurator -[![QMK Configurator Screenshot](/anw9cOL.png)](https://config.qmk.fm/) +[![QMK Configurator Screenshot](https://i.imgur.com/anw9cOL.png)](https://config.qmk.fm/) The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files. diff --git a/docs/newbs_external_userspace.md b/docs/newbs_external_userspace.md index 9f818f46f9..fdc998c37a 100644 --- a/docs/newbs_external_userspace.md +++ b/docs/newbs_external_userspace.md @@ -32,11 +32,11 @@ Building locally has a much shorter turnaround time than waiting for GitHub Acti A basic skeleton External Userspace repository can be found [here](https://github.com/qmk/qmk_userspace). If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base: -![Userspace Fork](/hcegguh.png) +![Userspace Fork](https://i.imgur.com/hcegguh.png) Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps: -![Userspace Clone](/CWYmsk8.png) +![Userspace Clone](https://i.imgur.com/CWYmsk8.png) ```sh cd $HOME @@ -99,8 +99,8 @@ All firmware builds you've added to the External Userspace build targets will be GitHub Actions can be used to automatically build your keymaps whenever you push changes to your External Userspace repository. If you have set up your list of build targets, this is as simple as enabling workflows in the GitHub repository settings: -![Repo Settings](/EVkxOt1.png) +![Repo Settings](https://i.imgur.com/EVkxOt1.png) Any push will result in compilation of all configured builds, and once completed a new release containing the newly-minted firmware files will be created on GitHub, which you can subsequently download and flash to your keyboard: -![Releases](/zmwOL5P.png) +![Releases](https://i.imgur.com/zmwOL5P.png) diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 8131920686..5d5c1983e1 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -60,7 +60,7 @@ open . The firmware file always follows this naming format: ``` -_.{bin,hex} +_.{bin,hex} ``` For example, the `planck/rev5` with a `default` keymap will have this filename: diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 1d2b60781b..9ebcccc77f 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -101,12 +101,6 @@ Install the QMK CLI by running: python3 -m pip install --user qmk ``` -Alternatively, install the QMK CLI as a [uv](https://docs.astral.sh/uv/) managed tool, kept isolated in a virtual environment (requires uv to be installed): - -```sh -uv tool install qmk -``` - #### Community Packages These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers. diff --git a/docs/one_shot_keys.md b/docs/one_shot_keys.md index c4d8e3a4bc..140c8de475 100644 --- a/docs/one_shot_keys.md +++ b/docs/one_shot_keys.md @@ -15,49 +15,11 @@ You can control the behavior of one shot keys by defining these in `config.h`: #define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ ``` -## Keycodes {#keycodes} - -|Key |Aliases |Description | -|--------------------|---------|---------------------------------------------------------------------| -|`QK_ONE_SHOT_TOGGLE`|`OS_TOGG`|Toggles One Shot keys status | -|`QK_ONE_SHOT_ON` |`OS_ON` |Turns One Shot keys on | -|`QK_ONE_SHOT_OFF` |`OS_OFF` |Turns One Shot keys off | -|`OSL(layer)` | |Switch to `layer` for one keypress | -|`OSM(mod)` | |Hold `mod` for one keypress | -|`OS_LCTL` | |Hold Left Control for one keypress | -|`OS_LSFT` | |Hold Left Shift for one keypress | -|`OS_LALT` | |Hold Left Alt for one keypress | -|`OS_LGUI` | |Hold Left GUI for one keypress | -|`OS_LCS` | |Hold Left Control and Left Shift for one keypress | -|`OS_LCA` | |Hold Left Control and left Alt for one keypress | -|`OS_LCG` | |Hold Left Control and Left GUI for one keypress | -|`OS_LSA` | |Hold Left Shift and Left Alt for one keypress | -|`OS_LSG` | |Hold Left Shift and Left GUI for one keypress | -|`OS_LAG` | |Hold Left Alt and Left GUI for one keypress | -|`OS_LCSG` | |Hold Left Control, Left Shift and Left GUI for one keypress | -|`OS_LCAG` | |Hold Left Control, Left Alt and Left GUI for one keypress | -|`OS_LSAG` | |Hold Left Shift, Left Alt and Left GUI for one keypress | -|`OS_RCTL` | |Hold Right Control for one keypress | -|`OS_RSFT` | |Hold Right Shift for one keypress | -|`OS_RALT` | |Hold Right Alt for one keypress | -|`OS_RGUI` | |Hold Right GUI for one keypress | -|`OS_RCS` | |Hold Right Control and Right Shift for one keypress | -|`OS_RCA` | |Hold Right Control and Right Alt for one keypress | -|`OS_RCG` | |Hold Right Control and Right GUI for one keypress | -|`OS_RSA` | |Hold Right Shift and Right Alt for one keypress | -|`OS_RSG` | |Hold Right Shift and Right GUI for one keypress | -|`OS_RAG` | |Hold Right Alt and Right GUI for one keypress | -|`OS_RCSG` | |Hold Right Control, Right Shift and Right GUI for one keypress | -|`OS_RCAG` | |Hold Right Control, Right Alt and Right GUI for one keypress | -|`OS_RSAG` | |Hold Right Shift, Right Alt and Right GUI for one keypress | -|`OS_MEH` | |Hold Left Control, Left Shift and Left Alt for one keypress | -|`OS_HYPR` | |Hold Left Control, Left Shift, Left Alt and Left GUI for one keypress| - -When One Shot keys are turned off, `OSM()` and `OSL()` will behave like normal modifier keys and `MO()`, respectively. - -::: info -The `mod` parameter to the `OSM()` keycode must use the `MOD_*` prefix, rather than `KC_*`, eg. `OSM(MOD_LCTL | MOD_LSFT)`. -::: +* `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](mod_tap), not the `KC_*` codes. +* `OSL(layer)` - momentary switch to *layer*. +* `OS_ON` - Turns on One Shot keys. +* `OS_OFF` - Turns off One Shot keys. OSM act as regular mod keys, OSL act like `MO`. +* `OS_TOGG` - Toggles the one shot key status. Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine. diff --git a/docs/other_eclipse.md b/docs/other_eclipse.md index 1745f08932..5a0228efce 100644 --- a/docs/other_eclipse.md +++ b/docs/other_eclipse.md @@ -66,7 +66,7 @@ Once both plugins are installed, restart Eclipse as prompted. * Select the _AVR-GCC Toolchain_; * Keep the rest as-is and click Finish - ![Importing QMK in Eclipse](/oHYR1yW.png) + ![Importing QMK in Eclipse](https://i.imgur.com/oHYR1yW.png) 3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left. diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 3bd7e3f44f..31208d8f3b 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -112,7 +112,7 @@ Restart once you've installed any extensions. Using the [standard `compile_commands.json` database](https://clang.llvm.org/docs/JSONCompilationDatabase.html), we can get the VS code _clangd_ extension to use the correct includes and defines used for your keyboard and keymap. -1. Run `qmk compile -kb -km --compiledb` to generate the `compile_commands.json`. +1. Run `qmk generate-compilation-database -kb -km ` to generate the `compile_commands.json`. 1. Inside VS code, press Ctrl + Shift + P (macOS: Command + Shift + P) to open the command palette. 1. Start typing `clangd: Download Language Server` and select it when it appears. Note that this only needs to be done once on clangd extension installation, if it didn't already ask to do so. 1. Inside VS code, press Ctrl + Shift + P (macOS: Command + Shift + P) to open the command palette. @@ -174,16 +174,15 @@ You'll need to perform some modifications to the file above in order to target y * `"armToolchainPath"`: _[Optional]_ The path to the ARM toolchain installation location on Windows -- under normal circumstances Linux/macOS will auto-detect this correctly and will not need to be specified. ::: warning -Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](/EGrPM1L.png) +Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](https://i.imgur.com/EGrPM1L.png) ::: -The following modifications must be made to the keyboard's `rules.mk` file to enable debug information and disable optimisations -- this will ensure breakpoints and variable viewing works correctly: +Optionally, the following modifications should also be made to the keyboard's `rules.mk` file to disable optimisations -- not strictly required but will ensure breakpoints and variable viewing works correctly: ```makefile -# Enable debug information in the final binaries -DEBUG_ENABLE = yes # Disable optimisations for debugging purposes LTO_ENABLE = no OPT = g +DEBUG = 3 ``` At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`). diff --git a/docs/platformdev_blackpill_f4x1.md b/docs/platformdev_blackpill_f4x1.md index e9af534e58..a8d21c255c 100644 --- a/docs/platformdev_blackpill_f4x1.md +++ b/docs/platformdev_blackpill_f4x1.md @@ -7,7 +7,7 @@ The WeAct Blackpill is a popular choice for handwired boards, as it offers a pow * [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) * Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available. -![Blackpill F411](/nCgeolTh.png) +![Blackpill F411](https://i.imgur.com/nCgeolTh.png) ## Pin Usage Limitations diff --git a/docs/platformdev_proton_c.md b/docs/platformdev_proton_c.md index 16eeb7b28a..3afec893fa 100644 --- a/docs/platformdev_proton_c.md +++ b/docs/platformdev_proton_c.md @@ -2,7 +2,7 @@ The Proton C is an Arm STM32F303xC based drop-in replacement for the Pro Micro. -Proton C +Proton C #### Features diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md index 346cae58dc..1269ffeeb5 100644 --- a/docs/platformdev_rp2040.md +++ b/docs/platformdev_rp2040.md @@ -17,8 +17,8 @@ The following table shows the current driver status for peripherals on RP2040 MC ## GPIO -Raspberry Pi Pico pinout -Sparkfun RP2040 Pro Micro pinout +Raspberry Pi Pico pinout +Sparkfun RP2040 Pro Micro pinout ::: warning The GPIO pins of the RP2040 are not 5V tolerant! diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md index 108576cb58..e5a1f803f7 100644 --- a/docs/porting_your_keyboard_to_qmk.md +++ b/docs/porting_your_keyboard_to_qmk.md @@ -4,51 +4,52 @@ This page describes the support for [Compatible Microcontrollers](compatible_mic If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines) to get a sense of how keyboards fit into QMK. + QMK has a number of features to simplify working with keyboards. For most, you don't have to write a single line of code. To get started, run `qmk new-keyboard`: ``` $ qmk new-keyboard Ψ Generating a new QMK keyboard directory -Ψ Name Your Keyboard Project -Ψ For more information, see: -https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project -Keyboard Name? mycoolkeeb -Ψ Attribution -Ψ Used for maintainer, copyright, etc. -Your GitHub Username? [jsmith] -Ψ More Attribution -Ψ Used for maintainer, copyright, etc. -Your Real Name? [John Smith] -Ψ Pick Base Layout -Ψ As a starting point, one of the common layouts can be used to -bootstrap the process -Default Layout? - 1. 60_abnt2 - ... - 65. none of the above -Please enter your choice: [65] -Ψ What Powers Your Project -Ψ Is your board using a separate development board, such as a Pro Micro, -or is the microcontroller integrated onto the PCB? +Name Your Keyboard Project +For more infomation, see: +https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboardproject -For more information, see: -https://docs.qmk.fm/compatible_microcontrollers -Using a Development Board? [y/n] y -Ψ Select Development Board -Ψ For more information, see: -https://docs.qmk.fm/compatible_microcontrollers -Development Board? - 1. bit_c_pro - ... - 14. promicro - ... - 18. svlinky -Please enter your choice: [14] +keyboard Name? mycoolkeeb + +Attribution +Used for maintainer, copyright, etc + +Your GitHub Username? [jsmith] + +More Attribution +Used for maintainer, copyright, etc + +Your Real Name? [John Smith] + +Pick Base Layout +As a starting point, one of the common layouts can be used to bootstrap the process + +Default Layout? + 1. 60_ansi +... + 50. tkl_iso + 51. none of the above +Please enter your choice: [51] + +What Powers Your Project +For more infomation, see: +https://docs.qmk.fm/#/compatible_microcontrollers + +MCU? + 1. atmega32u4 +... + 22. STM32F303 +Please enter your choice: [12] Ψ Created a new keyboard called mycoolkeeb. -Ψ Build Command: qmk compile -kb mycoolkeeb -km default. -Ψ Project Location: /Users/jsmith/qmk_firmware/keyboards/mycoolkeeb. -Ψ Now update the config files to match the hardware! +Ψ To start working on things, `cd` into keyboards/mycoolkeeb, +Ψ or open the directory in your preferred text editor. +Ψ And build with qmk compile -kb mycoolkeeb -km default. ``` This will create all the files needed to support your new keyboard, and populate the settings with default values. Now you just need to customize it for your keyboard. @@ -57,13 +58,13 @@ This will create all the files needed to support your new keyboard, and populate This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images. -## `keyboard.json` +## `info.json` -The `keyboard.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page. +The `info.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page. ### Hardware Configuration -At the top of the `keyboard.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use. +At the top of the `info.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use. Do change the `manufacturer` and `keyboard_name` lines to accurately reflect your keyboard. @@ -81,11 +82,10 @@ Do change the `manufacturer` and `keyboard_name` lines to accurately reflect you Windows and macOS will display the `manufacturer` and `keyboard_name` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `manufacturer` and `keyboard_name` if the list does not contain that `usb.vid` / `usb.pid`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in. ::: + ### Matrix Configuration -The next section of the `keyboard.json` deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins: - -#### Diode Matrix +The next section of the `info` file deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins: ```json "matrix_pins": { @@ -94,7 +94,7 @@ The next section of the `keyboard.json` deals with your keyboard's matrix. The f }, ``` -The matrix dimensions are inferred from the length of the `matrix_pins.cols` and `matrix_pins.rows` arrays (previously specified explicitly in `config.h` with `MATRIX_ROWS` and `MATRIX_COLS`). +The size of the `matrix_pins.cols` and `matrix_pins.rows` arrays infer the size of the matrix (previously `MATRIX_ROWS` and `MATRIX_COLS`). Finally, you can specify the direction your diodes point. This can be `COL2ROW` or `ROW2COL`. @@ -103,56 +103,54 @@ Finally, you can specify the direction your diodes point. This can be `COL2ROW` ``` #### Direct Pin Matrix - -To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. This overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`, and they should not be specified together. +To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. The mapping defines the pins of each switch in rows and columns, from left to right. The size of the `matrix_pins.direct` array infers the size of the matrix. Use `NO_PIN` to fill in blank spaces. Overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`. ```json "matrix_pins": { "direct": [ - ["F1", "E6", "B0", "B2", "B3"], - ["F5", "F0", "B1", "B7", "D2"], - ["F6", "F7", "C7", "D5", "D3"], - ["B5", "C6", "B6", null, null] + ["F1", "E6", "B0", "B2", "B3" ], + ["F5", "F0", "B1", "B7", "D2" ], + ["F6", "F7", "C7", "D5", "D3" ], + ["B5", "C6", "B6", "NO_PIN", "NO_PIN"] ] }, ``` -Here, the matrix dimensions are inferred directly from the dimensions of the `matrix_pins.direct` array. Since there are no row or column pins to prescribe the matrix dimensions, you can arrange it however you like. Each "row" must contain the same number of "column"s; use `null` to fill in blank spaces, but try to minimize them. +### Layout macros -### Layout Macros - -Next is configuring layout macro(s). These define the physical arrangement of keys, and their position within the matrix that switches are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix. +Next is configuring Layout Macro(s). These define the physical arrangement of keys, and its position within the matrix that a switch are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix. ```json "layouts": { "LAYOUT_ortho_4x4": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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": [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": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "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": [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": [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 } ] } } + ``` -In the above example, +In the above example, * `LAYOUT_ortho_4x4` defines the name of the layout macro * It must conform to the [layout guidelines](hardware_keyboard_guidelines#keyboard-name-h) -* `"matrix": [0, 0]` defines the matrix row and column that the key is associated with +* `"matrix": [0, 0]` defines the electrical position ::: tip See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) and [Matrix to Physical Layout](understanding_qmk#matrix-to-physical-layout-map). @@ -160,11 +158,10 @@ See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) an ## Additional Configuration -There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when a data-driven option is unavailable. +There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when an `info.json` option is unavailable. ### Configuration Options - -For available options for `config.h`, you should see the [Config Options](config_options#the-config-h-file) page for more details. +For available options for `config.h`, you should see the [Config Options](config_options#the-configh-file) page for more details. ### Build Options diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 61119178bb..d95d459b06 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -44,14 +44,12 @@ If there are any inconsistencies with these recommendations, you're best off [cr Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information. ::: -- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}` i.e. `default_clueboard`. - - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` stock keymaps. +- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`. + - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps. - `#include QMK_KEYBOARD_H` preferred to including specific board files - prefer layer enums to #defines - custom keycode enums must have first entry = `QK_USER` - some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap. Spaces are preferred to tabs -- keymaps should not enable VIA - - keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository ## Keyboard PRs @@ -127,8 +125,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - empty `xxxx_xxxx_kb()`, `xxxx_xxxx_user()`, or other weak-defined default implemented functions removed - commented-out functions removed too - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions#keyboard_pre_init_-function-documentation) - - when configuring custom matrix, the 'lite' variant (`CUSTOM_MATRIX = lite`) must be used where possible, as this allows for standard debounce. See [custom matrix 'lite'](custom_matrix#lite) - - justification for full custom matrix (`CUSTOM_MATRIX = yes`) must be provided when used + - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix#lite) - prefer LED indicator [Configuration Options](features/led_indicators#configuration-options) to custom `led_update_*()` implementations where possible - hardware that's enabled at the keyboard level and requires configuration such as OLED displays or encoders should have basic functionality implemented here - `.h` @@ -139,12 +136,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - `keymaps/default/keymap.c` - `QMKBEST`/`QMKURL` example macros removed - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](features/tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. -- default keymaps should be "pristine" +- default (and via) keymaps should be "pristine" - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap - what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary - standard layouts preferred in these keymaps, if possible - should use [encoder map feature](features/encoders#encoder-map), rather than `encoder_update_user()` - - default keymap should not enable VIA -- keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository + - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` - submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) @@ -177,7 +174,7 @@ Also, specific to ChibiOS: - all core PRs must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline - as indicated above, the smallest set of changes to core components should be included in each PR - PRs containing multiple areas of change will be asked to be split up and raised separately - - keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `default_????` keymaps etc. + - keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `via`, `default_????` keymaps etc. - keymap modifications for anything other than the default-like keymaps **should not be included in the initial PR** in order to simplify the review process - the core PR submitter should submit a followup PR affecting other keymaps after initial PR merge - large-scale refactoring or consolidation PRs that affect other keymaps (such as renaming keycodes) should always be raised separately diff --git a/docs/proprietary_libs.md b/docs/proprietary_libs.md deleted file mode 100644 index 9a4d305638..0000000000 --- a/docs/proprietary_libs.md +++ /dev/null @@ -1,171 +0,0 @@ -# Proprietary Vendor Libraries - -QMK Firmware cannot include support for any proprietary vendor libraries that impose additional restrictions beyond those in the GPL. This includes binary-only distributions, hardware-locked libraries, and code with redistribution limitations. This document explains why such libraries are incompatible with the GPL-based QMK Firmware and addresses commonly proposed workarounds. - -## Architecture Constraints - -Firmware presents unique licensing challenges: - -- **Monolithic binary**: All code compiles into a single executable image -- **No OS isolation**: No operating system provides process or memory separation -- **Shared resources**: All code shares the same memory space, peripherals, and execution context -- **Static linking**: Everything is statically linked at compile time - -This monolithic nature means any proprietary code becomes inseparable from GPL code, creating immediate license violations. - -## Common Vendor Library Restrictions - -Proprietary vendor libraries typically impose restrictions incompatible with GPL freedoms: - -**Hardware Lock-in:** -- Library only licensed for specific vendor's chips -- Cannot port firmware to alternative hardware -- Examples: Nordic's and ST's chip-only clauses in their respective licenses - -**No Source Distribution:** -- Binary-only libraries without corresponding source -- Precompiled static libraries (.a/.lib files) -- No ability to modify or fix bugs -- Examples: WCH CH582 precompiled libraries, Nordic SoftDevice - -**Redistribution Limitations:** -- Restrictions on who can distribute -- Limitations on commercial use -- Required permissions or fees - -**Additional Legal Terms:** -- Patent assertions beyond GPL's scope -- Indemnification requirements -- Jurisdiction restrictions -- Explicit anti-GPL clauses - -## Bluetooth Stack Licensing Examples - -Both Nordic and ST provide Bluetooth stacks under restrictive licenses: - -**Nordic SoftDevice (under Nordic 5-clause license):** -- Binary-only Bluetooth/radio stack -- License restricts to Nordic hardware -- No source code available -- Communicates via SVC interface (still not GPL-compatible) - -**ST's Bluetooth Stack (under SLA0044 license):** -- Explicitly forbids being subject to "Open Source Terms", specifically mentioning incompatibility with the GPL -- Restricted to ST microcontrollers only -- Similar functional role to Nordic's SoftDevice - -Both represent the same fundamental problem: critical wireless functionality locked behind proprietary licenses. - -## Why the System Library Exception Doesn't Apply - -The GPL's System Library exception **cannot** rescue proprietary vendor libraries. - -### System Library Requirements - -The exception only covers libraries that: -1. Are part of the "normal form of packaging a Major Component" -2. The Major Component is an OS kernel, compiler, or similar system software -3. Are not distributed with the application -4. Are not part of the application itself - -### Why Vendor Libraries Fail These Requirements - -1. **No operating system**: Bare-metal firmware has no OS to provide system libraries -2. **Not Major Components**: Hardware drivers and HALs aren't kernels or compilers -3. **Distributed together**: Vendor code becomes part of the firmware binary -4. **Application-level code**: Peripheral drivers are application functionality - -The exception covers things like Windows system DLLs or Linux glibc, not microcontroller vendor libraries or Bluetooth stacks. - -## Attempted Workarounds - -### Architectural Separation Attempts - -**Supervisor Call (SVC) Interfaces:** - -Nordic's SoftDevice uses supervisor call based APIs instead of direct linking: -- Fixed memory regions for proprietary code -- Communication through CPU exception mechanisms -- Claims of "no linking" between components - -**Why this fails:** The GPL considers functional integration, not just linking methods. In Bluetooth-capable boards, these would require the proprietary component to function, thus they form a single work regardless of the communication mechanism. This applies equally to Nordic's SoftDevice and any similar architecture ST provides. - -**Binary-Only Distributions:** - -Multiple vendors provide precompiled libraries: -- WCH: Precompiled BLE stack -- Nordic: Binary-only SoftDevice library -- ST: Same solution as Nordic - -**Why this fails:** This is classic static linking of proprietary code into GPL code. The inability to modify these libraries violates GPL's fundamental requirements. - -### Loader-Based Separation - -- Write a GPL bootloader/loader -- Load proprietary firmware (such as Nordic/ST Bluetooth) from external storage -- Claim they're separate works - -**Problems:** -- If designed as a system, courts view as single work -- Distribution patterns matter (shipped together?) -- Functional interdependence suggests unity -- Appears designed to circumvent GPL - -## Real-World Examples - -### Bluetooth/Wireless Stacks -- **Nordic SoftDevice**: Binary-only, SVC-interface, hardware-locked -- **ST Bluetooth**: Binary-only, license explicitly GPL-incompatible -- **WCH CH582**: Precompiled Bluetooth libraries - -### HAL and Driver Libraries -- **ST HAL/LL drivers**: Source available but SLA0044 restricted -- **Nordic SDK**: Source visible but 5-Clause restricted -- **Various vendor HALs**: Platform-locked licenses - -### Mixed Proprietary/Open -- Open peripheral drivers with closed protocol stacks -- Basic HAL with proprietary performance libraries -- Partially documented systems requiring binary supplements - -## Legal and Practical Consequences - -Including any proprietary vendor library means: - -1. **License Violation**: Immediate GPL non-compliance -2. **Distribution Ban**: Users cannot legally share modified firmware -3. **Commercial Risk**: Products using the firmware face legal liability -4. **Contributor Tainting**: All GPL contributions become legally problematic -5. **Update Restrictions**: Cannot fix bugs in proprietary components - -## Evaluation Criteria for Libraries - -Before including any library, QMK needs to verify: -- Complete source code available -- GPL-compatible license (GPL, LGPL, MIT, BSD, Apache) -- No hardware restrictions -- No redistribution limitations -- No additional legal terms -- No anti-GPL clauses - -## Policy Implementation - -QMK Firmware maintains a strict policy: - -1. **No proprietary libraries**: Regardless of technical workarounds -2. **No binary blobs**: All code must have source available -3. **No platform restrictions**: Must allow porting to any hardware -4. **No additional terms**: Only GPL restrictions permitted - -## Summary - -There is no legally safe way to include proprietary vendor libraries in GPL firmware. This applies whether they're: -- Bluetooth stacks (Nordic SoftDevice, ST Bluetooth) -- Precompiled static libraries -- Binary blobs with SVC interfaces -- Source code with restrictive licenses -- Mixed open/closed systems - -**Technical architectures cannot overcome license obligations.** - -QMK chooses GPL compliance, ensuring users receive all freedoms the GPL promises. diff --git a/docs/public/0GNIYY0.jpg b/docs/public/0GNIYY0.jpg deleted file mode 100644 index ccf2f5dcbe..0000000000 Binary files a/docs/public/0GNIYY0.jpg and /dev/null differ diff --git a/docs/public/1TPAhrs.jpg b/docs/public/1TPAhrs.jpg deleted file mode 100644 index 1629c8f3a5..0000000000 Binary files a/docs/public/1TPAhrs.jpg and /dev/null differ diff --git a/docs/public/2wUZNWk.png b/docs/public/2wUZNWk.png deleted file mode 100644 index a1e5355a4c..0000000000 Binary files a/docs/public/2wUZNWk.png and /dev/null differ diff --git a/docs/public/3RrSjzW.png b/docs/public/3RrSjzW.png deleted file mode 100644 index af17f0c759..0000000000 Binary files a/docs/public/3RrSjzW.png and /dev/null differ diff --git a/docs/public/4wjJzBU.png b/docs/public/4wjJzBU.png deleted file mode 100644 index c152bc0a23..0000000000 Binary files a/docs/public/4wjJzBU.png and /dev/null differ diff --git a/docs/public/5wsh5wM.png b/docs/public/5wsh5wM.png deleted file mode 100644 index 9242e0c4b0..0000000000 Binary files a/docs/public/5wsh5wM.png and /dev/null differ diff --git a/docs/public/8Toomz4.jpg b/docs/public/8Toomz4.jpg deleted file mode 100644 index 6099dd2b4b..0000000000 Binary files a/docs/public/8Toomz4.jpg and /dev/null differ diff --git a/docs/public/AvXZShD.jpg b/docs/public/AvXZShD.jpg deleted file mode 100644 index fc7272e1d6..0000000000 Binary files a/docs/public/AvXZShD.jpg and /dev/null differ diff --git a/docs/public/BPEC5n5.jpg b/docs/public/BPEC5n5.jpg deleted file mode 100644 index 99f18115c1..0000000000 Binary files a/docs/public/BPEC5n5.jpg and /dev/null differ diff --git a/docs/public/BmAvoUC.png b/docs/public/BmAvoUC.png deleted file mode 100644 index f44fd1ce5c..0000000000 Binary files a/docs/public/BmAvoUC.png and /dev/null differ diff --git a/docs/public/Bu4mk9m.png b/docs/public/Bu4mk9m.png deleted file mode 100644 index e80e6b751e..0000000000 Binary files a/docs/public/Bu4mk9m.png and /dev/null differ diff --git a/docs/public/CWYmsk8.png b/docs/public/CWYmsk8.png deleted file mode 100644 index 2d1f186cef..0000000000 Binary files a/docs/public/CWYmsk8.png and /dev/null differ diff --git a/docs/public/CnASmPo.jpg b/docs/public/CnASmPo.jpg deleted file mode 100644 index 128cc806a1..0000000000 Binary files a/docs/public/CnASmPo.jpg and /dev/null differ diff --git a/docs/public/DkEhj9x.png b/docs/public/DkEhj9x.png deleted file mode 100644 index 6a31d1f1d2..0000000000 Binary files a/docs/public/DkEhj9x.png and /dev/null differ diff --git a/docs/public/DxMHpJ8.jpg b/docs/public/DxMHpJ8.jpg deleted file mode 100644 index 179c2b6b69..0000000000 Binary files a/docs/public/DxMHpJ8.jpg and /dev/null differ diff --git a/docs/public/EGrPM1L.png b/docs/public/EGrPM1L.png deleted file mode 100644 index 5b7bbd4ea7..0000000000 Binary files a/docs/public/EGrPM1L.png and /dev/null differ diff --git a/docs/public/EVkxOt1.png b/docs/public/EVkxOt1.png deleted file mode 100644 index 56f862ccb7..0000000000 Binary files a/docs/public/EVkxOt1.png and /dev/null differ diff --git a/docs/public/FRShcLD.png b/docs/public/FRShcLD.png deleted file mode 100644 index 6f91c1cff5..0000000000 Binary files a/docs/public/FRShcLD.png and /dev/null differ diff --git a/docs/public/HL5DP8H.png b/docs/public/HL5DP8H.png deleted file mode 100644 index 523d59f98d..0000000000 Binary files a/docs/public/HL5DP8H.png and /dev/null differ diff --git a/docs/public/Hx0E5kC.png b/docs/public/Hx0E5kC.png deleted file mode 100644 index 67717e1e89..0000000000 Binary files a/docs/public/Hx0E5kC.png and /dev/null differ diff --git a/docs/public/JKngtTw.png b/docs/public/JKngtTw.png deleted file mode 100644 index 5c38745181..0000000000 Binary files a/docs/public/JKngtTw.png and /dev/null differ diff --git a/docs/public/JcDhZll.png b/docs/public/JcDhZll.png deleted file mode 100644 index 8d4b74268a..0000000000 Binary files a/docs/public/JcDhZll.png and /dev/null differ diff --git a/docs/public/N1NYcSz.jpg b/docs/public/N1NYcSz.jpg deleted file mode 100644 index f3e0c694e6..0000000000 Binary files a/docs/public/N1NYcSz.jpg and /dev/null differ diff --git a/docs/public/Ojydlaj.jpg b/docs/public/Ojydlaj.jpg deleted file mode 100644 index 989a611813..0000000000 Binary files a/docs/public/Ojydlaj.jpg and /dev/null differ diff --git a/docs/public/QeY6kMQ.png b/docs/public/QeY6kMQ.png deleted file mode 100644 index b990847c1c..0000000000 Binary files a/docs/public/QeY6kMQ.png and /dev/null differ diff --git a/docs/public/QiA3ta6.jpg b/docs/public/QiA3ta6.jpg deleted file mode 100644 index a10b4165c4..0000000000 Binary files a/docs/public/QiA3ta6.jpg and /dev/null differ diff --git a/docs/public/RFyNMlL.jpg b/docs/public/RFyNMlL.jpg deleted file mode 100644 index 1cfd86f6ef..0000000000 Binary files a/docs/public/RFyNMlL.jpg and /dev/null differ diff --git a/docs/public/UlJ4ZDP.png b/docs/public/UlJ4ZDP.png deleted file mode 100644 index d38f40deed..0000000000 Binary files a/docs/public/UlJ4ZDP.png and /dev/null differ diff --git a/docs/public/aEs2RuA.png b/docs/public/aEs2RuA.png deleted file mode 100644 index af3ad19053..0000000000 Binary files a/docs/public/aEs2RuA.png and /dev/null differ diff --git a/docs/public/aTnG8TV.jpg b/docs/public/aTnG8TV.jpg deleted file mode 100644 index 6337adf10e..0000000000 Binary files a/docs/public/aTnG8TV.jpg and /dev/null differ diff --git a/docs/public/anw9cOL.png b/docs/public/anw9cOL.png deleted file mode 100644 index 09740d1da5..0000000000 Binary files a/docs/public/anw9cOL.png and /dev/null differ diff --git a/docs/public/b4b7KDb.jpg b/docs/public/b4b7KDb.jpg deleted file mode 100644 index 76acd2cf5c..0000000000 Binary files a/docs/public/b4b7KDb.jpg and /dev/null differ diff --git a/docs/public/b8VgXzx.png b/docs/public/b8VgXzx.png deleted file mode 100644 index 9aa32c22dd..0000000000 Binary files a/docs/public/b8VgXzx.png and /dev/null differ diff --git a/docs/public/badge-community-dark.svg b/docs/public/badge-community-dark.svg index 5236cf1696..dba561dda1 100644 --- a/docs/public/badge-community-dark.svg +++ b/docs/public/badge-community-dark.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/docs/public/badge-community-light.svg b/docs/public/badge-community-light.svg index 08c49f05b5..de4e0cf149 100644 --- a/docs/public/badge-community-light.svg +++ b/docs/public/badge-community-light.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/docs/public/eGO0ohO.jpg b/docs/public/eGO0ohO.jpg deleted file mode 100644 index d1c9b730a0..0000000000 Binary files a/docs/public/eGO0ohO.jpg and /dev/null differ diff --git a/docs/public/eHJjmnU.jpg b/docs/public/eHJjmnU.jpg deleted file mode 100644 index aebbc9d200..0000000000 Binary files a/docs/public/eHJjmnU.jpg and /dev/null differ diff --git a/docs/public/fmDvDzR.png b/docs/public/fmDvDzR.png deleted file mode 100644 index 3284d2a8fc..0000000000 Binary files a/docs/public/fmDvDzR.png and /dev/null differ diff --git a/docs/public/hcegguh.png b/docs/public/hcegguh.png deleted file mode 100644 index 98ad8ff19c..0000000000 Binary files a/docs/public/hcegguh.png and /dev/null differ diff --git a/docs/public/mBe5vkL.jpg b/docs/public/mBe5vkL.jpg deleted file mode 100644 index 8174d8c080..0000000000 Binary files a/docs/public/mBe5vkL.jpg and /dev/null differ diff --git a/docs/public/nCgeolTh.png b/docs/public/nCgeolTh.png deleted file mode 100644 index c92cbedb9f..0000000000 Binary files a/docs/public/nCgeolTh.png and /dev/null differ diff --git a/docs/public/nLaiYDE.jpg b/docs/public/nLaiYDE.jpg deleted file mode 100644 index b31413693c..0000000000 Binary files a/docs/public/nLaiYDE.jpg and /dev/null differ diff --git a/docs/public/o7WLvBl.png b/docs/public/o7WLvBl.png deleted file mode 100644 index abd42d8c05..0000000000 Binary files a/docs/public/o7WLvBl.png and /dev/null differ diff --git a/docs/public/oHYR1yW.png b/docs/public/oHYR1yW.png deleted file mode 100644 index 77bc73238d..0000000000 Binary files a/docs/public/oHYR1yW.png and /dev/null differ diff --git a/docs/public/oITudbX.jpg b/docs/public/oITudbX.jpg deleted file mode 100644 index 7edcb5781a..0000000000 Binary files a/docs/public/oITudbX.jpg and /dev/null differ diff --git a/docs/public/vkYVo66.jpg b/docs/public/vkYVo66.jpg deleted file mode 100644 index fd77a22b25..0000000000 Binary files a/docs/public/vkYVo66.jpg and /dev/null differ diff --git a/docs/public/z2QlKfB.jpg b/docs/public/z2QlKfB.jpg deleted file mode 100644 index 59ca44303b..0000000000 Binary files a/docs/public/z2QlKfB.jpg and /dev/null differ diff --git a/docs/public/zmwOL5P.png b/docs/public/zmwOL5P.png deleted file mode 100644 index 0921dff37d..0000000000 Binary files a/docs/public/zmwOL5P.png and /dev/null differ diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index bbe8944516..1d844d0f94 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -28,8 +28,6 @@ Supported devices: | ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` | | ILI9486 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9486_spi` | | ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` | -| LD7032 (SPI) | Monochrome OLED | 128x40 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ld7032_spi` | -| LD7032 (I2C) | Monochrome OLED | 128x40 | I2C | `QUANTUM_PAINTER_DRIVERS += ld7032_i2c` | | SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` | | ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` | | ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` | @@ -480,40 +478,6 @@ Native color format mono2 is compatible with SH1106 SSD1306 and SH1106 are almost entirely identical, to the point of being indisinguishable by Quantum Painter. Enable SH1106 support in Quantum Painter and create SH1106 devices in firmware to perform drawing operations on SSD1306 displays. -==== LD7032 - -Enabling support for the LD7032 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -# For SPI: -QUANTUM_PAINTER_DRIVERS += ld7032_spi -# For I2C: -QUANTUM_PAINTER_DRIVERS += ld7032_i2c -``` - -Creating a SH1106 device in firmware can then be done with the following APIs: - -```c -// SPI-based LD7032: -painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -// I2C-based LD7032: -painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); -``` - -The device handle returned from the `qp_ld7032_make_???_device` function can be used to perform all other drawing operations. - -The maximum number of displays of each type can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 SPI displays: -#define LD7032_NUM_SPI_DEVICES 3 -// 3 I2C displays: -#define LD7032_NUM_I2C_DEVICES 3 -``` - -Native color format mono2 is compatible with LD7032. - ::::: ===== Surface @@ -884,7 +848,7 @@ static painter_image_handle_t my_image; void keyboard_post_init_kb(void) { my_image = qp_load_image_mem(gfx_my_image); if (my_image != NULL) { - qp_drawimage(display, (240 - my_image->width), (320 - my_image->height), my_image); + qp_drawimage(display, (239 - my_image->width), (319 - my_image->height), my_image); } } ``` @@ -909,7 +873,7 @@ static deferred_token my_anim; void keyboard_post_init_kb(void) { my_image = qp_load_image_mem(gfx_my_image); if (my_image != NULL) { - my_anim = qp_animate(display, (240 - my_image->width), (320 - my_image->height), my_image); + my_anim = qp_animate(display, (239 - my_image->width), (319 - my_image->height), my_image); } } ``` @@ -1001,7 +965,7 @@ void keyboard_post_init_kb(void) { if (my_font != NULL) { static const char *text = "Hello from QMK!"; int16_t width = qp_textwidth(my_font, text); - qp_drawtext(display, (240 - width), (320 - my_font->line_height), my_font, text); + qp_drawtext(display, (239 - width), (319 - my_font->line_height), my_font, text); } } ``` diff --git a/docs/quantum_painter_lvgl.md b/docs/quantum_painter_lvgl.md index 0ff0e321ec..40b3c3b2f1 100644 --- a/docs/quantum_painter_lvgl.md +++ b/docs/quantum_painter_lvgl.md @@ -5,7 +5,7 @@ LVGL (Light and Versatile Graphics Library) is an open-source graphics library p LVGL integrates with [Quantum Painter's](quantum_painter) API and drivers to render to the display, the hardware supported by Quantum Painter is also supported by LVGL. ::: tip -Keep in mind that enabling the LVGL integration has a big impact in firmware size, it is recommended to use a supported MCU with >256 kB of flash space. +Keep in mind that enabling the LVGL integration has a big impact in firmware size, it is recommeded to use a supported MCU with >256 kB of flash space. ::: To learn more about LVGL and how to use it please take a look at their [official documentation](https://docs.lvgl.io/8.2/intro/) @@ -35,7 +35,7 @@ static painter_device_t display; void keyboard_post_init_kb(void) { display = qp_make_.......; // Create the display qp_init(display, QP_ROTATION_0); // Initialise the display - + if (qp_lvgl_attach(display)) { // Attach LVGL to the display ...Your code to draw // Run LVGL specific code to draw } diff --git a/docs/quantum_painter_qff.md b/docs/quantum_painter_qff.md index 198d87384a..3695be2c5b 100644 --- a/docs/quantum_painter_qff.md +++ b/docs/quantum_painter_qff.md @@ -44,7 +44,7 @@ typedef struct __attribute__((packed)) qff_font_descriptor_v1_t { uint8_t compression_scheme; // compression scheme, see below. uint8_t transparency_index; // palette index used for transparent pixels (not yet implemented) } qff_font_descriptor_v1_t; -// STATIC_ASSERT(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 20), "qff_font_descriptor_v1_t must be 25 bytes in v1 of QFF"); +// _Static_assert(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 20), "qff_font_descriptor_v1_t must be 25 bytes in v1 of QFF"); ``` The values for `format`, `flags`, `compression_scheme`, and `transparency_index` match [QGF's frame descriptor block](quantum_painter_qgf#qgf-frame-descriptor), with the exception that the `delta` flag is ignored by QFF. @@ -66,7 +66,7 @@ typedef struct __attribute__((packed)) qff_ascii_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = 285 } uint24_t glyph[95]; // 95 glyphs, 0x20..0x7E, see bits/masks above for values } qff_ascii_glyph_table_v1_t; -// STATIC_ASSERT(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_t) + 285), "qff_ascii_glyph_table_v1_t must be 290 bytes in v1 of QFF"); +// _Static_assert(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_t) + 285), "qff_ascii_glyph_table_v1_t must be 290 bytes in v1 of QFF"); ``` ## Unicode glyph table {#qff-unicode-table} diff --git a/docs/quantum_painter_qgf.md b/docs/quantum_painter_qgf.md index dd525e4b83..700b78d105 100644 --- a/docs/quantum_painter_qgf.md +++ b/docs/quantum_painter_qgf.md @@ -32,7 +32,7 @@ typedef struct __attribute__((packed)) qgf_block_header_v1_t { uint8_t neg_type_id; // Negated type ID, used for detecting parsing errors uint24_t length; // 24-bit blob length, allowing for block sizes of a maximum of 16MB } qgf_block_header_v1_t; -// STATIC_ASSERT(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be 5 bytes in v1 of QGF"); +// _Static_assert(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be 5 bytes in v1 of QGF"); ``` The _length_ describes the number of octets in the data following the block header -- a block header may specify a _length_ of `0` if no blob is specified. @@ -56,7 +56,7 @@ typedef struct __attribute__((packed)) qgf_graphics_descriptor_v1_t { uint16_t image_height; // in pixels uint16_t frame_count; // minimum of 1 } qgf_graphics_descriptor_v1_t; -// STATIC_ASSERT(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 18), "qgf_graphics_descriptor_v1_t must be 23 bytes in v1 of QGF"); +// _Static_assert(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 18), "qgf_graphics_descriptor_v1_t must be 23 bytes in v1 of QGF"); ``` ## Frame offset block {#qgf-frame-offset-descriptor} @@ -95,7 +95,7 @@ typedef struct __attribute__((packed)) qgf_frame_v1_t { uint8_t transparency_index; // palette index used for transparent pixels (not yet implemented) uint16_t delay; // frame delay time for animations (in units of milliseconds) } qgf_frame_v1_t; -// STATIC_ASSERT(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qgf_frame_v1_t must be 11 bytes in v1 of QGF"); +// _Static_assert(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qgf_frame_v1_t must be 11 bytes in v1 of QGF"); ``` If this frame is grayscale, the _frame descriptor block_ (or _frame delta block_ if flags denote a delta frame) is immediately followed by this frame's corresponding _frame data block_. @@ -160,7 +160,7 @@ typedef struct __attribute__((packed)) qgf_delta_v1_t { uint16_t right; // The right pixel location to to draw the delta image uint16_t bottom; // The bottom pixel location to to draw the delta image } qgf_delta_v1_t; -// STATIC_ASSERT(sizeof(qgf_delta_v1_t) == 13, "qgf_delta_v1_t must be 13 bytes in v1 of QGF"); +// _Static_assert(sizeof(qgf_delta_v1_t) == 13, "qgf_delta_v1_t must be 13 bytes in v1 of QGF"); ``` ## Frame data block {#qgf-frame-data-descriptor} diff --git a/docs/ref_functions.md b/docs/ref_functions.md index 599515ebc1..577273c05d 100644 --- a/docs/ref_functions.md +++ b/docs/ref_functions.md @@ -69,7 +69,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { Do you want to set the default layer, so that it's retained even after you unplug the board? If so, this is the function for you. -To do this, you would use `set_single_persistent_default_layer(layer)`. If you have a name defined for your layer, you can use that instead (such as _QWERTY, _DVORAK or _COLEMAK). +To use this, you would use `set_single_persistent_default_layer(layer)`. If you have a name defined for your layer, you can use that instead (such as _QWERTY, _DVORAK or _COLEMAK). This will set the default layer, update the persistent settings, and play a tune if you have [Audio](features/audio) enabled on your board, and the default layer sounds set. @@ -82,8 +82,6 @@ To configure the default layer sounds, you would want to define this in your `co } ``` -If you do not require it to be retained after you unplug the board, use `set_single_default_layer(layer)` instead. - ::: tip There are a large number of predefined songs in [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) that you can use. @@ -101,7 +99,7 @@ To reset to the bootloader use `QK_BOOTLOADER` or `QK_BOOT` keycode or `reset_ke ## Wiping the EEPROM (Persistent Storage) -If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so. +If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic Lite](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so. To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default. diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md index 4f2ddfffe8..dffed5c0c3 100644 --- a/docs/reference_configurator_support.md +++ b/docs/reference_configurator_support.md @@ -156,25 +156,25 @@ For more on the `info.json` files, see [`info.json` Format](reference_info_json) The Configurator's API uses the layout macro and the JSON file we've given it to create a visual representation of the keyboard that has each visual object tied to a specific key, in sequence: -| Key in layout macro | JSON object used | -| ------------------- | ---------------------------------------- | -| k00 | `{"label":"Num Lock", "x":0, "y":0}` | -| k01 | `{"label":"/", "x":1, "y":0}` | -| k02 | `{"label":"*", "x":2, "y":0}` | -| k03 | `{"label":"-", "x":3, "y":0}` | -| k10 | `{"label":"7", "x":0, "y":1}` | -| k11 | `{"label":"8", "x":1, "y":1}` | -| k12 | `{"label":"9", "x":2, "y":1}` | -| k13 | `{"label":"+", "x":3, "y":1, "h":2}` | -| k20 | `{"label":"4", "x":0, "y":2}` | -| k21 | `{"label":"5", "x":1, "y":2}` | -| k22 | `{"label":"6", "x":2, "y":2}` | -| k30 | `{"label":"1", "x":0, "y":3}` | -| k31 | `{"label":"2", "x":1, "y":3}` | -| k32 | `{"label":"3", "x":2, "y":3}` | -| k33 | `{"label":"Enter", "x":3, "y":3, "h":2}` | -| k40 | `{"label":"0", "x":0, "y":4, "w":2}` | -| k42 | `{"label":".", "x":2, "y":4}` | +key in layout macro | JSON object used +:---: | :---- +k00 | {"label":"Num Lock", "x":0, "y":0} +k01 | {"label":"/", "x":1, "y":0} +k02 | {"label":"*", "x":2, "y":0} +k03 | {"label":"-", "x":3, "y":0} +k10 | {"label":"7", "x":0, "y":1} +k11 | {"label":"8", "x":1, "y":1} +k12 | {"label":"9", "x":2, "y":1} +k13 | {"label":"+", "x":3, "y":1, "h":2} +k20 | {"label":"4", "x":0, "y":2} +k21 | {"label":"5", "x":1, "y":2} +k22 | {"label":"6", "x":2, "y":2} +k30 | {"label":"1", "x":0, "y":3} +k31 | {"label":"2", "x":1, "y":3} +k32 | {"label":"3", "x":2, "y":3} +k33 | {"label":"Enter", "x":3, "y":3, "h":2} +k40 | {"label":"0", "x":0, "y":4, "w":2} +k42 | {"label":".", "x":2, "y":4} When a user selects the top-left key in the Configurator, and assigns Num Lock to it, the Configurator builds a keymap file with `KC_NUM` as the first key, and so on as the keymap is built. The `label` keys are not used; they are only for the user's reference in identifying specific keys when debugging the `info.json` file. @@ -189,25 +189,15 @@ Currently, the Configurator does not support key rotation or non-rectangular key For ISO Enter keys, QMK custom is to display it as a rectangular key, 1.25u wide and 2u high, aligned so its right edge is aligned with the right edge of the alphanumeric key block. -![](/JKngtTw.png) +![](https://i.imgur.com/JKngtTw.png) *A 60% keyboard in standard ISO layout, as rendered by QMK Configurator.* #### Vertically-offset keys For vertically-offset keys, place them in KLE as if they were not offset, then edit the Y-values as needed in the converted JSON file -![](/fmDvDzR.png) +![](https://i.imgur.com/fmDvDzR.png) *An 1800-layout keyboard as rendered in Keyboard Layout Editor, without the vertical offset applied to the arrow keys.* -```diff --{"label": "\u2191", "x", 14.25, "y": 5}, -+{"label": "\u2191", "x", 14.25, "y": 5.25}, -... --{"label": "\u2190", "x", 13.25, "y": 6}, --{"label": "\u2193", "x", 14.25, "y": 6}, --{"label": "\u2192", "x", 15.25, "y": 6}, -+{"label": "\u2190", "x", 13.25, "y": 6.25}, -+{"label": "\u2193", "x", 14.25, "y": 6.25}, -+{"label": "\u2192", "x", 15.25, "y": 6.25}, -``` -*A diff showing the changes needed to vertically-offset the arrow keys in our keyboard's JSON file.* +![](https://i.imgur.com/8beYMBR.png) +*A Unix diff file, showing the changes needed to vertically-offset the arrow keys in our keyboard's JSON file.* diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 84377ef36c..e658b48b71 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -2,55 +2,55 @@ The information contained in `info.json` is combined with the `config.h` and `rules.mk` files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the [QMK API](https://github.com/qmk/qmk_api), and contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. Its key/value pairs are ruled by the [`data/schemas/keyboard.jsonschema`](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema) file. To learn more about the why and how of the schema file see the [Data Driven Configuration](data_driven_config) page. -You can create `info.json` files at every level under `qmk_firmware/keyboards/`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies information common to all Clueboard products, such as `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` contains more specific information about Clueboard 66%. +You can create `info.json` files at every level under `qmk_firmware/keyboards/`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies information common to all Clueboard products, such as `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` contains more specific information about Clueboard 66%. ## General Metadata {#general-metadata} -* `keyboard_name` String Required +* `keyboard_name` (Required) * A free-form text string describing the keyboard. This will be used as the USB product string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ). * Example: `"Clueboard 66%"` -* `maintainer` String Required +* `maintainer` (Required) * GitHub username of the maintainer, or `qmk` for community maintained boards. * Example: `"skullydazed"` -* `manufacturer` String Required +* `manufacturer` (Required) * A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ). * Example: `"Clueboard"` -* `url` String Required - * A URL to the keyboard's product page, [QMK Keyboards](https://browse.qmk.fm/) page, or other page describing information about the keyboard. +* `url` (Required) + * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. * Example: `"https://clueboard.co"` -* `bootloader_instructions` String +* `bootloader_instructions` * Instructions for putting the keyboard into a mode that allows for firmware flashing. * Example: `"Press the button marked RESET on the back of the PCB"` -* `tags` Array: String +* `tags` * A list of tags describing the keyboard. * Example: `["ortho", "split", "rgb"]` ## Hardware Configuration {#hardware-configuration} -* `board` String +* `board` * Override the default ChibiOS board name (ARM-based keyboards only). * Example: `"BLACKPILL_STM32_F411"` -* `bootloader` String +* `bootloader` * The bootloader in use on the keyboard. Required if `development_board` is not specified. -* `development_board` String +* `development_board` * The microcontroller development board, if applicable. * Example: `"promicro"` -* `pin_compatible` String +* `pin_compatible` * The form factor of the development board, if applicable. Must be one of `elite_c`, `promicro`. -* `processor` String +* `processor` * The microcontroller in use on the keyboard. Required if `development_board` is not specified. ## Firmware Configuration {#firmware-configuration} * `build` - * `debounce_type`String + * `debounce_type` * The debounce algorithm to use. Must be one of `asym_eager_defer_pk`, `custom`, `sym_defer_g`, `sym_defer_pk`, `sym_defer_pr`, `sym_eager_pk`, `sym_eager_pr`. - * `firmware_format`String + * `firmware_format` * The format of the final output binary. Must be one of `bin`, `hex`, `uf2`. - * `lto`Boolean + * `lto` * Enable Link-Time Optimization. * Default: `false` -* `features`Object: Boolean +* `features` * A dictionary of features to enable or disable. * Example: ```json @@ -61,38 +61,36 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/Boolean + * `enabled` * Enable locking switch support. * Default: `false` - * `resync` Boolean + * `resync` * Keep switch state consistent with keyboard LED state. * Default: `false` - * `tap_capslock_delay` Number + * `tap_capslock_delay` * The delay between keydown and keyup for Caps Lock tap events in milliseconds. * Default: `80` (80 ms) - * `tap_keycode_delay` Number + * `tap_keycode_delay` * The delay between keydown and keyup for tap events in milliseconds. * Default: `0` (no delay) * `tapping` - * `chordal_hold` Boolean + * `hold_on_other_key_press` * Default: `false` - * `hold_on_other_key_press` Boolean + * `hold_on_other_key_press_per_key` * Default: `false` - * `hold_on_other_key_press_per_key` Boolean + * `permissive_hold` * Default: `false` - * `permissive_hold` Boolean + * `permissive_hold_per_key` * Default: `false` - * `permissive_hold_per_key` Boolean + * `retro` * Default: `false` - * `retro` Boolean + * `retro_per_key` * Default: `false` - * `retro_per_key` Boolean - * Default: `false` - * `term` Number + * `term` * Default: `200` (200 ms) - * `term_per_key` Boolean + * `term_per_key` * Default: `false` - * `toggle` Number + * `toggle` * Default: `5` ## APA102 {#apa102} @@ -100,11 +98,11 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/Pin Required + * `clock_pin` (Required) * The GPIO pin connected to `CI` on the first LED in the chain. - * `data_pin` Pin Required + * `data_pin` (Required) * The GPIO pin connected to `DI` on the first LED in the chain. - * `default_brightness` Number + * `default_brightness` * The initial global brightness level (independent of the RGB data), from 0 to 31. * Default: `31` @@ -114,26 +112,26 @@ Configures the [Audio](features/audio) feature. * `audio` * `default` - * `on` Boolean + * `on` * The default audio enabled state. * Default: `true` - * `clicky` Boolean + * `clicky` * The default audio clicky enabled state. * Default: `true` - * `driver` String + * `driver` * The driver to use. Must be one of `dac_additive`, `dac_basic`, `pwm_software`, `pwm_hardware`. - * `macro_beep` Boolean + * `macro_beep` * Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros. * Default: `false` - * `pins` Array: Pin Required + * `pins` (Required) * The GPIO pin(s) connected to the speaker(s). * `power_control` - * `on_state` 0|1 + * `on_state` * The logical GPIO state required to turn the speaker on. * Default: `1` (on = high) - * `pin` Pin + * `pin` * The GPIO pin connected to speaker power circuit. - * `voices` Boolean + * `voices` * Use multiple audio voices. * Default: `false` @@ -143,74 +141,48 @@ Configures the [Audio](features/audio) feature. Configures the [Backlight](features/backlight) feature. * `backlight` - * `as_caps_lock` Boolean + * `as_caps_lock` * Use the backlight as a Caps Lock indicator. * Default: `false` - * `breathing` Boolean + * `breathing` * Whether backlight breathing is enabled. * Default: `false` - * `breathing_period` Number + * `breathing_period` * The length of one backlight breathing cycle in seconds. * Default: `6` (6 seconds) * `default` - * `on` Boolean + * `on` * The default backlight enabled state. * Default: `true` - * `breathing` Boolean + * `breathing` * The default backlight breathing state. * Default: `false` - * `brightness` Number + * `brightness` * The default brightness level. * Default: `max_brightness` - * `driver` String + * `driver` * The driver to use. Must be one of `custom`, `pwm`, `software`, `timer`. * Default: `"pwm"` - * `levels` Number + * `levels` * The number of brightness levels (excluding off), from 1 to 31. * Default: `3` - * `max_brightness` Number + * `max_brightness` * The maximum PWM value which brightness is scaled to, from 0 to 255. * Default: `255` - * `on_state` 0|1 + * `on_state` * The logical GPIO state required to turn the LEDs on. * Default: `1` (on = high) - * `pin` Pin + * `pin` * The GPIO pin connected to the backlight circuit. - * `pins` Array: Pin + * `pins` * A list of GPIO pins connected to the backlight LEDs (`software` and `timer` drivers only). -## Battery +## Bluetooth {#bluetooth} -Configures the [Battery](features/battery) feature. - -* `battery` - * `adc` - * `pin` Pin Required - * The GPIO pin connected to the voltage divider. - * `reference_voltage` Number - * The ADC reverence voltage, in millivolts. - * Default: `3300` - * `divider_r1` Number - * The voltage divider resistance, in kOhm. Set to 0 to disable. - * Default: `100` - * `divider_r2` Number - * The voltage divider resistance, in kOhm. Set to 0 to disable. - * Default: `100` - * `resolution` Number - * The ADC resolution configured for the ADC Driver. - * Default: `10` - * `driver` String Required - * The driver to use. Must be one of `adc`, `custom`, `vendor`. - * `sample_interval` Number - * The delay between sampling the battery in milliseconds. - * Default: `30000` (30 s) - -## Wireless/Bluetooth {#bluetooth} - -Configures the [Wireless](features/wireless) feature. +Configures the [Bluetooth](features/bluetooth) feature. * `bluetooth` - * `driver` String + * `driver` * The driver to use. Must be one of `custom`, `bluefruit_le`, `rn42`. ## Bootmagic {#bootmagic} @@ -218,10 +190,10 @@ Configures the [Wireless](features/wireless) feature. Configures the [Bootmagic](features/bootmagic) feature. * `bootmagic` - * `enabled` Boolean + * `enabled` * Enables the Bootmagic feature. * Default: `false` - * `matrix` Matrix + * `matrix` * The matrix position of the key to check during startup. This should generally be set to the (physically) top left key. * Default: `[0, 0]` @@ -230,19 +202,19 @@ Configures the [Bootmagic](features/bootmagic) feature. Configures the [Caps Word](features/caps_word) feature. * `caps_word` - * `both_shifts_turns_on` Boolean + * `both_shifts_turns_on` * Activate Caps Word by pressing both Shift keys. * Default: `false` - * `double_tap_shift_turns_on` Boolean + * `double_tap_shift_turns_on` * Activate Caps Word by pressing Left Shift twice. * Default: `false` - * `enabled` Boolean + * `enabled` * Enables the Caps Word feature. * Default: `false` - * `idle_timeout` Number + * `idle_timeout` * The amount of time before Caps Word automatically deactivates in milliseconds. * Default: `5000` (5 seconds) - * `invert_on_shift` Boolean + * `invert_on_shift` * Invert shift state instead of deactivating Caps Word when Shift is pressed. * Default: `false` @@ -251,7 +223,7 @@ Configures the [Caps Word](features/caps_word) feature. Configures the [Combo](features/combo) feature. * `combo` - * `term` Number + * `term` * The amount of time to recognize a combo in milliseconds. * Default: `50` (50 ms) @@ -260,12 +232,12 @@ Configures the [Combo](features/combo) feature. Configures the [DIP Switches](features/dip_switch) feature. * `dip_switch` - * `enabled` Boolean + * `enabled` * Enable the DIP Switches feature. * Default: `false` - * `pins` Array: Pin + * `pins` * A list of GPIO pins connected to the MCU. - * `matrix_grid` Array: Matrix + * `matrix_grid` * A list of matrix locations in the key matrix. * Example: `[ [0,6], [1,6], [2,6] ]` @@ -274,15 +246,15 @@ Configures the [DIP Switches](features/dip_switch) feature. Configures the [EEPROM](drivers/eeprom) driver. * `eeprom` - * `driver` String + * `driver` * The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`. * Default: `"vendor"` * `wear_leveling` - * `driver` String + * `driver` * The driver to use. Must be one of `embedded_flash`, `legacy`, `rp2040_flash`, `spi_flash`, `custom`. - * `backing_size` Number + * `backing_size` * Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. - * `logical_size` Number + * `logical_size` * Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM. ## Encoder {#encoder} @@ -290,41 +262,33 @@ Configures the [EEPROM](drivers/eeprom) driver. Configures the [Encoder](features/encoders) feature. * `encoder` - * `rotary` Array: Object + * `rotary` * A list of encoder objects. - * `pin_a` Pin Required + * `pin_a` (Required) * The GPIO pin connected to the encoder's `A` pin. - * `pin_b` Pin Required + * `pin_b` (Required) * The GPIO pin connected to the encoder's `B` pin. - * `resolution` Number + * `resolution` * The number of edge transitions on both pins required to register an input. * Default: `4` -## Host {#host} - -* `host` - * `default` - * `nkro` Boolean - * The default nkro state. - * Default: `false` - ## Indicators {#indicators} Configures the [LED Indicators](features/led_indicators) feature. * `indicators` - * `caps_lock` Pin + * `caps_lock` * The GPIO pin connected to the Caps Lock LED. - * `compose` Pin + * `compose` * The GPIO pin connected to the Compose LED. - * `kana` Pin + * `kana` * The GPIO pin connected to the Kana LED. - * `num_lock` Pin + * `num_lock` * The GPIO pin connected to the Num Lock LED. - * `on_state` 0|1 + * `on_state` * The logical GPIO state required to turn the LEDs on. * Default: `1` (on = high) - * `scroll_lock` Pin + * `scroll_lock` * The GPIO pin connected to the Scroll Lock LED. ## Layouts {#layouts} @@ -337,10 +301,10 @@ All key positions and rotations are specified in relation to the top-left corner The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize info.json layout data (such as `qmk info -l` and the QMK Configurator) should display this key as expected. -* `community_layouts` Array: String +* `community_layouts` * A list of community layouts supported by the keyboard. * Example: `["60_ansi", "60_iso"]` -* `layout_aliases` Object: String +* `layout_aliases` * A mapping of layout aliases to layout definitions. * Example: ```json @@ -349,36 +313,34 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in "LAYOUT_iso": "LAYOUT_60_iso" } ``` -* `layouts` Object +* `layouts` * A dictionary of layouts supported by the keyboard. - * `LAYOUT_` Object - * `layout` Array: Object + * `LAYOUT_` + * `layout` * A list of key dictionaries comprising the layout. Each key dictionary contains: - * `matrix` Matrix Required + * `matrix` (Required) * The matrix position for the key. * Example: `[0, 4]` (row 0, column 4) - * `x` KeyUnit Required + * `x` (Required) * The absolute position of the key in the horizontal axis, in key units. - * `y` KeyUnit Required + * `y` (Required) * The absolute position of the key in the vertical axis, in key units. - * `h` KeyUnit + * `h` * The height of the key, in key units. * Default: `1` (1u) - * `hand` String - * The handedness of the key for Chordal Hold, either `"L"` (left hand), `"R"` (right hand), or `"*"` (either or exempted handedness). - * `label` String + * `label` * What to name the key. This is *not* a key assignment as in the keymap, but should usually correspond to the keycode for the first layer of the default keymap. * Example: `"Escape"` - * `r` Number + * `r` * The rotation angle in degrees. Currently not implemented. - * `rx` Number + * `rx` * The absolute X position of the rotation axis. Currently not implemented. - * `ry` Number + * `ry` * The absolute Y position of the rotation axis. Currently not implemented. - * `w` KeyUnit + * `w` * The width of the key, in key units. * Default: `1` (1u) - * `encoder` Number + * `encoder` * The index of an encoder this key should be linked to * Example: `{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}` @@ -387,13 +349,13 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in Configures the [Leader Key](features/leader_key) feature. * `leader_key` - * `timing` Boolean + * `timing` * Reset the `timeout` on each keypress. * Default: `false` - * `strict_processing` Boolean + * `strict_processing` * Do not extract the tap keycodes from Layer-Tap and Mod-Tap key events. * Default: `false` - * `timeout` Number + * `timeout` * The amount of time to complete a leader sequence in milliseconds. * Default: `300` (300 ms) @@ -402,7 +364,7 @@ Configures the [Leader Key](features/leader_key) feature. Configures the [LED Matrix](features/led_matrix) feature. * `led_matrix` - * `animations` Object: Boolean + * `animations` * A dictionary of effects to enable or disable. Effects which are absent default to `false`. * Example: ```json @@ -412,82 +374,82 @@ Configures the [LED Matrix](features/led_matrix) feature. "cycle_left_right": false } ``` - * `center_point` Array: Number + * `center_point` * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `default` - * `animation` String + * `animation` * The default effect. Must be one of `led_matrix.animations` * Default: `"solid"` - * `on` Boolean + * `on` * The default enabled state. * Default: `true` - * `val` Number + * `val` * The default brightness level. * Default: `max_brightness` - * `speed` Number + * `speed` * The default animation speed. * Default: `128` - * `driver` String Required + * `driver` (Required) * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. - * `layout` Array: Object Required + * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: - * `flags` Number Required + * `flags` (Required) * A bitfield of flags describing the type of LED. - * `x` Number Required + * `x` (Required) * The position of the LED in the horizontal axis, from 0 to 224. - * `y` Number Required + * `y` (Required) * The position of the LED in the vertical axis, from 0 to 64. - * `matrix` Matrix + * `matrix` * The key matrix position associated with the LED. * Example: `[0, 2]` * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` - * `led_flush_limit` Number + * `led_flush_limit` * Limits in milliseconds how frequently an animation will update the LEDs. * Default: `16` - * `led_process_limit` Number + * `led_process_limit` * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). - * Default: `(led_count + 4) / 5` - * `max_brightness` Number + * Default: `led_count / 5` + * `max_brightness` * The maximum value which brightness is scaled to, from 0 to 255. * Default: `255` - * `react_on_keyup` Boolean + * `react_on_keyup` * Animations react to keyup instead of keydown. * Default: `false` - * `sleep` Boolean + * `sleep` * Turn off the LEDs when the host goes to sleep. * Default: `false` - * `speed_steps` Number - * The value by which to increment the speed. + * `speed_steps` + * The number of speed adjustment steps. * Default: `16` - * `split_count` Array: Number + * `split_count` * For split keyboards, the number of LEDs on each half. * Example: `[16, 16]` - * `timeout` Number + * `timeout` * The LED activity timeout in milliseconds. * Default: `0` (no timeout) - * `val_steps` Number - * The value by which to increment the brightness. + * `val_steps` + * The number of brightness adjustment steps. * Default: `8` ## Matrix {#matrix} -* `debounce` Number +* `debounce` * The debounce time in milliseconds. * Default: `5` (5 ms) -* `diode_direction` String +* `diode_direction` * Which way the diodes are "pointing". Unused for `matrix_pins.direct`. Must be one of `COL2ROW`, `ROW2COL`. * `matrix_pins` - * `cols` Array: Pin + * `cols` * A list of GPIO pins connected to the matrix columns. * Example: `["A0", "A1", "A2"]` - * `custom` Boolean + * `custom` * Whether to use a custom matrix scanning implementation. * Default: `false` - * `custom_lite` Boolean + * `custom_lite` * Whether to use a "lite" custom matrix scanning implementation. * Default: `false` - * `direct` Array: Array: Pin + * `direct` * A 2-dimensional list of GPIO pins connected to each keyswitch, forming the "matrix" rows and columns. * Example: ```json @@ -497,19 +459,16 @@ Configures the [LED Matrix](features/led_matrix) feature. ["C0", "C1", "C2"] ] ``` - * `ghost` Boolean + * `ghost` * Whether the matrix has no anti-ghosting diodes. * Default: `false` - * `input_pressed_state` 0|1 + * `input_pressed_state` * The logical GPIO state of the input pins when a key is pressed. * Default: `0` (pressed = low) - * `io_delay` Number + * `io_delay` * The amount of time to wait between row/col selection and col/row pin reading, in microseconds. * Default: `30` (30 µs) - * `masked` Boolean - * Whether configured intersections should be ignored. - * Default: `false` - * `rows` Array: Pin + * `rows` * A list of GPIO pins connected to the matrix rows. * Example: `["B0", "B1", "B2"]` @@ -518,23 +477,23 @@ Configures the [LED Matrix](features/led_matrix) feature. Configures the [Mouse Keys](features/mouse_keys) feature. * `mouse_key` - * `delay` Number - * `enabled` Boolean + * `delay` + * `enabled` * Enables the Mouse Keys feature. * Default: `false` - * `interval` Number - * `max_speed` Number - * `time_to_max` Number - * `wheel_delay` Number + * `interval` + * `max_speed` + * `time_to_max` + * `wheel_delay` ## One Shot {#one-shot} Configures [One Shot keys](one_shot_keys). * `oneshot` - * `tap_toggle` Number + * `tap_toggle` * The number of times to tap the key in order to hold it. - * `timeout` Number + * `timeout` * The amount of time before the key is released in milliseconds. ## PS/2 {#ps2} @@ -542,30 +501,30 @@ Configures [One Shot keys](one_shot_keys). Configures the [PS/2](features/ps2_mouse) feature. * `ps2` - * `clock_pin` Pin + * `clock_pin` * The GPIO pin connected to `CLK` on the PS/2 device. - * `data_pin` Pin + * `data_pin` * The GPIO pin connected to `DATA` on the PS/2 device. - * `driver` String + * `driver` * The PS/2 driver to use. Must be one of `busywait`, `interrupt`, `usart`, `vendor`. * Default: `"busywait"` - * `enabled` Boolean + * `enabled` * Enable the PS/2 feature. * Default: `false` - * `mouse_enabled` Boolean + * `mouse_enabled` * Enable the PS/2 mouse handling. * Default: `false` ## QMK LUFA Bootloader {#qmk-lufa-bootloader} * `qmk_lufa_bootloader` - * `esc_input` Pin Required + * `esc_input` (Required) * The GPIO pin connected to the designated "exit bootloader" key's row (if `COL2ROW`). - * `esc_output` Pin Required + * `esc_output` (Required) * The GPIO pin connected to the designated "exit bootloader" key's column (if `COL2ROW`). - * `led` Pin + * `led` * The GPIO pin connected to an LED to flash. - * `speaker` Pin + * `speaker` * The GPIO pin connected to a speaker to click (can also be used for a second LED). ## RGBLight {#rgblight} @@ -573,9 +532,9 @@ Configures the [PS/2](features/ps2_mouse) feature. Configures the [RGB Lighting](features/rgblight) feature. * `rgblight` - * `led_count` Number Required + * `led_count` (Required) * The number of LEDs in the chain. - * `animations` Object: Boolean + * `animations` * A dictionary of effects to enable or disable. Effects which are absent default to `false`. * Example: ```json @@ -585,60 +544,60 @@ Configures the [RGB Lighting](features/rgblight) feature. "snake": false } ``` - * `brightness_steps` Number - * The value by which to increment the brightness. + * `brightness_steps` + * The number of brightness adjustment steps. * Default: `17` * `default` - * `animation` String + * `animation` * The default effect. Must be one of `rgblight.animations` * Default: `"static_light"` - * `on` Boolean + * `on` * The default enabled state. * Default: `true` - * `hue` Number + * `hue` * The default hue value. * Default: `0` - * `sat` Number + * `sat` * The default saturation value. * Default: `255` - * `val` Number + * `val` * The default brightness level. * Default: `max_brightness` - * `speed` Number + * `speed` * The default animation speed. * Default: `0` - * `driver` String + * `driver` * The driver to use. Must be one of `apa102`, `custom`, `ws2812`. * Default: `"ws2812"` - * `hue_steps` Number - * The value by which to increment the hue. + * `hue_steps` + * The number of hue adjustment steps. * Default: `8` * `layers` - * `blink` Boolean + * `blink` * Enable layer blinking API. * Default: `false` - * `enabled` Boolean + * `enabled` * Enable RGB Lighting Layers. * Default: `false` - * `max` Number + * `max` * The maximum layer count, from 1 to 32. * Default: `8` - * `led_map` Array: Number + * `led_map` * Remap LED indices. * Example: `[4, 3, 2, 1, 0]` - * `max_brightness` Number + * `max_brightness` * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` - * `saturation_steps` Number - * The value by which to increment the suturation. + * `saturation_steps` + * The number of saturation adjustment steps. * Default: `17` - * `sleep` Boolean + * `sleep` * Turn off the LEDs when the host goes to sleep. * Default: `false` - * `split` Boolean + * `split` * Enable synchronization between split halves. * Default: `false` - * `split_count` Array: Number + * `split_count` * When `rgblight.split` is enabled, the number of LEDs on each half. * Example: `[10, 10]` @@ -647,7 +606,7 @@ Configures the [RGB Lighting](features/rgblight) feature. Configures the [RGB Matrix](features/rgb_matrix) feature. * `rgb_matrix` - * `animations` Object: Boolean + * `animations` * A dictionary of effects to enable or disable. Effects which are absent default to `false`. * Example: ```json @@ -657,74 +616,74 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. "cycle_left_right": false } ``` - * `center_point` Array: Number + * `center_point` * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `default` - * `animation` String + * `animation` * The default effect. Must be one of `rgb_matrix.animations` * Default: `"solid_color"` - * `on` Boolean + * `on` * The default enabled state. * Default: `true` - * `hue` Number + * `hue` * The default hue value. * Default: `0` - * `sat` Number + * `sat` * The default saturation value. * Default: `255` - * `val` Number + * `val` * The default brightness level. * Default: `max_brightness` - * `speed` Number + * `speed` * The default animation speed. * Default: `128` - * `driver` String Required + * `driver` (Required) * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. - * `hue_steps` Number - * The value by which to increment the hue. + * `hue_steps` + * The number of hue adjustment steps. * Default: `8` - * `layout` Array: Object Required + * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: - * `flags` Number Required + * `flags` (Required) * A bitfield of flags describing the type of LED. - * `x` Number Required + * `x` (Required) * The position of the LED in the horizontal axis, from 0 to 224. - * `y` Number Required + * `y` (Required) * The position of the LED in the vertical axis, from 0 to 64. - * `matrix` Matrix + * `matrix` * The key matrix position associated with the LED. * Example: `[0, 2]` * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` - * `led_flush_limit` Number + * `led_flush_limit` * Limits in milliseconds how frequently an animation will update the LEDs. * Default: `16` - * `led_process_limit` Number + * `led_process_limit` * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). - * Default: `(led_count + 4) / 5` - * `max_brightness` Number + * Default: `led_count / 5` + * `max_brightness` * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` - * `react_on_keyup` Boolean + * `react_on_keyup` * Animations react to keyup instead of keydown. * Default: `false` - * `sat_steps` Number - * The value by which to increment the saturation. + * `sat_steps` + * The number of saturation adjustment steps. * Default: `16` - * `sleep` Boolean + * `sleep` * Turn off the LEDs when the host goes to sleep. * Default: `false` - * `speed_steps` Number - * The value by which to increment the speed. + * `speed_steps` + * The number of speed adjustment steps. * Default: `16` - * `split_count` Array: Number + * `split_count` * For split keyboards, the number of LEDs on each half. * Example: `[16, 16]` - * `timeout` Number + * `timeout` * The LED activity timeout in milliseconds. * Default: `0` (no timeout) - * `val_steps` Number - * The value by which to increment the brightness. + * `val_steps` + * The number of brightness adjustment steps. * Default: `16` ## Secure {#secure} @@ -732,16 +691,16 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. Configures the [Secure](features/secure) feature. * `secure` - * `enabled` Boolean + * `enabled` * Enable the Secure feature. * Default: `false` - * `idle_timeout` Number + * `idle_timeout` * Timeout while unlocked before returning to the locked state. Set to `0` to disable. * Default: `60000` (1 minute) - * `unlock_sequence` Array: Matrix + * `unlock_sequence` * A list of up to five matrix locations comprising the "unlock sequence". * Example: `[[0, 0], [0, 1], [4, 3]]` - * `unlock_timeout` Number + * `unlock_timeout` * Timeout for the user to perform the unlock sequence. Set to `0` to disable. * Default: `5000` (5 seconds) @@ -757,7 +716,7 @@ Configures the [Split Keyboard](features/split_keyboard) feature. * `right` * `pins` * See [DIP Switches](#dip-switch) config. - * `enabled` Boolean + * `enabled` * Enable the Split Keyboard feature. * Default: `false` * `encoder` @@ -765,69 +724,69 @@ Configures the [Split Keyboard](features/split_keyboard) feature. * `rotary` * See [Encoder](#encoder) config. * `handedness` - * `pin` Pin + * `pin` * The GPIO pin connected to determine handedness. - * `matrix_grid` Array: Pin + * `matrix_grid` * The GPIO pins of the matrix position which determines the handedness. * Example: `["A1", "B5"]` * `matrix_pins` * `right` * See [Matrix](#matrix) config. * `serial` - * `driver` String + * `driver` * The driver to use. Must be one of `bitbang`, `usart`, `vendor`. * Default: `"bitbang"` - * `pin` Pin + * `pin` * The GPIO pin to use for transmit and receive. - * `speed` Number - * The protocol speed, from `0` to `5` (fastest to slowest). - * Default: `1` + * `soft_serial_speed` + * The protocol speed, from `0` to `5` (`serial` transport protocol only). + * Default: `1` * `transport` - * `protocol` String + * `protocol` * The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`. * `sync` - * `activity` Boolean + * `activity` * Mirror the activity timestamps to the secondary half. * Default: `false` - * `detected_os` Boolean + * `detected_os` * Mirror the [detected OS](features/os_detection) to the secondary half. * Default: `false` - * `haptic` Boolean + * `haptic` * Mirror the haptic state and process haptic feedback to the secondary half. * Default: `false` - * `layer_state` Boolean + * `layer_state` * Mirror the layer state to the secondary half. * Default: `false` - * `indicators` Boolean + * `indicators` * Mirror the indicator state to the secondary half. * Default: `false` - * `matrix_state` Boolean + * `matrix_state` * Mirror the main/primary half's matrix state to the secondary half. * Default: `false` - * `modifiers` Boolean + * `modifiers` * Mirror the modifier state to the secondary half. * Default: `false` - * `oled` Boolean + * `oled` * Mirror the OLED on/off status to the secondary half. * Default: `false` - * `st7565` Boolean + * `st7565` * Mirror the ST7565 on/off status to the secondary half. * Default: `false` - * `wpm` Boolean + * `wpm` * Mirror the current WPM value to the secondary half. * Default: `false` - * `watchdog` Boolean + * `watchdog` * Reboot the secondary half if it loses connection. * Default: `false` - * `watchdog_timeout` Number + * `watchdog_timeout` * The amount of time to wait for communication from the primary half in milliseconds. * `usb_detect` - * `enabled` Boolean + * `enabled` * Detect USB connection when determining split half roles. - * `polling_interval` Number + * `polling_interval` * The polling frequency in milliseconds. * Default: `10` (10 ms) - * `timeout` Number + * `timeout` * The amount of time to wait for a USB connection in milliseconds. * Default: `2000` (2 seconds) @@ -836,45 +795,48 @@ Configures the [Split Keyboard](features/split_keyboard) feature. Configures the [Stenography](features/stenography) feature. * `stenography` - * `enabled` Boolean + * `enabled` * Enable the Stenography feature. * Default: `false` - * `protocol` String + * `protocol` * The Steno protocol to use. Must be one of `all`, `geminipr`, `txbolt`. * Default: `"all"` ## USB {#usb} * `usb` - * `device_version` String Required + * `device_version` (Required) * A BCD version number in the format `MM.m.r` (up to `99.9.9`). * Example: `"1.0.0"` - * `pid` String Required + * `pid` (Required) * The USB product ID as a four-digit hexadecimal number. * Example: `"0x23B0"` - * `vid` String Required + * `vid` (Required) * The USB vendor ID as a four-digit hexadecimal number. * Example: `"0xC1ED"` - * `max_power` Number + * `force_nkro` + * Force NKRO to be active. + * Default: `false` + * `max_power` * The maximum current draw the host should expect from the device. This does not control the actual current usage. * Default: `500` (500 mA) - * `no_startup_check` Boolean + * `no_startup_check` * Disable USB suspend check after keyboard startup. * Default: `false` - * `polling_interval` Number + * `polling_interval` * The frequency at which the host should poll the keyboard for reports. * Default: `1` (1 ms/1000 Hz) * `shared_endpoint` - * `keyboard` Boolean + * `keyboard` * Send keyboard reports through the "shared" USB endpoint. * Default: `false` - * `mouse` Boolean + * `mouse` * Send mouse reports through the "shared" USB endpoint. * Default: `true` - * `suspend_wakeup_delay` Number + * `suspend_wakeup_delay` * The amount of time to wait after sending a wakeup packet, in milliseconds. * Default: `0` (disabled) - * `wait_for_enumeration` Boolean + * `wait_for_enumeration` * Force the keyboard to wait for USB enumeration before starting up. * Default: `false` @@ -883,17 +845,17 @@ Configures the [Stenography](features/stenography) feature. Configures the [WS2812](drivers/ws2812) driver. * `ws2812` - * `driver` String + * `driver` * The driver to use. Must be one of `bitbang`, `custom`, `i2c`, `pwm`, `spi`, `vendor`. * Default: `"bitbang"` - * `pin` Pin Required + * `pin` (Required) * The GPIO pin connected to `DI` on the first LED in the chain (`bitbang`, `pwm`, `spi` and `vendor` drivers only). - * `i2c_address` String + * `i2c_address` * The I²C address of the WS2812 controller (`i2c` driver only). * Default: `"0xB0"` - * `i2c_timeout` Number + * `i2c_timeout` * The I²C timeout in milliseconds (`i2c` driver only). * Default: `100` (100 ms) - * `rgbw` Boolean + * `rgbw` * Enable RGBW LEDs. * Default: `false` diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index c871773651..d45183b6c6 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -2,31 +2,9 @@ Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`. -Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These are used in place of the `KC_` prefixed ones. They won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. The language-specific keycode aliases are defined in the files listed in the [Keycodes Header](#header-files) column below. +Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. -## Selecting Your Host Keyboard Layout - -To select a host keyboard layout, simply `#include` one of the [keycode headers](#header-files) below at the top of your `keymap.c`. Example: - -```c -#include QMK_KEYBOARD_H - -#include "keymap_japanese.h" // [!code focus] -``` - -Alternatively, if using `keymap.json`, add the `host_language` key as shown in the following example. The available languages are those with a _Sendstring LUT Header_ entry in one of the [Header Files](#header-files) tables. - -```json -{ - "keyboard": "handwired/my_macropad", - "keymap": "my_keymap", - "host_language": "swedish", // [!code focus] - "layout": "LAYOUT_all", - "layers": [ - ["SE_ARNG"] - ] -} -``` +Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones. ## Sendstring Support @@ -55,7 +33,6 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` | |English (US International, Linux)|`keymap_us_international_linux.h`| | |Estonian |`keymap_estonian.h` |`sendstring_estonian.h` | -|EurKEY |`keymap_eurkey.h` | | |Farsi |`keymap_farsi.h` | | |Finnish |`keymap_finnish.h` |`sendstring_finnish.h` | |French |`keymap_french.h` |`sendstring_french.h` | diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index 458b442d59..c3f3d3c6e1 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -5,14 +5,14 @@ AVR is severely resource-constrained, and as QMK continues to grow, it is approa However, if you need to reduce the compiled size of your firmware to fit the controller's limited flash size, there are a number of options to do so. ## `rules.mk` Settings -First and foremost is enabling link time optimization. To do so, add this to your rules.mk: +First and foremost is enabling link time optimization. To do so, add this to your rules.mk: ```make LTO_ENABLE = yes ``` This will cause the final step to take longer, but should get you a smaller compiled size. This also disables Action Functions, and Action Macros, both of which are deprecated. This will get you the most savings, in most situations. -From there, disabling extraneous systems will help -- e.g.: +From there, disabling extraneous systems will help -- e.g.: ```make CONSOLE_ENABLE = no COMMAND_ENABLE = no @@ -21,10 +21,10 @@ EXTRAKEY_ENABLE = no ``` This disables some of the functionality that you may not need. But note that extrakeys disables stuff like the media keys and system volume control. -If that isn't enough to get your firmware down to size, then there are some additional features that you can disable: +If that isn't enough to get your firmware down to size, then there are some additional features that you can disable: ```make SPACE_CADET_ENABLE = no -GRAVE_ESC_ENABLE = no +GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no ``` These features are enabled by default, but they may not be needed. Double check to make sure. The [Magic Keycodes](keycodes_magic) are the largest and control things like NKRO toggling, GUI and ALT/CTRL swapping, etc. Disabling them will disable those functions. See [Magic Functions](#magic-functions) for disabling related functions. @@ -51,7 +51,7 @@ Starting with Lock Key support. If you have a Cherry MX Lock switch (lucky you!) #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE ``` -Oneshots. If you're not using these, you can disable the feature by adding this to your `config.h`: +Oneshots. If you're not using these, you can disable the feature by adding this to your `config.h`: ```c #define NO_ACTION_ONESHOT ``` @@ -61,7 +61,7 @@ The same with tapping keys (mod tap, layer tap, etc) ``` ## Audio Settings -If you're using the Audio feature, by default that includes the music mode feature. This translates matrix positions into notes. It's neat for sure, but most likely, you're not using it. You can disable it by adding this to your `config.h`: +If you're using the Audio feature, by default that includes the music mode feature. This tranlates matrix positions into notes. It's neat for sure, but most likely, you're not using it. You can disable it by adding this to your `config.h`: ```c #define NO_MUSIC_MODE ``` @@ -124,7 +124,7 @@ into this: oled_write_P(PSTR("WPM: "), false); oled_write(get_u8_str(get_current_wpm(), ' '), false); ``` -which outputs `WPM: 5`. Or this: +which outputs `WPM: 5`. Or this: ```c // NEW CODE oled_write_P(PSTR("WPM: "), false); diff --git a/docs/syllabus.md b/docs/syllabus.md index b68ded2d35..3082f1ebd5 100644 --- a/docs/syllabus.md +++ b/docs/syllabus.md @@ -55,7 +55,7 @@ Everything below here requires a lot of foundational knowledge. Besides being ab * **Advanced Features** * [Unicode](features/unicode) * [API](api_overview) - * [Bootmagic](features/bootmagic) + * [Bootmagic Lite](features/bootmagic) * **Hardware** * [How Keyboards Work](how_keyboards_work) * [How A Keyboard Matrix Works](how_a_matrix_works) diff --git a/docs/tap_hold.md b/docs/tap_hold.md index bc2c505040..9b7f6552cb 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -1,15 +1,15 @@ # Tap-Hold Configuration Options -While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people. +While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people. -These options let you modify the behavior of the tap-hold keys. +These options let you modify the behavior of the Tap-Hold keys. ## Tapping Term -The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. The exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key. +The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. The exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key. ::: tip -`DYNAMIC_TAPPING_TERM_ENABLE` enables three special keys that can help you quickly find a comfortable tapping term for you. See [Dynamic Tapping Term](#dynamic-tapping-term) for more details. +`DYNAMIC_TAPPING_TERM_ENABLE` enables three special keys that can help you quickly find a comfortable tapping term for you. See "Dynamic Tapping Term" for more details. ::: You can set the global time for this by adding the following setting to your `config.h`: @@ -18,14 +18,14 @@ You can set the global time for this by adding the following setting to your `co #define TAPPING_TERM 200 ``` -This setting is defined in milliseconds and defaults to 200ms. This is a good average for the majority of people. +This setting is defined in milliseconds and defaults to 200ms. This is a good average for the majority of people. For more granular control of this feature, you can add the following to your `config.h`: ```c #define TAPPING_TERM_PER_KEY ``` -You can then add the following function to your `keymap.c` to customise the tapping term for each key: +You can then add the following function to your keymap: ```c uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { @@ -40,41 +40,9 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } ``` -### Example - -You can compare keycodes to `QK_MOD_TAP`/`QK_MOD_TAP_MAX` and `QK_LAYER_TAP`/`QK_LAYER_TAP_MAX` to filter out Mod-Tap/Layer-Tap keys, rather than checking such keys manually in a switch-case. For instance, this example sets all Mod-Tap keys to have a higher tapping term, while leaving all other tap-hold keys unchanged: - -```c -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - return TAPPING_TERM + 100; - default: - return TAPPING_TERM; - } -} -``` - -You can also use functions like `QK_MOD_TAP_GET_MODS`, `QK_LAYER_MOD_GET_MODS`, and `QK_ONE_SHOT_MOD_GET_MODS` to filter Mod-Tap/Layer-Mod/One Shot keys by their mods. - -For instance, this example sets a higher tapping term for `AltGr` Mod-Taps and lower tapping terms for `Shift` Mod-Taps: - -```c -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - uint8_t mod = mod_config(QK_MOD_TAP_GET_MODS(keycode)); - if (mod & MOD_LSFT != 0 || mod & MOD_RSFT != 0) { - return 100; - } - if (mod & MOD_RALT != 0) { - return TAPPING_TERM + 50; - } - return TAPPING_TERM; -} -``` - ### Dynamic Tapping Term {#dynamic-tapping-term} -`DYNAMIC_TAPPING_TERM_ENABLE` is a feature you can enable in `rules.mk` that lets you use three special keys in your keymap to configure the tapping term on the fly: +`DYNAMIC_TAPPING_TERM_ENABLE` is a feature you can enable in `rules.mk` that lets you use three special keys in your keymap to configure the tapping term on the fly. | Key | Aliases | Description | |-------------------------------|---------|-------------------------------------------------------------------------------------------| @@ -84,13 +52,13 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { Set the tapping term as usual with `#define TAPPING_TERM ` in `config.h` and add `DYNAMIC_TAPPING_TERM_ENABLE = yes` in `rules.mk`. Then, place the above three keys somewhere in your keymap and flash the new firmware onto your board. -Now, you can try using your dual-role keys such as Layer-Taps and Mod-Taps and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your Mod-Tap(s) by accident, for example, that's a sign that your tapping term may be too low, so tap `DT_UP` a few times to increase the tapping term until that no longer happens. Conversely, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly. +Now, you can try using your dual-role keys, such as layer-taps and mod-taps, and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your mod-tap(s) by accident, for example, that's a sign that your tapping term may be too low so tap `DT_UP` a few times to increase the tapping term until that no longer happens. On the flip side, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly. -Once you're satisfied with the current tapping term value, you can tap the `DT_PRNT` key to see your new tapping term, and you can replace the tapping term in `config.h` with this new value. +Once you're satisfied with the current tapping term value, open `config.h` and replace whatever value you first wrote for the tapping term by the output of the `DT_PRNT` key. -It's important to update `TAPPING_TERM` with the new value because the adjustments made using `DT_UP` and `DT_DOWN` are *not* persistent. +It's important to update `TAPPING_TERM` with the new value because the adjustments made using `DT_UP` and `DT_DOWN` are not persistent. -The value by which the tapping term increases or decreases when you tap `DT_UP` and `DT_DOWN` can be configured in `config.h` with `#define DYNAMIC_TAPPING_TERM_INCREMENT `. Note that the tapping term is *not* modified when *holding* down the tap term keys, so if you need to, for example, decrease the current tapping term by 50ms, you cannot just press down and hold `DT_DOWN`; you will have to tap it 10 times in a row with the default increment of 5ms. +The value by which the tapping term increases or decreases when you tap `DT_UP` and `DT_DOWN` can be configured in `config.h` with `#define DYNAMIC_TAPPING_TERM_INCREMENT `. Note that the tapping term is *not* modified when holding down the tap term keys so if you need to, for example, decrease the current tapping term by 50ms, you cannot just press down and hold `DT_DOWN`; you will have to tap it 10 times in a row with the default increment of 5ms. If you need more flexibility, nothing prevents you from defining your own custom keys to dynamically change the tapping term. @@ -129,7 +97,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; ``` -In order for this feature to be effective, if you use per-key tapping terms, then you need to make a few changes to the syntax of the `get_tapping_term` function. All you need to do is replace every occurrence of `TAPPING_TERM` in the `get_tapping_term` function by lowercase `g_tapping_term`. If you don't do this, you will still see the value typed by `DT_PRNT` go up and down as you configure the tapping term on the fly, but you won't feel those changes as they don't get applied. If you can go as low as 10ms and still easily trigger the tap function of a dual-role key, that's a sign that you forgot to make the necessary changes to your `get_tapping_term` function. +In order for this feature to be effective if you use per-key tapping terms, you need to make a few changes to the syntax of the `get_tapping_term` function. All you need to do is replace every occurrence of `TAPPING_TERM` in the `get_tapping_term` function by lowercase `g_tapping_term`. If you don't do that, you will still see the value typed by `DT_PRNT` go up and down as you configure the tapping term on the fly but you won't feel those changes as they don't get applied. If you can go as low as 10ms and still easily trigger the tap function of a dual-role key, that's a sign that you forgot to make the necessary changes to your `get_tapping_term` function. For instance, here's how the example `get_tapping_term` shown earlier should look after the transformation: @@ -146,23 +114,23 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } ``` -The reason is that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime, whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration. +The reason is that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration. ## Tap-Or-Hold Decision Modes The code which decides between the tap and hold actions of dual-role keys supports three different modes, in increasing order of preference for the hold action: -1. The default mode selects the hold action only if the dual-role key is held down longer than the tapping term. In this mode, pressing other keys while the dual-role key is held down does not influence the tap-or-hold decision. In other words, this mode ignores interrupts. +1. The default mode selects the hold action only if the dual-role key is held down longer than the tapping term. In this mode pressing other keys while the dual-role key is held down does not influence the tap-or-hold decision. In other words, this mode ignores interrupts. -2. The "permissive hold" mode, in addition to the default behavior, immediately selects the hold action when another key is tapped (pressed and then released) while the dual-role key is held down, even if this happens earlier than the tapping term. If another key is just pressed, but then the dual-role key is released before that other key (and earlier than the tapping term), this mode will still select the tap action. That is, this mode converts "nested" sequences, but not "rolls". +2. The “permissive hold” mode, in addition to the default behavior, immediately selects the hold action when another key is tapped (pressed and then released) while the dual-role key is held down, even if this happens earlier than the tapping term. If another key is just pressed, but then the dual-role key is released before that other key (and earlier than the tapping term), this mode will still select the tap action. -3. The "hold on other key press" mode, in addition to the default behavior, immediately selects the hold action when another key is pressed while the dual-role key is held down, even if this happens earlier than the tapping term. +3. The “hold on other key press” mode, in addition to the default behavior, immediately selects the hold action when another key is pressed while the dual-role key is held down, even if this happens earlier than the tapping term. Note that until the tap-or-hold decision completes (which happens when either the dual-role key is released, or the tapping term has expired, or the extra condition for the selected decision mode is satisfied), key events are delayed and not transmitted to the host immediately. The default mode gives the most delay (if the dual-role key is held down, this mode always waits for the whole tapping term), and the other modes may give less delay when other keys are pressed, because the hold action may be selected earlier. ### Comparison {#comparison} -To better illustrate the tap-or-hold decision modes, let us compare the expected output of each decision mode in a handful of tapping scenarios involving a Mod-Tap key (`LSFT_T(KC_A)`) and a regular key (`KC_B`) with the `TAPPING_TERM` set to 200ms. +To better illustrate the tap-or-hold decision modes, let us compare the expected output of each decision mode in a handful of tapping scenarios involving a mod-tap key (`LSFT_T(KC_A)`) and a regular key (`KC_B`) with the `TAPPING_TERM` set to 200ms. Note: "`kc` held" in the "Physical key event" column means that the key wasn't physically released yet at this point in time. @@ -260,7 +228,7 @@ The above sequence will not send `KC_RGHT` but `KC_A` `KC_L` instead, since `LT( --- -Example sequence 3 (Mod-Tap): +Example sequence 3 (Mod Tap): ``` TAPPING_TERM @@ -278,17 +246,17 @@ followed by any key event that happened after the initial press of `SFT_T(KC_A)` ### Permissive Hold -The "permissive hold" mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`: +The “permissive hold” mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`: ```c #define PERMISSIVE_HOLD ``` -This makes tap and hold keys (like Layer-Tap) work better for fast typists, or for high `TAPPING_TERM` settings. +This makes tap and hold keys (like Layer Tap) work better for fast typists, or for high `TAPPING_TERM` settings. -If you press a dual-role key, tap another key (press and release) and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `PERMISSIVE_HOLD` option is enabled, the dual-role key will perform its hold action instead. +If you press a dual-role key, tap another key (press and release) and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `PERMISSIVE_HOLD` option is enabled, the dual-role key will perform its hold action instead. -An example of a sequence that is affected by the "permissive hold" mode: +An example of a sequence that is affected by the “permissive hold” mode: - `LT(2, KC_A)` Down - `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2) @@ -307,9 +275,9 @@ An example of a sequence that is affected by the "permissive hold" mode: +---------------------------|--------+ ``` -Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer-Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a "nested tap" (the modified key's key down and key up events are "nested" between the dual-role key's key down and key up events). +Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a “nested tap” (the modified key's key down and key up events are “nested” between the dual-role key's key down and key up events). -However, this slightly different sequence will not be affected by the "permissive hold" mode: +However, this slightly different sequence will not be affected by the “permissive hold” mode: - `LT(2, KC_A)` Down - `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2) @@ -328,10 +296,10 @@ However, this slightly different sequence will not be affected by the "permissiv +---------------------------|--------+ ``` -In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the "permissive hold" mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a "rolling press" (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order). +In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the “permissive hold” mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a “rolling press” (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order). ::: tip -The `PERMISSIVE_HOLD` option is not noticeable if you also enable `HOLD_ON_OTHER_KEY_PRESS` because the latter option considers both the "nested tap" and "rolling press" sequences like shown above as a hold action, not the tap action. `HOLD_ON_OTHER_KEY_PRESS` makes the tap-or-hold decision earlier in the chain of key events, thus taking a precedence over `PERMISSIVE_HOLD`. +The `PERMISSIVE_HOLD` option is not noticeable if you also enable `HOLD_ON_OTHER_KEY_PRESS` because the latter option considers both the “nested tap” and “rolling press” sequences like shown above as a hold action, not the tap action. `HOLD_ON_OTHER_KEY_PRESS` makes the Tap-Or-Hold decision earlier in the chain of key events, thus taking a precedence over `PERMISSIVE_HOLD`. ::: For more granular control of this feature, you can add the following to your `config.h`: @@ -355,21 +323,19 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { } ``` -As in the earlier example, you can filter Mod-Tap/Layer-Mod/One Shot keys by their mods rather than checking such keys manually in a switch-case. (Also applicable to the other following `PER_KEY` functions.) - ### Hold On Other Key Press -The "hold on other key press" mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`: +The “hold on other key press” mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`: ```c #define HOLD_ON_OTHER_KEY_PRESS ``` -This mode makes tap and hold keys (like Layer-Tap) work better for fast typists, or for high `TAPPING_TERM` settings. Compared to the "permissive hold" mode, this mode selects the hold action in more cases. +This mode makes tap and hold keys (like Layer Tap) work better for fast typists, or for high `TAPPING_TERM` settings. Compared to the “permissive hold” mode, this mode selects the hold action in more cases. -If you press a dual-role key, press another key, and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `HOLD_ON_OTHER_KEY_PRESS` option is enabled, the dual-role key will perform its hold action instead. +If you press a dual-role key, press another key, and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `HOLD_ON_OTHER_KEY_PRESS` option is enabled, the dual-role key will perform its hold action instead. -An example of a sequence that is affected by the "hold on other key press" mode, but not by the "permissive hold" mode: +An example of a sequence that is affected by the “hold on other key press” mode, but not by the “permissive hold” mode: - `LT(2, KC_A)` Down - `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2) @@ -388,7 +354,7 @@ An example of a sequence that is affected by the "hold on other key press" mode, +---------------------------|--------+ ``` -Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `HOLD_ON_OTHER_KEY_PRESS` option enabled, the Layer-Tap key is considered as a layer switch if another key is pressed, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). +Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `HOLD_ON_OTHER_KEY_PRESS` option enabled, the Layer Tap key is considered as a layer switch if another key is pressed, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). For more granular control of this feature, you can add the following to your `config.h`: @@ -428,9 +394,9 @@ Example: - `SFT_T(KC_A)` Down - (wait until tapping term expires...) -With default settings, `a` will be sent on the first release, then `a` will be sent on the second press, allowing the computer to trigger its auto repeat function until the key is released. +With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function until the key is released. -With `QUICK_TAP_TERM` configured, the timing between `SFT_T(KC_A)` up and `SFT_T(KC_A)` down must be within `QUICK_TAP_TERM` to trigger auto-repeat. Otherwise, the second press will be sent as a Shift. If `QUICK_TAP_TERM` is set to `0`, the second press will always be sent as a Shift, effectively disabling auto-repeat. +With `QUICK_TAP_TERM` configured, the timing between `SFT_T(KC_A)` up and `SFT_T(KC_A)` down must be within `QUICK_TAP_TERM` to trigger auto repeat. Otherwise the second press will be sent as a Shift. If `QUICK_TAP_TERM` is set to `0`, the second press will always be sent as a Shift, effectively disabling auto-repeat. ::: warning `QUICK_TAP_TERM` timing will also impact anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle). @@ -459,252 +425,6 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { If `QUICK_TAP_TERM` is set higher than `TAPPING_TERM`, it will default to `TAPPING_TERM`. ::: -## Flow Tap - -Flow Tap modifies mod-tap `MT` and layer-tap `LT` keys such that when pressed within a short timeout of the preceding key, the tapping behavior is triggered. This is particularly useful for home row mods to avoid accidental mod triggers. It basically disables the hold behavior during fast typing, creating a "flow of taps." This also helps to reduce the input lag of tap-hold keys during fast typing, since the tapped behavior is sent immediately. - -Flow Tap is enabled by defining `FLOW_TAP_TERM` in your `config.h` with the desired timeout in milliseconds. A timeout of 150 ms is recommended as a starting point: - -```c -#define FLOW_TAP_TERM 150 -``` - -By default, Flow Tap is enabled when: - -* The tap-hold key is pressed within `FLOW_TAP_TERM` milliseconds of the previous key press. - -* The tapping keycodes of the previous key and tap-hold key are *both* among `KC_A`–`KC_Z`, `KC_COMM`, `KC_DOT`, `KC_SCLN`, `KC_SLSH` (the main alphas area of a conventional QWERTY layout) or `KC_SPC`. - -As an exception to the above, Flow Tap is temporarily disabled while a tap-hold key is undecided. This is to allow chording multiple mod-tap keys without having to wait out the Flow Tap term. - - -### is_flow_tap_key() - -Optionally, define the `is_flow_tap_key()` callback to specify where Flow Tap is enabled. The callback is called for both the tap-hold key *and* the key press immediately preceding it, and if the callback returns true for both keycodes, Flow Tap is enabled. - -The default implementation of this callback is: - -```c -bool is_flow_tap_key(uint16_t keycode) { - if ((get_mods() & (MOD_MASK_CG | MOD_BIT_LALT)) != 0) { - return false; // Disable Flow Tap on hotkeys. - } - switch (get_tap_keycode(keycode)) { - case KC_SPC: - case KC_A ... KC_Z: - case KC_DOT: - case KC_COMM: - case KC_SCLN: - case KC_SLSH: - return true; - } - return false; -} -``` - -Copy the above to your `keymap.c` and edit to customize. For instance, remove the `case KC_SPC` line to disable Flow Tap for the Space key. - -### get_flow_tap_term() - -Optionally, for further flexibility, define the `get_flow_tap_term()` callback. Flow Tap acts only when key events are closer together than the time returned by the callback. Return a time of 0 to disable filtering. In this way, Flow Tap may be disabled for certain tap-hold keys, or when following certain previous keys. - -The default implementation of this callback is - -```c -uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, - uint16_t prev_keycode) { - if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { - return FLOW_TAP_TERM; - } - return 0; -} -``` - -In this callback, `keycode` and `record` correspond to the current tap-hold key, and `prev_keycode` is the keycode of the previous key. Return the timeout to use. Returning `0` disables Flow Tap. This callback enables setting per-key timeouts. It is also possible to enable or disable Flow Tap for certain tap-hold keys or when following certain previous keys. Example: - -```c -uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, - uint16_t prev_keycode) { - if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { - switch (keycode) { - case LCTL_T(KC_F): - case RCTL_T(KC_H): - return FLOW_TAP_TERM - 25; // Short timeout on these keys. - - default: - return FLOW_TAP_TERM; // Longer timeout otherwise. - } - } - return 0; // Disable Flow Tap. -} -``` - -::: tip If you define both `is_flow_tap_key()` and `get_flow_tap_term()`, then the latter takes precedence. -::: - -## Chordal Hold - -Chordal Hold is intended to be used together with either Permissive Hold or Hold -On Other Key Press. Chordal Hold is enabled by adding to your `config.h`: - -```c -#define CHORDAL_HOLD -``` - -Chordal Hold implements, by default, an "opposite hands" rule. Suppose a -tap-hold key is pressed and then, before the tapping term, another key is -pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two -keys are on the same hand. - -Otherwise, if the keys are on opposite hands, Chordal Hold introduces no new -behavior. Hold On Other Key Press or Permissive Hold may be used together with -Chordal Hold to configure the behavior in the opposite hands case. With Hold On -Other Key Press, an opposite hands chord is settled immediately as held. Or with -Permissive Hold, an opposite hands chord is settled as held provided the other -key is pressed and released (nested press) before releasing the tap-hold key. - -Chordal Hold may be useful to avoid accidental modifier activation with -mod-taps, particularly in rolled keypresses when using home row mods. - -Notes: - -* Chordal Hold has no effect after the tapping term. - -* Combos are exempt from the opposite hands rule, since "handedness" is - ill-defined in this case. Even so, Chordal Hold's behavior involving combos - may be customized through the `get_chordal_hold()` callback. - -An example of a sequence that is affected by “chordal hold”: - -- `SFT_T(KC_A)` Down -- `KC_C` Down -- `KC_C` Up -- `SFT_T(KC_A)` Up - -``` - TAPPING_TERM - +---------------------------|--------+ - | +----------------------+ | | - | | SFT_T(KC_A) | | | - | +----------------------+ | | - | +--------------+ | | - | | KC_C | | | - | +--------------+ | | - +---------------------------|--------+ -``` - -If the two keys are on the same hand, then this will produce `ac` with -`SFT_T(KC_A)` settled as tapped the moment that `KC_C` is pressed. - -If the two keys are on opposite hands and the `HOLD_ON_OTHER_KEY_PRESS` option -enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when `KC_C` is -pressed. - -Or if the two keys are on opposite hands and the `PERMISSIVE_HOLD` option is -enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when that -`KC_C` is released. - -### Chordal Hold Handedness - -Determining whether keys are on the same or opposite hands involves defining the -"handedness" of each key position. By default, if nothing is specified, -handedness is guessed based on keyboard geometry. - -Handedness may be specified with `chordal_hold_layout`. In keymap.c, define -`chordal_hold_layout` in the following form: - -```c -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = - LAYOUT( - 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', - 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', - 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', - 'L', 'L', 'L', 'R', 'R', 'R' - ); -``` - -Use the same `LAYOUT` macro as used to define your keymap layers. Each entry is -a character indicating the handedness of one key, either `'L'` for left, `'R'` -for right, or `'*'` to exempt keys from the "opposite hands rule." A key with -`'*'` handedness may settle as held in chords with any other key. This could be -used perhaps on thumb keys or other places where you want to allow same-hand -chords. - -Keyboard makers may specify handedness in keyboard.json. Under `"layouts"`, -specify the handedness of a key by adding a `"hand"` field with a value of -either `"L"`, `"R"`, or `"*"`. Note that if `"layouts"` contains multiple -layouts, only the first one is read. For example: - -```json -{"matrix": [5, 6], "x": 0, "y": 5.5, "w": 1.25, "hand": "*"}, -``` - -Alternatively, handedness may be defined functionally with -`chordal_hold_handedness()`. For example, in keymap.c define: - -```c -char chordal_hold_handedness(keypos_t key) { - if (key.col == 0 || key.col == MATRIX_COLS - 1) { - return '*'; // Exempt the outer columns. - } - // On split keyboards, typically, the first half of the rows are on the - // left, and the other half are on the right. - return key.row < MATRIX_ROWS / 2 ? 'L' : 'R'; -} -``` - -Given the matrix position of a key, the function should return `'L'`, `'R'`, or -`'*'`. Adapt the logic in this function according to the keyboard's matrix. - -::: warning -Note the matrix may have irregularities around larger keys, around the edges of -the board, and around thumb clusters. You may find it helpful to use [this -debugging example](faq_debug#which-matrix-position-is-this-keypress) to -correspond physical keys to matrix positions. -::: - -::: tip If you define both `chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS]` and -`chordal_hold_handedness(keypos_t key)` for handedness, the latter takes -precedence. -::: - - -### Per-chord customization - -Beyond the per-key configuration possible through handedness, Chordal Hold may -be configured at a *per-chord* granularity for detailed tuning. In keymap.c, -define `get_chordal_hold()`. Returning `true` allows the chord to be held, while -returning `false` settles as tapped. - -For example: - -```c -bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, - uint16_t other_keycode, keyrecord_t* other_record) { - // Exceptionally allow some one-handed chords for hotkeys. - switch (tap_hold_keycode) { - case LCTL_T(KC_Z): - if (other_keycode == KC_C || other_keycode == KC_V) { - return true; - } - break; - - case RCTL_T(KC_SLSH): - if (other_keycode == KC_N) { - return true; - } - break; - } - // Otherwise defer to the opposite hands rule. - return get_chordal_hold_default(tap_hold_record, other_record); -} -``` - -As shown in the last line above, you may use -`get_chordal_hold_default(tap_hold_record, other_record)` to get the default tap -vs. hold decision according to the opposite hands rule. - - ## Retro Tapping To enable `retro tapping`, add the following to your `config.h`: @@ -748,10 +468,10 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { } ``` -If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using retro-tapping falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a held Mod-Tap key. That way, the programs on your computer will no longer interpret the mod suppression induced by retro-tapping as a lone tap of a modifier key and will thus not falsely trigger the undesired action. +If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using retro-tapping falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a held mod-tap key. That way, the programs on your computer will no longer interpret the mod suppression induced by retro-tapping as a lone tap of a modifier key and will thus not falsely trigger the undesired action. Naturally, for this technique to be effective, you must choose a `DUMMY_MOD_NEUTRALIZER_KEYCODE` for which no keyboard shortcuts are bound to. Recommended values are: `KC_RIGHT_CTRL` or `KC_F18`. -Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode, so values like `KC_NO`, `KC_TRANSPARENT`, or `KC_PIPE` (aka `S(KC_BACKSLASH)`) are not permitted. +Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode so values like `KC_NO`, `KC_TRANSPARENT` or `KC_PIPE` aka `S(KC_BACKSLASH)` are not permitted. By default, only left Alt and left GUI are neutralized. If you want to change the list of applicable modifier masks, use the following in your `config.h`: @@ -777,14 +497,14 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi ### Retro Shift -[Auto Shift](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. +[Auto Shift,](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. ## Why do we include the key record for the per key functions? One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that. -Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.key.row == 3)` instead of checking a whole bunch of keycodes, which is especially good for those people using the tap-hold keys on the home row (see about *home row mods* [here](https://precondition.github.io/home-row-mods)). So, you could fine-tune those to not interfere with your normal typing. +Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.key.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine-tune those to not interfere with your normal typing. ## Why are there no `*_kb` or `*_user` functions?! -Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such. \ No newline at end of file +Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard-level function. Only user-level functions are useful here, so no need to mark them as such. diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index a47617c418..ad5afdc56a 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -51,7 +51,7 @@ Matrix Scanning runs many times per second. The exact rate varies but typically Once we know the state of every switch on our keyboard we have to map that to a keycode. In QMK this is done by making use of C macros to allow us to separate the definition of the physical layout from the definition of keycodes. -At the keyboard level, QMK will generate a macro (typically named `LAYOUT()`) from our configuration file `info.json`, which then maps our keyboard's matrix to physical keys. Sometimes the matrix does not have a switch in every location, and QMK will use this macro to pre-populate those with KC_NO, making the keymap definition easier to work with. Here's an example `LAYOUT()` macro for a numpad: +At the keyboard level we define a C macro (typically named `LAYOUT()`) which maps our keyboard's matrix to physical keys. Sometimes the matrix does not have a switch in every location, and we can use this macro to pre-populate those with KC_NO, making the keymap definition easier to work with. Here's an example `LAYOUT()` macro for a numpad: ```c #define LAYOUT( \ @@ -71,7 +71,7 @@ At the keyboard level, QMK will generate a macro (typically named `LAYOUT()`) fr Notice how the second block of our `LAYOUT()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to. -This macro can handle unusual matrix layouts, for example the [Alice](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/sneakbox/aliceclone/aliceclone.h#L24). Explaining that is outside the scope of this document. +You can also use this macro to handle unusual matrix layouts, for example the [Alice](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/sneakbox/aliceclone/aliceclone.h#L24). Explaining that is outside the scope of this document. ##### Keycode Assignment diff --git a/docs/unit_testing.md b/docs/unit_testing.md index aec4ec8334..3e4c914bf1 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -58,34 +58,6 @@ It's not yet possible to do a full integration test, where you would compile the In that model you would emulate the input, and expect a certain output from the emulated keyboard. -# Keycode String {#keycode-string} - -It's much nicer to read keycodes as names like "`LT(2,KC_D)`" than numerical codes like "`0x4207`." To convert keycodes to human-readable strings, add `KEYCODE_STRING_ENABLE = yes` to the `rules.mk` file, then use the `get_keycode_string(kc)` function to convert a given 16-bit keycode to a string. - -```c -const char *key_name = get_keycode_string(keycode); -dprintf("kc: %s\n", key_name); -``` - -The stringified keycode may then be logged to console output with `dprintf()` or elsewhere. - -::: warning -Use the result of `get_keycode_string()` immediately. Subsequent invocations reuse the same static buffer and overwrite the previous contents. -::: - -Many common QMK keycodes are recognized by `get_keycode_string()`, but not all. These include some common basic keycodes, layer switch keycodes, mod-taps, one-shot keycodes, tap dance keycodes, and Unicode keycodes. As a fallback, an unrecognized keycode is written as a hex number. - -Optionally, `KEYCODE_STRING_NAMES_USER` may be defined to add names for additional keycodes. For example, supposing keymap.c defines `MYMACRO1` and `MYMACRO2` as custom keycodes, the following adds their names: - -```c -KEYCODE_STRING_NAMES_USER( - KEYCODE_STRING_NAME(MYMACRO1), - KEYCODE_STRING_NAME(MYMACRO2), -); -``` - -Similarly, `KEYCODE_STRING_NAMES_KB` may be defined to add names at the keyboard level. - # Tracing Variables {#tracing-variables} Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both variables that are changed by the code, and when the variable is changed by some memory corruption. diff --git a/docs/usb_nkro.txt b/docs/usb_nkro.txt index 5817291b6b..d9f1d12292 100644 --- a/docs/usb_nkro.txt +++ b/docs/usb_nkro.txt @@ -58,7 +58,7 @@ USB NKRO methods Report Format ------------- -Other report formats than following are possible, though these format are typical one. +Other report formats than followings are possible, though these format are typical one. 1. Standard 8bytes modifiers(bitmap) 1byte diff --git a/drivers/battery/battery_adc.c b/drivers/battery/battery_adc.c deleted file mode 100644 index 145265b5db..0000000000 --- a/drivers/battery/battery_adc.c +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "battery_driver.h" -#include "analog.h" -#include "gpio.h" - -#ifndef BATTERY_ADC_PIN -# error("BATTERY_ADC_PIN not configured!") -#endif - -#ifndef BATTERY_ADC_REF_VOLTAGE_MV -# define BATTERY_ADC_REF_VOLTAGE_MV 3300 -#endif - -#ifndef BATTERY_ADC_VOLTAGE_DIVIDER_R1 -# define BATTERY_VOLTAGE_DIVIDER_R1 100 -#endif - -#ifndef BATTERY_ADC_VOLTAGE_DIVIDER_R2 -# define BATTERY_ADC_VOLTAGE_DIVIDER_R2 100 -#endif - -// TODO: infer from adc config? -#ifndef BATTERY_ADC_RESOLUTION -# define BATTERY_ADC_RESOLUTION 10 -#endif - -void battery_driver_init(void) { - gpio_set_pin_input(BATTERY_ADC_PIN); -} - -uint16_t battery_driver_get_mv(void) { - uint32_t raw = analogReadPin(BATTERY_ADC_PIN); - - uint32_t bat_mv = raw * BATTERY_ADC_REF_VOLTAGE_MV / (1 << BATTERY_ADC_RESOLUTION); - -#if BATTERY_VOLTAGE_DIVIDER_R1 > 0 && BATTERY_ADC_VOLTAGE_DIVIDER_R2 > 0 - bat_mv = bat_mv * (BATTERY_VOLTAGE_DIVIDER_R1 + BATTERY_ADC_VOLTAGE_DIVIDER_R2) / BATTERY_ADC_VOLTAGE_DIVIDER_R2; -#endif - - return bat_mv; -} - -uint8_t battery_driver_sample_percent(void) { - uint16_t bat_mv = battery_driver_get_mv(); - - // https://github.com/zmkfirmware/zmk/blob/3f7c9d7cc4f46617faad288421025ea2a6b0bd28/app/module/drivers/sensor/battery/battery_common.c#L33 - if (bat_mv >= 4200) { - return 100; - } else if (bat_mv <= 3450) { - return 0; - } - - return bat_mv * 2 / 15 - 459; -} diff --git a/drivers/battery/battery_driver.h b/drivers/battery/battery_driver.h deleted file mode 100644 index c2ee75e966..0000000000 --- a/drivers/battery/battery_driver.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -/** - * \file - * - * \defgroup battery Battery Driver API - * - * \brief API to query battery status. - * \{ - */ - -/** - * \brief Initialize the battery driver. This function must be called only once, before any of the below functions can be called. - */ -void battery_driver_init(void); - -/** - * \brief Sample battery level. - * - * \return The battery percentage, in the range 0-100. - */ -uint8_t battery_driver_sample_percent(void); - -/** \} */ diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 5fdd104dcf..218eca2195 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -32,8 +32,13 @@ # define BLUEFRUIT_LE_SCK_DIVISOR 2 // 4MHz SCK/8MHz CPU, calculated for Feather 32U4 BLE #endif +#define SAMPLE_BATTERY #define ConnectionUpdateInterval 1000 /* milliseconds */ +#ifndef BATTERY_LEVEL_PIN +# define BATTERY_LEVEL_PIN B5 +#endif + static struct { bool is_connected; bool initialized; @@ -43,6 +48,10 @@ static struct { #define UsingEvents 2 bool event_flags; +#ifdef SAMPLE_BATTERY + uint16_t last_battery_update; + uint32_t vbat; +#endif uint16_t last_connection_update; } state; @@ -540,6 +549,14 @@ void bluefruit_le_task(void) { set_connected(atoi(resbuf)); } } + +#ifdef SAMPLE_BATTERY + if (timer_elapsed(state.last_battery_update) > BatteryUpdateInterval && resp_buf.empty()) { + state.last_battery_update = timer_read(); + + state.vbat = analogReadPin(BATTERY_LEVEL_PIN); + } +#endif } static bool process_queue_item(struct queue_item *item, uint16_t timeout) { @@ -638,6 +655,10 @@ void bluefruit_le_send_mouse(report_mouse_t *report) { } } +uint32_t bluefruit_le_read_battery_voltage(void) { + return state.vbat; +} + bool bluefruit_le_set_mode_leds(bool on) { if (!state.configured) { return false; diff --git a/drivers/bluetooth/bluefruit_le.h b/drivers/bluetooth/bluefruit_le.h index 5efe92b6e0..a3de03c35c 100644 --- a/drivers/bluetooth/bluefruit_le.h +++ b/drivers/bluetooth/bluefruit_le.h @@ -45,6 +45,10 @@ extern void bluefruit_le_send_consumer(uint16_t usage); * change. */ extern void bluefruit_le_send_mouse(report_mouse_t *report); +/* Compute battery voltage by reading an analog pin. + * Returns the integer number of millivolts */ +extern uint32_t bluefruit_le_read_battery_voltage(void); + extern bool bluefruit_le_set_mode_leds(bool on); extern bool bluefruit_le_set_power_level(int8_t level); diff --git a/drivers/bluetooth/bluetooth.c b/drivers/bluetooth/bluetooth.c index e61e24e1f2..d5382401e7 100644 --- a/drivers/bluetooth/bluetooth.c +++ b/drivers/bluetooth/bluetooth.c @@ -1,32 +1,62 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "bluetooth.h" -__attribute__((weak)) void bluetooth_init(void) {} +#if defined(BLUETOOTH_BLUEFRUIT_LE) +# include "bluefruit_le.h" +#elif defined(BLUETOOTH_RN42) +# include "rn42.h" +#endif -__attribute__((weak)) void bluetooth_task(void) {} - -__attribute__((weak)) bool bluetooth_is_connected(void) { - return true; +void bluetooth_init(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_init(); +#elif defined(BLUETOOTH_RN42) + rn42_init(); +#endif } -__attribute__((weak)) bool bluetooth_can_send_nkro(void) { - return false; +void bluetooth_task(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_task(); +#endif } -__attribute__((weak)) uint8_t bluetooth_keyboard_leds(void) { - return 0; +void bluetooth_send_keyboard(report_keyboard_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_keyboard(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_keyboard(report); +#endif } -__attribute__((weak)) void bluetooth_send_keyboard(report_keyboard_t *report) {} +void bluetooth_send_mouse(report_mouse_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_mouse(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_mouse(report); +#endif +} -__attribute__((weak)) void bluetooth_send_nkro(report_nkro_t *report) {} - -__attribute__((weak)) void bluetooth_send_mouse(report_mouse_t *report) {} - -__attribute__((weak)) void bluetooth_send_consumer(uint16_t usage) {} - -__attribute__((weak)) void bluetooth_send_system(uint16_t usage) {} - -__attribute__((weak)) void bluetooth_send_raw_hid(uint8_t *data, uint8_t length) {} +void bluetooth_send_consumer(uint16_t usage) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_consumer(usage); +#elif defined(BLUETOOTH_RN42) + rn42_send_consumer(usage); +#endif +} diff --git a/drivers/bluetooth/bluetooth.h b/drivers/bluetooth/bluetooth.h index bbd41a9194..2e4d0df538 100644 --- a/drivers/bluetooth/bluetooth.h +++ b/drivers/bluetooth/bluetooth.h @@ -30,23 +30,6 @@ void bluetooth_init(void); */ void bluetooth_task(void); -/** - * \brief Detects if Bluetooth is connected. - * - * \return `true` if connected, `false` otherwise. - */ -bool bluetooth_is_connected(void); - -/** - * \brief Detects if `bluetooth_send_nkro` should be used over `bluetooth_send_keyboard`. - */ -bool bluetooth_can_send_nkro(void); - -/** - * \brief Get current LED state. - */ -uint8_t bluetooth_keyboard_leds(void); - /** * \brief Send a keyboard report. * @@ -54,13 +37,6 @@ uint8_t bluetooth_keyboard_leds(void); */ void bluetooth_send_keyboard(report_keyboard_t *report); -/** - * \brief Send a nkro report. - * - * \param report The nkro report to send. - */ -void bluetooth_send_nkro(report_nkro_t *report); - /** * \brief Send a mouse report. * @@ -74,18 +50,3 @@ void bluetooth_send_mouse(report_mouse_t *report); * \param usage The consumer usage to send. */ void bluetooth_send_consumer(uint16_t usage); - -/** - * \brief Send a system usage. - * - * \param usage The system usage to send. - */ -void bluetooth_send_system(uint16_t usage); - -/** - * \brief Send a raw_hid packet. - * - * \param data A pointer to the buffer to be sent. Always 32 bytes in length. - * \param length The length of the buffer. Always 32. - */ -void bluetooth_send_raw_hid(uint8_t *data, uint8_t length); diff --git a/drivers/bluetooth/bluetooth_drivers.c b/drivers/bluetooth/bluetooth_drivers.c deleted file mode 100644 index b91d4501e6..0000000000 --- a/drivers/bluetooth/bluetooth_drivers.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2022 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "bluetooth.h" - -#if defined(BLUETOOTH_BLUEFRUIT_LE) -# include "bluefruit_le.h" -#elif defined(BLUETOOTH_RN42) -# include "rn42.h" -#endif - -void bluetooth_init(void) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - bluefruit_le_init(); -#elif defined(BLUETOOTH_RN42) - rn42_init(); -#endif -} - -void bluetooth_task(void) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - bluefruit_le_task(); -#endif -} - -bool bluetooth_is_connected(void) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - return bluefruit_le_is_connected(); -#else - // TODO: drivers should check if BT is connected here - return true; -#endif -} - -void bluetooth_send_keyboard(report_keyboard_t *report) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - bluefruit_le_send_keyboard(report); -#elif defined(BLUETOOTH_RN42) - rn42_send_keyboard(report); -#endif -} - -void bluetooth_send_mouse(report_mouse_t *report) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - bluefruit_le_send_mouse(report); -#elif defined(BLUETOOTH_RN42) - rn42_send_mouse(report); -#endif -} - -void bluetooth_send_consumer(uint16_t usage) { -#if defined(BLUETOOTH_BLUEFRUIT_LE) - bluefruit_le_send_consumer(usage); -#elif defined(BLUETOOTH_RN42) - rn42_send_consumer(usage); -#endif -} diff --git a/drivers/bluetooth/outputselect.c b/drivers/bluetooth/outputselect.c new file mode 100644 index 0000000000..b986ba274e --- /dev/null +++ b/drivers/bluetooth/outputselect.c @@ -0,0 +1,70 @@ +/* +Copyright 2017 Priyadi Iman Nurcahyo +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "outputselect.h" +#include "usb_util.h" + +#ifdef BLUETOOTH_BLUEFRUIT_LE +# include "bluefruit_le.h" +#endif + +uint8_t desired_output = OUTPUT_DEFAULT; + +/** \brief Set Output + * + * FIXME: Needs doc + */ +void set_output(uint8_t output) { + set_output_user(output); + desired_output = output; +} + +/** \brief Set Output User + * + * FIXME: Needs doc + */ +__attribute__((weak)) void set_output_user(uint8_t output) {} + +/** \brief Auto Detect Output + * + * FIXME: Needs doc + */ +uint8_t auto_detect_output(void) { + if (usb_connected_state()) { + return OUTPUT_USB; + } + +#ifdef BLUETOOTH_BLUEFRUIT_LE + if (bluefruit_le_is_connected()) { + return OUTPUT_BLUETOOTH; + } +#endif + +#ifdef BLUETOOTH_ENABLE + return OUTPUT_BLUETOOTH; // should check if BT is connected here +#endif + + return OUTPUT_NONE; +} + +/** \brief Where To Send + * + * FIXME: Needs doc + */ +uint8_t where_to_send(void) { + if (desired_output == OUTPUT_AUTO) { + return auto_detect_output(); + } + return desired_output; +} diff --git a/drivers/bluetooth/outputselect.h b/drivers/bluetooth/outputselect.h index 25f063bbff..c4548e1122 100644 --- a/drivers/bluetooth/outputselect.h +++ b/drivers/bluetooth/outputselect.h @@ -14,17 +14,21 @@ along with this program. If not, see . #pragma once -#include "connection.h" +#include -// DEPRECATED - DO NOT USE +enum outputs { + OUTPUT_AUTO, -#define OUTPUT_AUTO CONNECTION_HOST_AUTO -#define OUTPUT_NONE CONNECTION_HOST_NONE -#define OUTPUT_USB CONNECTION_HOST_USB -#define OUTPUT_BLUETOOTH CONNECTION_HOST_BLUETOOTH + OUTPUT_NONE, + OUTPUT_USB, + OUTPUT_BLUETOOTH +}; -#define set_output connection_set_host_noeeprom -#define where_to_send connection_get_host -#define auto_detect_output connection_auto_detect_host +#ifndef OUTPUT_DEFAULT +# define OUTPUT_DEFAULT OUTPUT_AUTO +#endif -void set_output_user(uint8_t output); +void set_output(uint8_t output); +void set_output_user(uint8_t output); +uint8_t auto_detect_output(void); +uint8_t where_to_send(void); diff --git a/drivers/eeprom/eeprom_transient.h b/drivers/eeprom/eeprom_transient.h index 0483fd58b9..687b8619fe 100644 --- a/drivers/eeprom/eeprom_transient.h +++ b/drivers/eeprom/eeprom_transient.h @@ -20,6 +20,6 @@ The size of the transient EEPROM buffer size. */ #ifndef TRANSIENT_EEPROM_SIZE -# include "nvm_eeprom_eeconfig_internal.h" +# include "eeconfig.h" # define TRANSIENT_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO #endif diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c index ed2a886854..346b88bbc4 100644 --- a/drivers/haptic/solenoid.c +++ b/drivers/haptic/solenoid.c @@ -158,7 +158,7 @@ void solenoid_setup(void) { #endif gpio_write_pin(solenoid_pads[i], !solenoid_active_state[i]); gpio_set_pin_output(solenoid_pads[i]); - if ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state_get_configure_state() == USB_DEVICE_STATE_CONFIGURED)) { + if ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED)) { solenoid_fire(i); } } diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h deleted file mode 100644 index dbe1cd42fa..0000000000 --- a/drivers/i2c_master.h +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -/** - * \file - * - * \defgroup i2c_master I2C Master API - * - * \brief API to communicate with I2C devices. - * \{ - */ - -typedef int16_t i2c_status_t; - -#define I2C_STATUS_SUCCESS (0) -#define I2C_STATUS_ERROR (-1) -#define I2C_STATUS_TIMEOUT (-2) - -#define I2C_TIMEOUT_IMMEDIATE (0) -#define I2C_TIMEOUT_INFINITE (0xFFFF) - -/** - * \brief Initialize the I2C driver. This function must be called only once, before any of the below functions can be called. - * - * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. - */ -void i2c_init(void); - -/** - * \brief Send multiple bytes to the selected I2C device. - * - * \param address The 7-bit I2C address of the device. - * \param data A pointer to the data to transmit. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); - -#if defined(__AVR__) || defined(__DOXYGEN__) -/** - * \brief Send multiple bytes from PROGMEM to the selected I2C device. - * - * On ARM devices, this function is simply an alias for i2c_transmit(address, data, length, timeout). - * - * \param address The 7-bit I2C address of the device. - * \param data A pointer to the data to transmit. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -#else -# define i2c_transmit_P(address, data, length, timeout) i2c_transmit(address, data, length, timeout) -#endif - -/** - * \brief Receive multiple bytes from the selected I2C device. - * - * \param address The 7-bit I2C address of the device. - * \param data A pointer to a buffer to read into. - * \param length The number of bytes to read. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); - -/** - * \brief Write to a register with an 8-bit address on the I2C device. - * - * \param devaddr The 7-bit I2C address of the device. - * \param regaddr The register address to write to. - * \param data A pointer to the data to transmit. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); - -/** - * \brief Write to a register with a 16-bit address (big endian) on the I2C device. - * - * \param devaddr The 7-bit I2C address of the device. - * \param regaddr The register address to write to. - * \param data A pointer to the data to transmit. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); - -/** - * \brief Read from a register with an 8-bit address on the I2C device. - * - * \param devaddr The 7-bit I2C address of the device. - * \param regaddr The register address to read from. - * \param data A pointer to a buffer to read into. - * \param length The number of bytes to read. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); - -/** - * \brief Read from a register with a 16-bit address (big endian) on the I2C device. - * - * \param devaddr The 7-bit I2C address of the device. - * \param regaddr The register address to read from. - * \param data A pointer to a buffer to read into. - * \param length The number of bytes to read. Take care not to overrun the length of `data`. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); - -/** - * \brief Ping the I2C bus for a specific address. - * - * On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). - * - * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. - * - * \param address The 7-bit I2C address of the device. - * \param timeout The time in milliseconds to wait for a response from the target device. - * - * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. - */ -i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); - -/** \} */ diff --git a/drivers/lcd/st7565.c b/drivers/lcd/st7565.c index f24bb78048..4fce40edbe 100644 --- a/drivers/lcd/st7565.c +++ b/drivers/lcd/st7565.c @@ -19,7 +19,6 @@ along with this program. If not, see . #include -#include "compiler_support.h" #include "keyboard.h" #include "progmem.h" #include "timer.h" @@ -188,8 +187,6 @@ void st7565_render(void) { st7565_send_data(&st7565_buffer[ST7565_BLOCK_SIZE * update_start], ST7565_BLOCK_SIZE); - spi_stop(); - // Turn on display if it is off st7565_on(); @@ -266,7 +263,7 @@ void st7565_write_char(const char data, bool invert) { static uint8_t st7565_temp_buffer[ST7565_FONT_WIDTH]; memcpy(&st7565_temp_buffer, st7565_cursor, ST7565_FONT_WIDTH); - STATIC_ASSERT(sizeof(font) >= ((ST7565_FONT_END + 1 - ST7565_FONT_START) * ST7565_FONT_WIDTH), "ST7565_FONT_END references outside array"); + _Static_assert(sizeof(font) >= ((ST7565_FONT_END + 1 - ST7565_FONT_START) * ST7565_FONT_WIDTH), "ST7565_FONT_END references outside array"); // set the reder buffer data uint8_t cast_data = (uint8_t)data; // font based on unsigned type for index diff --git a/drivers/lcd/st7565.h b/drivers/lcd/st7565.h index 7ab10e23ed..0e42c8765b 100644 --- a/drivers/lcd/st7565.h +++ b/drivers/lcd/st7565.h @@ -116,12 +116,12 @@ void st7565_render(void); void st7565_set_cursor(uint8_t col, uint8_t line); // Advances the cursor to the next page, writing ' ' if true -// Wraps to the beginning when out of bounds +// Wraps to the begining when out of bounds void st7565_advance_page(bool clearPageRemainder); // Moves the cursor forward 1 character length // Advance page if there is not enough room for the next character -// Wraps to the beginning when out of bounds +// Wraps to the begining when out of bounds void st7565_advance_char(void); // Writes a single character to the buffer at current cursor position diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 6a13153374..0cf0ecb401 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -24,7 +24,7 @@ # elif defined(PROTOCOL_CHIBIOS) # include "hal.h" # include "chibios_config.h" -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(AT32F415) || defined(GD32VF103) || defined(MCU_RP) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) || defined(MCU_RP) # define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns # else # error APA102_NOPS configuration required @@ -53,8 +53,8 @@ io_wait; \ } while (0) -rgb_t apa102_leds[APA102_LED_COUNT]; -uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS; +rgb_led_t apa102_leds[APA102_LED_COUNT]; +uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS; static void apa102_send_byte(uint8_t byte) { APA102_SEND_BIT(byte, 7); @@ -122,7 +122,7 @@ void apa102_init(void) { gpio_set_pin_output(APA102_CI_PIN); } -void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue) { apa102_leds[index].r = red; apa102_leds[index].g = green; apa102_leds[index].b = blue; diff --git a/drivers/led/apa102.h b/drivers/led/apa102.h index 6fa3521a3a..42f1344f0c 100644 --- a/drivers/led/apa102.h +++ b/drivers/led/apa102.h @@ -32,7 +32,7 @@ #define APA102_MAX_BRIGHTNESS 31 void apa102_init(void); -void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue); void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void apa102_flush(void); diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 79b980fcdb..b2c097125f 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -22,6 +22,36 @@ #include "gpio.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef AW_SCALING_MAX +# define AW20216S_SCALING_MAX AW_SCALING_MAX +#endif +#ifdef AW_GLOBAL_CURRENT_MAX +# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX +#endif +#ifdef AW_SPI_MODE +# define AW20216S_SPI_MODE AW_SPI_MODE +#endif +#ifdef AW_SPI_DIVISOR +# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR +#endif +#ifdef DRIVER_1_CS +# define AW20216S_CS_PIN_1 DRIVER_1_CS +#endif +#ifdef DRIVER_2_CS +# define AW20216S_CS_PIN_2 DRIVER_2_CS +#endif +#ifdef DRIVER_1_EN +# define AW20216S_EN_PIN DRIVER_1_EN +#endif +#ifdef AW20216S_EN_PIN_1 +# define AW20216S_EN_PIN AW20216S_EN_PIN_1 +#endif + +#define aw_led aw20216s_led_t +#define g_aw_leds g_aw20216s_leds +// ======== + #define AW20216S_ID (0b1010 << 4) #define AW20216S_WRITE 0 #define AW20216S_READ 1 @@ -298,3 +328,233 @@ void aw20216s_flush(void); #define SW12_CS16 0xD5 #define SW12_CS17 0xD6 #define SW12_CS18 0xD7 + +// DEPRECATED - DO NOT USE + +#define CS1_SW1 SW1_CS1 +#define CS2_SW1 SW1_CS2 +#define CS3_SW1 SW1_CS3 +#define CS4_SW1 SW1_CS4 +#define CS5_SW1 SW1_CS5 +#define CS6_SW1 SW1_CS6 +#define CS7_SW1 SW1_CS7 +#define CS8_SW1 SW1_CS8 +#define CS9_SW1 SW1_CS9 +#define CS10_SW1 SW1_CS10 +#define CS11_SW1 SW1_CS11 +#define CS12_SW1 SW1_CS12 +#define CS13_SW1 SW1_CS13 +#define CS14_SW1 SW1_CS14 +#define CS15_SW1 SW1_CS15 +#define CS16_SW1 SW1_CS16 +#define CS17_SW1 SW1_CS17 +#define CS18_SW1 SW1_CS18 + +#define CS1_SW2 SW2_CS1 +#define CS2_SW2 SW2_CS2 +#define CS3_SW2 SW2_CS3 +#define CS4_SW2 SW2_CS4 +#define CS5_SW2 SW2_CS5 +#define CS6_SW2 SW2_CS6 +#define CS7_SW2 SW2_CS7 +#define CS8_SW2 SW2_CS8 +#define CS9_SW2 SW2_CS9 +#define CS10_SW2 SW2_CS10 +#define CS11_SW2 SW2_CS11 +#define CS12_SW2 SW2_CS12 +#define CS13_SW2 SW2_CS13 +#define CS14_SW2 SW2_CS14 +#define CS15_SW2 SW2_CS15 +#define CS16_SW2 SW2_CS16 +#define CS17_SW2 SW2_CS17 +#define CS18_SW2 SW2_CS18 + +#define CS1_SW3 SW3_CS1 +#define CS2_SW3 SW3_CS2 +#define CS3_SW3 SW3_CS3 +#define CS4_SW3 SW3_CS4 +#define CS5_SW3 SW3_CS5 +#define CS6_SW3 SW3_CS6 +#define CS7_SW3 SW3_CS7 +#define CS8_SW3 SW3_CS8 +#define CS9_SW3 SW3_CS9 +#define CS10_SW3 SW3_CS10 +#define CS11_SW3 SW3_CS11 +#define CS12_SW3 SW3_CS12 +#define CS13_SW3 SW3_CS13 +#define CS14_SW3 SW3_CS14 +#define CS15_SW3 SW3_CS15 +#define CS16_SW3 SW3_CS16 +#define CS17_SW3 SW3_CS17 +#define CS18_SW3 SW3_CS18 + +#define CS1_SW4 SW4_CS1 +#define CS2_SW4 SW4_CS2 +#define CS3_SW4 SW4_CS3 +#define CS4_SW4 SW4_CS4 +#define CS5_SW4 SW4_CS5 +#define CS6_SW4 SW4_CS6 +#define CS7_SW4 SW4_CS7 +#define CS8_SW4 SW4_CS8 +#define CS9_SW4 SW4_CS9 +#define CS10_SW4 SW4_CS10 +#define CS11_SW4 SW4_CS11 +#define CS12_SW4 SW4_CS12 +#define CS13_SW4 SW4_CS13 +#define CS14_SW4 SW4_CS14 +#define CS15_SW4 SW4_CS15 +#define CS16_SW4 SW4_CS16 +#define CS17_SW4 SW4_CS17 +#define CS18_SW4 SW4_CS18 + +#define CS1_SW5 SW5_CS1 +#define CS2_SW5 SW5_CS2 +#define CS3_SW5 SW5_CS3 +#define CS4_SW5 SW5_CS4 +#define CS5_SW5 SW5_CS5 +#define CS6_SW5 SW5_CS6 +#define CS7_SW5 SW5_CS7 +#define CS8_SW5 SW5_CS8 +#define CS9_SW5 SW5_CS9 +#define CS10_SW5 SW5_CS10 +#define CS11_SW5 SW5_CS11 +#define CS12_SW5 SW5_CS12 +#define CS13_SW5 SW5_CS13 +#define CS14_SW5 SW5_CS14 +#define CS15_SW5 SW5_CS15 +#define CS16_SW5 SW5_CS16 +#define CS17_SW5 SW5_CS17 +#define CS18_SW5 SW5_CS18 + +#define CS1_SW6 SW6_CS1 +#define CS2_SW6 SW6_CS2 +#define CS3_SW6 SW6_CS3 +#define CS4_SW6 SW6_CS4 +#define CS5_SW6 SW6_CS5 +#define CS6_SW6 SW6_CS6 +#define CS7_SW6 SW6_CS7 +#define CS8_SW6 SW6_CS8 +#define CS9_SW6 SW6_CS9 +#define CS10_SW6 SW6_CS10 +#define CS11_SW6 SW6_CS11 +#define CS12_SW6 SW6_CS12 +#define CS13_SW6 SW6_CS13 +#define CS14_SW6 SW6_CS14 +#define CS15_SW6 SW6_CS15 +#define CS16_SW6 SW6_CS16 +#define CS17_SW6 SW6_CS17 +#define CS18_SW6 SW6_CS18 + +#define CS1_SW7 SW7_CS1 +#define CS2_SW7 SW7_CS2 +#define CS3_SW7 SW7_CS3 +#define CS4_SW7 SW7_CS4 +#define CS5_SW7 SW7_CS5 +#define CS6_SW7 SW7_CS6 +#define CS7_SW7 SW7_CS7 +#define CS8_SW7 SW7_CS8 +#define CS9_SW7 SW7_CS9 +#define CS10_SW7 SW7_CS10 +#define CS11_SW7 SW7_CS11 +#define CS12_SW7 SW7_CS12 +#define CS13_SW7 SW7_CS13 +#define CS14_SW7 SW7_CS14 +#define CS15_SW7 SW7_CS15 +#define CS16_SW7 SW7_CS16 +#define CS17_SW7 SW7_CS17 +#define CS18_SW7 SW7_CS18 + +#define CS1_SW8 SW8_CS1 +#define CS2_SW8 SW8_CS2 +#define CS3_SW8 SW8_CS3 +#define CS4_SW8 SW8_CS4 +#define CS5_SW8 SW8_CS5 +#define CS6_SW8 SW8_CS6 +#define CS7_SW8 SW8_CS7 +#define CS8_SW8 SW8_CS8 +#define CS9_SW8 SW8_CS9 +#define CS10_SW8 SW8_CS10 +#define CS11_SW8 SW8_CS11 +#define CS12_SW8 SW8_CS12 +#define CS13_SW8 SW8_CS13 +#define CS14_SW8 SW8_CS14 +#define CS15_SW8 SW8_CS15 +#define CS16_SW8 SW8_CS16 +#define CS17_SW8 SW8_CS17 +#define CS18_SW8 SW8_CS18 + +#define CS1_SW9 SW9_CS1 +#define CS2_SW9 SW9_CS2 +#define CS3_SW9 SW9_CS3 +#define CS4_SW9 SW9_CS4 +#define CS5_SW9 SW9_CS5 +#define CS6_SW9 SW9_CS6 +#define CS7_SW9 SW9_CS7 +#define CS8_SW9 SW9_CS8 +#define CS9_SW9 SW9_CS9 +#define CS10_SW9 SW9_CS10 +#define CS11_SW9 SW9_CS11 +#define CS12_SW9 SW9_CS12 +#define CS13_SW9 SW9_CS13 +#define CS14_SW9 SW9_CS14 +#define CS15_SW9 SW9_CS15 +#define CS16_SW9 SW9_CS16 +#define CS17_SW9 SW9_CS17 +#define CS18_SW9 SW9_CS18 + +#define CS1_SW10 SW10_CS1 +#define CS2_SW10 SW10_CS2 +#define CS3_SW10 SW10_CS3 +#define CS4_SW10 SW10_CS4 +#define CS5_SW10 SW10_CS5 +#define CS6_SW10 SW10_CS6 +#define CS7_SW10 SW10_CS7 +#define CS8_SW10 SW10_CS8 +#define CS9_SW10 SW10_CS9 +#define CS10_SW10 SW10_CS10 +#define CS11_SW10 SW10_CS11 +#define CS12_SW10 SW10_CS12 +#define CS13_SW10 SW10_CS13 +#define CS14_SW10 SW10_CS14 +#define CS15_SW10 SW10_CS15 +#define CS16_SW10 SW10_CS16 +#define CS17_SW10 SW10_CS17 +#define CS18_SW10 SW10_CS18 + +#define CS1_SW11 SW11_CS1 +#define CS2_SW11 SW11_CS2 +#define CS3_SW11 SW11_CS3 +#define CS4_SW11 SW11_CS4 +#define CS5_SW11 SW11_CS5 +#define CS6_SW11 SW11_CS6 +#define CS7_SW11 SW11_CS7 +#define CS8_SW11 SW11_CS8 +#define CS9_SW11 SW11_CS9 +#define CS10_SW11 SW11_CS10 +#define CS11_SW11 SW11_CS11 +#define CS12_SW11 SW11_CS12 +#define CS13_SW11 SW11_CS13 +#define CS14_SW11 SW11_CS14 +#define CS15_SW11 SW11_CS15 +#define CS16_SW11 SW11_CS16 +#define CS17_SW11 SW11_CS17 +#define CS18_SW11 SW11_CS18 + +#define CS1_SW12 SW12_CS1 +#define CS2_SW12 SW12_CS2 +#define CS3_SW12 SW12_CS3 +#define CS4_SW12 SW12_CS4 +#define CS5_SW12 SW12_CS5 +#define CS6_SW12 SW12_CS6 +#define CS7_SW12 SW12_CS7 +#define CS8_SW12 SW12_CS8 +#define CS9_SW12 SW12_CS9 +#define CS10_SW12 SW12_CS10 +#define CS11_SW12 SW12_CS11 +#define CS12_SW12 SW12_CS12 +#define CS13_SW12 SW12_CS13 +#define CS14_SW12 SW12_CS14 +#define CS15_SW12 SW12_CS15 +#define CS16_SW12 SW12_CS16 +#define CS17_SW12 SW12_CS17 +#define CS18_SW12 SW12_CS18 diff --git a/drivers/led/issi/is31fl3731-mono.h b/drivers/led/issi/is31fl3731-mono.h index cc59b45cb3..e6e107d309 100644 --- a/drivers/led/issi/is31fl3731-mono.h +++ b/drivers/led/issi/is31fl3731-mono.h @@ -23,6 +23,33 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_ADDR_1 +# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1 +#endif +#ifdef LED_DRIVER_ADDR_2 +# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2 +#endif +#ifdef LED_DRIVER_ADDR_3 +# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3 +#endif +#ifdef LED_DRIVER_ADDR_4 +# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_3731_DEGHOST +# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST +#endif + +#define is31_led is31fl3731_led_t +#define g_is31_leds g_is31fl3731_leds +// ======== + #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 947b7dc8e9..dc229c876d 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -22,6 +22,33 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_3731_DEGHOST +# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST +#endif + +#define is31_led is31fl3731_led_t +#define g_is31_leds g_is31fl3731_leds +// ======== + #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3733-mono.h b/drivers/led/issi/is31fl3733-mono.h index 40d340a70d..3786b2ed71 100644 --- a/drivers/led/issi/is31fl3733-mono.h +++ b/drivers/led/issi/is31fl3733-mono.h @@ -25,6 +25,38 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef ISSI_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3733_led_t +#define g_is31_leds g_is31fl3733_leds + +#define PUR_0R IS31FL3733_PUR_0_OHM +#define PUR_05KR IS31FL3733_PUR_1K_OHM +#define PUR_3KR IS31FL3733_PUR_2K_OHM +#define PUR_4KR IS31FL3733_PUR_4K_OHM +#define PUR_8KR IS31FL3733_PUR_8K_OHM +#define PUR_16KR IS31FL3733_PUR_16K_OHM +#define PUR_32KR IS31FL3733_PUR_32K_OHM +// ======== + #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 8757d5ab07..fb60c76c2d 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -24,6 +24,62 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef DRIVER_SYNC_1 +# define IS31FL3733_SYNC_1 DRIVER_SYNC_1 +#endif +#ifdef DRIVER_SYNC_2 +# define IS31FL3733_SYNC_2 DRIVER_SYNC_2 +#endif +#ifdef DRIVER_SYNC_3 +# define IS31FL3733_SYNC_3 DRIVER_SYNC_3 +#endif +#ifdef DRIVER_SYNC_4 +# define IS31FL3733_SYNC_4 DRIVER_SYNC_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3733_led_t +#define g_is31_leds g_is31fl3733_leds + +#define PUR_0R IS31FL3733_PUR_0_OHM +#define PUR_05KR IS31FL3733_PUR_1K_OHM +#define PUR_3KR IS31FL3733_PUR_2K_OHM +#define PUR_4KR IS31FL3733_PUR_4K_OHM +#define PUR_8KR IS31FL3733_PUR_8K_OHM +#define PUR_16KR IS31FL3733_PUR_16K_OHM +#define PUR_32KR IS31FL3733_PUR_32K_OHM +// ======== + #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 @@ -333,3 +389,209 @@ void is31fl3733_flush(void); #define SW12_CS14 0xBD #define SW12_CS15 0xBE #define SW12_CS16 0xBF + +// DEPRECATED - DO NOT USE + +#define A_1 SW1_CS1 +#define A_2 SW1_CS2 +#define A_3 SW1_CS3 +#define A_4 SW1_CS4 +#define A_5 SW1_CS5 +#define A_6 SW1_CS6 +#define A_7 SW1_CS7 +#define A_8 SW1_CS8 +#define A_9 SW1_CS9 +#define A_10 SW1_CS10 +#define A_11 SW1_CS11 +#define A_12 SW1_CS12 +#define A_13 SW1_CS13 +#define A_14 SW1_CS14 +#define A_15 SW1_CS15 +#define A_16 SW1_CS16 + +#define B_1 SW2_CS1 +#define B_2 SW2_CS2 +#define B_3 SW2_CS3 +#define B_4 SW2_CS4 +#define B_5 SW2_CS5 +#define B_6 SW2_CS6 +#define B_7 SW2_CS7 +#define B_8 SW2_CS8 +#define B_9 SW2_CS9 +#define B_10 SW2_CS10 +#define B_11 SW2_CS11 +#define B_12 SW2_CS12 +#define B_13 SW2_CS13 +#define B_14 SW2_CS14 +#define B_15 SW2_CS15 +#define B_16 SW2_CS16 + +#define C_1 SW3_CS1 +#define C_2 SW3_CS2 +#define C_3 SW3_CS3 +#define C_4 SW3_CS4 +#define C_5 SW3_CS5 +#define C_6 SW3_CS6 +#define C_7 SW3_CS7 +#define C_8 SW3_CS8 +#define C_9 SW3_CS9 +#define C_10 SW3_CS10 +#define C_11 SW3_CS11 +#define C_12 SW3_CS12 +#define C_13 SW3_CS13 +#define C_14 SW3_CS14 +#define C_15 SW3_CS15 +#define C_16 SW3_CS16 + +#define D_1 SW4_CS1 +#define D_2 SW4_CS2 +#define D_3 SW4_CS3 +#define D_4 SW4_CS4 +#define D_5 SW4_CS5 +#define D_6 SW4_CS6 +#define D_7 SW4_CS7 +#define D_8 SW4_CS8 +#define D_9 SW4_CS9 +#define D_10 SW4_CS10 +#define D_11 SW4_CS11 +#define D_12 SW4_CS12 +#define D_13 SW4_CS13 +#define D_14 SW4_CS14 +#define D_15 SW4_CS15 +#define D_16 SW4_CS16 + +#define E_1 SW5_CS1 +#define E_2 SW5_CS2 +#define E_3 SW5_CS3 +#define E_4 SW5_CS4 +#define E_5 SW5_CS5 +#define E_6 SW5_CS6 +#define E_7 SW5_CS7 +#define E_8 SW5_CS8 +#define E_9 SW5_CS9 +#define E_10 SW5_CS10 +#define E_11 SW5_CS11 +#define E_12 SW5_CS12 +#define E_13 SW5_CS13 +#define E_14 SW5_CS14 +#define E_15 SW5_CS15 +#define E_16 SW5_CS16 + +#define F_1 SW6_CS1 +#define F_2 SW6_CS2 +#define F_3 SW6_CS3 +#define F_4 SW6_CS4 +#define F_5 SW6_CS5 +#define F_6 SW6_CS6 +#define F_7 SW6_CS7 +#define F_8 SW6_CS8 +#define F_9 SW6_CS9 +#define F_10 SW6_CS10 +#define F_11 SW6_CS11 +#define F_12 SW6_CS12 +#define F_13 SW6_CS13 +#define F_14 SW6_CS14 +#define F_15 SW6_CS15 +#define F_16 SW6_CS16 + +#define G_1 SW7_CS1 +#define G_2 SW7_CS2 +#define G_3 SW7_CS3 +#define G_4 SW7_CS4 +#define G_5 SW7_CS5 +#define G_6 SW7_CS6 +#define G_7 SW7_CS7 +#define G_8 SW7_CS8 +#define G_9 SW7_CS9 +#define G_10 SW7_CS10 +#define G_11 SW7_CS11 +#define G_12 SW7_CS12 +#define G_13 SW7_CS13 +#define G_14 SW7_CS14 +#define G_15 SW7_CS15 +#define G_16 SW7_CS16 + +#define H_1 SW8_CS1 +#define H_2 SW8_CS2 +#define H_3 SW8_CS3 +#define H_4 SW8_CS4 +#define H_5 SW8_CS5 +#define H_6 SW8_CS6 +#define H_7 SW8_CS7 +#define H_8 SW8_CS8 +#define H_9 SW8_CS9 +#define H_10 SW8_CS10 +#define H_11 SW8_CS11 +#define H_12 SW8_CS12 +#define H_13 SW8_CS13 +#define H_14 SW8_CS14 +#define H_15 SW8_CS15 +#define H_16 SW8_CS16 + +#define I_1 SW9_CS1 +#define I_2 SW9_CS2 +#define I_3 SW9_CS3 +#define I_4 SW9_CS4 +#define I_5 SW9_CS5 +#define I_6 SW9_CS6 +#define I_7 SW9_CS7 +#define I_8 SW9_CS8 +#define I_9 SW9_CS9 +#define I_10 SW9_CS10 +#define I_11 SW9_CS11 +#define I_12 SW9_CS12 +#define I_13 SW9_CS13 +#define I_14 SW9_CS14 +#define I_15 SW9_CS15 +#define I_16 SW9_CS16 + +#define J_1 SW10_CS1 +#define J_2 SW10_CS2 +#define J_3 SW10_CS3 +#define J_4 SW10_CS4 +#define J_5 SW10_CS5 +#define J_6 SW10_CS6 +#define J_7 SW10_CS7 +#define J_8 SW10_CS8 +#define J_9 SW10_CS9 +#define J_10 SW10_CS10 +#define J_11 SW10_CS11 +#define J_12 SW10_CS12 +#define J_13 SW10_CS13 +#define J_14 SW10_CS14 +#define J_15 SW10_CS15 +#define J_16 SW10_CS16 + +#define K_1 SW11_CS1 +#define K_2 SW11_CS2 +#define K_3 SW11_CS3 +#define K_4 SW11_CS4 +#define K_5 SW11_CS5 +#define K_6 SW11_CS6 +#define K_7 SW11_CS7 +#define K_8 SW11_CS8 +#define K_9 SW11_CS9 +#define K_10 SW11_CS10 +#define K_11 SW11_CS11 +#define K_12 SW11_CS12 +#define K_13 SW11_CS13 +#define K_14 SW11_CS14 +#define K_15 SW11_CS15 +#define K_16 SW11_CS16 + +#define L_1 SW12_CS1 +#define L_2 SW12_CS2 +#define L_3 SW12_CS3 +#define L_4 SW12_CS4 +#define L_5 SW12_CS5 +#define L_6 SW12_CS6 +#define L_7 SW12_CS7 +#define L_8 SW12_CS8 +#define L_9 SW12_CS9 +#define L_10 SW12_CS10 +#define L_11 SW12_CS11 +#define L_12 SW12_CS12 +#define L_13 SW12_CS13 +#define L_14 SW12_CS14 +#define L_15 SW12_CS15 +#define L_16 SW12_CS16 diff --git a/drivers/led/issi/is31fl3736-mono.h b/drivers/led/issi/is31fl3736-mono.h index 73441ea551..91c2e0420b 100644 --- a/drivers/led/issi/is31fl3736-mono.h +++ b/drivers/led/issi/is31fl3736-mono.h @@ -22,6 +22,36 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef ISSI_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3736_led_t +#define g_is31_leds g_is31fl3736_leds + +#define PUR_0R IS31FL3736_PUR_0_OHM +#define PUR_05KR IS31FL3736_PUR_05K_OHM +#define PUR_1KR IS31FL3736_PUR_1K_OHM +#define PUR_2KR IS31FL3736_PUR_2K_OHM +#define PUR_4KR IS31FL3736_PUR_4K_OHM +#define PUR_8KR IS31FL3736_PUR_8K_OHM +#define PUR_16KR IS31FL3736_PUR_16K_OHM +#define PUR_32KR IS31FL3736_PUR_32K_OHM +// ======== + #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 @@ -229,3 +259,113 @@ void is31fl3736_flush(void); #define SW12_CS6 0xBA #define SW12_CS7 0xBC #define SW12_CS8 0xBE + +// DEPRECATED - DO NOT USE + +#define A_1 SW1_CS1 +#define A_2 SW1_CS2 +#define A_3 SW1_CS3 +#define A_4 SW1_CS4 +#define A_5 SW1_CS5 +#define A_6 SW1_CS6 +#define A_7 SW1_CS7 +#define A_8 SW1_CS8 + +#define B_1 SW2_CS1 +#define B_2 SW2_CS2 +#define B_3 SW2_CS3 +#define B_4 SW2_CS4 +#define B_5 SW2_CS5 +#define B_6 SW2_CS6 +#define B_7 SW2_CS7 +#define B_8 SW2_CS8 + +#define C_1 SW3_CS1 +#define C_2 SW3_CS2 +#define C_3 SW3_CS3 +#define C_4 SW3_CS4 +#define C_5 SW3_CS5 +#define C_6 SW3_CS6 +#define C_7 SW3_CS7 +#define C_8 SW3_CS8 + +#define D_1 SW4_CS1 +#define D_2 SW4_CS2 +#define D_3 SW4_CS3 +#define D_4 SW4_CS4 +#define D_5 SW4_CS5 +#define D_6 SW4_CS6 +#define D_7 SW4_CS7 +#define D_8 SW4_CS8 + +#define E_1 SW5_CS1 +#define E_2 SW5_CS2 +#define E_3 SW5_CS3 +#define E_4 SW5_CS4 +#define E_5 SW5_CS5 +#define E_6 SW5_CS6 +#define E_7 SW5_CS7 +#define E_8 SW5_CS8 + +#define F_1 SW6_CS1 +#define F_2 SW6_CS2 +#define F_3 SW6_CS3 +#define F_4 SW6_CS4 +#define F_5 SW6_CS5 +#define F_6 SW6_CS6 +#define F_7 SW6_CS7 +#define F_8 SW6_CS8 + +#define G_1 SW7_CS1 +#define G_2 SW7_CS2 +#define G_3 SW7_CS3 +#define G_4 SW7_CS4 +#define G_5 SW7_CS5 +#define G_6 SW7_CS6 +#define G_7 SW7_CS7 +#define G_8 SW7_CS8 + +#define H_1 SW8_CS1 +#define H_2 SW8_CS2 +#define H_3 SW8_CS3 +#define H_4 SW8_CS4 +#define H_5 SW8_CS5 +#define H_6 SW8_CS6 +#define H_7 SW8_CS7 +#define H_8 SW8_CS8 + +#define I_1 SW9_CS1 +#define I_2 SW9_CS2 +#define I_3 SW9_CS3 +#define I_4 SW9_CS4 +#define I_5 SW9_CS5 +#define I_6 SW9_CS6 +#define I_7 SW9_CS7 +#define I_8 SW9_CS8 + +#define J_1 SW10_CS1 +#define J_2 SW10_CS2 +#define J_3 SW10_CS3 +#define J_4 SW10_CS4 +#define J_5 SW10_CS5 +#define J_6 SW10_CS6 +#define J_7 SW10_CS7 +#define J_8 SW10_CS8 + +#define K_1 SW11_CS1 +#define K_2 SW11_CS2 +#define K_3 SW11_CS3 +#define K_4 SW11_CS4 +#define K_5 SW11_CS5 +#define K_6 SW11_CS6 +#define K_7 SW11_CS7 +#define K_8 SW11_CS8 + +#define L_1 SW12_CS1 +#define L_2 SW12_CS2 +#define L_3 SW12_CS3 +#define L_4 SW12_CS4 +#define L_5 SW12_CS5 +#define L_6 SW12_CS6 +#define L_7 SW12_CS7 +#define L_8 SW12_CS8 diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index f0eabad819..dae7b3c812 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -22,6 +22,48 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3736_led_t +#define g_is31_leds g_is31fl3736_leds + +#define PUR_0R IS31FL3736_PUR_0_OHM +#define PUR_05KR IS31FL3736_PUR_0K5_OHM +#define PUR_1KR IS31FL3736_PUR_1K_OHM +#define PUR_2KR IS31FL3736_PUR_2K_OHM +#define PUR_4KR IS31FL3736_PUR_4K_OHM +#define PUR_8KR IS31FL3736_PUR_8K_OHM +#define PUR_16KR IS31FL3736_PUR_16K_OHM +#define PUR_32KR IS31FL3736_PUR_32K_OHM +// ======== + #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737-mono.h b/drivers/led/issi/is31fl3737-mono.h index 40380f9006..99151c1e7a 100644 --- a/drivers/led/issi/is31fl3737-mono.h +++ b/drivers/led/issi/is31fl3737-mono.h @@ -24,6 +24,36 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef ISSI_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3737_PUR_0_OHM +#define PUR_05KR IS31FL3737_PUR_0K5_OHM +#define PUR_1KR IS31FL3737_PUR_1K_OHM +#define PUR_2KR IS31FL3737_PUR_2K_OHM +#define PUR_4KR IS31FL3737_PUR_4K_OHM +#define PUR_8KR IS31FL3737_PUR_8K_OHM +#define PUR_16KR IS31FL3737_PUR_16K_OHM +#define PUR_32KR IS31FL3737_PUR_32K_OHM +// ======== + #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index c1a9306a87..735a3a1e30 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -24,6 +24,51 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3737_led_t +#define g_is31_leds g_is31fl3737_leds + +#define PUR_0R IS31FL3737_PUR_0_OHM +#define PUR_05KR IS31FL3737_PUR_0K5_OHM +#define PUR_1KR IS31FL3737_PUR_1K_OHM +#define PUR_2KR IS31FL3737_PUR_2K_OHM +#define PUR_4KR IS31FL3737_PUR_4K_OHM +#define PUR_8KR IS31FL3737_PUR_8K_OHM +#define PUR_16KR IS31FL3737_PUR_16K_OHM +#define PUR_32KR IS31FL3737_PUR_32K_OHM +// ======== + #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 @@ -269,3 +314,161 @@ void is31fl3737_flush(void); #define SW12_CS10 0xBB #define SW12_CS11 0xBC #define SW12_CS12 0xBD + +// DEPRECATED - DO NOT USE + +#define A_1 SW1_CS1 +#define A_2 SW1_CS2 +#define A_3 SW1_CS3 +#define A_4 SW1_CS4 +#define A_5 SW1_CS5 +#define A_6 SW1_CS6 +#define A_7 SW1_CS7 +#define A_8 SW1_CS8 +#define A_9 SW1_CS9 +#define A_10 SW1_CS10 +#define A_11 SW1_CS11 +#define A_12 SW1_CS12 + +#define B_1 SW2_CS1 +#define B_2 SW2_CS2 +#define B_3 SW2_CS3 +#define B_4 SW2_CS4 +#define B_5 SW2_CS5 +#define B_6 SW2_CS6 +#define B_7 SW2_CS7 +#define B_8 SW2_CS8 +#define B_9 SW2_CS9 +#define B_10 SW2_CS10 +#define B_11 SW2_CS11 +#define B_12 SW2_CS12 + +#define C_1 SW3_CS1 +#define C_2 SW3_CS2 +#define C_3 SW3_CS3 +#define C_4 SW3_CS4 +#define C_5 SW3_CS5 +#define C_6 SW3_CS6 +#define C_7 SW3_CS7 +#define C_8 SW3_CS8 +#define C_9 SW3_CS9 +#define C_10 SW3_CS10 +#define C_11 SW3_CS11 +#define C_12 SW3_CS12 + +#define D_1 SW4_CS1 +#define D_2 SW4_CS2 +#define D_3 SW4_CS3 +#define D_4 SW4_CS4 +#define D_5 SW4_CS5 +#define D_6 SW4_CS6 +#define D_7 SW4_CS7 +#define D_8 SW4_CS8 +#define D_9 SW4_CS9 +#define D_10 SW4_CS10 +#define D_11 SW4_CS11 +#define D_12 SW4_CS12 + +#define E_1 SW5_CS1 +#define E_2 SW5_CS2 +#define E_3 SW5_CS3 +#define E_4 SW5_CS4 +#define E_5 SW5_CS5 +#define E_6 SW5_CS6 +#define E_7 SW5_CS7 +#define E_8 SW5_CS8 +#define E_9 SW5_CS9 +#define E_10 SW5_CS10 +#define E_11 SW5_CS11 +#define E_12 SW5_CS12 + +#define F_1 SW6_CS1 +#define F_2 SW6_CS2 +#define F_3 SW6_CS3 +#define F_4 SW6_CS4 +#define F_5 SW6_CS5 +#define F_6 SW6_CS6 +#define F_7 SW6_CS7 +#define F_8 SW6_CS8 +#define F_9 SW6_CS9 +#define F_10 SW6_CS10 +#define F_11 SW6_CS11 +#define F_12 SW6_CS12 + +#define G_1 SW7_CS1 +#define G_2 SW7_CS2 +#define G_3 SW7_CS3 +#define G_4 SW7_CS4 +#define G_5 SW7_CS5 +#define G_6 SW7_CS6 +#define G_7 SW7_CS7 +#define G_8 SW7_CS8 +#define G_9 SW7_CS9 +#define G_10 SW7_CS10 +#define G_11 SW7_CS11 +#define G_12 SW7_CS12 + +#define H_1 SW8_CS1 +#define H_2 SW8_CS2 +#define H_3 SW8_CS3 +#define H_4 SW8_CS4 +#define H_5 SW8_CS5 +#define H_6 SW8_CS6 +#define H_7 SW8_CS7 +#define H_8 SW8_CS8 +#define H_9 SW8_CS9 +#define H_10 SW8_CS10 +#define H_11 SW8_CS11 +#define H_12 SW8_CS12 + +#define I_1 SW9_CS1 +#define I_2 SW9_CS2 +#define I_3 SW9_CS3 +#define I_4 SW9_CS4 +#define I_5 SW9_CS5 +#define I_6 SW9_CS6 +#define I_7 SW9_CS7 +#define I_8 SW9_CS8 +#define I_9 SW9_CS9 +#define I_10 SW9_CS10 +#define I_11 SW9_CS11 +#define I_12 SW9_CS12 + +#define J_1 SW10_CS1 +#define J_2 SW10_CS2 +#define J_3 SW10_CS3 +#define J_4 SW10_CS4 +#define J_5 SW10_CS5 +#define J_6 SW10_CS6 +#define J_7 SW10_CS7 +#define J_8 SW10_CS8 +#define J_9 SW10_CS9 +#define J_10 SW10_CS10 +#define J_11 SW10_CS11 +#define J_12 SW10_CS12 + +#define K_1 SW11_CS1 +#define K_2 SW11_CS2 +#define K_3 SW11_CS3 +#define K_4 SW11_CS4 +#define K_5 SW11_CS5 +#define K_6 SW11_CS6 +#define K_7 SW11_CS7 +#define K_8 SW11_CS8 +#define K_9 SW11_CS9 +#define K_10 SW11_CS10 +#define K_11 SW11_CS11 +#define K_12 SW11_CS12 + +#define L_1 SW12_CS1 +#define L_2 SW12_CS2 +#define L_3 SW12_CS3 +#define L_4 SW12_CS4 +#define L_5 SW12_CS5 +#define L_6 SW12_CS6 +#define L_7 SW12_CS7 +#define L_8 SW12_CS8 +#define L_9 SW12_CS9 +#define L_10 SW12_CS10 +#define L_11 SW12_CS11 +#define L_12 SW12_CS12 diff --git a/drivers/led/issi/is31fl3741-mono.h b/drivers/led/issi/is31fl3741-mono.h index d8797bda32..6d4f70b1b3 100644 --- a/drivers/led/issi/is31fl3741-mono.h +++ b/drivers/led/issi/is31fl3741-mono.h @@ -24,6 +24,36 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef ISSI_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_CONFIGURATION +# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3741_PUR_0_OHM +#define PUR_05KR IS31FL3741_PUR_0K5_OHM +#define PUR_1KR IS31FL3741_PUR_1K_OHM +#define PUR_2KR IS31FL3741_PUR_2K_OHM +#define PUR_4KR IS31FL3741_PUR_4K_OHM +#define PUR_8KR IS31FL3741_PUR_8K_OHM +#define PUR_16KR IS31FL3741_PUR_16K_OHM +#define PUR_32KR IS31FL3741_PUR_32K_OHM +// ======== + #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -484,3 +514,374 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA + +// DEPRECATED - DO NOT USE + +#define CS1_SW1 SW1_CS1 +#define CS2_SW1 SW1_CS2 +#define CS3_SW1 SW1_CS3 +#define CS4_SW1 SW1_CS4 +#define CS5_SW1 SW1_CS5 +#define CS6_SW1 SW1_CS6 +#define CS7_SW1 SW1_CS7 +#define CS8_SW1 SW1_CS8 +#define CS9_SW1 SW1_CS9 +#define CS10_SW1 SW1_CS10 +#define CS11_SW1 SW1_CS11 +#define CS12_SW1 SW1_CS12 +#define CS13_SW1 SW1_CS13 +#define CS14_SW1 SW1_CS14 +#define CS15_SW1 SW1_CS15 +#define CS16_SW1 SW1_CS16 +#define CS17_SW1 SW1_CS17 +#define CS18_SW1 SW1_CS18 +#define CS19_SW1 SW1_CS19 +#define CS20_SW1 SW1_CS20 +#define CS21_SW1 SW1_CS21 +#define CS22_SW1 SW1_CS22 +#define CS23_SW1 SW1_CS23 +#define CS24_SW1 SW1_CS24 +#define CS25_SW1 SW1_CS25 +#define CS26_SW1 SW1_CS26 +#define CS27_SW1 SW1_CS27 +#define CS28_SW1 SW1_CS28 +#define CS29_SW1 SW1_CS29 +#define CS30_SW1 SW1_CS30 + +#define CS1_SW2 SW2_CS1 +#define CS2_SW2 SW2_CS2 +#define CS3_SW2 SW2_CS3 +#define CS4_SW2 SW2_CS4 +#define CS5_SW2 SW2_CS5 +#define CS6_SW2 SW2_CS6 +#define CS7_SW2 SW2_CS7 +#define CS8_SW2 SW2_CS8 +#define CS9_SW2 SW2_CS9 +#define CS10_SW2 SW2_CS10 +#define CS11_SW2 SW2_CS11 +#define CS12_SW2 SW2_CS12 +#define CS13_SW2 SW2_CS13 +#define CS14_SW2 SW2_CS14 +#define CS15_SW2 SW2_CS15 +#define CS16_SW2 SW2_CS16 +#define CS17_SW2 SW2_CS17 +#define CS18_SW2 SW2_CS18 +#define CS19_SW2 SW2_CS19 +#define CS20_SW2 SW2_CS20 +#define CS21_SW2 SW2_CS21 +#define CS22_SW2 SW2_CS22 +#define CS23_SW2 SW2_CS23 +#define CS24_SW2 SW2_CS24 +#define CS25_SW2 SW2_CS25 +#define CS26_SW2 SW2_CS26 +#define CS27_SW2 SW2_CS27 +#define CS28_SW2 SW2_CS28 +#define CS29_SW2 SW2_CS29 +#define CS30_SW2 SW2_CS30 + +#define CS1_SW3 SW3_CS1 +#define CS2_SW3 SW3_CS2 +#define CS3_SW3 SW3_CS3 +#define CS4_SW3 SW3_CS4 +#define CS5_SW3 SW3_CS5 +#define CS6_SW3 SW3_CS6 +#define CS7_SW3 SW3_CS7 +#define CS8_SW3 SW3_CS8 +#define CS9_SW3 SW3_CS9 +#define CS10_SW3 SW3_CS10 +#define CS11_SW3 SW3_CS11 +#define CS12_SW3 SW3_CS12 +#define CS13_SW3 SW3_CS13 +#define CS14_SW3 SW3_CS14 +#define CS15_SW3 SW3_CS15 +#define CS16_SW3 SW3_CS16 +#define CS17_SW3 SW3_CS17 +#define CS18_SW3 SW3_CS18 +#define CS19_SW3 SW3_CS19 +#define CS20_SW3 SW3_CS20 +#define CS21_SW3 SW3_CS21 +#define CS22_SW3 SW3_CS22 +#define CS23_SW3 SW3_CS23 +#define CS24_SW3 SW3_CS24 +#define CS25_SW3 SW3_CS25 +#define CS26_SW3 SW3_CS26 +#define CS27_SW3 SW3_CS27 +#define CS28_SW3 SW3_CS28 +#define CS29_SW3 SW3_CS29 +#define CS30_SW3 SW3_CS30 + +#define CS1_SW4 SW4_CS1 +#define CS2_SW4 SW4_CS2 +#define CS3_SW4 SW4_CS3 +#define CS4_SW4 SW4_CS4 +#define CS5_SW4 SW4_CS5 +#define CS6_SW4 SW4_CS6 +#define CS7_SW4 SW4_CS7 +#define CS8_SW4 SW4_CS8 +#define CS9_SW4 SW4_CS9 +#define CS10_SW4 SW4_CS10 +#define CS11_SW4 SW4_CS11 +#define CS12_SW4 SW4_CS12 +#define CS13_SW4 SW4_CS13 +#define CS14_SW4 SW4_CS14 +#define CS15_SW4 SW4_CS15 +#define CS16_SW4 SW4_CS16 +#define CS17_SW4 SW4_CS17 +#define CS18_SW4 SW4_CS18 +#define CS19_SW4 SW4_CS19 +#define CS20_SW4 SW4_CS20 +#define CS21_SW4 SW4_CS21 +#define CS22_SW4 SW4_CS22 +#define CS23_SW4 SW4_CS23 +#define CS24_SW4 SW4_CS24 +#define CS25_SW4 SW4_CS25 +#define CS26_SW4 SW4_CS26 +#define CS27_SW4 SW4_CS27 +#define CS28_SW4 SW4_CS28 +#define CS29_SW4 SW4_CS29 +#define CS30_SW4 SW4_CS30 + +#define CS1_SW5 SW5_CS1 +#define CS2_SW5 SW5_CS2 +#define CS3_SW5 SW5_CS3 +#define CS4_SW5 SW5_CS4 +#define CS5_SW5 SW5_CS5 +#define CS6_SW5 SW5_CS6 +#define CS7_SW5 SW5_CS7 +#define CS8_SW5 SW5_CS8 +#define CS9_SW5 SW5_CS9 +#define CS10_SW5 SW5_CS10 +#define CS11_SW5 SW5_CS11 +#define CS12_SW5 SW5_CS12 +#define CS13_SW5 SW5_CS13 +#define CS14_SW5 SW5_CS14 +#define CS15_SW5 SW5_CS15 +#define CS16_SW5 SW5_CS16 +#define CS17_SW5 SW5_CS17 +#define CS18_SW5 SW5_CS18 +#define CS19_SW5 SW5_CS19 +#define CS20_SW5 SW5_CS20 +#define CS21_SW5 SW5_CS21 +#define CS22_SW5 SW5_CS22 +#define CS23_SW5 SW5_CS23 +#define CS24_SW5 SW5_CS24 +#define CS25_SW5 SW5_CS25 +#define CS26_SW5 SW5_CS26 +#define CS27_SW5 SW5_CS27 +#define CS28_SW5 SW5_CS28 +#define CS29_SW5 SW5_CS29 +#define CS30_SW5 SW5_CS30 + +#define CS1_SW6 SW6_CS1 +#define CS2_SW6 SW6_CS2 +#define CS3_SW6 SW6_CS3 +#define CS4_SW6 SW6_CS4 +#define CS5_SW6 SW6_CS5 +#define CS6_SW6 SW6_CS6 +#define CS7_SW6 SW6_CS7 +#define CS8_SW6 SW6_CS8 +#define CS9_SW6 SW6_CS9 +#define CS10_SW6 SW6_CS10 +#define CS11_SW6 SW6_CS11 +#define CS12_SW6 SW6_CS12 +#define CS13_SW6 SW6_CS13 +#define CS14_SW6 SW6_CS14 +#define CS15_SW6 SW6_CS15 +#define CS16_SW6 SW6_CS16 +#define CS17_SW6 SW6_CS17 +#define CS18_SW6 SW6_CS18 +#define CS19_SW6 SW6_CS19 +#define CS20_SW6 SW6_CS20 +#define CS21_SW6 SW6_CS21 +#define CS22_SW6 SW6_CS22 +#define CS23_SW6 SW6_CS23 +#define CS24_SW6 SW6_CS24 +#define CS25_SW6 SW6_CS25 +#define CS26_SW6 SW6_CS26 +#define CS27_SW6 SW6_CS27 +#define CS28_SW6 SW6_CS28 +#define CS29_SW6 SW6_CS29 +#define CS30_SW6 SW6_CS30 + +#define CS1_SW7 SW7_CS1 +#define CS2_SW7 SW7_CS2 +#define CS3_SW7 SW7_CS3 +#define CS4_SW7 SW7_CS4 +#define CS5_SW7 SW7_CS5 +#define CS6_SW7 SW7_CS6 +#define CS7_SW7 SW7_CS7 +#define CS8_SW7 SW7_CS8 +#define CS9_SW7 SW7_CS9 +#define CS10_SW7 SW7_CS10 +#define CS11_SW7 SW7_CS11 +#define CS12_SW7 SW7_CS12 +#define CS13_SW7 SW7_CS13 +#define CS14_SW7 SW7_CS14 +#define CS15_SW7 SW7_CS15 +#define CS16_SW7 SW7_CS16 +#define CS17_SW7 SW7_CS17 +#define CS18_SW7 SW7_CS18 +#define CS19_SW7 SW7_CS19 +#define CS20_SW7 SW7_CS20 +#define CS21_SW7 SW7_CS21 +#define CS22_SW7 SW7_CS22 +#define CS23_SW7 SW7_CS23 +#define CS24_SW7 SW7_CS24 +#define CS25_SW7 SW7_CS25 +#define CS26_SW7 SW7_CS26 +#define CS27_SW7 SW7_CS27 +#define CS28_SW7 SW7_CS28 +#define CS29_SW7 SW7_CS29 +#define CS30_SW7 SW7_CS30 + +#define CS1_SW8 SW8_CS1 +#define CS2_SW8 SW8_CS2 +#define CS3_SW8 SW8_CS3 +#define CS4_SW8 SW8_CS4 +#define CS5_SW8 SW8_CS5 +#define CS6_SW8 SW8_CS6 +#define CS7_SW8 SW8_CS7 +#define CS8_SW8 SW8_CS8 +#define CS9_SW8 SW8_CS9 +#define CS10_SW8 SW8_CS10 +#define CS11_SW8 SW8_CS11 +#define CS12_SW8 SW8_CS12 +#define CS13_SW8 SW8_CS13 +#define CS14_SW8 SW8_CS14 +#define CS15_SW8 SW8_CS15 +#define CS16_SW8 SW8_CS16 +#define CS17_SW8 SW8_CS17 +#define CS18_SW8 SW8_CS18 +#define CS19_SW8 SW8_CS19 +#define CS20_SW8 SW8_CS20 +#define CS21_SW8 SW8_CS21 +#define CS22_SW8 SW8_CS22 +#define CS23_SW8 SW8_CS23 +#define CS24_SW8 SW8_CS24 +#define CS25_SW8 SW8_CS25 +#define CS26_SW8 SW8_CS26 +#define CS27_SW8 SW8_CS27 +#define CS28_SW8 SW8_CS28 +#define CS29_SW8 SW8_CS29 +#define CS30_SW8 SW8_CS30 + +#define CS1_SW9 SW9_CS1 +#define CS2_SW9 SW9_CS2 +#define CS3_SW9 SW9_CS3 +#define CS4_SW9 SW9_CS4 +#define CS5_SW9 SW9_CS5 +#define CS6_SW9 SW9_CS6 +#define CS7_SW9 SW9_CS7 +#define CS8_SW9 SW9_CS8 +#define CS9_SW9 SW9_CS9 +#define CS10_SW9 SW9_CS10 +#define CS11_SW9 SW9_CS11 +#define CS12_SW9 SW9_CS12 +#define CS13_SW9 SW9_CS13 +#define CS14_SW9 SW9_CS14 +#define CS15_SW9 SW9_CS15 +#define CS16_SW9 SW9_CS16 +#define CS17_SW9 SW9_CS17 +#define CS18_SW9 SW9_CS18 +#define CS19_SW9 SW9_CS19 +#define CS20_SW9 SW9_CS20 +#define CS21_SW9 SW9_CS21 +#define CS22_SW9 SW9_CS22 +#define CS23_SW9 SW9_CS23 +#define CS24_SW9 SW9_CS24 +#define CS25_SW9 SW9_CS25 +#define CS26_SW9 SW9_CS26 +#define CS27_SW9 SW9_CS27 +#define CS28_SW9 SW9_CS28 +#define CS29_SW9 SW9_CS29 +#define CS30_SW9 SW9_CS30 + +#define CS31_SW1 SW1_CS31 +#define CS32_SW1 SW1_CS32 +#define CS33_SW1 SW1_CS33 +#define CS34_SW1 SW1_CS34 +#define CS35_SW1 SW1_CS35 +#define CS36_SW1 SW1_CS36 +#define CS37_SW1 SW1_CS37 +#define CS38_SW1 SW1_CS38 +#define CS39_SW1 SW1_CS39 + +#define CS31_SW2 SW2_CS31 +#define CS32_SW2 SW2_CS32 +#define CS33_SW2 SW2_CS33 +#define CS34_SW2 SW2_CS34 +#define CS35_SW2 SW2_CS35 +#define CS36_SW2 SW2_CS36 +#define CS37_SW2 SW2_CS37 +#define CS38_SW2 SW2_CS38 +#define CS39_SW2 SW2_CS39 + +#define CS31_SW3 SW3_CS31 +#define CS32_SW3 SW3_CS32 +#define CS33_SW3 SW3_CS33 +#define CS34_SW3 SW3_CS34 +#define CS35_SW3 SW3_CS35 +#define CS36_SW3 SW3_CS36 +#define CS37_SW3 SW3_CS37 +#define CS38_SW3 SW3_CS38 +#define CS39_SW3 SW3_CS39 + +#define CS31_SW4 SW4_CS31 +#define CS32_SW4 SW4_CS32 +#define CS33_SW4 SW4_CS33 +#define CS34_SW4 SW4_CS34 +#define CS35_SW4 SW4_CS35 +#define CS36_SW4 SW4_CS36 +#define CS37_SW4 SW4_CS37 +#define CS38_SW4 SW4_CS38 +#define CS39_SW4 SW4_CS39 + +#define CS31_SW5 SW5_CS31 +#define CS32_SW5 SW5_CS32 +#define CS33_SW5 SW5_CS33 +#define CS34_SW5 SW5_CS34 +#define CS35_SW5 SW5_CS35 +#define CS36_SW5 SW5_CS36 +#define CS37_SW5 SW5_CS37 +#define CS38_SW5 SW5_CS38 +#define CS39_SW5 SW5_CS39 + +#define CS31_SW6 SW6_CS31 +#define CS32_SW6 SW6_CS32 +#define CS33_SW6 SW6_CS33 +#define CS34_SW6 SW6_CS34 +#define CS35_SW6 SW6_CS35 +#define CS36_SW6 SW6_CS36 +#define CS37_SW6 SW6_CS37 +#define CS38_SW6 SW6_CS38 +#define CS39_SW6 SW6_CS39 + +#define CS31_SW7 SW7_CS31 +#define CS32_SW7 SW7_CS32 +#define CS33_SW7 SW7_CS33 +#define CS34_SW7 SW7_CS34 +#define CS35_SW7 SW7_CS35 +#define CS36_SW7 SW7_CS36 +#define CS37_SW7 SW7_CS37 +#define CS38_SW7 SW7_CS38 +#define CS39_SW7 SW7_CS39 + +#define CS31_SW8 SW8_CS31 +#define CS32_SW8 SW8_CS32 +#define CS33_SW8 SW8_CS33 +#define CS34_SW8 SW8_CS34 +#define CS35_SW8 SW8_CS35 +#define CS36_SW8 SW8_CS36 +#define CS37_SW8 SW8_CS37 +#define CS38_SW8 SW8_CS38 +#define CS39_SW8 SW8_CS39 + +#define CS31_SW9 SW9_CS31 +#define CS32_SW9 SW9_CS32 +#define CS33_SW9 SW9_CS33 +#define CS34_SW9 SW9_CS34 +#define CS35_SW9 SW9_CS35 +#define CS36_SW9 SW9_CS36 +#define CS37_SW9 SW9_CS37 +#define CS38_SW9 SW9_CS38 +#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 343dffe068..cc9637a4e8 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -24,6 +24,51 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_CONFIGURATION +# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT +#endif + +#define is31_led is31fl3741_led_t +#define g_is31_leds g_is31fl3741_leds + +#define PUR_0R IS31FL3741_PUR_0_OHM +#define PUR_05KR IS31FL3741_PUR_0K5_OHM +#define PUR_1KR IS31FL3741_PUR_1K_OHM +#define PUR_2KR IS31FL3741_PUR_2K_OHM +#define PUR_4KR IS31FL3741_PUR_4K_OHM +#define PUR_8KR IS31FL3741_PUR_8K_OHM +#define PUR_16KR IS31FL3741_PUR_16K_OHM +#define PUR_32KR IS31FL3741_PUR_32K_OHM +// ======== + #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -486,3 +531,374 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA + +// DEPRECATED - DO NOT USE + +#define CS1_SW1 SW1_CS1 +#define CS2_SW1 SW1_CS2 +#define CS3_SW1 SW1_CS3 +#define CS4_SW1 SW1_CS4 +#define CS5_SW1 SW1_CS5 +#define CS6_SW1 SW1_CS6 +#define CS7_SW1 SW1_CS7 +#define CS8_SW1 SW1_CS8 +#define CS9_SW1 SW1_CS9 +#define CS10_SW1 SW1_CS10 +#define CS11_SW1 SW1_CS11 +#define CS12_SW1 SW1_CS12 +#define CS13_SW1 SW1_CS13 +#define CS14_SW1 SW1_CS14 +#define CS15_SW1 SW1_CS15 +#define CS16_SW1 SW1_CS16 +#define CS17_SW1 SW1_CS17 +#define CS18_SW1 SW1_CS18 +#define CS19_SW1 SW1_CS19 +#define CS20_SW1 SW1_CS20 +#define CS21_SW1 SW1_CS21 +#define CS22_SW1 SW1_CS22 +#define CS23_SW1 SW1_CS23 +#define CS24_SW1 SW1_CS24 +#define CS25_SW1 SW1_CS25 +#define CS26_SW1 SW1_CS26 +#define CS27_SW1 SW1_CS27 +#define CS28_SW1 SW1_CS28 +#define CS29_SW1 SW1_CS29 +#define CS30_SW1 SW1_CS30 + +#define CS1_SW2 SW2_CS1 +#define CS2_SW2 SW2_CS2 +#define CS3_SW2 SW2_CS3 +#define CS4_SW2 SW2_CS4 +#define CS5_SW2 SW2_CS5 +#define CS6_SW2 SW2_CS6 +#define CS7_SW2 SW2_CS7 +#define CS8_SW2 SW2_CS8 +#define CS9_SW2 SW2_CS9 +#define CS10_SW2 SW2_CS10 +#define CS11_SW2 SW2_CS11 +#define CS12_SW2 SW2_CS12 +#define CS13_SW2 SW2_CS13 +#define CS14_SW2 SW2_CS14 +#define CS15_SW2 SW2_CS15 +#define CS16_SW2 SW2_CS16 +#define CS17_SW2 SW2_CS17 +#define CS18_SW2 SW2_CS18 +#define CS19_SW2 SW2_CS19 +#define CS20_SW2 SW2_CS20 +#define CS21_SW2 SW2_CS21 +#define CS22_SW2 SW2_CS22 +#define CS23_SW2 SW2_CS23 +#define CS24_SW2 SW2_CS24 +#define CS25_SW2 SW2_CS25 +#define CS26_SW2 SW2_CS26 +#define CS27_SW2 SW2_CS27 +#define CS28_SW2 SW2_CS28 +#define CS29_SW2 SW2_CS29 +#define CS30_SW2 SW2_CS30 + +#define CS1_SW3 SW3_CS1 +#define CS2_SW3 SW3_CS2 +#define CS3_SW3 SW3_CS3 +#define CS4_SW3 SW3_CS4 +#define CS5_SW3 SW3_CS5 +#define CS6_SW3 SW3_CS6 +#define CS7_SW3 SW3_CS7 +#define CS8_SW3 SW3_CS8 +#define CS9_SW3 SW3_CS9 +#define CS10_SW3 SW3_CS10 +#define CS11_SW3 SW3_CS11 +#define CS12_SW3 SW3_CS12 +#define CS13_SW3 SW3_CS13 +#define CS14_SW3 SW3_CS14 +#define CS15_SW3 SW3_CS15 +#define CS16_SW3 SW3_CS16 +#define CS17_SW3 SW3_CS17 +#define CS18_SW3 SW3_CS18 +#define CS19_SW3 SW3_CS19 +#define CS20_SW3 SW3_CS20 +#define CS21_SW3 SW3_CS21 +#define CS22_SW3 SW3_CS22 +#define CS23_SW3 SW3_CS23 +#define CS24_SW3 SW3_CS24 +#define CS25_SW3 SW3_CS25 +#define CS26_SW3 SW3_CS26 +#define CS27_SW3 SW3_CS27 +#define CS28_SW3 SW3_CS28 +#define CS29_SW3 SW3_CS29 +#define CS30_SW3 SW3_CS30 + +#define CS1_SW4 SW4_CS1 +#define CS2_SW4 SW4_CS2 +#define CS3_SW4 SW4_CS3 +#define CS4_SW4 SW4_CS4 +#define CS5_SW4 SW4_CS5 +#define CS6_SW4 SW4_CS6 +#define CS7_SW4 SW4_CS7 +#define CS8_SW4 SW4_CS8 +#define CS9_SW4 SW4_CS9 +#define CS10_SW4 SW4_CS10 +#define CS11_SW4 SW4_CS11 +#define CS12_SW4 SW4_CS12 +#define CS13_SW4 SW4_CS13 +#define CS14_SW4 SW4_CS14 +#define CS15_SW4 SW4_CS15 +#define CS16_SW4 SW4_CS16 +#define CS17_SW4 SW4_CS17 +#define CS18_SW4 SW4_CS18 +#define CS19_SW4 SW4_CS19 +#define CS20_SW4 SW4_CS20 +#define CS21_SW4 SW4_CS21 +#define CS22_SW4 SW4_CS22 +#define CS23_SW4 SW4_CS23 +#define CS24_SW4 SW4_CS24 +#define CS25_SW4 SW4_CS25 +#define CS26_SW4 SW4_CS26 +#define CS27_SW4 SW4_CS27 +#define CS28_SW4 SW4_CS28 +#define CS29_SW4 SW4_CS29 +#define CS30_SW4 SW4_CS30 + +#define CS1_SW5 SW5_CS1 +#define CS2_SW5 SW5_CS2 +#define CS3_SW5 SW5_CS3 +#define CS4_SW5 SW5_CS4 +#define CS5_SW5 SW5_CS5 +#define CS6_SW5 SW5_CS6 +#define CS7_SW5 SW5_CS7 +#define CS8_SW5 SW5_CS8 +#define CS9_SW5 SW5_CS9 +#define CS10_SW5 SW5_CS10 +#define CS11_SW5 SW5_CS11 +#define CS12_SW5 SW5_CS12 +#define CS13_SW5 SW5_CS13 +#define CS14_SW5 SW5_CS14 +#define CS15_SW5 SW5_CS15 +#define CS16_SW5 SW5_CS16 +#define CS17_SW5 SW5_CS17 +#define CS18_SW5 SW5_CS18 +#define CS19_SW5 SW5_CS19 +#define CS20_SW5 SW5_CS20 +#define CS21_SW5 SW5_CS21 +#define CS22_SW5 SW5_CS22 +#define CS23_SW5 SW5_CS23 +#define CS24_SW5 SW5_CS24 +#define CS25_SW5 SW5_CS25 +#define CS26_SW5 SW5_CS26 +#define CS27_SW5 SW5_CS27 +#define CS28_SW5 SW5_CS28 +#define CS29_SW5 SW5_CS29 +#define CS30_SW5 SW5_CS30 + +#define CS1_SW6 SW6_CS1 +#define CS2_SW6 SW6_CS2 +#define CS3_SW6 SW6_CS3 +#define CS4_SW6 SW6_CS4 +#define CS5_SW6 SW6_CS5 +#define CS6_SW6 SW6_CS6 +#define CS7_SW6 SW6_CS7 +#define CS8_SW6 SW6_CS8 +#define CS9_SW6 SW6_CS9 +#define CS10_SW6 SW6_CS10 +#define CS11_SW6 SW6_CS11 +#define CS12_SW6 SW6_CS12 +#define CS13_SW6 SW6_CS13 +#define CS14_SW6 SW6_CS14 +#define CS15_SW6 SW6_CS15 +#define CS16_SW6 SW6_CS16 +#define CS17_SW6 SW6_CS17 +#define CS18_SW6 SW6_CS18 +#define CS19_SW6 SW6_CS19 +#define CS20_SW6 SW6_CS20 +#define CS21_SW6 SW6_CS21 +#define CS22_SW6 SW6_CS22 +#define CS23_SW6 SW6_CS23 +#define CS24_SW6 SW6_CS24 +#define CS25_SW6 SW6_CS25 +#define CS26_SW6 SW6_CS26 +#define CS27_SW6 SW6_CS27 +#define CS28_SW6 SW6_CS28 +#define CS29_SW6 SW6_CS29 +#define CS30_SW6 SW6_CS30 + +#define CS1_SW7 SW7_CS1 +#define CS2_SW7 SW7_CS2 +#define CS3_SW7 SW7_CS3 +#define CS4_SW7 SW7_CS4 +#define CS5_SW7 SW7_CS5 +#define CS6_SW7 SW7_CS6 +#define CS7_SW7 SW7_CS7 +#define CS8_SW7 SW7_CS8 +#define CS9_SW7 SW7_CS9 +#define CS10_SW7 SW7_CS10 +#define CS11_SW7 SW7_CS11 +#define CS12_SW7 SW7_CS12 +#define CS13_SW7 SW7_CS13 +#define CS14_SW7 SW7_CS14 +#define CS15_SW7 SW7_CS15 +#define CS16_SW7 SW7_CS16 +#define CS17_SW7 SW7_CS17 +#define CS18_SW7 SW7_CS18 +#define CS19_SW7 SW7_CS19 +#define CS20_SW7 SW7_CS20 +#define CS21_SW7 SW7_CS21 +#define CS22_SW7 SW7_CS22 +#define CS23_SW7 SW7_CS23 +#define CS24_SW7 SW7_CS24 +#define CS25_SW7 SW7_CS25 +#define CS26_SW7 SW7_CS26 +#define CS27_SW7 SW7_CS27 +#define CS28_SW7 SW7_CS28 +#define CS29_SW7 SW7_CS29 +#define CS30_SW7 SW7_CS30 + +#define CS1_SW8 SW8_CS1 +#define CS2_SW8 SW8_CS2 +#define CS3_SW8 SW8_CS3 +#define CS4_SW8 SW8_CS4 +#define CS5_SW8 SW8_CS5 +#define CS6_SW8 SW8_CS6 +#define CS7_SW8 SW8_CS7 +#define CS8_SW8 SW8_CS8 +#define CS9_SW8 SW8_CS9 +#define CS10_SW8 SW8_CS10 +#define CS11_SW8 SW8_CS11 +#define CS12_SW8 SW8_CS12 +#define CS13_SW8 SW8_CS13 +#define CS14_SW8 SW8_CS14 +#define CS15_SW8 SW8_CS15 +#define CS16_SW8 SW8_CS16 +#define CS17_SW8 SW8_CS17 +#define CS18_SW8 SW8_CS18 +#define CS19_SW8 SW8_CS19 +#define CS20_SW8 SW8_CS20 +#define CS21_SW8 SW8_CS21 +#define CS22_SW8 SW8_CS22 +#define CS23_SW8 SW8_CS23 +#define CS24_SW8 SW8_CS24 +#define CS25_SW8 SW8_CS25 +#define CS26_SW8 SW8_CS26 +#define CS27_SW8 SW8_CS27 +#define CS28_SW8 SW8_CS28 +#define CS29_SW8 SW8_CS29 +#define CS30_SW8 SW8_CS30 + +#define CS1_SW9 SW9_CS1 +#define CS2_SW9 SW9_CS2 +#define CS3_SW9 SW9_CS3 +#define CS4_SW9 SW9_CS4 +#define CS5_SW9 SW9_CS5 +#define CS6_SW9 SW9_CS6 +#define CS7_SW9 SW9_CS7 +#define CS8_SW9 SW9_CS8 +#define CS9_SW9 SW9_CS9 +#define CS10_SW9 SW9_CS10 +#define CS11_SW9 SW9_CS11 +#define CS12_SW9 SW9_CS12 +#define CS13_SW9 SW9_CS13 +#define CS14_SW9 SW9_CS14 +#define CS15_SW9 SW9_CS15 +#define CS16_SW9 SW9_CS16 +#define CS17_SW9 SW9_CS17 +#define CS18_SW9 SW9_CS18 +#define CS19_SW9 SW9_CS19 +#define CS20_SW9 SW9_CS20 +#define CS21_SW9 SW9_CS21 +#define CS22_SW9 SW9_CS22 +#define CS23_SW9 SW9_CS23 +#define CS24_SW9 SW9_CS24 +#define CS25_SW9 SW9_CS25 +#define CS26_SW9 SW9_CS26 +#define CS27_SW9 SW9_CS27 +#define CS28_SW9 SW9_CS28 +#define CS29_SW9 SW9_CS29 +#define CS30_SW9 SW9_CS30 + +#define CS31_SW1 SW1_CS31 +#define CS32_SW1 SW1_CS32 +#define CS33_SW1 SW1_CS33 +#define CS34_SW1 SW1_CS34 +#define CS35_SW1 SW1_CS35 +#define CS36_SW1 SW1_CS36 +#define CS37_SW1 SW1_CS37 +#define CS38_SW1 SW1_CS38 +#define CS39_SW1 SW1_CS39 + +#define CS31_SW2 SW2_CS31 +#define CS32_SW2 SW2_CS32 +#define CS33_SW2 SW2_CS33 +#define CS34_SW2 SW2_CS34 +#define CS35_SW2 SW2_CS35 +#define CS36_SW2 SW2_CS36 +#define CS37_SW2 SW2_CS37 +#define CS38_SW2 SW2_CS38 +#define CS39_SW2 SW2_CS39 + +#define CS31_SW3 SW3_CS31 +#define CS32_SW3 SW3_CS32 +#define CS33_SW3 SW3_CS33 +#define CS34_SW3 SW3_CS34 +#define CS35_SW3 SW3_CS35 +#define CS36_SW3 SW3_CS36 +#define CS37_SW3 SW3_CS37 +#define CS38_SW3 SW3_CS38 +#define CS39_SW3 SW3_CS39 + +#define CS31_SW4 SW4_CS31 +#define CS32_SW4 SW4_CS32 +#define CS33_SW4 SW4_CS33 +#define CS34_SW4 SW4_CS34 +#define CS35_SW4 SW4_CS35 +#define CS36_SW4 SW4_CS36 +#define CS37_SW4 SW4_CS37 +#define CS38_SW4 SW4_CS38 +#define CS39_SW4 SW4_CS39 + +#define CS31_SW5 SW5_CS31 +#define CS32_SW5 SW5_CS32 +#define CS33_SW5 SW5_CS33 +#define CS34_SW5 SW5_CS34 +#define CS35_SW5 SW5_CS35 +#define CS36_SW5 SW5_CS36 +#define CS37_SW5 SW5_CS37 +#define CS38_SW5 SW5_CS38 +#define CS39_SW5 SW5_CS39 + +#define CS31_SW6 SW6_CS31 +#define CS32_SW6 SW6_CS32 +#define CS33_SW6 SW6_CS33 +#define CS34_SW6 SW6_CS34 +#define CS35_SW6 SW6_CS35 +#define CS36_SW6 SW6_CS36 +#define CS37_SW6 SW6_CS37 +#define CS38_SW6 SW6_CS38 +#define CS39_SW6 SW6_CS39 + +#define CS31_SW7 SW7_CS31 +#define CS32_SW7 SW7_CS32 +#define CS33_SW7 SW7_CS33 +#define CS34_SW7 SW7_CS34 +#define CS35_SW7 SW7_CS35 +#define CS36_SW7 SW7_CS36 +#define CS37_SW7 SW7_CS37 +#define CS38_SW7 SW7_CS38 +#define CS39_SW7 SW7_CS39 + +#define CS31_SW8 SW8_CS31 +#define CS32_SW8 SW8_CS32 +#define CS33_SW8 SW8_CS33 +#define CS34_SW8 SW8_CS34 +#define CS35_SW8 SW8_CS35 +#define CS36_SW8 SW8_CS36 +#define CS37_SW8 SW8_CS37 +#define CS38_SW8 SW8_CS38 +#define CS39_SW8 SW8_CS39 + +#define CS31_SW9 SW9_CS31 +#define CS32_SW9 SW9_CS32 +#define CS33_SW9 SW9_CS33 +#define CS34_SW9 SW9_CS34 +#define CS35_SW9 SW9_CS35 +#define CS36_SW9 SW9_CS36 +#define CS37_SW9 SW9_CS37 +#define CS38_SW9 SW9_CS38 +#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3743a.h b/drivers/led/issi/is31fl3743a.h index bfff904047..48aeab46ab 100644 --- a/drivers/led/issi/is31fl3743a.h +++ b/drivers/led/issi/is31fl3743a.h @@ -328,3 +328,214 @@ void is31fl3743a_flush(void); #define SW11_CS16 0xC3 #define SW11_CS17 0xC4 #define SW11_CS18 0xC5 + +// DEPRECATED - DO NOT USE + +#define CS1_SW1 SW1_CS1 +#define CS2_SW1 SW1_CS2 +#define CS3_SW1 SW1_CS3 +#define CS4_SW1 SW1_CS4 +#define CS5_SW1 SW1_CS5 +#define CS6_SW1 SW1_CS6 +#define CS7_SW1 SW1_CS7 +#define CS8_SW1 SW1_CS8 +#define CS9_SW1 SW1_CS9 +#define CS10_SW1 SW1_CS10 +#define CS11_SW1 SW1_CS11 +#define CS12_SW1 SW1_CS12 +#define CS13_SW1 SW1_CS13 +#define CS14_SW1 SW1_CS14 +#define CS15_SW1 SW1_CS15 +#define CS16_SW1 SW1_CS16 +#define CS17_SW1 SW1_CS17 +#define CS18_SW1 SW1_CS18 + +#define CS1_SW2 SW2_CS1 +#define CS2_SW2 SW2_CS2 +#define CS3_SW2 SW2_CS3 +#define CS4_SW2 SW2_CS4 +#define CS5_SW2 SW2_CS5 +#define CS6_SW2 SW2_CS6 +#define CS7_SW2 SW2_CS7 +#define CS8_SW2 SW2_CS8 +#define CS9_SW2 SW2_CS9 +#define CS10_SW2 SW2_CS10 +#define CS11_SW2 SW2_CS11 +#define CS12_SW2 SW2_CS12 +#define CS13_SW2 SW2_CS13 +#define CS14_SW2 SW2_CS14 +#define CS15_SW2 SW2_CS15 +#define CS16_SW2 SW2_CS16 +#define CS17_SW2 SW2_CS17 +#define CS18_SW2 SW2_CS18 + +#define CS1_SW3 SW3_CS1 +#define CS2_SW3 SW3_CS2 +#define CS3_SW3 SW3_CS3 +#define CS4_SW3 SW3_CS4 +#define CS5_SW3 SW3_CS5 +#define CS6_SW3 SW3_CS6 +#define CS7_SW3 SW3_CS7 +#define CS8_SW3 SW3_CS8 +#define CS9_SW3 SW3_CS9 +#define CS10_SW3 SW3_CS10 +#define CS11_SW3 SW3_CS11 +#define CS12_SW3 SW3_CS12 +#define CS13_SW3 SW3_CS13 +#define CS14_SW3 SW3_CS14 +#define CS15_SW3 SW3_CS15 +#define CS16_SW3 SW3_CS16 +#define CS17_SW3 SW3_CS17 +#define CS18_SW3 SW3_CS18 + +#define CS1_SW4 SW4_CS1 +#define CS2_SW4 SW4_CS2 +#define CS3_SW4 SW4_CS3 +#define CS4_SW4 SW4_CS4 +#define CS5_SW4 SW4_CS5 +#define CS6_SW4 SW4_CS6 +#define CS7_SW4 SW4_CS7 +#define CS8_SW4 SW4_CS8 +#define CS9_SW4 SW4_CS9 +#define CS10_SW4 SW4_CS10 +#define CS11_SW4 SW4_CS11 +#define CS12_SW4 SW4_CS12 +#define CS13_SW4 SW4_CS13 +#define CS14_SW4 SW4_CS14 +#define CS15_SW4 SW4_CS15 +#define CS16_SW4 SW4_CS16 +#define CS17_SW4 SW4_CS17 +#define CS18_SW4 SW4_CS18 + +#define CS1_SW5 SW5_CS1 +#define CS2_SW5 SW5_CS2 +#define CS3_SW5 SW5_CS3 +#define CS4_SW5 SW5_CS4 +#define CS5_SW5 SW5_CS5 +#define CS6_SW5 SW5_CS6 +#define CS7_SW5 SW5_CS7 +#define CS8_SW5 SW5_CS8 +#define CS9_SW5 SW5_CS9 +#define CS10_SW5 SW5_CS10 +#define CS11_SW5 SW5_CS11 +#define CS12_SW5 SW5_CS12 +#define CS13_SW5 SW5_CS13 +#define CS14_SW5 SW5_CS14 +#define CS15_SW5 SW5_CS15 +#define CS16_SW5 SW5_CS16 +#define CS17_SW5 SW5_CS17 +#define CS18_SW5 SW5_CS18 + +#define CS1_SW6 SW6_CS1 +#define CS2_SW6 SW6_CS2 +#define CS3_SW6 SW6_CS3 +#define CS4_SW6 SW6_CS4 +#define CS5_SW6 SW6_CS5 +#define CS6_SW6 SW6_CS6 +#define CS7_SW6 SW6_CS7 +#define CS8_SW6 SW6_CS8 +#define CS9_SW6 SW6_CS9 +#define CS10_SW6 SW6_CS10 +#define CS11_SW6 SW6_CS11 +#define CS12_SW6 SW6_CS12 +#define CS13_SW6 SW6_CS13 +#define CS14_SW6 SW6_CS14 +#define CS15_SW6 SW6_CS15 +#define CS16_SW6 SW6_CS16 +#define CS17_SW6 SW6_CS17 +#define CS18_SW6 SW6_CS18 + +#define CS1_SW7 SW7_CS1 +#define CS2_SW7 SW7_CS2 +#define CS3_SW7 SW7_CS3 +#define CS4_SW7 SW7_CS4 +#define CS5_SW7 SW7_CS5 +#define CS6_SW7 SW7_CS6 +#define CS7_SW7 SW7_CS7 +#define CS8_SW7 SW7_CS8 +#define CS9_SW7 SW7_CS9 +#define CS10_SW7 SW7_CS10 +#define CS11_SW7 SW7_CS11 +#define CS12_SW7 SW7_CS12 +#define CS13_SW7 SW7_CS13 +#define CS14_SW7 SW7_CS14 +#define CS15_SW7 SW7_CS15 +#define CS16_SW7 SW7_CS16 +#define CS17_SW7 SW7_CS17 +#define CS18_SW7 SW7_CS18 + +#define CS1_SW8 SW8_CS1 +#define CS2_SW8 SW8_CS2 +#define CS3_SW8 SW8_CS3 +#define CS4_SW8 SW8_CS4 +#define CS5_SW8 SW8_CS5 +#define CS6_SW8 SW8_CS6 +#define CS7_SW8 SW8_CS7 +#define CS8_SW8 SW8_CS8 +#define CS9_SW8 SW8_CS9 +#define CS10_SW8 SW8_CS10 +#define CS11_SW8 SW8_CS11 +#define CS12_SW8 SW8_CS12 +#define CS13_SW8 SW8_CS13 +#define CS14_SW8 SW8_CS14 +#define CS15_SW8 SW8_CS15 +#define CS16_SW8 SW8_CS16 +#define CS17_SW8 SW8_CS17 +#define CS18_SW8 SW8_CS18 + +#define CS1_SW9 SW9_CS1 +#define CS2_SW9 SW9_CS2 +#define CS3_SW9 SW9_CS3 +#define CS4_SW9 SW9_CS4 +#define CS5_SW9 SW9_CS5 +#define CS6_SW9 SW9_CS6 +#define CS7_SW9 SW9_CS7 +#define CS8_SW9 SW9_CS8 +#define CS9_SW9 SW9_CS9 +#define CS10_SW9 SW9_CS10 +#define CS11_SW9 SW9_CS11 +#define CS12_SW9 SW9_CS12 +#define CS13_SW9 SW9_CS13 +#define CS14_SW9 SW9_CS14 +#define CS15_SW9 SW9_CS15 +#define CS16_SW9 SW9_CS16 +#define CS17_SW9 SW9_CS17 +#define CS18_SW9 SW9_CS18 + +#define CS1_SW10 SW10_CS1 +#define CS2_SW10 SW10_CS2 +#define CS3_SW10 SW10_CS3 +#define CS4_SW10 SW10_CS4 +#define CS5_SW10 SW10_CS5 +#define CS6_SW10 SW10_CS6 +#define CS7_SW10 SW10_CS7 +#define CS8_SW10 SW10_CS8 +#define CS9_SW10 SW10_CS9 +#define CS10_SW10 SW10_CS10 +#define CS11_SW10 SW10_CS11 +#define CS12_SW10 SW10_CS12 +#define CS13_SW10 SW10_CS13 +#define CS14_SW10 SW10_CS14 +#define CS15_SW10 SW10_CS15 +#define CS16_SW10 SW10_CS16 +#define CS17_SW10 SW10_CS17 +#define CS18_SW10 SW10_CS18 + +#define CS1_SW11 SW11_CS1 +#define CS2_SW11 SW11_CS2 +#define CS3_SW11 SW11_CS3 +#define CS4_SW11 SW11_CS4 +#define CS5_SW11 SW11_CS5 +#define CS6_SW11 SW11_CS6 +#define CS7_SW11 SW11_CS7 +#define CS8_SW11 SW11_CS8 +#define CS9_SW11 SW11_CS9 +#define CS10_SW11 SW11_CS10 +#define CS11_SW11 SW11_CS11 +#define CS12_SW11 SW11_CS12 +#define CS13_SW11 SW11_CS13 +#define CS14_SW11 SW11_CS14 +#define CS15_SW11 SW11_CS15 +#define CS16_SW11 SW11_CS16 +#define CS17_SW11 SW11_CS17 +#define CS18_SW11 SW11_CS18 diff --git a/drivers/led/snled27351-mono.h b/drivers/led/snled27351-mono.h index b88ef25f76..43d39934cb 100644 --- a/drivers/led/snled27351-mono.h +++ b/drivers/led/snled27351-mono.h @@ -21,6 +21,37 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -347,3 +378,209 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF + +// DEPRECATED - DO NOT USE + +#define A_1 CB1_CA1 +#define A_2 CB1_CA2 +#define A_3 CB1_CA3 +#define A_4 CB1_CA4 +#define A_5 CB1_CA5 +#define A_6 CB1_CA6 +#define A_7 CB1_CA7 +#define A_8 CB1_CA8 +#define A_9 CB1_CA9 +#define A_10 CB1_CA10 +#define A_11 CB1_CA11 +#define A_12 CB1_CA12 +#define A_13 CB1_CA13 +#define A_14 CB1_CA14 +#define A_15 CB1_CA15 +#define A_16 CB1_CA16 + +#define B_1 CB2_CA1 +#define B_2 CB2_CA2 +#define B_3 CB2_CA3 +#define B_4 CB2_CA4 +#define B_5 CB2_CA5 +#define B_6 CB2_CA6 +#define B_7 CB2_CA7 +#define B_8 CB2_CA8 +#define B_9 CB2_CA9 +#define B_10 CB2_CA10 +#define B_11 CB2_CA11 +#define B_12 CB2_CA12 +#define B_13 CB2_CA13 +#define B_14 CB2_CA14 +#define B_15 CB2_CA15 +#define B_16 CB2_CA16 + +#define C_1 CB3_CA1 +#define C_2 CB3_CA2 +#define C_3 CB3_CA3 +#define C_4 CB3_CA4 +#define C_5 CB3_CA5 +#define C_6 CB3_CA6 +#define C_7 CB3_CA7 +#define C_8 CB3_CA8 +#define C_9 CB3_CA9 +#define C_10 CB3_CA10 +#define C_11 CB3_CA11 +#define C_12 CB3_CA12 +#define C_13 CB3_CA13 +#define C_14 CB3_CA14 +#define C_15 CB3_CA15 +#define C_16 CB3_CA16 + +#define D_1 CB4_CA1 +#define D_2 CB4_CA2 +#define D_3 CB4_CA3 +#define D_4 CB4_CA4 +#define D_5 CB4_CA5 +#define D_6 CB4_CA6 +#define D_7 CB4_CA7 +#define D_8 CB4_CA8 +#define D_9 CB4_CA9 +#define D_10 CB4_CA10 +#define D_11 CB4_CA11 +#define D_12 CB4_CA12 +#define D_13 CB4_CA13 +#define D_14 CB4_CA14 +#define D_15 CB4_CA15 +#define D_16 CB4_CA16 + +#define E_1 CB5_CA1 +#define E_2 CB5_CA2 +#define E_3 CB5_CA3 +#define E_4 CB5_CA4 +#define E_5 CB5_CA5 +#define E_6 CB5_CA6 +#define E_7 CB5_CA7 +#define E_8 CB5_CA8 +#define E_9 CB5_CA9 +#define E_10 CB5_CA10 +#define E_11 CB5_CA11 +#define E_12 CB5_CA12 +#define E_13 CB5_CA13 +#define E_14 CB5_CA14 +#define E_15 CB5_CA15 +#define E_16 CB5_CA16 + +#define F_1 CB6_CA1 +#define F_2 CB6_CA2 +#define F_3 CB6_CA3 +#define F_4 CB6_CA4 +#define F_5 CB6_CA5 +#define F_6 CB6_CA6 +#define F_7 CB6_CA7 +#define F_8 CB6_CA8 +#define F_9 CB6_CA9 +#define F_10 CB6_CA10 +#define F_11 CB6_CA11 +#define F_12 CB6_CA12 +#define F_13 CB6_CA13 +#define F_14 CB6_CA14 +#define F_15 CB6_CA15 +#define F_16 CB6_CA16 + +#define G_1 CB7_CA1 +#define G_2 CB7_CA2 +#define G_3 CB7_CA3 +#define G_4 CB7_CA4 +#define G_5 CB7_CA5 +#define G_6 CB7_CA6 +#define G_7 CB7_CA7 +#define G_8 CB7_CA8 +#define G_9 CB7_CA9 +#define G_10 CB7_CA10 +#define G_11 CB7_CA11 +#define G_12 CB7_CA12 +#define G_13 CB7_CA13 +#define G_14 CB7_CA14 +#define G_15 CB7_CA15 +#define G_16 CB7_CA16 + +#define H_1 CB8_CA1 +#define H_2 CB8_CA2 +#define H_3 CB8_CA3 +#define H_4 CB8_CA4 +#define H_5 CB8_CA5 +#define H_6 CB8_CA6 +#define H_7 CB8_CA7 +#define H_8 CB8_CA8 +#define H_9 CB8_CA9 +#define H_10 CB8_CA10 +#define H_11 CB8_CA11 +#define H_12 CB8_CA12 +#define H_13 CB8_CA13 +#define H_14 CB8_CA14 +#define H_15 CB8_CA15 +#define H_16 CB8_CA16 + +#define I_1 CB9_CA1 +#define I_2 CB9_CA2 +#define I_3 CB9_CA3 +#define I_4 CB9_CA4 +#define I_5 CB9_CA5 +#define I_6 CB9_CA6 +#define I_7 CB9_CA7 +#define I_8 CB9_CA8 +#define I_9 CB9_CA9 +#define I_10 CB9_CA10 +#define I_11 CB9_CA11 +#define I_12 CB9_CA12 +#define I_13 CB9_CA13 +#define I_14 CB9_CA14 +#define I_15 CB9_CA15 +#define I_16 CB9_CA16 + +#define J_1 CB10_CA1 +#define J_2 CB10_CA2 +#define J_3 CB10_CA3 +#define J_4 CB10_CA4 +#define J_5 CB10_CA5 +#define J_6 CB10_CA6 +#define J_7 CB10_CA7 +#define J_8 CB10_CA8 +#define J_9 CB10_CA9 +#define J_10 CB10_CA10 +#define J_11 CB10_CA11 +#define J_12 CB10_CA12 +#define J_13 CB10_CA13 +#define J_14 CB10_CA14 +#define J_15 CB10_CA15 +#define J_16 CB10_CA16 + +#define K_1 CB11_CA1 +#define K_2 CB11_CA2 +#define K_3 CB11_CA3 +#define K_4 CB11_CA4 +#define K_5 CB11_CA5 +#define K_6 CB11_CA6 +#define K_7 CB11_CA7 +#define K_8 CB11_CA8 +#define K_9 CB11_CA9 +#define K_10 CB11_CA10 +#define K_11 CB11_CA11 +#define K_12 CB11_CA12 +#define K_13 CB11_CA13 +#define K_14 CB11_CA14 +#define K_15 CB11_CA15 +#define K_16 CB11_CA16 + +#define L_1 CB12_CA1 +#define L_2 CB12_CA2 +#define L_3 CB12_CA3 +#define L_4 CB12_CA4 +#define L_5 CB12_CA5 +#define L_6 CB12_CA6 +#define L_7 CB12_CA7 +#define L_8 CB12_CA8 +#define L_9 CB12_CA9 +#define L_10 CB12_CA10 +#define L_11 CB12_CA11 +#define L_12 CB12_CA12 +#define L_13 CB12_CA13 +#define L_14 CB12_CA14 +#define L_15 CB12_CA15 +#define L_16 CB12_CA16 diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index 1b7f05c285..d902744d14 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -21,6 +21,49 @@ #include "progmem.h" #include "util.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -349,3 +392,209 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF + +// DEPRECATED - DO NOT USE + +#define A_1 CB1_CA1 +#define A_2 CB1_CA2 +#define A_3 CB1_CA3 +#define A_4 CB1_CA4 +#define A_5 CB1_CA5 +#define A_6 CB1_CA6 +#define A_7 CB1_CA7 +#define A_8 CB1_CA8 +#define A_9 CB1_CA9 +#define A_10 CB1_CA10 +#define A_11 CB1_CA11 +#define A_12 CB1_CA12 +#define A_13 CB1_CA13 +#define A_14 CB1_CA14 +#define A_15 CB1_CA15 +#define A_16 CB1_CA16 + +#define B_1 CB2_CA1 +#define B_2 CB2_CA2 +#define B_3 CB2_CA3 +#define B_4 CB2_CA4 +#define B_5 CB2_CA5 +#define B_6 CB2_CA6 +#define B_7 CB2_CA7 +#define B_8 CB2_CA8 +#define B_9 CB2_CA9 +#define B_10 CB2_CA10 +#define B_11 CB2_CA11 +#define B_12 CB2_CA12 +#define B_13 CB2_CA13 +#define B_14 CB2_CA14 +#define B_15 CB2_CA15 +#define B_16 CB2_CA16 + +#define C_1 CB3_CA1 +#define C_2 CB3_CA2 +#define C_3 CB3_CA3 +#define C_4 CB3_CA4 +#define C_5 CB3_CA5 +#define C_6 CB3_CA6 +#define C_7 CB3_CA7 +#define C_8 CB3_CA8 +#define C_9 CB3_CA9 +#define C_10 CB3_CA10 +#define C_11 CB3_CA11 +#define C_12 CB3_CA12 +#define C_13 CB3_CA13 +#define C_14 CB3_CA14 +#define C_15 CB3_CA15 +#define C_16 CB3_CA16 + +#define D_1 CB4_CA1 +#define D_2 CB4_CA2 +#define D_3 CB4_CA3 +#define D_4 CB4_CA4 +#define D_5 CB4_CA5 +#define D_6 CB4_CA6 +#define D_7 CB4_CA7 +#define D_8 CB4_CA8 +#define D_9 CB4_CA9 +#define D_10 CB4_CA10 +#define D_11 CB4_CA11 +#define D_12 CB4_CA12 +#define D_13 CB4_CA13 +#define D_14 CB4_CA14 +#define D_15 CB4_CA15 +#define D_16 CB4_CA16 + +#define E_1 CB5_CA1 +#define E_2 CB5_CA2 +#define E_3 CB5_CA3 +#define E_4 CB5_CA4 +#define E_5 CB5_CA5 +#define E_6 CB5_CA6 +#define E_7 CB5_CA7 +#define E_8 CB5_CA8 +#define E_9 CB5_CA9 +#define E_10 CB5_CA10 +#define E_11 CB5_CA11 +#define E_12 CB5_CA12 +#define E_13 CB5_CA13 +#define E_14 CB5_CA14 +#define E_15 CB5_CA15 +#define E_16 CB5_CA16 + +#define F_1 CB6_CA1 +#define F_2 CB6_CA2 +#define F_3 CB6_CA3 +#define F_4 CB6_CA4 +#define F_5 CB6_CA5 +#define F_6 CB6_CA6 +#define F_7 CB6_CA7 +#define F_8 CB6_CA8 +#define F_9 CB6_CA9 +#define F_10 CB6_CA10 +#define F_11 CB6_CA11 +#define F_12 CB6_CA12 +#define F_13 CB6_CA13 +#define F_14 CB6_CA14 +#define F_15 CB6_CA15 +#define F_16 CB6_CA16 + +#define G_1 CB7_CA1 +#define G_2 CB7_CA2 +#define G_3 CB7_CA3 +#define G_4 CB7_CA4 +#define G_5 CB7_CA5 +#define G_6 CB7_CA6 +#define G_7 CB7_CA7 +#define G_8 CB7_CA8 +#define G_9 CB7_CA9 +#define G_10 CB7_CA10 +#define G_11 CB7_CA11 +#define G_12 CB7_CA12 +#define G_13 CB7_CA13 +#define G_14 CB7_CA14 +#define G_15 CB7_CA15 +#define G_16 CB7_CA16 + +#define H_1 CB8_CA1 +#define H_2 CB8_CA2 +#define H_3 CB8_CA3 +#define H_4 CB8_CA4 +#define H_5 CB8_CA5 +#define H_6 CB8_CA6 +#define H_7 CB8_CA7 +#define H_8 CB8_CA8 +#define H_9 CB8_CA9 +#define H_10 CB8_CA10 +#define H_11 CB8_CA11 +#define H_12 CB8_CA12 +#define H_13 CB8_CA13 +#define H_14 CB8_CA14 +#define H_15 CB8_CA15 +#define H_16 CB8_CA16 + +#define I_1 CB9_CA1 +#define I_2 CB9_CA2 +#define I_3 CB9_CA3 +#define I_4 CB9_CA4 +#define I_5 CB9_CA5 +#define I_6 CB9_CA6 +#define I_7 CB9_CA7 +#define I_8 CB9_CA8 +#define I_9 CB9_CA9 +#define I_10 CB9_CA10 +#define I_11 CB9_CA11 +#define I_12 CB9_CA12 +#define I_13 CB9_CA13 +#define I_14 CB9_CA14 +#define I_15 CB9_CA15 +#define I_16 CB9_CA16 + +#define J_1 CB10_CA1 +#define J_2 CB10_CA2 +#define J_3 CB10_CA3 +#define J_4 CB10_CA4 +#define J_5 CB10_CA5 +#define J_6 CB10_CA6 +#define J_7 CB10_CA7 +#define J_8 CB10_CA8 +#define J_9 CB10_CA9 +#define J_10 CB10_CA10 +#define J_11 CB10_CA11 +#define J_12 CB10_CA12 +#define J_13 CB10_CA13 +#define J_14 CB10_CA14 +#define J_15 CB10_CA15 +#define J_16 CB10_CA16 + +#define K_1 CB11_CA1 +#define K_2 CB11_CA2 +#define K_3 CB11_CA3 +#define K_4 CB11_CA4 +#define K_5 CB11_CA5 +#define K_6 CB11_CA6 +#define K_7 CB11_CA7 +#define K_8 CB11_CA8 +#define K_9 CB11_CA9 +#define K_10 CB11_CA10 +#define K_11 CB11_CA11 +#define K_12 CB11_CA12 +#define K_13 CB11_CA13 +#define K_14 CB11_CA14 +#define K_15 CB11_CA15 +#define K_16 CB11_CA16 + +#define L_1 CB12_CA1 +#define L_2 CB12_CA2 +#define L_3 CB12_CA3 +#define L_4 CB12_CA4 +#define L_5 CB12_CA5 +#define L_6 CB12_CA6 +#define L_7 CB12_CA7 +#define L_8 CB12_CA8 +#define L_9 CB12_CA9 +#define L_10 CB12_CA10 +#define L_11 CB12_CA11 +#define L_12 CB12_CA12 +#define L_13 CB12_CA13 +#define L_14 CB12_CA14 +#define L_15 CB12_CA15 +#define L_16 CB12_CA16 diff --git a/drivers/led/ws2812.c b/drivers/led/ws2812.c deleted file mode 100644 index bf234c6f7d..0000000000 --- a/drivers/led/ws2812.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "ws2812.h" - -#if defined(WS2812_RGBW) -void ws2812_rgb_to_rgbw(ws2812_led_t *led) { - // Determine lowest value in all three colors, put that into - // the white channel and then shift all colors by that amount - led->w = MIN(led->r, MIN(led->g, led->b)); - led->r -= led->w; - led->g -= led->w; - led->b -= led->w; -} -#endif diff --git a/drivers/led/ws2812.h b/drivers/led/ws2812.h deleted file mode 100644 index 8013e5bd2d..0000000000 --- a/drivers/led/ws2812.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "util.h" - -/* - * The WS2812 datasheets define T1H 900ns, T0H 350ns, T1L 350ns, T0L 900ns. Hence, by default, these - * are chosen to be conservative and avoid problems rather than for maximum throughput; in the code, - * this is done by default using a WS2812_TIMING parameter that accounts for the whole window (1250ns) - * and defining T1H and T0H; T1L and T0L are obtained by subtracting their low counterparts from the window. - * - * However, there are certain "WS2812"-like LEDs, like the SK6812s, which work in a similar - * communication topology but use different timings for the window and the T1L, T1H, T0L and T0H. - * This means that, albeit the same driver being applicable, the timings must be adapted. - */ - -#ifndef WS2812_TIMING -# define WS2812_TIMING 1250 -#endif - -#ifndef WS2812_T1H -# define WS2812_T1H 900 // Width of a 1 bit in ns -#endif - -#ifndef WS2812_T1L -# define WS2812_T1L (WS2812_TIMING - WS2812_T1H) // Width of a 1 bit in ns -#endif - -#ifndef WS2812_T0H -# define WS2812_T0H 350 // Width of a 0 bit in ns -#endif - -#ifndef WS2812_T0L -# define WS2812_T0L (WS2812_TIMING - WS2812_T0H) // Width of a 0 bit in ns -#endif - -/* - * Older WS2812s can handle a reset time (TRST) of 50us, but recent - * component revisions require a minimum of 280us. - */ -#if !defined(WS2812_TRST_US) -# define WS2812_TRST_US 280 -#endif - -#if defined(RGBLIGHT_WS2812) -# define WS2812_LED_COUNT RGBLIGHT_LED_COUNT -#elif defined(RGB_MATRIX_WS2812) -# define WS2812_LED_COUNT RGB_MATRIX_LED_COUNT -#endif - -#define WS2812_BYTE_ORDER_RGB 0 -#define WS2812_BYTE_ORDER_GRB 1 -#define WS2812_BYTE_ORDER_BGR 2 - -#ifndef WS2812_BYTE_ORDER -# define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB -#endif - -typedef struct PACKED ws2812_led_t { -#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) - uint8_t g; - uint8_t r; - uint8_t b; -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) - uint8_t r; - uint8_t g; - uint8_t b; -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) - uint8_t b; - uint8_t g; - uint8_t r; -#endif -#ifdef WS2812_RGBW - uint8_t w; -#endif -} ws2812_led_t; - -void ws2812_init(void); -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void ws2812_flush(void); - -void ws2812_rgb_to_rgbw(ws2812_led_t *led); diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 7e46bcb3f7..1d1c2a90c4 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -23,8 +23,6 @@ along with this program. If not, see . # include "keyboard.h" # endif #endif - -#include "compiler_support.h" #include "oled_driver.h" #include OLED_FONT_H #include "timer.h" @@ -603,7 +601,7 @@ void oled_write_char(const char data, bool invert) { static uint8_t oled_temp_buffer[OLED_FONT_WIDTH]; memcpy(&oled_temp_buffer, oled_cursor, OLED_FONT_WIDTH); - STATIC_ASSERT(sizeof(font) >= ((OLED_FONT_END + 1 - OLED_FONT_START) * OLED_FONT_WIDTH), "OLED_FONT_END references outside array"); + _Static_assert(sizeof(font) >= ((OLED_FONT_END + 1 - OLED_FONT_START) * OLED_FONT_WIDTH), "OLED_FONT_END references outside array"); // set the reder buffer data uint8_t cast_data = (uint8_t)data; // font based on unsigned type for index diff --git a/drivers/painter/comms/qp_comms_dummy.c b/drivers/painter/comms/qp_comms_dummy.c index 7a2aef5d37..2ed49d2232 100644 --- a/drivers/painter/comms/qp_comms_dummy.c +++ b/drivers/painter/comms/qp_comms_dummy.c @@ -15,9 +15,8 @@ static bool dummy_comms_start(painter_device_t device) { return true; } -static bool dummy_comms_stop(painter_device_t device) { +static void dummy_comms_stop(painter_device_t device) { // No-op. - return true; } uint32_t dummy_comms_send(painter_device_t device, const void *data, uint32_t byte_count) { diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c index f093c87ee4..93f503f3dd 100644 --- a/drivers/painter/comms/qp_comms_i2c.c +++ b/drivers/painter/comms/qp_comms_i2c.c @@ -35,9 +35,7 @@ uint32_t qp_comms_i2c_send_data(painter_device_t device, const void *data, uint3 return qp_comms_i2c_send_raw(device, data, byte_count); } -bool qp_comms_i2c_stop(painter_device_t device) { - return true; -} +void qp_comms_i2c_stop(painter_device_t device) {} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Command+Data I2C support @@ -45,9 +43,9 @@ bool qp_comms_i2c_stop(painter_device_t device) { static const uint8_t cmd_byte = 0x00; static const uint8_t data_byte = 0x40; -bool qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) { +void qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) { uint8_t buf[2] = {cmd_byte, cmd}; - return qp_comms_i2c_send_raw(device, &buf, 2); + qp_comms_i2c_send_raw(device, &buf, 2); } uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *data, uint32_t byte_count) { @@ -60,7 +58,7 @@ uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *dat return byte_count; } -bool qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { +void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { uint8_t buf[32]; for (size_t i = 0; i < sequence_len;) { uint8_t command = sequence[i]; @@ -69,17 +67,12 @@ bool qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t * buf[0] = cmd_byte; buf[1] = command; memcpy(&buf[2], &sequence[i + 3], num_bytes); - if (!qp_comms_i2c_send_raw(device, buf, num_bytes + 2)) { - return false; - } - + qp_comms_i2c_send_raw(device, buf, num_bytes + 2); if (delay > 0) { wait_ms(delay); } i += (3 + num_bytes); } - - return true; } const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable = { diff --git a/drivers/painter/comms/qp_comms_i2c.h b/drivers/painter/comms/qp_comms_i2c.h index 06a284dc15..70083d6526 100644 --- a/drivers/painter/comms/qp_comms_i2c.h +++ b/drivers/painter/comms/qp_comms_i2c.h @@ -19,7 +19,7 @@ typedef struct qp_comms_i2c_config_t { bool qp_comms_i2c_init(painter_device_t device); bool qp_comms_i2c_start(painter_device_t device); uint32_t qp_comms_i2c_send_data(painter_device_t device, const void* data, uint32_t byte_count); -bool qp_comms_i2c_stop(painter_device_t device); +void qp_comms_i2c_stop(painter_device_t device); extern const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable; diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c index 31b68dfdf6..4e6067394b 100644 --- a/drivers/painter/comms/qp_comms_spi.c +++ b/drivers/painter/comms/qp_comms_spi.c @@ -45,12 +45,11 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3 return byte_count - bytes_remaining; } -bool qp_comms_spi_stop(painter_device_t device) { +void qp_comms_spi_stop(painter_device_t device) { painter_driver_t * driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; spi_stop(); gpio_write_pin_high(comms_config->chip_select_pin); - return true; } const painter_comms_vtable_t spi_comms_vtable = { @@ -98,15 +97,14 @@ uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *da return qp_comms_spi_send_data(device, data, byte_count); } -bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { +void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { painter_driver_t * driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_low(comms_config->dc_pin); spi_write(cmd); - return true; } -bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { +void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { painter_driver_t * driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; for (size_t i = 0; i < sequence_len;) { @@ -128,8 +126,6 @@ bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const } i += (3 + num_bytes); } - - return true; } const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable = { diff --git a/drivers/painter/comms/qp_comms_spi.h b/drivers/painter/comms/qp_comms_spi.h index bb1a841519..c39ea95f72 100644 --- a/drivers/painter/comms/qp_comms_spi.h +++ b/drivers/painter/comms/qp_comms_spi.h @@ -22,7 +22,7 @@ typedef struct qp_comms_spi_config_t { bool qp_comms_spi_init(painter_device_t device); bool qp_comms_spi_start(painter_device_t device); uint32_t qp_comms_spi_send_data(painter_device_t device, const void* data, uint32_t byte_count); -bool qp_comms_spi_stop(painter_device_t device); +void qp_comms_spi_stop(painter_device_t device); extern const painter_comms_vtable_t spi_comms_vtable; @@ -39,9 +39,9 @@ typedef struct qp_comms_spi_dc_reset_config_t { } qp_comms_spi_dc_reset_config_t; bool qp_comms_spi_dc_reset_init(painter_device_t device); -bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd); +void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd); uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void* data, uint32_t byte_count); -bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len); +void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len); extern const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable; diff --git a/drivers/painter/gc9xxx/qp_gc9107.c b/drivers/painter/gc9xxx/qp_gc9107.c index f0eb24d0cd..108344da4f 100644 --- a/drivers/painter/gc9xxx/qp_gc9107.c +++ b/drivers/painter/gc9xxx/qp_gc9107.c @@ -32,9 +32,7 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -43,7 +41,9 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat [QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY, [QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY, }; - return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/gc9xxx/qp_gc9a01.c b/drivers/painter/gc9xxx/qp_gc9a01.c index a9b5e4b057..f037a4cc87 100644 --- a/drivers/painter/gc9xxx/qp_gc9a01.c +++ b/drivers/painter/gc9xxx/qp_gc9a01.c @@ -45,9 +45,7 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -56,7 +54,9 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat [QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY, [QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY, }; - return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h index 31de5ee9e3..5853902e68 100644 --- a/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h +++ b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h @@ -101,4 +101,4 @@ #define GC9A01_GRAM_INTERFACE_RGB 0b00000010 #define GC9A01_RGB_INTERFACE_MODE_1_TRANSFER 0b00000000 -#define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001 +#define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001 \ No newline at end of file diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c index c5b351311a..8883ed541d 100644 --- a/drivers/painter/generic/qp_surface_rgb565.c +++ b/drivers/painter/generic/qp_surface_rgb565.c @@ -52,7 +52,7 @@ static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel // Pixel colour conversion static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } diff --git a/drivers/painter/ili9xxx/qp_ili9163.c b/drivers/painter/ili9xxx/qp_ili9163.c index 74c5cb28ee..7f439dc317 100644 --- a/drivers/painter/ili9xxx/qp_ili9163.c +++ b/drivers/painter/ili9xxx/qp_ili9163.c @@ -41,9 +41,7 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota ILI9XXX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -52,7 +50,9 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota [QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY, [QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY, }; - return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/ili9xxx/qp_ili9341.c b/drivers/painter/ili9xxx/qp_ili9341.c index 4ca22d8a73..a101b292aa 100644 --- a/drivers/painter/ili9xxx/qp_ili9341.c +++ b/drivers/painter/ili9xxx/qp_ili9341.c @@ -48,9 +48,7 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota ILI9XXX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -59,7 +57,9 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota [QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY, [QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY, }; - return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c index df2d084aa3..c4f3c15cec 100644 --- a/drivers/painter/ili9xxx/qp_ili9486.c +++ b/drivers/painter/ili9xxx/qp_ili9486.c @@ -37,9 +37,7 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) { ILI9XXX_SET_INVERSION_CTL, 0, 1, 0x02, }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -64,22 +62,22 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) { ILI9XXX_CMD_DISPLAY_ON, 5, 0, }; // clang-format on - return qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence)); + qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence)); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Driver vtable // waveshare variant needs some tweaks due to shift registers -static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) { +static void qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) { painter_driver_t * driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; - gpio_write_pin_low(comms_config->spi_config.chip_select_pin); + writePinLow(comms_config->spi_config.chip_select_pin); qp_comms_spi_dc_reset_send_command(device, cmd); - gpio_write_pin_high(comms_config->spi_config.chip_select_pin); - - return true; + writePinHigh(comms_config->spi_config.chip_select_pin); } static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) { @@ -90,20 +88,20 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con const uint8_t *p = (const uint8_t *)data; uint32_t max_msg_length = 1024; - gpio_write_pin_high(comms_config->dc_pin); + writePinHigh(comms_config->dc_pin); while (bytes_remaining > 0) { uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); bool odd_bytes = bytes_this_loop & 1; // send data - gpio_write_pin_low(comms_config->spi_config.chip_select_pin); + writePinLow(comms_config->spi_config.chip_select_pin); spi_transmit(p, bytes_this_loop); p += bytes_this_loop; // extra CS toggle, for alignment if (odd_bytes) { - gpio_write_pin_high(comms_config->spi_config.chip_select_pin); - gpio_write_pin_low(comms_config->spi_config.chip_select_pin); + writePinHigh(comms_config->spi_config.chip_select_pin); + writePinLow(comms_config->spi_config.chip_select_pin); } bytes_remaining -= bytes_this_loop; @@ -118,15 +116,15 @@ static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uin uint32_t ret; for (uint8_t j = 0; j < byte_count; ++j) { - gpio_write_pin_low(comms_config->spi_config.chip_select_pin); + writePinLow(comms_config->spi_config.chip_select_pin); ret = qp_comms_spi_dc_reset_send_data(device, &data[j], 1); - gpio_write_pin_high(comms_config->spi_config.chip_select_pin); + writePinHigh(comms_config->spi_config.chip_select_pin); } return ret; } -static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { +static void qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { for (size_t i = 0; i < sequence_len;) { uint8_t command = sequence[i]; uint8_t delay = sequence[i + 1]; @@ -142,8 +140,6 @@ static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t dev } i += (3 + num_bytes); } - - return true; } static bool qp_ili9486_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { diff --git a/drivers/painter/ili9xxx/qp_ili9488.c b/drivers/painter/ili9xxx/qp_ili9488.c index fd05db8751..63deaf5f2e 100644 --- a/drivers/painter/ili9xxx/qp_ili9488.c +++ b/drivers/painter/ili9xxx/qp_ili9488.c @@ -41,9 +41,7 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota ILI9XXX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -52,7 +50,9 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota [QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX, [QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV, }; - return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/ld7032/qp_ld7032.c b/drivers/painter/ld7032/qp_ld7032.c deleted file mode 100644 index d73430cc75..0000000000 --- a/drivers/painter/ld7032/qp_ld7032.c +++ /dev/null @@ -1,423 +0,0 @@ -// Copyright 2023 Nick Brassel (@tzarc) -// Copyright 2023 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "qp_internal.h" -#include "qp_comms.h" -#include "qp_oled_panel.h" -#include "qp_ld7032.h" -#include "qp_ld7032_opcodes.h" -#include "qp_surface.h" -#include "qp_surface_internal.h" - -typedef bool (*ld7032_driver_comms_send_command_and_data_func)(painter_device_t device, uint8_t cmd, uint8_t data); -typedef uint32_t (*ld7032_driver_comms_send_command_and_databuf_func)(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count); - -typedef struct ld7032_comms_with_command_vtable_t { - painter_comms_vtable_t base; // must be first, so this object can be cast from the painter_comms_vtable_t* type - painter_driver_comms_send_command_func send_command; - painter_driver_comms_bulk_command_sequence bulk_command_sequence; - ld7032_driver_comms_send_command_and_data_func send_command_data; - ld7032_driver_comms_send_command_and_databuf_func send_command_databuf; -} ld7032_comms_with_command_vtable_t; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// LD7032 Internal API -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE -bool ld7032_comms_i2c_send_command_and_data(painter_device_t device, uint8_t cmd, uint8_t data) { - uint8_t buf[2] = {cmd, data}; - return qp_comms_i2c_send_data(device, buf, 2); -} - -bool ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { - uint8_t buf[32]; - for (size_t i = 0; i < sequence_len;) { - uint8_t command = sequence[i]; - uint8_t delay = sequence[i + 1]; - uint8_t num_bytes = sequence[i + 2]; - buf[0] = command; - memcpy(&buf[1], &sequence[i + 3], num_bytes); - if (!qp_comms_i2c_send_data(device, buf, num_bytes + 1)) { - return false; - } - if (delay > 0) { - wait_ms(delay); - } - i += (3 + num_bytes); - } - - return true; -} - -uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) { - uint8_t buf[byte_count + 1]; - memset(buf, 0, sizeof(buf)); - buf[0] = cmd; - memcpy(&buf[1], data, byte_count); - return qp_comms_send(device, buf, byte_count + 1); -} -#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE - -// Power control -bool qp_ld7032_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; - ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; - - comms_vtable->send_command_data(device, LD7032_DISP_ON_OFF, power_on ? 0x01 : 0x00); - - return true; -} - -// Screen clear -bool qp_ld7032_clear(painter_device_t device) { - qp_rect(device, 0, 0, 127, 127, 0, 0, 0, true); // clear memory - painter_driver_t *driver = (painter_driver_t *)device; - driver->driver_vtable->init(device, driver->rotation); // Re-init the display - return true; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Flush helpers -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; - ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; - - int x_start = dirty->l >> 3; - int x_end = dirty->r >> 3; - int y_start = dirty->t; - int y_end = dirty->b; - int x_length = (x_end - x_start) + 1; - uint8_t x_view_offset = driver->offset_x >> 3; - uint8_t y_view_offset = driver->offset_y; - - for (int y_pos = y_start; y_pos <= y_end; y_pos++) { - int y_new_pos = y_pos; - if (inverted) { - y_new_pos = y_end - y_pos; - } - uint8_t packet[x_length]; - memcpy(packet, &framebuffer[(y_pos * (driver->panel_width >> 3)) + x_start], x_length); - uint8_t x_write_start = MIN(x_start + x_view_offset, (128 >> 3)); - uint8_t x_write_end = MIN(x_end + x_view_offset, (128 >> 3)); - uint8_t y_write_start = MIN(y_new_pos + y_view_offset, 39); - uint8_t y_write_end = MIN(y_new_pos + y_view_offset, 39); - - comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_START, x_write_start); - comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_END, x_write_end); - comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_START, y_write_start); - comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_END, y_write_end); - comms_vtable->send_command_databuf(device, LD7032_DATA_RW, packet, x_length); - } -} - -void ld7032_flush_90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; - ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; - - int x_start = dirty->t >> 3; - int x_end = dirty->b >> 3; - int y_start = dirty->l; - int y_end = dirty->r; - int x_length = (x_end - x_start) + 1; - uint8_t x_view_offset = driver->offset_x >> 3; - uint8_t y_view_offset = driver->offset_y; - - for (int y_pos = y_start; y_pos <= y_end; y_pos++) { - int y_new_pos = y_pos; - if (inverted) { - y_new_pos = y_end - y_pos; - } - uint8_t packet[x_length]; - memset(packet, 0, sizeof(packet)); - int count = 0; - for (int x_pos = x_start; x_pos <= x_end; x_pos++) { - for (int x = 0; x < 8; ++x) { - uint32_t pixel_num = (((x_pos << 3) + x) * driver->panel_height) + y_pos; - uint32_t byte_offset = pixel_num / 8; - uint8_t bit_offset = pixel_num % 8; - packet[count] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << x; - } - count++; - } - uint8_t x_width = (driver->panel_width >> 3) - 1; - uint8_t x_write_start = MAX((int)x_width - x_end - x_view_offset, 0); - uint8_t x_write_end = MAX((int)x_width - x_start - x_view_offset, 0); - uint8_t y_write_start = MIN(y_new_pos + y_view_offset, 39); - uint8_t y_write_end = MIN(y_new_pos + y_view_offset, 39); - - comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_START, x_write_start); - comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_END, x_write_end); - comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_START, y_write_start); - comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_END, y_write_end); - comms_vtable->send_command_databuf(device, LD7032_DATA_RW, packet, x_length); - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Driver storage -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef struct ld7032_device_t { - oled_panel_painter_device_t oled; - - uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 40, 1)]; -} ld7032_device_t; - -static ld7032_device_t ld7032_drivers[LD7032_NUM_DEVICES] = {0}; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter API implementations - -// Initialisation -__attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotation_t rotation) { - ld7032_device_t *driver = (ld7032_device_t *)device; - - // Change the surface geometry based on the panel rotation - if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) { - driver->oled.surface.base.panel_width = driver->oled.base.panel_height; - driver->oled.surface.base.panel_height = driver->oled.base.panel_width; - } else { - driver->oled.surface.base.panel_width = driver->oled.base.panel_width; - driver->oled.surface.base.panel_height = driver->oled.base.panel_height; - } - - // Init the internal surface - if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) { - qp_dprintf("Failed to init internal surface in qp_ld7032_init\n"); - return false; - } - - // clang-format off - const uint8_t ld7032_init_sequence[] = { - // Command, Delay, N, Data[N] - LD7032_DISP_STBY_ON_OFF, 0, 1, 0x00, - LD7032_DISP_ON_OFF, 0, 1, 0x00, - LD7032_DFRAME, 0, 1, 0x05, - //LD7032_WRITE_DIRECTION, 0, 1, 0b00001000, // 0 Right, 1 Up, 2 Vertical, 3 Bit Order, 4-7 Unused - LD7032_DISP_DIRECTION, 0, 1, 0x00, - LD7032_PEAK_WIDTH, 0, 1, 0x1F, - LD7032_PEAK_DELAY, 0, 1, 0x05, - LD7032_SCAN_MODE, 0, 1, 0x01, - LD7032_DOT_CURRENT, 0, 1, 0x1f, - LD7032_VDD_SEL, 0, 1, 0x01, - }; - // clang-format on - - if (!qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence))) { - return false; - } - - uint8_t display_y_start = 40 - driver->oled.base.panel_height; - uint8_t display_x_start = (128 - driver->oled.base.panel_width) / 2; - - // clang-format off - uint8_t ld7032_memory_setup[] = { - // Command, Delay, N, Data[N] - LD7032_DISP_SIZE_X, 0, 2, 0x00, 0x7F, - LD7032_DISP_SIZE_Y, 0, 2, 0x00, 0x27, - LD7032_X_DISP_START, 0, 1, 0x0, - LD7032_Y_DISP_START, 0, 1, 0x0, - }; - // clang-format on - - ld7032_memory_setup[3] = display_x_start; - ld7032_memory_setup[4] = display_x_start + driver->oled.base.panel_width - 1; - ld7032_memory_setup[8] = display_y_start; - ld7032_memory_setup[9] = display_y_start + driver->oled.base.panel_height - 1; - ld7032_memory_setup[13] = ld7032_memory_setup[4] + 1; - ld7032_memory_setup[17] = driver->oled.base.panel_height; - - if (!qp_comms_bulk_command_sequence(device, ld7032_memory_setup, sizeof(ld7032_memory_setup))) { - return false; - } - - uint8_t write_direction = 0; - switch (rotation) { - default: - case QP_ROTATION_0: - write_direction = 0b00001000; - break; - case QP_ROTATION_90: - write_direction = 0b00000001; - break; - case QP_ROTATION_180: - write_direction = 0b00000001; - break; - case QP_ROTATION_270: - write_direction = 0b00001000; - break; - } - - painter_driver_t * pdriver = (painter_driver_t *)device; - ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)pdriver->comms_vtable; - - if (!comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction)) { - return false; - } - - qp_ld7032_power(device, true); - - return true; -} - -// Screen flush -bool qp_ld7032_flush(painter_device_t device) { - ld7032_device_t *driver = (ld7032_device_t *)device; - - if (!driver->oled.surface.dirty.is_dirty) { - return true; - } - - switch (driver->oled.base.rotation) { - default: - case QP_ROTATION_0: - ld7032_flush_0(device, &driver->oled.surface.dirty, driver->framebuffer, false); - break; - case QP_ROTATION_180: - ld7032_flush_0(device, &driver->oled.surface.dirty, driver->framebuffer, true); - break; - case QP_ROTATION_90: - ld7032_flush_90(device, &driver->oled.surface.dirty, driver->framebuffer, false); - break; - case QP_ROTATION_270: - ld7032_flush_90(device, &driver->oled.surface.dirty, driver->framebuffer, true); - break; - } - - // Clear the dirty area - qp_flush(&driver->oled.surface); - - return true; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Driver vtable -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -const painter_driver_vtable_t ld7032_driver_vtable = { - .init = qp_ld7032_init, - .power = qp_ld7032_power, - .clear = qp_ld7032_clear, - .flush = qp_ld7032_flush, - .pixdata = qp_oled_panel_passthru_pixdata, - .viewport = qp_oled_panel_passthru_viewport, - .palette_convert = qp_oled_panel_passthru_palette_convert, - .append_pixels = qp_oled_panel_passthru_append_pixels, - .append_pixdata = qp_oled_panel_passthru_append_pixdata, -}; - -#ifdef QUANTUM_PAINTER_LD7032_SPI_ENABLE - -const ld7032_comms_with_command_vtable_t ld7032_spi_comms_vtable = { - .base = - { - .comms_init = qp_comms_spi_dc_reset_init, - .comms_start = qp_comms_spi_start, - .comms_send = qp_comms_spi_dc_reset_send_data, - .comms_stop = qp_comms_spi_stop, - }, - .send_command = qp_comms_spi_dc_reset_send_command, - .send_command_data = qp_comms_command_databyte, - .send_command_databuf = qp_comms_command_databuf, - .bulk_command_sequence = qp_comms_spi_dc_reset_bulk_command_sequence, -}; - -// Factory function for creating a handle to the LD7032 device -painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) { - for (uint32_t i = 0; i < LD7032_NUM_DEVICES; ++i) { - ld7032_device_t *driver = &ld7032_drivers[i]; - if (!driver->oled.base.driver_vtable) { - painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); - if (!surface) { - return NULL; - } - - // Setup the OLED device - driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&ld7032_driver_vtable; - driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&ld7032_spi_comms_vtable; - driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono - driver->oled.base.panel_width = panel_width; - driver->oled.base.panel_height = panel_height; - driver->oled.base.rotation = QP_ROTATION_0; - driver->oled.base.offset_x = 0; - driver->oled.base.offset_y = 0; - - // SPI and other pin configuration - driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config; - driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->oled.spi_dc_reset_config.spi_config.lsb_first = false; - driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode; - driver->oled.spi_dc_reset_config.dc_pin = dc_pin; - driver->oled.spi_dc_reset_config.reset_pin = reset_pin; - driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true; - - if (!qp_internal_register_device((painter_device_t)driver)) { - memset(driver, 0, sizeof(ld7032_device_t)); - return NULL; - } - - return (painter_device_t)driver; - } - } - return NULL; -} - -#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE - -#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE - -const ld7032_comms_with_command_vtable_t ld7032_i2c_comms_vtable = { - .base = - { - .comms_init = qp_comms_i2c_init, - .comms_start = qp_comms_i2c_start, - .comms_send = qp_comms_i2c_send_data, - .comms_stop = qp_comms_i2c_stop, - }, - .send_command = NULL, - .send_command_data = ld7032_comms_i2c_send_command_and_data, - .send_command_databuf = ld7032_comms_i2c_send_command_and_databuf, - .bulk_command_sequence = ld7032_comms_i2c_bulk_command_sequence, -}; - -// Factory function for creating a handle to the LD7032 device -painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) { - for (uint32_t i = 0; i < LD7032_NUM_DEVICES; ++i) { - ld7032_device_t *driver = &ld7032_drivers[i]; - if (!driver->oled.base.driver_vtable) { - painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); - if (!surface) { - return NULL; - } - - // Setup the OLED device - driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&ld7032_driver_vtable; - driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&ld7032_i2c_comms_vtable; - driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono - driver->oled.base.panel_width = panel_width; - driver->oled.base.panel_height = panel_height; - driver->oled.base.rotation = QP_ROTATION_0; - driver->oled.base.offset_x = 0; - driver->oled.base.offset_y = 0; - - // I2C configuration - driver->oled.base.comms_config = &driver->oled.i2c_config; - driver->oled.i2c_config.chip_address = i2c_address; - - if (!qp_internal_register_device((painter_device_t)driver)) { - memset(driver, 0, sizeof(ld7032_device_t)); - return NULL; - } - - return (painter_device_t)driver; - } - } - return NULL; -} - -#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE diff --git a/drivers/painter/ld7032/qp_ld7032.h b/drivers/painter/ld7032/qp_ld7032.h deleted file mode 100644 index 9af80dd468..0000000000 --- a/drivers/painter/ld7032/qp_ld7032.h +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2023 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "gpio.h" -#include "qp_internal.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter LD7032 configurables (add to your keyboard's config.h) - -#if defined(QUANTUM_PAINTER_LD7032_SPI_ENABLE) && !defined(LD7032_NUM_SPI_DEVICES) -/** - * @def This controls the maximum number of SPI LD7032 devices that Quantum Painter can communicate with at any one time. - * Increasing this number allows for multiple displays to be used. - */ -# define LD7032_NUM_SPI_DEVICES 1 -#else -# define LD7032_NUM_SPI_DEVICES 0 -#endif - -#if defined(QUANTUM_PAINTER_LD7032_I2C_ENABLE) && !defined(LD7032_NUM_I2C_DEVICES) -/** - * @def This controls the maximum number of I2C LD7032 devices that Quantum Painter can communicate with at any one time. - * Increasing this number allows for multiple displays to be used. - */ -# define LD7032_NUM_I2C_DEVICES 1 -#else -# define LD7032_NUM_I2C_DEVICES 0 -#endif - -#define LD7032_NUM_DEVICES ((LD7032_NUM_SPI_DEVICES) + (LD7032_NUM_I2C_DEVICES)) - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter LD7032 device factories - -#ifdef QUANTUM_PAINTER_LD7032_SPI_ENABLE - -/** - * Factory method for an LD7032 SPI LCD device. - * - * @param panel_width[in] the width of the display in pixels (usually 128) - * @param panel_height[in] the height of the display in pixels (usually 64) - * @param chip_select_pin[in] the GPIO pin used for SPI chip select - * @param dc_pin[in] the GPIO pin used for D/C control - * @param reset_pin[in] the GPIO pin used for RST - * @param spi_divisor[in] the SPI divisor to use when communicating with the display - * @param spi_mode[in] the SPI mode to use when communicating with the display - * @return the device handle used with all drawing routines in Quantum Painter - */ -painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); - -#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE - -#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE - -/** - * Factory method for an LD7032 I2C LCD device. - * - * @param panel_width[in] the width of the display in pixels (usually 128) - * @param panel_height[in] the height of the display in pixels (usually 64) - * @param i2c_address[in] the I2C address to use - * @return the device handle used with all drawing routines in Quantum Painter - */ -painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); - -#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE diff --git a/drivers/painter/ld7032/qp_ld7032_opcodes.h b/drivers/painter/ld7032/qp_ld7032_opcodes.h deleted file mode 100644 index ed8b397c67..0000000000 --- a/drivers/painter/ld7032/qp_ld7032_opcodes.h +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2023 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -typedef enum { - LD7032_SOFTRES = 0x01, - LD7032_DISP_ON_OFF = 0x02, - LD7032_DATA_RW = 0x08, - LD7032_DISP_DIRECTION = 0x09, - LD7032_IFMODE = 0x0D, - LD7032_PEAK_WIDTH = 0x10, - LD7032_DOT_CURRENT = 0x12, - LD7032_SCAN_MODE = 0x13, - LD7032_DISP_STBY_ON_OFF = 0x14, - LD7032_PEAK_DELAY = 0x16, - LD7032_ROW_SCAN = 0x17, - LD7032_PRE_C_WIDTH = 0x18, - LD7032_DFRAME = 0x1A, - LD7032_DATA_REVERSE = 0x1C, - LD7032_WRITE_DIRECTION = 0x1D, - LD7032_READREG = 0x20, - LD7032_DISP_SIZE_X = 0x30, - LD7032_DISP_SIZE_Y = 0x32, - LD7032_X_BOX_ADR_START = 0x34, - LD7032_X_BOX_ADR_END = 0x35, - LD7032_Y_BOX_ADR_START = 0x36, - LD7032_Y_BOX_ADR_END = 0x37, - LD7032_X_DISP_START = 0x38, - LD7032_Y_DISP_START = 0x39, - LD7032_XTALK_EN = 0x3A, - LD7032_XTALK_REF = 0x3B, - LD7032_AGING_EN = 0x3C, - LD7032_VDD_SEL = 0x3D, - LD7032_TESTCNT0 = 0x3E, - LD7032_VCC_R_SEL = 0x3F, - LD7032_PRE_C_SELECT = 0x44, - LD7032_ROW_OVERLAP = 0x48, - LD7032_S_SLEEP_TIMER = 0xC0, - LD7032_S_SLEEP_START = 0xC2, - LD7032_S_STEP_TIMER = 0xC3, - LD7032_S_STEP_UNIT = 0xC4, - LD7032_S_CONDITION = 0xCC, - LD7032_S_START_STOP = 0xCD, - LD7032_S_SELECT = 0xCE, - LD7032_TESTCNT1 = 0xF0, //-0xFF -} ld7032_opcodes; diff --git a/drivers/painter/sh1106/qp_sh1106.c b/drivers/painter/sh1106/qp_sh1106.c index 85da4a973a..4117115aec 100644 --- a/drivers/painter/sh1106/qp_sh1106.c +++ b/drivers/painter/sh1106/qp_sh1106.c @@ -71,7 +71,8 @@ __attribute__((weak)) bool qp_sh1106_init(painter_device_t device, painter_rotat sh1106_init_sequence[20] = 0x02; } - return qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence)); + qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence)); + return true; } // Screen flush diff --git a/drivers/painter/sh1107/qp_sh1107.c b/drivers/painter/sh1107/qp_sh1107.c deleted file mode 100644 index 0b48690803..0000000000 --- a/drivers/painter/sh1107/qp_sh1107.c +++ /dev/null @@ -1,217 +0,0 @@ -#include "qp_internal.h" -#include "qp_comms.h" -#include "qp_surface_internal.h" -#include "qp_oled_panel.h" -#include "qp_sh1107.h" -#include "qp_sh1107_opcodes.h" -#include "qp_surface.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Driver storage -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef struct sh1107_device_t { - oled_panel_painter_device_t oled; - - uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 128, 1)]; -} sh1107_device_t; - -static sh1107_device_t sh1107_drivers[SH1107_NUM_DEVICES] = {0}; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter API implementations - -// Initialisation -__attribute__((weak)) bool qp_sh1107_init(painter_device_t device, painter_rotation_t rotation) { - sh1107_device_t *driver = (sh1107_device_t *)device; - - // Change the surface geometry based on the panel rotation - if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) { - driver->oled.surface.base.panel_width = driver->oled.base.panel_height; - driver->oled.surface.base.panel_height = driver->oled.base.panel_width; - } else { - driver->oled.surface.base.panel_width = driver->oled.base.panel_width; - driver->oled.surface.base.panel_height = driver->oled.base.panel_height; - } - - // Init the internal surface - if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) { - qp_dprintf("Failed to init internal surface in qp_sh1107_init\n"); - return false; - } - - // clang-format off - uint8_t sh1107_init_sequence[] = { - // Command, Delay, N, Data[N] - SH1107_SET_MUX_RATIO, 0, 1, 0x7F, // 1/128 duty - SH1107_DISPLAY_OFFSET, 0, 1, 0x00, - SH1107_SET_START_LINE, 0, 1, 0x00, // Different from SH1106 - SH1107_SET_SEGMENT_REMAP_INV, 0, 0, - SH1107_COM_SCAN_DIR_DEC, 0, 0, - SH1107_COM_PADS_HW_CFG, 0, 1, 0x12, - SH1107_SET_CONTRAST, 0, 1, 0x7F, - SH1107_ALL_ON_RESUME, 0, 0, - SH1107_NON_INVERTING_DISPLAY, 0, 0, - SH1107_SET_OSC_DIVFREQ, 0, 1, 0x80, - SH1107_SET_CHARGE_PUMP, 0, 1, 0x14, - SH1107_DISPLAY_ON, 0, 0, - }; - // clang-format on - - // If the display width is anything other than the default 128 pixels, change SH1107_SET_MUX_RATIO data byte to the correct value. - if (driver->oled.base.panel_width != 128) { - sh1107_init_sequence[3] = driver->oled.base.panel_width - 1; - } - - // If the display width is less than the default 128 pixels, change SH1107_DISPLAY_OFFSET to use the center columns. - if (driver->oled.base.panel_width < 128) { - sh1107_init_sequence[7] = (128U - driver->oled.base.panel_width) / 2; - } - - // For smaller displays, change SH1107_COM_PADS_HW_CFG data byte from alternative (0x12) to sequential (0x02) configuration - if (driver->oled.base.panel_height <= 64) { - sh1107_init_sequence[20] = 0x02; - } - - return qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence)); -} - -// Screen flush -bool qp_sh1107_flush(painter_device_t device) { - sh1107_device_t *driver = (sh1107_device_t *)device; - - if (!driver->oled.surface.dirty.is_dirty) { - return true; - } - - switch (driver->oled.base.rotation) { - default: - case QP_ROTATION_0: - qp_oled_panel_page_column_flush_rot0(device, &driver->oled.surface.dirty, driver->framebuffer); - break; - case QP_ROTATION_90: - qp_oled_panel_page_column_flush_rot90(device, &driver->oled.surface.dirty, driver->framebuffer); - break; - case QP_ROTATION_180: - qp_oled_panel_page_column_flush_rot180(device, &driver->oled.surface.dirty, driver->framebuffer); - break; - case QP_ROTATION_270: - qp_oled_panel_page_column_flush_rot270(device, &driver->oled.surface.dirty, driver->framebuffer); - break; - } - - // Clear the dirty area - qp_flush(&driver->oled.surface); - - return true; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Driver vtable -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -const oled_panel_painter_driver_vtable_t sh1107_driver_vtable = { - .base = - { - .init = qp_sh1107_init, - .power = qp_oled_panel_power, - .clear = qp_oled_panel_clear, - .flush = qp_sh1107_flush, - .pixdata = qp_oled_panel_passthru_pixdata, - .viewport = qp_oled_panel_passthru_viewport, - .palette_convert = qp_oled_panel_passthru_palette_convert, - .append_pixels = qp_oled_panel_passthru_append_pixels, - .append_pixdata = qp_oled_panel_passthru_append_pixdata, - }, - .opcodes = - { - .display_on = SH1107_DISPLAY_ON, - .display_off = SH1107_DISPLAY_OFF, - .set_page = SH1107_PAGE_ADDR, - .set_column_lsb = SH1107_SETCOLUMN_LSB, - .set_column_msb = SH1107_SETCOLUMN_MSB, - }, -}; - -#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE -// Factory function for creating a handle to the SH1107 device -painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) { - for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) { - sh1107_device_t *driver = &sh1107_drivers[i]; - if (!driver->oled.base.driver_vtable) { - painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); - if (!surface) { - return NULL; - } - - // Setup the OLED device - driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable; - driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable; - driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono - driver->oled.base.panel_width = panel_width; - driver->oled.base.panel_height = panel_height; - driver->oled.base.rotation = QP_ROTATION_0; - driver->oled.base.offset_x = 0; - driver->oled.base.offset_y = 0; - - // SPI and other pin configuration - driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config; - driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->oled.spi_dc_reset_config.spi_config.lsb_first = false; - driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode; - driver->oled.spi_dc_reset_config.dc_pin = dc_pin; - driver->oled.spi_dc_reset_config.reset_pin = reset_pin; - driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true; - - if (!qp_internal_register_device((painter_device_t)driver)) { - memset(driver, 0, sizeof(sh1107_device_t)); - return NULL; - } - - return (painter_device_t)driver; - } - } - return NULL; -} - -#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE - -#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE -// Factory function for creating a handle to the SH1107 device -painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) { - for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) { - sh1107_device_t *driver = &sh1107_drivers[i]; - if (!driver->oled.base.driver_vtable) { - // Instantiate the surface - painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); - if (!surface) { - return NULL; - } - - // Setup the OLED device - driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable; - driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&i2c_comms_cmddata_vtable; - driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono - driver->oled.base.panel_width = panel_width; - driver->oled.base.panel_height = panel_height; - driver->oled.base.rotation = QP_ROTATION_0; - driver->oled.base.offset_x = 0; - driver->oled.base.offset_y = 0; - - // I2C configuration - driver->oled.base.comms_config = &driver->oled.i2c_config; - driver->oled.i2c_config.chip_address = i2c_address; - - if (!qp_internal_register_device((painter_device_t)driver)) { - memset(driver, 0, sizeof(sh1107_device_t)); - return NULL; - } - - return (painter_device_t)driver; - } - } - return NULL; -} - -#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE diff --git a/drivers/painter/sh1107/qp_sh1107.h b/drivers/painter/sh1107/qp_sh1107.h deleted file mode 100644 index 2b866d7dc8..0000000000 --- a/drivers/painter/sh1107/qp_sh1107.h +++ /dev/null @@ -1,64 +0,0 @@ -#pragma once - -#include "gpio.h" -#include "qp_internal.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter SH1107 configurables (add to your keyboard's config.h) - -#if defined(QUANTUM_PAINTER_SH1107_SPI_ENABLE) && !defined(SH1107_NUM_SPI_DEVICES) -/** - * @def This controls the maximum number of SPI SH1107 devices that Quantum Painter can communicate with at any one time. - * Increasing this number allows for multiple displays to be used. - */ -# define SH1107_NUM_SPI_DEVICES 1 -#else -# define SH1107_NUM_SPI_DEVICES 0 -#endif - -#if defined(QUANTUM_PAINTER_SH1107_I2C_ENABLE) && !defined(SH1107_NUM_I2C_DEVICES) -/** - * @def This controls the maximum number of I2C SH1107 devices that Quantum Painter can communicate with at any one time. - * Increasing this number allows for multiple displays to be used. - */ -# define SH1107_NUM_I2C_DEVICES 1 -#else -# define SH1107_NUM_I2C_DEVICES 0 -#endif - -#define SH1107_NUM_DEVICES ((SH1107_NUM_SPI_DEVICES) + (SH1107_NUM_I2C_DEVICES)) - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter SH1107 device factories - -#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE - -/** - * Factory method for an SH1107 SPI LCD device. - * - * @param panel_width[in] the width of the display in pixels (usually 64) - * @param panel_height[in] the height of the display in pixels (usually 128) - * @param chip_select_pin[in] the GPIO pin used for SPI chip select - * @param dc_pin[in] the GPIO pin used for D/C control - * @param reset_pin[in] the GPIO pin used for RST - * @param spi_divisor[in] the SPI divisor to use when communicating with the display - * @param spi_mode[in] the SPI mode to use when communicating with the display - * @return the device handle used with all drawing routines in Quantum Painter - */ -painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); - -#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE - -#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE - -/** - * Factory method for an SH1107 I2C LCD device. - * - * @param panel_width[in] the width of the display in pixels (usually 64) - * @param panel_height[in] the height of the display in pixels (usually 128) - * @param i2c_address[in] the I2C address to use - * @return the device handle used with all drawing routines in Quantum Painter - */ -painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); - -#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE diff --git a/drivers/painter/sh1107/qp_sh1107_opcodes.h b/drivers/painter/sh1107/qp_sh1107_opcodes.h deleted file mode 100644 index 818bf40928..0000000000 --- a/drivers/painter/sh1107/qp_sh1107_opcodes.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2024 Steve Branam (@smbranam) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define SH1107_DISPLAY_ON 0xAF -#define SH1107_DISPLAY_OFF 0xAE -#define SH1107_SET_OSC_DIVFREQ 0xD5 -#define SH1107_SET_MUX_RATIO 0xA8 -#define SH1107_DISPLAY_OFFSET 0xD3 -#define SH1107_SET_START_LINE 0xDC // Key/sole difference from SH1106 (which uses 0x40) -#define SH1107_SET_CHARGE_PUMP 0x8D -#define SH1107_SET_SEGMENT_REMAP_NORMAL 0xA0 -#define SH1107_SET_SEGMENT_REMAP_INV 0xA1 -#define SH1107_COM_SCAN_DIR_INC 0xC0 -#define SH1107_COM_SCAN_DIR_DEC 0xC8 -#define SH1107_COM_PADS_HW_CFG 0xDA -#define SH1107_SET_CONTRAST 0x81 -#define SH1107_SET_PRECHARGE_PERIOD 0xD9 -#define SH1107_VCOM_DESELECT_LEVEL 0xDB -#define SH1107_ALL_ON_RESUME 0xA4 -#define SH1107_NON_INVERTING_DISPLAY 0xA6 -#define SH1107_DEACTIVATE_SCROLL 0x2E -#define SH1107_SETCOLUMN_LSB 0x00 -#define SH1107_SETCOLUMN_MSB 0x10 -#define SH1107_PAGE_ADDR 0xB0 diff --git a/drivers/painter/ssd1351/qp_ssd1351.c b/drivers/painter/ssd1351/qp_ssd1351.c index 3f652e674e..3270a362c2 100644 --- a/drivers/painter/ssd1351/qp_ssd1351.c +++ b/drivers/painter/ssd1351/qp_ssd1351.c @@ -44,9 +44,7 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota SSD1351_DISPLAYON, 5, 0, }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -55,10 +53,10 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota [QP_ROTATION_180] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MX, [QP_ROTATION_270] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MV, }; - if (!qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation])) { - return false; - } - return qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0); + qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation]); + qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0); + + return true; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/st77xx/qp_st7735.c b/drivers/painter/st77xx/qp_st7735.c index 9e3df477c8..1db0d01dcb 100644 --- a/drivers/painter/st77xx/qp_st7735.c +++ b/drivers/painter/st77xx/qp_st7735.c @@ -63,9 +63,7 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat ST77XX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -74,9 +72,7 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat [QP_ROTATION_180] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY, [QP_ROTATION_270] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY, }; - if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) { - return false; - } + qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]); #ifndef ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS st7735_automatic_viewport_offsets(device, rotation); diff --git a/drivers/painter/st77xx/qp_st7789.c b/drivers/painter/st77xx/qp_st7789.c index b4e24886da..855a9cc0c8 100644 --- a/drivers/painter/st77xx/qp_st7789.c +++ b/drivers/painter/st77xx/qp_st7789.c @@ -60,9 +60,7 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat ST77XX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on - if (!qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence))) { - return false; - } + qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence)); // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM) const uint8_t madctl[] = { @@ -71,9 +69,7 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat [QP_ROTATION_180] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY, [QP_ROTATION_270] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY, }; - if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) { - return false; - } + qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]); #ifndef ST7789_NO_AUTOMATIC_VIEWPORT_OFFSETS st7789_automatic_viewport_offsets(device, rotation); diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c index c8e33343d4..16dba9d6a6 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.c +++ b/drivers/painter/tft_panel/qp_tft_panel.c @@ -90,7 +90,7 @@ bool qp_tft_panel_pixdata(painter_device_t device, const void *pixel_data, uint3 bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } @@ -99,7 +99,7 @@ bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_ bool qp_tft_panel_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); palette[i].rgb888.r = rgb.r; palette[i].rgb888.g = rgb.g; palette[i].rgb888.b = rgb.b; diff --git a/drivers/sensors/adns5050.c b/drivers/sensors/adns5050.c index ac4c95b0c2..97daa8db09 100644 --- a/drivers/sensors/adns5050.c +++ b/drivers/sensors/adns5050.c @@ -21,7 +21,6 @@ #include "wait.h" #include "debug.h" #include "gpio.h" -#include "pointing_device_internal.h" // Registers // clang-format off @@ -46,16 +45,7 @@ #define REG_MOTION_BURST 0x63 // clang-format on -const pointing_device_driver_t adns5050_pointing_device_driver = { - .init = adns5050_init, - .get_report = adns5050_get_report, - .set_cpi = adns5050_set_cpi, - .get_cpi = adns5050_get_cpi, -}; - -static bool powered_down = false; - -bool adns5050_init(void) { +void adns5050_init(void) { // Initialize the ADNS serial pins. gpio_set_pin_output(ADNS5050_SCLK_PIN); gpio_set_pin_output(ADNS5050_SDIO_PIN); @@ -69,14 +59,10 @@ bool adns5050_init(void) { // this ensures that the adns is actuall ready after reset. wait_ms(55); - powered_down = false; - // read a burst from the adns and then discard it. // gets the adns ready for write commands // (for example, setting the dpi). adns5050_read_burst(); - - return adns5050_check_signature(); } // Perform a synchronization with the ADNS. @@ -177,10 +163,6 @@ report_adns5050_t adns5050_read_burst(void) { data.dx = 0; data.dy = 0; - if (powered_down) { - return data; - } - adns5050_serial_write(REG_MOTION_BURST); // We don't need a minimum tSRAD here. That's because a 4ms wait time is @@ -222,29 +204,10 @@ uint16_t adns5050_get_cpi(void) { return (uint16_t)((cpival & 0b10000) * 125); } -bool __attribute__((weak)) adns5050_check_signature(void) { +bool adns5050_check_signature(void) { uint8_t pid = adns5050_read_reg(REG_PRODUCT_ID); uint8_t rid = adns5050_read_reg(REG_REVISION_ID); uint8_t pid2 = adns5050_read_reg(REG_PRODUCT_ID2); return (pid == 0x12 && rid == 0x01 && pid2 == 0x26); } - -void adns5050_power_down(void) { - if (!powered_down) { - powered_down = true; - adns5050_write_reg(REG_MOUSE_CONTROL, 0b10); - } -} - -report_mouse_t adns5050_get_report(report_mouse_t mouse_report) { - report_adns5050_t data = adns5050_read_burst(); - - if (data.dx != 0 || data.dy != 0) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); - mouse_report.x = (mouse_xy_report_t)data.dx; - mouse_report.y = (mouse_xy_report_t)data.dy; - } - - return mouse_report; -} diff --git a/drivers/sensors/adns5050.h b/drivers/sensors/adns5050.h index 648b49e387..8ef0f7cc7c 100644 --- a/drivers/sensors/adns5050.h +++ b/drivers/sensors/adns5050.h @@ -21,7 +21,6 @@ #include #include -#include "pointing_device.h" // CPI values // clang-format off @@ -70,12 +69,10 @@ typedef struct { int8_t dy; } report_adns5050_t; -extern const pointing_device_driver_t adns5050_pointing_device_driver; - // A bunch of functions to implement the ADNS5050-specific serial protocol. // Note that the "serial.h" driver is insufficient, because it does not // manually manipulate a serial clock signal. -bool adns5050_init(void); +void adns5050_init(void); void adns5050_sync(void); uint8_t adns5050_serial_read(void); void adns5050_serial_write(uint8_t data); @@ -86,5 +83,3 @@ void adns5050_set_cpi(uint16_t cpi); uint16_t adns5050_get_cpi(void); int8_t convert_twoscomp(uint8_t data); bool adns5050_check_signature(void); -void adns5050_power_down(void); -report_mouse_t adns5050_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c index f5958dd350..0ba26a365a 100644 --- a/drivers/sensors/adns9800.c +++ b/drivers/sensors/adns9800.c @@ -15,6 +15,7 @@ */ #include "spi_master.h" +#include "adns9800_srom_A6.h" #include "adns9800.h" #include "wait.h" @@ -66,32 +67,16 @@ #define REG_SROM_Load_Burst 0x62 #define REG_Pixel_Burst 0x64 -#define MIN_CPI 200 -#define MAX_CPI 8200 -#define CPI_STEP 200 -#define CLAMP_CPI(value) value MAX_CPI ? MAX_CPI : value -#define US_BETWEEN_WRITES 120 -#define US_BETWEEN_READS 20 -#define US_DELAY_AFTER_ADDR 100 -#define US_BEFORE_MOTION 100 -#define MSB1 0x80 +#define MIN_CPI 200 +#define MAX_CPI 8200 +#define CPI_STEP 200 +#define CLAMP_CPI(value) value MAX_CPI ? MAX_CPI : value +#define US_BETWEEN_WRITES 120 +#define US_BETWEEN_READS 20 +#define US_BEFORE_MOTION 100 +#define MSB1 0x80 // clang-format on -const pointing_device_driver_t adns9800_pointing_device_driver = { - .init = adns9800_init, - .get_report = adns9800_get_report_driver, - .set_cpi = adns9800_set_cpi, - .get_cpi = adns9800_get_cpi, -}; - -uint16_t __attribute__((weak)) adns9800_srom_get_length(void) { - return 0; -} - -uint8_t __attribute__((weak)) adns9800_srom_get_byte(uint16_t position) { - return 0; -} - void adns9800_spi_start(void) { spi_start(ADNS9800_CS_PIN, false, ADNS9800_SPI_MODE, ADNS9800_SPI_DIVISOR); } @@ -107,7 +92,6 @@ void adns9800_write(uint8_t reg_addr, uint8_t data) { uint8_t adns9800_read(uint8_t reg_addr) { adns9800_spi_start(); spi_write(reg_addr & 0x7f); - wait_us(US_DELAY_AFTER_ADDR); uint8_t data = spi_read(); spi_stop(); wait_us(US_BETWEEN_READS); @@ -115,14 +99,7 @@ uint8_t adns9800_read(uint8_t reg_addr) { return data; } -bool __attribute__((weak)) adns9800_check_signature(void) { - if (adns9800_read(REG_Product_ID) != 0x33) { - return false; - } - return true; -} - -bool adns9800_init(void) { +void adns9800_init(void) { gpio_set_pin_output(ADNS9800_CS_PIN); spi_init(); @@ -138,55 +115,53 @@ bool adns9800_init(void) { adns9800_read(REG_Delta_Y_L); adns9800_read(REG_Delta_Y_H); - if (adns9800_srom_get_length() != 0) { - // upload firmware +#ifdef ADNS9800_UPLOAD_SROM + // upload firmware - // 3k firmware mode - adns9800_write(REG_Configuration_IV, 0x02); + // 3k firmware mode + adns9800_write(REG_Configuration_IV, 0x02); - // enable initialisation - adns9800_write(REG_SROM_Enable, 0x1d); + // enable initialisation + adns9800_write(REG_SROM_Enable, 0x1d); - // wait a frame - wait_ms(10); + // wait a frame + wait_ms(10); - // start SROM download - adns9800_write(REG_SROM_Enable, 0x18); + // start SROM download + adns9800_write(REG_SROM_Enable, 0x18); - // write the SROM file + // write the SROM file - adns9800_spi_start(); + adns9800_spi_start(); - spi_write(REG_SROM_Load_Burst | 0x80); + spi_write(REG_SROM_Load_Burst | 0x80); + wait_us(15); + + // send all bytes of the firmware + for (uint16_t i = 0; i < FIRMWARE_LENGTH; i++) { + spi_write(pgm_read_byte(firmware_data + i)); wait_us(15); - - // send all bytes of the firmware - for (uint16_t i = 0; i < adns9800_srom_get_length(); i++) { - spi_write(adns9800_srom_get_byte(i)); - wait_us(15); - } - - spi_stop(); - - wait_ms(10); - } else { - // write reset value to REG_Configuration_IV - adns9800_write(REG_Configuration_IV, 0x0); - - // write reset value to REG_SROM_Enable - adns9800_write(REG_SROM_Enable, 0x0); - - // wait a frame - wait_ms(10); } + spi_stop(); + + wait_ms(10); +#else + // write reset value to REG_Configuration_IV + adns9800_write(REG_Configuration_IV, 0x0); + + // write reset value to REG_SROM_Enable + adns9800_write(REG_SROM_Enable, 0x0); + + // wait a frame + wait_ms(10); +#endif + // enable laser uint8_t laser_ctrl0 = adns9800_read(REG_LASER_CTRL0); adns9800_write(REG_LASER_CTRL0, laser_ctrl0 & 0xf0); adns9800_set_cpi(ADNS9800_CPI); - - return adns9800_check_signature(); } config_adns9800_t adns9800_get_config(void) { @@ -252,12 +227,3 @@ report_adns9800_t adns9800_get_report(void) { return report; } - -report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) { - report_adns9800_t sensor_report = adns9800_get_report(); - - mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x); - mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y); - - return mouse_report; -} diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h index ea854e8675..3f1a005789 100644 --- a/drivers/sensors/adns9800.h +++ b/drivers/sensors/adns9800.h @@ -17,7 +17,6 @@ #pragma once #include -#include "pointing_device.h" #ifndef ADNS9800_CPI # define ADNS9800_CPI 1600 @@ -61,13 +60,10 @@ typedef struct { int16_t y; } report_adns9800_t; -extern const pointing_device_driver_t adns9800_pointing_device_driver; - -bool adns9800_init(void); +void adns9800_init(void); config_adns9800_t adns9800_get_config(void); void adns9800_set_config(config_adns9800_t); uint16_t adns9800_get_cpi(void); void adns9800_set_cpi(uint16_t cpi); /* Reads and clears the current delta values on the ADNS sensor */ report_adns9800_t adns9800_get_report(void); -report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report); diff --git a/drivers/sensors/adns9800_srom_A6.h b/drivers/sensors/adns9800_srom_A6.h new file mode 100644 index 0000000000..e698a401b9 --- /dev/null +++ b/drivers/sensors/adns9800_srom_A6.h @@ -0,0 +1,202 @@ +#pragma once + +#include "progmem.h" + +#define FIRMWARE_LENGTH 3070 + +// clang-format off + +const uint8_t firmware_data[FIRMWARE_LENGTH] PROGMEM = { + 0x03, 0xA6, 0x68, 0x1E, 0x7D, 0x10, 0x7E, 0x7E, 0x5F, 0x1C, 0xB8, 0xF2, 0x47, 0x0C, 0x7B, 0x74, + 0x4B, 0x14, 0x8B, 0x75, 0x66, 0x51, 0x0B, 0x8C, 0x76, 0x74, 0x4B, 0x14, 0xAA, 0xD6, 0x0F, 0x9C, + 0xBA, 0xF6, 0x6E, 0x3F, 0xDD, 0x38, 0xD5, 0x02, 0x80, 0x9B, 0x82, 0x6D, 0x58, 0x13, 0xA4, 0xAB, + 0xB5, 0xC9, 0x10, 0xA2, 0xC6, 0x0A, 0x7F, 0x5D, 0x19, 0x91, 0xA0, 0xA3, 0xCE, 0xEB, 0x3E, 0xC9, + 0xF1, 0x60, 0x42, 0xE7, 0x4C, 0xFB, 0x74, 0x6A, 0x56, 0x2E, 0xBF, 0xDD, 0x38, 0xD3, 0x05, 0x88, + 0x92, 0xA6, 0xCE, 0xFF, 0x5D, 0x38, 0xD1, 0xCF, 0xEF, 0x58, 0xCB, 0x65, 0x48, 0xF0, 0x35, 0x85, + 0xA9, 0xB2, 0x8F, 0x5E, 0xF3, 0x80, 0x94, 0x97, 0x7E, 0x75, 0x97, 0x87, 0x73, 0x13, 0xB0, 0x8A, + 0x69, 0xD4, 0x0A, 0xDE, 0xC1, 0x79, 0x59, 0x36, 0xDB, 0x9D, 0xD6, 0xB8, 0x15, 0x6F, 0xCE, 0x3C, + 0x72, 0x32, 0x45, 0x88, 0xDF, 0x6C, 0xA5, 0x6D, 0xE8, 0x76, 0x96, 0x14, 0x74, 0x20, 0xDC, 0xF4, + 0xFA, 0x37, 0x6A, 0x27, 0x32, 0xE3, 0x29, 0xBF, 0xC4, 0xC7, 0x06, 0x9D, 0x58, 0xE7, 0x87, 0x7C, + 0x2E, 0x9F, 0x6E, 0x49, 0x07, 0x5D, 0x23, 0x64, 0x54, 0x83, 0x6E, 0xCB, 0xB7, 0x77, 0xF7, 0x2B, + 0x6E, 0x0F, 0x2E, 0x66, 0x12, 0x60, 0x55, 0x65, 0xFC, 0x43, 0xB3, 0x58, 0x73, 0x5B, 0xE8, 0x67, + 0x04, 0x43, 0x02, 0xDE, 0xB3, 0x89, 0xA0, 0x6D, 0x3A, 0x27, 0x79, 0x64, 0x5B, 0x0C, 0x16, 0x9E, + 0x66, 0xB1, 0x8B, 0x87, 0x0C, 0x5D, 0xF2, 0xB6, 0x3D, 0x71, 0xDF, 0x42, 0x03, 0x8A, 0x06, 0x8D, + 0xEF, 0x1D, 0xA8, 0x96, 0x5C, 0xED, 0x31, 0x61, 0x5C, 0xA1, 0x34, 0xF6, 0x8C, 0x08, 0x60, 0x33, + 0x07, 0x00, 0x3E, 0x79, 0x95, 0x1B, 0x43, 0x7F, 0xFE, 0xB6, 0xA6, 0xD4, 0x9D, 0x76, 0x72, 0xBF, + 0xAD, 0xC0, 0x15, 0xE8, 0x37, 0x31, 0xA3, 0x72, 0x63, 0x52, 0x1D, 0x1C, 0x5D, 0x51, 0x1B, 0xE1, + 0xA9, 0xED, 0x60, 0x32, 0x3E, 0xA9, 0x50, 0x28, 0x53, 0x06, 0x59, 0xE2, 0xFC, 0xE7, 0x02, 0x64, + 0x39, 0x21, 0x56, 0x4A, 0xA5, 0x40, 0x80, 0x81, 0xD5, 0x5A, 0x60, 0x7B, 0x68, 0x84, 0xF1, 0xE0, + 0xB1, 0xB6, 0x5B, 0xDF, 0xA8, 0x1D, 0x6D, 0x65, 0x20, 0xC0, 0xA2, 0xB9, 0xD9, 0xBB, 0x00, 0xA6, + 0xDB, 0x8B, 0x01, 0x53, 0x91, 0xFE, 0xC4, 0x51, 0x85, 0xB0, 0x96, 0x7F, 0xFD, 0x51, 0xDD, 0x14, + 0x03, 0x67, 0x2E, 0x75, 0x1C, 0x76, 0xD3, 0x6E, 0xDD, 0x99, 0x55, 0x76, 0xE5, 0xAB, 0x23, 0xFC, + 0x4A, 0xD5, 0xC6, 0xE8, 0x2E, 0xCA, 0x8A, 0xB3, 0xF6, 0x8C, 0x6C, 0xB0, 0xE9, 0xF2, 0xE7, 0x9E, + 0x69, 0x41, 0xED, 0xF1, 0x6D, 0xD2, 0x86, 0xD8, 0x7E, 0xCB, 0x5D, 0x47, 0x6C, 0x85, 0x6A, 0x23, + 0xED, 0x20, 0x40, 0x93, 0xB4, 0x20, 0xC7, 0xA5, 0xC9, 0xAF, 0x03, 0x15, 0xAC, 0x19, 0xE5, 0x2A, + 0x36, 0xDF, 0x6D, 0xC5, 0x8C, 0x80, 0x07, 0xCE, 0x92, 0x0C, 0xD8, 0x06, 0x62, 0x0F, 0xDD, 0x48, + 0x46, 0x1A, 0x53, 0xC7, 0x8A, 0x8C, 0x5D, 0x5D, 0xB4, 0xA1, 0x02, 0xD3, 0xA9, 0xB8, 0xF3, 0x94, + 0x8F, 0x3F, 0xE5, 0x54, 0xD4, 0x11, 0x65, 0xB2, 0x5E, 0x09, 0x0B, 0x81, 0xE3, 0x75, 0xA7, 0x89, + 0x81, 0x39, 0x6C, 0x46, 0xF6, 0x06, 0x9F, 0x27, 0x3B, 0xB6, 0x2D, 0x5F, 0x1D, 0x4B, 0xD4, 0x7B, + 0x1D, 0x61, 0x74, 0x89, 0xE4, 0xE3, 0xBD, 0x98, 0x1B, 0xC4, 0x51, 0x3B, 0xA4, 0xFA, 0xE0, 0x92, + 0xF7, 0xBE, 0xF2, 0x4D, 0xBB, 0xFF, 0xAD, 0x4F, 0x6D, 0x68, 0xC2, 0x79, 0x40, 0xAA, 0x9B, 0x8F, + 0x0C, 0x32, 0x4B, 0x5F, 0x3E, 0xAB, 0x59, 0x98, 0xB3, 0xF5, 0x1D, 0xAC, 0x5E, 0xBC, 0x78, 0xD3, + 0x01, 0x6C, 0x64, 0x15, 0x2F, 0xD8, 0x71, 0xA6, 0x2D, 0x45, 0xE1, 0x22, 0x42, 0xE4, 0x4E, 0x04, + 0x3C, 0x7D, 0xF4, 0x40, 0x21, 0xB4, 0x67, 0x05, 0xA8, 0xE2, 0xF3, 0x72, 0x87, 0x4C, 0x7D, 0xD9, + 0x1B, 0x65, 0x97, 0xF3, 0xC2, 0xE3, 0xE4, 0xC8, 0xD2, 0xDE, 0xF6, 0xEF, 0xDC, 0xBB, 0x44, 0x08, + 0x5E, 0xE2, 0x45, 0x27, 0x01, 0xB0, 0xF6, 0x43, 0xE7, 0x3A, 0xF6, 0xDC, 0x9D, 0xED, 0xF3, 0xC5, + 0x0C, 0xB8, 0x9C, 0x98, 0x3A, 0xD8, 0x36, 0xEE, 0x96, 0x72, 0x67, 0xE7, 0x81, 0x91, 0xD5, 0x05, + 0x0A, 0xE0, 0x82, 0xD5, 0x8F, 0xE8, 0xF9, 0xB0, 0xC9, 0xCF, 0x93, 0xE7, 0x04, 0xC5, 0xBC, 0x2B, + 0x43, 0x56, 0x7E, 0xE8, 0x67, 0x7C, 0xE5, 0xFB, 0x49, 0xAD, 0x5E, 0x9F, 0x25, 0x13, 0xDE, 0x6E, + 0x6E, 0xE9, 0xF1, 0xEC, 0x87, 0x0B, 0x59, 0x81, 0x76, 0x84, 0x76, 0xB3, 0x24, 0xAF, 0x30, 0xFD, + 0x27, 0x8B, 0xAB, 0xD8, 0x00, 0x8B, 0x9B, 0x0C, 0xD2, 0xB2, 0x4E, 0x5E, 0x9D, 0x1D, 0x96, 0x01, + 0x00, 0x67, 0xC1, 0x5F, 0x02, 0x20, 0xFD, 0x45, 0x6A, 0x01, 0x60, 0x58, 0x45, 0xCA, 0x47, 0x21, + 0x90, 0x5A, 0xC4, 0x43, 0x26, 0x1A, 0xD7, 0xA5, 0x4A, 0xB2, 0x5D, 0x2B, 0x35, 0x49, 0xFB, 0xA5, + 0x17, 0x92, 0x21, 0x1E, 0x93, 0x96, 0x67, 0xA2, 0x7E, 0x36, 0x7A, 0xDE, 0x5F, 0xBE, 0x7A, 0x58, + 0x9D, 0xF8, 0x78, 0xA3, 0xFA, 0xC8, 0xD5, 0x17, 0xF0, 0x21, 0x97, 0x8C, 0x80, 0xB5, 0x4B, 0x3B, + 0xBD, 0xBB, 0x41, 0x21, 0xA8, 0x50, 0x67, 0xF7, 0xE7, 0x19, 0x80, 0x10, 0x8E, 0xCE, 0x04, 0x18, + 0x3F, 0x51, 0x6B, 0x77, 0xD8, 0x9E, 0x16, 0xAF, 0xEC, 0xEF, 0x48, 0x16, 0x4D, 0x9E, 0x85, 0x38, + 0x18, 0x3E, 0xD4, 0x28, 0x87, 0x60, 0x2A, 0xF6, 0x7F, 0x09, 0x86, 0x6F, 0x9C, 0x3C, 0x3A, 0xFF, + 0xAB, 0xD0, 0x61, 0xA2, 0x97, 0x0D, 0x71, 0x94, 0x7E, 0xFD, 0xB9, 0x80, 0x02, 0x89, 0x6A, 0xB3, + 0x84, 0x6C, 0x2A, 0x77, 0x62, 0xBE, 0x0B, 0xF4, 0xAF, 0xAC, 0x7B, 0x7C, 0x8E, 0xCA, 0x01, 0xBA, + 0x71, 0x78, 0x94, 0xFD, 0xB5, 0x39, 0xA4, 0x4D, 0x2F, 0x78, 0xCF, 0xCA, 0x92, 0x0C, 0x1A, 0x99, + 0x48, 0x4C, 0x11, 0x96, 0xB5, 0x4E, 0x41, 0x28, 0xE4, 0xA6, 0xFE, 0x4B, 0x72, 0x91, 0xE7, 0xD4, + 0xDD, 0x9F, 0x12, 0xE6, 0x29, 0x38, 0xCE, 0x45, 0xAE, 0x02, 0xB8, 0x24, 0xAE, 0xBD, 0xE9, 0x66, + 0x08, 0x62, 0xA2, 0x2C, 0x2B, 0x00, 0xE2, 0x23, 0xD9, 0xC4, 0x48, 0xE4, 0xD3, 0xAC, 0xBB, 0x34, + 0xC7, 0xF0, 0xE3, 0x4F, 0xB9, 0x30, 0xEA, 0xA2, 0x12, 0xF1, 0x30, 0x2C, 0x36, 0xDE, 0x48, 0xF2, + 0xB0, 0x4C, 0x43, 0x3F, 0x2E, 0x58, 0xE4, 0x20, 0xE3, 0x58, 0xCD, 0x31, 0x22, 0xF0, 0xA2, 0x2A, + 0xE6, 0x19, 0x90, 0x55, 0x86, 0xF6, 0x55, 0x79, 0xD1, 0xD7, 0x46, 0x2F, 0xC0, 0xDC, 0x99, 0xE8, + 0xF3, 0x6A, 0xDF, 0x7F, 0xEB, 0x24, 0x4A, 0x1E, 0x5A, 0x75, 0xDE, 0x2F, 0x5C, 0x19, 0x61, 0x03, + 0x53, 0x54, 0x6A, 0x3B, 0x18, 0x70, 0xB6, 0x4F, 0xF1, 0x9C, 0x0A, 0x59, 0x9D, 0x19, 0x92, 0x65, + 0x8C, 0x83, 0x14, 0x2D, 0x44, 0x8A, 0x75, 0xA9, 0xF5, 0x90, 0xD2, 0x66, 0x4E, 0xFA, 0x69, 0x0F, + 0x5B, 0x0B, 0x98, 0x65, 0xC8, 0x11, 0x42, 0x59, 0x7F, 0xDD, 0x1B, 0x75, 0x17, 0x31, 0x4C, 0x75, + 0x58, 0xEB, 0x58, 0x63, 0x7D, 0xF2, 0xA6, 0xC2, 0x6E, 0xB7, 0x3F, 0x3E, 0x5E, 0x47, 0xAD, 0xB7, + 0x04, 0xE8, 0x05, 0xF8, 0xB2, 0xCF, 0x19, 0xF3, 0xD2, 0x85, 0xFE, 0x3E, 0x3E, 0xB1, 0x62, 0x08, + 0x2C, 0x10, 0x07, 0x0D, 0x73, 0x90, 0x17, 0xFA, 0x9B, 0x56, 0x02, 0x75, 0xF9, 0x51, 0xE0, 0xE9, + 0x1A, 0x7B, 0x9F, 0xB3, 0xF3, 0x98, 0xB8, 0x1C, 0x9C, 0xE1, 0xD5, 0x35, 0xAE, 0xC8, 0x60, 0x48, + 0x11, 0x09, 0x94, 0x6B, 0xD0, 0x8B, 0x15, 0xBC, 0x05, 0x68, 0xD3, 0x54, 0x8A, 0x51, 0x39, 0x5C, + 0x42, 0x76, 0xCE, 0xD8, 0xAD, 0x89, 0x30, 0xC9, 0x05, 0x1C, 0xCC, 0x94, 0x3F, 0x0F, 0x90, 0x6F, + 0x72, 0x2D, 0x85, 0x64, 0x9A, 0xB9, 0x23, 0xF9, 0x0B, 0xC3, 0x7C, 0x39, 0x0F, 0x97, 0x07, 0x97, + 0xDA, 0x58, 0x48, 0x33, 0x05, 0x23, 0xB8, 0x82, 0xE8, 0xD3, 0x53, 0x89, 0xAF, 0x33, 0x80, 0x22, + 0x84, 0x0C, 0x95, 0x5C, 0x67, 0xB8, 0x77, 0x0C, 0x5C, 0xA2, 0x5F, 0x3D, 0x58, 0x0F, 0x27, 0xF3, + 0x2F, 0xAE, 0x48, 0xBD, 0x0B, 0x6F, 0x54, 0xFB, 0x67, 0x4C, 0xEA, 0x32, 0x27, 0xF1, 0xFA, 0xE2, + 0xB0, 0xEC, 0x0B, 0x15, 0xB4, 0x70, 0xF6, 0x5C, 0xDD, 0x71, 0x60, 0xC3, 0xC1, 0xA8, 0x32, 0x65, + 0xAC, 0x7A, 0x77, 0x41, 0xE5, 0xA9, 0x6B, 0x11, 0x81, 0xFA, 0x34, 0x8D, 0xFB, 0xC1, 0x80, 0x6E, + 0xC4, 0x60, 0x30, 0x07, 0xD4, 0x8B, 0x67, 0xBD, 0xAA, 0x8C, 0x9C, 0x64, 0xAC, 0xDB, 0x0B, 0x24, + 0x8B, 0x63, 0x6F, 0xE6, 0xBC, 0xE7, 0x33, 0xA4, 0x4A, 0x4C, 0xA7, 0x9F, 0x43, 0x53, 0xD2, 0xBB, + 0x8F, 0x43, 0xC7, 0x3D, 0x78, 0x68, 0x3F, 0xA5, 0x3D, 0xCA, 0x69, 0x84, 0xA6, 0x97, 0x2D, 0xC0, + 0x7D, 0x31, 0x34, 0x55, 0x1D, 0x07, 0xB1, 0x5F, 0x40, 0x5C, 0x93, 0xB0, 0xBC, 0x7C, 0xB0, 0xBC, + 0xE7, 0x12, 0xEE, 0x6B, 0x2B, 0xD3, 0x4D, 0x67, 0x70, 0x3A, 0x9A, 0xF2, 0x3C, 0x7C, 0x81, 0xFA, + 0xD7, 0xD9, 0x90, 0x91, 0x81, 0xB8, 0xB1, 0xF3, 0x48, 0x6A, 0x26, 0x4F, 0x0C, 0xCE, 0xB0, 0x9E, + 0xFD, 0x4A, 0x3A, 0xAF, 0xAC, 0x5B, 0x3F, 0xBF, 0x44, 0x5A, 0xA3, 0x19, 0x1E, 0x4B, 0xE7, 0x36, + 0x6A, 0xD7, 0x20, 0xAE, 0xD7, 0x7D, 0x3B, 0xE7, 0xFF, 0x3A, 0x86, 0x2E, 0xD0, 0x4A, 0x3E, 0xAF, + 0x9F, 0x8E, 0x01, 0xBF, 0xF8, 0x4F, 0xC1, 0xE8, 0x6F, 0x74, 0xE1, 0x45, 0xD3, 0xF7, 0x04, 0x6A, + 0x4B, 0x9D, 0xEC, 0x33, 0x27, 0x76, 0xD7, 0xC5, 0xE1, 0xB0, 0x3B, 0x0E, 0x23, 0xEC, 0xF0, 0x86, + 0xD2, 0x1A, 0xBF, 0x3D, 0x04, 0x62, 0xB3, 0x6C, 0xB2, 0xEB, 0x17, 0x05, 0xA6, 0x0A, 0x8A, 0x7E, + 0x83, 0x1C, 0xB6, 0x37, 0x09, 0xC6, 0x0B, 0x70, 0x3C, 0xB5, 0x93, 0x81, 0xD8, 0x93, 0xA0, 0x5F, + 0x1E, 0x08, 0xE2, 0xC6, 0xE5, 0xC9, 0x72, 0xF1, 0xF1, 0xC1, 0xED, 0xD5, 0x58, 0x93, 0x83, 0xF8, + 0x65, 0x67, 0x2E, 0x0D, 0xA9, 0xF1, 0x64, 0x12, 0xE6, 0x4C, 0xEA, 0x15, 0x3F, 0x8C, 0x1A, 0xB6, + 0xBF, 0xF6, 0xB9, 0x52, 0x35, 0x09, 0xB0, 0xE6, 0xF7, 0xCD, 0xF1, 0xA5, 0xAA, 0x81, 0xD1, 0x81, + 0x6F, 0xB4, 0xA9, 0x66, 0x1F, 0xFC, 0x48, 0xC0, 0xB6, 0xD1, 0x8B, 0x06, 0x2F, 0xF6, 0xEF, 0x1F, + 0x0A, 0xE6, 0xCE, 0x3A, 0x4A, 0x55, 0xBF, 0x6D, 0xF9, 0x4D, 0xD4, 0x08, 0x45, 0x4B, 0xC3, 0x66, + 0x19, 0x92, 0x10, 0xE1, 0x17, 0x8E, 0x28, 0x91, 0x16, 0xBF, 0x3C, 0xEE, 0xA3, 0xA6, 0x99, 0x92, + 0x10, 0xE1, 0xF6, 0xCC, 0xAC, 0xB8, 0x65, 0x0B, 0x43, 0x66, 0xF8, 0xE3, 0xE5, 0x3F, 0x24, 0x89, + 0x47, 0x5D, 0x78, 0x43, 0xD0, 0x61, 0x17, 0xBD, 0x5B, 0x64, 0x54, 0x08, 0x45, 0x59, 0x93, 0xF6, + 0x95, 0x8A, 0x41, 0x51, 0x62, 0x4B, 0x51, 0x02, 0x30, 0x73, 0xC7, 0x87, 0xC5, 0x4B, 0xA2, 0x97, + 0x0F, 0xE8, 0x46, 0x5F, 0x7E, 0x2A, 0xE1, 0x30, 0x20, 0xB0, 0xFA, 0xE7, 0xCE, 0x61, 0x42, 0x57, + 0x6E, 0x21, 0xF3, 0x7A, 0xEC, 0xE3, 0x25, 0xC7, 0x25, 0xF3, 0x67, 0xA7, 0x57, 0x40, 0x00, 0x02, + 0xCF, 0x1C, 0x80, 0x77, 0x67, 0xBD, 0x70, 0xA1, 0x19, 0x92, 0x31, 0x75, 0x93, 0x27, 0x27, 0xB6, + 0x82, 0xE4, 0xEB, 0x1D, 0x78, 0x48, 0xE7, 0xA5, 0x5E, 0x57, 0xEF, 0x64, 0x28, 0x64, 0x1B, 0xF6, + 0x11, 0xB2, 0x03, 0x9D, 0xB9, 0x18, 0x02, 0x27, 0xF7, 0xBE, 0x9D, 0x55, 0xFC, 0x00, 0xD2, 0xC7, + 0xAE, 0xAD, 0x0B, 0xC5, 0xE9, 0x42, 0x41, 0x48, 0xD8, 0x32, 0xCF, 0xF6, 0x0F, 0xF5, 0xBC, 0x97, + 0xC6, 0x99, 0x47, 0x76, 0xBD, 0x89, 0x06, 0x0F, 0x63, 0x0C, 0x51, 0xD4, 0x5E, 0xEA, 0x48, 0xA8, + 0xA2, 0x56, 0x1C, 0x79, 0x84, 0x86, 0x40, 0x88, 0x41, 0x76, 0x55, 0xFC, 0xC2, 0xD7, 0xFD, 0xC9, + 0xC7, 0x80, 0x61, 0x35, 0xA7, 0x43, 0x20, 0xF7, 0xEB, 0x6C, 0x66, 0x13, 0xB0, 0xEC, 0x02, 0x75, + 0x3E, 0x4B, 0xAF, 0xB9, 0x5D, 0x40, 0xDA, 0xD6, 0x6E, 0x2D, 0x39, 0x54, 0xC2, 0x95, 0x35, 0x54, + 0x25, 0x72, 0xE1, 0x78, 0xB8, 0xEB, 0xC1, 0x16, 0x58, 0x0F, 0x9C, 0x9B, 0xB4, 0xEA, 0x37, 0xEC, + 0x3B, 0x11, 0xBA, 0xD5, 0x8A, 0xA9, 0xE3, 0x98, 0x00, 0x51, 0x1C, 0x14, 0xE0, 0x40, 0x96, 0xE5, + 0xE9, 0xF2, 0x21, 0x22, 0xB1, 0x23, 0x60, 0x78, 0xD3, 0x17, 0xF8, 0x7A, 0xA5, 0xA8, 0xBA, 0x20, + 0xD3, 0x15, 0x1E, 0x32, 0xE4, 0x5E, 0x15, 0x48, 0xAE, 0xA9, 0xE5, 0xB8, 0x33, 0xEC, 0xE8, 0xA2, + 0x42, 0xAC, 0xBF, 0x10, 0x84, 0x53, 0x87, 0x19, 0xB4, 0x5F, 0x76, 0x4D, 0x01, 0x9D, 0x56, 0x74, + 0xD9, 0x5C, 0x97, 0xE7, 0x88, 0xEA, 0x3A, 0xBF, 0xDC, 0x4C, 0x33, 0x8A, 0x16, 0xB9, 0x5B, 0xFA, + 0xD8, 0x42, 0xA7, 0xBB, 0x3C, 0x04, 0x27, 0x78, 0x49, 0x81, 0x2A, 0x5A, 0x7D, 0x7C, 0x23, 0xA8, + 0xBA, 0xF7, 0x9A, 0x9F, 0xD2, 0x66, 0x3E, 0x38, 0x3C, 0x75, 0xF9, 0xD1, 0x30, 0x26, 0x30, 0x6E, + 0x5A, 0x6E, 0xDC, 0x6A, 0x69, 0x32, 0x50, 0x33, 0x47, 0x9E, 0xA4, 0xA8, 0x64, 0x66, 0xF0, 0x8A, + 0xE4, 0xFD, 0x27, 0x6F, 0x51, 0x25, 0x8B, 0x43, 0x74, 0xC9, 0x8E, 0xBD, 0x88, 0x31, 0xBE, 0xEC, + 0x65, 0xD2, 0xCB, 0x8D, 0x5A, 0x13, 0x48, 0x16, 0x8C, 0x61, 0x0B, 0x11, 0xF6, 0xC6, 0x66, 0xAE, + 0xC3, 0xCC, 0x0C, 0xD2, 0xE1, 0x9F, 0x82, 0x41, 0x3F, 0x56, 0xF9, 0x73, 0xEF, 0xDC, 0x30, 0x50, + 0xCF, 0xB6, 0x7F, 0xBC, 0xD0, 0xB3, 0x10, 0xAB, 0x24, 0xE4, 0xEC, 0xAD, 0x18, 0x8C, 0x39, 0x2D, + 0x30, 0x4C, 0xC5, 0x40, 0x0D, 0xF6, 0xAC, 0xD6, 0x18, 0x5D, 0x96, 0xBF, 0x5F, 0x71, 0x75, 0x96, + 0x22, 0x97, 0x0F, 0x02, 0x94, 0x6E, 0xA6, 0xAE, 0x6D, 0x8F, 0x1E, 0xCA, 0x12, 0x9B, 0x2A, 0x1C, + 0xCE, 0xA9, 0xEE, 0xFD, 0x12, 0x8E, 0xFC, 0xED, 0x09, 0x33, 0xBA, 0xF4, 0x1A, 0x15, 0xF6, 0x9D, + 0x87, 0x16, 0x43, 0x7C, 0x78, 0x57, 0xE1, 0x44, 0xC9, 0xEB, 0x1F, 0x58, 0x4D, 0xC1, 0x49, 0x11, + 0x5C, 0xB2, 0x11, 0xA8, 0x55, 0x16, 0xF1, 0xC6, 0x50, 0xE9, 0x87, 0x89, 0xF6, 0xCF, 0xD8, 0x9C, + 0x51, 0xA7, 0xBC, 0x5B, 0x31, 0x6D, 0x4D, 0x51, 0xD0, 0x4C, 0xBC, 0x0D, 0x58, 0x2D, 0x7B, 0x88, + 0x7A, 0xF9, 0x8E, 0xD6, 0x40, 0x4D, 0xBB, 0xBE, 0xC4, 0xE5, 0x07, 0xFC, 0xD9, 0x7B, 0x6D, 0xA6, + 0x42, 0x57, 0x8F, 0x02, 0x94, 0x4F, 0xE4, 0x2A, 0x65, 0xE2, 0x19, 0x5A, 0x50, 0xE1, 0x25, 0x65, + 0x4A, 0x60, 0xC2, 0xCD, 0xA8, 0xEC, 0x05, 0x2E, 0x87, 0x7B, 0x95, 0xB7, 0x4F, 0xA0, 0x0B, 0x1B, + 0x4A, 0x7F, 0x92, 0xC8, 0x90, 0xEE, 0x89, 0x1E, 0x10, 0xD2, 0x85, 0xE4, 0x9F, 0x63, 0xC8, 0x12, + 0xBB, 0x4E, 0xB8, 0xCF, 0x0A, 0xEC, 0x18, 0x4E, 0xE6, 0x7C, 0xB3, 0x33, 0x26, 0xC7, 0x1F, 0xD2, + 0x04, 0x23, 0xEA, 0x07, 0x0C, 0x5F, 0x90, 0xBD, 0xA7, 0x6A, 0x0F, 0x4A, 0xD6, 0x10, 0x01, 0x3C, + 0x12, 0x29, 0x2E, 0x96, 0xC0, 0x4D, 0xBB, 0xBE, 0xE5, 0xA7, 0x83, 0xD5, 0x6A, 0x3C, 0xE3, 0x5B, + 0xB8, 0xF2, 0x5C, 0x6D, 0x1F, 0xA6, 0xF3, 0x12, 0x24, 0xF6, 0xD6, 0x3B, 0x10, 0x14, 0x09, 0x07, + 0x82, 0xE8, 0x30, 0x6A, 0x99, 0xDC, 0x95, 0x01, 0x9C, 0xD4, 0x68, 0x3B, 0xCA, 0x98, 0x12, 0xAB, + 0x77, 0x25, 0x15, 0x7D, 0x10, 0x32, 0x45, 0x98, 0xCD, 0x7A, 0xDF, 0x71, 0x8A, 0x75, 0xC1, 0x1C, + 0xD4, 0x68, 0x25, 0xEB, 0xBB, 0x54, 0x27, 0x6F, 0x2A, 0xF7, 0xB9, 0x98, 0x03, 0x27, 0xDE, 0x24, + 0xA8, 0xBB, 0x98, 0xC2, 0x84, 0xFF, 0x9B, 0x51, 0xD8, 0x53, 0x50, 0xDA, 0xF5, 0x88, 0xAA, 0x87, + 0x2F, 0xAE, 0xD6, 0xEA, 0x6B, 0xDE, 0xC8, 0xD7, 0xA7, 0x28, 0x65, 0x81, 0xE8, 0xB2, 0x3B, 0x1D, + 0x4F, 0x75, 0x8F, 0x9F, 0x7A, 0x74, 0x8E, 0xC1, 0x5F, 0x9A, 0xA8, 0x9D, 0xFA, 0x03, 0xA3, 0x71, + 0x9B, 0x37, 0x6D, 0xD5, 0x0B, 0xF5, 0xE1, 0xA1, 0x1B, 0x01, 0x6A, 0xC6, 0x67, 0xAA, 0xEA, 0x2C, + 0x9D, 0xA4, 0xD2, 0x6E, 0xFC, 0xDE, 0x2E, 0x7F, 0x94, 0x69, 0xE5, 0x4A, 0xE0, 0x01, 0x48, 0x3C, + 0x6B, 0xF7, 0x1E, 0xB6, 0x0B, 0x5F, 0xF9, 0x2E, 0x07, 0xC5, 0xE8, 0xAE, 0x37, 0x1B, 0xBC, 0x3C, + 0xD8, 0xD5, 0x0B, 0x91, 0x9E, 0x80, 0x24, 0xF5, 0x06, 0x0C, 0x0E, 0x98, 0x07, 0x96, 0x2D, 0x19, + 0xDC, 0x58, 0x93, 0xCC, 0xFB, 0x4E, 0xEB, 0xBD, 0x0F, 0xF5, 0xAF, 0x01, 0xFA, 0xF1, 0x7C, 0x43, + 0x8C, 0xB8, 0x56, 0x3E, 0xBE, 0x77, 0x4E, 0x2B, 0xF7, 0xBB, 0xB7, 0x45, 0x47, 0xCD, 0xCC, 0xA6, + 0x4C, 0x72, 0x7B, 0x6A, 0x2A, 0x70, 0x13, 0x07, 0xFD, 0xB8, 0x9C, 0x98, 0x3A, 0xD8, 0x23, 0x67, + 0x5B, 0x34, 0xD5, 0x14, 0x0C, 0xAB, 0x77, 0x1F, 0xF8, 0x3D, 0x5A, 0x9F, 0x92, 0xB7, 0x2C, 0xAD, + 0x31, 0xDE, 0x61, 0x07, 0xB3, 0x6B, 0xF7, 0x38, 0x15, 0x95, 0x46, 0x14, 0x48, 0x53, 0x69, 0x52, + 0x66, 0x07, 0x6D, 0x83, 0x71, 0x8A, 0x67, 0x25, 0x20, 0x0F, 0xFE, 0xD7, 0x02, 0xD7, 0x6E, 0x2C, + 0xD2, 0x1A, 0x0A, 0x5D, 0xFD, 0x0F, 0x74, 0xE3, 0xA4, 0x36, 0x07, 0x9A, 0xDF, 0xD4, 0x79, 0xBF, + 0xEF, 0x59, 0xC0, 0x44, 0x52, 0x87, 0x9A, 0x6E, 0x1D, 0x0E, 0xEE, 0xDE, 0x2E, 0x1A, 0xA9, 0x8F, + 0x3A, 0xC9, 0xBA, 0xEC, 0x99, 0x78, 0x2D, 0x55, 0x6B, 0x14, 0xC2, 0x06, 0xD5, 0xFC, 0x93, 0x53, + 0x4D, 0x11, 0x8C, 0xF8, 0xFA, 0x79, 0x7C, 0xA6, 0x64, 0xAE, 0x61, 0xB8, 0x7B, 0x94, 0x56, 0xA6, + 0x39, 0x78, 0x9A, 0xE5, 0xC7, 0xDF, 0x18, 0x63, 0x23, 0x9C, 0xFA, 0x66, 0xBB, 0xB7, 0x5A, 0x27, + 0x4C, 0xD1, 0xA1, 0x83, 0x22, 0xB3, 0x52, 0x49, 0x35, 0xB0, 0x22, 0x83, 0x59, 0x12, 0x00, 0x16, + 0x98, 0xDD, 0xAD, 0xC2, 0x94, 0xF9, 0xD3, 0x7B, 0x64, 0x7F, 0x44, 0x3E, 0x3C, 0x8B, 0x9A, 0x83, + 0x9C, 0x69, 0x6B, 0xE4, 0xDF, 0x9F, 0xED, 0x54, 0x1F, 0xE5, 0x5D, 0x7A, 0x05, 0x82, 0xB3, 0xDD, + 0xEF, 0xFC, 0x53, 0x96, 0xB0, 0x2C, 0x5A, 0xF8, 0xDF, 0x9C, 0x8B, 0x16, 0x4E, 0xDF, 0xDA, 0x4D, + 0x09, 0x09, 0x69, 0x50, 0x03, 0x65, 0xD8, 0x73, 0x70, 0xE8, 0x86, 0xBF, 0xBB, 0x35, 0xCE, 0xB2, + 0x46, 0xCB, 0x02, 0x00, 0x5B, 0xB4, 0xE2, 0xC6, 0x8F, 0x2F, 0x98, 0xAF, 0x87, 0x4B, 0x48, 0x45, + 0xED, 0xCC, 0x1D, 0xE6, 0x58, 0xD6, 0xF2, 0x50, 0x25, 0x9F, 0x52, 0xC7, 0xCB, 0x8A, 0x17, 0x9D, + 0x5B, 0xE5, 0xC8, 0xD7, 0x72, 0xB7, 0x52, 0xB2, 0xC4, 0x98, 0xE3, 0x7A, 0x17, 0x3E, 0xC6, 0x60, + 0xA7, 0x97, 0xB0, 0xCF, 0x18, 0x81, 0x53, 0x84, 0x4C, 0xD5, 0x17, 0x32, 0x03, 0x13, 0x39, 0x51, + 0x09, 0x10, 0xE3, 0x77, 0x49, 0x4F, 0x62, 0x01, 0xBF, 0x8C, 0x9A, 0xE0, 0x41, 0x9E, 0x89, 0x74, + 0x36, 0xF9, 0x96, 0x86, 0x2E, 0x96, 0x1C, 0x4A, 0xB7, 0x2B, 0x4A, 0x97, 0xBC, 0x99, 0x40, 0xA3, + 0xE0, 0x3D, 0xC8, 0xAD, 0x2F, 0xDF, 0x4F, 0x2C, 0xC4, 0x69, 0x82, 0x9F, 0x9B, 0x81, 0x0C, 0x61, + 0x5C, 0xA5, 0x9D, 0x8C, 0x89, 0xC0, 0x2C, 0xB4, 0x4A, 0x33, 0x4E, 0xEB, 0xA2, 0x56, 0x40, 0xC0, + 0xC2, 0x46, 0xAF, 0x6A, 0xFC, 0x67, 0xD1, 0x80, 0x5E, 0xC5, 0x6D, 0x84, 0x43, 0x27, 0x3F, 0x55, + 0x15, 0x96, 0x6A, 0xA0, 0xA5, 0xDA, 0xB7, 0xFF, 0xB7, 0x75, 0x6E, 0x4C, 0x49, 0x91, 0x9D, 0x22, + 0xA3, 0x46, 0xEA, 0xED, 0x9A, 0x00, 0xE2, 0x32, 0xC3, 0xD6, 0xA9, 0x71, 0x20, 0x55, 0xA3, 0x19, + 0xED, 0xF8, 0x4F, 0xA7, 0x12, 0x9C, 0x66, 0x87, 0xAF, 0x4E, 0xB7, 0xF0, 0xDB, 0xBF, 0xEF, 0xF0, + 0xF6, 0xAF, 0xEA, 0xDA, 0x09, 0xFE, 0xDE, 0x38, 0x5C, 0xA5, 0xA2, 0xDF, 0x99, 0x45, 0xA8, 0xE4, + 0xE7, 0x92, 0xAC, 0x67, 0xAA, 0x4F, 0xBF, 0x77, 0x3E, 0xA2, 0x40, 0x49, 0x22, 0x4A, 0x1E, 0x3B, + 0xAA, 0x70, 0x7F, 0x95, 0xAF, 0x37, 0x4B, 0xFC, 0x99, 0xE2, 0xE0, 0xBA, 0xD7, 0x34, 0xCE, 0x55, + 0x88, 0x5B, 0x84, 0x1B, 0x57, 0xC4, 0x80, 0x03, 0x53, 0xC9, 0x2F, 0x93, 0x04, 0x4D, 0xD5, 0x96, + 0xE5, 0x70, 0xA6, 0x6E, 0x63, 0x5D, 0x9D, 0x6C, 0xDB, 0x02, 0x0A, 0xA9, 0xDA, 0x8B, 0x53, 0xDC, + 0xD9, 0x9A, 0xC5, 0x94, 0x2C, 0x91, 0x92, 0x2A, 0xDE, 0xBB, 0x8B, 0x13, 0xB9, 0x19, 0x96, 0x64, + 0xCC, 0xF2, 0x64, 0x39, 0xB7, 0x75, 0x49, 0xE9, 0x86, 0xC2, 0x86, 0x62, 0xD9, 0x24, 0xD3, 0x81, + 0x35, 0x49, 0xFC, 0xA0, 0xA5, 0xA0, 0x93, 0x05, 0x64, 0xB4, 0x1A, 0x57, 0xCE, 0x0C, 0x90, 0x02, + 0x27, 0xC5, 0x7A, 0x2B, 0x5D, 0xAE, 0x3E, 0xD5, 0xDD, 0x10, 0x7C, 0x14, 0xEA, 0x3A, 0x08, 0xAC, + 0x72, 0x4E, 0x90, 0x3D, 0x3B, 0x7C, 0x86, 0x2E, 0xEB, 0xD4, 0x06, 0x70, 0xE6, 0xC7, 0xFB, 0x5F, + 0xBD, 0x18, 0xF4, 0x11, 0xA4, 0x1A, 0x93, 0xC3, 0xBE, 0xD9, 0xFB, 0x26, 0x48, 0x2F, 0x37, 0x3C, + 0xD0, 0x03, 0x47, 0x1A, 0xF7, 0x62, 0x19, 0x24, 0x5C, 0xF4, 0xA8, 0x92, 0x20, 0x7A, 0xF2, 0x9E, + 0x2A, 0xC5, 0x95, 0xA2, 0xFB, 0xA4, 0xEA, 0x85, 0xD8, 0x56, 0xB7, 0x70, 0xD1, 0x60, 0x30, 0xA5, + 0x30, 0x82, 0x70, 0xDC, 0x7A, 0x65, 0x8A, 0x36, 0x3F, 0x5B, 0x0C, 0xAE, 0x54, 0x7C, 0xD3, 0x57, + 0x84, 0x7B, 0x3A, 0x65, 0x18, 0x81, 0xEE, 0x05, 0x9B, 0x44, 0x4D, 0xB8, 0xDA, 0xA2, 0xA1, 0xC9, + 0x15, 0xD3, 0x73, 0x03, 0x0E, 0x43, 0xE9, 0x8E, 0x15, 0xF9, 0xBE, 0xC6, 0xC5, 0x8A, 0xE5, 0xC0, + 0x1E, 0xC2, 0x37, 0x9E, 0x2A, 0x26, 0xA5, 0xA0, 0xBD, 0x24, 0x5F, 0xB9, 0xC1, 0xAB, 0x34, 0x48, + 0xB9, 0x5D, 0x98, 0xB4, 0x65, 0x18, 0xF3, 0x63, 0x19, 0x44, 0x1B, 0x11, 0x16, 0xFF, 0xDC, 0xF1, + 0x79, 0x08, 0x86, 0x0F, 0x52, 0x98, 0x73, 0xC4, 0x92, 0x90, 0x2B, 0x47, 0x09, 0xD0, 0x43, 0x6C, + 0x2F, 0x20, 0xEB, 0xDC, 0xDA, 0xC5, 0x08, 0x7B, 0x94, 0x42, 0x30, 0x6A, 0xC7, 0xDA, 0x8C, 0xC3, + 0x76, 0xA7, 0xA5, 0xCC, 0x62, 0x13, 0x00, 0x60, 0x31, 0x58, 0x44, 0x9B, 0xF5, 0x64, 0x14, 0xF5, + 0x11, 0xC5, 0x54, 0x52, 0x83, 0xD4, 0x73, 0x01, 0x16, 0x0E, 0xB3, 0x7A, 0x29, 0x69, 0x35, 0x56, + 0xD4, 0xEE, 0x8A, 0x17, 0xA2, 0x99, 0x24, 0x9C, 0xD7, 0x8F, 0xDB, 0x55, 0xB5, 0x3E +}; diff --git a/drivers/sensors/analog_joystick.c b/drivers/sensors/analog_joystick.c index eec97e8eed..15b35a45f2 100644 --- a/drivers/sensors/analog_joystick.c +++ b/drivers/sensors/analog_joystick.c @@ -20,14 +20,6 @@ #include "wait.h" #include "timer.h" #include -#include "pointing_device_internal.h" - -const pointing_device_driver_t analog_joystick_pointing_device_driver = { - .init = analog_joystick_init, - .get_report = analog_joystick_get_report, - .set_cpi = NULL, - .get_cpi = NULL, -}; // Set Parameters #ifndef ANALOG_JOYSTICK_AUTO_AXIS @@ -135,7 +127,7 @@ report_analog_joystick_t analog_joystick_read(void) { return report; } -bool analog_joystick_init(void) { +void analog_joystick_init(void) { gpio_set_pin_input_high(ANALOG_JOYSTICK_X_AXIS_PIN); gpio_set_pin_input_high(ANALOG_JOYSTICK_Y_AXIS_PIN); @@ -152,19 +144,4 @@ bool analog_joystick_init(void) { maxAxisValues[0] = xOrigin + 100; maxAxisValues[1] = yOrigin + 100; #endif - - return true; -} - -report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) { - report_analog_joystick_t data = analog_joystick_read(); - - pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); - - mouse_report.x = data.x; - mouse_report.y = data.y; - - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, data.button, POINTING_DEVICE_BUTTON1); - - return mouse_report; } diff --git a/drivers/sensors/analog_joystick.h b/drivers/sensors/analog_joystick.h index f8cc315533..6892a08817 100644 --- a/drivers/sensors/analog_joystick.h +++ b/drivers/sensors/analog_joystick.h @@ -18,7 +18,6 @@ #include #include -#include "pointing_device.h" #ifndef ANALOG_JOYSTICK_X_AXIS_PIN # error No pin specified for X Axis @@ -43,13 +42,10 @@ # define ANALOG_JOYSTICK_SPEED_MAX 2 #endif -extern const pointing_device_driver_t analog_joystick_pointing_device_driver; - typedef struct { int8_t x; int8_t y; bool button; } report_analog_joystick_t; report_analog_joystick_t analog_joystick_read(void); -bool analog_joystick_init(void); -report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report); +void analog_joystick_init(void); diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c index 7586ac52d1..367873eb06 100644 --- a/drivers/sensors/azoteq_iqs5xx.c +++ b/drivers/sensors/azoteq_iqs5xx.c @@ -17,7 +17,6 @@ #define AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME 0x000C #define AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1 0x0432 #define AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE 0x057A -#define AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT 0x0586 #define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0 0x058E #define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1 0x058F #define AZOTEQ_IQS5XX_REG_X_RESOLUTION 0x066E @@ -78,10 +77,6 @@ #ifndef AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE # define AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE 0x19 #endif -#ifndef AZOTEQ_IQS5XX_EVENT_MODE -// Event mode can't be used until the pointing code has changed (stuck buttons) -# define AZOTEQ_IQS5XX_EVENT_MODE false -#endif #if defined(AZOTEQ_IQS5XX_TPS43) # define AZOTEQ_IQS5XX_WIDTH_MM 43 @@ -103,13 +98,6 @@ #define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_HEIGHT_MM * 10, 254)) #define AZOTEQ_IQS5XX_RESOLUTION_Y_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_HEIGHT_MM * 10)) -const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver = { - .init = azoteq_iqs5xx_init, - .get_report = azoteq_iqs5xx_get_report, - .set_cpi = azoteq_iqs5xx_set_cpi, - .get_cpi = azoteq_iqs5xx_get_cpi, -}; - static uint16_t azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_UNKNOWN; static struct { @@ -117,6 +105,12 @@ static struct { uint16_t resolution_y; } azoteq_iqs5xx_device_resolution_t; +i2c_status_t azoteq_iqs5xx_wake(void) { + uint8_t data = 0; + i2c_status_t status = i2c_read_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)&data, sizeof(data), 1); + wait_us(150); + return status; +} i2c_status_t azoteq_iqs5xx_end_session(void) { const uint8_t END_BYTE = 1; // any data return i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_END_COMMS, &END_BYTE, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); @@ -318,97 +312,3 @@ void azoteq_iqs5xx_setup_resolution(void) { azoteq_iqs5xx_device_resolution_t.resolution_y = AZOTEQ_IQS5XX_RESOLUTION_Y; #endif } - -static i2c_status_t azoteq_iqs5xx_init_status = 1; - -bool azoteq_iqs5xx_init(void) { - i2c_init(); - i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake - azoteq_iqs5xx_reset_suspend(true, false, true); - wait_ms(100); - i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake - if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { - azoteq_iqs5xx_setup_resolution(); - azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE_TOUCH, false); - - uint8_t no_timeout = 255; - azoteq_iqs5xx_init_status |= i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT, &no_timeout, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); // Don't enter LP1, LP2 states - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(AZOTEQ_IQS5XX_EVENT_MODE, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); -#if defined(AZOTEQ_IQS5XX_ROTATION_90) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); -#elif defined(AZOTEQ_IQS5XX_ROTATION_180) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false); -#elif defined(AZOTEQ_IQS5XX_ROTATION_270) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false); -#else - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false); -#endif - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true); - wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1); - } - - return azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS; -}; - -report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { - report_mouse_t temp_report = {0}; - - azoteq_iqs5xx_base_data_t base_data = {0}; - i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); - bool ignore_movement = false; - - if (status == I2C_STATUS_SUCCESS) { -#ifdef POINTING_DEVICE_DEBUG - if (base_data.previous_cycle_time > AZOTEQ_IQS5XX_REPORT_RATE) { - pd_dprintf("IQS5XX - previous cycle time missed, took: %dms\n", base_data.previous_cycle_time); - } -#endif - if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { - pd_dprintf("IQS5XX - Single tap/hold.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); - } else if (base_data.gesture_events_1.two_finger_tap) { - pd_dprintf("IQS5XX - Two finger tap.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2); - } else if (base_data.gesture_events_0.swipe_x_neg) { - pd_dprintf("IQS5XX - X-.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_x_pos) { - pd_dprintf("IQS5XX - X+.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_y_neg) { - pd_dprintf("IQS5XX - Y-.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_y_pos) { - pd_dprintf("IQS5XX - Y+.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3); - ignore_movement = true; - } else if (base_data.gesture_events_1.zoom) { - if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) { - pd_dprintf("IQS5XX - Zoom out.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7); - } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) { - pd_dprintf("IQS5XX - Zoom in.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8); - } - } else if (base_data.gesture_events_1.scroll) { - pd_dprintf("IQS5XX - Scroll.\n"); - temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); - temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); - } - if (base_data.number_of_fingers == 1 && !ignore_movement) { - temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); - temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); - } - - } else { - pd_dprintf("IQS5XX - get report failed, i2c status: %d \n", status); - } - - return temp_report; -} diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h index a5866b3d85..704ec2bab3 100644 --- a/drivers/sensors/azoteq_iqs5xx.h +++ b/drivers/sensors/azoteq_iqs5xx.h @@ -4,7 +4,6 @@ #pragma once -#include "compiler_support.h" #include "i2c_master.h" #include "pointing_device.h" #include "util.h" @@ -80,7 +79,7 @@ typedef struct { azoteq_iqs5xx_relative_xy_t y; } azoteq_iqs5xx_base_data_t; -STATIC_ASSERT(sizeof(azoteq_iqs5xx_base_data_t) == 10, "azoteq_iqs5xx_basic_report_t should be 10 bytes"); +_Static_assert(sizeof(azoteq_iqs5xx_base_data_t) == 10, "azoteq_iqs5xx_basic_report_t should be 10 bytes"); typedef struct { uint8_t number_of_fingers; @@ -88,7 +87,7 @@ typedef struct { azoteq_iqs5xx_relative_xy_t y; } azoteq_iqs5xx_report_data_t; -STATIC_ASSERT(sizeof(azoteq_iqs5xx_report_data_t) == 5, "azoteq_iqs5xx_report_data_t should be 5 bytes"); +_Static_assert(sizeof(azoteq_iqs5xx_report_data_t) == 5, "azoteq_iqs5xx_report_data_t should be 5 bytes"); typedef struct PACKED { bool sw_input : 1; @@ -160,7 +159,7 @@ typedef struct PACKED { uint16_t zoom_consecutive_distance; } azoteq_iqs5xx_gesture_config_t; -STATIC_ASSERT(sizeof(azoteq_iqs5xx_gesture_config_t) == 24, "azoteq_iqs5xx_gesture_config_t should be 24 bytes"); +_Static_assert(sizeof(azoteq_iqs5xx_gesture_config_t) == 24, "azoteq_iqs5xx_gesture_config_t should be 24 bytes"); typedef struct { uint16_t x_resolution; @@ -174,13 +173,10 @@ typedef struct { # define AZOTEQ_IQS5XX_REPORT_RATE 10 #endif #if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) && !defined(POINTING_DEVICE_MOTION_PIN) -// Polling the Azoteq isn't recommended, ensuring we only poll after the report is ready stops any unexpected NACKs -# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE + 1 +# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE #endif -extern const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver; - -bool azoteq_iqs5xx_init(void); +void azoteq_iqs5xx_init(void); i2c_status_t azoteq_iqs5xx_wake(void); report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report); i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session); diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 45072ae874..9afc9df804 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -4,7 +4,6 @@ // refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation #include "cirque_pinnacle.h" -#include "cirque_pinnacle_gestures.h" #include "wait.h" #include "timer.h" @@ -18,6 +17,7 @@ # endif #endif +bool touchpad_init; uint16_t scale_data = CIRQUE_PINNACLE_DEFAULT_SCALE; void cirque_pinnacle_clear_flags(void); @@ -231,14 +231,14 @@ bool cirque_pinnacle_connected(void) { } /* Pinnacle-based TM040040/TM035035/TM023023 Functions */ -bool cirque_pinnacle_init(void) { +void cirque_pinnacle_init(void) { #if defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) spi_init(); #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) i2c_init(); #endif - bool touchpad_init = true; + touchpad_init = true; // send a RESET command now, in case QMK had a soft-reset without a power cycle RAP_Write(HOSTREG__SYSCONFIG1, HOSTREG__SYSCONFIG1__RESET); @@ -292,8 +292,6 @@ bool cirque_pinnacle_init(void) { #ifndef CIRQUE_PINNACLE_SKIP_SENSOR_CHECK touchpad_init = cirque_pinnacle_connected(); #endif - - return touchpad_init; } pinnacle_data_t cirque_pinnacle_read_data(void) { @@ -352,144 +350,3 @@ pinnacle_data_t cirque_pinnacle_read_data(void) { result.valid = true; return result; } - -#ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE -static bool cursor_glide_enable = true; - -static cursor_glide_context_t glide = {.config = { - .coef = 102, /* Good default friction coef */ - .interval = 10, /* 100sps */ - .trigger_px = 10, /* Default threshold in case of hover, set to 0 if you'd like */ - }}; - -void cirque_pinnacle_enable_cursor_glide(bool enable) { - cursor_glide_enable = enable; -} - -void cirque_pinnacle_configure_cursor_glide(float trigger_px) { - glide.config.trigger_px = trigger_px; -} -#endif - -#if CIRQUE_PINNACLE_POSITION_MODE - -# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE -static bool is_touch_down; - -bool auto_mouse_activation(report_mouse_t mouse_report) { - return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; -} -# endif - -report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - uint16_t scale = cirque_pinnacle_get_scale(); - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - mouse_xy_report_t report_x = 0, report_y = 0; - static uint16_t x = 0, y = 0, last_scale = 0; - -# if defined(CIRQUE_PINNACLE_TAP_ENABLE) - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); -# endif -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - cursor_glide_t glide_report = {0}; - - if (cursor_glide_enable) { - glide_report = cursor_glide_check(&glide); - } -# endif - - if (!touchData.valid) { -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - if (cursor_glide_enable && glide_report.valid) { - report_x = glide_report.dx; - report_y = glide_report.dy; - goto mouse_report_update; - } -# endif - return mouse_report; - } - - if (touchData.touchDown) { - pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); - } - -# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE - is_touch_down = touchData.touchDown; -# endif - - // Scale coordinates to arbitrary X, Y resolution - cirque_pinnacle_scale_data(&touchData, scale, scale); - - if (!cirque_pinnacle_gestures(&mouse_report, touchData)) { - if (last_scale && scale == last_scale && x && y && touchData.xValue && touchData.yValue) { - report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x)); - report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y)); - } - x = touchData.xValue; - y = touchData.yValue; - last_scale = scale; - -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - if (cursor_glide_enable) { - if (touchData.touchDown) { - cursor_glide_update(&glide, report_x, report_y, touchData.zValue); - } else if (!glide_report.valid) { - glide_report = cursor_glide_start(&glide); - if (glide_report.valid) { - report_x = glide_report.dx; - report_y = glide_report.dy; - } - } - } -# endif - } - -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE -mouse_report_update: -# endif - mouse_report.x = report_x; - mouse_report.y = report_y; - - return mouse_report; -} - -uint16_t cirque_pinnacle_get_cpi(void) { - return CIRQUE_PINNACLE_PX_TO_INCH(cirque_pinnacle_get_scale()); -} -void cirque_pinnacle_set_cpi(uint16_t cpi) { - cirque_pinnacle_set_scale(CIRQUE_PINNACLE_INCH_TO_PX(cpi)); -} - -// clang-format off -const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = { - .init = cirque_pinnacle_init, - .get_report = cirque_pinnacle_get_report, - .set_cpi = cirque_pinnacle_set_cpi, - .get_cpi = cirque_pinnacle_get_cpi -}; -// clang-format on -#else -report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - - // Scale coordinates to arbitrary X, Y resolution - cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); - - if (touchData.valid) { - mouse_report.buttons = touchData.buttons; - mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); - mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); - mouse_report.v = touchData.wheelCount; - } - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = { - .init = cirque_pinnacle_init, - .get_report = cirque_pinnacle_get_report, - .set_cpi = cirque_pinnacle_set_scale, - .get_cpi = cirque_pinnacle_get_scale -}; -// clang-format on -#endif diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h index f71ee8da1f..8717b32991 100644 --- a/drivers/sensors/cirque_pinnacle.h +++ b/drivers/sensors/cirque_pinnacle.h @@ -6,7 +6,6 @@ #include #include #include "pointing_device_internal.h" -#include "pointing_device.h" #ifndef CIRQUE_PINNACLE_TIMEOUT # define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds @@ -110,17 +109,10 @@ typedef struct { #endif } pinnacle_data_t; -#define cirque_pinnacle_i2c_pointing_device_driver cirque_pinnacle_pointing_device_driver -#define cirque_pinnacle_spi_pointing_device_driver cirque_pinnacle_pointing_device_driver -extern const pointing_device_driver_t cirque_pinnacle_pointing_device_driver; - -bool cirque_pinnacle_init(void); +void cirque_pinnacle_init(void); void cirque_pinnacle_calibrate(void); void cirque_pinnacle_cursor_smoothing(bool enable); pinnacle_data_t cirque_pinnacle_read_data(void); void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution); uint16_t cirque_pinnacle_get_scale(void); void cirque_pinnacle_set_scale(uint16_t scale); -uint16_t cirque_pinnacle_get_cpi(void); -void cirque_pinnacle_set_cpi(uint16_t cpi); -report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/cirque_pinnacle_i2c.c b/drivers/sensors/cirque_pinnacle_i2c.c index 8d766c69d9..a3622e9d60 100644 --- a/drivers/sensors/cirque_pinnacle_i2c.c +++ b/drivers/sensors/cirque_pinnacle_i2c.c @@ -7,22 +7,29 @@ #define WRITE_MASK 0x80 #define READ_MASK 0xA0 +extern bool touchpad_init; + /* RAP Functions */ // Reads Pinnacle registers starting at
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) { uint8_t cmdByte = READ_MASK | address; // Form the READ command byte - i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT); - if (i2c_read_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { - pd_dprintf("error cirque_pinnacle i2c_read_register\n"); - pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED); + if (touchpad_init) { + i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT); + if (i2c_read_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { + pd_dprintf("error cirque_pinnacle i2c_read_register\n"); + touchpad_init = false; + } } } // Writes single-byte to
void RAP_Write(uint8_t address, uint8_t data) { uint8_t cmdByte = WRITE_MASK | address; // Form the WRITE command byte - if (i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { - pd_dprintf("error cirque_pinnacle i2c_write_register\n"); - pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED); + + if (touchpad_init) { + if (i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { + pd_dprintf("error cirque_pinnacle i2c_write_register\n"); + touchpad_init = false; + } } } diff --git a/drivers/sensors/cirque_pinnacle_spi.c b/drivers/sensors/cirque_pinnacle_spi.c index eefdb4d0a7..5cb39aebb0 100644 --- a/drivers/sensors/cirque_pinnacle_spi.c +++ b/drivers/sensors/cirque_pinnacle_spi.c @@ -7,35 +7,40 @@ #define READ_MASK 0xA0 #define FILLER_BYTE 0xFC +extern bool touchpad_init; + /* RAP Functions */ // Reads Pinnacle registers starting at
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) { uint8_t cmdByte = READ_MASK | address; // Form the READ command byte - - if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) { - spi_write(cmdByte); // write command byte, receive filler - spi_write(FILLER_BYTE); // write & receive filler - spi_write(FILLER_BYTE); // write & receive filler - for (uint8_t i = 0; i < count; i++) { - data[i] = spi_write(FILLER_BYTE); // write filler, receive data on the third filler send + if (touchpad_init) { + if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) { + spi_write(cmdByte); // write command byte, receive filler + spi_write(FILLER_BYTE); // write & receive filler + spi_write(FILLER_BYTE); // write & receive filler + for (uint8_t i = 0; i < count; i++) { + data[i] = spi_write(FILLER_BYTE); // write filler, receive data on the third filler send + } + } else { + pd_dprintf("error cirque_pinnacle spi_start read\n"); + touchpad_init = false; } - } else { - pd_dprintf("error cirque_pinnacle spi_start read\n"); - pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED); + spi_stop(); } - spi_stop(); } // Writes single-byte to
void RAP_Write(uint8_t address, uint8_t data) { uint8_t cmdByte = WRITE_MASK | address; // Form the WRITE command byte - if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) { - spi_write(cmdByte); - spi_write(data); - } else { - pd_dprintf("error cirque_pinnacle spi_start write\n"); - pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED); + if (touchpad_init) { + if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) { + spi_write(cmdByte); + spi_write(data); + } else { + pd_dprintf("error cirque_pinnacle spi_start write\n"); + touchpad_init = false; + } + spi_stop(); } - spi_stop(); } diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c index 228b7fa986..28c47522ed 100644 --- a/drivers/sensors/paw3204.c +++ b/drivers/sensors/paw3204.c @@ -20,7 +20,6 @@ #include "wait.h" #include "debug.h" #include "gpio.h" -#include "pointing_device_internal.h" #define REG_PID1 0x00 #define REG_PID2 0x01 @@ -51,22 +50,7 @@ void paw3204_serial_write(uint8_t reg_addr); uint8_t paw3204_read_reg(uint8_t reg_addr); void paw3204_write_reg(uint8_t reg_addr, uint8_t data); -const pointing_device_driver_t paw3204_pointing_device_driver = { - .init = paw3204_init, - .get_report = paw3204_get_report, - .set_cpi = paw3204_set_cpi, - .get_cpi = paw3204_get_cpi, -}; - -uint8_t read_pid_paw3204(void) { - return paw3204_read_reg(REG_PID1); -} - -bool __attribute__((weak)) paw3204_check_signature(void) { - return (read_pid_paw3204() == 0x30); -} - -bool paw3204_init(void) { +void paw3204_init(void) { gpio_set_pin_output(PAW3204_SCLK_PIN); // setclockpin to output gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high @@ -77,8 +61,6 @@ bool paw3204_init(void) { paw3204_read_reg(0x01); // read id2 // PAW3204_write_reg(REG_SETUP,0x06); // dont reset sensor and set cpi 1600 paw3204_write_reg(REG_IMGTRASH, 0x32); // write image trashhold - - return paw3204_check_signature(); } uint8_t paw3204_serial_read(void) { @@ -185,14 +167,6 @@ uint16_t paw3204_get_cpi(void) { return cpival; } -report_mouse_t paw3204_get_report(report_mouse_t mouse_report) { - report_paw3204_t data = paw3204_read(); - if (data.isMotion) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); - - mouse_report.x = data.x; - mouse_report.y = data.y; - } - - return mouse_report; +uint8_t read_pid_paw3204(void) { + return paw3204_read_reg(REG_PID1); } diff --git a/drivers/sensors/paw3204.h b/drivers/sensors/paw3204.h index 0bf5713548..7f487d90dc 100644 --- a/drivers/sensors/paw3204.h +++ b/drivers/sensors/paw3204.h @@ -18,7 +18,6 @@ #include #include -#include "pointing_device.h" #ifndef PAW3204_SCLK_PIN # ifdef POINTING_DEVICE_SCLK_PIN @@ -41,8 +40,6 @@ typedef struct { bool isMotion; } report_paw3204_t; -extern const pointing_device_driver_t paw3204_pointing_device_driver; - /** * @brief Initializes the sensor so it is in a working state and ready to * be polled for data. @@ -50,7 +47,7 @@ extern const pointing_device_driver_t paw3204_pointing_device_driver; * @return true Initialization was a success * @return false Initialization failed, do not proceed operation */ -bool paw3204_init(void); +void paw3204_init(void); /** * @brief Reads and clears the current delta, and motion register values on the @@ -77,5 +74,3 @@ void paw3204_set_cpi(uint16_t cpi); * @return uint16_t Current CPI value of the sensor */ uint16_t paw3204_get_cpi(void); - -report_mouse_t paw3204_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c index daa5786554..9c6d26d73d 100644 --- a/drivers/sensors/pimoroni_trackball.c +++ b/drivers/sensors/pimoroni_trackball.c @@ -33,13 +33,6 @@ static uint16_t precision = 128; -const pointing_device_driver_t pimoroni_trackball_pointing_device_driver = { - .init = pimoroni_trackball_device_init, - .get_report = pimoroni_trackball_get_report, - .set_cpi = pimoroni_trackball_set_cpi, - .get_cpi = pimoroni_trackball_get_cpi, -}; - uint16_t pimoroni_trackball_get_cpi(void) { return (precision * 125); } @@ -68,8 +61,8 @@ void pimoroni_trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { pd_dprintf("Trackball RGBW i2c_status_t: %d\n", status); } -i2c_status_t read_pimoroni_trackball(pimoroni_data_t *data) { - i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t *)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT); +i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data) { + i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT); #ifdef POINTING_DEVICE_DEBUG static uint16_t d_timer; @@ -82,12 +75,9 @@ i2c_status_t read_pimoroni_trackball(pimoroni_data_t *data) { return status; } -__attribute__((weak)) bool pimoroni_trackball_device_init(void) { +__attribute__((weak)) void pimoroni_trackball_device_init(void) { i2c_init(); - uint8_t rgbw_data[4] = {0}; - i2c_status_t status = i2c_write_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LED_RED, rgbw_data, sizeof(rgbw_data), PIMORONI_TRACKBALL_TIMEOUT); - - return (status == I2C_STATUS_SUCCESS); + pimoroni_trackball_set_rgbw(0x00, 0x00, 0x00, 0x00); } int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale) { @@ -102,50 +92,3 @@ int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_di uint16_t magnitude = (scale * offset * offset * precision) >> 7; return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude); } - -mouse_xy_report_t pimoroni_trackball_adapt_values(xy_clamp_range_t *offset) { - if (*offset > MOUSE_REPORT_XY_MAX) { - *offset -= MOUSE_REPORT_XY_MAX; - return (mouse_xy_report_t)MOUSE_REPORT_XY_MAX; - } else if (*offset < MOUSE_REPORT_XY_MIN) { - *offset += MOUSE_REPORT_XY_MAX; - return (mouse_xy_report_t)MOUSE_REPORT_XY_MIN; - } else { - mouse_xy_report_t temp_return = *offset; - *offset = 0; - return temp_return; - } -} - -report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { - static uint16_t debounce = 0; - static uint8_t error_count = 0; - pimoroni_data_t pimoroni_data = {0}; - static xy_clamp_range_t x_offset = 0, y_offset = 0; - - if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) { - i2c_status_t status = read_pimoroni_trackball(&pimoroni_data); - - if (status == I2C_STATUS_SUCCESS) { - error_count = 0; - - if (!(pimoroni_data.click & 128)) { - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); - if (!debounce) { - x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE); - y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE); - mouse_report.x = pimoroni_trackball_adapt_values(&x_offset); - mouse_report.y = pimoroni_trackball_adapt_values(&y_offset); - } else { - debounce--; - } - } else { - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1); - debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; - } - } else { - error_count++; - } - } - return mouse_report; -} diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h index 74ae6d7228..749f381bbd 100644 --- a/drivers/sensors/pimoroni_trackball.h +++ b/drivers/sensors/pimoroni_trackball.h @@ -19,7 +19,6 @@ #include #include "report.h" #include "i2c_master.h" -#include "pointing_device.h" #ifndef PIMORONI_TRACKBALL_ADDRESS # define PIMORONI_TRACKBALL_ADDRESS 0x0A @@ -50,12 +49,9 @@ typedef struct { uint8_t click; } pimoroni_data_t; -extern const pointing_device_driver_t pimoroni_trackball_pointing_device_driver; - -bool pimoroni_trackball_device_init(void); -void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); -int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); -uint16_t pimoroni_trackball_get_cpi(void); -void pimoroni_trackball_set_cpi(uint16_t cpi); -i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data); -report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report); +void pimoroni_trackball_device_init(void); +void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); +uint16_t pimoroni_trackball_get_cpi(void); +void pimoroni_trackball_set_cpi(uint16_t cpi); +i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data); diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c index db74540ec1..f19fbfd1ab 100644 --- a/drivers/sensors/pmw3320.c +++ b/drivers/sensors/pmw3320.c @@ -21,16 +21,8 @@ #include "wait.h" #include "debug.h" #include "gpio.h" -#include "pointing_device_internal.h" -const pointing_device_driver_t pmw3320_pointing_device_drivera = { - .init = pmw3320_init, - .get_report = pmw3320_get_report, - .set_cpi = pmw3320_set_cpi, - .get_cpi = pmw3320_get_cpi, -}; - -bool pmw3320_init(void) { +void pmw3320_init(void) { // Initialize sensor serial pins. gpio_set_pin_output(PMW3320_SCLK_PIN); gpio_set_pin_output(PMW3320_SDIO_PIN); @@ -56,8 +48,6 @@ bool pmw3320_init(void) { pmw3320_write_reg(REG_Led_Control, 0x4); // Disable rest mode pmw3320_write_reg(REG_Performance, 0x80); - - return pmw3320_check_signature(); } // Perform a synchronization with sensor. @@ -194,21 +184,9 @@ void pmw3320_set_cpi(uint16_t cpi) { pmw3320_write_reg(REG_Resolution, 0x20 | cpival); } -bool __attribute__((weak)) pmw3320_check_signature(void) { +bool pmw3320_check_signature(void) { uint8_t pid = pmw3320_read_reg(REG_Product_ID); uint8_t pid2 = pmw3320_read_reg(REG_Inverse_Product_ID); return (pid == 0x3b && pid2 == 0xc4); } - -report_mouse_t pmw3320_get_report(report_mouse_t mouse_report) { - report_pmw3320_t data = pmw3320_read_burst(); - - if (data.dx != 0 || data.dy != 0) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); - mouse_report.x = (mouse_xy_report_t)data.dx; - mouse_report.y = (mouse_xy_report_t)data.dy; - } - - return mouse_report; -} diff --git a/drivers/sensors/pmw3320.h b/drivers/sensors/pmw3320.h index c80eb8e145..a1fd546919 100644 --- a/drivers/sensors/pmw3320.h +++ b/drivers/sensors/pmw3320.h @@ -21,7 +21,6 @@ #include #include -#include "pointing_device.h" #define constrain(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) @@ -55,13 +54,11 @@ typedef struct { int8_t dy; } report_pmw3320_t; -extern const pointing_device_driver_t pmw3320_pointing_device_driver; - // A bunch of functions to implement the PMW3320-specific serial protocol. // Mostly taken from ADNS5050 driver. // Note that the "serial.h" driver is insufficient, because it does not // manually manipulate a serial clock signal. -bool pmw3320_init(void); +void pmw3320_init(void); void pmw3320_sync(void); uint8_t pmw3320_serial_read(void); void pmw3320_serial_write(uint8_t data); @@ -72,7 +69,6 @@ void pmw3320_set_cpi(uint16_t cpi); uint16_t pmw3320_get_cpi(void); int8_t convert_twoscomp(uint8_t data); bool pmw3320_check_signature(void); -report_mouse_t pmw3320_get_report(report_mouse_t mouse_report); #if !defined(PMW3320_CPI) # define PMW3320_CPI 1000 diff --git a/drivers/sensors/pmw3360.c b/drivers/sensors/pmw3360.c index fb710591d3..8408daa945 100644 --- a/drivers/sensors/pmw3360.c +++ b/drivers/sensors/pmw3360.c @@ -31,4 +31,265 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) { } // PID, Inverse PID, SROM version -const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x42, 0xBD}; +const uint8_t pmw33xx_firmware_signature[3] PROGMEM = {0x42, 0xBD, 0x04}; + +// Firmware Blob for PMW3360 +// clang-format off +const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM = { + 0x01, 0x04, 0x8E, 0x96, 0x6E, 0x77, 0x3E, 0xFE, 0x7E, 0x5F, 0x1D, 0xB8, 0xF2, 0x66, 0x4E, 0xFF, + 0x5D, 0x19, 0xB0, 0xC2, 0x04, 0x69, 0x54, 0x2A, 0xD6, 0x2E, 0xBF, 0xDD, 0x19, 0xB0, 0xC3, 0xE5, + 0x29, 0xB1, 0xE0, 0x23, 0xA5, 0xA9, 0xB1, 0xC1, 0x00, 0x82, 0x67, 0x4C, 0x1A, 0x97, 0x8D, 0x79, + 0x51, 0x20, 0xC7, 0x06, 0x8E, 0x7C, 0x7C, 0x7A, 0x76, 0x4F, 0xFD, 0x59, 0x30, 0xE2, 0x46, 0x0E, + 0x9E, 0xBE, 0xDF, 0x1D, 0x99, 0x91, 0xA0, 0xA5, 0xA1, 0xA9, 0xD0, 0x22, 0xC6, 0xEF, 0x5C, 0x1B, + 0x95, 0x89, 0x90, 0xA2, 0xA7, 0xCC, 0xFB, 0x55, 0x28, 0xB3, 0xE4, 0x4A, 0xF7, 0x6C, 0x3B, 0xF4, + 0x6A, 0x56, 0x2E, 0xDE, 0x1F, 0x9D, 0xB8, 0xD3, 0x05, 0x88, 0x92, 0xA6, 0xCE, 0x1E, 0xBE, 0xDF, + 0x1D, 0x99, 0xB0, 0xE2, 0x46, 0xEF, 0x5C, 0x07, 0x11, 0x5D, 0x98, 0x0B, 0x9D, 0x94, 0x97, 0xEE, + 0x4E, 0x45, 0x33, 0x6B, 0x44, 0xC7, 0x29, 0x56, 0x27, 0x30, 0xC6, 0xA7, 0xD5, 0xF2, 0x56, 0xDF, + 0xB4, 0x38, 0x62, 0xCB, 0xA0, 0xB6, 0xE3, 0x0F, 0x84, 0x06, 0x24, 0x05, 0x65, 0x6F, 0x76, 0x89, + 0xB5, 0x77, 0x41, 0x27, 0x82, 0x66, 0x65, 0x82, 0xCC, 0xD5, 0xE6, 0x20, 0xD5, 0x27, 0x17, 0xC5, + 0xF8, 0x03, 0x23, 0x7C, 0x5F, 0x64, 0xA5, 0x1D, 0xC1, 0xD6, 0x36, 0xCB, 0x4C, 0xD4, 0xDB, 0x66, + 0xD7, 0x8B, 0xB1, 0x99, 0x7E, 0x6F, 0x4C, 0x36, 0x40, 0x06, 0xD6, 0xEB, 0xD7, 0xA2, 0xE4, 0xF4, + 0x95, 0x51, 0x5A, 0x54, 0x96, 0xD5, 0x53, 0x44, 0xD7, 0x8C, 0xE0, 0xB9, 0x40, 0x68, 0xD2, 0x18, + 0xE9, 0xDD, 0x9A, 0x23, 0x92, 0x48, 0xEE, 0x7F, 0x43, 0xAF, 0xEA, 0x77, 0x38, 0x84, 0x8C, 0x0A, + 0x72, 0xAF, 0x69, 0xF8, 0xDD, 0xF1, 0x24, 0x83, 0xA3, 0xF8, 0x4A, 0xBF, 0xF5, 0x94, 0x13, 0xDB, + 0xBB, 0xD8, 0xB4, 0xB3, 0xA0, 0xFB, 0x45, 0x50, 0x60, 0x30, 0x59, 0x12, 0x31, 0x71, 0xA2, 0xD3, + 0x13, 0xE7, 0xFA, 0xE7, 0xCE, 0x0F, 0x63, 0x15, 0x0B, 0x6B, 0x94, 0xBB, 0x37, 0x83, 0x26, 0x05, + 0x9D, 0xFB, 0x46, 0x92, 0xFC, 0x0A, 0x15, 0xD1, 0x0D, 0x73, 0x92, 0xD6, 0x8C, 0x1B, 0x8C, 0xB8, + 0x55, 0x8A, 0xCE, 0xBD, 0xFE, 0x8E, 0xFC, 0xED, 0x09, 0x12, 0x83, 0x91, 0x82, 0x51, 0x31, 0x23, + 0xFB, 0xB4, 0x0C, 0x76, 0xAD, 0x7C, 0xD9, 0xB4, 0x4B, 0xB2, 0x67, 0x14, 0x09, 0x9C, 0x7F, 0x0C, + 0x18, 0xBA, 0x3B, 0xD6, 0x8E, 0x14, 0x2A, 0xE4, 0x1B, 0x52, 0x9F, 0x2B, 0x7D, 0xE1, 0xFB, 0x6A, + 0x33, 0x02, 0xFA, 0xAC, 0x5A, 0xF2, 0x3E, 0x88, 0x7E, 0xAE, 0xD1, 0xF3, 0x78, 0xE8, 0x05, 0xD1, + 0xE3, 0xDC, 0x21, 0xF6, 0xE1, 0x9A, 0xBD, 0x17, 0x0E, 0xD9, 0x46, 0x9B, 0x88, 0x03, 0xEA, 0xF6, + 0x66, 0xBE, 0x0E, 0x1B, 0x50, 0x49, 0x96, 0x40, 0x97, 0xF1, 0xF1, 0xE4, 0x80, 0xA6, 0x6E, 0xE8, + 0x77, 0x34, 0xBF, 0x29, 0x40, 0x44, 0xC2, 0xFF, 0x4E, 0x98, 0xD3, 0x9C, 0xA3, 0x32, 0x2B, 0x76, + 0x51, 0x04, 0x09, 0xE7, 0xA9, 0xD1, 0xA6, 0x32, 0xB1, 0x23, 0x53, 0xE2, 0x47, 0xAB, 0xD6, 0xF5, + 0x69, 0x5C, 0x3E, 0x5F, 0xFA, 0xAE, 0x45, 0x20, 0xE5, 0xD2, 0x44, 0xFF, 0x39, 0x32, 0x6D, 0xFD, + 0x27, 0x57, 0x5C, 0xFD, 0xF0, 0xDE, 0xC1, 0xB5, 0x99, 0xE5, 0xF5, 0x1C, 0x77, 0x01, 0x75, 0xC5, + 0x6D, 0x58, 0x92, 0xF2, 0xB2, 0x47, 0x00, 0x01, 0x26, 0x96, 0x7A, 0x30, 0xFF, 0xB7, 0xF0, 0xEF, + 0x77, 0xC1, 0x8A, 0x5D, 0xDC, 0xC0, 0xD1, 0x29, 0x30, 0x1E, 0x77, 0x38, 0x7A, 0x94, 0xF1, 0xB8, + 0x7A, 0x7E, 0xEF, 0xA4, 0xD1, 0xAC, 0x31, 0x4A, 0xF2, 0x5D, 0x64, 0x3D, 0xB2, 0xE2, 0xF0, 0x08, + 0x99, 0xFC, 0x70, 0xEE, 0x24, 0xA7, 0x7E, 0xEE, 0x1E, 0x20, 0x69, 0x7D, 0x44, 0xBF, 0x87, 0x42, + 0xDF, 0x88, 0x3B, 0x0C, 0xDA, 0x42, 0xC9, 0x04, 0xF9, 0x45, 0x50, 0xFC, 0x83, 0x8F, 0x11, 0x6A, + 0x72, 0xBC, 0x99, 0x95, 0xF0, 0xAC, 0x3D, 0xA7, 0x3B, 0xCD, 0x1C, 0xE2, 0x88, 0x79, 0x37, 0x11, + 0x5F, 0x39, 0x89, 0x95, 0x0A, 0x16, 0x84, 0x7A, 0xF6, 0x8A, 0xA4, 0x28, 0xE4, 0xED, 0x83, 0x80, + 0x3B, 0xB1, 0x23, 0xA5, 0x03, 0x10, 0xF4, 0x66, 0xEA, 0xBB, 0x0C, 0x0F, 0xC5, 0xEC, 0x6C, 0x69, + 0xC5, 0xD3, 0x24, 0xAB, 0xD4, 0x2A, 0xB7, 0x99, 0x88, 0x76, 0x08, 0xA0, 0xA8, 0x95, 0x7C, 0xD8, + 0x38, 0x6D, 0xCD, 0x59, 0x02, 0x51, 0x4B, 0xF1, 0xB5, 0x2B, 0x50, 0xE3, 0xB6, 0xBD, 0xD0, 0x72, + 0xCF, 0x9E, 0xFD, 0x6E, 0xBB, 0x44, 0xC8, 0x24, 0x8A, 0x77, 0x18, 0x8A, 0x13, 0x06, 0xEF, 0x97, + 0x7D, 0xFA, 0x81, 0xF0, 0x31, 0xE6, 0xFA, 0x77, 0xED, 0x31, 0x06, 0x31, 0x5B, 0x54, 0x8A, 0x9F, + 0x30, 0x68, 0xDB, 0xE2, 0x40, 0xF8, 0x4E, 0x73, 0xFA, 0xAB, 0x74, 0x8B, 0x10, 0x58, 0x13, 0xDC, + 0xD2, 0xE6, 0x78, 0xD1, 0x32, 0x2E, 0x8A, 0x9F, 0x2C, 0x58, 0x06, 0x48, 0x27, 0xC5, 0xA9, 0x5E, + 0x81, 0x47, 0x89, 0x46, 0x21, 0x91, 0x03, 0x70, 0xA4, 0x3E, 0x88, 0x9C, 0xDA, 0x33, 0x0A, 0xCE, + 0xBC, 0x8B, 0x8E, 0xCF, 0x9F, 0xD3, 0x71, 0x80, 0x43, 0xCF, 0x6B, 0xA9, 0x51, 0x83, 0x76, 0x30, + 0x82, 0xC5, 0x6A, 0x85, 0x39, 0x11, 0x50, 0x1A, 0x82, 0xDC, 0x1E, 0x1C, 0xD5, 0x7D, 0xA9, 0x71, + 0x99, 0x33, 0x47, 0x19, 0x97, 0xB3, 0x5A, 0xB1, 0xDF, 0xED, 0xA4, 0xF2, 0xE6, 0x26, 0x84, 0xA2, + 0x28, 0x9A, 0x9E, 0xDF, 0xA6, 0x6A, 0xF4, 0xD6, 0xFC, 0x2E, 0x5B, 0x9D, 0x1A, 0x2A, 0x27, 0x68, + 0xFB, 0xC1, 0x83, 0x21, 0x4B, 0x90, 0xE0, 0x36, 0xDD, 0x5B, 0x31, 0x42, 0x55, 0xA0, 0x13, 0xF7, + 0xD0, 0x89, 0x53, 0x71, 0x99, 0x57, 0x09, 0x29, 0xC5, 0xF3, 0x21, 0xF8, 0x37, 0x2F, 0x40, 0xF3, + 0xD4, 0xAF, 0x16, 0x08, 0x36, 0x02, 0xFC, 0x77, 0xC5, 0x8B, 0x04, 0x90, 0x56, 0xB9, 0xC9, 0x67, + 0x9A, 0x99, 0xE8, 0x00, 0xD3, 0x86, 0xFF, 0x97, 0x2D, 0x08, 0xE9, 0xB7, 0xB3, 0x91, 0xBC, 0xDF, + 0x45, 0xC6, 0xED, 0x0F, 0x8C, 0x4C, 0x1E, 0xE6, 0x5B, 0x6E, 0x38, 0x30, 0xE4, 0xAA, 0xE3, 0x95, + 0xDE, 0xB9, 0xE4, 0x9A, 0xF5, 0xB2, 0x55, 0x9A, 0x87, 0x9B, 0xF6, 0x6A, 0xB2, 0xF2, 0x77, 0x9A, + 0x31, 0xF4, 0x7A, 0x31, 0xD1, 0x1D, 0x04, 0xC0, 0x7C, 0x32, 0xA2, 0x9E, 0x9A, 0xF5, 0x62, 0xF8, + 0x27, 0x8D, 0xBF, 0x51, 0xFF, 0xD3, 0xDF, 0x64, 0x37, 0x3F, 0x2A, 0x6F, 0x76, 0x3A, 0x7D, 0x77, + 0x06, 0x9E, 0x77, 0x7F, 0x5E, 0xEB, 0x32, 0x51, 0xF9, 0x16, 0x66, 0x9A, 0x09, 0xF3, 0xB0, 0x08, + 0xA4, 0x70, 0x96, 0x46, 0x30, 0xFF, 0xDA, 0x4F, 0xE9, 0x1B, 0xED, 0x8D, 0xF8, 0x74, 0x1F, 0x31, + 0x92, 0xB3, 0x73, 0x17, 0x36, 0xDB, 0x91, 0x30, 0xD6, 0x88, 0x55, 0x6B, 0x34, 0x77, 0x87, 0x7A, + 0xE7, 0xEE, 0x06, 0xC6, 0x1C, 0x8C, 0x19, 0x0C, 0x48, 0x46, 0x23, 0x5E, 0x9C, 0x07, 0x5C, 0xBF, + 0xB4, 0x7E, 0xD6, 0x4F, 0x74, 0x9C, 0xE2, 0xC5, 0x50, 0x8B, 0xC5, 0x8B, 0x15, 0x90, 0x60, 0x62, + 0x57, 0x29, 0xD0, 0x13, 0x43, 0xA1, 0x80, 0x88, 0x91, 0x00, 0x44, 0xC7, 0x4D, 0x19, 0x86, 0xCC, + 0x2F, 0x2A, 0x75, 0x5A, 0xFC, 0xEB, 0x97, 0x2A, 0x70, 0xE3, 0x78, 0xD8, 0x91, 0xB0, 0x4F, 0x99, + 0x07, 0xA3, 0x95, 0xEA, 0x24, 0x21, 0xD5, 0xDE, 0x51, 0x20, 0x93, 0x27, 0x0A, 0x30, 0x73, 0xA8, + 0xFF, 0x8A, 0x97, 0xE9, 0xA7, 0x6A, 0x8E, 0x0D, 0xE8, 0xF0, 0xDF, 0xEC, 0xEA, 0xB4, 0x6C, 0x1D, + 0x39, 0x2A, 0x62, 0x2D, 0x3D, 0x5A, 0x8B, 0x65, 0xF8, 0x90, 0x05, 0x2E, 0x7E, 0x91, 0x2C, 0x78, + 0xEF, 0x8E, 0x7A, 0xC1, 0x2F, 0xAC, 0x78, 0xEE, 0xAF, 0x28, 0x45, 0x06, 0x4C, 0x26, 0xAF, 0x3B, + 0xA2, 0xDB, 0xA3, 0x93, 0x06, 0xB5, 0x3C, 0xA5, 0xD8, 0xEE, 0x8F, 0xAF, 0x25, 0xCC, 0x3F, 0x85, + 0x68, 0x48, 0xA9, 0x62, 0xCC, 0x97, 0x8F, 0x7F, 0x2A, 0xEA, 0xE0, 0x15, 0x0A, 0xAD, 0x62, 0x07, + 0xBD, 0x45, 0xF8, 0x41, 0xD8, 0x36, 0xCB, 0x4C, 0xDB, 0x6E, 0xE6, 0x3A, 0xE7, 0xDA, 0x15, 0xE9, + 0x29, 0x1E, 0x12, 0x10, 0xA0, 0x14, 0x2C, 0x0E, 0x3D, 0xF4, 0xBF, 0x39, 0x41, 0x92, 0x75, 0x0B, + 0x25, 0x7B, 0xA3, 0xCE, 0x39, 0x9C, 0x15, 0x64, 0xC8, 0xFA, 0x3D, 0xEF, 0x73, 0x27, 0xFE, 0x26, + 0x2E, 0xCE, 0xDA, 0x6E, 0xFD, 0x71, 0x8E, 0xDD, 0xFE, 0x76, 0xEE, 0xDC, 0x12, 0x5C, 0x02, 0xC5, + 0x3A, 0x4E, 0x4E, 0x4F, 0xBF, 0xCA, 0x40, 0x15, 0xC7, 0x6E, 0x8D, 0x41, 0xF1, 0x10, 0xE0, 0x4F, + 0x7E, 0x97, 0x7F, 0x1C, 0xAE, 0x47, 0x8E, 0x6B, 0xB1, 0x25, 0x31, 0xB0, 0x73, 0xC7, 0x1B, 0x97, + 0x79, 0xF9, 0x80, 0xD3, 0x66, 0x22, 0x30, 0x07, 0x74, 0x1E, 0xE4, 0xD0, 0x80, 0x21, 0xD6, 0xEE, + 0x6B, 0x6C, 0x4F, 0xBF, 0xF5, 0xB7, 0xD9, 0x09, 0x87, 0x2F, 0xA9, 0x14, 0xBE, 0x27, 0xD9, 0x72, + 0x50, 0x01, 0xD4, 0x13, 0x73, 0xA6, 0xA7, 0x51, 0x02, 0x75, 0x25, 0xE1, 0xB3, 0x45, 0x34, 0x7D, + 0xA8, 0x8E, 0xEB, 0xF3, 0x16, 0x49, 0xCB, 0x4F, 0x8C, 0xA1, 0xB9, 0x36, 0x85, 0x39, 0x75, 0x5D, + 0x08, 0x00, 0xAE, 0xEB, 0xF6, 0xEA, 0xD7, 0x13, 0x3A, 0x21, 0x5A, 0x5F, 0x30, 0x84, 0x52, 0x26, + 0x95, 0xC9, 0x14, 0xF2, 0x57, 0x55, 0x6B, 0xB1, 0x10, 0xC2, 0xE1, 0xBD, 0x3B, 0x51, 0xC0, 0xB7, + 0x55, 0x4C, 0x71, 0x12, 0x26, 0xC7, 0x0D, 0xF9, 0x51, 0xA4, 0x38, 0x02, 0x05, 0x7F, 0xB8, 0xF1, + 0x72, 0x4B, 0xBF, 0x71, 0x89, 0x14, 0xF3, 0x77, 0x38, 0xD9, 0x71, 0x24, 0xF3, 0x00, 0x11, 0xA1, + 0xD8, 0xD4, 0x69, 0x27, 0x08, 0x37, 0x35, 0xC9, 0x11, 0x9D, 0x90, 0x1C, 0x0E, 0xE7, 0x1C, 0xFF, + 0x2D, 0x1E, 0xE8, 0x92, 0xE1, 0x18, 0x10, 0x95, 0x7C, 0xE0, 0x80, 0xF4, 0x96, 0x43, 0x21, 0xF9, + 0x75, 0x21, 0x64, 0x38, 0xDD, 0x9F, 0x1E, 0x95, 0x16, 0xDA, 0x56, 0x1D, 0x4F, 0x9A, 0x53, 0xB2, + 0xE2, 0xE4, 0x18, 0xCB, 0x6B, 0x1A, 0x65, 0xEB, 0x56, 0xC6, 0x3B, 0xE5, 0xFE, 0xD8, 0x26, 0x3F, + 0x3A, 0x84, 0x59, 0x72, 0x66, 0xA2, 0xF3, 0x75, 0xFF, 0xFB, 0x60, 0xB3, 0x22, 0xAD, 0x3F, 0x2D, + 0x6B, 0xF9, 0xEB, 0xEA, 0x05, 0x7C, 0xD8, 0x8F, 0x6D, 0x2C, 0x98, 0x9E, 0x2B, 0x93, 0xF1, 0x5E, + 0x46, 0xF0, 0x87, 0x49, 0x29, 0x73, 0x68, 0xD7, 0x7F, 0xF9, 0xF0, 0xE5, 0x7D, 0xDB, 0x1D, 0x75, + 0x19, 0xF3, 0xC4, 0x58, 0x9B, 0x17, 0x88, 0xA8, 0x92, 0xE0, 0xBE, 0xBD, 0x8B, 0x1D, 0x8D, 0x9F, + 0x56, 0x76, 0xAD, 0xAF, 0x29, 0xE2, 0xD9, 0xD5, 0x52, 0xF6, 0xB5, 0x56, 0x35, 0x57, 0x3A, 0xC8, + 0xE1, 0x56, 0x43, 0x19, 0x94, 0xD3, 0x04, 0x9B, 0x6D, 0x35, 0xD8, 0x0B, 0x5F, 0x4D, 0x19, 0x8E, + 0xEC, 0xFA, 0x64, 0x91, 0x0A, 0x72, 0x20, 0x2B, 0xBC, 0x1A, 0x4A, 0xFE, 0x8B, 0xFD, 0xBB, 0xED, + 0x1B, 0x23, 0xEA, 0xAD, 0x72, 0x82, 0xA1, 0x29, 0x99, 0x71, 0xBD, 0xF0, 0x95, 0xC1, 0x03, 0xDD, + 0x7B, 0xC2, 0xB2, 0x3C, 0x28, 0x54, 0xD3, 0x68, 0xA4, 0x72, 0xC8, 0x66, 0x96, 0xE0, 0xD1, 0xD8, + 0x7F, 0xF8, 0xD1, 0x26, 0x2B, 0xF7, 0xAD, 0xBA, 0x55, 0xCA, 0x15, 0xB9, 0x32, 0xC3, 0xE5, 0x88, + 0x97, 0x8E, 0x5C, 0xFB, 0x92, 0x25, 0x8B, 0xBF, 0xA2, 0x45, 0x55, 0x7A, 0xA7, 0x6F, 0x8B, 0x57, + 0x5B, 0xCF, 0x0E, 0xCB, 0x1D, 0xFB, 0x20, 0x82, 0x77, 0xA8, 0x8C, 0xCC, 0x16, 0xCE, 0x1D, 0xFA, + 0xDE, 0xCC, 0x0B, 0x62, 0xFE, 0xCC, 0xE1, 0xB7, 0xF0, 0xC3, 0x81, 0x64, 0x73, 0x40, 0xA0, 0xC2, + 0x4D, 0x89, 0x11, 0x75, 0x33, 0x55, 0x33, 0x8D, 0xE8, 0x4A, 0xFD, 0xEA, 0x6E, 0x30, 0x0B, 0xD7, + 0x31, 0x2C, 0xDE, 0x47, 0xE3, 0xBF, 0xF8, 0x55, 0x42, 0xE2, 0x7F, 0x59, 0xE5, 0x17, 0xEF, 0x99, + 0x34, 0x69, 0x91, 0xB1, 0x23, 0x8E, 0x20, 0x87, 0x2D, 0xA8, 0xFE, 0xD5, 0x8A, 0xF3, 0x84, 0x3A, + 0xF0, 0x37, 0xE4, 0x09, 0x00, 0x54, 0xEE, 0x67, 0x49, 0x93, 0xE4, 0x81, 0x70, 0xE3, 0x90, 0x4D, + 0xEF, 0xFE, 0x41, 0xB7, 0x99, 0x7B, 0xC1, 0x83, 0xBA, 0x62, 0x12, 0x6F, 0x7D, 0xDE, 0x6B, 0xAF, + 0xDA, 0x16, 0xF9, 0x55, 0x51, 0xEE, 0xA6, 0x0C, 0x2B, 0x02, 0xA3, 0xFD, 0x8D, 0xFB, 0x30, 0x17, + 0xE4, 0x6F, 0xDF, 0x36, 0x71, 0xC4, 0xCA, 0x87, 0x25, 0x48, 0xB0, 0x47, 0xEC, 0xEA, 0xB4, 0xBF, + 0xA5, 0x4D, 0x9B, 0x9F, 0x02, 0x93, 0xC4, 0xE3, 0xE4, 0xE8, 0x42, 0x2D, 0x68, 0x81, 0x15, 0x0A, + 0xEB, 0x84, 0x5B, 0xD6, 0xA8, 0x74, 0xFB, 0x7D, 0x1D, 0xCB, 0x2C, 0xDA, 0x46, 0x2A, 0x76, 0x62, + 0xCE, 0xBC, 0x5C, 0x9E, 0x8B, 0xE7, 0xCF, 0xBE, 0x78, 0xF5, 0x7C, 0xEB, 0xB3, 0x3A, 0x9C, 0xAA, + 0x6F, 0xCC, 0x72, 0xD1, 0x59, 0xF2, 0x11, 0x23, 0xD6, 0x3F, 0x48, 0xD1, 0xB7, 0xCE, 0xB0, 0xBF, + 0xCB, 0xEA, 0x80, 0xDE, 0x57, 0xD4, 0x5E, 0x97, 0x2F, 0x75, 0xD1, 0x50, 0x8E, 0x80, 0x2C, 0x66, + 0x79, 0xBF, 0x72, 0x4B, 0xBD, 0x8A, 0x81, 0x6C, 0xD3, 0xE1, 0x01, 0xDC, 0xD2, 0x15, 0x26, 0xC5, + 0x36, 0xDA, 0x2C, 0x1A, 0xC0, 0x27, 0x94, 0xED, 0xB7, 0x9B, 0x85, 0x0B, 0x5E, 0x80, 0x97, 0xC5, + 0xEC, 0x4F, 0xEC, 0x88, 0x5D, 0x50, 0x07, 0x35, 0x47, 0xDC, 0x0B, 0x3B, 0x3D, 0xDD, 0x60, 0xAF, + 0xA8, 0x5D, 0x81, 0x38, 0x24, 0x25, 0x5D, 0x5C, 0x15, 0xD1, 0xDE, 0xB3, 0xAB, 0xEC, 0x05, 0x69, + 0xEF, 0x83, 0xED, 0x57, 0x54, 0xB8, 0x64, 0x64, 0x11, 0x16, 0x32, 0x69, 0xDA, 0x9F, 0x2D, 0x7F, + 0x36, 0xBB, 0x44, 0x5A, 0x34, 0xE8, 0x7F, 0xBF, 0x03, 0xEB, 0x00, 0x7F, 0x59, 0x68, 0x22, 0x79, + 0xCF, 0x73, 0x6C, 0x2C, 0x29, 0xA7, 0xA1, 0x5F, 0x38, 0xA1, 0x1D, 0xF0, 0x20, 0x53, 0xE0, 0x1A, + 0x63, 0x14, 0x58, 0x71, 0x10, 0xAA, 0x08, 0x0C, 0x3E, 0x16, 0x1A, 0x60, 0x22, 0x82, 0x7F, 0xBA, + 0xA4, 0x43, 0xA0, 0xD0, 0xAC, 0x1B, 0xD5, 0x6B, 0x64, 0xB5, 0x14, 0x93, 0x31, 0x9E, 0x53, 0x50, + 0xD0, 0x57, 0x66, 0xEE, 0x5A, 0x4F, 0xFB, 0x03, 0x2A, 0x69, 0x58, 0x76, 0xF1, 0x83, 0xF7, 0x4E, + 0xBA, 0x8C, 0x42, 0x06, 0x60, 0x5D, 0x6D, 0xCE, 0x60, 0x88, 0xAE, 0xA4, 0xC3, 0xF1, 0x03, 0xA5, + 0x4B, 0x98, 0xA1, 0xFF, 0x67, 0xE1, 0xAC, 0xA2, 0xB8, 0x62, 0xD7, 0x6F, 0xA0, 0x31, 0xB4, 0xD2, + 0x77, 0xAF, 0x21, 0x10, 0x06, 0xC6, 0x9A, 0xFF, 0x1D, 0x09, 0x17, 0x0E, 0x5F, 0xF1, 0xAA, 0x54, + 0x34, 0x4B, 0x45, 0x8A, 0x87, 0x63, 0xA6, 0xDC, 0xF9, 0x24, 0x30, 0x67, 0xC6, 0xB2, 0xD6, 0x61, + 0x33, 0x69, 0xEE, 0x50, 0x61, 0x57, 0x28, 0xE7, 0x7E, 0xEE, 0xEC, 0x3A, 0x5A, 0x73, 0x4E, 0xA8, + 0x8D, 0xE4, 0x18, 0xEA, 0xEC, 0x41, 0x64, 0xC8, 0xE2, 0xE8, 0x66, 0xB6, 0x2D, 0xB6, 0xFB, 0x6A, + 0x6C, 0x16, 0xB3, 0xDD, 0x46, 0x43, 0xB9, 0x73, 0x00, 0x6A, 0x71, 0xED, 0x4E, 0x9D, 0x25, 0x1A, + 0xC3, 0x3C, 0x4A, 0x95, 0x15, 0x99, 0x35, 0x81, 0x14, 0x02, 0xD6, 0x98, 0x9B, 0xEC, 0xD8, 0x23, + 0x3B, 0x84, 0x29, 0xAF, 0x0C, 0x99, 0x83, 0xA6, 0x9A, 0x34, 0x4F, 0xFA, 0xE8, 0xD0, 0x3C, 0x4B, + 0xD0, 0xFB, 0xB6, 0x68, 0xB8, 0x9E, 0x8F, 0xCD, 0xF7, 0x60, 0x2D, 0x7A, 0x22, 0xE5, 0x7D, 0xAB, + 0x65, 0x1B, 0x95, 0xA7, 0xA8, 0x7F, 0xB6, 0x77, 0x47, 0x7B, 0x5F, 0x8B, 0x12, 0x72, 0xD0, 0xD4, + 0x91, 0xEF, 0xDE, 0x19, 0x50, 0x3C, 0xA7, 0x8B, 0xC4, 0xA9, 0xB3, 0x23, 0xCB, 0x76, 0xE6, 0x81, + 0xF0, 0xC1, 0x04, 0x8F, 0xA3, 0xB8, 0x54, 0x5B, 0x97, 0xAC, 0x19, 0xFF, 0x3F, 0x55, 0x27, 0x2F, + 0xE0, 0x1D, 0x42, 0x9B, 0x57, 0xFC, 0x4B, 0x4E, 0x0F, 0xCE, 0x98, 0xA9, 0x43, 0x57, 0x03, 0xBD, + 0xE7, 0xC8, 0x94, 0xDF, 0x6E, 0x36, 0x73, 0x32, 0xB4, 0xEF, 0x2E, 0x85, 0x7A, 0x6E, 0xFC, 0x6C, + 0x18, 0x82, 0x75, 0x35, 0x90, 0x07, 0xF3, 0xE4, 0x9F, 0x3E, 0xDC, 0x68, 0xF3, 0xB5, 0xF3, 0x19, + 0x80, 0x92, 0x06, 0x99, 0xA2, 0xE8, 0x6F, 0xFF, 0x2E, 0x7F, 0xAE, 0x42, 0xA4, 0x5F, 0xFB, 0xD4, + 0x0E, 0x81, 0x2B, 0xC3, 0x04, 0xFF, 0x2B, 0xB3, 0x74, 0x4E, 0x36, 0x5B, 0x9C, 0x15, 0x00, 0xC6, + 0x47, 0x2B, 0xE8, 0x8B, 0x3D, 0xF1, 0x9C, 0x03, 0x9A, 0x58, 0x7F, 0x9B, 0x9C, 0xBF, 0x85, 0x49, + 0x79, 0x35, 0x2E, 0x56, 0x7B, 0x41, 0x14, 0x39, 0x47, 0x83, 0x26, 0xAA, 0x07, 0x89, 0x98, 0x11, + 0x1B, 0x86, 0xE7, 0x73, 0x7A, 0xD8, 0x7D, 0x78, 0x61, 0x53, 0xE9, 0x79, 0xF5, 0x36, 0x8D, 0x44, + 0x92, 0x84, 0xF9, 0x13, 0x50, 0x58, 0x3B, 0xA4, 0x6A, 0x36, 0x65, 0x49, 0x8E, 0x3C, 0x0E, 0xF1, + 0x6F, 0xD2, 0x84, 0xC4, 0x7E, 0x8E, 0x3F, 0x39, 0xAE, 0x7C, 0x84, 0xF1, 0x63, 0x37, 0x8E, 0x3C, + 0xCC, 0x3E, 0x44, 0x81, 0x45, 0xF1, 0x4B, 0xB9, 0xED, 0x6B, 0x36, 0x5D, 0xBB, 0x20, 0x60, 0x1A, + 0x0F, 0xA3, 0xAA, 0x55, 0x77, 0x3A, 0xA9, 0xAE, 0x37, 0x4D, 0xBA, 0xB8, 0x86, 0x6B, 0xBC, 0x08, + 0x50, 0xF6, 0xCC, 0xA4, 0xBD, 0x1D, 0x40, 0x72, 0xA5, 0x86, 0xFA, 0xE2, 0x10, 0xAE, 0x3D, 0x58, + 0x4B, 0x97, 0xF3, 0x43, 0x74, 0xA9, 0x9E, 0xEB, 0x21, 0xB7, 0x01, 0xA4, 0x86, 0x93, 0x97, 0xEE, + 0x2F, 0x4F, 0x3B, 0x86, 0xA1, 0x41, 0x6F, 0x41, 0x26, 0x90, 0x78, 0x5C, 0x7F, 0x30, 0x38, 0x4B, + 0x3F, 0xAA, 0xEC, 0xED, 0x5C, 0x6F, 0x0E, 0xAD, 0x43, 0x87, 0xFD, 0x93, 0x35, 0xE6, 0x01, 0xEF, + 0x41, 0x26, 0x90, 0x99, 0x9E, 0xFB, 0x19, 0x5B, 0xAD, 0xD2, 0x91, 0x8A, 0xE0, 0x46, 0xAF, 0x65, + 0xFA, 0x4F, 0x84, 0xC1, 0xA1, 0x2D, 0xCF, 0x45, 0x8B, 0xD3, 0x85, 0x50, 0x55, 0x7C, 0xF9, 0x67, + 0x88, 0xD4, 0x4E, 0xE9, 0xD7, 0x6B, 0x61, 0x54, 0xA1, 0xA4, 0xA6, 0xA2, 0xC2, 0xBF, 0x30, 0x9C, + 0x40, 0x9F, 0x5F, 0xD7, 0x69, 0x2B, 0x24, 0x82, 0x5E, 0xD9, 0xD6, 0xA7, 0x12, 0x54, 0x1A, 0xF7, + 0x55, 0x9F, 0x76, 0x50, 0xA9, 0x95, 0x84, 0xE6, 0x6B, 0x6D, 0xB5, 0x96, 0x54, 0xD6, 0xCD, 0xB3, + 0xA1, 0x9B, 0x46, 0xA7, 0x94, 0x4D, 0xC4, 0x94, 0xB4, 0x98, 0xE3, 0xE1, 0xE2, 0x34, 0xD5, 0x33, + 0x16, 0x07, 0x54, 0xCD, 0xB7, 0x77, 0x53, 0xDB, 0x4F, 0x4D, 0x46, 0x9D, 0xE9, 0xD4, 0x9C, 0x8A, + 0x36, 0xB6, 0xB8, 0x38, 0x26, 0x6C, 0x0E, 0xFF, 0x9C, 0x1B, 0x43, 0x8B, 0x80, 0xCC, 0xB9, 0x3D, + 0xDA, 0xC7, 0xF1, 0x8A, 0xF2, 0x6D, 0xB8, 0xD7, 0x74, 0x2F, 0x7E, 0x1E, 0xB7, 0xD3, 0x4A, 0xB4, + 0xAC, 0xFC, 0x79, 0x48, 0x6C, 0xBC, 0x96, 0xB6, 0x94, 0x46, 0x57, 0x2D, 0xB0, 0xA3, 0xFC, 0x1E, + 0xB9, 0x52, 0x60, 0x85, 0x2D, 0x41, 0xD0, 0x43, 0x01, 0x1E, 0x1C, 0xD5, 0x7D, 0xFC, 0xF3, 0x96, + 0x0D, 0xC7, 0xCB, 0x2A, 0x29, 0x9A, 0x93, 0xDD, 0x88, 0x2D, 0x37, 0x5D, 0xAA, 0xFB, 0x49, 0x68, + 0xA0, 0x9C, 0x50, 0x86, 0x7F, 0x68, 0x56, 0x57, 0xF9, 0x79, 0x18, 0x39, 0xD4, 0xE0, 0x01, 0x84, + 0x33, 0x61, 0xCA, 0xA5, 0xD2, 0xD6, 0xE4, 0xC9, 0x8A, 0x4A, 0x23, 0x44, 0x4E, 0xBC, 0xF0, 0xDC, + 0x24, 0xA1, 0xA0, 0xC4, 0xE2, 0x07, 0x3C, 0x10, 0xC4, 0xB5, 0x25, 0x4B, 0x65, 0x63, 0xF4, 0x80, + 0xE7, 0xCF, 0x61, 0xB1, 0x71, 0x82, 0x21, 0x87, 0x2C, 0xF5, 0x91, 0x00, 0x32, 0x0C, 0xEC, 0xA9, + 0xB5, 0x9A, 0x74, 0x85, 0xE3, 0x36, 0x8F, 0x76, 0x4F, 0x9C, 0x6D, 0xCE, 0xBC, 0xAD, 0x0A, 0x4B, + 0xED, 0x76, 0x04, 0xCB, 0xC3, 0xB9, 0x33, 0x9E, 0x01, 0x93, 0x96, 0x69, 0x7D, 0xC5, 0xA2, 0x45, + 0x79, 0x9B, 0x04, 0x5C, 0x84, 0x09, 0xED, 0x88, 0x43, 0xC7, 0xAB, 0x93, 0x14, 0x26, 0xA1, 0x40, + 0xB5, 0xCE, 0x4E, 0xBF, 0x2A, 0x42, 0x85, 0x3E, 0x2C, 0x3B, 0x54, 0xE8, 0x12, 0x1F, 0x0E, 0x97, + 0x59, 0xB2, 0x27, 0x89, 0xFA, 0xF2, 0xDF, 0x8E, 0x68, 0x59, 0xDC, 0x06, 0xBC, 0xB6, 0x85, 0x0D, + 0x06, 0x22, 0xEC, 0xB1, 0xCB, 0xE5, 0x04, 0xE6, 0x3D, 0xB3, 0xB0, 0x41, 0x73, 0x08, 0x3F, 0x3C, + 0x58, 0x86, 0x63, 0xEB, 0x50, 0xEE, 0x1D, 0x2C, 0x37, 0x74, 0xA9, 0xD3, 0x18, 0xA3, 0x47, 0x6E, + 0x93, 0x54, 0xAD, 0x0A, 0x5D, 0xB8, 0x2A, 0x55, 0x5D, 0x78, 0xF6, 0xEE, 0xBE, 0x8E, 0x3C, 0x76, + 0x69, 0xB9, 0x40, 0xC2, 0x34, 0xEC, 0x2A, 0xB9, 0xED, 0x7E, 0x20, 0xE4, 0x8D, 0x00, 0x38, 0xC7, + 0xE6, 0x8F, 0x44, 0xA8, 0x86, 0xCE, 0xEB, 0x2A, 0xE9, 0x90, 0xF1, 0x4C, 0xDF, 0x32, 0xFB, 0x73, + 0x1B, 0x6D, 0x92, 0x1E, 0x95, 0xFE, 0xB4, 0xDB, 0x65, 0xDF, 0x4D, 0x23, 0x54, 0x89, 0x48, 0xBF, + 0x4A, 0x2E, 0x70, 0xD6, 0xD7, 0x62, 0xB4, 0x33, 0x29, 0xB1, 0x3A, 0x33, 0x4C, 0x23, 0x6D, 0xA6, + 0x76, 0xA5, 0x21, 0x63, 0x48, 0xE6, 0x90, 0x5D, 0xED, 0x90, 0x95, 0x0B, 0x7A, 0x84, 0xBE, 0xB8, + 0x0D, 0x5E, 0x63, 0x0C, 0x62, 0x26, 0x4C, 0x14, 0x5A, 0xB3, 0xAC, 0x23, 0xA4, 0x74, 0xA7, 0x6F, + 0x33, 0x30, 0x05, 0x60, 0x01, 0x42, 0xA0, 0x28, 0xB7, 0xEE, 0x19, 0x38, 0xF1, 0x64, 0x80, 0x82, + 0x43, 0xE1, 0x41, 0x27, 0x1F, 0x1F, 0x90, 0x54, 0x7A, 0xD5, 0x23, 0x2E, 0xD1, 0x3D, 0xCB, 0x28, + 0xBA, 0x58, 0x7F, 0xDC, 0x7C, 0x91, 0x24, 0xE9, 0x28, 0x51, 0x83, 0x6E, 0xC5, 0x56, 0x21, 0x42, + 0xED, 0xA0, 0x56, 0x22, 0xA1, 0x40, 0x80, 0x6B, 0xA8, 0xF7, 0x94, 0xCA, 0x13, 0x6B, 0x0C, 0x39, + 0xD9, 0xFD, 0xE9, 0xF3, 0x6F, 0xA6, 0x9E, 0xFC, 0x70, 0x8A, 0xB3, 0xBC, 0x59, 0x3C, 0x1E, 0x1D, + 0x6C, 0xF9, 0x7C, 0xAF, 0xF9, 0x88, 0x71, 0x95, 0xEB, 0x57, 0x00, 0xBD, 0x9F, 0x8C, 0x4F, 0xE1, + 0x24, 0x83, 0xC5, 0x22, 0xEA, 0xFD, 0xD3, 0x0C, 0xE2, 0x17, 0x18, 0x7C, 0x6A, 0x4C, 0xDE, 0x77, + 0xB4, 0x53, 0x9B, 0x4C, 0x81, 0xCD, 0x23, 0x60, 0xAA, 0x0E, 0x25, 0x73, 0x9C, 0x02, 0x79, 0x32, + 0x30, 0xDF, 0x74, 0xDF, 0x75, 0x19, 0xF4, 0xA5, 0x14, 0x5C, 0xF7, 0x7A, 0xA8, 0xA5, 0x91, 0x84, + 0x7C, 0x60, 0x03, 0x06, 0x3B, 0xCD, 0x50, 0xB6, 0x27, 0x9C, 0xFE, 0xB1, 0xDD, 0xCC, 0xD3, 0xB0, + 0x59, 0x24, 0xB2, 0xCA, 0xE2, 0x1C, 0x81, 0x22, 0x9D, 0x07, 0x8F, 0x8E, 0xB9, 0xBE, 0x4E, 0xFA, + 0xFC, 0x39, 0x65, 0xBA, 0xBF, 0x9D, 0x12, 0x37, 0x5E, 0x97, 0x7E, 0xF3, 0x89, 0xF5, 0x5D, 0xF5, + 0xE3, 0x09, 0x8C, 0x62, 0xB5, 0x20, 0x9D, 0x0C, 0x53, 0x8A, 0x68, 0x1B, 0xD2, 0x8F, 0x75, 0x17, + 0x5D, 0xD4, 0xE5, 0xDA, 0x75, 0x62, 0x19, 0x14, 0x6A, 0x26, 0x2D, 0xEB, 0xF8, 0xAF, 0x37, 0xF0, + 0x6C, 0xA4, 0x55, 0xB1, 0xBC, 0xE2, 0x33, 0xC0, 0x9A, 0xCA, 0xB0, 0x11, 0x49, 0x4F, 0x68, 0x9B, + 0x3B, 0x6B, 0x3C, 0xCC, 0x13, 0xF6, 0xC7, 0x85, 0x61, 0x68, 0x42, 0xAE, 0xBB, 0xDD, 0xCD, 0x45, + 0x16, 0x29, 0x1D, 0xEA, 0xDB, 0xC8, 0x03, 0x94, 0x3C, 0xEE, 0x4F, 0x82, 0x11, 0xC3, 0xEC, 0x28, + 0xBD, 0x97, 0x05, 0x99, 0xDE, 0xD7, 0xBB, 0x5E, 0x22, 0x1F, 0xD4, 0xEB, 0x64, 0xD9, 0x92, 0xD9, + 0x85, 0xB7, 0x6A, 0x05, 0x6A, 0xE4, 0x24, 0x41, 0xF1, 0xCD, 0xF0, 0xD8, 0x3F, 0xF8, 0x9E, 0x0E, + 0xCD, 0x0B, 0x7A, 0x70, 0x6B, 0x5A, 0x75, 0x0A, 0x6A, 0x33, 0x88, 0xEC, 0x17, 0x75, 0x08, 0x70, + 0x10, 0x2F, 0x24, 0xCF, 0xC4, 0xE9, 0x42, 0x00, 0x61, 0x94, 0xCA, 0x1F, 0x3A, 0x76, 0x06, 0xFA, + 0xD2, 0x48, 0x81, 0xF0, 0x77, 0x60, 0x03, 0x45, 0xD9, 0x61, 0xF4, 0xA4, 0x6F, 0x3D, 0xD9, 0x30, + 0xC3, 0x04, 0x6B, 0x54, 0x2A, 0xB7, 0xEC, 0x3B, 0xF4, 0x4B, 0xF5, 0x68, 0x52, 0x26, 0xCE, 0xFF, + 0x5D, 0x19, 0x91, 0xA0, 0xA3, 0xA5, 0xA9, 0xB1, 0xE0, 0x23, 0xC4, 0x0A, 0x77, 0x4D, 0xF9, 0x51, + 0x20, 0xA3, 0xA5, 0xA9, 0xB1, 0xC1, 0x00, 0x82, 0x86, 0x8E, 0x7F, 0x5D, 0x19, 0x91, 0xA0, 0xA3, + 0xC4, 0xEB, 0x54, 0x0B, 0x75, 0x68, 0x52, 0x07, 0x8C, 0x9A, 0x97, 0x8D, 0x79, 0x70, 0x62, 0x46, + 0xEF, 0x5C, 0x1B, 0x95, 0x89, 0x71, 0x41, 0xE1, 0x21, 0xA1, 0xA1, 0xA1, 0xC0, 0x02, 0x67, 0x4C, + 0x1A, 0xB6, 0xCF, 0xFD, 0x78, 0x53, 0x24, 0xAB, 0xB5, 0xC9, 0xF1, 0x60, 0x23, 0xA5, 0xC8, 0x12, + 0x87, 0x6D, 0x58, 0x13, 0x85, 0x88, 0x92, 0x87, 0x6D, 0x58, 0x32, 0xC7, 0x0C, 0x9A, 0x97, 0xAC, + 0xDA, 0x36, 0xEE, 0x5E, 0x3E, 0xDF, 0x1D, 0xB8, 0xF2, 0x66, 0x2F, 0xBD, 0xF8, 0x72, 0x47, 0xED, + 0x58, 0x13, 0x85, 0x88, 0x92, 0x87, 0x8C, 0x7B, 0x55, 0x09, 0x90, 0xA2, 0xC6, 0xEF, 0x3D, 0xF8, + 0x53, 0x24, 0xAB, 0xD4, 0x2A, 0xB7, 0xEC, 0x5A, 0x36, 0xEE, 0x5E, 0x3E, 0xDF, 0x3C, 0xFA, 0x76, + 0x4F, 0xFD, 0x59, 0x30, 0xE2, 0x46, 0xEF, 0x3D, 0xF8, 0x53, 0x05, 0x69, 0x31, 0xC1, 0x00, 0x82, + 0x86, 0x8E, 0x7F, 0x5D, 0x19, 0xB0, 0xE2, 0x27, 0xCC, 0xFB, 0x74, 0x4B, 0x14, 0x8B, 0x94, 0x8B, + 0x75, 0x68, 0x33, 0xC5, 0x08, 0x92, 0x87, 0x8C, 0x9A, 0xB6, 0xCF, 0x1C, 0xBA, 0xD7, 0x0D, 0x98, + 0xB2, 0xE6, 0x2F, 0xDC, 0x1B, 0x95, 0x89, 0x71, 0x60, 0x23, 0xC4, 0x0A, 0x96, 0x8F, 0x9C, 0xBA, + 0xF6, 0x6E, 0x3F, 0xFC, 0x5B, 0x15, 0xA8, 0xD2, 0x26, 0xAF, 0xBD, 0xF8, 0x72, 0x66, 0x2F, 0xDC, + 0x1B, 0xB4, 0xCB, 0x14, 0x8B, 0x94, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x01, 0x80, 0x82, 0x86, 0x6F, + 0x3D, 0xD9, 0x30, 0xE2, 0x27, 0xCC, 0xFB, 0x74, 0x4B, 0x14, 0xAA, 0xB7, 0xCD, 0xF9, 0x70, 0x43, + 0x04, 0x6B, 0x35, 0xC9, 0xF1, 0x60, 0x23, 0xA5, 0xC8, 0xF3, 0x45, 0x08, 0x92, 0x87, 0x6D, 0x58, + 0x32, 0xE6, 0x2F, 0xBD, 0xF8, 0x72, 0x66, 0x4E, 0x1E, 0xBE, 0xFE, 0x7E, 0x7E, 0x7E, 0x5F, 0x1D, + 0x99, 0x91, 0xA0, 0xA3, 0xC4, 0x0A, 0x77, 0x4D, 0x18, 0x93, 0xA4, 0xAB, 0xD4, 0x0B, 0x75, 0x49, + 0x10, 0xA2, 0xC6, 0xEF, 0x3D, 0xF8, 0x53, 0x24, 0xAB, 0xB5, 0xE8, 0x33, 0xE4, 0x4A, 0x16, 0xAE, + 0xDE, 0x1F, 0xBC, 0xDB, 0x15, 0xA8, 0xB3, 0xC5, 0x08, 0x73, 0x45, 0xE9, 0x31, 0xC1, 0xE1, 0x21, + 0xA1, 0xA1, 0xA1, 0xC0, 0x02, 0x86, 0x6F, 0x5C, 0x3A, 0xD7, 0x0D, 0x98, 0x93, 0xA4, 0xCA, 0x16, + 0xAE, 0xDE, 0x1F, 0x9D, 0x99, 0xB0, 0xE2, 0x46, 0xEF, 0x3D, 0xF8, 0x72, 0x47, 0x0C, 0x9A, 0xB6, + 0xCF, 0xFD, 0x59, 0x11, 0xA0, 0xA3, 0xA5, 0xC8, 0xF3, 0x45, 0x08, 0x92, 0x87, 0x6D, 0x39, 0xF0, + 0x43, 0x04, 0x8A, 0x96, 0xAE, 0xDE, 0x3E, 0xDF, 0x1D, 0x99, 0x91, 0xA0, 0xC2, 0x06, 0x6F, 0x3D, + 0xF8, 0x72, 0x47, 0x0C, 0x9A, 0x97, 0x8D, 0x98, 0x93, 0x85, 0x88, 0x73, 0x45, 0xE9, 0x31, 0xE0, + 0x23, 0xA5, 0xA9, 0xD0, 0x03, 0x84, 0x8A, 0x96, 0xAE, 0xDE, 0x1F, 0xBC, 0xDB, 0x15, 0xA8, 0xD2, + 0x26, 0xCE, 0xFF, 0x5D, 0x19, 0x91, 0x81, 0x80, 0x82, 0x67, 0x2D, 0xD8, 0x13, 0xA4, 0xAB, 0xD4, + 0x0B, 0x94, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x20, 0xA3, 0xA5, 0xC8, 0xF3, 0x45, 0xE9, 0x50, 0x22, + 0xC6, 0xEF, 0x5C, 0x3A, 0xD7, 0x0D, 0x98, 0x93, 0x85, 0x88, 0x73, 0x64, 0x4A, 0xF7, 0x4D, 0xF9, + 0x51, 0x20, 0xA3, 0xC4, 0x0A, 0x96, 0xAE, 0xDE, 0x3E, 0xFE, 0x7E, 0x7E, 0x7E, 0x5F, 0x3C, 0xFA, + 0x76, 0x4F, 0xFD, 0x78, 0x72, 0x66, 0x2F, 0xBD, 0xD9, 0x30, 0xC3, 0xE5, 0x48, 0x12, 0x87, 0x8C, + 0x7B, 0x55, 0x28, 0xD2, 0x07, 0x8C, 0x9A, 0x97, 0xAC, 0xDA, 0x17, 0x8D, 0x79, 0x51, 0x20, 0xA3, + 0xC4, 0xEB, 0x54, 0x0B, 0x94, 0x8B, 0x94, 0xAA, 0xD6, 0x2E, 0xBF, 0xFC, 0x5B, 0x15, 0xA8, 0xD2, + 0x26, 0xAF, 0xDC, 0x1B, 0xB4, 0xEA, 0x37, 0xEC, 0x3B, 0xF4, 0x6A, 0x37, 0xCD, 0x18, 0x93, 0x85, + 0x69, 0x31, 0xC1, 0xE1, 0x40, 0xE3, 0x25, 0xC8, 0x12, 0x87, 0x8C, 0x9A, 0xB6, 0xCF, 0xFD, 0x59, + 0x11, 0xA0, 0xC2, 0x06, 0x8E, 0x7F, 0x5D, 0x38, 0xF2, 0x47, 0x0C, 0x7B, 0x74, 0x6A, 0x37, 0xEC, + 0x5A, 0x36, 0xEE, 0x3F, 0xFC, 0x7A, 0x76, 0x4F, 0x1C, 0x9B, 0x95, 0x89, 0x71, 0x41, 0x00, 0x63, + 0x44, 0xEB, 0x54, 0x2A, 0xD6, 0x0F, 0x9C, 0xBA, 0xD7, 0x0D, 0x98, 0x93, 0x85, 0x69, 0x31, 0xC1, + 0x00, 0x82, 0x86, 0x8E, 0x9E, 0xBE, 0xDF, 0x3C, 0xFA, 0x57, 0x2C, 0xDA, 0x36, 0xEE, 0x3F, 0xFC, + 0x5B, 0x15, 0x89, 0x71, 0x41, 0x00, 0x82, 0x86, 0x8E, 0x7F, 0x5D, 0x38, 0xF2, 0x47, 0xED, 0x58, + 0x13, 0xA4, 0xCA, 0xF7, 0x4D, 0xF9, 0x51, 0x01, 0x80, 0x63, 0x44, 0xEB, 0x54, 0x2A, 0xD6, 0x2E, + 0xBF, 0xDD, 0x19, 0x91, 0xA0, 0xA3, 0xA5, 0xA9, 0xB1, 0xE0, 0x42, 0x06, 0x8E, 0x7F, 0x5D, 0x19, + 0x91, 0xA0, 0xA3, 0xC4, 0x0A, 0x96, 0x8F, 0x7D, 0x78, 0x72, 0x47, 0x0C, 0x7B, 0x74, 0x6A, 0x56, + 0x2E, 0xDE, 0x1F, 0xBC, 0xFA, 0x57, 0x0D, 0x79, 0x51, 0x01, 0x61, 0x21, 0xA1, 0xC0, 0xE3, 0x25, + 0xA9, 0xB1, 0xC1, 0xE1, 0x40, 0x02, 0x67, 0x4C, 0x1A, 0x97, 0x8D, 0x98, 0x93, 0xA4, 0xAB, 0xD4, + 0x2A, 0xD6, 0x0F, 0x9C, 0x9B, 0xB4, 0xCB, 0x14, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x20, 0xA3, 0xC4, + 0xEB, 0x35, 0xC9, 0xF1, 0x60, 0x42, 0x06, 0x8E, 0x7F, 0x7C, 0x7A, 0x76, 0x6E, 0x3F, 0xFC, 0x7A, + 0x76, 0x6E, 0x5E, 0x3E, 0xFE, 0x7E, 0x5F, 0x3C, 0xDB, 0x15, 0x89, 0x71, 0x41, 0xE1, 0x21, 0xC0, + 0xE3, 0x44, 0xEB, 0x54, 0x2A, 0xB7, 0xCD, 0xF9, 0x70, 0x62, 0x27, 0xAD, 0xD8, 0x32, 0xC7, 0x0C, + 0x7B, 0x74, 0x4B, 0x14, 0xAA, 0xB7, 0xEC, 0x3B, 0xD5, 0x28, 0xD2, 0x07, 0x6D, 0x39, 0xD1, 0x20, + 0xC2, 0xE7, 0x4C, 0x1A, 0x97, 0x8D, 0x98, 0xB2, 0xC7, 0x0C, 0x59, 0x28, 0xF3, 0x9B +}; diff --git a/drivers/sensors/pmw3389.c b/drivers/sensors/pmw3389.c index efa90c2100..10e578edac 100644 --- a/drivers/sensors/pmw3389.c +++ b/drivers/sensors/pmw3389.c @@ -28,5 +28,285 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) { pmw33xx_write(sensor, REG_Resolution_L, cpival & 0xFF); } -// PID, Inverse PID -const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x47, 0xB8}; +// PID, Inverse PID, SROM version +const uint8_t pmw33xx_firmware_signature[3] PROGMEM = {0x42, 0xBD, 0x04}; + +// Firmware Blob for PMW3389 +// clang-format off +const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM = { + 0x01, 0xe8, 0xba, 0x26, 0x0b, 0xb2, 0xbe, 0xfe, 0x7e, 0x5f, 0x3c, 0xdb, 0x15, 0xa8, 0xb3, + 0xe4, 0x2b, 0xb5, 0xe8, 0x53, 0x07, 0x6d, 0x3b, 0xd1, 0x20, 0xc2, 0x06, 0x6f, 0x3d, 0xd9, + 0x11, 0xa0, 0xc2, 0xe7, 0x2d, 0xb9, 0xd1, 0x20, 0xa3, 0xa5, 0xc8, 0xf3, 0x64, 0x4a, 0xf7, + 0x4d, 0x18, 0x93, 0xa4, 0xca, 0xf7, 0x6c, 0x5a, 0x36, 0xee, 0x5e, 0x3e, 0xfe, 0x7e, 0x7e, + 0x5f, 0x1d, 0x99, 0xb0, 0xc3, 0xe5, 0x29, 0xd3, 0x03, 0x65, 0x48, 0x12, 0x87, 0x6d, 0x58, + 0x32, 0xe6, 0x2f, 0xdc, 0x3a, 0xf2, 0x4f, 0xfd, 0x59, 0x11, 0x81, 0x61, 0x21, 0xc0, 0x02, + 0x86, 0x8e, 0x7f, 0x5d, 0x38, 0xf2, 0x47, 0x0c, 0x7b, 0x55, 0x28, 0xb3, 0xe4, 0x4a, 0x16, + 0xab, 0xbf, 0xdd, 0x38, 0xf2, 0x66, 0x4e, 0xff, 0x5d, 0x19, 0x91, 0xa0, 0xa3, 0xa5, 0xc8, + 0x12, 0xa6, 0xaf, 0xdc, 0x3a, 0xd1, 0x41, 0x60, 0x75, 0x58, 0x24, 0x92, 0xd4, 0x72, 0x6c, + 0xe0, 0x2f, 0xfd, 0x23, 0x8d, 0x1c, 0x5b, 0xb2, 0x97, 0x36, 0x3d, 0x0b, 0xa2, 0x49, 0xb1, + 0x58, 0xf2, 0x1f, 0xc0, 0xcb, 0xf8, 0x41, 0x4f, 0xcd, 0x1e, 0x6b, 0x39, 0xa7, 0x2b, 0xe9, + 0x30, 0x16, 0x83, 0xd2, 0x0e, 0x47, 0x8f, 0xe3, 0xb1, 0xdf, 0xa2, 0x15, 0xdb, 0x5d, 0x30, + 0xc5, 0x1a, 0xab, 0x31, 0x99, 0xf3, 0xfa, 0xb2, 0x86, 0x69, 0xad, 0x7a, 0xe8, 0xa7, 0x18, + 0x6a, 0xcc, 0xc8, 0x65, 0x23, 0x87, 0xa8, 0x5f, 0xf5, 0x21, 0x59, 0x75, 0x09, 0x71, 0x45, + 0x55, 0x25, 0x4b, 0xda, 0xa1, 0xc3, 0xf7, 0x41, 0xab, 0x59, 0xd9, 0x74, 0x12, 0x55, 0x5f, + 0xbc, 0xaf, 0xd9, 0xfd, 0xb0, 0x1e, 0xa3, 0x0f, 0xff, 0xde, 0x11, 0x16, 0x6a, 0xae, 0x0e, + 0xe1, 0x5d, 0x3c, 0x10, 0x43, 0x9a, 0xa1, 0x0b, 0x24, 0x8f, 0x0d, 0x7f, 0x0b, 0x5e, 0x4c, + 0x42, 0xa4, 0x84, 0x2c, 0x40, 0xd0, 0x55, 0x39, 0xe6, 0x4b, 0xf8, 0x9b, 0x2f, 0xdc, 0x28, + 0xff, 0xfa, 0xb5, 0x85, 0x19, 0xe5, 0x28, 0xa1, 0x77, 0xaa, 0x73, 0xf3, 0x03, 0xc7, 0x62, + 0xa6, 0x91, 0x18, 0xc9, 0xb0, 0xcd, 0x05, 0xdc, 0xca, 0x81, 0x26, 0x1a, 0x47, 0x40, 0xda, + 0x36, 0x7d, 0x6a, 0x53, 0xc8, 0x5a, 0x77, 0x5d, 0x19, 0xa4, 0x1b, 0x23, 0x83, 0xd0, 0xb2, + 0xaa, 0x0e, 0xbf, 0x77, 0x4e, 0x3a, 0x3b, 0x59, 0x00, 0x31, 0x0d, 0x02, 0x1b, 0x88, 0x7a, + 0xd4, 0xbd, 0x9d, 0xcc, 0x58, 0x04, 0x69, 0xf6, 0x3b, 0xca, 0x42, 0xe2, 0xfd, 0xc3, 0x3d, + 0x39, 0xc5, 0xd0, 0x71, 0xe4, 0xc8, 0xb7, 0x3e, 0x3f, 0xc8, 0xe9, 0xca, 0xc9, 0x3f, 0x04, + 0x4e, 0x1b, 0x79, 0xca, 0xa5, 0x61, 0xc2, 0xed, 0x1d, 0xa6, 0xda, 0x5a, 0xe9, 0x7f, 0x65, + 0x8c, 0xbe, 0x12, 0x6e, 0xa4, 0x5b, 0x33, 0x2f, 0x84, 0x28, 0x9c, 0x1c, 0x88, 0x2d, 0xff, + 0x07, 0xbf, 0xa6, 0xd7, 0x5a, 0x88, 0x86, 0xb0, 0x3f, 0xf6, 0x31, 0x5b, 0x11, 0x6d, 0xf5, + 0x58, 0xeb, 0x58, 0x02, 0x9e, 0xb5, 0x9a, 0xb1, 0xff, 0x25, 0x9d, 0x8b, 0x4f, 0xb6, 0x0a, + 0xf9, 0xea, 0x3e, 0x3f, 0x21, 0x09, 0x65, 0x21, 0x22, 0xfe, 0x3d, 0x4e, 0x11, 0x5b, 0x9e, + 0x5a, 0x59, 0x8b, 0xdd, 0xd8, 0xce, 0xd6, 0xd9, 0x59, 0xd2, 0x1e, 0xfd, 0xef, 0x0d, 0x1b, + 0xd9, 0x61, 0x7f, 0xd7, 0x2d, 0xad, 0x62, 0x09, 0xe5, 0x22, 0x63, 0xea, 0xc7, 0x31, 0xd9, + 0xa1, 0x38, 0x80, 0x5c, 0xa7, 0x32, 0x82, 0xec, 0x1b, 0xa2, 0x49, 0x5a, 0x06, 0xd2, 0x7c, + 0xc9, 0x96, 0x57, 0xbb, 0x17, 0x75, 0xfc, 0x7a, 0x8f, 0x0d, 0x77, 0xb5, 0x7a, 0x8e, 0x3e, + 0xf4, 0xba, 0x2f, 0x69, 0x13, 0x26, 0xd6, 0xd9, 0x21, 0x60, 0x2f, 0x21, 0x3e, 0x87, 0xee, + 0xfd, 0x87, 0x16, 0x0d, 0xc8, 0x08, 0x00, 0x25, 0x71, 0xac, 0x2c, 0x03, 0x2a, 0x37, 0x2d, + 0xb3, 0x34, 0x09, 0x91, 0xe3, 0x06, 0x2c, 0x38, 0x37, 0x95, 0x3b, 0x17, 0x7a, 0xaf, 0xac, + 0x99, 0x55, 0xab, 0x41, 0x39, 0x5f, 0x8e, 0xa6, 0x43, 0x80, 0x03, 0x88, 0x6f, 0x7d, 0xbd, + 0x5a, 0xb4, 0x2b, 0x32, 0x23, 0x5a, 0xa9, 0x31, 0x32, 0x39, 0x4c, 0x5b, 0xf4, 0x6b, 0xaf, + 0x66, 0x6f, 0x3c, 0x8e, 0x2d, 0x82, 0x97, 0x9f, 0x4a, 0x01, 0xdc, 0x99, 0x98, 0x00, 0xec, + 0x38, 0x7a, 0x79, 0x70, 0xa6, 0x85, 0xd6, 0x21, 0x63, 0x0d, 0x45, 0x9a, 0x2e, 0x5e, 0xa7, + 0xb1, 0xea, 0x66, 0x6a, 0xbc, 0x62, 0x2d, 0x7b, 0x7d, 0x85, 0xea, 0x95, 0x2f, 0xc0, 0xe8, + 0x6f, 0x35, 0xa0, 0x3a, 0x02, 0x25, 0xbc, 0xb2, 0x5f, 0x5c, 0x43, 0x96, 0xcc, 0x26, 0xd2, + 0x16, 0xb4, 0x96, 0x73, 0xd7, 0x13, 0xc7, 0xae, 0x53, 0x15, 0x31, 0x89, 0x68, 0x66, 0x6d, + 0x2c, 0x92, 0x1f, 0xcc, 0x5b, 0xa7, 0x8f, 0x5d, 0xbb, 0xc9, 0xdb, 0xe8, 0x3b, 0x9d, 0x61, + 0x74, 0x8b, 0x05, 0xa1, 0x58, 0x52, 0x68, 0xee, 0x3d, 0x39, 0x79, 0xa0, 0x9b, 0xdd, 0xe1, + 0x55, 0xc9, 0x60, 0xeb, 0xad, 0xb8, 0x5b, 0xc2, 0x5a, 0xb5, 0x2c, 0x18, 0x55, 0xa9, 0x50, + 0xc3, 0xf6, 0x72, 0x5f, 0xcc, 0xe2, 0xf4, 0x55, 0xb5, 0xd6, 0xb5, 0x4a, 0x99, 0xa5, 0x28, + 0x74, 0x97, 0x18, 0xe8, 0xc0, 0x84, 0x89, 0x50, 0x03, 0x86, 0x4d, 0x1a, 0xb7, 0x09, 0x90, + 0xa2, 0x01, 0x04, 0xbb, 0x73, 0x62, 0xcb, 0x97, 0x22, 0x70, 0x5d, 0x52, 0x41, 0x8e, 0xd9, + 0x90, 0x15, 0xaa, 0xab, 0x0a, 0x31, 0x65, 0xb4, 0xda, 0xd0, 0xee, 0x24, 0xc9, 0x41, 0x91, + 0x1e, 0xbc, 0x46, 0x70, 0x40, 0x9d, 0xda, 0x0e, 0x2a, 0xe4, 0xb2, 0x4c, 0x9f, 0xf2, 0xfc, + 0xf3, 0x84, 0x17, 0x44, 0x1e, 0xd7, 0xca, 0x23, 0x1f, 0x3f, 0x5a, 0x22, 0x3d, 0xaf, 0x9b, + 0x2d, 0xfc, 0x41, 0xad, 0x26, 0xb4, 0x45, 0x67, 0x0b, 0x80, 0x0e, 0xf9, 0x61, 0x37, 0xec, + 0x3b, 0xf4, 0x4b, 0x14, 0xdf, 0x5a, 0x0c, 0x3a, 0x50, 0x0b, 0x14, 0x0c, 0x72, 0xae, 0xc6, + 0xc5, 0xec, 0x35, 0x53, 0x2d, 0x59, 0xed, 0x91, 0x74, 0xe2, 0xc4, 0xc8, 0xf2, 0x25, 0x6b, + 0x97, 0x6f, 0xc9, 0x76, 0xce, 0xa9, 0xb1, 0x99, 0x8f, 0x5a, 0x92, 0x3b, 0xc4, 0x8d, 0x54, + 0x50, 0x40, 0x72, 0xd6, 0x90, 0x83, 0xfc, 0xe5, 0x49, 0x8b, 0x17, 0xf5, 0xfd, 0x6b, 0x8d, + 0x32, 0x02, 0xe9, 0x0a, 0xfe, 0xbf, 0x00, 0x6b, 0xa3, 0xad, 0x5f, 0x09, 0x4b, 0x97, 0x2b, + 0x00, 0x58, 0x65, 0x2e, 0x07, 0x49, 0x0a, 0x3b, 0x6b, 0x2e, 0x50, 0x6c, 0x1d, 0xac, 0xb7, + 0x6a, 0x26, 0xd8, 0x13, 0xa4, 0xca, 0x16, 0xae, 0xab, 0x93, 0xb9, 0x1c, 0x1c, 0xb4, 0x47, + 0x6a, 0x38, 0x36, 0x17, 0x27, 0xc9, 0x7f, 0xc7, 0x64, 0xcb, 0x89, 0x58, 0xc5, 0x61, 0xc2, + 0xc6, 0xea, 0x15, 0x0b, 0x34, 0x0c, 0x5d, 0x61, 0x76, 0x6e, 0x2b, 0x62, 0x40, 0x92, 0xa3, + 0x6c, 0xef, 0xf4, 0xe4, 0xc3, 0xa1, 0xa8, 0xf5, 0x94, 0x79, 0x0d, 0xd1, 0x3d, 0xcb, 0x3d, + 0x40, 0xb6, 0xd0, 0xf0, 0x10, 0x54, 0xd8, 0x47, 0x25, 0x51, 0xc5, 0x41, 0x79, 0x00, 0xe5, + 0xa0, 0x72, 0xde, 0xbb, 0x3b, 0x62, 0x17, 0xf6, 0xbc, 0x5d, 0x00, 0x76, 0x2e, 0xa7, 0x3b, + 0xb6, 0xf1, 0x98, 0x72, 0x59, 0x2a, 0x73, 0xb0, 0x21, 0xd6, 0x49, 0xe0, 0xc0, 0xd5, 0xeb, + 0x02, 0x7d, 0x4b, 0x41, 0x28, 0x70, 0x2d, 0xec, 0x2b, 0x71, 0x1f, 0x0b, 0xb9, 0x71, 0x63, + 0x06, 0xe6, 0xbc, 0x60, 0xbb, 0xf4, 0x9a, 0x62, 0x43, 0x09, 0x18, 0x4e, 0x93, 0x06, 0x4d, + 0x76, 0xfa, 0x7f, 0xbd, 0x02, 0xe4, 0x50, 0x91, 0x12, 0xe5, 0x86, 0xff, 0x64, 0x1e, 0xaf, + 0x7e, 0xb3, 0xb2, 0xde, 0x89, 0xc1, 0xa2, 0x6f, 0x40, 0x7b, 0x41, 0x51, 0x63, 0xea, 0x25, + 0xd1, 0x97, 0x57, 0x92, 0xa8, 0x45, 0xa1, 0xa5, 0x45, 0x21, 0x43, 0x7f, 0x83, 0x15, 0x29, + 0xd0, 0x30, 0x53, 0x32, 0xb4, 0x5a, 0x17, 0x96, 0xbc, 0xc2, 0x68, 0xa9, 0xb7, 0xaf, 0xac, + 0xdf, 0xf1, 0xe3, 0x89, 0xba, 0x24, 0x79, 0x54, 0xc6, 0x14, 0x07, 0x1c, 0x1e, 0x0d, 0x3a, + 0x6b, 0xe5, 0x3d, 0x4e, 0x10, 0x60, 0x96, 0xec, 0x6c, 0xda, 0x47, 0xae, 0x03, 0x25, 0x39, + 0x1d, 0x74, 0xc8, 0xac, 0x6a, 0xf2, 0x6b, 0x05, 0x2a, 0x9a, 0xe7, 0xe8, 0x92, 0xd6, 0xc2, + 0x6d, 0xfa, 0xe8, 0xa7, 0x9d, 0x5f, 0x48, 0xc9, 0x75, 0xf1, 0x66, 0x6a, 0xdb, 0x5d, 0x9a, + 0xcd, 0x27, 0xdd, 0xb9, 0x24, 0x04, 0x9c, 0x18, 0xc2, 0x6d, 0x0c, 0x91, 0x34, 0x48, 0x42, + 0x6f, 0xe9, 0x59, 0x70, 0xc4, 0x7e, 0x81, 0x0e, 0x32, 0x0a, 0x93, 0x48, 0xb0, 0xc0, 0x15, + 0x9e, 0x05, 0xac, 0x36, 0x16, 0xcb, 0x59, 0x65, 0xa0, 0x83, 0xdf, 0x3e, 0xda, 0xfb, 0x1d, + 0x1a, 0xdb, 0x65, 0xec, 0x9a, 0xc6, 0xc3, 0x8e, 0x3c, 0x45, 0xfd, 0xc8, 0xf5, 0x1c, 0x6a, + 0x67, 0x0d, 0x8f, 0x99, 0x7d, 0x30, 0x21, 0x8c, 0xea, 0x22, 0x87, 0x65, 0xc9, 0xb2, 0x4c, + 0xe4, 0x1b, 0x46, 0xba, 0x54, 0xbd, 0x7c, 0xca, 0xd5, 0x8f, 0x5b, 0xa5, 0x01, 0x04, 0xd8, + 0x0a, 0x16, 0xbf, 0xb9, 0x50, 0x2e, 0x37, 0x2f, 0x64, 0xf3, 0x70, 0x11, 0x02, 0x05, 0x31, + 0x9b, 0xa0, 0xb2, 0x01, 0x5e, 0x4f, 0x19, 0xc9, 0xd4, 0xea, 0xa1, 0x79, 0x54, 0x53, 0xa7, + 0xde, 0x2f, 0x49, 0xd3, 0xd1, 0x63, 0xb5, 0x03, 0x15, 0x4e, 0xbf, 0x04, 0xb3, 0x26, 0x8b, + 0x20, 0xb2, 0x45, 0xcf, 0xcd, 0x5b, 0x82, 0x32, 0x88, 0x61, 0xa7, 0xa8, 0xb2, 0xa0, 0x72, + 0x96, 0xc0, 0xdb, 0x2b, 0xe2, 0x5f, 0xba, 0xe3, 0xf5, 0x8a, 0xde, 0xf1, 0x18, 0x01, 0x16, + 0x40, 0xd9, 0x86, 0x12, 0x09, 0x18, 0x1b, 0x05, 0x0c, 0xb1, 0xb5, 0x47, 0xe2, 0x43, 0xab, + 0xfe, 0x92, 0x63, 0x7e, 0x95, 0x2b, 0xf0, 0xaf, 0xe1, 0xf1, 0xc3, 0x4a, 0xff, 0x2b, 0x09, + 0xbb, 0x4a, 0x0e, 0x9a, 0xc4, 0xd8, 0x64, 0x7d, 0x83, 0xa0, 0x4f, 0x44, 0xdb, 0xc4, 0xa8, + 0x58, 0xef, 0xfc, 0x9e, 0x77, 0xf9, 0xa6, 0x8f, 0x58, 0x8b, 0x12, 0xf4, 0xe9, 0x81, 0x12, + 0x47, 0x51, 0x41, 0x83, 0xef, 0xf6, 0x73, 0xbc, 0x8e, 0x0f, 0x4c, 0x8f, 0x4e, 0x69, 0x90, + 0x77, 0x29, 0x5d, 0x92, 0xb0, 0x6d, 0x06, 0x67, 0x29, 0x60, 0xbd, 0x4b, 0x17, 0xc8, 0x89, + 0x69, 0x28, 0x29, 0xd6, 0x78, 0xcb, 0x11, 0x4c, 0xba, 0x8b, 0x68, 0xae, 0x7e, 0x9f, 0xef, + 0x95, 0xda, 0xe2, 0x9e, 0x7f, 0xe9, 0x55, 0xe5, 0xe1, 0xe2, 0xb7, 0xe6, 0x5f, 0xbb, 0x2c, + 0xa2, 0xe6, 0xee, 0xc7, 0x0a, 0x60, 0xa9, 0xd1, 0x80, 0xdf, 0x7f, 0xd6, 0x97, 0xab, 0x1d, + 0x22, 0x25, 0xfc, 0x79, 0x23, 0xe0, 0xae, 0xc5, 0xef, 0x16, 0xa4, 0xa1, 0x0f, 0x92, 0xa9, + 0xc7, 0xe3, 0x3a, 0x55, 0xdf, 0x62, 0x49, 0xd9, 0xf5, 0x84, 0x49, 0xc5, 0x90, 0x34, 0xd3, + 0xe1, 0xac, 0x99, 0x21, 0xb1, 0x02, 0x76, 0x4a, 0xfa, 0xd4, 0xbb, 0xa4, 0x9c, 0xa2, 0xe2, + 0xcb, 0x3d, 0x3b, 0x14, 0x75, 0x60, 0xd1, 0x02, 0xb4, 0xa3, 0xb4, 0x72, 0x06, 0xf9, 0x19, + 0x9c, 0xe2, 0xe4, 0xa7, 0x0f, 0x25, 0x88, 0xc6, 0x86, 0xd6, 0x8c, 0x74, 0x4e, 0x6e, 0xfc, + 0xa8, 0x48, 0x9e, 0xa7, 0x9d, 0x1a, 0x4b, 0x37, 0x09, 0xc8, 0xb0, 0x10, 0xbe, 0x6f, 0xfe, + 0xa3, 0xc4, 0x7a, 0xb5, 0x3d, 0xe8, 0x30, 0xf1, 0x0d, 0xa0, 0xb2, 0x44, 0xfc, 0x9b, 0x8c, + 0xf8, 0x61, 0xed, 0x81, 0xd1, 0x62, 0x11, 0xb4, 0xe1, 0xd5, 0x39, 0x52, 0x89, 0xd3, 0xa8, + 0x49, 0x31, 0xdf, 0xb6, 0xf9, 0x91, 0xf4, 0x1c, 0x9d, 0x09, 0x95, 0x40, 0x56, 0xe7, 0xe3, + 0xcd, 0x5c, 0x92, 0xc1, 0x1d, 0x6b, 0xe9, 0x78, 0x6f, 0x8e, 0x94, 0x42, 0x66, 0xa2, 0xaa, + 0xd3, 0xc8, 0x2e, 0xe3, 0xf6, 0x07, 0x72, 0x0b, 0x6b, 0x1e, 0x7b, 0xb9, 0x7c, 0xe0, 0xa0, + 0xbc, 0xd9, 0x25, 0xdf, 0x87, 0xa8, 0x5f, 0x9c, 0xcc, 0xf0, 0xdb, 0x42, 0x8e, 0x07, 0x31, + 0x13, 0x01, 0x66, 0x32, 0xd1, 0xb8, 0xd6, 0xe3, 0x5e, 0x12, 0x76, 0x61, 0xd3, 0x38, 0x89, + 0xe6, 0x17, 0x6f, 0xa5, 0xf2, 0x71, 0x0e, 0xa5, 0xe2, 0x88, 0x30, 0xbb, 0xbe, 0x8a, 0xea, + 0xc7, 0x62, 0xc4, 0xcf, 0xb8, 0xcd, 0x33, 0x8d, 0x3d, 0x3e, 0xb5, 0x60, 0x3a, 0x03, 0x92, + 0xe4, 0x6d, 0x1b, 0xe0, 0xb4, 0x84, 0x08, 0x55, 0x88, 0xa7, 0x3a, 0xb9, 0x3d, 0x43, 0xc3, + 0xc0, 0xfa, 0x07, 0x6a, 0xca, 0x94, 0xad, 0x99, 0x55, 0xf1, 0xf1, 0xc0, 0x23, 0x87, 0x1d, + 0x3d, 0x1c, 0xd1, 0x66, 0xa0, 0x57, 0x10, 0x52, 0xa2, 0x7f, 0xbe, 0xf9, 0x88, 0xb6, 0x02, + 0xbf, 0x08, 0x23, 0xa9, 0x0c, 0x63, 0x17, 0x2a, 0xae, 0xf5, 0xf7, 0xb7, 0x21, 0x83, 0x92, + 0x31, 0x23, 0x0d, 0x20, 0xc3, 0xc2, 0x05, 0x21, 0x62, 0x8e, 0x45, 0xe8, 0x14, 0xc1, 0xda, + 0x75, 0xb8, 0xf8, 0x92, 0x01, 0xd0, 0x5d, 0x18, 0x9f, 0x99, 0x11, 0x19, 0xf5, 0x35, 0xe8, + 0x7f, 0x20, 0x88, 0x8c, 0x05, 0x75, 0xf5, 0xd7, 0x40, 0x17, 0xbb, 0x1e, 0x36, 0x52, 0xd9, + 0xa4, 0x9c, 0xc2, 0x9d, 0x42, 0x81, 0xd8, 0xc7, 0x8a, 0xe7, 0x4c, 0x81, 0xe0, 0xb7, 0x57, + 0xed, 0x48, 0x8b, 0xf0, 0x97, 0x15, 0x61, 0xd9, 0x2c, 0x7c, 0x45, 0xaf, 0xc2, 0xcd, 0xfc, + 0xaa, 0x13, 0xad, 0x59, 0xcc, 0xb2, 0xb2, 0x6e, 0xdd, 0x63, 0x9c, 0x32, 0x0f, 0xec, 0x83, + 0xbe, 0x78, 0xac, 0x91, 0x44, 0x1a, 0x1f, 0xea, 0xfd, 0x5d, 0x8e, 0xb4, 0xc0, 0x84, 0xd4, + 0xac, 0xb4, 0x87, 0x5f, 0xac, 0xef, 0xdf, 0xcd, 0x12, 0x56, 0xc8, 0xcd, 0xfe, 0xc5, 0xda, + 0xd3, 0xc1, 0x69, 0xf3, 0x61, 0x05, 0xea, 0x25, 0xe2, 0x12, 0x05, 0x8f, 0x39, 0x08, 0x08, + 0x7c, 0x37, 0xb6, 0x7e, 0x5b, 0xd8, 0xb1, 0x0e, 0xf2, 0xdb, 0x4b, 0xf1, 0xad, 0x90, 0x01, + 0x57, 0xcd, 0xa0, 0xb4, 0x52, 0xe8, 0xf3, 0xd7, 0x8a, 0xbd, 0x4f, 0x9f, 0x21, 0x40, 0x72, + 0xa4, 0xfc, 0x0b, 0x01, 0x2b, 0x2f, 0xb6, 0x4c, 0x95, 0x2d, 0x35, 0x33, 0x41, 0x6b, 0xa0, + 0x93, 0xe7, 0x2c, 0xf2, 0xd3, 0x72, 0x8b, 0xf4, 0x4f, 0x15, 0x3c, 0xaf, 0xd6, 0x12, 0xde, + 0x3f, 0x83, 0x3f, 0xff, 0xf8, 0x7f, 0xf6, 0xcc, 0xa6, 0x7f, 0xc9, 0x9a, 0x6e, 0x1f, 0xc1, + 0x0c, 0xfb, 0xee, 0x9c, 0xe7, 0xaf, 0xc9, 0x26, 0x54, 0xef, 0xb0, 0x39, 0xef, 0xb2, 0xe9, + 0x23, 0xc4, 0xef, 0xd1, 0xa1, 0xa4, 0x25, 0x24, 0x6f, 0x8d, 0x6a, 0xe5, 0x8a, 0x32, 0x3a, + 0xaf, 0xfc, 0xda, 0xce, 0x18, 0x25, 0x42, 0x07, 0x4d, 0x45, 0x8b, 0xdf, 0x85, 0xcf, 0x55, + 0xb2, 0x24, 0xfe, 0x9c, 0x69, 0x74, 0xa7, 0x6e, 0xa0, 0xce, 0xc0, 0x39, 0xf4, 0x86, 0xc6, + 0x8d, 0xae, 0xb9, 0x48, 0x64, 0x13, 0x0b, 0x40, 0x81, 0xa2, 0xc9, 0xa8, 0x85, 0x51, 0xee, + 0x9f, 0xcf, 0xa2, 0x8c, 0x19, 0x52, 0x48, 0xe2, 0xc1, 0xa8, 0x58, 0xb4, 0x10, 0x24, 0x06, + 0x58, 0x51, 0xfc, 0xb9, 0x12, 0xec, 0xfd, 0x73, 0xb4, 0x6d, 0x84, 0xfa, 0x06, 0x8b, 0x05, + 0x0b, 0x2d, 0xd6, 0xd6, 0x1f, 0x29, 0x82, 0x9f, 0x19, 0x12, 0x1e, 0xb2, 0x04, 0x8f, 0x7f, + 0x4d, 0xbd, 0x30, 0x2e, 0xe3, 0xe0, 0x88, 0x29, 0xc5, 0x93, 0xd6, 0x6c, 0x1f, 0x29, 0x45, + 0x91, 0xa7, 0x58, 0xcd, 0x05, 0x17, 0xd6, 0x6d, 0xb3, 0xca, 0x66, 0xcc, 0x3c, 0x4a, 0x74, + 0xfd, 0x08, 0x10, 0xa6, 0x99, 0x92, 0x10, 0xd2, 0x85, 0xab, 0x6e, 0x1d, 0x0e, 0x8b, 0x26, + 0x46, 0xd1, 0x6c, 0x84, 0xc0, 0x26, 0x43, 0x59, 0x68, 0xf0, 0x13, 0x1d, 0xfb, 0xe3, 0xd1, + 0xd2, 0xb4, 0x71, 0x9e, 0xf2, 0x59, 0x6a, 0x33, 0x29, 0x79, 0xd2, 0xd7, 0x26, 0xf1, 0xae, + 0x78, 0x9e, 0x1f, 0x0f, 0x3f, 0xe3, 0xe8, 0xd0, 0x27, 0x78, 0x77, 0xf6, 0xac, 0x9c, 0x56, + 0x39, 0x73, 0x8a, 0x6b, 0x2f, 0x34, 0x78, 0xb1, 0x11, 0xdb, 0xa4, 0x5c, 0x80, 0x01, 0x71, + 0x6a, 0xc2, 0xd1, 0x2e, 0x5e, 0x76, 0x28, 0x70, 0x93, 0xae, 0x3e, 0x78, 0xb0, 0x1f, 0x0f, + 0xda, 0xbf, 0xfb, 0x8a, 0x67, 0x65, 0x4f, 0x91, 0xed, 0x49, 0x75, 0x78, 0x62, 0xa2, 0x93, + 0xb5, 0x70, 0x7f, 0x4d, 0x08, 0x4e, 0x79, 0x61, 0xa8, 0x5f, 0x7f, 0xb4, 0x65, 0x9f, 0x91, + 0x54, 0x3a, 0xe8, 0x50, 0x33, 0xd3, 0xd5, 0x8a, 0x7c, 0xf3, 0x9e, 0x8b, 0x77, 0x7b, 0xc6, + 0xc6, 0x0c, 0x45, 0x95, 0x1f, 0xb0, 0xd0, 0x0b, 0x27, 0x4a, 0xfd, 0xc7, 0xf7, 0x0d, 0x5a, + 0x43, 0xc9, 0x7d, 0x35, 0xb0, 0x7d, 0xc4, 0x9c, 0x57, 0x1e, 0x76, 0x0d, 0xf1, 0x95, 0x30, + 0x71, 0xcc, 0xb3, 0x66, 0x3b, 0x63, 0xa8, 0x6c, 0xa3, 0x43, 0xa0, 0x24, 0xcc, 0xb7, 0x53, + 0xfe, 0xfe, 0xbc, 0x6e, 0x60, 0x89, 0xaf, 0x16, 0x21, 0xc8, 0x91, 0x6a, 0x89, 0xce, 0x80, + 0x2c, 0xf1, 0x59, 0xce, 0xc3, 0x60, 0x61, 0x3b, 0x0b, 0x19, 0xfe, 0x99, 0xac, 0x65, 0x90, + 0x15, 0x12, 0x05, 0xac, 0x7e, 0xff, 0x98, 0x7b, 0x66, 0x64, 0x0e, 0x4b, 0x5b, 0xaa, 0x8d, + 0x3b, 0xd2, 0x56, 0xcf, 0x99, 0x39, 0xee, 0x22, 0x81, 0xd0, 0x60, 0x06, 0x66, 0x20, 0x81, + 0x48, 0x3c, 0x6f, 0x3a, 0x77, 0xba, 0xcb, 0x52, 0xac, 0x79, 0x56, 0xaf, 0xe9, 0x16, 0x17, + 0x0a, 0xa3, 0x82, 0x08, 0xd5, 0x3c, 0x97, 0xcb, 0x09, 0xff, 0x7f, 0xf9, 0x4f, 0x60, 0x05, + 0xb9, 0x53, 0x26, 0xaa, 0xb8, 0x50, 0xaa, 0x19, 0x25, 0xae, 0x5f, 0xea, 0x8a, 0xd0, 0x89, + 0x12, 0x80, 0x43, 0x50, 0x24, 0x12, 0x21, 0x14, 0xcd, 0x77, 0xeb, 0x21, 0xcc, 0x5c, 0x09, + 0x64, 0xf3, 0xc7, 0xcb, 0xc5, 0x4b, 0xc3, 0xe7, 0xed, 0xe7, 0x86, 0x2c, 0x1d, 0x8e, 0x19, + 0x52, 0x9b, 0x2a, 0x0c, 0x18, 0x72, 0x0b, 0x1e, 0x1b, 0xb0, 0x0f, 0x42, 0x99, 0x04, 0xae, + 0xd5, 0xb7, 0x89, 0x1a, 0xb9, 0x4f, 0xd6, 0xaf, 0xf3, 0xc9, 0x93, 0x6f, 0xb0, 0x60, 0x83, + 0x6e, 0x6b, 0xd1, 0x5f, 0x3f, 0x1a, 0x83, 0x1e, 0x24, 0x00, 0x87, 0xb5, 0x3e, 0xdb, 0xf9, + 0x4d, 0xa7, 0x16, 0x2e, 0x19, 0x5b, 0x8f, 0x1b, 0x0d, 0x47, 0x72, 0x42, 0xe9, 0x0a, 0x11, + 0x08, 0x2d, 0x88, 0x1c, 0xbc, 0xc7, 0xb4, 0xbe, 0x29, 0x4d, 0x03, 0x5e, 0xec, 0xdf, 0xf3, + 0x3d, 0x2f, 0xe8, 0x1d, 0x9a, 0xd2, 0xd1, 0xab, 0x41, 0x3d, 0x87, 0x11, 0x45, 0xb0, 0x0d, + 0x46, 0xf5, 0xe8, 0x95, 0x62, 0x1c, 0x68, 0xf7, 0xa6, 0x5b, 0x39, 0x4e, 0xbf, 0x47, 0xba, + 0x5d, 0x7f, 0xb7, 0x6a, 0xf4, 0xba, 0x1d, 0x69, 0xf6, 0xa4, 0xe7, 0xe4, 0x6b, 0x3b, 0x0d, + 0x23, 0x16, 0x4a, 0xb2, 0x68, 0xf0, 0xb2, 0x0d, 0x09, 0x17, 0x6a, 0x63, 0x8c, 0x83, 0xd3, + 0xbd, 0x05, 0xc9, 0xf6, 0xf0, 0xa1, 0x31, 0x0b, 0x2c, 0xac, 0x83, 0xac, 0x80, 0x34, 0x32, + 0xb4, 0xec, 0xd0, 0xbc, 0x54, 0x82, 0x9a, 0xc8, 0xf6, 0xa0, 0x7d, 0xc6, 0x79, 0x73, 0xf4, + 0x20, 0x99, 0xf3, 0xb4, 0x01, 0xde, 0x91, 0x27, 0xf2, 0xc0, 0xdc, 0x81, 0x00, 0x4e, 0x7e, + 0x07, 0x99, 0xc8, 0x3a, 0x51, 0xbc, 0x38, 0xd6, 0x8a, 0xa2, 0xde, 0x3b, 0x6a, 0x8c, 0x1a, + 0x7c, 0x81, 0x0f, 0x3a, 0x1f, 0xe4, 0x05, 0x7b, 0x20, 0x35, 0x6b, 0xa5, 0x6a, 0xa7, 0xe7, + 0xbc, 0x9c, 0x20, 0xec, 0x00, 0x15, 0xe2, 0x51, 0xaf, 0x77, 0xeb, 0x29, 0x3c, 0x7d, 0x2e, + 0x00, 0x5c, 0x81, 0x21, 0xfa, 0x35, 0x6f, 0x40, 0xef, 0xfb, 0xd1, 0x3f, 0xcc, 0x9d, 0x55, + 0x53, 0xfb, 0x5a, 0xa5, 0x56, 0x89, 0x0b, 0x52, 0xeb, 0x57, 0x73, 0x4f, 0x1b, 0x67, 0x24, + 0xcb, 0xb8, 0x6a, 0x10, 0x69, 0xd6, 0xfb, 0x52, 0x40, 0xff, 0x20, 0xa5, 0xf3, 0x72, 0xe1, + 0x3d, 0xa4, 0x8c, 0x81, 0x66, 0x16, 0x0d, 0x5d, 0xad, 0xa8, 0x50, 0x25, 0x78, 0x31, 0x77, + 0x0c, 0x57, 0xe4, 0xe9, 0x15, 0x2d, 0xdb, 0x07, 0x87, 0xc8, 0xb0, 0x43, 0xde, 0xfc, 0xfe, + 0xa9, 0xeb, 0xf5, 0xb0, 0xd3, 0x7b, 0xe9, 0x1f, 0x6e, 0xca, 0xe4, 0x03, 0x95, 0xc5, 0xd1, + 0x59, 0x72, 0x63, 0xf0, 0x86, 0x54, 0xe8, 0x16, 0x62, 0x0b, 0x35, 0x29, 0xc2, 0x68, 0xd0, + 0xd6, 0x3e, 0x90, 0x60, 0x57, 0x1d, 0xc9, 0xed, 0x3f, 0xed, 0xb0, 0x2f, 0x7e, 0x97, 0x02, + 0x51, 0xec, 0xee, 0x6f, 0x82, 0x74, 0x76, 0x7f, 0xfb, 0xd6, 0xc4, 0xc3, 0xdd, 0xe8, 0xb1, + 0x60, 0xfc, 0xc6, 0xb9, 0x0d, 0x6a, 0x33, 0x78, 0xc6, 0xc1, 0xbf, 0x86, 0x2c, 0x50, 0xcc, + 0x9a, 0x70, 0x8e, 0x7b, 0xec, 0xab, 0x95, 0xac, 0x53, 0xa0, 0x4b, 0x07, 0x88, 0xaf, 0x42, + 0xed, 0x19, 0x8d, 0xf6, 0x32, 0x17, 0x48, 0x47, 0x1d, 0x41, 0x6f, 0xfe, 0x2e, 0xa7, 0x8f, + 0x4b, 0xa0, 0x51, 0xf3, 0xbf, 0x02, 0x0a, 0x48, 0x58, 0xf7, 0xa1, 0x6d, 0xea, 0xa5, 0x13, + 0x5a, 0x5b, 0xea, 0x0c, 0x9e, 0x52, 0x4f, 0x9e, 0xb9, 0x71, 0x7f, 0x23, 0x83, 0xda, 0x1b, + 0x86, 0x9a, 0x41, 0x29, 0xda, 0x70, 0xe7, 0x64, 0xa1, 0x7b, 0xd5, 0x0a, 0x22, 0x0d, 0x5c, + 0x40, 0xc4, 0x81, 0x07, 0x25, 0x35, 0x4a, 0x1c, 0x10, 0xdb, 0x45, 0x0a, 0xff, 0x36, 0xd4, + 0xe0, 0xeb, 0x5f, 0x68, 0xd6, 0x67, 0xc6, 0xd0, 0x8b, 0x76, 0x1a, 0x7d, 0x59, 0x42, 0xa1, + 0xcb, 0x96, 0x4d, 0x84, 0x09, 0x9a, 0x3d, 0xe0, 0x52, 0x85, 0x6e, 0x48, 0x90, 0x85, 0x2a, + 0x63, 0xb2, 0x69, 0xd2, 0x00, 0x43, 0x31, 0x37, 0xb3, 0x52, 0xaf, 0x62, 0xfa, 0xc1, 0xe0, + 0x03, 0xfb, 0x62, 0xaa, 0x88, 0xc9, 0xb2, 0x2c, 0xd5, 0xa8, 0xf5, 0xa5, 0x4c, 0x12, 0x59, + 0x4e, 0x06, 0x5e, 0x9b, 0x15, 0x66, 0x11, 0xb2, 0x27, 0x92, 0xdc, 0x98, 0x59, 0xde, 0xdf, + 0xfa, 0x9a, 0x32, 0x2e, 0xc0, 0x5d, 0x3c, 0x33, 0x41, 0x6d, 0xaf, 0xb2, 0x25, 0x23, 0x14, + 0xa5, 0x7b, 0xc7, 0x9b, 0x68, 0xf3, 0xda, 0xeb, 0xe3, 0xa9, 0xe2, 0x6f, 0x0e, 0x1d, 0x1c, + 0xba, 0x55, 0xb6, 0x34, 0x6a, 0x93, 0x1f, 0x1f, 0xb8, 0x34, 0xc8, 0x84, 0x08, 0xb1, 0x6b, + 0x6a, 0x28, 0x74, 0x74, 0xe5, 0xeb, 0x75, 0xe9, 0x7c, 0xd8, 0xba, 0xd8, 0x42, 0xa5, 0xee, + 0x1f, 0x80, 0xd9, 0x96, 0xb2, 0x2e, 0xe7, 0xbf, 0xba, 0xeb, 0xd1, 0x69, 0xbb, 0x8f, 0xfd, + 0x5a, 0x63, 0x8f, 0x39, 0x7f, 0xdf, 0x1d, 0x37, 0xd2, 0x18, 0x35, 0x9d, 0xb6, 0xcc, 0xe4, + 0x27, 0x81, 0x89, 0x38, 0x38, 0x68, 0x33, 0xe7, 0x78, 0xd8, 0x76, 0xf5, 0xee, 0xd0, 0x4a, + 0x07, 0x69, 0x19, 0x7a, 0xad, 0x18, 0xb1, 0x94, 0x61, 0x45, 0x53, 0xa2, 0x48, 0xda, 0x96, + 0x4a, 0xf9, 0xee, 0x94, 0x2a, 0x1f, 0x6e, 0x18, 0x3c, 0x92, 0x46, 0xd1, 0x1a, 0x28, 0x18, + 0x32, 0x1f, 0x3a, 0x45, 0xbe, 0x04, 0x35, 0x92, 0xe5, 0xa3, 0xcb, 0xb5, 0x2e, 0x32, 0x43, + 0xac, 0x65, 0x17, 0x89, 0x99, 0x15, 0x03, 0x9e, 0xb1, 0x23, 0x2f, 0xed, 0x76, 0x4d, 0xd8, + 0xac, 0x21, 0x40, 0xc4, 0x99, 0x4e, 0x65, 0x71, 0x2c, 0xb3, 0x45, 0xab, 0xfb, 0xe7, 0x72, + 0x39, 0x56, 0x30, 0x6d, 0xfb, 0x74, 0xeb, 0x99, 0xf3, 0xcd, 0x57, 0x5c, 0x78, 0x75, 0xe9, + 0x8d, 0xc3, 0xa2, 0xfb, 0x5d, 0xe0, 0x90, 0xc5, 0x55, 0xad, 0x91, 0x53, 0x4e, 0x9e, 0xbd, + 0x8c, 0x49, 0xa4, 0xa4, 0x69, 0x10, 0x0c, 0xc5, 0x76, 0xe9, 0x25, 0x86, 0x8d, 0x66, 0x23, + 0xa8, 0xdb, 0x5c, 0xe8, 0xd9, 0x30, 0xe1, 0x15, 0x7b, 0xc0, 0x99, 0x0f, 0x03, 0xec, 0xaa, + 0x12, 0xef, 0xce, 0xd4, 0xea, 0x55, 0x5c, 0x08, 0x86, 0xf4, 0xf4, 0xb0, 0x83, 0x42, 0x95, + 0x37, 0xb6, 0x38, 0xe0, 0x2b, 0x54, 0x89, 0xbd, 0x4e, 0x20, 0x9d, 0x3f, 0xc3, 0x4b, 0xb7, + 0xec, 0xfa, 0x5a, 0x14, 0x03, 0xcb, 0x64, 0xc8, 0x34, 0x4a, 0x4b, 0x6e, 0xf8, 0x6e, 0x56, + 0xf6, 0xdd, 0x5f, 0xa1, 0x24, 0xe2, 0xd4, 0xd0, 0x82, 0x64, 0x1f, 0x8e, 0x9b, 0xfa, 0xb4, + 0xcb, 0xdb, 0x0a, 0xe8, 0x15, 0xfc, 0x15, 0xab, 0x4b, 0x18, 0xbf, 0xd4, 0x42, 0x14, 0x48, + 0x82, 0x85, 0xdd, 0xeb, 0x49, 0x1b, 0x0b, 0x0b, 0x05, 0xe9, 0xb4, 0xa1, 0x33, 0x0a, 0x5d, + 0x0e, 0x6c, 0x4b, 0xc0, 0xd6, 0x6c, 0x7c, 0xfb, 0x69, 0x0b, 0x53, 0x19, 0xe4, 0xf3, 0x35, + 0xfc, 0xbe, 0xa1, 0x34, 0x02, 0x09, 0x4f, 0x74, 0x86, 0x92, 0xcd, 0x5d, 0x1a, 0xc1, 0x27, + 0x0c, 0xf2, 0xc5, 0xcf, 0xdd, 0x23, 0x93, 0x02, 0xbd, 0x41, 0x5e, 0x42, 0xf0, 0xa0, 0x9d, + 0x0c, 0x72, 0xc8, 0xec, 0x32, 0x0a, 0x8a, 0xfd, 0x3d, 0x5a, 0x41, 0x27, 0x0c, 0x88, 0x59, + 0xad, 0x94, 0x2e, 0xef, 0x5d, 0x8f, 0xc7, 0xdf, 0x66, 0xe4, 0xdd, 0x56, 0x6c, 0x7b, 0xca, + 0x55, 0x81, 0xae, 0xae, 0x5c, 0x1b, 0x1a, 0xab, 0xae, 0x99, 0x8d, 0xcc, 0x42, 0x97, 0x59, + 0xf4, 0x14, 0x3f, 0x75, 0xc6, 0xd1, 0x88, 0xba, 0xaa, 0x84, 0x4a, 0xd0, 0x34, 0x08, 0x3b, + 0x7d, 0xdb, 0x15, 0x06, 0xb0, 0x5c, 0xbd, 0x40, 0xf5, 0xa8, 0xec, 0xae, 0x36, 0x40, 0xdd, + 0x90, 0x1c, 0x3e, 0x0d, 0x7e, 0x73, 0xc7, 0xc2, 0xc5, 0x6a, 0xff, 0x52, 0x05, 0x7f, 0xbe, + 0xd0, 0x92, 0xfd, 0xb3, 0x6f, 0xff, 0x5d, 0xb7, 0x97, 0x64, 0x73, 0x7b, 0xca, 0xd1, 0x98, + 0x24, 0x6b, 0x0b, 0x01, 0x68, 0xdd, 0x27, 0x85, 0x85, 0xb5, 0x83, 0xc1, 0xe0, 0x50, 0x64, + 0xc7, 0xaf, 0xf1, 0xc6, 0x4d, 0xb1, 0xef, 0xc9, 0xb4, 0x0a, 0x6d, 0x65, 0xf3, 0x47, 0xcc, + 0xa3, 0x02, 0x21, 0x0c, 0xbe, 0x22, 0x29, 0x05, 0xcf, 0x5f, 0xe8, 0x94, 0x6c, 0xe5, 0xdc, + 0xc4, 0xdf, 0xbe, 0x3e, 0xa8, 0xb4, 0x18, 0xb0, 0x99, 0xb8, 0x6f, 0xff, 0x5d, 0xb9, 0xfd, + 0x3b, 0x5d, 0x16, 0xbf, 0x3e, 0xd8, 0xb3, 0xd8, 0x08, 0x34, 0xf6, 0x47, 0x35, 0x5b, 0x72, + 0x1a, 0x33, 0xad, 0x52, 0x5d, 0xb8, 0xd0, 0x77, 0xc6, 0xab, 0xba, 0x55, 0x09, 0x5f, 0x02, + 0xf8, 0xd4, 0x5f, 0x53, 0x06, 0x91, 0xcd, 0x74, 0x42, 0xae, 0x54, 0x91, 0x81, 0x62, 0x13, + 0x6f, 0xd8, 0xa9, 0x77, 0xc3, 0x6c, 0xcb, 0xf1, 0x29, 0x5a, 0xcc, 0xda, 0x35, 0xbd, 0x52, + 0x23, 0xbe, 0x59, 0xeb, 0x12, 0x6d, 0xb7, 0x53, 0xee, 0xfc, 0xb4, 0x1b, 0x13, 0x5e, 0xba, + 0x16, 0x7c, 0xc5, 0xf3, 0xe3, 0x6d, 0x07, 0x78, 0xf5, 0x2b, 0x21, 0x05, 0x88, 0x4c, 0xc0, + 0xa1, 0xe3, 0x36, 0x10, 0xf8, 0x1b, 0xd8, 0x17, 0xfb, 0x6a, 0x4e, 0xd8, 0xb3, 0x47, 0x2d, + 0x99, 0xbd, 0xbb, 0x5d, 0x37, 0x7d, 0xba, 0xf1, 0xe1, 0x7c, 0xc0, 0xc5, 0x54, 0x62, 0x7f, + 0xcf, 0x5a, 0x4a, 0x93, 0xcc, 0xf1, 0x1b, 0x34, 0xc8, 0xa6, 0x05, 0x4c, 0x55, 0x8b, 0x54, + 0x84, 0xd5, 0x77, 0xeb, 0xc0, 0x6d, 0x3a, 0x29, 0xbd, 0x75, 0x61, 0x09, 0x9a, 0x2c, 0xbb, + 0xf7, 0x18, 0x79, 0x34, 0x90, 0x24, 0xa5, 0x81, 0x70, 0x87, 0xc5, 0x02, 0x7c, 0xba, 0xd4, + 0x5e, 0x14, 0x8e, 0xe4, 0xed, 0xa2, 0x61, 0x6a, 0xb9, 0x6e, 0xb5, 0x4a, 0xb9, 0x01, 0x46, + 0xf4, 0xcf, 0xbc, 0x09, 0x2f, 0x27, 0x4b, 0xbd, 0x86, 0x7a, 0x10, 0xe1, 0xd4, 0xc8, 0xd9, + 0x20, 0x8d, 0x8a, 0x63, 0x00, 0x63, 0x44, 0xeb, 0x54, 0x0b, 0x75, 0x49, 0x10, 0xa2, 0xa7, + 0xad, 0xb9, 0xd1, 0x01, 0x80, 0x63, 0x25, 0xc8, 0x12, 0xa6, 0xce, 0x1e, 0xbe, 0xfe, 0x7e, + 0x5f, 0x3c, 0xdb, 0x34, 0xea, 0x37, 0xec, 0x3b, 0xd5, 0x28, 0xd2, 0x07, 0x8c, 0x9a, 0xb6, + 0xee, 0x5e, 0x3e, 0xdf, 0x1d, 0x99, 0xb0, 0xe2, 0x46, 0xef, 0x5c, 0x1b, 0xb4, 0xea, 0x56, + 0x2e, 0xde, 0x1f, 0x9d, 0xb8, 0xd3, 0x24, 0xab, 0xd4, 0x2a, 0xd6, 0x2e, 0xde, 0x1f, 0x9d, + 0xb8, 0xf2, 0x66, 0x2f, 0xbd, 0xf8, 0x72, 0x66, 0x4e, 0x1e, 0x9f, 0x9d, 0xb8, 0xf2, 0x47, + 0x0c, 0x9a, 0xb6, 0xee, 0x3f, 0xfc, 0x7a, 0x57, 0x0d, 0x79, 0x70, 0x62, 0x27, 0xad, 0xb9, + 0xd1, 0x01, 0x61, 0x40, 0x02, 0x67, 0x2d, 0xd8, 0x32, 0xe6, 0x2f, 0xdc, 0x3a, 0xd7, 0x2c, + 0xbb, 0xf4, 0x4b, 0xf5, 0x49, 0xf1, 0x60, 0x23, 0xc4, 0x0a, 0x77, 0x4d, 0xf9, 0x51, 0x01, + 0x80, 0x63, 0x25, 0xa9, 0xb1, 0xe0, 0x42, 0xe7, 0x4c, 0x1a, 0x97, 0xac, 0xbb, 0xf4, 0x6a, + 0x37, 0xcd, 0x18, 0xb2, 0xe6, 0x2f, 0xdc, 0x1b, 0x95, 0xa8, 0xd2, 0x07, 0x6d, 0x58, 0x32, + 0xe6, 0x4e, 0x1e, 0x9f, 0xbc, 0xfa, 0x57, 0x0d, 0x79, 0x51, 0x20, 0xc2, 0x06, 0x6f, 0x5c, + 0x1b, 0x95, 0xa8, 0xb3, 0xc5, 0xe9, 0x31, 0xe0, 0x23, 0xc4, 0x0a, 0x77, 0x4d, 0x18, 0x93, + 0x85, 0x69, 0x31, 0xc1, 0xe1, 0x21, 0xc0, 0xe3, 0x44, 0x0a, 0x77, 0x6c, 0x5a, 0x17, 0x8d, + 0x98, 0x93, 0xa4, 0xab, 0xd4, 0x2a, 0xb7, 0xec, 0x5a, 0x17, 0xac, 0xbb, 0xf4, 0x4b, 0x14, + 0xaa, 0xb7, 0xec, 0x3b, 0xd5, 0x28, 0xb3, 0xc5, 0xe9, 0x31, 0xc1, 0x00, 0x82, 0x67, 0x4c, + 0xfb, 0x55, 0x28, 0xd2, 0x26, 0xaf, 0xbd, 0xd9, 0x11, 0x81, 0x61, 0x21, 0xa1, 0xa1, 0xc0, + 0x02, 0x86, 0x6f, 0x5c, 0x1b, 0xb4, 0xcb, 0x14, 0x8b, 0x94, 0xaa, 0xd6, 0x2e, 0xbf, 0xdd, + 0x19, 0xb0, 0xe2, 0x46, 0x0e, 0x7f, 0x7c, 0x5b, 0x15, 0x89, 0x90, 0x83, 0x84, 0x6b, 0x54, + 0x0b, 0x75, 0x68, 0x52, 0x07, 0x6d, 0x58, 0x32, 0xc7, 0xed, 0x58, 0x32, 0xc7, 0xed, 0x58, + 0x32, 0xe6, 0x4e, 0xff, 0x7c, 0x7a, 0x76, 0x6e, 0x3f, 0xdd, 0x38, 0xd3, 0x05, 0x88, 0x92, + 0xa6, 0xaf, 0xdc, 0x1b, 0xb4, 0xcb, 0xf5, 0x68, 0x52, 0x07, 0x8c, 0x7b, 0x55, 0x09, 0x90, + 0x83, 0x84, 0x6b, 0x54, 0x2a, 0xb7, 0xec, 0x3b, 0xd5, 0x09, 0x90, 0xa2, 0xc6, 0x0e, 0x7f, + 0x7c, 0x7a, 0x57, 0x0d, 0x98, 0xb2, 0xc7, 0xed, 0x58, 0x32, 0xc7, 0x0c, 0x7b, 0x74, 0x4b, + 0x14, 0x8b, 0x94, 0xaa, 0xb7, 0xcd, 0x18, 0x93, 0xa4, 0xca, 0x16, 0xae, 0xbf, 0xdd, 0x19, + 0xb0, 0xe2, 0x46, 0x0e, 0x7f, 0x5d, 0x19, 0x91, 0x81, 0x80, 0x63, 0x44, 0xeb, 0x35, 0xc9, + 0x10, 0x83, 0x65, 0x48, 0x12, 0xa6, 0xce, 0x1e, 0x9f, 0xbc, 0xdb, 0x15, 0x89, 0x71, 0x60, + 0x23, 0xc4, 0xeb, 0x54, 0x2a, 0xb7, 0xec, 0x5a, 0x36, 0xcf, 0x81, 0x10, 0xac, 0x74 +}; + +// clang-format off diff --git a/drivers/sensors/pmw3389.h b/drivers/sensors/pmw3389.h index a7028f84b1..fafd1e2046 100644 --- a/drivers/sensors/pmw3389.h +++ b/drivers/sensors/pmw3389.h @@ -17,6 +17,8 @@ #define PMW33XX_CPI_MIN 50 #define PMW33XX_CPI_MAX 16000 +#define PMW33XX_FIRMWARE_LENGTH 4094 + // PMW3389 register addresses // clang-format off #define REG_Product_ID 0x00 diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c index 95d0fe6b4b..f1f2d0e865 100644 --- a/drivers/sensors/pmw33xx_common.c +++ b/drivers/sensors/pmw33xx_common.c @@ -15,7 +15,8 @@ #include "spi_master.h" #include "progmem.h" -extern const uint8_t pmw33xx_firmware_signature[2] PROGMEM; +extern const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM; +extern const uint8_t pmw33xx_firmware_signature[3] PROGMEM; static const pin_t cs_pins_left[] = PMW33XX_CS_PINS; static const pin_t cs_pins_right[] = PMW33XX_CS_PINS_RIGHT; @@ -26,21 +27,6 @@ static bool in_burst_right[ARRAY_SIZE(cs_pins_right)] = {0}; bool __attribute__((cold)) pmw33xx_upload_firmware(uint8_t sensor); bool __attribute__((cold)) pmw33xx_check_signature(uint8_t sensor); -const pointing_device_driver_t pmw33xx_pointing_device_driver = { - .init = pmw33xx_init_wrapper, - .get_report = pmw33xx_get_report, - .set_cpi = pmw33xx_set_cpi_wrapper, - .get_cpi = pmw33xx_get_cpi_wrapper, -}; - -uint16_t __attribute__((weak)) pmw33xx_srom_get_length(void) { - return 0; -} - -uint8_t __attribute__((weak)) pmw33xx_srom_get_byte(uint16_t position) { - return 0; -} - void pmw33xx_set_cpi_all_sensors(uint16_t cpi) { for (uint8_t sensor = 0; sensor < pmw33xx_number_of_sensors; sensor++) { pmw33xx_set_cpi(sensor, cpi); @@ -102,13 +88,14 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr) { return data; } -__attribute__((weak)) bool pmw33xx_check_signature(uint8_t sensor) { - uint8_t signature_dump[2] = { +bool pmw33xx_check_signature(uint8_t sensor) { + uint8_t signature_dump[3] = { pmw33xx_read(sensor, REG_Product_ID), pmw33xx_read(sensor, REG_Inverse_Product_ID), + pmw33xx_read(sensor, REG_SROM_ID), }; - return memcmp_P(signature_dump, pmw33xx_firmware_signature, sizeof(signature_dump)) == 0; + return memcmp(pmw33xx_firmware_signature, signature_dump, sizeof(signature_dump)) == 0; } bool pmw33xx_upload_firmware(uint8_t sensor) { @@ -128,12 +115,10 @@ bool pmw33xx_upload_firmware(uint8_t sensor) { spi_write(REG_SROM_Load_Burst | 0x80); wait_us(15); - for (size_t i = 0; i < pmw33xx_srom_get_length(); i++) { - spi_write(pmw33xx_srom_get_byte(i)); + for (size_t i = 0; i < PMW33XX_FIRMWARE_LENGTH; i++) { + spi_write(pgm_read_byte(pmw33xx_firmware_data + i)); wait_us(15); } - - spi_stop(); wait_us(200); pmw33xx_read(sensor, REG_SROM_ID); @@ -169,14 +154,12 @@ bool pmw33xx_init(uint8_t sensor) { pmw33xx_read(sensor, REG_Delta_Y_L); pmw33xx_read(sensor, REG_Delta_Y_H); - if (pmw33xx_srom_get_length() != 0) { - if (!pmw33xx_upload_firmware(sensor)) { - pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor); - return false; - } - } else { - pd_dprintf("PMW33XX (%d): firmware upload skipped.\n", sensor); +#ifdef PMW33XX_UPLOAD_SROM + if (!pmw33xx_upload_firmware(sensor)) { + pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor); + return false; } +#endif spi_stop(); @@ -235,38 +218,3 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) { return report; } - -bool pmw33xx_init_wrapper(void) { - return pmw33xx_init(0); -} - -void pmw33xx_set_cpi_wrapper(uint16_t cpi) { - pmw33xx_set_cpi(0, cpi); -} - -uint16_t pmw33xx_get_cpi_wrapper(void) { - return pmw33xx_get_cpi(0); -} - -report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) { - pmw33xx_report_t report = pmw33xx_read_burst(0); - static bool in_motion = false; - - if (report.motion.b.is_lifted) { - return mouse_report; - } - - if (!report.motion.b.is_motion) { - in_motion = false; - return mouse_report; - } - - if (!in_motion) { - in_motion = true; - pd_dprintf("PWM3360 (0): starting motion\n"); - } - - mouse_report.x = CONSTRAIN_HID_XY(report.delta_x); - mouse_report.y = CONSTRAIN_HID_XY(report.delta_y); - return mouse_report; -} diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index ff890f49a9..b30ee3d596 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -10,12 +10,10 @@ #pragma once -#include "compiler_support.h" #include "keyboard.h" #include #include "spi_master.h" #include "util.h" -#include "pointing_device.h" #if defined(POINTING_DEVICE_DRIVER_pmw3360) # include "pmw3360.h" @@ -40,8 +38,8 @@ typedef struct __attribute__((packed)) { int16_t delta_y; // displacement on y directions. } pmw33xx_report_t; -STATIC_ASSERT(sizeof(pmw33xx_report_t) == 6, "pmw33xx_report_t must be 6 bytes in size"); -STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motion must be 1 byte in size"); +_Static_assert(sizeof(pmw33xx_report_t) == 6, "pmw33xx_report_t must be 6 bytes in size"); +_Static_assert(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motion must be 1 byte in size"); #if !defined(PMW33XX_CLOCK_SPEED) # define PMW33XX_CLOCK_SPEED 2000000 @@ -104,10 +102,6 @@ STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motio #define CONSTRAIN(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) -#define pmw3360_pointing_device_driver pmw33xx_pointing_device_driver; -#define pmw3389_pointing_device_driver pmw33xx_pointing_device_driver; -extern const pointing_device_driver_t pmw33xx_pointing_device_driver; - /** * @brief Initializes the given sensor so it is in a working state and ready to * be polled for data. @@ -176,8 +170,3 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr); * @return false Write failed, do not proceed operation */ bool pmw33xx_write(uint8_t sensor, uint8_t reg_addr, uint8_t data); - -bool pmw33xx_init_wrapper(void); -void pmw33xx_set_cpi_wrapper(uint16_t cpi); -uint16_t pmw33xx_get_cpi_wrapper(void); -report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report); diff --git a/drivers/spi_master.h b/drivers/spi_master.h deleted file mode 100644 index d206b812bf..0000000000 --- a/drivers/spi_master.h +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include "gpio.h" - -/** - * \file - * - * \defgroup spi_master SPI Master API - * - * \brief API to communicate with SPI devices. - * \{ - */ - -// Hardware SS pin is defined in the header so that user code can refer to it -#ifdef __AVR__ -# if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) -# define SPI_SS_PIN B0 -# elif defined(__AVR_ATmega32A__) -# define SPI_SS_PIN B4 -# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) -# define SPI_SS_PIN B2 -# endif -#endif - -typedef int16_t spi_status_t; - -#define SPI_STATUS_SUCCESS (0) -#define SPI_STATUS_ERROR (-1) -#define SPI_STATUS_TIMEOUT (-2) - -#define SPI_TIMEOUT_IMMEDIATE (0) -#define SPI_TIMEOUT_INFINITE (0xFFFF) - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct spi_start_config_t { - pin_t slave_pin; - bool lsb_first; - uint8_t mode; - uint16_t divisor; - bool cs_active_low; -} spi_start_config_t; - -/** - * \brief Initialize the SPI driver. This function must be called only once, before any of the below functions can be called. - */ -void spi_init(void); - -/** - * \brief Start an SPI transaction. - * - * \param slavePin The GPIO pin connected to the desired device's `SS` line. - * \param lsbFirst Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. - * \param mode The SPI mode to use. - * \param divisor The SPI clock divisor. - * - * \return `true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. - */ -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); - -bool spi_start_extended(spi_start_config_t *start_config); - -/** - * \brief Write a byte to the selected SPI device. - * - * \param data The byte to write. - * - * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`. - */ -spi_status_t spi_write(uint8_t data); - -/** - * \brief Read a byte from the selected SPI device. - * - * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. - */ -spi_status_t spi_read(void); - -/** - * \brief Send multiple bytes to the selected SPI device. - * - * \param data A pointer to the data to write from. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - * - * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. - */ -spi_status_t spi_transmit(const uint8_t *data, uint16_t length); - -/** - * \brief Receive multiple bytes from the selected SPI device. - * - * \param data A pointer to a buffer to read into. - * \param length The number of bytes to read. Take care not to overrun the length of `data`. - * - * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. - */ -spi_status_t spi_receive(uint8_t *data, uint16_t length); - -/** - * \brief End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`. - * - */ -void spi_stop(void); - -#ifdef __cplusplus -} -#endif - -/** \} */ diff --git a/drivers/uart.h b/drivers/uart.h deleted file mode 100644 index c5068c86e1..0000000000 --- a/drivers/uart.h +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -/** - * \file - * - * \defgroup uart UART API - * - * \brief API to communicate with UART devices. - * \{ - */ - -/** - * \brief Initialize the UART driver. This function must be called only once, before any of the below functions can be called. - * - * \param baud The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200. - */ -void uart_init(uint32_t baud); - -/** - * \brief Transmit a single byte. - * - * \param data The byte to write. - */ -void uart_write(uint8_t data); - -/** - * \brief Receive a single byte. - * - * \return The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read). - */ -uint8_t uart_read(void); - -/** - * \brief Transmit multiple bytes. - * - * \param data A pointer to the data to write from. - * \param length The number of bytes to write. Take care not to overrun the length of `data`. - */ -void uart_transmit(const uint8_t *data, uint16_t length); - -/** - * \brief Receive multiple bytes. - * - * \param data A pointer to a buffer to read into. - * \param length The number of bytes to read. Take care not to overrun the length of `data`. - */ -void uart_receive(uint8_t *data, uint16_t length); - -/** - * \brief Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately. - * - * \return true if there is data available to read. - */ -bool uart_available(void); - -/** \} */ diff --git a/drivers/usbpd.h b/drivers/usbpd.h index e9dca67f66..df4f29bb9d 100644 --- a/drivers/usbpd.h +++ b/drivers/usbpd.h @@ -26,4 +26,4 @@ typedef enum { void usbpd_init(void); // Gets the current state of the USBPD allowance -usbpd_allowance_t usbpd_get_allowance(void); +usbpd_allowance_t usbpd_get_allowance(void); \ No newline at end of file diff --git a/drivers/wear_leveling/wear_leveling_flash_spi.c b/drivers/wear_leveling/wear_leveling_flash_spi.c index ca2c174580..304aed1641 100644 --- a/drivers/wear_leveling/wear_leveling_flash_spi.c +++ b/drivers/wear_leveling/wear_leveling_flash_spi.c @@ -5,7 +5,6 @@ #include "util.h" #include "timer.h" #include "wear_leveling.h" -#include "wear_leveling_flash_spi_config.h" #include "wear_leveling_internal.h" #ifndef WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT diff --git a/drivers/ws2812.h b/drivers/ws2812.h new file mode 100644 index 0000000000..993cce8ce4 --- /dev/null +++ b/drivers/ws2812.h @@ -0,0 +1,78 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum/color.h" + +/* + * The WS2812 datasheets define T1H 900ns, T0H 350ns, T1L 350ns, T0L 900ns. Hence, by default, these + * are chosen to be conservative and avoid problems rather than for maximum throughput; in the code, + * this is done by default using a WS2812_TIMING parameter that accounts for the whole window (1250ns) + * and defining T1H and T0H; T1L and T0L are obtained by subtracting their low counterparts from the window. + * + * However, there are certain "WS2812"-like LEDs, like the SK6812s, which work in a similar + * communication topology but use different timings for the window and the T1L, T1H, T0L and T0H. + * This means that, albeit the same driver being applicable, the timings must be adapted. + */ + +#ifndef WS2812_TIMING +# define WS2812_TIMING 1250 +#endif + +#ifndef WS2812_T1H +# define WS2812_T1H 900 // Width of a 1 bit in ns +#endif + +#ifndef WS2812_T1L +# define WS2812_T1L (WS2812_TIMING - WS2812_T1H) // Width of a 1 bit in ns +#endif + +#ifndef WS2812_T0H +# define WS2812_T0H 350 // Width of a 0 bit in ns +#endif + +#ifndef WS2812_T0L +# define WS2812_T0L (WS2812_TIMING - WS2812_T0H) // Width of a 0 bit in ns +#endif + +/* + * Older WS2812s can handle a reset time (TRST) of 50us, but recent + * component revisions require a minimum of 280us. + */ +#if !defined(WS2812_TRST_US) +# define WS2812_TRST_US 280 +#endif + +#if defined(RGBLIGHT_WS2812) +# define WS2812_LED_COUNT RGBLIGHT_LED_COUNT +#elif defined(RGB_MATRIX_WS2812) +# define WS2812_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + +void ws2812_init(void); + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50us to reset the LEDs + */ +void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds); diff --git a/keyboards/0_sixty/info.json b/keyboards/0_sixty/info.json index 79b9388ed3..ce76f808b2 100644 --- a/keyboards/0_sixty/info.json +++ b/keyboards/0_sixty/info.json @@ -1,5 +1,6 @@ { "manufacturer": "ven0mtr0n", + "url": "", "maintainer": "vinamarora8", "usb": { "vid": "0x7654", @@ -25,7 +26,8 @@ "resync": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_1x2uC": { "layout": [ diff --git a/keyboards/0_sixty/rules.mk b/keyboards/0_sixty/rules.mk new file mode 100644 index 0000000000..a0d06a89dd --- /dev/null +++ b/keyboards/0_sixty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 0_sixty/base diff --git a/keyboards/0xc7/61key/keyboard.json b/keyboards/0xc7/61key/keyboard.json index 969d0ce7f9..ab5127db38 100644 --- a/keyboards/0xc7/61key/keyboard.json +++ b/keyboards/0xc7/61key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "61Key", "manufacturer": "0xC7", + "url": "", "maintainer": "RealEmanGaming", "usb": { "vid": "0xE117", @@ -13,6 +14,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": false, "key_lock": true, "mousekey": false, diff --git a/keyboards/0xcb/1337/keyboard.json b/keyboards/0xcb/1337/keyboard.json index 9983d068bc..b2ef00906b 100644 --- a/keyboards/0xcb/1337/keyboard.json +++ b/keyboards/0xcb/1337/keyboard.json @@ -65,6 +65,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/0xcb/splaytoraid/rules.mk b/keyboards/0xcb/splaytoraid/rules.mk new file mode 100644 index 0000000000..65884dec4f --- /dev/null +++ b/keyboards/0xcb/splaytoraid/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 0xcb/splaytoraid/rp2040_ce diff --git a/keyboards/0xcb/static/keyboard.json b/keyboards/0xcb/static/keyboard.json index b0ec0b7a14..73a6a802cc 100644 --- a/keyboards/0xcb/static/keyboard.json +++ b/keyboards/0xcb/static/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/0xcb/tutelpad/keyboard.json b/keyboards/0xcb/tutelpad/keyboard.json index dfb4ee1a0b..2885377262 100644 --- a/keyboards/0xcb/tutelpad/keyboard.json +++ b/keyboards/0xcb/tutelpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TutelPad", "manufacturer": "ItsFiremanSam", + "url": "", "maintainer": "ItsFiremanSam", "usb": { "vid": "0xCB00", @@ -30,9 +31,12 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/1k/config.h b/keyboards/1k/config.h index fcd7fe6f94..0d0cd3712a 100644 --- a/keyboards/1k/config.h +++ b/keyboards/1k/config.h @@ -32,5 +32,3 @@ #define USB_INTR_ENABLE_BIT PCIE #define USB_INTR_PENDING_BIT PCIF #define USB_INTR_VECTOR SIG_PIN_CHANGE - -#define WS2812_LED_COUNT 1 diff --git a/keyboards/1k/keyboard.json b/keyboards/1k/keyboard.json index 269f11782a..440856d0bd 100644 --- a/keyboards/1k/keyboard.json +++ b/keyboards/1k/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "1K", "manufacturer": "MakotoKurauchi", + "url": "", "maintainer": "MakotoKurauchi", "usb": { "vid": "0x0009", diff --git a/keyboards/1k/keymaps/default/keymap.c b/keyboards/1k/keymaps/default/keymap.c index 11c5db9dd6..3261a9f922 100644 --- a/keyboards/1k/keymaps/default/keymap.c +++ b/keyboards/1k/keymaps/default/keymap.c @@ -6,13 +6,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1( - UG_HUEU + RGB_HUI ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (keycode) { - case QK_UNDERGLOW_HUE_UP: + case RGB_HUI: rgblite_increase_hue(); break; } diff --git a/keyboards/1k/keymaps/default/rgblite.h b/keyboards/1k/keymaps/default/rgblite.h index 217ab37956..2e0b898699 100644 --- a/keyboards/1k/keymaps/default/rgblite.h +++ b/keyboards/1k/keymaps/default/rgblite.h @@ -10,15 +10,15 @@ static inline void rgblite_init(void) { ws2812_init(); } -static inline void rgblite_setrgb(rgb_t rgb) { - ws2812_set_color_all(rgb.r, rgb.g, rgb.b); - ws2812_flush(); +static inline void rgblite_setrgb(RGB rgb) { + rgb_led_t leds[RGBLIGHT_LED_COUNT] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}}; + ws2812_setleds(leds, RGBLIGHT_LED_COUNT); } static void rgblite_increase_hue(void) { static uint8_t state = 0; - hsv_t hsv = { 255, 255, 255 }; + HSV hsv = { 255, 255, 255 }; hsv.h = state; state = (state + 8) % 256; diff --git a/keyboards/1upkeyboards/1up60hse/keyboard.json b/keyboards/1upkeyboards/1up60hse/keyboard.json index 9f1d0c0ff4..990b51c1f8 100644 --- a/keyboards/1upkeyboards/1up60hse/keyboard.json +++ b/keyboards/1upkeyboards/1up60hse/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "1up60hse", "manufacturer": "1upkeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", diff --git a/keyboards/1upkeyboards/1up60hte/keyboard.json b/keyboards/1upkeyboards/1up60hte/keyboard.json index 4f781f91ee..53e91017dd 100644 --- a/keyboards/1upkeyboards/1up60hte/keyboard.json +++ b/keyboards/1upkeyboards/1up60hte/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -60,15 +62,11 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], + "community_layouts": ["60_hhkb", "60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c index bc21fb2c4a..40d3d5c3e9 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c @@ -17,7 +17,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( QK_BOOT, 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_DEL, KC_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, UG_VALD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, diff --git a/keyboards/1upkeyboards/1up60rgb/keyboard.json b/keyboards/1upkeyboards/1up60rgb/keyboard.json index e863edae1b..f4ba111251 100644 --- a/keyboards/1upkeyboards/1up60rgb/keyboard.json +++ b/keyboards/1upkeyboards/1up60rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "1UP RGB Underglow PCB", "manufacturer": "1upkeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/1upkeyboards/1upocarina/keyboard.json b/keyboards/1upkeyboards/1upocarina/keyboard.json index feeafdedbd..1f33c048c1 100644 --- a/keyboards/1upkeyboards/1upocarina/keyboard.json +++ b/keyboards/1upkeyboards/1upocarina/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c index ff93f51ee4..86e3f440fe 100644 --- a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_1x5( - RM_TOGG, RM_NEXT, KC_TRNS, RM_VALD, RM_VALU + RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI ) }; diff --git a/keyboards/1upkeyboards/1upslider8/keyboard.json b/keyboards/1upkeyboards/1upslider8/keyboard.json index fd969c8f06..6b65361f67 100644 --- a/keyboards/1upkeyboards/1upslider8/keyboard.json +++ b/keyboards/1upkeyboards/1upslider8/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c index 2f0ac1976e..9e39f9d3e3 100644 --- a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - RM_TOGG, + RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ) @@ -26,6 +26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)} + [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)} }; #endif diff --git a/keyboards/1upkeyboards/1upsuper16v3/keyboard.json b/keyboards/1upkeyboards/1upsuper16v3/keyboard.json index b3b7ef5535..7ef33a0342 100644 --- a/keyboards/1upkeyboards/1upsuper16v3/keyboard.json +++ b/keyboards/1upkeyboards/1upsuper16v3/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c index 79c99fd7db..e7be96bd81 100644 --- a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c @@ -24,9 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_ortho_4x4( - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, - RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ) }; diff --git a/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json b/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json index 6d9fc9fe01..63f76eb1a6 100644 --- a/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json +++ b/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c index 72445452bc..bc0d37eca0 100644 --- a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ONE] = LAYOUT_ortho_4x12 ( - RM_TOGG, + RGB_TOG, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FOUR] = LAYOUT_ortho_4x12 ( KC_MUTE, - _______, QK_BOOT, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , + _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, + [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json b/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json index 6cd624bad0..ed1f139126 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json b/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json index 402143991a..aa19a502b9 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk new file mode 100644 index 0000000000..48aea570e0 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 1upkeyboards/pi40/mit_v1_0 diff --git a/keyboards/1upkeyboards/pi50/config.h b/keyboards/1upkeyboards/pi50/config.h index 8d40ecdaec..e20a9854a5 100644 --- a/keyboards/1upkeyboards/pi50/config.h +++ b/keyboards/1upkeyboards/pi50/config.h @@ -8,4 +8,3 @@ #define I2C_DRIVER I2CD1 #define OLED_BRIGHTNESS 128 #define OLED_FONT_H "keyboards/1upkeyboards/pi50/lib/glcdfont.c" -#define RGB_MATRIX_MODE_NAME_ENABLE diff --git a/keyboards/1upkeyboards/pi50/info.json b/keyboards/1upkeyboards/pi50/info.json index dd222b2b5d..409fbecbc8 100644 --- a/keyboards/1upkeyboards/pi50/info.json +++ b/keyboards/1upkeyboards/pi50/info.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c index 40b3c520e0..bd66c00bff 100644 --- a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ONE] = LAYOUT_ortho_5x12 ( - RM_TOGG, + RGB_TOG, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, + [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } diff --git a/keyboards/1upkeyboards/pi50/pi50.c b/keyboards/1upkeyboards/pi50/pi50.c index c55b2669ef..ea73875970 100644 --- a/keyboards/1upkeyboards/pi50/pi50.c +++ b/keyboards/1upkeyboards/pi50/pi50.c @@ -18,6 +18,43 @@ #include #include +#if defined(RGB_MATRIX_EFFECT) +# undef RGB_MATRIX_EFFECT +#endif // defined(RGB_MATRIX_EFFECT) + +#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x, +enum { + RGB_MATRIX_EFFECT_NONE, +#include "rgb_matrix_effects.inc" +#undef RGB_MATRIX_EFFECT +#ifdef RGB_MATRIX_CUSTOM_KB +# include "rgb_matrix_kb.inc" +#endif +#ifdef RGB_MATRIX_CUSTOM_USER +# include "rgb_matrix_user.inc" +#endif +}; + +#define RGB_MATRIX_EFFECT(x) \ + case RGB_MATRIX_EFFECT_##x: \ + return #x; +const char* rgb_matrix_name(uint8_t effect) { + switch (effect) { + case RGB_MATRIX_EFFECT_NONE: + return "NONE"; +#include "rgb_matrix_effects.inc" +#undef RGB_MATRIX_EFFECT +#ifdef RGB_MATRIX_CUSTOM_KB +# include "rgb_matrix_kb.inc" +#endif +#ifdef RGB_MATRIX_CUSTOM_USER +# include "rgb_matrix_user.inc" +#endif + default: + return "UNKNOWN"; + } +} + #ifdef OLED_ENABLE static uint32_t oled_logo_timer = 0; @@ -111,7 +148,7 @@ void user_oled_magic(void) { oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false); oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false); - char *mode_name = strdup(rgb_matrix_get_mode_name(rgb_matrix_get_mode())); + char *mode_name = strdup(rgb_matrix_name(rgb_matrix_get_mode())); if (mode_name != NULL) { int len = strlen(mode_name); bool capitalize_next = true; diff --git a/keyboards/1upkeyboards/pi50/rules.mk b/keyboards/1upkeyboards/pi50/rules.mk new file mode 100644 index 0000000000..a9660074af --- /dev/null +++ b/keyboards/1upkeyboards/pi50/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 1upkeyboards/pi50/grid diff --git a/keyboards/1upkeyboards/pi60/keyboard.json b/keyboards/1upkeyboards/pi60/keyboard.json index b25204bd13..45c3876a6b 100644 --- a/keyboards/1upkeyboards/pi60/keyboard.json +++ b/keyboards/1upkeyboards/pi60/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -102,20 +104,15 @@ }, "community_layouts": [ "60_ansi", - "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", + "60_ansi_arrow", "60_iso", - "60_iso_arrow", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -397,7 +394,7 @@ {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c index 5d1c82a023..8a83e83b52 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/1upkeyboards/pi60_hse/keyboard.json b/keyboards/1upkeyboards/pi60_hse/keyboard.json index ec60c0c3f8..d5a5f86187 100644 --- a/keyboards/1upkeyboards/pi60_hse/keyboard.json +++ b/keyboards/1upkeyboards/pi60_hse/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c index ddb7f98869..22e1a4c0d9 100644 --- a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_60_ansi_split_bs_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/1upkeyboards/pi60_rgb/keyboard.json b/keyboards/1upkeyboards/pi60_rgb/keyboard.json index 6e362eb8c9..21dab3f71a 100644 --- a/keyboards/1upkeyboards/pi60_rgb/keyboard.json +++ b/keyboards/1upkeyboards/pi60_rgb/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index 3b5859474a..9da4168d47 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "super16", "manufacturer": "1upkeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", @@ -78,6 +79,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -94,7 +97,8 @@ "rows": ["D1", "D0", "F4", "F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x4", "numpad_4x4"], "layouts": { "LAYOUT_ortho_4x4": { diff --git a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c index 640687c790..4414a658c5 100644 --- a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c @@ -17,9 +17,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_4x4( /* Base */ - RM_TOGG, KC_1, KC_U, KC_P, - RM_NEXT, KC_1, KC_U, KC_P, - RM_TOGG, KC_1, KC_U, KC_P, - RM_NEXT, KC_1, KC_U, KC_P + RGB_TOG, KC_1, KC_U, KC_P, + RGB_MOD, KC_1, KC_U, KC_P, + RGB_TOG, KC_1, KC_U, KC_P, + RGB_MOD, KC_1, KC_U, KC_P ), }; diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json index 5c5123453c..652b03006e 100644 --- a/keyboards/1upkeyboards/super16v2/keyboard.json +++ b/keyboards/1upkeyboards/super16v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "super16v2", "manufacturer": "1upkeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", @@ -50,6 +51,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c index ac30909566..ba6d6c4d71 100644 --- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( /* Fn Layer */ - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, - RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ), }; diff --git a/keyboards/1upkeyboards/sweet16/info.json b/keyboards/1upkeyboards/sweet16/info.json index 78c59fb2ae..5fb70bb8e9 100644 --- a/keyboards/1upkeyboards/sweet16/info.json +++ b/keyboards/1upkeyboards/sweet16/info.json @@ -1,9 +1,12 @@ { "keyboard_name": "Sweet16", "manufacturer": "1up Keyboards", + "url": "", "maintainer": "skullydazed", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk new file mode 100644 index 0000000000..7d269ac93f --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 1upkeyboards/sweet16/v1 diff --git a/keyboards/1upkeyboards/sweet16/v1/keyboard.json b/keyboards/1upkeyboards/sweet16/v1/keyboard.json index a8c5bf7e92..3ac73ce8eb 100644 --- a/keyboards/1upkeyboards/sweet16/v1/keyboard.json +++ b/keyboards/1upkeyboards/sweet16/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sweet16", "manufacturer": "1up Keyboards", + "url": "", "maintainer": "skullydazed", "usb": { "vid": "0x6F75", @@ -48,7 +49,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json index 40a0ec4039..d8d6c5e3ea 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c index 6ccf21e18f..14168ee700 100644 --- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, - RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ) }; @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #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(RM_VALD, RM_VALU) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; #endif \ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json index d8ff291e69..d46f723a17 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/25keys/aleth42/rules.mk b/keyboards/25keys/aleth42/rules.mk new file mode 100644 index 0000000000..8034ad5440 --- /dev/null +++ b/keyboards/25keys/aleth42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 25keys/aleth42/rev1 diff --git a/keyboards/25keys/cassette42/keyboard.json b/keyboards/25keys/cassette42/keyboard.json index 97aab705ca..cba2e61272 100644 --- a/keyboards/25keys/cassette42/keyboard.json +++ b/keyboards/25keys/cassette42/keyboard.json @@ -43,7 +43,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "direct": [ ["B4", "F6", "F5", "F4", "B5", "F7"] diff --git a/keyboards/25keys/zinc/keymaps/default/keymap.c b/keyboards/25keys/zinc/keymaps/default/keymap.c index 4c4a6a5f3e..2b523b4cde 100644 --- a/keyboards/25keys/zinc/keymaps/default/keymap.c +++ b/keyboards/25keys/zinc/keymaps/default/keymap.c @@ -23,7 +23,10 @@ enum layer_number { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, ADJUST, BACKLIT, @@ -32,9 +35,12 @@ enum custom_keycodes { RGBRST }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -140,8 +146,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_ortho_4x12( _______, QK_BOOT, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS, - _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS, - UG_PREV, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS, + RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END ) }; @@ -163,6 +169,25 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around @@ -221,7 +246,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case QK_UNDERGLOW_MODE_PREVIOUS: + case RGB_RMOD: #if defined(RGBLIGHT_ENABLE) if (record->event.pressed) { rgblight_mode_noeeprom(RGB_current_config.mode); @@ -232,7 +257,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: #if defined(RGBLIGHT_ENABLE) if (record->event.pressed) { rgblight_mode_noeeprom(RGB_current_config.mode); diff --git a/keyboards/25keys/zinc/rev1/keyboard.json b/keyboards/25keys/zinc/rev1/keyboard.json index fc7160cb6c..fd11273c18 100644 --- a/keyboards/25keys/zinc/rev1/keyboard.json +++ b/keyboards/25keys/zinc/rev1/keyboard.json @@ -8,7 +8,8 @@ "pid": "0xEA3B", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "cols": ["F4", "D4", "C6", "D7", "E6", "B4"], "rows": ["F6", "F7", "B1", "B3"] diff --git a/keyboards/25keys/zinc/reva/keyboard.json b/keyboards/25keys/zinc/reva/keyboard.json index 6acd188c75..dedc8f22f8 100644 --- a/keyboards/25keys/zinc/reva/keyboard.json +++ b/keyboards/25keys/zinc/reva/keyboard.json @@ -8,7 +8,8 @@ "pid": "0xEA3B", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], "rows": ["D4", "C6", "D7", "E6"] diff --git a/keyboards/25keys/zinc/rules.mk b/keyboards/25keys/zinc/rules.mk new file mode 100644 index 0000000000..1edcb0a345 --- /dev/null +++ b/keyboards/25keys/zinc/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 25keys/zinc/rev1 diff --git a/keyboards/2key2crawl/keyboard.json b/keyboards/2key2crawl/keyboard.json index 179c9d59ad..fec55c811a 100644 --- a/keyboards/2key2crawl/keyboard.json +++ b/keyboards/2key2crawl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "2Key2Crawl", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": false, diff --git a/keyboards/30wer/keyboard.json b/keyboards/30wer/keyboard.json index 4d27043ed9..606c13f7aa 100644 --- a/keyboards/30wer/keyboard.json +++ b/keyboards/30wer/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "30wer", "manufacturer": "8o7wer", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, @@ -19,7 +21,8 @@ "rows": ["E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/3keyecosystem/2key2/keyboard.json b/keyboards/3keyecosystem/2key2/keyboard.json index 2b4659f252..5c77fdf6ae 100644 --- a/keyboards/3keyecosystem/2key2/keyboard.json +++ b/keyboards/3keyecosystem/2key2/keyboard.json @@ -69,6 +69,8 @@ "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c index 0fe7cdc247..c32f2a04d2 100644 --- a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c @@ -89,9 +89,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (IS_MOUSEKEY_BUTTON(keycode)) { report_mouse_t currentReport = pointing_device_get_report(); if (record->event.pressed) { - currentReport.buttons |= 1 << (keycode - QK_MOUSE_BUTTON_1); + currentReport.buttons |= 1 << (keycode - KC_MS_BTN1); } else { - currentReport.buttons &= ~(1 << (keycode - QK_MOUSE_BUTTON_1)); + currentReport.buttons &= ~(1 << (keycode - KC_MS_BTN1)); } pointing_device_set_report(currentReport); pointing_device_send(); diff --git a/keyboards/40percentclub/25/keyboard.json b/keyboards/40percentclub/25/keyboard.json index b6c6621eed..e23d0578c3 100644 --- a/keyboards/40percentclub/25/keyboard.json +++ b/keyboards/40percentclub/25/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The 5x5 Keyboard", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -31,7 +32,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x5", "ortho_5x10"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_5x5", diff --git a/keyboards/40percentclub/4pack/keyboard.json b/keyboards/40percentclub/4pack/keyboard.json index 08c70e61d0..a114e97dbb 100644 --- a/keyboards/40percentclub/4pack/keyboard.json +++ b/keyboards/40percentclub/4pack/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "4pack", "manufacturer": "40percentclub", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -11,10 +12,13 @@ "driver": "timer", "pins": ["F6", "F7"] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/40percentclub/4x4/keyboard.json b/keyboards/40percentclub/4x4/keyboard.json index cd5e0f4c0c..735a3865da 100644 --- a/keyboards/40percentclub/4x4/keyboard.json +++ b/keyboards/40percentclub/4x4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The 4x4 Keyboard", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/5x5/keyboard.json b/keyboards/40percentclub/5x5/keyboard.json index 1a76644489..039d9fe47b 100644 --- a/keyboards/40percentclub/5x5/keyboard.json +++ b/keyboards/40percentclub/5x5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The 5x5 Keyboard", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/6lit/keyboard.json b/keyboards/40percentclub/6lit/keyboard.json index ffab3266ae..52a8914d7d 100644 --- a/keyboards/40percentclub/6lit/keyboard.json +++ b/keyboards/40percentclub/6lit/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The 6lit Macropad", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -31,7 +32,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_2x3", "ortho_2x6"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_2x3", diff --git a/keyboards/40percentclub/foobar/keyboard.json b/keyboards/40percentclub/foobar/keyboard.json index b47af21598..ec568b2382 100644 --- a/keyboards/40percentclub/foobar/keyboard.json +++ b/keyboards/40percentclub/foobar/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The foobar Keyboard", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -31,7 +32,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_3x10"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_3x5", diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json index 644001bc05..0c9f609cdc 100644 --- a/keyboards/40percentclub/gherkin/info.json +++ b/keyboards/40percentclub/gherkin/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Gherkin", "manufacturer": "40 Percent Club", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/half_n_half/keyboard.json b/keyboards/40percentclub/half_n_half/keyboard.json index 1b19794cce..4f18d235b2 100644 --- a/keyboards/40percentclub/half_n_half/keyboard.json +++ b/keyboards/40percentclub/half_n_half/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "half_n_half", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -31,7 +32,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/40percentclub/i75/info.json b/keyboards/40percentclub/i75/info.json index 197667cba5..a7124adec2 100644 --- a/keyboards/40percentclub/i75/info.json +++ b/keyboards/40percentclub/i75/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "i75", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/i75/promicro/keyboard.json b/keyboards/40percentclub/i75/promicro/keyboard.json index 58a9b11b1c..933c4f8616 100644 --- a/keyboards/40percentclub/i75/promicro/keyboard.json +++ b/keyboards/40percentclub/i75/promicro/keyboard.json @@ -4,5 +4,6 @@ "rows": ["B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk new file mode 100644 index 0000000000..48b0427550 --- /dev/null +++ b/keyboards/40percentclub/i75/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 40percentclub/i75/promicro diff --git a/keyboards/40percentclub/luddite/keyboard.json b/keyboards/40percentclub/luddite/keyboard.json index f8c47ef7d4..a9f79d7369 100644 --- a/keyboards/40percentclub/luddite/keyboard.json +++ b/keyboards/40percentclub/luddite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Luddite", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -48,7 +51,8 @@ "ws2812": { "pin": "B4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/40percentclub/mf68/keyboard.json b/keyboards/40percentclub/mf68/keyboard.json index fd3d5be874..45585d5e47 100644 --- a/keyboards/40percentclub/mf68/keyboard.json +++ b/keyboards/40percentclub/mf68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MF68", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,7 +32,8 @@ "pin": "B5", "breathing": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/40percentclub/nano/keyboard.json b/keyboards/40percentclub/nano/keyboard.json index 46158c11d6..547aed16f9 100644 --- a/keyboards/40percentclub/nano/keyboard.json +++ b/keyboards/40percentclub/nano/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Nano", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -25,9 +26,12 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/40percentclub/nein/keyboard.json b/keyboards/40percentclub/nein/keyboard.json index d2d48e6b0c..9e1711f71e 100644 --- a/keyboards/40percentclub/nein/keyboard.json +++ b/keyboards/40percentclub/nein/keyboard.json @@ -8,9 +8,12 @@ "pid": "0x9999", "device_version": "99.9.9" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/40percentclub/nori/keyboard.json b/keyboards/40percentclub/nori/keyboard.json index e4f2b3604a..968e74e19e 100644 --- a/keyboards/40percentclub/nori/keyboard.json +++ b/keyboards/40percentclub/nori/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The nori Keyboard", "manufacturer": "di0ib", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -50,7 +51,8 @@ "ws2812": { "pin": "B4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x4", "ortho_4x12"], "layouts": { "LAYOUT_ortho_4x4": { diff --git a/keyboards/40percentclub/nori/keymaps/default/keymap.c b/keyboards/40percentclub/nori/keymaps/default/keymap.c index 1c7405f2ac..03f8c15787 100644 --- a/keyboards/40percentclub/nori/keymaps/default/keymap.c +++ b/keyboards/40percentclub/nori/keymaps/default/keymap.c @@ -13,14 +13,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -136,3 +138,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} diff --git a/keyboards/40percentclub/polyandry/info.json b/keyboards/40percentclub/polyandry/info.json index bddfe9e556..49b8bedbe3 100644 --- a/keyboards/40percentclub/polyandry/info.json +++ b/keyboards/40percentclub/polyandry/info.json @@ -1,9 +1,12 @@ { "keyboard_name": "Polypad", "manufacturer": "di0ib", + "url": "", "maintainer": "QMK", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/40percentclub/polyandry/promicro/keyboard.json b/keyboards/40percentclub/polyandry/promicro/keyboard.json index e8b2fcdb23..a8169c93dd 100644 --- a/keyboards/40percentclub/polyandry/promicro/keyboard.json +++ b/keyboards/40percentclub/polyandry/promicro/keyboard.json @@ -4,5 +4,6 @@ "rows": ["D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/40percentclub/polyandry/rules.mk b/keyboards/40percentclub/polyandry/rules.mk new file mode 100644 index 0000000000..3064c8202c --- /dev/null +++ b/keyboards/40percentclub/polyandry/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 40percentclub/polyandry/promicro diff --git a/keyboards/40percentclub/sixpack/keyboard.json b/keyboards/40percentclub/sixpack/keyboard.json index 892d929ff5..059c9de091 100644 --- a/keyboards/40percentclub/sixpack/keyboard.json +++ b/keyboards/40percentclub/sixpack/keyboard.json @@ -19,10 +19,13 @@ "num_lock": "D5", "on_state": 0 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/40percentclub/tomato/keyboard.json b/keyboards/40percentclub/tomato/keyboard.json index 6fc1d7df98..c0b526cbc6 100644 --- a/keyboards/40percentclub/tomato/keyboard.json +++ b/keyboards/40percentclub/tomato/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tomato", "manufacturer": "40 Percent Club", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -48,7 +51,8 @@ "rows": ["F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_3x10"], "layouts": { "LAYOUT_ortho_3x10": { diff --git a/keyboards/40percentclub/ut47/keyboard.json b/keyboards/40percentclub/ut47/keyboard.json index 00c8edef69..62e4a940a1 100644 --- a/keyboards/40percentclub/ut47/keyboard.json +++ b/keyboards/40percentclub/ut47/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ut47", "manufacturer": "40percent.club", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/ut47/keymaps/default/keymap.c b/keyboards/40percentclub/ut47/keymaps/default/keymap.c index 4a9de82492..4eb2c190c1 100644 --- a/keyboards/40percentclub/ut47/keymaps/default/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/default/keymap.c @@ -101,7 +101,7 @@ LAYOUT( /* Tab */ KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LED_TOG, LED_CHG, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R ), }; diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c index 17c0be7772..86ceefaafb 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c @@ -53,7 +53,7 @@ LAYOUT( /* Tab */ KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R ), }; diff --git a/keyboards/45_ats/keyboard.json b/keyboards/45_ats/keyboard.json index 17ef036999..5e5465f264 100644 --- a/keyboards/45_ats/keyboard.json +++ b/keyboards/45_ats/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "45ATS", "manufacturer": "Abec13", + "url": "", "maintainer": "The-Royal", "usb": { "vid": "0xAB13", diff --git a/keyboards/4by3/keyboard.json b/keyboards/4by3/keyboard.json index 4de26c809d..8801a1e920 100644 --- a/keyboards/4by3/keyboard.json +++ b/keyboards/4by3/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_horizontal" }, diff --git a/keyboards/4pplet/aekiso60/info.json b/keyboards/4pplet/aekiso60/info.json index 50dd5e55df..80d5ab233d 100644 --- a/keyboards/4pplet/aekiso60/info.json +++ b/keyboards/4pplet/aekiso60/info.json @@ -1,5 +1,6 @@ { "manufacturer": "4pplet", + "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444" diff --git a/keyboards/4pplet/aekiso60/rev_a/keyboard.json b/keyboards/4pplet/aekiso60/rev_a/keyboard.json index 4fcf8a83f0..5e236adc9a 100644 --- a/keyboards/4pplet/aekiso60/rev_a/keyboard.json +++ b/keyboards/4pplet/aekiso60/rev_a/keyboard.json @@ -26,6 +26,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/bootleg/rev_a/keyboard.json b/keyboards/4pplet/bootleg/rev_a/keyboard.json index 18ded6df53..10aa3de678 100644 --- a/keyboards/4pplet/bootleg/rev_a/keyboard.json +++ b/keyboards/4pplet/bootleg/rev_a/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json b/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json index 59a518b971..18d8ba5d8a 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json @@ -64,16 +64,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -356,7 +352,7 @@ {"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json b/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json index bf7d11f74b..e0356d5dad 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json @@ -64,19 +64,17 @@ "processor": "STM32F072", "bootloader": "stm32-dfu", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], "layouts": { "LAYOUT_all": { @@ -362,7 +360,7 @@ {"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c index 6c2698b4f8..d720096ad3 100644 --- a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c +++ b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c @@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json index 8d3a519a87..56e7a25de4 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json +++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Perk60 ISO Rev A", "manufacturer": "4pplet", + "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444", @@ -41,6 +42,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index c4ab064cb2..2de3acc60d 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -14,20 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif - -#ifndef CAPS_LOCK_COLOR -# define CAPS_LOCK_COLOR RGB_RED -#endif - -#ifndef CAPS_LED_GROUP -// change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers -# define CAPS_LED_GROUP LED_FLAG_INDICATOR -#endif +#include "rev_a.h" #ifdef RGB_MATRIX_ENABLE const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.h b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h new file mode 100644 index 0000000000..2f4fa7531a --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR RGB_RED +#define CAPS_LED_GROUP LED_FLAG_INDICATOR // change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers + +#include "quantum.h" diff --git a/keyboards/4pplet/steezy60/rev_a/keyboard.json b/keyboards/4pplet/steezy60/rev_a/keyboard.json index bab6a0a9a8..ffd4464223 100644 --- a/keyboards/4pplet/steezy60/rev_a/keyboard.json +++ b/keyboards/4pplet/steezy60/rev_a/keyboard.json @@ -18,11 +18,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan" + "60_iso_tsangan", + "60_tsangan_hhkb" ], "diode_direction": "COL2ROW", "matrix_pins": { @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -55,9 +57,6 @@ "ws2812": { "pin": "D3" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -592,7 +591,7 @@ {"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/steezy60/rev_b/keyboard.json b/keyboards/4pplet/steezy60/rev_b/keyboard.json index 5f1be975ce..8ff41bd156 100644 --- a/keyboards/4pplet/steezy60/rev_b/keyboard.json +++ b/keyboards/4pplet/steezy60/rev_b/keyboard.json @@ -14,11 +14,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan" + "60_iso_tsangan", + "60_tsangan_hhkb" ], "diode_direction": "COL2ROW", "matrix_pins": { @@ -27,6 +27,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -51,9 +53,6 @@ "ws2812": { "pin": "A8" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -588,7 +587,7 @@ {"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/unextended_std/rev_a/keyboard.json b/keyboards/4pplet/unextended_std/rev_a/keyboard.json index be89861e25..1b1909854a 100644 --- a/keyboards/4pplet/unextended_std/rev_a/keyboard.json +++ b/keyboards/4pplet/unextended_std/rev_a/keyboard.json @@ -19,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "key_lock": true diff --git a/keyboards/4pplet/waffling60/rev_a/keyboard.json b/keyboards/4pplet/waffling60/rev_a/keyboard.json index 6a3c2ea0ae..cbb24bd56a 100644 --- a/keyboards/4pplet/waffling60/rev_a/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_a/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/waffling60/rev_b/keyboard.json b/keyboards/4pplet/waffling60/rev_b/keyboard.json index 158f4ecee5..54e51b388b 100644 --- a/keyboards/4pplet/waffling60/rev_b/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_b/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.c b/keyboards/4pplet/waffling60/rev_b/rev_b.c index 8923ba6f7d..c03f3630e6 100644 --- a/keyboards/4pplet/waffling60/rev_b/rev_b.c +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.c @@ -14,11 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif +#include "rev_b.h" bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.h b/keyboards/4pplet/waffling60/rev_b/rev_b.h new file mode 100644 index 0000000000..57a4964202 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.h @@ -0,0 +1,22 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE true +//#define CAPS_LOCK_COLOR HSV_ORANGE + +#include "quantum.h" diff --git a/keyboards/4pplet/waffling60/rev_c/keyboard.json b/keyboards/4pplet/waffling60/rev_c/keyboard.json index 8f3fd7da9a..a7c23cc349 100644 --- a/keyboards/4pplet/waffling60/rev_c/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_c/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.c b/keyboards/4pplet/waffling60/rev_c/rev_c.c index f7f78f679d..fc7e99b601 100644 --- a/keyboards/4pplet/waffling60/rev_c/rev_c.c +++ b/keyboards/4pplet/waffling60/rev_c/rev_c.c @@ -14,11 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif +#include "rev_c.h" bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.h b/keyboards/4pplet/waffling60/rev_c/rev_c.h new file mode 100644 index 0000000000..641b663336 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/rev_c.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE true +//#define CAPS_LOCK_COLOR HSV_ORANGE + +#include "quantum.h" diff --git a/keyboards/4pplet/waffling60/rev_d/rev_d.c b/keyboards/4pplet/waffling60/rev_d/rev_d.c index f7f78f679d..2e0511459d 100644 --- a/keyboards/4pplet/waffling60/rev_d/rev_d.c +++ b/keyboards/4pplet/waffling60/rev_d/rev_d.c @@ -14,11 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif +#include "rev_d.h" bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_d/rev_d.h b/keyboards/4pplet/waffling60/rev_d/rev_d.h new file mode 100644 index 0000000000..641b663336 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/rev_d.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE true +//#define CAPS_LOCK_COLOR HSV_ORANGE + +#include "quantum.h" diff --git a/keyboards/4pplet/waffling60/rev_e/keyboard.json b/keyboards/4pplet/waffling60/rev_e/keyboard.json index aed977061f..4cd2501bbd 100644 --- a/keyboards/4pplet/waffling60/rev_e/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, @@ -47,19 +49,7 @@ "ws2812": { "pin": "A8" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -520,7 +510,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.c b/keyboards/4pplet/waffling60/rev_e/rev_e.c index ca71947bfe..81941d54be 100644 --- a/keyboards/4pplet/waffling60/rev_e/rev_e.c +++ b/keyboards/4pplet/waffling60/rev_e/rev_e.c @@ -14,15 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif - -#ifndef CAPS_LOCK_COLOR -# define CAPS_LOCK_COLOR HSV_GREEN -#endif +#include "rev_e.h" void keyboard_pre_init_kb(void) { rgblight_set_effect_range(0, 16); diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.h b/keyboards/4pplet/waffling60/rev_e/rev_e.h new file mode 100644 index 0000000000..61ebac1912 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/rev_e.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR HSV_GREEN diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json index 0dab5e799e..a1b5d0e11e 100644 --- a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, @@ -48,12 +50,9 @@ "pin": "A8" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -123,7 +122,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json index 41bb967bdc..a9bfad4d62 100644 --- a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/4pplet/waffling80/info.json b/keyboards/4pplet/waffling80/info.json index c003b16fed..72fcd4615b 100644 --- a/keyboards/4pplet/waffling80/info.json +++ b/keyboards/4pplet/waffling80/info.json @@ -1,5 +1,6 @@ { "manufacturer": "4pplet", + "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444" diff --git a/keyboards/4pplet/waffling80/readme.md b/keyboards/4pplet/waffling80/readme.md index 356990dd28..3eb0745b3f 100644 --- a/keyboards/4pplet/waffling80/readme.md +++ b/keyboards/4pplet/waffling80/readme.md @@ -8,8 +8,6 @@ A TKL PCB attempting a87 compatibility with different switch and layout-options. Make example for this keyboard (after setting up your build environment): make 4pplet/waffling80/rev_a:default - make 4pplet/waffling80/rev_b:default - make 4pplet/waffling80/rev_b_ansi:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/4pplet/waffling80/rev_a/keyboard.json b/keyboards/4pplet/waffling80/rev_a/keyboard.json index 0623b7ddaa..157cefa536 100644 --- a/keyboards/4pplet/waffling80/rev_a/keyboard.json +++ b/keyboards/4pplet/waffling80/rev_a/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/4pplet/waffling80/rev_a/rev_a.c b/keyboards/4pplet/waffling80/rev_a/rev_a.c index 9983830548..d1032e7c6c 100644 --- a/keyboards/4pplet/waffling80/rev_a/rev_a.c +++ b/keyboards/4pplet/waffling80/rev_a/rev_a.c @@ -14,19 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE 1 -#endif - -#ifndef SCROLL_LOCK_ENABLE -# define SCROLL_LOCK_ENABLE 1 -#endif - -// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN +#include "rev_a.h" bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling80/rev_a/rev_a.h b/keyboards/4pplet/waffling80/rev_a/rev_a.h new file mode 100644 index 0000000000..c8d4c8b971 --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_a/rev_a.h @@ -0,0 +1,26 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE 1 +#define SCROLL_LOCK_ENABLE 1 + +// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN + +#include "quantum.h" diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.c b/keyboards/4pplet/waffling80/rev_b/rev_b.c index 9983830548..15e44b93a1 100644 --- a/keyboards/4pplet/waffling80/rev_b/rev_b.c +++ b/keyboards/4pplet/waffling80/rev_b/rev_b.c @@ -14,19 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE 1 -#endif - -#ifndef SCROLL_LOCK_ENABLE -# define SCROLL_LOCK_ENABLE 1 -#endif - -// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN +#include "rev_b.h" bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.h b/keyboards/4pplet/waffling80/rev_b/rev_b.h new file mode 100644 index 0000000000..c8d4c8b971 --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/rev_b.h @@ -0,0 +1,26 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE 1 +#define SCROLL_LOCK_ENABLE 1 + +// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN + +#include "quantum.h" diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/config.h b/keyboards/4pplet/waffling80/rev_b_ansi/config.h deleted file mode 100644 index 036d08cc73..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#define WS2812_EXTERNAL_PULLUP diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json b/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json deleted file mode 100644 index 5a449e5e7c..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "keyboard_name": "waffling80 Rev B ANSI HS", - "usb": { - "pid": "0x0017", - "device_version": "0.0.1" - }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 2 - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "ws2812": { - "pin": "A8" - }, - "matrix_pins": { - "cols": ["B2", "B1", "B0", "A7", "A6", "A3", "B9", "B8"], - "rows": ["B13", "B12", "A5", "A4", "A2", "A1", "F0", "C15", "C13", "C14", "F1", "A0"] - }, - "diode_direction": "COL2ROW", - "processor": "STM32F072", - "bootloader": "stm32-dfu" -} diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/readme.md b/keyboards/4pplet/waffling80/rev_b_ansi/readme.md deleted file mode 100644 index f374f8c89b..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# waffling80 - -A TKL PCB attempting a87 and a88 compatibility with different switch and layout-options. - -* Keyboard Maintainer: [4pplet](https://github.com/4pplet) -* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80) - -Make example for this keyboard (after setting up your build environment): - - make 4pplet/waffling80/rev_b_ansi:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -How to enter bootloader (DFU): -* Hold the reset-header for a few seconds on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware. - -Alternative option if the firmware is already pre-flashed: -* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c deleted file mode 100644 index 2cadd18a27..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2024 Stefan Sundin "4pplet" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE 1 -#endif - -#ifndef SCROLL_LOCK_ENABLE -# define SCROLL_LOCK_ENABLE 1 -#endif - -// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (SCROLL_LOCK_ENABLE && res) { - if(led_state.scroll_lock) { - #ifdef SCROLL_LOCK_COLOR - rgblight_sethsv_at(SCROLL_LOCK_COLOR, 0); - #else - rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0); - #endif - } - else { - rgblight_sethsv_at(HSV_OFF, 0); - } - } - if (CAPS_LOCK_ENABLE && res) { - if(led_state.caps_lock) { - #ifdef CAPS_LOCK_COLOR - rgblight_sethsv_at(CAPS_LOCK_COLOR, 1); - #else - rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 1); - #endif - } - else{ - rgblight_sethsv_at(HSV_OFF, 1); - } - } - return res; -} - diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk b/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk deleted file mode 100644 index 04fe1eba2a..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -p FFFF -v FFFF diff --git a/keyboards/4pplet/yakiimo/rev_a/keyboard.json b/keyboards/4pplet/yakiimo/rev_a/keyboard.json index a031a1438a..f22f67ac6a 100644 --- a/keyboards/4pplet/yakiimo/rev_a/keyboard.json +++ b/keyboards/4pplet/yakiimo/rev_a/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/5keys/keyboard.json b/keyboards/5keys/keyboard.json deleted file mode 100644 index 7282db2922..0000000000 --- a/keyboards/5keys/keyboard.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "manufacturer": "mikiya418", - "keyboard_name": "5keys", - "maintainer": "mikiya418", - "development_board": "promicro", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "direct": [ - ["F4","F5","F6","F7","B1"] - ] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x4D4B" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix":[0,0], "x":0, "y":0}, - {"matrix":[0,1], "x":1, "y":0}, - {"matrix":[0,2], "x":2, "y":0}, - {"matrix":[0,3], "x":3, "y":0}, - {"matrix":[0,4], "x":4, "y":0} - ] - } - } -} diff --git a/keyboards/5keys/keymaps/default/keymap.c b/keyboards/5keys/keymaps/default/keymap.c deleted file mode 100644 index 878ae4286b..0000000000 --- a/keyboards/5keys/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Copylight 2024 mikiya418. - * - * 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 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with this - * program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_WBAK, KC_WFWD, LSG_T(KC_S), G(KC_L), MO(1) - ) -}; diff --git a/keyboards/5keys/readme.md b/keyboards/5keys/readme.md deleted file mode 100644 index e14792d82b..0000000000 --- a/keyboards/5keys/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# 5keys - -![5keys](https://imgur.com/yOkI4HT) - -This keyboard is a macro keyboard with five keys. - -* Keyboard Maintainer: [mikiya418](https://github.com/mikiya418) -* Hardware Supported: 5keys PCBs, Pro Micro -* Hardware Availability: [Thingiverse](https://www.thingiverse.com/thing:6834908) - -Make example for this keyboard (after setting up your build environment): - - make 5keys:default - -Flashing example for this keyboard: - - make 5keys:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/7c8/framework/keyboard.json b/keyboards/7c8/framework/keyboard.json index a6d1f8e9e3..33f9cfc591 100644 --- a/keyboards/7c8/framework/keyboard.json +++ b/keyboards/7c8/framework/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Framework", "manufacturer": "7c8", + "url": "", "maintainer": "stevennguyen", "usb": { "vid": "0x77C8", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "leader": true, diff --git a/keyboards/8pack/info.json b/keyboards/8pack/info.json index 041990fbb3..84d81c11d3 100644 --- a/keyboards/8pack/info.json +++ b/keyboards/8pack/info.json @@ -36,7 +36,8 @@ "ws2812": { "pin": "D2" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "backlight": true, "bootmagic": false, diff --git a/keyboards/8pack/rules.mk b/keyboards/8pack/rules.mk new file mode 100644 index 0000000000..81024a7119 --- /dev/null +++ b/keyboards/8pack/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = 8pack/rev12 diff --git a/keyboards/9key/keyboard.json b/keyboards/9key/keyboard.json index 609989ff5c..c1e95e3f08 100644 --- a/keyboards/9key/keyboard.json +++ b/keyboards/9key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "9Key", "manufacturer": "Bishop Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/a_jazz/akc084/keyboard.json b/keyboards/a_jazz/akc084/keyboard.json deleted file mode 100644 index 85a2c50bc9..0000000000 --- a/keyboards/a_jazz/akc084/keyboard.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "manufacturer": "a-jazz", - "keyboard_name": "akc084", - "maintainer": "Feng", - "bootloader": "stm32duino", - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "A6", "pin_b": "A7"} - ] - }, - "features": { - "bootmagic": true, - "console": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "A9", - "scroll_lock": "A10" - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"], - "rows": ["A0", "A1", "A2", "A3", "A4", "A5", "A8"] - }, - "processor": "STM32F103", - "usb": { - "device_version": "1.0.1", - "no_startup_check": true, - "pid": "0x0084", - "vid": "0x414A", - "wait_for_enumeration": false - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [3, 13], "x": 14, "y": 0}, - {"matrix": [4, 12], "x": 15, "y": 0}, - {"matrix": [6, 12], "x": 16, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [4, 13], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [5, 11], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [5, 12], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 1], "x": 2.25, "y": 4}, - {"matrix": [4, 2], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [4, 4], "x": 5.25, "y": 4}, - {"matrix": [4, 5], "x": 6.25, "y": 4}, - {"matrix": [4, 6], "x": 7.25, "y": 4}, - {"matrix": [4, 7], "x": 8.25, "y": 4}, - {"matrix": [4, 8], "x": 9.25, "y": 4}, - {"matrix": [4, 9], "x": 10.25, "y": 4}, - {"matrix": [4, 10], "x": 11.25, "y": 4}, - {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [5, 7], "x": 14, "y": 4}, - {"matrix": [5, 13], "x": 15, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 3], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 4], "x": 10, "y": 5}, - {"matrix": [5, 5], "x": 11, "y": 5}, - {"matrix": [5, 6], "x": 12, "y": 5}, - {"matrix": [5, 8], "x": 13, "y": 5}, - {"matrix": [5, 9], "x": 14, "y": 5}, - {"matrix": [5, 10], "x": 15, "y": 5} - ] - } - } -} diff --git a/keyboards/a_jazz/akc084/keymaps/default/keymap.c b/keyboards/a_jazz/akc084/keymaps/default/keymap.c deleted file mode 100644 index 2bd7992707..0000000000 --- a/keyboards/a_jazz/akc084/keymaps/default/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2024 Feng - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - 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_PSCR, KC_PAUS, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - [1] = LAYOUT( - _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, _______, _______, KC_SCRL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; \ No newline at end of file diff --git a/keyboards/a_jazz/akc084/readme.md b/keyboards/a_jazz/akc084/readme.md deleted file mode 100644 index 4be104f581..0000000000 --- a/keyboards/a_jazz/akc084/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# A-JAZZ AKC084 (AKP846) - -A customizable 84keys keyboard - -![akc084](https://i.imgur.com/6D0jBco.png) -* Keyboard Maintainer: [Feng](https://github.com/fenggx-a-jazz) -* Hardware Supported: [a-jazz](https://www.a-jazz.com) -* Hardware Availability: [a-jazz](https://ajazzstore.com/collections/all/products/ajazz-akp846) - -Make example for this keyboard (after setting up your build environment): - - make a_jazz/akc084:default - -Flashing example for this keyboard: - - make a_jazz/akc084:default:flash - -See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide. - -## Bootloader ESC the bootloader in 3 ways: -* **Bootmagic reset: Hold down Esc in the keyboard then replug -* **Physical reset button: Briefly press the button on the back of the PCB -* **Keycode in layout: Press the key mapped to QK_BOOT diff --git a/keyboards/a_jazz/akc084/rules.mk b/keyboards/a_jazz/akc084/rules.mk deleted file mode 100644 index 5fae5866fd..0000000000 --- a/keyboards/a_jazz/akc084/rules.mk +++ /dev/null @@ -1 +0,0 @@ -MCU_LDSCRIPT = STM32F103xB diff --git a/keyboards/abatskeyboardclub/nayeon/keyboard.json b/keyboards/abatskeyboardclub/nayeon/keyboard.json index 9d56e3246b..a3fac207f4 100644 --- a/keyboards/abatskeyboardclub/nayeon/keyboard.json +++ b/keyboards/abatskeyboardclub/nayeon/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Nayeon", "manufacturer": "Abats Keyboard Club", + "url": "", "maintainer": "ramonimbao", "layout_aliases": { "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan", @@ -10,6 +11,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgb_matrix": true }, diff --git a/keyboards/abko/ak84bt/keymaps/default/keymap.c b/keyboards/abko/ak84bt/keymaps/default/keymap.c index 6e4c85ac14..48fab8614b 100644 --- a/keyboards/abko/ak84bt/keymaps/default/keymap.c +++ b/keyboards/abko/ak84bt/keymaps/default/keymap.c @@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FnLay] = LAYOUT( QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_NEXT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, XXXXXXX, _______, XXXXXXX, RM_SPDD, RM_VALD, RM_SPDU + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI ) }; diff --git a/keyboards/abstract/ellipse/rev1/keyboard.json b/keyboards/abstract/ellipse/rev1/keyboard.json index eb84a27fd4..8e38f29d56 100644 --- a/keyboards/abstract/ellipse/rev1/keyboard.json +++ b/keyboards/abstract/ellipse/rev1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/acekeyboard/titan60/keyboard.json b/keyboards/acekeyboard/titan60/keyboard.json index 6995cefcce..4446927ab8 100644 --- a/keyboards/acekeyboard/titan60/keyboard.json +++ b/keyboards/acekeyboard/titan60/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/acheron/apollo/87h/delta/keyboard.json b/keyboards/acheron/apollo/87h/delta/keyboard.json index f5bdf28d96..5d01c1b8f7 100644 --- a/keyboards/acheron/apollo/87h/delta/keyboard.json +++ b/keyboards/acheron/apollo/87h/delta/keyboard.json @@ -61,6 +61,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c index 94f049f55c..3ad45e3679 100755 --- a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi( diff --git a/keyboards/acheron/apollo/87h/delta/mcuconf.h b/keyboards/acheron/apollo/87h/delta/mcuconf.h index 0000e33889..652fecfc8a 100644 --- a/keyboards/acheron/apollo/87h/delta/mcuconf.h +++ b/keyboards/acheron/apollo/87h/delta/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c index 94f049f55c..3ad45e3679 100755 --- a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi( diff --git a/keyboards/acheron/apollo/87h/info.json b/keyboards/acheron/apollo/87h/info.json index 41606da15f..ac47f594b5 100644 --- a/keyboards/acheron/apollo/87h/info.json +++ b/keyboards/acheron/apollo/87h/info.json @@ -1,5 +1,6 @@ { "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150" diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json index 4b2ff1ad66..55229706b1 100644 --- a/keyboards/acheron/apollo/87htsc/keyboard.json +++ b/keyboards/acheron/apollo/87htsc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Apollo87H-T-SC", "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c index 44404bbc4c..f814960810 100755 --- a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi_tsangan( diff --git a/keyboards/acheron/apollo/87htsc/mcuconf.h b/keyboards/acheron/apollo/87htsc/mcuconf.h index 0000e33889..652fecfc8a 100644 --- a/keyboards/acheron/apollo/87htsc/mcuconf.h +++ b/keyboards/acheron/apollo/87htsc/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json index 165c8d76eb..9b9482874f 100644 --- a/keyboards/acheron/apollo/88htsc/keyboard.json +++ b/keyboards/acheron/apollo/88htsc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Apollo88H-T-SC", "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c index 023ddef74c..abed7e6fbe 100755 --- a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_f13_ansi_tsangan( diff --git a/keyboards/acheron/apollo/88htsc/mcuconf.h b/keyboards/acheron/apollo/88htsc/mcuconf.h index 0000e33889..652fecfc8a 100644 --- a/keyboards/acheron/apollo/88htsc/mcuconf.h +++ b/keyboards/acheron/apollo/88htsc/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/arctic/keyboard.json b/keyboards/acheron/arctic/keyboard.json index 5b5768a490..cc686be5fa 100644 --- a/keyboards/acheron/arctic/keyboard.json +++ b/keyboards/acheron/arctic/keyboard.json @@ -29,9 +29,6 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [ @@ -101,7 +98,7 @@ {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/acheron/arctic/keymaps/default/keymap.c b/keyboards/acheron/arctic/keymaps/default/keymap.c index dc5b32a5f1..041b814bb9 100755 --- a/keyboards/acheron/arctic/keymaps/default/keymap.c +++ b/keyboards/acheron/arctic/keymaps/default/keymap.c @@ -17,13 +17,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS, KC_TRNS, KC_DEL, KC_DEL, KC_TRNS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, diff --git a/keyboards/acheron/athena/alpha/keyboard.json b/keyboards/acheron/athena/alpha/keyboard.json index 3a64456b51..7e29cdc037 100644 --- a/keyboards/acheron/athena/alpha/keyboard.json +++ b/keyboards/acheron/athena/alpha/keyboard.json @@ -10,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/acheron/athena/alpha/mcuconf.h b/keyboards/acheron/athena/alpha/mcuconf.h index c35579fe1c..63f1e30e64 100644 --- a/keyboards/acheron/athena/alpha/mcuconf.h +++ b/keyboards/acheron/athena/alpha/mcuconf.h @@ -21,6 +21,9 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/acheron/athena/beta/keyboard.json b/keyboards/acheron/athena/beta/keyboard.json index 539c28aac2..ba96b20151 100644 --- a/keyboards/acheron/athena/beta/keyboard.json +++ b/keyboards/acheron/athena/beta/keyboard.json @@ -10,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/acheron/athena/beta/mcuconf.h b/keyboards/acheron/athena/beta/mcuconf.h index c35579fe1c..63f1e30e64 100644 --- a/keyboards/acheron/athena/beta/mcuconf.h +++ b/keyboards/acheron/athena/beta/mcuconf.h @@ -21,6 +21,9 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/acheron/athena/info.json b/keyboards/acheron/athena/info.json index e10cb288f0..4f9d3b61e6 100644 --- a/keyboards/acheron/athena/info.json +++ b/keyboards/acheron/athena/info.json @@ -1,5 +1,6 @@ { "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0xAC11" diff --git a/keyboards/acheron/austin/keyboard.json b/keyboards/acheron/austin/keyboard.json index 140e398cce..a3df5dd75d 100755 --- a/keyboards/acheron/austin/keyboard.json +++ b/keyboards/acheron/austin/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Austin", "manufacturer": "DriftMechanics", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xAC11", diff --git a/keyboards/acheron/elongate/beta/keyboard.json b/keyboards/acheron/elongate/beta/keyboard.json index d998d80506..d15f178991 100644 --- a/keyboards/acheron/elongate/beta/keyboard.json +++ b/keyboards/acheron/elongate/beta/keyboard.json @@ -35,6 +35,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/elongate/delta/keyboard.json b/keyboards/acheron/elongate/delta/keyboard.json index 1cc2317b54..1c6d0927d6 100644 --- a/keyboards/acheron/elongate/delta/keyboard.json +++ b/keyboards/acheron/elongate/delta/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/acheron/lasgweloth/keyboard.json b/keyboards/acheron/lasgweloth/keyboard.json index 85769d0732..35d30e89b2 100644 --- a/keyboards/acheron/lasgweloth/keyboard.json +++ b/keyboards/acheron/lasgweloth/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lasgweloth", "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", diff --git a/keyboards/acheron/shark/beta/keyboard.json b/keyboards/acheron/shark/beta/keyboard.json index 2281c24b30..2433f61fec 100644 --- a/keyboards/acheron/shark/beta/keyboard.json +++ b/keyboards/acheron/shark/beta/keyboard.json @@ -8,6 +8,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/acheron/shark/beta/mcuconf.h b/keyboards/acheron/shark/beta/mcuconf.h index c35579fe1c..63f1e30e64 100644 --- a/keyboards/acheron/shark/beta/mcuconf.h +++ b/keyboards/acheron/shark/beta/mcuconf.h @@ -21,6 +21,9 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/acheron/themis/87h/keyboard.json b/keyboards/acheron/themis/87h/keyboard.json index d94f7b0ff3..488cb324c1 100644 --- a/keyboards/acheron/themis/87h/keyboard.json +++ b/keyboards/acheron/themis/87h/keyboard.json @@ -15,6 +15,7 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/acheron/themis/87h/mcuconf.h b/keyboards/acheron/themis/87h/mcuconf.h index ff2280716d..3d1d05c307 100644 --- a/keyboards/acheron/themis/87h/mcuconf.h +++ b/keyboards/acheron/themis/87h/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/87htsc/keyboard.json b/keyboards/acheron/themis/87htsc/keyboard.json index 460c1f8f8e..46cdb09247 100644 --- a/keyboards/acheron/themis/87htsc/keyboard.json +++ b/keyboards/acheron/themis/87htsc/keyboard.json @@ -15,6 +15,7 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/acheron/themis/87htsc/mcuconf.h b/keyboards/acheron/themis/87htsc/mcuconf.h index ff2280716d..3d1d05c307 100644 --- a/keyboards/acheron/themis/87htsc/mcuconf.h +++ b/keyboards/acheron/themis/87htsc/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/88htsc/keyboard.json b/keyboards/acheron/themis/88htsc/keyboard.json index 5449461e15..1e193d2661 100644 --- a/keyboards/acheron/themis/88htsc/keyboard.json +++ b/keyboards/acheron/themis/88htsc/keyboard.json @@ -15,6 +15,7 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/acheron/themis/88htsc/mcuconf.h b/keyboards/acheron/themis/88htsc/mcuconf.h index ff2280716d..3d1d05c307 100644 --- a/keyboards/acheron/themis/88htsc/mcuconf.h +++ b/keyboards/acheron/themis/88htsc/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/info.json b/keyboards/acheron/themis/info.json index e10cb288f0..4f9d3b61e6 100644 --- a/keyboards/acheron/themis/info.json +++ b/keyboards/acheron/themis/info.json @@ -1,5 +1,6 @@ { "manufacturer": "AcheronProject", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0xAC11" diff --git a/keyboards/ada/ada1800mini/keyboard.json b/keyboards/ada/ada1800mini/keyboard.json index 37c0be1582..80e8ee64aa 100644 --- a/keyboards/ada/ada1800mini/keyboard.json +++ b/keyboards/ada/ada1800mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ada1800mini", "manufacturer": "Ada", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xADA0", diff --git a/keyboards/ada/infinity81/keyboard.json b/keyboards/ada/infinity81/keyboard.json index d2fc2ff024..40c5bd2f18 100644 --- a/keyboards/ada/infinity81/keyboard.json +++ b/keyboards/ada/infinity81/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "infinity81", "manufacturer": "Ada", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xADA0", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/adafruit/macropad/halconf.h b/keyboards/adafruit/macropad/halconf.h index 53c366ea1c..2e3be29bbf 100644 --- a/keyboards/adafruit/macropad/halconf.h +++ b/keyboards/adafruit/macropad/halconf.h @@ -16,7 +16,16 @@ #pragma once -#define HAL_USE_SPI TRUE -#define HAL_USE_PWM TRUE - #include_next + +#undef HAL_USE_SPI +#define HAL_USE_SPI TRUE + +#undef SPI_USE_WAIT +#define SPI_USE_WAIT TRUE + +#undef SPI_SELECT_MODE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/adafruit/pico_pad/keyboard.json b/keyboards/adafruit/pico_pad/keyboard.json deleted file mode 100644 index aacb7a9c00..0000000000 --- a/keyboards/adafruit/pico_pad/keyboard.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "manufacturer": "Raspberry Pi", - "keyboard_name": "DirectPins Pico Pad 21 keys RP2040", - "maintainer": "icyavocado", - "bootloader": "rp2040", - "usb": { - "vid": "0x2326", - "pid": "0xFEED", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true - }, - "processor": "RP2040", - "matrix_pins": { - "direct": [ - [ "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6" ], - [ "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], - [ "GP14", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21"] - ] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "GP0", "x": 0, "y": 0, "matrix": [0, 0]}, - {"label": "GP1", "x": 0, "y": 1, "matrix": [0, 1]}, - {"label": "GP2", "x": 0, "y": 2, "matrix": [0, 2]}, - {"label": "GP3", "x": 0, "y": 3, "matrix": [0, 3]}, - {"label": "GP4", "x": 0, "y": 4, "matrix": [0, 4]}, - {"label": "GP5", "x": 0, "y": 5, "matrix": [0, 5]}, - {"label": "GP6", "x": 0, "y": 6, "matrix": [0, 6]}, - - {"label": "GP7", "x": 1, "y": 0, "matrix": [1, 0]}, - {"label": "GP8", "x": 1, "y": 1, "matrix": [1, 1]}, - {"label": "GP9", "x": 1, "y": 2, "matrix": [1, 2]}, - {"label": "GP10", "x": 1, "y": 3, "matrix": [1, 3]}, - {"label": "GP11", "x": 1, "y": 4, "matrix": [1, 4]}, - {"label": "GP12", "x": 1, "y": 5, "matrix": [1, 5]}, - {"label": "GP13", "x": 1, "y": 6, "matrix": [1, 6]}, - - {"label": "GP14", "x": 2, "y": 0, "matrix": [2, 0]}, - {"label": "GP16", "x": 2, "y": 1, "matrix": [2, 1]}, - {"label": "GP17", "x": 2, "y": 2, "matrix": [2, 2]}, - {"label": "GP18", "x": 2, "y": 3, "matrix": [2, 3]}, - {"label": "GP19", "x": 2, "y": 4, "matrix": [2, 4]}, - {"label": "GP20", "x": 2, "y": 5, "matrix": [2, 5]}, - {"label": "GP21", "x": 2, "y": 6, "matrix": [2, 6]} - ] - } - } -} diff --git a/keyboards/adafruit/pico_pad/keymaps/default/keymap.json b/keyboards/adafruit/pico_pad/keymaps/default/keymap.json deleted file mode 100644 index 33e2979a09..0000000000 --- a/keyboards/adafruit/pico_pad/keymaps/default/keymap.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard": "adafruit/pico_pad", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_A", "KC_B", "KC_C", "KC_D", "KC_E", "KC_F", "KC_G", - "KC_H", "KC_I", "KC_J", "KC_K", "KC_L", "KC_M", "KC_N", - "KC_O", "KC_P", "KC_Q", "KC_R", "KC_S", "KC_T", "KC_U" - ] - ] -} diff --git a/keyboards/adafruit/pico_pad/readme.md b/keyboards/adafruit/pico_pad/readme.md deleted file mode 100644 index 4a834fbf4d..0000000000 --- a/keyboards/adafruit/pico_pad/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# PICO PAD - -![PICO PAD](https://imgur.com/Nl4tZPl.jpg) - -A RP2040 powered direct pins QMK keyboard in 3x7 layout. - -A guide can be found here: [Pico Mechanical Keyboard](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview) - -* Keyboard Maintainer: [IcyAvocado](https://github.com/icyavocado) -* Hardware Supported: [Pico 1 Microcontrollers - RP2040](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-family) -* Hardware Availability: [The PiHut](https://thepihut.com/products/raspberry-pi-pico) | [Adafruit Parts](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview) - -Make example for this board (after setting up your build environment): - -```sh -qmk compile -kb adafruit/pico_pad -km default -``` - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader: -* **Physical reset button**: Briefly press the reset button on the left of the PCB - some may have pads you must short instead -* **Boot button**: Press and hold the BOOTSEL button on the pico when powered on diff --git a/keyboards/adelheid/keyboard.json b/keyboards/adelheid/keyboard.json index 4247a06b21..7766a44a8d 100644 --- a/keyboards/adelheid/keyboard.json +++ b/keyboards/adelheid/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/adkb96/rev1/keyboard.json b/keyboards/adkb96/rev1/keyboard.json index 3c0c757c05..7cf92f1516 100644 --- a/keyboards/adkb96/rev1/keyboard.json +++ b/keyboards/adkb96/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ADKB96", "manufacturer": "Bit Trade One", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00A5", @@ -34,7 +35,8 @@ "tapping": { "term": 100 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_6x16" }, diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk new file mode 100644 index 0000000000..ac7561b21d --- /dev/null +++ b/keyboards/adkb96/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = adkb96/rev1 diff --git a/keyboards/adm42/rev4/keyboard.json b/keyboards/adm42/rev4/keyboard.json index 761364d8a7..efb0eea029 100644 --- a/keyboards/adm42/rev4/keyboard.json +++ b/keyboards/adm42/rev4/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -80,6 +82,7 @@ {"matrix": [0, 10], "x": 194, "y": 13, "flags": 4}, {"matrix": [0, 11], "x": 210, "y": 11, "flags": 4} ], + "led_flush_limit": 16, "led_process_limit": 21, "max_brightness": 170, "sat_steps": 24, diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json index dce2405bc0..72eb7d50de 100644 --- a/keyboards/adm42/rev4/keymaps/default/keymap.json +++ b/keyboards/adm42/rev4/keymaps/default/keymap.json @@ -29,9 +29,9 @@ "KC_CAPS", "_______", "_______", "_______", "_______", "KC_CAPS" ], [ - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RM_VALD", "RM_VALU", "RM_SATD", "RM_SATU", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_NEXT", "RM_PREV", "RM_HUED", "RM_HUEU", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RM_SPDD", "RM_SPDU", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RGB_VAD", "RGB_VAI", "RGB_SAD", "RGB_SAI", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "RGB_HUD", "RGB_HUI", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RGB_SPD", "RGB_SPI", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "MO(5)", "XXXXXXX", "XXXXXXX" ], [ diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk new file mode 100644 index 0000000000..06fc88e9f6 --- /dev/null +++ b/keyboards/adm42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = adm42/rev4 \ No newline at end of file diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json index 085ca5e406..50003fbb5f 100644 --- a/keyboards/adpenrose/akemipad/keyboard.json +++ b/keyboards/adpenrose/akemipad/keyboard.json @@ -23,6 +23,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -42,7 +44,8 @@ "qmk": { "tap_keycode_delay": 10 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c index ad71e0281f..7226b85f2c 100644 --- a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, - [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c index 3f76587dde..080df8d182 100644 --- a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, - [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/adpenrose/kintsugi/keyboard.json b/keyboards/adpenrose/kintsugi/keyboard.json index ee4de0e267..46504298f8 100644 --- a/keyboards/adpenrose/kintsugi/keyboard.json +++ b/keyboards/adpenrose/kintsugi/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/adpenrose/obi/keyboard.json b/keyboards/adpenrose/obi/keyboard.json index e02a331434..8c1428ca81 100644 --- a/keyboards/adpenrose/obi/keyboard.json +++ b/keyboards/adpenrose/obi/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/adpenrose/shisaku/keyboard.json b/keyboards/adpenrose/shisaku/keyboard.json index 62bdd42563..1382ee3b62 100644 --- a/keyboards/adpenrose/shisaku/keyboard.json +++ b/keyboards/adpenrose/shisaku/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/aeboards/aegis/keyboard.json b/keyboards/aeboards/aegis/keyboard.json index fcebbf4bc5..26f5f2a0c1 100644 --- a/keyboards/aeboards/aegis/keyboard.json +++ b/keyboards/aeboards/aegis/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Aegis", "manufacturer": "AEboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4145", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/aeboards/constellation/rev1/keyboard.json b/keyboards/aeboards/constellation/rev1/keyboard.json index 4c21a8f3b9..5a43568d57 100644 --- a/keyboards/aeboards/constellation/rev1/keyboard.json +++ b/keyboards/aeboards/constellation/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Constellation Rev1", "manufacturer": "AEBoards", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rev2/keyboard.json b/keyboards/aeboards/constellation/rev2/keyboard.json index e4add7a63a..f296b523e0 100644 --- a/keyboards/aeboards/constellation/rev2/keyboard.json +++ b/keyboards/aeboards/constellation/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Constellation Rev2", "manufacturer": "AEBoards", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rev3/keyboard.json b/keyboards/aeboards/constellation/rev3/keyboard.json index 306561409c..ab39641b74 100644 --- a/keyboards/aeboards/constellation/rev3/keyboard.json +++ b/keyboards/aeboards/constellation/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Constellation Rev3", "manufacturer": "AEBoards", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rules.mk b/keyboards/aeboards/constellation/rules.mk new file mode 100755 index 0000000000..bd2af5d22b --- /dev/null +++ b/keyboards/aeboards/constellation/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aeboards/constellation/rev1 diff --git a/keyboards/aeboards/ext65/info.json b/keyboards/aeboards/ext65/info.json index e4c57bd144..3f4b0bbc00 100644 --- a/keyboards/aeboards/ext65/info.json +++ b/keyboards/aeboards/ext65/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ext65", "manufacturer": "AEBoards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4145" diff --git a/keyboards/aeboards/ext65/rev1/keyboard.json b/keyboards/aeboards/ext65/rev1/keyboard.json index 80370f6045..1d105505e5 100644 --- a/keyboards/aeboards/ext65/rev1/keyboard.json +++ b/keyboards/aeboards/ext65/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ext65 Rev1", "manufacturer": "AEBoards", + "url": "", "maintainer": "qmk", "usb": { "pid": "0xAE65", diff --git a/keyboards/aeboards/ext65/rev2/keyboard.json b/keyboards/aeboards/ext65/rev2/keyboard.json index ca2777d36c..ab7cceeefb 100644 --- a/keyboards/aeboards/ext65/rev2/keyboard.json +++ b/keyboards/aeboards/ext65/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ext65 Rev2", "manufacturer": "AEBoards", + "url": "", "maintainer": "qmk", "usb": { "pid": "0xA652", diff --git a/keyboards/aeboards/ext65/rev3/keyboard.json b/keyboards/aeboards/ext65/rev3/keyboard.json index 867e46e519..8c8051fc44 100644 --- a/keyboards/aeboards/ext65/rev3/keyboard.json +++ b/keyboards/aeboards/ext65/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ext65 Rev3", "manufacturer": "AEBoards", + "url": "", "maintainer": "qmk", "usb": { "pid": "0xA653", diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk new file mode 100644 index 0000000000..d8b0595a5d --- /dev/null +++ b/keyboards/aeboards/ext65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aeboards/ext65/rev2 \ No newline at end of file diff --git a/keyboards/aeboards/satellite/rev1/keyboard.json b/keyboards/aeboards/satellite/rev1/keyboard.json index f9355171fb..8b90704efa 100644 --- a/keyboards/aeboards/satellite/rev1/keyboard.json +++ b/keyboards/aeboards/satellite/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Satellite Rev1", "manufacturer": "AEBoards", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/satellite/rules.mk b/keyboards/aeboards/satellite/rules.mk new file mode 100644 index 0000000000..bc32615d2b --- /dev/null +++ b/keyboards/aeboards/satellite/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aeboards/satellite/rev1 diff --git a/keyboards/afternoonlabs/gust/rev1/keyboard.json b/keyboards/afternoonlabs/gust/rev1/keyboard.json index 7f22279cc3..93ad60ad7d 100644 --- a/keyboards/afternoonlabs/gust/rev1/keyboard.json +++ b/keyboards/afternoonlabs/gust/rev1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c b/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c index e545bdb1da..d65d119338 100644 --- a/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c @@ -29,13 +29,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐ - _______, MS_WHLU, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + _______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ - MS_BTN1, MS_WHLD, MS_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ - MS_UP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + KC_MS_U, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ - MS_LEFT, MS_DOWN, MS_RGHT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_MS_L, KC_MS_D, KC_MS_R, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐ _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ - _______, MS_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤ diff --git a/keyboards/ah/haven60/keyboard.json b/keyboards/ah/haven60/keyboard.json index 0eb5d8aa20..a9c2afb0b3 100644 --- a/keyboards/ah/haven60/keyboard.json +++ b/keyboards/ah/haven60/keyboard.json @@ -46,20 +46,7 @@ "twinkle": true } }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -192,7 +179,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/ah/haven80/info.json b/keyboards/ah/haven80/info.json index 1a8c33890a..bd87815154 100644 --- a/keyboards/ah/haven80/info.json +++ b/keyboards/ah/haven80/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Atelier_Haven", + "url": "", "maintainer": "Freather", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ai/keyboard.json b/keyboards/ai/keyboard.json index f8a5ba9925..8f4039b4d2 100644 --- a/keyboards/ai/keyboard.json +++ b/keyboards/ai/keyboard.json @@ -2,10 +2,12 @@ "manufacturer": "Louis Dalibard", "keyboard_name": "ai", "maintainer": "make42", - "development_board": "promicro", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -14,6 +16,8 @@ "cols": ["F5", "F6", "F7", "B1"], "rows": ["D0", "D4", "C6", "D7", "D1"] }, + "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/ai03/altair/keyboard.json b/keyboards/ai03/altair/keyboard.json index ac5ff28eb1..a8cd8b02a7 100644 --- a/keyboards/ai03/altair/keyboard.json +++ b/keyboards/ai03/altair/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/altair_x/keyboard.json b/keyboards/ai03/altair_x/keyboard.json index 922496778f..27f36af97b 100644 --- a/keyboards/ai03/altair_x/keyboard.json +++ b/keyboards/ai03/altair_x/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/andromeda/keyboard.json b/keyboards/ai03/andromeda/keyboard.json index 0ad082436a..d085b91ad1 100644 --- a/keyboards/ai03/andromeda/keyboard.json +++ b/keyboards/ai03/andromeda/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Andromeda", "manufacturer": "ai03 Design Studio", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/ai03/duet/keyboard.json b/keyboards/ai03/duet/keyboard.json index 287097e0e1..1d11c868a3 100644 --- a/keyboards/ai03/duet/keyboard.json +++ b/keyboards/ai03/duet/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ai03/equinox/info.json b/keyboards/ai03/equinox/info.json index a6c424e187..7c2cc46500 100644 --- a/keyboards/ai03/equinox/info.json +++ b/keyboards/ai03/equinox/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Equinox", "manufacturer": "ai03 Design Studio", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/ai03/equinox/rev0/keyboard.json b/keyboards/ai03/equinox/rev0/keyboard.json index 5006c88239..e38fada333 100644 --- a/keyboards/ai03/equinox/rev0/keyboard.json +++ b/keyboards/ai03/equinox/rev0/keyboard.json @@ -3,6 +3,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/equinox/rev1/keyboard.json b/keyboards/ai03/equinox/rev1/keyboard.json index 59a311e577..590a84b31c 100644 --- a/keyboards/ai03/equinox/rev1/keyboard.json +++ b/keyboards/ai03/equinox/rev1/keyboard.json @@ -3,6 +3,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/equinox_xl/keyboard.json b/keyboards/ai03/equinox_xl/keyboard.json index d3b6fd0969..e6abf4a0c2 100644 --- a/keyboards/ai03/equinox_xl/keyboard.json +++ b/keyboards/ai03/equinox_xl/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/jp60/keyboard.json b/keyboards/ai03/jp60/keyboard.json index 901263c6c8..389993626d 100644 --- a/keyboards/ai03/jp60/keyboard.json +++ b/keyboards/ai03/jp60/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/lily/keyboard.json b/keyboards/ai03/lily/keyboard.json deleted file mode 100644 index ce482a674e..0000000000 --- a/keyboards/ai03/lily/keyboard.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "manufacturer": "ai03 Design Studio", - "keyboard_name": "Lily", - "maintainer": "ai03", - "bootloader": "atmel-dfu", - "build": { - "debounce_type": "asym_eager_defer_pk", - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "B0", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], - "rows": ["B2", "B7", "D5", "B1", "D3"] - }, - "processor": "atmega32u4", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 4 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x0026", - "vid": "0xA103" - }, - "ws2812": { - "pin": "D2" - }, - "community_layouts": ["60_hhkb"], - "layouts": { - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 5], "x": 4, "y": 4, "w": 3}, - {"matrix": [4, 7], "x": 7, "y": 4}, - {"matrix": [4, 9], "x": 8, "y": 4, "w": 3}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - } - } -} diff --git a/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c deleted file mode 100644 index be9e2ee1a1..0000000000 --- a/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2025 Cipulot & ai03 Design Studio - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_60_hhkb( - 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT - ), - - [1] = LAYOUT_60_hhkb( - _______, 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_DEL, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, - _______, _______, _______, _______, MO(2) - ), - - [2] = LAYOUT_60_hhkb( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______ - ) - // clang-format on -}; diff --git a/keyboards/ai03/lily/keymaps/default/keymap.c b/keyboards/ai03/lily/keymaps/default/keymap.c deleted file mode 100644 index ae1949810d..0000000000 --- a/keyboards/ai03/lily/keymaps/default/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2025 Cipulot & ai03 Design Studio - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT - ), - - [1] = LAYOUT_all( - _______, 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_DEL, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, - _______, _______, _______, _______, _______, _______, MO(2) - ), - - [2] = LAYOUT_all( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; diff --git a/keyboards/ai03/lily/readme.md b/keyboards/ai03/lily/readme.md deleted file mode 100644 index c8733629a2..0000000000 --- a/keyboards/ai03/lily/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Lily - -![Lily](https://i.imgur.com/nIhwT2V.png) - -PCB for Gok's Lily keyboard - -* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) -* Hardware Supported: Lily PCB -* Hardware Availability: Through Lily group buy - -Make example for this keyboard (after setting up your build environment): - - make ai03/lily:default - -Flashing example for this keyboard: - - make ai03/liily: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 2 ways: - -* **Physical reset**: Double tap the button on the bottom on the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ai03/orbit/keymaps/default/keymap.c b/keyboards/ai03/orbit/keymaps/default/keymap.c index d777fafef1..de737d4b9a 100644 --- a/keyboards/ai03/orbit/keymaps/default/keymap.c +++ b/keyboards/ai03/orbit/keymaps/default/keymap.c @@ -38,9 +38,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT( /* Mousekeys and Numpad */ KC_NO, _______, _______, _______, _______, _______, _______, KC_NUM, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, _______, - KC_NO, _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, _______, - TO(1), _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, - TO(1), _______, MS_ACL0, MS_ACL1, MS_ACL2, MS_BTN3, _______, DBLZERO, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______, MANUAL, + KC_NO, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, _______, + TO(1), _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, + TO(1), _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_BTN3, _______, DBLZERO, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______, MANUAL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/ai03/orbit_x/keyboard.json b/keyboards/ai03/orbit_x/keyboard.json index 859ff47085..d039969b37 100644 --- a/keyboards/ai03/orbit_x/keyboard.json +++ b/keyboards/ai03/orbit_x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OrbitX", "manufacturer": "ai03 Design Studio", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/ai03/polaris/keyboard.json b/keyboards/ai03/polaris/keyboard.json index 72fe915cb2..decedbab3d 100644 --- a/keyboards/ai03/polaris/keyboard.json +++ b/keyboards/ai03/polaris/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -57,14 +58,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -280,7 +274,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c b/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c index ff4a61e4e4..10190e13c4 100644 --- a/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c +++ b/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c @@ -21,14 +21,14 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */ + [_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */ + [_FN] = LAYOUT_60_tsangan_hhkb( /* FN */ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP, _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, diff --git a/keyboards/ai03/quasar/keyboard.json b/keyboards/ai03/quasar/keyboard.json index bd4b1b51d9..52902e3067 100644 --- a/keyboards/ai03/quasar/keyboard.json +++ b/keyboards/ai03/quasar/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ai03/soyuz/keyboard.json b/keyboards/ai03/soyuz/keyboard.json index be41a01798..2abfbd5ead 100644 --- a/keyboards/ai03/soyuz/keyboard.json +++ b/keyboards/ai03/soyuz/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/voyager60_alps/keyboard.json b/keyboards/ai03/voyager60_alps/keyboard.json index 1c1ed33f52..9b8fa051b5 100644 --- a/keyboards/ai03/voyager60_alps/keyboard.json +++ b/keyboards/ai03/voyager60_alps/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/aidansmithdotdev/fine40/keyboard.json b/keyboards/aidansmithdotdev/fine40/keyboard.json index 503e7a162a..9663106607 100644 --- a/keyboards/aidansmithdotdev/fine40/keyboard.json +++ b/keyboards/aidansmithdotdev/fine40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "encoder": true, diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c index e541c14d01..0010c9f97b 100644 --- a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c +++ b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC , QK_BOOT, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , _______ , _______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ , - _______ , _______ , _______ , _______ , _______ , _______ , _______ , MS_LEFT , MS_DOWN , MS_UP , MS_RGHT , _______ + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______ ), }; diff --git a/keyboards/akb/ogr/keyboard.json b/keyboards/akb/ogr/keyboard.json index 0e401c8f52..d1b062820a 100644 --- a/keyboards/akb/ogr/keyboard.json +++ b/keyboards/akb/ogr/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akb/ogrn/keyboard.json b/keyboards/akb/ogrn/keyboard.json index 7ccf6ebb97..780c353747 100644 --- a/keyboards/akb/ogrn/keyboard.json +++ b/keyboards/akb/ogrn/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akb/vero/board.h b/keyboards/akb/vero/board.h deleted file mode 100644 index 2a370fe2e0..0000000000 --- a/keyboards/akb/vero/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Martin Arnstad (@arnstadm) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/akb/vero/config.h b/keyboards/akb/vero/config.h new file mode 100644 index 0000000000..bb6d15d92c --- /dev/null +++ b/keyboards/akb/vero/config.h @@ -0,0 +1,23 @@ +// Copyright 2022 Martin Arnstad (@arnstadm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Set HSE clock since it differs from F411 default */ +#define STM32_HSECLK 16000000 diff --git a/keyboards/akb/vero/keyboard.json b/keyboards/akb/vero/keyboard.json index dcdaf21635..a598578c0c 100644 --- a/keyboards/akb/vero/keyboard.json +++ b/keyboards/akb/vero/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c index 0b26ef90a6..746a9a7816 100644 --- a/keyboards/akko/5087/5087.c +++ b/keyboards/akko/5087/5087.c @@ -125,15 +125,24 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { }; #endif // RGB_MATRIX_ENABLE +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN, +}; + // clang-format on -void keyboard_post_init_kb(void) { +void matrix_init_kb(void) { gpio_set_pin_output(LED_MAC_OS_PIN); // LDE2 MAC\WIN gpio_write_pin_low(LED_MAC_OS_PIN); gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock gpio_write_pin_low(LED_WIN_LOCK_PIN); - keyboard_post_init_user(); + matrix_init_user(); } void housekeeping_task_kb(void){ @@ -146,7 +155,19 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + } + return false; + case DF(MAC_B): + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_B); + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/akko/5087/halconf.h b/keyboards/akko/5087/halconf.h index b8ebdb3369..55bfe5c977 100644 --- a/keyboards/akko/5087/halconf.h +++ b/keyboards/akko/5087/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/akko/5087/keyboard.json b/keyboards/akko/5087/keyboard.json index 564a5519a9..a2f72351ed 100644 --- a/keyboards/akko/5087/keyboard.json +++ b/keyboards/akko/5087/keyboard.json @@ -7,12 +7,8 @@ "vid": "0xFFFE", "pid": "0x000C", "device_version": "1.0.4", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -20,6 +16,8 @@ "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/akko/5087/keymaps/default/keymap.c b/keyboards/akko/5087/keymaps/default/keymap.c index 162e862cd6..07763ccc89 100644 --- a/keyboards/akko/5087/keymaps/default/keymap.c +++ b/keyboards/akko/5087/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, PDF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), [MAC_B] = LAYOUT_tkl_ansi( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, PDF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) }; // clang-format on diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c index 61cb60713f..7330707f45 100644 --- a/keyboards/akko/5108/5108.c +++ b/keyboards/akko/5108/5108.c @@ -150,10 +150,13 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { void keyboard_pre_init_kb(void) { gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock gpio_write_pin_low(LED_WIN_LOCK_PIN); - keyboard_pre_init_user(); } -void housekeeping_task_kb(void){ - gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); + } + return res; } diff --git a/keyboards/akko/5108/halconf.h b/keyboards/akko/5108/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/akko/5108/halconf.h +++ b/keyboards/akko/5108/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/akko/5108/keyboard.json b/keyboards/akko/5108/keyboard.json index a393f952d8..e98e421089 100644 --- a/keyboards/akko/5108/keyboard.json +++ b/keyboards/akko/5108/keyboard.json @@ -7,12 +7,8 @@ "vid": "0xFFFE", "pid": "0x000D", "device_version": "1.0.3", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -20,6 +16,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/akko/5108/keymaps/default/keymap.c b/keyboards/akko/5108/keymaps/default/keymap.c index 588d895cd3..ef92432ff5 100644 --- a/keyboards/akko/5108/keymaps/default/keymap.c +++ b/keyboards/akko/5108/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) }; // clang-format on diff --git a/keyboards/akko/acr87/halconf.h b/keyboards/akko/acr87/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/akko/acr87/halconf.h +++ b/keyboards/akko/acr87/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/akko/acr87/keyboard.json b/keyboards/akko/acr87/keyboard.json index bf72c511b5..9f37a91b9a 100644 --- a/keyboards/akko/acr87/keyboard.json +++ b/keyboards/akko/acr87/keyboard.json @@ -7,12 +7,8 @@ "vid": "0xFFFE", "pid": "0x0010", "device_version": "1.0.1", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -20,6 +16,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/akko/acr87/keymaps/default/keymap.c b/keyboards/akko/acr87/keymaps/default/keymap.c index 51f21a0097..88bfbc8e1f 100644 --- a/keyboards/akko/acr87/keymaps/default/keymap.c +++ b/keyboards/akko/acr87/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) }; // clang-format on diff --git a/keyboards/akko/top40/halconf.h b/keyboards/akko/top40/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/akko/top40/halconf.h +++ b/keyboards/akko/top40/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/akko/top40/keyboard.json b/keyboards/akko/top40/keyboard.json index 857ffda276..fd7cf497e7 100644 --- a/keyboards/akko/top40/keyboard.json +++ b/keyboards/akko/top40/keyboard.json @@ -7,12 +7,8 @@ "vid": "0xFFFE", "pid": "0x000E", "device_version": "1.0.2", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -20,6 +16,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/akko/top40/keymaps/default/keymap.c b/keyboards/akko/top40/keymaps/default/keymap.c index 8f06ab969e..fb9df16235 100644 --- a/keyboards/akko/top40/keymaps/default/keymap.c +++ b/keyboards/akko/top40/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT( /* Fn */ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RM_TOGG, RM_NEXT, - _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALU, _______, - _______, GU_TOGG, _______, _______, _______, _______, RM_SPDU, RM_VALD, RM_SATU) + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) }; diff --git a/keyboards/al1/keyboard.json b/keyboards/al1/keyboard.json index aed02e8ade..7e6440560f 100644 --- a/keyboards/al1/keyboard.json +++ b/keyboards/al1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AL1", "manufacturer": "Alsoran", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x544C", diff --git a/keyboards/al1/readme.md b/keyboards/al1/readme.md index 4dcf83f05f..3531e2fdc6 100644 --- a/keyboards/al1/readme.md +++ b/keyboards/al1/readme.md @@ -1,5 +1,7 @@ # TriangleLabs AL1 +![AL1](imgur.com image replace me!) + * Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia) * Hardware Supported: AL1 PCB * Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0) diff --git a/keyboards/alas/keyboard.json b/keyboards/alas/keyboard.json index 41fa879a69..b5617189de 100755 --- a/keyboards/alas/keyboard.json +++ b/keyboards/alas/keyboard.json @@ -25,18 +25,7 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -529,7 +518,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h new file mode 100644 index 0000000000..8230f082b3 --- /dev/null +++ b/keyboards/aleblazer/zodiark/config.h @@ -0,0 +1,19 @@ +/* +Copyright 2021 Spencer Deven + +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 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json index 6818797809..fba239866e 100644 --- a/keyboards/aleblazer/zodiark/keyboard.json +++ b/keyboards/aleblazer/zodiark/keyboard.json @@ -71,7 +71,8 @@ "pin": "D3" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c index 7c5414e93a..65d431eb9a 100644 --- a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c @@ -23,7 +23,9 @@ enum sofle_layers { }; enum custom_keycodes { - KC_LOWER = SAFE_RANGE, + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -33,9 +35,6 @@ enum custom_keycodes { KC_DLINE }; -#define KC_QWERTY PDF(_QWERTY) -#define KC_COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( @@ -149,6 +148,16 @@ bool oled_task_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/alf/dc60/readme.md b/keyboards/alf/dc60/readme.md index 628878e8de..d8e20a8f4f 100644 --- a/keyboards/alf/dc60/readme.md +++ b/keyboards/alf/dc60/readme.md @@ -1,5 +1,7 @@ # dc60 +![dc60](imgur.com image replace me!) + A 60% PCB sold with the Alf DC60. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/alf/x11/keyboard.json b/keyboards/alf/x11/keyboard.json index 5d141804ba..c571705dc1 100644 --- a/keyboards/alf/x11/keyboard.json +++ b/keyboards/alf/x11/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "X1.1", "manufacturer": "ALF", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4146", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/alf/x2/keyboard.json b/keyboards/alf/x2/keyboard.json index 103c7ad88b..9dd011c7f1 100644 --- a/keyboards/alf/x2/keyboard.json +++ b/keyboards/alf/x2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "X2", "manufacturer": "ALF", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/alfredslab/swift65/hotswap/keyboard.json b/keyboards/alfredslab/swift65/hotswap/keyboard.json index edf4a13ce1..d2a6e6da03 100644 --- a/keyboards/alfredslab/swift65/hotswap/keyboard.json +++ b/keyboards/alfredslab/swift65/hotswap/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/alfredslab/swift65/solder/keyboard.json b/keyboards/alfredslab/swift65/solder/keyboard.json index 50cdb3fd56..cb419d4cc1 100644 --- a/keyboards/alfredslab/swift65/solder/keyboard.json +++ b/keyboards/alfredslab/swift65/solder/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/alhenkb/macropad5x4/keyboard.json b/keyboards/alhenkb/macropad5x4/keyboard.json index 79cf98fb63..1fb472255d 100644 --- a/keyboards/alhenkb/macropad5x4/keyboard.json +++ b/keyboards/alhenkb/macropad5x4/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -14,6 +16,7 @@ "rows": ["F5", "F7", "B3", "B6", "B5"], "cols": ["F4", "F6", "B1", "B2"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c index 548db39a10..3849b2889c 100644 --- a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c +++ b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,KC_MPRV, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_MNXT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_TOGG, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/alpha/keyboard.json b/keyboards/alpha/keyboard.json index 7c18d47045..1cb2fe71cd 100644 --- a/keyboards/alpha/keyboard.json +++ b/keyboards/alpha/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -45,7 +47,8 @@ "rows": ["D4", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/alpine65/keyboard.json b/keyboards/alpine65/keyboard.json index ae372d2a08..36bba880a8 100644 --- a/keyboards/alpine65/keyboard.json +++ b/keyboards/alpine65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alpine65", "manufacturer": "Bitmap Designs", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x6680", diff --git a/keyboards/alps64/keyboard.json b/keyboards/alps64/keyboard.json index d8f5fb22b5..a6a60478f8 100644 --- a/keyboards/alps64/keyboard.json +++ b/keyboards/alps64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alps64", "manufacturer": "Hasu", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6873", diff --git a/keyboards/amag23/keyboard.json b/keyboards/amag23/keyboard.json index 01b4b18e0c..e3eb16cdad 100644 --- a/keyboards/amag23/keyboard.json +++ b/keyboards/amag23/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/amjkeyboard/amj40/keyboard.json b/keyboards/amjkeyboard/amj40/keyboard.json index 1c1824c25c..de536cb55e 100644 --- a/keyboards/amjkeyboard/amj40/keyboard.json +++ b/keyboards/amjkeyboard/amj40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AMJ40", "manufacturer": "Han Chen", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/amjkeyboard/amj60/keyboard.json b/keyboards/amjkeyboard/amj60/keyboard.json index f7d074041e..a2cfd1b6e1 100644 --- a/keyboards/amjkeyboard/amj60/keyboard.json +++ b/keyboards/amjkeyboard/amj60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AMJ60", "manufacturer": "Han Chen", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/amjkeyboard/amj66/keyboard.json b/keyboards/amjkeyboard/amj66/keyboard.json index f674452f32..72646e4fc7 100644 --- a/keyboards/amjkeyboard/amj66/keyboard.json +++ b/keyboards/amjkeyboard/amj66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AMJ66", "manufacturer": "AMJKeyboard", + "url": "", "maintainer": "FSund, qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amj84/keyboard.json b/keyboards/amjkeyboard/amj84/keyboard.json index 4ef3bfb776..b544ffc8b3 100644 --- a/keyboards/amjkeyboard/amj84/keyboard.json +++ b/keyboards/amjkeyboard/amj84/keyboard.json @@ -1,20 +1,19 @@ { "keyboard_name": "AMJ84", "manufacturer": "Han Chen", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x00D8", "pid": "0x6068", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/amjkeyboard/amj96/keyboard.json b/keyboards/amjkeyboard/amj96/keyboard.json index ea02e6170c..23a131c615 100644 --- a/keyboards/amjkeyboard/amj96/keyboard.json +++ b/keyboards/amjkeyboard/amj96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AMJ96", "manufacturer": "Han Chen", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amjpad/keyboard.json b/keyboards/amjkeyboard/amjpad/keyboard.json index 3fa60ed3d7..e331f3af19 100644 --- a/keyboards/amjkeyboard/amjpad/keyboard.json +++ b/keyboards/amjkeyboard/amjpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "PAD", "manufacturer": "AMJ", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amptrics/0422/0422.c b/keyboards/amptrics/0422/0422.c deleted file mode 100644 index 4c0ed2e5b8..0000000000 --- a/keyboards/amptrics/0422/0422.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2024 Vinod Chowl (@vchowl) - * - * 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.0 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#define LED_LAYER_0 B3 -#define LED_LAYER_1 B4 -#define LED_LAYER_2 B5 -#define LED_LAYER_3 B6 - -#define LED_PINS_COUNT 4 - -static pin_t pins[LED_PINS_COUNT] = {LED_LAYER_0, LED_LAYER_1, LED_LAYER_2, LED_LAYER_3}; - -// Function to turn on all LEDs -void turn_on_all_leds(void) { - for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { - gpio_write_pin_high(pins[i]); // Turn on LED - } -} - -// Function to turn off all LEDs -void turn_off_all_leds(void) { - for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { - gpio_write_pin_low(pins[i]); // Turn off LED - } -} - -void update_leds_for_layer(uint8_t layer) { - turn_off_all_leds(); - if (layer < LED_PINS_COUNT) { - gpio_write_pin_high(pins[layer]); - } -} - -void keyboard_post_init_kb(void) { - for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { - gpio_set_pin_output(pins[i]); - gpio_write_pin_low(pins[i]); - } - - // Blink all LEDs - turn_on_all_leds(); - wait_ms(500); // Keep LEDs on for 500ms - turn_off_all_leds(); - - update_leds_for_layer(0); // Update LEDs to indicate the default layer - keyboard_post_init_user(); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - uint8_t layer = get_highest_layer(state); - update_leds_for_layer(layer); - return layer_state_set_user(state); -} diff --git a/keyboards/amptrics/0422/config.h b/keyboards/amptrics/0422/config.h deleted file mode 100644 index e9c1eed8b9..0000000000 --- a/keyboards/amptrics/0422/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define DYNAMIC_KEYMAP_MACRO_COUNT 36 diff --git a/keyboards/amptrics/0422/keyboard.json b/keyboards/amptrics/0422/keyboard.json deleted file mode 100644 index 09ca2e10c3..0000000000 --- a/keyboards/amptrics/0422/keyboard.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "manufacturer": "Amptrics Technologies", - "keyboard_name": "Amptrics 0422", - "maintainer": "vchowl", - "bootloader": "stm32-dfu", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["C8", "C7", "C6"], - "rows": ["A14", "A13", "A10", "A9"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "pid": "0x01A6", - "vid": "0x616D" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3} - ] - } - } -} diff --git a/keyboards/amptrics/0422/keymaps/default/keymap.c b/keyboards/amptrics/0422/keymaps/default/keymap.c deleted file mode 100644 index ef36a65835..0000000000 --- a/keyboards/amptrics/0422/keymaps/default/keymap.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2024 Vinod Chowl (@vchowl) - * - * 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.0 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ - * │Tog│ - * ├───┼───┬───┐ - * │ 7 │ 8 │ 9 │ - * ├───┼───┼───┤ - * │ 4 │ 5 │ 6 │ - * ├───┼───┼───┤ - * │ 1 │ 2 │ 3 │ - * └───┴───┴───┘ - */ - [0] = LAYOUT( - TO(1), - KC_7, KC_8, KC_9, - KC_4, KC_5, KC_6, - KC_1, KC_2, KC_3 - ), - - [1] = LAYOUT( - TO(2), - KC_A, KC_B, KC_C, - KC_D, KC_E, KC_F, - KC_G, KC_H, KC_I - ), - - [2] = LAYOUT( - TO(3), - KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O, - KC_P, KC_Q, KC_R - ), - - [3] = LAYOUT( - TO(0), - KC_S, KC_T, KC_U, - KC_V, KC_W, KC_X, - KC_Y, KC_Z, KC_ENT - ) -}; diff --git a/keyboards/amptrics/0422/readme.md b/keyboards/amptrics/0422/readme.md deleted file mode 100644 index 7d900f9b58..0000000000 --- a/keyboards/amptrics/0422/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Amptrics 0422 Programmable Keypad - -![magtray4x3](https://i.imgur.com/G5QMlpn_d.jpeg) - -* Keyboard Maintainer: [vchowl](https://github.com/vchowl) -* Hardware Supported: STM32F072RBT6 -* Hardware Availability: Not yet available. - -Make example for this keyboard (after setting up your build environment): - - make amptrics/0422:default - -Flashing example for this keyboard: - - make amptrics/0422:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/an_achronism/tetromino/keyboard.json b/keyboards/an_achronism/tetromino/keyboard.json index b9c0acb374..98cb9faf3e 100644 --- a/keyboards/an_achronism/tetromino/keyboard.json +++ b/keyboards/an_achronism/tetromino/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/arrows/keyboard.json b/keyboards/anavi/arrows/keyboard.json index 0d09b6d551..48dae7b2ea 100644 --- a/keyboards/anavi/arrows/keyboard.json +++ b/keyboards/anavi/arrows/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/knob1/keyboard.json b/keyboards/anavi/knob1/keyboard.json index 83d0064b8d..9c4c60640e 100644 --- a/keyboards/anavi/knob1/keyboard.json +++ b/keyboards/anavi/knob1/keyboard.json @@ -7,6 +7,8 @@ "bootloader": "rp2040", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/anavi/knobs3/keyboard.json b/keyboards/anavi/knobs3/keyboard.json index 13f5ab6e14..11081ee086 100644 --- a/keyboards/anavi/knobs3/keyboard.json +++ b/keyboards/anavi/knobs3/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -21,6 +23,9 @@ "rgblight": { "led_count": 1, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/anavi/macropad10/keyboard.json b/keyboards/anavi/macropad10/keyboard.json index 6b104b7afc..a355fdd549 100644 --- a/keyboards/anavi/macropad10/keyboard.json +++ b/keyboards/anavi/macropad10/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -20,6 +22,9 @@ "rgblight": { "led_count": 4, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/anavi/macropad12/keyboard.json b/keyboards/anavi/macropad12/keyboard.json index 7ac3e27fcd..3a1a07a0a1 100644 --- a/keyboards/anavi/macropad12/keyboard.json +++ b/keyboards/anavi/macropad12/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index 8073a038a2..d70d3fa047 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Macro Pad 8", "manufacturer": "ANAVI", + "url": "", "maintainer": "leon-anavi", "usb": { "vid": "0xCEEB", @@ -22,6 +23,7 @@ "rainbow_swirl": true, "snake": true, "knight": true, + "christmas": true, "static_gradient": true, "rgb_test": true, "alternating": true, @@ -36,6 +38,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/andean_condor/keyboard.json b/keyboards/andean_condor/keyboard.json index 02cb70986b..cfc3eefa87 100644 --- a/keyboards/andean_condor/keyboard.json +++ b/keyboards/andean_condor/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c index 9e72dbf6fb..170eb8c175 100644 --- a/keyboards/annepro2/annepro2.c +++ b/keyboards/annepro2/annepro2.c @@ -48,11 +48,6 @@ ble_capslock_t ble_capslock = {._dummy = {0}, .caps_lock = false}; static uint8_t led_enabled = 1; #endif -void mcu_reset(void) { - __disable_irq(); - NVIC_SystemReset(); -} - void bootloader_jump(void) { // Send msg to shine to boot into IAP ap2_set_IAP(); @@ -216,7 +211,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { ap2_led_reset_foreground_color(); return false; #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if(rgb_matrix_is_enabled()) ap2_led_disable(); else ap2_led_enable(); return true; diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk index cd056527b7..f35d9002ef 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -4,7 +4,7 @@ ARMV = 6 USE_FPU = no MCU_FAMILY = HT32 MCU_SERIES = HT32F523xx -MCU_LDSCRIPT = HT32F52342_ANNEPRO2_C15 +MCU_LDSCRIPT = HT32F52342_ANNEPRO2 MCU_STARTUP = ht32f523xx BOARD = ANNEPRO2_C15 diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index 414e3f855d..b310454c5d 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -4,7 +4,7 @@ ARMV = 6 USE_FPU = no MCU_FAMILY = HT32 MCU_SERIES = HT32F523xx -MCU_LDSCRIPT = HT32F52352_ANNEPRO2_C18 +MCU_LDSCRIPT = HT32F52342_ANNEPRO2 MCU_STARTUP = ht32f523xx BOARD = ANNEPRO2_C18 diff --git a/keyboards/annepro2/halconf.h b/keyboards/annepro2/halconf.h index 980435448f..dcb04eab1b 100644 --- a/keyboards/annepro2/halconf.h +++ b/keyboards/annepro2/halconf.h @@ -26,5 +26,7 @@ #define SERIAL_USB_BUFFERS_SIZE 256 #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/annepro2/ld/HT32F52342_ANNEPRO2_C15.ld b/keyboards/annepro2/ld/HT32F52342_ANNEPRO2.ld similarity index 100% rename from keyboards/annepro2/ld/HT32F52342_ANNEPRO2_C15.ld rename to keyboards/annepro2/ld/HT32F52342_ANNEPRO2.ld diff --git a/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld b/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld deleted file mode 100644 index 0ac02d6c89..0000000000 --- a/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2013-2016 Fabio UJonathan A. Kollaschtzig, http://fabioutzig.com - * (c) 2020 Yaotian Feng (Codetector) - * (c) 2025 Michał Kopeć - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * HT32F52342 w/ Anne Pro 2 bootloader memory setup. - */ -MEMORY { - flash0 : org = 0x00004000, len = 64k - 16k /* firmware */ - flash1 : org = 0x00000000, len = 0 - flash2 : org = 0x00000000, len = 0 - flash3 : org = 0x00000000, len = 0 - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x20000000, len = 16k /* RAM */ - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/keyboards/ano/keyboard.json b/keyboards/ano/keyboard.json index 2954fd981e..9c46895f1a 100644 --- a/keyboards/ano/keyboard.json +++ b/keyboards/ano/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/anomalykb/a65i/keyboard.json b/keyboards/anomalykb/a65i/keyboard.json index 88de392a3b..8fadaadadb 100644 --- a/keyboards/anomalykb/a65i/keyboard.json +++ b/keyboards/anomalykb/a65i/keyboard.json @@ -9,6 +9,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/aos/tkl/keyboard.json b/keyboards/aos/tkl/keyboard.json index 7739ba860b..8cd47a44a5 100644 --- a/keyboards/aos/tkl/keyboard.json +++ b/keyboards/aos/tkl/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/aplyard/aplx6/info.json b/keyboards/aplyard/aplx6/info.json index a0624a7d49..9f86182a33 100644 --- a/keyboards/aplyard/aplx6/info.json +++ b/keyboards/aplyard/aplx6/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Aplx6", "manufacturer": "Aplyard", + "url": "", "maintainer": "Aplyard", "usb": { "vid": "0xE0E0" diff --git a/keyboards/aplyard/aplx6/rev1/keyboard.json b/keyboards/aplyard/aplx6/rev1/keyboard.json index 5e3c35b49b..e7f59d12c6 100644 --- a/keyboards/aplyard/aplx6/rev1/keyboard.json +++ b/keyboards/aplyard/aplx6/rev1/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -15,7 +17,8 @@ "rows": ["E6", "B3"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/aplyard/aplx6/rev2/keyboard.json b/keyboards/aplyard/aplx6/rev2/keyboard.json index 56ec03479f..7cd8d00544 100644 --- a/keyboards/aplyard/aplx6/rev2/keyboard.json +++ b/keyboards/aplyard/aplx6/rev2/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -25,7 +27,8 @@ "qmk": { "tap_keycode_delay": 50 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/arabica37/keymaps/default/keymap.c b/keyboards/arabica37/keymaps/default/keymap.c index 44ec007178..e15e872d02 100644 --- a/keyboards/arabica37/keymaps/default/keymap.c +++ b/keyboards/arabica37/keymaps/default/keymap.c @@ -61,11 +61,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT( //,-----------------------------------------------. ,-----------------------------------------------. - KC_TRNS, RGBRST,UG_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, RGBRST,RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - KC_TRNS,UG_HUEU,UG_SATU,UG_VALU,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,RGB_HUI,RGB_SAI,RGB_VAI,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - KC_TRNS,UG_HUED,UG_SATD,UG_VALD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,RGB_HUD,RGB_SAD,RGB_VAD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| @@ -116,7 +116,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case QK_UNDERGLOW_TOGGLE: + case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); diff --git a/keyboards/arabica37/rev1/keyboard.json b/keyboards/arabica37/rev1/keyboard.json index 1433875e29..63c4fe2940 100644 --- a/keyboards/arabica37/rev1/keyboard.json +++ b/keyboards/arabica37/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Arabica3/7", "manufacturer": "CalciumNitride", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -31,7 +32,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/archetype/minervalx/keyboard.json b/keyboards/archetype/minervalx/keyboard.json index 3523e95afb..0d01ccf485 100644 --- a/keyboards/archetype/minervalx/keyboard.json +++ b/keyboards/archetype/minervalx/keyboard.json @@ -18,6 +18,7 @@ "rows": ["GP11", "GP12", "GP13", "GP14", "GP15"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0100", diff --git a/keyboards/ares/keyboard.json b/keyboards/ares/keyboard.json index 21bf1a55f2..3894565702 100644 --- a/keyboards/ares/keyboard.json +++ b/keyboards/ares/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ares", "manufacturer": "LSJ", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -50,24 +52,9 @@ "processor": "atmega32a", "bootloader": "bootloadhid", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -350,7 +337,7 @@ {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [4, 0], "x": 0, "y": 0}, {"matrix": [4, 1], "x": 1, "y": 0}, diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json index 9717ada94f..47414ee0c4 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json index 54a5b72d5a..89b9b1994f 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/argyle/keyboard.json b/keyboards/argyle/keyboard.json index a7bfc335df..82dbe1562a 100755 --- a/keyboards/argyle/keyboard.json +++ b/keyboards/argyle/keyboard.json @@ -45,7 +45,7 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", @@ -56,9 +56,6 @@ "60_iso_wkl", "60_iso_wkl_split_bs_rshift" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -840,7 +837,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/arisu/keyboard.json b/keyboards/arisu/keyboard.json index 2dd58321e3..43bb668b99 100644 --- a/keyboards/arisu/keyboard.json +++ b/keyboards/arisu/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/arrayperipherals/1x4p1/keyboard.json b/keyboards/arrayperipherals/1x4p1/keyboard.json index 4a0f1b9cfd..f9344e3538 100644 --- a/keyboards/arrayperipherals/1x4p1/keyboard.json +++ b/keyboards/arrayperipherals/1x4p1/keyboard.json @@ -17,6 +17,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c index dc4e21127a..5318b16df5 100644 --- a/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c @@ -20,9 +20,9 @@ along with this program. If not, see . bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } } return true; diff --git a/keyboards/arrayperipherals/vector/keyboard.json b/keyboards/arrayperipherals/vector/keyboard.json deleted file mode 100644 index 505199831d..0000000000 --- a/keyboards/arrayperipherals/vector/keyboard.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "manufacturer": "Array Peripherals", - "keyboard_name": "The Vector", - "maintainer": "daviddoan", - "bootloader": "atmel-dfu", - "encoder": { - "rotary": [ - {"pin_a": "F0", "pin_b": "F1"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "direct": [ - ["D4", "C6", "D7", "E6", "F7"] - ] - }, - "processor": "atmega32u4", - "url": "https://arrayperipherals.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x4F47", - "vid": "0x4152" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "k01", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "k02", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "k03", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "k04", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "k05", "matrix": [0, 4], "x": 4.25, "y": 0} - ] - } - } -} diff --git a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c deleted file mode 100644 index e290e37076..0000000000 --- a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2024 David Doan - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, TG(1) - ), - - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(1) - ), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, -}; -#endif // ENCODER_MAP_ENABLE \ No newline at end of file diff --git a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk deleted file mode 100644 index a40474b4d5..0000000000 --- a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/arrayperipherals/vector/readme.md b/keyboards/arrayperipherals/vector/readme.md deleted file mode 100644 index dee7dc8f9a..0000000000 --- a/keyboards/arrayperipherals/vector/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# The Vector Macropad - -![The Vector](https://i.imgur.com/rmy76bp.png) - -A small (1x4) macropad with a rotary. [More info at arrayperipherals.com](https://www.arrayperipherals.com/) - -* Keyboard Maintainer: [David Doan](https://github.com/daviddoan) -* Hardware Supported: Custom PCB with Atmega32u4 processor -* Hardware Availability: [arrayperipherals.com](https://www.arrayperipherals.com/) - -Make example for this keyboard (after setting up your build environment): - - make arrayperipherals/vector:default - -Flashing example for this keyboard: - - make arrayperipherals/vector: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (left most from the rotary) -* **Physical reset button**: Briefly double press the button on the back of the PCB \ No newline at end of file diff --git a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c index 97f465de35..949219b820 100644 --- a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c +++ b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c @@ -10,7 +10,7 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT( KC_VOLU, 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_EQL, KC_PSCR, KC_DEL, - KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RM_NEXT, MS_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RGB_MOD, KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_MPLY, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, C(KC_C), C(KC_V), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MNXT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, C(KC_Z), C(KC_Y), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MPRV, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, @@ -20,6 +20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [BASE] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED), ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [BASE] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, }; #endif diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json index 1ff5d4ab42..63fefe8c55 100644 --- a/keyboards/artemis/paragon/info.json +++ b/keyboards/artemis/paragon/info.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -15,6 +17,7 @@ "lto": true }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3449", diff --git a/keyboards/ash1800/keyboard.json b/keyboards/ash1800/keyboard.json index c253590937..7156172173 100644 --- a/keyboards/ash1800/keyboard.json +++ b/keyboards/ash1800/keyboard.json @@ -15,6 +15,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ash_xiix/keyboard.json b/keyboards/ash_xiix/keyboard.json index c1ba811d32..e743b80a8f 100644 --- a/keyboards/ash_xiix/keyboard.json +++ b/keyboards/ash_xiix/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ashwing66/keyboard.json b/keyboards/ashwing66/keyboard.json index 427eebcd96..27a5799964 100644 --- a/keyboards/ashwing66/keyboard.json +++ b/keyboards/ashwing66/keyboard.json @@ -75,6 +75,7 @@ {"matrix": [0, 14], "x": 206, "y": 1, "flags": 4}, {"matrix": [0, 15], "x": 223, "y": 0, "flags": 4} ], + "led_flush_limit": 16, "led_process_limit": 5, "max_brightness": 125, "sleep": true diff --git a/keyboards/ashwing66/keymaps/default/keymap.c b/keyboards/ashwing66/keymaps/default/keymap.c index 416fe0261e..2b317e19eb 100644 --- a/keyboards/ashwing66/keymaps/default/keymap.c +++ b/keyboards/ashwing66/keymaps/default/keymap.c @@ -17,9 +17,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC ), [_LAYERB] = LAYOUT_5x16( - KC_ESC ,RM_TOGG,RM_PREV ,RM_NEXT ,RM_VALD ,RM_VALU ,RM_SPDD ,RM_SPDU ,RM_HUED ,RM_HUEU ,RM_SATD ,RM_SATU , - KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,MS_BTN1 ,MS_UP ,MS_BTN2 ,KC_P ,KC_EQL , - KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,MS_LEFT ,MS_DOWN ,MS_RGHT ,KC_SCLN ,KC_QUOT , + KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI , + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL , + KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT , KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT , KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC ), @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_LAYERB] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU)}, - [_LAYERC] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, + [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif diff --git a/keyboards/ask55/keyboard.json b/keyboards/ask55/keyboard.json index 1731d1a3d9..66efb1749a 100644 --- a/keyboards/ask55/keyboard.json +++ b/keyboards/ask55/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -34,7 +36,9 @@ "static_gradient": true }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 8, + "max_brightness": 255, "saturation_steps": 8, "sleep": true }, diff --git a/keyboards/at_at/660m/keyboard.json b/keyboards/at_at/660m/keyboard.json index f42c0b7cbb..a9c5af73f8 100644 --- a/keyboards/at_at/660m/keyboard.json +++ b/keyboards/at_at/660m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "660M", "manufacturer": "AT-AT", + "url": "", "maintainer": "adrientetar", "usb": { "vid": "0xA22A", diff --git a/keyboards/atlantis/ak81_ve/keyboard.json b/keyboards/atlantis/ak81_ve/keyboard.json index 3868625d93..aa85a55e0a 100644 --- a/keyboards/atlantis/ak81_ve/keyboard.json +++ b/keyboards/atlantis/ak81_ve/keyboard.json @@ -5,12 +5,8 @@ "usb": { "vid": "0x416B", "pid": "0x0081", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -185,6 +181,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dynamic_macro": true, "encoder": true, "extrakey": true, diff --git a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c index afe041d515..59c23c97d3 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c +++ b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c @@ -27,11 +27,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( - KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALD, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RM_HUEU, RM_SPDD, - _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU) + KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD, + _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI) }; \ No newline at end of file diff --git a/keyboards/atlantis/ps17/keyboard.json b/keyboards/atlantis/ps17/keyboard.json index 3c7f50be0b..ee7255c8fa 100644 --- a/keyboards/atlantis/ps17/keyboard.json +++ b/keyboards/atlantis/ps17/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/atlantis/ps17/keymaps/default/keymap.c b/keyboards/atlantis/ps17/keymaps/default/keymap.c index 26fe6b3066..36042fbb18 100644 --- a/keyboards/atlantis/ps17/keymaps/default/keymap.c +++ b/keyboards/atlantis/ps17/keymaps/default/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_0, KC_PDOT ), [1] = LAYOUT( - RM_NEXT, + RGB_MOD, TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), [2] = LAYOUT( - RM_NEXT, + RGB_MOD, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), [3] = LAYOUT( - RM_NEXT, + RGB_MOD, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED) }, + [1] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; diff --git a/keyboards/atlas_65/keyboard.json b/keyboards/atlas_65/keyboard.json index 3d72ec602e..4e8db96d3a 100644 --- a/keyboards/atlas_65/keyboard.json +++ b/keyboards/atlas_65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/atomic/keyboard.json b/keyboards/atomic/keyboard.json index 3e0ac225c9..5a269316cf 100644 --- a/keyboards/atomic/keyboard.json +++ b/keyboards/atomic/keyboard.json @@ -11,6 +11,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/atomic/keymaps/default/keymap.c b/keyboards/atomic/keymaps/default/keymap.c index 4afcf6c053..70feec1038 100644 --- a/keyboards/atomic/keymaps/default/keymap.c +++ b/keyboards/atomic/keymaps/default/keymap.c @@ -203,8 +203,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_NUM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, KC_SCRL, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, - KC_CAPS, MS_BTN5, MS_BTN4, MS_BTN3, MS_BTN2, MS_ACL0, MS_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, MS_WHLU, - _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, MS_UP, MS_WHLD, - _______, _______, _______, _______, _______, MS_BTN1, MS_BTN1, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, + _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D, + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), }; diff --git a/keyboards/atreus/feather/keyboard.json b/keyboards/atreus/feather/keyboard.json index 1392849fd4..7f5866e502 100644 --- a/keyboards/atreus/feather/keyboard.json +++ b/keyboards/atreus/feather/keyboard.json @@ -7,7 +7,8 @@ "processor": "atmega32u4", "bootloader": "caterina", "features": { - "bluetooth": true + "bluetooth": true, + "console": false }, "build": { "lto": true diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json index cf53b506a0..1a33591ab5 100644 --- a/keyboards/atreus/info.json +++ b/keyboards/atreus/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atreus", "manufacturer": "Technomancy", + "url": "", "maintainer": "qmk", "features": { "bootmagic": false, diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk new file mode 100644 index 0000000000..d933cb327d --- /dev/null +++ b/keyboards/atreus/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = atreus/astar diff --git a/keyboards/atreus62/keyboard.json b/keyboards/atreus62/keyboard.json index 34e19925e9..c24c02e71e 100644 --- a/keyboards/atreus62/keyboard.json +++ b/keyboards/atreus62/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atreus62", "manufacturer": "Profet", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5072", @@ -27,7 +28,8 @@ "rows": ["D2", "D3", "D1", "D0", "D4"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/atreyu/rev1/rev1.c b/keyboards/atreyu/rev1/rev1.c index 495d6e85f5..026eba4b8a 100644 --- a/keyboards/atreyu/rev1/rev1.c +++ b/keyboards/atreyu/rev1/rev1.c @@ -31,9 +31,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } if (index == 0) { if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/atreyu/rev2/rev2.c b/keyboards/atreyu/rev2/rev2.c index 37c9e489c1..78c70631a3 100644 --- a/keyboards/atreyu/rev2/rev2.c +++ b/keyboards/atreyu/rev2/rev2.c @@ -31,9 +31,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } if (index == 0) { if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/atreyu/rules.mk b/keyboards/atreyu/rules.mk new file mode 100644 index 0000000000..4daffe6b9d --- /dev/null +++ b/keyboards/atreyu/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = atreyu/rev1 diff --git a/keyboards/atset/at2/keyboard.json b/keyboards/atset/at2/keyboard.json deleted file mode 100644 index d612505c90..0000000000 --- a/keyboards/atset/at2/keyboard.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "manufacturer": "Atset", - "keyboard_name": "AT2", - "maintainer": "qmk", - "board": "GENERIC_RP_RP2040", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "usb": { - "vid": "0x4141", - "pid": "0x6174", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP19", "GP20"], - "rows": ["GP28"] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0} - ] - } - } -} diff --git a/keyboards/atset/at2/keymaps/default/keymap.c b/keyboards/atset/at2/keymaps/default/keymap.c deleted file mode 100644 index bdecf93a57..0000000000 --- a/keyboards/atset/at2/keymaps/default/keymap.c +++ /dev/null @@ -1,10 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MUTE, KC_MPLY - ) -}; - diff --git a/keyboards/atset/at2/readme.md b/keyboards/atset/at2/readme.md deleted file mode 100644 index 0bc777b052..0000000000 --- a/keyboards/atset/at2/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# ATSET AT2 - -A special 2 key keyboard powered by QMK. - -* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) -* Hardware Supported: ATSET AT2 (https://imgur.com/a/yBbVwef) -https://www.atsetmediscience.com/atset-at2-9949007.html -Make example for this keyboard (after setting up your build environment): - - make atset/at2:default - -Flashing example for this keyboard: - - make atset/at2:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/atxkb/1894/keyboard.json b/keyboards/atxkb/1894/keyboard.json index 3fdd217171..5abaf88eb0 100644 --- a/keyboards/atxkb/1894/keyboard.json +++ b/keyboards/atxkb/1894/keyboard.json @@ -15,6 +15,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -59,14 +60,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -282,7 +276,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c b/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c index ff4a61e4e4..10190e13c4 100644 --- a/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c +++ b/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c @@ -21,14 +21,14 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */ + [_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */ + [_FN] = LAYOUT_60_tsangan_hhkb( /* FN */ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP, _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, diff --git a/keyboards/aurora65/mcuconf.h b/keyboards/aurora65/mcuconf.h index 0b3baa9b4b..5e966ec140 100644 --- a/keyboards/aurora65/mcuconf.h +++ b/keyboards/aurora65/mcuconf.h @@ -20,3 +20,6 @@ #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE diff --git a/keyboards/avalanche/v1/keyboard.json b/keyboards/avalanche/v1/keyboard.json index 4a6e2fbcbb..0e539bdefc 100644 --- a/keyboards/avalanche/v1/keyboard.json +++ b/keyboards/avalanche/v1/keyboard.json @@ -25,7 +25,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v2/keyboard.json b/keyboards/avalanche/v2/keyboard.json index f1fd8e1a53..2c38fd1056 100644 --- a/keyboards/avalanche/v2/keyboard.json +++ b/keyboards/avalanche/v2/keyboard.json @@ -39,7 +39,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v3/keyboard.json b/keyboards/avalanche/v3/keyboard.json index fb15395524..84191a103f 100644 --- a/keyboards/avalanche/v3/keyboard.json +++ b/keyboards/avalanche/v3/keyboard.json @@ -38,7 +38,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v4/keyboard.json b/keyboards/avalanche/v4/keyboard.json index 33abc8c96b..2a548c5665 100644 --- a/keyboards/avalanche/v4/keyboard.json +++ b/keyboards/avalanche/v4/keyboard.json @@ -53,7 +53,8 @@ "alternating": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/aves60/keyboard.json b/keyboards/aves60/keyboard.json index 09298df289..6d58d43b6a 100644 --- a/keyboards/aves60/keyboard.json +++ b/keyboards/aves60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/aves65/keyboard.json b/keyboards/aves65/keyboard.json index 6d61bd211a..3ad686f83a 100644 --- a/keyboards/aves65/keyboard.json +++ b/keyboards/aves65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Aves65", "manufacturer": "I/O Keyboards", + "url": "", "maintainer": "Hund", "usb": { "vid": "0x9991", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/axolstudio/foundation_gamma/keyboard.json b/keyboards/axolstudio/foundation_gamma/keyboard.json index 3d79739719..86ba316268 100644 --- a/keyboards/axolstudio/foundation_gamma/keyboard.json +++ b/keyboards/axolstudio/foundation_gamma/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/axolstudio/helpo/keyboard.json b/keyboards/axolstudio/helpo/keyboard.json index 4af362c596..c90c967788 100644 --- a/keyboards/axolstudio/helpo/keyboard.json +++ b/keyboards/axolstudio/helpo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Helpo", "manufacturer": "Axolstudio", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x525C", diff --git a/keyboards/axolstudio/yeti/hotswap/keyboard.json b/keyboards/axolstudio/yeti/hotswap/keyboard.json index 5607001287..728c359880 100644 --- a/keyboards/axolstudio/yeti/hotswap/keyboard.json +++ b/keyboards/axolstudio/yeti/hotswap/keyboard.json @@ -51,6 +51,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/axolstudio/yeti/soldered/keyboard.json b/keyboards/axolstudio/yeti/soldered/keyboard.json index 6dac1e5b16..9edb808330 100644 --- a/keyboards/axolstudio/yeti/soldered/keyboard.json +++ b/keyboards/axolstudio/yeti/soldered/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/aya/keymaps/default/keymap.c b/keyboards/aya/keymaps/default/keymap.c index ec429cf375..255e13d7b7 100644 --- a/keyboards/aya/keymaps/default/keymap.c +++ b/keyboards/aya/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [0] = LAYOUT( _______, 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, - _______, MS_BTN2, KC_Q , KC_W , KC_E , KC_R , KC_T, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, - _______, MS_BTN1, KC_A , KC_S , KC_D , KC_F , KC_G, _______, _______, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, + _______, KC_BTN2, 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_BTN1, KC_A , KC_S , KC_D , KC_F , KC_G, _______, _______, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, _______, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B, KC_LALT, MO(2) , _______, KC_DEL , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, KC_LSFT, _LG_ESC, KC_TAB , MO(1) , _______, KC_ENT, _RC_SPC, _RS_BSP ), @@ -79,9 +79,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, MS_BTN1, MS_BTN2 + _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2 ), }; diff --git a/keyboards/b_sides/rev41lp/keyboard.json b/keyboards/b_sides/rev41lp/keyboard.json index 39f994eea1..75c7affbf5 100644 --- a/keyboards/b_sides/rev41lp/keyboard.json +++ b/keyboards/b_sides/rev41lp/keyboard.json @@ -27,7 +27,8 @@ "levels": 7, "max_brightness": 150 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_rev41lp": "LAYOUT" }, diff --git a/keyboards/bacca70/keyboard.json b/keyboards/bacca70/keyboard.json index 6fe4718c49..8d4483bc6f 100644 --- a/keyboards/bacca70/keyboard.json +++ b/keyboards/bacca70/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/baguette/keyboard.json b/keyboards/baguette/keyboard.json index 857c28b0bd..001757f861 100644 --- a/keyboards/baguette/keyboard.json +++ b/keyboards/baguette/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Baguette", "manufacturer": "Yiancar", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bahm/aster_ergo/keyboard.json b/keyboards/bahm/aster_ergo/keyboard.json index 963764d497..5545e02409 100644 --- a/keyboards/bahm/aster_ergo/keyboard.json +++ b/keyboards/bahm/aster_ergo/keyboard.json @@ -17,6 +17,7 @@ "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B1", "B0", "A7", "A6", "B4", "B3", "A15", "A5", "A2", "A1"], "rows": ["B7", "B6", "B5", "B11", "B10", "A4"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8701", diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c index 17d9165232..aadeb0415a 100644 --- a/keyboards/bajjak/bajjak.c +++ b/keyboards/bajjak/bajjak.c @@ -21,10 +21,6 @@ along with this program. If not, see . #include "bajjak.h" -bool bajjak_left_led_1 = 0; -bool bajjak_left_led_2 = 0; -bool bajjak_left_led_3 = 0; - extern inline void bajjak_board_led_on(void); extern inline void bajjak_right_led_1_on(void); extern inline void bajjak_right_led_2_on(void); diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index f3acb54f59..cd4ae50053 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -66,9 +66,9 @@ inline void bajjak_right_led_3_off(void) { gpio_set_pin_input(B7); gpio_write_ inline void bajjak_right_led_off(uint8_t led) { gpio_set_pin_input(led+4); gpio_write_pin_low(led+4); } #ifdef LEFT_LEDS -extern bool bajjak_left_led_1; -extern bool bajjak_left_led_2; -extern bool bajjak_left_led_3; +bool bajjak_left_led_1; +bool bajjak_left_led_2; +bool bajjak_left_led_3; inline void bajjak_left_led_1_on(void) { bajjak_left_led_1 = 1; } inline void bajjak_left_led_2_on(void) { bajjak_left_led_2 = 1; } diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c index 65061a398a..b700976dc9 100644 --- a/keyboards/bajjak/keymaps/5x6/keymap.c +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -122,9 +122,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Left hand Right hand XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, - XXXXXXX, XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, XXXXXXX, MS_WHLL, XXXXXXX, MS_WHLR, XXXXXXX, DF(SYMB), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_WH_L, XXXXXXX, KC_WH_R, XXXXXXX, DF(SYMB), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, DF(BASE), _______, _______, _______, _______, _______, _______, diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c index 39919c628c..4e2a7e055c 100644 --- a/keyboards/bajjak/keymaps/default/keymap.c +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -128,9 +128,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Left hand Right hand KC_SLEP, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_EJCT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_TAB, _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, _______, _______, _______, _______, _______, _______, _______, - KC_CAPS, _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LSFT, _______, MS_WHLL, _______, MS_WHLR, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, KC_LCTL, KC_LGUI, ALT_T(KC_INSERT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, _______, _______, QK_BOOT, CTL_T(KC_ESC), KC_LALT, KC_RGUI, CTL_T(KC_RALT), KC_HOME, KC_PGUP, diff --git a/keyboards/balloondogcaps/tr90/keyboard.json b/keyboards/balloondogcaps/tr90/keyboard.json index 6defe95987..42071ba3f0 100644 --- a/keyboards/balloondogcaps/tr90/keyboard.json +++ b/keyboards/balloondogcaps/tr90/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["F0", "F1", "F4"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/balloondogcaps/tr90pm/keyboard.json b/keyboards/balloondogcaps/tr90pm/keyboard.json index e103091bd7..c5badb7836 100644 --- a/keyboards/balloondogcaps/tr90pm/keyboard.json +++ b/keyboards/balloondogcaps/tr90pm/keyboard.json @@ -2,10 +2,12 @@ "manufacturer": "Balloondog", "keyboard_name": "TR90PM", "maintainer": "balloondogcaps", - "development_board": "promicro", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -14,6 +16,8 @@ "cols": ["D1", "D0", "D4"], "rows": ["C6", "D7", "E6"] }, + "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json index f6ea0f43c3..41212aedef 100644 --- a/keyboards/bandominedoni/keyboard.json +++ b/keyboards/bandominedoni/keyboard.json @@ -47,7 +47,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bandominedoni/rgb_matrix_kb.inc b/keyboards/bandominedoni/rgb_matrix_kb.inc index 081215d78f..77ad22c1ce 100644 --- a/keyboards/bandominedoni/rgb_matrix_kb.inc +++ b/keyboards/bandominedoni/rgb_matrix_kb.inc @@ -5,8 +5,8 @@ RGB_MATRIX_EFFECT(my_party_rocks) bool my_party_rocks(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); // rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); return rgb_matrix_check_finished_leds(led_max); diff --git a/keyboards/bantam44/keyboard.json b/keyboards/bantam44/keyboard.json index d5deffa01b..ac534af6a9 100644 --- a/keyboards/bantam44/keyboard.json +++ b/keyboards/bantam44/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bantam44", "manufacturer": "Bantam Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/barracuda/keyboard.json b/keyboards/barracuda/keyboard.json index fd05e9ca7c..6e606e11ea 100644 --- a/keyboards/barracuda/keyboard.json +++ b/keyboards/barracuda/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/basekeys/slice/keymaps/default/keymap.c b/keyboards/basekeys/slice/keymaps/default/keymap.c index a407d35ab7..2dca256d51 100644 --- a/keyboards/basekeys/slice/keymaps/default/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default/keymap.c @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,------------------------------------------------------------------------| |---------------------------------------------------------------------------. KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_G, 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, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_X, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) + RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) //`------------------------------------------------------------------------| |---------------------------------------------------------------------------' ), @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //`-----------------------------------------------------------------| |---------------------------------------------------------------------------' @@ -80,7 +80,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_TOGGLE: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c index 7d4133a99b..ac4d42fca5 100644 --- a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,------------------------------------------------------------------------| |---------------------------------------------------------------------------. KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_G, 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, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_X, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_TOGG, KC_LCTL,KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) + RGB_TOG, KC_LCTL,KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) //`------------------------------------------------------------------------| |---------------------------------------------------------------------------' ), @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------' @@ -80,7 +80,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/basekeys/slice/rev1/keyboard.json b/keyboards/basekeys/slice/rev1/keyboard.json index 209e4ef57a..a6097e560a 100644 --- a/keyboards/basekeys/slice/rev1/keyboard.json +++ b/keyboards/basekeys/slice/rev1/keyboard.json @@ -30,7 +30,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/basekeys/slice/rev1_rgb/keyboard.json b/keyboards/basekeys/slice/rev1_rgb/keyboard.json index 6747729363..d6d7b8ad45 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keyboard.json +++ b/keyboards/basekeys/slice/rev1_rgb/keyboard.json @@ -56,7 +56,8 @@ "twinkle": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c index bd7923b36b..6ed863d01b 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c +++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c @@ -48,13 +48,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,------------------------------------------------------------------------| |---------------------------------------------------------------------------. KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_G, 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, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_X, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) + RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) //`------------------------------------------------------------------------| |---------------------------------------------------------------------------' ), @@ -90,13 +90,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------. KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_G, 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, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_X, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) + RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------' ), @@ -104,13 +104,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------. KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_G, 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, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| RGB_M_X, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) + RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN) //`-----------------------------------------------------------------| |---------------------------------------------------------------------------' ), @@ -120,9 +120,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //`-----------------------------------------------------------------| |---------------------------------------------------------------------------' @@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/bastardkb/charybdis/3x5/3x5.c b/keyboards/bastardkb/charybdis/3x5/3x5.c new file mode 100644 index 0000000000..6e8e3bef10 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/3x5.c @@ -0,0 +1,87 @@ +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "charybdis.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +/** + * \brief LEDs index. + * + * ╭────────────────────╮ ╭────────────────────╮ + * 2 3 8 9 12 30 27 26 21 20 + * ├────────────────────┤ ├────────────────────┤ + * 1 4 7 10 13 31 28 25 22 19 + * ├────────────────────┤ ├────────────────────┤ + * 0 5 6 11 14 32 29 24 23 18 + * ╰────────────────────╯ ╰────────────────────╯ + * 15 16 17 33 34 XX + * ╰────────────╯ ╰────────────╯ + * + * Note: the LED config simulates 36 LEDs instead of the actual 35 to prevent + * confusion when testing LEDs during assembly when handedness is not set + * correctly. Those fake LEDs are bound to the physical top-left corner. + */ +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 2, 3, 8, 9, 12 }, // Top row + { 1, 4, 7, 10, 13 }, // Middle row + { 0, 5, 6, 11, 14 }, // Bottom row + { 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster + // Right split. + { 20, 21, 26, 27, 30 }, // Top row + { 19, 22, 25, 28, 31 }, // Middle row + { 18, 23, 24, 29, 32 }, // Bottom row + { 33, NO_LED, 34, NO_LED, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most) + /* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2 + /* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 }, + /* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 }, + /* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 }, + /* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster + // Right split. + /* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most) + /* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9 + /* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 }, + /* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 }, + /* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 }, + /* index=33 */ { 134, 64 }, { 152, 64 }, { 0, 0 }, +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster + // Right split. + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h index 9c01986583..0467a1261f 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h @@ -1,16 +1,44 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + +/* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_PAL_MODE 1 #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for EEPROM and pmw3360 sensor. */ #define SPI_DRIVER SPID1 #define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 @@ -19,7 +47,9 @@ #define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 +/* EEPROM config. */ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 +/* PMW3360 settings. */ #define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h index 6876cc3e00..c43f84e0de 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json b/keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json index 15edbf74b8..bcc57981b5 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json @@ -1,23 +1,38 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "Charybdis Nano (3x5) Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h index be641fb899..46b3b42f8b 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next @@ -15,6 +30,11 @@ #undef STM32_SPI_USE_SPI1 #define STM32_SPI_USE_SPI1 TRUE +#undef STM32_SPI_SPI1_RX_DMA_STREAM +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#undef STM32_SPI_SPI1_TX_DMA_STREAM +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) + #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/readme.md b/keyboards/bastardkb/charybdis/3x5/blackpill/readme.md new file mode 100644 index 0000000000..7ef08798b8 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/readme.md @@ -0,0 +1,3 @@ +# Charybdis Nano (3x5) BlackPill + +An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod. diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk new file mode 100644 index 0000000000..c8d355efb7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x5/config.h b/keyboards/bastardkb/charybdis/3x5/config.h new file mode 100644 index 0000000000..1c952759a7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Trackball angle adjustment. */ +#define ROTATIONAL_TRANSFORM_ANGLE -25 diff --git a/keyboards/bastardkb/charybdis/3x5/elitec/config.h b/keyboards/bastardkb/charybdis/3x5/elitec/config.h deleted file mode 100644 index 411ddaf6b9..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/elitec/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x5/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/elitec/keyboard.json deleted file mode 100644 index 22064f13aa..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/elitec/keyboard.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "build": { - "lto": true - }, - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] - }, - "pin_compatible": "elite_c", - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/charybdis/3x5/info.json b/keyboards/bastardkb/charybdis/3x5/info.json index 3953cb43e2..9627b9852f 100644 --- a/keyboards/bastardkb/charybdis/3x5/info.json +++ b/keyboards/bastardkb/charybdis/3x5/info.json @@ -1,58 +1,15 @@ { - "keyboard_name": "Charybdis Nano (3x5)", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": false, - "pointing_device": true, - "rgb_matrix": true + "manufacturer": "Bastard Keyboards", + "url": "https://bastardkb.com/charybdis-nano", + "usb": { + "pid": "0x1832", + "vid": "0xA8F8" }, "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, - {"matrix": [1, 1], "x": 18, "y": 21, "flags": 4}, - {"matrix": [2, 1], "x": 18, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 36, "y": 42, "flags": 4}, - {"matrix": [1, 2], "x": 36, "y": 21, "flags": 4}, - {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 54, "y": 0, "flags": 4}, - {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4}, - {"matrix": [2, 3], "x": 54, "y": 42, "flags": 4}, - {"matrix": [0, 4], "x": 72, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 72, "y": 21, "flags": 4}, - {"matrix": [2, 4], "x": 72, "y": 42, "flags": 4}, - {"matrix": [3, 2], "x": 72, "y": 64, "flags": 1}, - {"matrix": [3, 3], "x": 90, "y": 64, "flags": 1}, - {"matrix": [3, 0], "x": 108, "y": 64, "flags": 1}, - {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [4, 1], "x": 206, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 206, "y": 21, "flags": 4}, - {"matrix": [6, 1], "x": 206, "y": 42, "flags": 4}, - {"matrix": [6, 2], "x": 188, "y": 42, "flags": 4}, - {"matrix": [5, 2], "x": 188, "y": 21, "flags": 4}, - {"matrix": [4, 2], "x": 188, "y": 0, "flags": 4}, - {"matrix": [4, 3], "x": 170, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 170, "y": 21, "flags": 4}, - {"matrix": [6, 3], "x": 170, "y": 42, "flags": 4}, - {"matrix": [4, 4], "x": 152, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 152, "y": 21, "flags": 4}, - {"matrix": [6, 4], "x": 152, "y": 42, "flags": 4}, - {"matrix": [7, 0], "x": 134, "y": 64, "flags": 4}, - {"matrix": [7, 2], "x": 152, "y": 64, "flags": 4}, - {"x": 170, "y": 64, "flags": 4} - ], "split_count": [18, 18] }, - "usb": { - "device_version": "2.0.0", - "pid": "0x1832" + "layout_aliases": { + "LAYOUT_charybdis_3x5": "LAYOUT" }, "layouts": { "LAYOUT": { @@ -62,34 +19,41 @@ {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [4, 4], "x": 11, "y": 0}, {"matrix": [4, 3], "x": 12, "y": 0}, {"matrix": [4, 2], "x": 13, "y": 0}, {"matrix": [4, 1], "x": 14, "y": 0}, {"matrix": [4, 0], "x": 15, "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": [5, 4], "x": 11, "y": 1}, {"matrix": [5, 3], "x": 12, "y": 1}, {"matrix": [5, 2], "x": 13, "y": 1}, {"matrix": [5, 1], "x": 14, "y": 1}, {"matrix": [5, 0], "x": 15, "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": [6, 4], "x": 11, "y": 2}, {"matrix": [6, 3], "x": 12, "y": 2}, {"matrix": [6, 2], "x": 13, "y": 2}, {"matrix": [6, 1], "x": 14, "y": 2}, {"matrix": [6, 0], "x": 15, "y": 2}, + {"matrix": [3, 2], "x": 4, "y": 3}, {"matrix": [3, 3], "x": 5, "y": 3}, {"matrix": [3, 0], "x": 6, "y": 3}, + {"matrix": [7, 0], "x": 9, "y": 3}, {"matrix": [7, 2], "x": 10, "y": 3} ] diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c new file mode 100644 index 0000000000..b1bd74957d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum charybdis_keymap_layers { + LAYER_BASE = 0, + LAYER_LOWER, + LAYER_RAISE, +}; + +#define LOWER MO(LAYER_LOWER) +#define RAISE MO(LAYER_RAISE) + +#define CTL_BSP CTL_T(KC_BSPC) +#define SFT_SPC SFT_T(KC_SPC) +#define GUI_ENT GUI_T(KC_ENT) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + CTL_BSP, SFT_SPC, LOWER, RAISE, GUI_ENT + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_LOWER] = LAYOUT( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + XXXXXXX, XXXXXXX, _______, XXXXXXX, _______ + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_RAISE] = LAYOUT( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + _______, _______, XXXXXXX, _______, XXXXXXX + // ╰───────────────────────────╯ ╰──────────────────╯ + ), +}; +// clang-format on diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.json b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.json deleted file mode 100644 index f92366cd4d..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "keyboard": "bastardkb/charybdis/3x5/elitec", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", - "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", - "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)" - ], - [ - "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", - "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", - "EE_CLR", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______" - ] - ] -} - diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/readme.md b/keyboards/bastardkb/charybdis/3x5/keymaps/default/readme.md new file mode 100644 index 0000000000..3908656820 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/readme.md @@ -0,0 +1,7 @@ +# Charybdis (3x5) default keymap + +> :bulb: Have a look at the [`via` keymap](../via) for a more feature-rich layout. + +The Charydbis (3x5) default keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap. + +This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect. diff --git a/keyboards/bastardkb/charybdis/3x5/readme.md b/keyboards/bastardkb/charybdis/3x5/readme.md new file mode 100644 index 0000000000..7a91035bea --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/readme.md @@ -0,0 +1,15 @@ +# Charybdis Nano (3x5) + +An ergonomic keyboard with integrated trackball. + +The Charybdis is available in 4x6 and 3x5 form factor at [bastardkb.com](https://bastardkb.com). + +## Keymaps + +### [`default`](keymaps/default) + +A simple QWERTY layout with 4 layers. + +### [`via`](keymaps/via) + +A [Miryoku-inspired](https://github.com/manna-harbour/miryoku), feature-rich, keymap with VIA support. diff --git a/keyboards/bastardkb/charybdis/3x5/rules.mk b/keyboards/bastardkb/charybdis/3x5/rules.mk deleted file mode 100644 index fab9162dc6..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h new file mode 100644 index 0000000000..dc0c6e4e03 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h @@ -0,0 +1,25 @@ +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json new file mode 100644 index 0000000000..4a94d023d4 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["C7", "F0", "D7", "E6", "B4"], + "rows": ["B7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "matrix_pins": { + "right": { + "cols": ["C7", "B7", "D7", "E6", "B4"], + "rows": ["F0", "C6", "D4", "B5"] + } + } + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk new file mode 100644 index 0000000000..17dae28bd1 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h new file mode 100644 index 0000000000..3b91322247 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json new file mode 100644 index 0000000000..bc95061ced --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F5", "B6", "D7", "E6", "B4"], + "rows": ["F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk new file mode 100644 index 0000000000..17dae28bd1 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/config.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/config.h new file mode 100644 index 0000000000..e6e2a4f216 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..cc990d3f21 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/readme.md b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/config.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/config.h new file mode 100644 index 0000000000..ee7745d41e --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..6719b21196 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/readme.md b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h new file mode 100644 index 0000000000..3efb323302 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h @@ -0,0 +1,52 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h new file mode 100644 index 0000000000..0397de50b7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..2de77b07f0 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) STeMCell", + "usb": { + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..17a46d8f95 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk new file mode 100644 index 0000000000..4373b9c33d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk @@ -0,0 +1,6 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x6/3x6.c b/keyboards/bastardkb/charybdis/3x6/3x6.c new file mode 100644 index 0000000000..d2c0a39815 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/3x6.c @@ -0,0 +1,91 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "charybdis.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +/** + * \brief LEDs index. + * + # 0,0 14 28 42 56 70 84 98 126 140 154 168 182 196 210 224,0 + # 0,0 15 30 45 60 75 90 105 119 134 149 164 179 194 209 224,0 + * ╭────────────────────────╮ ╭────────────────────────╮ + * 0 5 6 11 12 15 36 33 32 27 26 21 + * ├────────────────────────┤ ├────────────────────────┤ + * 1 4 7 10 13 16 37 34 31 28 25 22 + * ├────────────────────────┤ ├────────────────────────┤ + * 2 3 8 9 14 17 38 35 30 29 24 23 + * ╰────────────────────────╯ ╰────────────────────────╯ + * 18 19 20 39 40 XX + * ╰────────────╯ ╰────────────╯ + * + * Note: the LED config simulates 42 LEDs instead of the actual 41 to prevent + * confusion when testing LEDs during assembly when handedness is not set + * correctly. Those fake LEDs are bound to the physical top-left corner. + */ +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 0, 5, 6, 11, 12, 15 }, // Top row + { 1, 4, 7, 10, 13, 16 }, // Middle row + { 2, 3, 8, 9, 14, 17 }, // Bottom row + { NO_LED, 20, NO_LED, 18, 19, NO_LED }, // Thumb cluster + // Right split. + { 21, 26, 27, 32, 33, 36 }, // Top row + { 22, 25, 28, 31, 34, 37 }, // Middle row + { 23, 24, 29, 30, 35, 38 }, // Bottom row + { NO_LED, 41, NO_LED, 39, 40, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 (left most) + /* index=3 */ { 15, 42 }, { 15, 21 }, { 15, 0 }, // col 2 + /* index=6 */ { 30, 0 }, { 30, 21 }, { 30, 42 }, + /* index=9 */ { 45, 42 }, { 45, 21 }, { 45, 0 }, + /* index=12 */ { 60, 0 }, { 60, 21 }, { 60, 42 }, + /* index=15 */ { 75, 0 }, { 75, 21 }, { 75, 42 }, + /* index=18 */ { 75, 64 }, { 90, 64 }, { 105, 64 }, // Thumb cluster + // Right split. + /* index=21 */ { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 12 (right most) + /* index=24 */ { 209, 42 }, { 209, 21 }, { 209, 0 }, // col 10 + /* index=27 */ { 194, 0 }, { 194, 21 }, { 194, 42 }, + /* index=30 */ { 179, 42 }, { 179, 21 }, { 179, 0 }, + /* index=33 */ { 164, 0 }, { 164, 21 }, { 164, 42 }, + /* index=36 */ { 149, 0 }, { 149, 21 }, { 149, 42 }, + /* index=39 */ { 119, 64 }, { 134, 64 }, { 0, 0 }, // Thumb cluster +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster + // Right split. + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=36 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=39 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h index bb870669c8..b41a1d3f57 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h @@ -1,14 +1,42 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + +/* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_PAL_MODE 1 #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for EEPROM and pmw3360 sensor. */ #define SPI_DRIVER SPID1 #define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 @@ -17,7 +45,9 @@ #define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 +/* EEPROM config. */ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 +/* PMW3360 settings. */ #define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h index 545fc20cb3..1ba700a80f 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json b/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json index df77023bd6..ecefbbeb99 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json @@ -1,23 +1,38 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "Charybdis Mini (3x6) Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h index ca63a57218..e4cde4880b 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next @@ -15,6 +30,11 @@ #undef STM32_SPI_USE_SPI1 #define STM32_SPI_USE_SPI1 TRUE +#undef STM32_SPI_SPI1_RX_DMA_STREAM +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#undef STM32_SPI_SPI1_TX_DMA_STREAM +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) + #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md b/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md new file mode 100644 index 0000000000..6a9907c2ae --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md @@ -0,0 +1,3 @@ +# Charybdis Mini (3x6) BlackPill + +An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod. diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk new file mode 100644 index 0000000000..4373b9c33d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk @@ -0,0 +1,6 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x6/config.h b/keyboards/bastardkb/charybdis/3x6/config.h new file mode 100644 index 0000000000..1c952759a7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Trackball angle adjustment. */ +#define ROTATIONAL_TRANSFORM_ANGLE -25 diff --git a/keyboards/bastardkb/charybdis/3x6/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/elitec/config.h deleted file mode 100644 index 411ddaf6b9..0000000000 --- a/keyboards/bastardkb/charybdis/3x6/elitec/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json deleted file mode 100644 index e736d9df98..0000000000 --- a/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "build": { - "lto": true - }, - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] - }, - "pin_compatible": "elite_c", - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/charybdis/3x6/info.json b/keyboards/bastardkb/charybdis/3x6/info.json index 5d1ba362f7..3597e72534 100644 --- a/keyboards/bastardkb/charybdis/3x6/info.json +++ b/keyboards/bastardkb/charybdis/3x6/info.json @@ -1,64 +1,13 @@ { - "keyboard_name": "Charybdis Mini (3x6)", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": false, - "pointing_device": true, - "rgb_matrix": true + "url": "https://bastardkb.com", + "usb": { + "pid": "0x1834" }, "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [2, 1], "x": 15, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 15, "y": 21, "flags": 4}, - {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 30, "y": 21, "flags": 4}, - {"matrix": [2, 2], "x": 30, "y": 42, "flags": 4}, - {"matrix": [2, 3], "x": 45, "y": 42, "flags": 4}, - {"matrix": [1, 3], "x": 45, "y": 21, "flags": 4}, - {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 60, "y": 21, "flags": 4}, - {"matrix": [2, 4], "x": 60, "y": 42, "flags": 4}, - {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, - {"matrix": [1, 5], "x": 75, "y": 21, "flags": 4}, - {"matrix": [2, 5], "x": 75, "y": 42, "flags": 4}, - {"matrix": [3, 3], "x": 75, "y": 64, "flags": 4}, - {"matrix": [3, 4], "x": 90, "y": 64, "flags": 4}, - {"matrix": [3, 1], "x": 105, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4}, - {"matrix": [6, 1], "x": 209, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 209, "y": 21, "flags": 4}, - {"matrix": [4, 1], "x": 209, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 194, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 194, "y": 21, "flags": 4}, - {"matrix": [6, 2], "x": 194, "y": 42, "flags": 4}, - {"matrix": [6, 3], "x": 179, "y": 42, "flags": 4}, - {"matrix": [5, 3], "x": 179, "y": 21, "flags": 4}, - {"matrix": [4, 3], "x": 179, "y": 0, "flags": 4}, - {"matrix": [4, 4], "x": 164, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 164, "y": 21, "flags": 4}, - {"matrix": [6, 4], "x": 164, "y": 42, "flags": 4}, - {"matrix": [4, 5], "x": 149, "y": 0, "flags": 4}, - {"matrix": [5, 5], "x": 149, "y": 21, "flags": 4}, - {"matrix": [6, 5], "x": 149, "y": 42, "flags": 4}, - {"matrix": [7, 3], "x": 119, "y": 64, "flags": 4}, - {"matrix": [7, 4], "x": 134, "y": 64, "flags": 4}, - {"matrix": [7, 1], "x": 149, "y": 64, "flags": 4} - ], "split_count": [21, 21] }, - "usb": { - "device_version": "2.0.0", - "pid": "0x1834" + "layout_aliases": { + "LAYOUT_charybdis_3x6": "LAYOUT" }, "layouts": { "LAYOUT": { @@ -69,39 +18,46 @@ {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0}, {"label": "L05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "R00", "matrix": [4, 5], "x": 11, "y": 0}, {"label": "R01", "matrix": [4, 4], "x": 12, "y": 0}, {"label": "R02", "matrix": [4, 3], "x": 13, "y": 0}, {"label": "R03", "matrix": [4, 2], "x": 14, "y": 0}, {"label": "R04", "matrix": [4, 1], "x": 15, "y": 0}, {"label": "R05", "matrix": [4, 0], "x": 16, "y": 0}, + {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1}, {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1}, {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1}, {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1}, {"label": "L15", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "R10", "matrix": [5, 5], "x": 11, "y": 1}, {"label": "R11", "matrix": [5, 4], "x": 12, "y": 1}, {"label": "R12", "matrix": [5, 3], "x": 13, "y": 1}, {"label": "R13", "matrix": [5, 2], "x": 14, "y": 1}, {"label": "R14", "matrix": [5, 1], "x": 15, "y": 1}, {"label": "R15", "matrix": [5, 0], "x": 16, "y": 1}, + {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2}, {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2}, {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2}, {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "R20", "matrix": [6, 5], "x": 11, "y": 2}, {"label": "R21", "matrix": [6, 4], "x": 12, "y": 2}, {"label": "R22", "matrix": [6, 3], "x": 13, "y": 2}, {"label": "R23", "matrix": [6, 2], "x": 14, "y": 2}, {"label": "R24", "matrix": [6, 1], "x": 15, "y": 2}, {"label": "R25", "matrix": [6, 0], "x": 16, "y": 2}, + {"label": "L33", "matrix": [3, 3], "x": 5, "y": 3}, {"label": "L34", "matrix": [3, 4], "x": 6, "y": 3}, {"label": "L31", "matrix": [3, 1], "x": 7, "y": 3}, + {"label": "R31", "matrix": [7, 1], "x": 9, "y": 3}, {"label": "R33", "matrix": [7, 3], "x": 10, "y": 3} ] diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c new file mode 100644 index 0000000000..c3aa67a944 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum charybdis_keymap_layers { + LAYER_BASE = 0, + LAYER_LOWER, + LAYER_RAISE, +}; + +#define LOWER MO(LAYER_LOWER) +#define RAISE MO(LAYER_RAISE) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_LGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RGUI, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_LOWER] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS, XXXXXXX, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, XXXXXXX, _______, XXXXXXX, _______ + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_RAISE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + _______, _______, XXXXXXX, _______, XXXXXXX + // ╰───────────────────────────╯ ╰──────────────────╯ + ), +}; +// clang-format on diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json deleted file mode 100644 index e87fe18f34..0000000000 --- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "keyboard": "bastardkb/charybdis/3x6/elitec", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)" - ], - [ - "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", - "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md b/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md new file mode 100644 index 0000000000..8b407f68a2 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md @@ -0,0 +1,7 @@ +# Charybdis Mini (3x6) default keymap + +> :bulb: Have a look at the [`via` keymap](../via) for a more feature-rich layout. + +The Charydbis Mini (3x6) default keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap. + +This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect. diff --git a/keyboards/bastardkb/charybdis/3x6/readme.md b/keyboards/bastardkb/charybdis/3x6/readme.md new file mode 100644 index 0000000000..c6385ed8f1 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/readme.md @@ -0,0 +1,15 @@ +# Charybdis Nano (3x6) + +An ergonomic keyboard with integrated trackball. + +The Charybdis is available in 4x6, 3x6 and 3x5 form factor at [bastardkb.com](https://bastardkb.com). + +## Keymaps + +### [`default`](keymaps/default) + +A simple QWERTY layout with 4 layers. + +### [`via`](keymaps/via) + +A [Miryoku-inspired](https://github.com/manna-harbour/miryoku), feature-rich, keymap with VIA support. diff --git a/keyboards/bastardkb/charybdis/3x6/rules.mk b/keyboards/bastardkb/charybdis/3x6/rules.mk deleted file mode 100644 index fab9162dc6..0000000000 --- a/keyboards/bastardkb/charybdis/3x6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h new file mode 100644 index 0000000000..f5c54c58ae --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json new file mode 100644 index 0000000000..dcc454366c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["D5", "C7", "F0", "D7", "E6", "B4"], + "rows": ["B7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "matrix_pins": { + "right": { + "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], + "rows": ["F0", "C6", "D4", "B5"] + } + } + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk new file mode 100644 index 0000000000..17dae28bd1 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h new file mode 100644 index 0000000000..3b91322247 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json new file mode 100644 index 0000000000..ce74b2dc6d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], + "rows": ["F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk new file mode 100644 index 0000000000..17dae28bd1 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h new file mode 100644 index 0000000000..e6e2a4f216 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..825508475c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h new file mode 100644 index 0000000000..ee7745d41e --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..4d9cfb616d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h new file mode 100644 index 0000000000..3efb323302 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h @@ -0,0 +1,52 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h new file mode 100644 index 0000000000..8141e0cf4b --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..05d82b2445 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) STeMCell", + "usb": { + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..1a3c4433db --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk new file mode 100644 index 0000000000..4373b9c33d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -0,0 +1,6 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/4x6/4x6.c b/keyboards/bastardkb/charybdis/4x6/4x6.c new file mode 100644 index 0000000000..ff1bbea470 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/4x6.c @@ -0,0 +1,100 @@ +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "charybdis.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +/** + * \brief LEDs index. + * + * ╭────────────────────────╮ ╭────────────────────────╮ + * 0 7 8 15 16 20 49 45 44 37 36 29 + * ├────────────────────────┤ ├────────────────────────┤ + * 1 6 9 14 17 21 50 46 43 38 35 30 + * ├────────────────────────┤ ├────────────────────────┤ + * 2 5 10 13 18 22 51 47 42 39 34 31 + * ├────────────────────────┤ ├────────────────────────┤ + * 3 4 11 12 19 23 52 48 41 40 33 32 + * ╰────────────────────────╯ ╰────────────────────────╯ + * 26 27 28 53 54 XX + * 25 24 55 XX + * ╰────────────╯ ╰────────────╯ + * + * Note: the LED config simulates 58 LEDs instead of the actual 56 to prevent + * confusion when testing LEDs during assembly when handedness is not set + * correctly. Those fake LEDs are bound to the physical bottom-left corner. + */ +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 0, 7, 8, 15, 16, 20 }, // Num row + { 1, 6, 9, 14, 17, 21 }, // Top row + { 2, 5, 10, 13, 18, 22 }, // Middle row + { 3, 4, 11, 12, 19, 23 }, // Bottom row + { NO_LED, 28, 24, 26, 27, 25 }, // Thumb cluster + // Right split. + { 29, 36, 37, 44, 45, 49 }, // Num row + { 30, 35, 38, 43, 46, 50 }, // Top row + { 31, 34, 39, 42, 47, 51 }, // Middle row + { 32, 33, 40, 41, 48, 52 }, // Bottom row + { NO_LED, 53, 55, 54, NO_LED, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 0 }, { 0, 12 }, { 0, 24 }, { 0, 36 }, // col 1 (left most) + /* index=4 */ { 16, 36 }, { 16, 24 }, { 16, 12 }, { 16, 0 }, // col 2 + /* index=8 */ { 32, 0 }, { 32, 12 }, { 32, 24 }, { 32, 36 }, + /* index=12 */ { 48, 36 }, { 48, 24 }, { 48, 12 }, { 48, 0 }, + /* index=16 */ { 64, 0 }, { 64, 12 }, { 64, 24 }, { 64, 36 }, + /* index=20 */ { 80, 0 }, { 80, 12 }, { 80, 24 }, { 80, 36 }, + /* index=24 */ { 112, 64 }, { 96, 64 }, { 80, 52 }, + /* index=27 */ { 96, 52 }, { 112, 52 }, + // Right split. + /* index=29 */ { 224, 0 }, { 224, 12 }, { 224, 24 }, { 224, 36 }, // col 12 (right most) + /* index=33 */ { 208, 36 }, { 208, 24 }, { 208, 12 }, { 208, 0 }, // col 11 + /* index=37 */ { 192, 0 }, { 192, 12 }, { 192, 24 }, { 192, 36 }, + /* index=41 */ { 176, 36 }, { 176, 24 }, { 176, 12 }, { 176, 0 }, + /* index=45 */ { 160, 0 }, { 160, 12 }, { 160, 24 }, { 160, 36 }, + /* index=49 */ { 144, 0 }, { 144, 12 }, { 144, 24 }, { 144, 36 }, + /* index=53 */ { 112, 52 }, { 128, 64 }, { 112, 64 }, + /* index=56 */ { 0, 0 }, { 0, 0 }, +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=4 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=8 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=16 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=20 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=24 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster top + /* index=27 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster bottom + // Right split. + /* index=29 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 12 + /* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 11 + /* index=37 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=41 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=45 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=49 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=53 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster + /* index=55 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster fakes +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h index 9c01986583..0467a1261f 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h @@ -1,16 +1,44 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + +/* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_PAL_MODE 1 #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for EEPROM and pmw3360 sensor. */ #define SPI_DRIVER SPID1 #define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 @@ -19,7 +47,9 @@ #define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 +/* EEPROM config. */ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 +/* PMW3360 settings. */ #define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h index 6876cc3e00..c43f84e0de 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json b/keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json index 4bef461b6b..b55dc29445 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json @@ -1,23 +1,38 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "Charybdis (4x6) Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["B15", "A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h index be641fb899..46b3b42f8b 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next @@ -15,6 +30,11 @@ #undef STM32_SPI_USE_SPI1 #define STM32_SPI_USE_SPI1 TRUE +#undef STM32_SPI_SPI1_RX_DMA_STREAM +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#undef STM32_SPI_SPI1_TX_DMA_STREAM +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) + #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/readme.md b/keyboards/bastardkb/charybdis/4x6/blackpill/readme.md new file mode 100644 index 0000000000..bbae15bb85 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/readme.md @@ -0,0 +1,3 @@ +# Charybdis (4x6) BlackPill + +An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod. diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk new file mode 100644 index 0000000000..3caafdef92 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk @@ -0,0 +1,6 @@ +AUDIO_SUPPORTED = no # Audio is not supported. + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/4x6/config.h b/keyboards/bastardkb/charybdis/4x6/config.h new file mode 100644 index 0000000000..1c952759a7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Trackball angle adjustment. */ +#define ROTATIONAL_TRANSFORM_ANGLE -25 diff --git a/keyboards/bastardkb/charybdis/4x6/elitec/config.h b/keyboards/bastardkb/charybdis/4x6/elitec/config.h deleted file mode 100644 index 411ddaf6b9..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/elitec/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/4x6/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/elitec/keyboard.json deleted file mode 100644 index 839598e85e..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/elitec/keyboard.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "build": { - "lto": true - }, - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F4", "F7", "C6", "D4", "B5"] - }, - "pin_compatible": "elite_c", - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/charybdis/4x6/info.json b/keyboards/bastardkb/charybdis/4x6/info.json index 17d68900df..54bb564306 100644 --- a/keyboards/bastardkb/charybdis/4x6/info.json +++ b/keyboards/bastardkb/charybdis/4x6/info.json @@ -1,80 +1,15 @@ { - "keyboard_name": "Charybdis (4x6)", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": false, - "pointing_device": true, - "rgb_matrix": true + "manufacturer": "Bastard Keyboards", + "url": "https://bastardkb.com/charybdis", + "usb": { + "pid": "0x1833", + "vid": "0xA8F8" }, "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 36, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 12, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 24, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 36, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 36, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 24, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 12, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 12, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 24, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 36, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 12, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 24, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 36, "flags": 4}, - {"matrix": [4, 2], "x": 112, "y": 64, "flags": 1}, - {"matrix": [4, 5], "x": 96, "y": 64, "flags": 1}, - {"matrix": [4, 3], "x": 80, "y": 52, "flags": 1}, - {"matrix": [4, 4], "x": 96, "y": 52, "flags": 1}, - {"matrix": [4, 1], "x": 112, "y": 52, "flags": 1}, - {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 12, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 24, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 36, "flags": 4}, - {"matrix": [8, 1], "x": 208, "y": 36, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 12, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, - {"matrix": [6, 2], "x": 192, "y": 12, "flags": 4}, - {"matrix": [7, 2], "x": 192, "y": 24, "flags": 4}, - {"matrix": [8, 2], "x": 192, "y": 36, "flags": 4}, - {"matrix": [8, 3], "x": 176, "y": 36, "flags": 4}, - {"matrix": [7, 3], "x": 176, "y": 24, "flags": 4}, - {"matrix": [6, 3], "x": 176, "y": 12, "flags": 4}, - {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, - {"matrix": [6, 4], "x": 160, "y": 12, "flags": 4}, - {"matrix": [7, 4], "x": 160, "y": 24, "flags": 4}, - {"matrix": [8, 4], "x": 160, "y": 36, "flags": 4}, - {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, - {"matrix": [6, 5], "x": 144, "y": 12, "flags": 4}, - {"matrix": [7, 5], "x": 144, "y": 24, "flags": 4}, - {"matrix": [8, 5], "x": 144, "y": 36, "flags": 4}, - {"matrix": [9, 1], "x": 112, "y": 52, "flags": 4}, - {"matrix": [9, 3], "x": 128, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 112, "y": 64, "flags": 4}, - {"x": 128, "y": 52, "flags": 1}, - {"x": 144, "y": 52, "flags": 1} - ], "split_count": [29, 29] }, - "usb": { - "device_version": "2.0.0", - "pid": "0x1833" + "layout_aliases": { + "LAYOUT_charybdis_4x6": "LAYOUT" }, "layouts": { "LAYOUT": { @@ -85,55 +20,66 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [5, 5], "x": 11, "y": 0}, {"matrix": [5, 4], "x": 12, "y": 0}, {"matrix": [5, 3], "x": 13, "y": 0}, {"matrix": [5, 2], "x": 14, "y": 0}, {"matrix": [5, 1], "x": 15, "y": 0}, {"matrix": [5, 0], "x": 16, "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": [1, 5], "x": 5, "y": 1}, + {"matrix": [6, 5], "x": 11, "y": 1}, {"matrix": [6, 4], "x": 12, "y": 1}, {"matrix": [6, 3], "x": 13, "y": 1}, {"matrix": [6, 2], "x": 14, "y": 1}, {"matrix": [6, 1], "x": 15, "y": 1}, {"matrix": [6, 0], "x": 16, "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": [2, 5], "x": 5, "y": 2}, + {"matrix": [7, 5], "x": 11, "y": 2}, {"matrix": [7, 4], "x": 12, "y": 2}, {"matrix": [7, 3], "x": 13, "y": 2}, {"matrix": [7, 2], "x": 14, "y": 2}, {"matrix": [7, 1], "x": 15, "y": 2}, {"matrix": [7, 0], "x": 16, "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}, {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [8, 5], "x": 11, "y": 3}, {"matrix": [8, 4], "x": 12, "y": 3}, {"matrix": [8, 3], "x": 13, "y": 3}, {"matrix": [8, 2], "x": 14, "y": 3}, {"matrix": [8, 1], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 16, "y": 3}, + {"matrix": [4, 3], "x": 5, "y": 4}, {"matrix": [4, 4], "x": 6, "y": 4}, {"matrix": [4, 1], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 9, "y": 4}, {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [4, 5], "x": 6, "y": 5}, {"matrix": [4, 2], "x": 7, "y": 5}, + {"matrix": [9, 5], "x": 9, "y": 5} ] } diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c new file mode 100644 index 0000000000..304e9fc9a4 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum charybdis_keymap_layers { + LAYER_BASE = 0, + LAYER_LOWER, + LAYER_RAISE, +}; + +#define LOWER MO(LAYER_LOWER) +#define RAISE MO(LAYER_RAISE) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + KC_LGUI, KC_SPC, LOWER, RAISE, KC_ENT, + KC_LALT, KC_BSPC, KC_DEL + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_LOWER] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, + XXXXXXX, XXXXXXX, KC_P0 + // ╰───────────────────────────╯ ╰──────────────────╯ + ), + + [LAYER_RAISE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + _______, _______, XXXXXXX, _______, XXXXXXX, + _______, _______, XXXXXXX + // ╰───────────────────────────╯ ╰──────────────────╯ + ), +}; +// clang-format on diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.json b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.json deleted file mode 100644 index 2df4f16675..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "keyboard": "bastardkb/charybdis/4x6/elitec", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_ESC" , "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_GRV" , - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_CAPS", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", - "KC_LALT", "KC_SPC", "KC_BSPC" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", - "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/readme.md b/keyboards/bastardkb/charybdis/4x6/keymaps/default/readme.md new file mode 100644 index 0000000000..23a85e54d5 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/default/readme.md @@ -0,0 +1,7 @@ +# Charybdis (4x6) default keymap + +> :bulb: Have a look at the [`via` keymap](../via) for a more feature-rich layout. + +The Charydbis (4x6) default keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap. + +This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect. diff --git a/keyboards/bastardkb/charybdis/4x6/readme.md b/keyboards/bastardkb/charybdis/4x6/readme.md new file mode 100644 index 0000000000..af2396cd6d --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/readme.md @@ -0,0 +1,15 @@ +# Charybdis (4x6) + +An ergonomic keyboard with integrated trackball. + +The Charybdis is available in 4x6 and 3x5 form factor at [bastardkb.com](https://bastardkb.com). + +## Keymaps + +### [`default`](keymaps/default) + +A simple QWERTY layout with 3 layers. + +### [`via`](keymaps/via) + +Same as the [default](keymaps/default) keymap, but with VIA support. diff --git a/keyboards/bastardkb/charybdis/4x6/rules.mk b/keyboards/bastardkb/charybdis/4x6/rules.mk deleted file mode 100644 index fab9162dc6..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h new file mode 100644 index 0000000000..dc0c6e4e03 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h @@ -0,0 +1,25 @@ +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json new file mode 100644 index 0000000000..b90b144c8b --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Charybdis (4x6) Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["D5", "C7", "F0", "D7", "E6", "B4"], + "rows": ["F1", "B7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "matrix_pins": { + "right": { + "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], + "rows": ["D5", "F0", "C6", "D4", "B5"] + } + } + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk new file mode 100644 index 0000000000..0e4d15d5bc --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported. + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h new file mode 100644 index 0000000000..3b91322247 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json new file mode 100644 index 0000000000..8ae66d083b --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "Charybdis (4x6) Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], + "rows": ["F4", "F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk new file mode 100644 index 0000000000..0e4d15d5bc --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no # Audio is not supported. + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/config.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/config.h new file mode 100644 index 0000000000..e6e2a4f216 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..b0c98389f7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis (4x6) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP29", "GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/readme.md b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/config.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/config.h new file mode 100644 index 0000000000..ee7745d41e --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* SPI & PMW3360 settings. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MISO_PIN GP20 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..1e072db85b --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Charybdis (4x6) Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP29", "GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h new file mode 100644 index 0000000000..6aaf31428c --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/readme.md b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..db29cb6789 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h new file mode 100644 index 0000000000..3efb323302 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h @@ -0,0 +1,52 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h new file mode 100644 index 0000000000..0397de50b7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..ab145e0f95 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Charybdis (4x6) STeMCell", + "usb": { + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B10", "B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..17a46d8f95 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk new file mode 100644 index 0000000000..4373b9c33d --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk @@ -0,0 +1,6 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c index bd916844b8..0ee5c3eed9 100644 --- a/keyboards/bastardkb/charybdis/charybdis.c +++ b/keyboards/bastardkb/charybdis/charybdis.c @@ -1,7 +1,22 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Quentin LEBASTARD -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "charybdis.h" #include "transactions.h" #include @@ -378,6 +393,7 @@ bool shutdown_kb(bool jump_to_bootloader) { rgblight_setrgb(RGB_RED); #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE + void rgb_matrix_update_pwm_buffers(void); rgb_matrix_set_color_all(RGB_RED); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/charybdis/charybdis.h b/keyboards/bastardkb/charybdis/charybdis.h index afa75e981f..a8ee639d9a 100644 --- a/keyboards/bastardkb/charybdis/charybdis.h +++ b/keyboards/bastardkb/charybdis/charybdis.h @@ -1,6 +1,21 @@ -// Copyright 2021 Quentin LEBASTARD -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "quantum.h" diff --git a/keyboards/bastardkb/charybdis/config.h b/keyboards/bastardkb/charybdis/config.h index f4c017875b..32ab7b0ebb 100644 --- a/keyboards/bastardkb/charybdis/config.h +++ b/keyboards/bastardkb/charybdis/config.h @@ -1,8 +1,25 @@ -// Copyright 2021 Quentin LEBASTARD -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Pointing device configuration. */ + // Enable use of pointing device on slave split. #define SPLIT_POINTING_ENABLE @@ -15,5 +32,54 @@ // Invert X axis on mouse reports. #define POINTING_DEVICE_INVERT_X -/* Trackball angle adjustment. */ -#define ROTATIONAL_TRANSFORM_ANGLE -25 +/* RGB matrix support. */ +#ifdef RGB_MATRIX_ENABLE +# ifndef __arm__ +// Disable control of RGB matrix by keycodes (must use firmware implementation +// to control the feature). +# define RGB_MATRIX_DISABLE_KEYCODES +# else // __arm__ +// Enable all animations on ARM boards since they have plenty of memory +// available for it. +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# endif // !__arm__ +#endif diff --git a/keyboards/bastardkb/charybdis/info.json b/keyboards/bastardkb/charybdis/info.json index 4d7545d40a..6a4ed7c9f7 100644 --- a/keyboards/bastardkb/charybdis/info.json +++ b/keyboards/bastardkb/charybdis/info.json @@ -1,50 +1,7 @@ { - "url": "https://github.com/Bastardkb/Charybdis", "rgb_matrix": { "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true + "cycle_left_right": true }, "default": { "speed": 32, @@ -53,11 +10,10 @@ "sleep": true }, "split": { - "enabled": true, "transport": { "sync": { "matrix_state": true } } } -} +} \ No newline at end of file diff --git a/keyboards/bastardkb/charybdis/post_config.h b/keyboards/bastardkb/charybdis/post_config.h index 5f5045f04e..4cfd24c4b6 100644 --- a/keyboards/bastardkb/charybdis/post_config.h +++ b/keyboards/bastardkb/charybdis/post_config.h @@ -1,8 +1,23 @@ -// Copyright 2012 Jun Wako -// Copyright 2015 Jack Humbert -// Copyright 2021 Quentin LEBASTARD -// Copyright 2021 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2012 Jun Wako + * Copyright 2015 Jack Humbert + * Copyright 2021 Quentin LEBASTARD + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once // Enable syncing of charybdis config diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h index 18ce680709..4366a8a3e9 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h @@ -1,12 +1,37 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN GP29 +#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* Cirque trackpad. */ #define SPI_SCK_PIN GP22 #define SPI_MOSI_PIN GP23 #define SPI_MISO_PIN GP20 #define POINTING_DEVICE_CS_PIN GP21 +/* Reset. */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h index 7f198be26b..57d15376d6 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h @@ -1,5 +1,20 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_SPI TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json index c388855691..ac52a86eb5 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json @@ -1,17 +1,20 @@ { - "bootloader": "rp2040", + "keyboard_name": "Dilemma (3x5+2) Assembled", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "pointing_device": true + }, "matrix_pins": { "cols": ["GP8", "GP9", "GP7", "GP6", "GP27"], "rows": ["GP4", "GP5", "GP28", "GP26"] }, - "processor": "RP2040", + "diode_direction": "ROW2COL", "split": { - "handedness": { - "pin": "GP29" - }, - "serial": { - "driver": "vendor", - "pin": "GP1" - } - } + "enabled": true, + "soft_serial_pin": "GP1" + }, + "processor": "RP2040", + "bootloader": "rp2040" } diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h index 71faa87a0c..81821c159d 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h @@ -1,8 +1,23 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next -#undef RP_SPI_USE_SPI0 -#define RP_SPI_USE_SPI0 TRUE +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk index fb5d649735..48216ee8b7 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk @@ -1 +1,7 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_spi +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default + +SERIAL_DRIVER = vendor + +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Assembled version uses SPI. diff --git a/keyboards/bastardkb/dilemma/3x5_2/config.h b/keyboards/bastardkb/dilemma/3x5_2/config.h deleted file mode 100644 index cd7f368bd3..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define SPLIT_HAND_PIN_LOW_IS_LEFT diff --git a/keyboards/bastardkb/dilemma/3x5_2/info.json b/keyboards/bastardkb/dilemma/3x5_2/info.json index 9e34cac13e..bfd12e81d0 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/info.json +++ b/keyboards/bastardkb/dilemma/3x5_2/info.json @@ -1,15 +1,4 @@ { - "keyboard_name": "Dilemma 3x5+2", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "pointing_device": true - }, - "split": { - "enabled": true - }, "usb": { "device_version": "1.0.0", "pid": "0x1835" @@ -23,33 +12,40 @@ {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [4, 4], "x": 11, "y": 0}, {"matrix": [4, 3], "x": 12, "y": 0}, {"matrix": [4, 2], "x": 13, "y": 0}, {"matrix": [4, 1], "x": 14, "y": 0}, {"matrix": [4, 0], "x": 15, "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": [5, 4], "x": 11, "y": 1}, {"matrix": [5, 3], "x": 12, "y": 1}, {"matrix": [5, 2], "x": 13, "y": 1}, {"matrix": [5, 1], "x": 14, "y": 1}, {"matrix": [5, 0], "x": 15, "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": [6, 4], "x": 11, "y": 2}, {"matrix": [6, 3], "x": 12, "y": 2}, {"matrix": [6, 2], "x": 13, "y": 2}, {"matrix": [6, 1], "x": 14, "y": 2}, {"matrix": [6, 0], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 4, "y": 3}, {"matrix": [3, 2], "x": 5, "y": 3}, + {"matrix": [7, 2], "x": 10, "y": 3}, {"matrix": [7, 0], "x": 11, "y": 3} ] diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.c new file mode 100644 index 0000000000..0f9aff0a85 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum charybdis_keymap_layers { + LAYER_BASE = 0, + LAYER_NAV, + LAYER_SYM, + LAYER_NUM, +}; + +#define NAV MO(LAYER_NAV) +#define SYM MO(LAYER_SYM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT_split_3x5_2( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + NAV, CW_TOGG, KC_SPC, SYM + // ╰──────────────────╯ ╰──────────────────╯ + ), + + [LAYER_NAV] = LAYOUT_split_3x5_2( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, KC_HOME, KC_UP, KC_END, KC_DEL, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LSFT, KC_LCTL, KC_LALT, KC_RGUI, KC_VOLD, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + QK_BOOT, EE_CLR, KC_MPRV, KC_MNXT, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, KC_ENT, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + _______, KC_LSFT, KC_SPC, _______ + // ╰──────────────────╯ ╰──────────────────╯ + ), + + [LAYER_SYM] = LAYOUT_split_3x5_2( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_ESC, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD, KC_CIRC, KC_RPRN, KC_RCBR, KC_RBRC, KC_GRV, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_MINS, KC_ASTR, KC_EQL, KC_UNDS, KC_DLR, KC_HASH, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_PLUS, KC_PIPE, KC_AT, KC_SLSH, KC_PERC, _______, KC_BSLS, KC_AMPR, KC_QUES, KC_EXLM, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + _______, KC_LSFT, KC_SPC, _______ + // ╰──────────────────╯ ╰──────────────────╯ + ), + + [LAYER_NUM] = LAYOUT_split_3x5_2( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_F11, KC_F12, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + _______, KC_LSFT, KC_SPC, _______ + // ╰──────────────────╯ ╰──────────────────╯ + ), +}; +// clang-format on + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, LAYER_NAV, LAYER_SYM, LAYER_NUM); +} diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.json b/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.json deleted file mode 100644 index e2387d879f..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "keyboard": "bastardkb/dilemma/3x5_2/promicro", - "keymap": "default", - "layout": "LAYOUT_split_3x5_2", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", - "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", - "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", - "MO(1)", "KC_SPC", "KC_ENT", "MO(2)" - ], - [ - "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", - "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______" - ] - ] -} - diff --git a/keyboards/bastardkb/dilemma/3x5_2/promicro/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/promicro/keyboard.json deleted file mode 100644 index 55ce3cdbf1..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/promicro/keyboard.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "development_board": "elite_c", - "matrix_pins": { - "cols": ["B4", "B5", "E6", "D7", "F6"], - "rows": ["D4", "C6", "F5", "F7"] - }, - "split": { - "handedness": { - "pin": "F4" - }, - "serial": { - "pin": "D2" - } - } -} diff --git a/keyboards/bastardkb/dilemma/3x5_2/promicro/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/promicro/rules.mk deleted file mode 100644 index fedac72e2e..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/promicro/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/config.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/config.h new file mode 100644 index 0000000000..fd7bb0f107 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/config.h @@ -0,0 +1,37 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +//#define SPLIT_HAND_PIN GP29 +// If you've soldered the handedness pull-up on the upper side instead of the +// left one, uncomment the following line. +//#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h new file mode 100644 index 0000000000..2e098f5113 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json new file mode 100644 index 0000000000..3c4c559cb6 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Dilemma (3x5+2) Splinky", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "pointing_device": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP7", "GP6", "GP27"], + "rows": ["GP4", "GP5", "GP28", "GP26"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h new file mode 100644 index 0000000000..c748d941e9 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk new file mode 100644 index 0000000000..942028da2c --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk @@ -0,0 +1,7 @@ +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default + +SERIAL_DRIVER = vendor + +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c # DIY version uses I2C. diff --git a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c index 444e479d1a..3decc51e84 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c +++ b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c @@ -27,7 +27,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } switch (index) { case 0: // Left-half encoder, mouse scroll. - tap_code(clockwise ? MS_WHLU : MS_WHLD); + tap_code(clockwise ? KC_MS_WH_UP : KC_MS_WH_DOWN); break; case 1: // Right-half encoder, volume control. tap_code(clockwise ? KC_AUDIO_VOL_UP : KC_AUDIO_VOL_DOWN); @@ -51,36 +51,36 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { uint8_t layer = get_highest_layer(layer_state); if (layer > 0) { - hsv_t hsv = rgb_matrix_get_hsv(); + HSV hsv = rgb_matrix_get_hsv(); switch (get_highest_layer(layer_state)) { case 1: - hsv = (hsv_t){HSV_BLUE}; + hsv = (HSV){HSV_BLUE}; break; case 2: - hsv = (hsv_t){HSV_AZURE}; + hsv = (HSV){HSV_AZURE}; break; case 3: - hsv = (hsv_t){HSV_ORANGE}; + hsv = (HSV){HSV_ORANGE}; break; case 4: - hsv = (hsv_t){HSV_GREEN}; + hsv = (HSV){HSV_GREEN}; break; case 5: - hsv = (hsv_t){HSV_TEAL}; + hsv = (HSV){HSV_TEAL}; break; case 6: - hsv = (hsv_t){HSV_PURPLE}; + hsv = (HSV){HSV_PURPLE}; break; case 7: default: - hsv = (hsv_t){HSV_RED}; + hsv = (HSV){HSV_RED}; break; }; if (hsv.v > rgb_matrix_get_val()) { hsv.v = MIN(rgb_matrix_get_val() + 22, 255); } - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); for (uint8_t i = led_min; i < led_max; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { diff --git a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json index b09f32cf5f..12e336f023 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json @@ -14,9 +14,7 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "serial": { - "pin": "GP1" - }, + "soft_serial_pin": "GP1", "bootmagic": { "matrix": [4, 0] }, @@ -34,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c b/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c index 3545e60503..49b24fbd04 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c +++ b/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c @@ -48,7 +48,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } switch (index) { case 0: // Left-half encoder, mouse scroll. - tap_code(clockwise ? MS_WHLD : MS_WHLU); + tap_code(clockwise ? KC_MS_WH_DOWN : KC_MS_WH_UP); break; case 1: // Right-half encoder, volume control. tap_code(clockwise ? KC_AUDIO_VOL_UP : KC_AUDIO_VOL_DOWN); diff --git a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json index 4613509dba..7e40208a5d 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json +++ b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json @@ -14,9 +14,7 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "serial": { - "pin": "GP1" - }, + "soft_serial_pin": "GP1", "bootmagic": { "matrix": [5, 0] }, @@ -34,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c index 4ac5230988..2e5564f5e9 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RM_TOGG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index c14345d075..7c87fdcadd 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -328,6 +328,22 @@ void matrix_init_kb(void) { } #endif // POINTING_DEVICE_ENABLE +// Forward declare RP2040 SDK declaration. +void gpio_init(uint gpio); + +void keyboard_pre_init_kb(void) { + // Ensures that GP26 through GP29 are initialized as digital inputs (as + // opposed to analog inputs). These GPIOs are shared with A0 through A3, + // respectively. On RP2040-B2 and later, the digital inputs are disabled by + // default (see RP2040-E6). + gpio_init(GP26); + gpio_init(GP27); + gpio_init(GP28); + gpio_init(GP29); + + keyboard_pre_init_user(); +} + bool shutdown_kb(bool jump_to_bootloader) { if (!shutdown_user(jump_to_bootloader)) { return false; @@ -338,6 +354,7 @@ bool shutdown_kb(bool jump_to_bootloader) { rgblight_setrgb(RGB_RED); #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE + void rgb_matrix_update_pwm_buffers(void); rgb_matrix_set_color_all(RGB_RED); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/dilemma/readme.md b/keyboards/bastardkb/dilemma/readme.md index a149853015..876400ae52 100644 --- a/keyboards/bastardkb/dilemma/readme.md +++ b/keyboards/bastardkb/dilemma/readme.md @@ -1,31 +1,21 @@ # Dilemma -* Keyboard Maintainer: [BastardKB](https://github.com/BastardKB) -* Hardware Supported: Dilemma PCBs with integrated or devlopment board* microcontrollers -* Hardware Availability: [GitHub](https://github.com/Bastardkb/Dilemma) +A family of split keyboards with embedded RP2040 controllers, support for Cirque GlidePoint circle trackpads, and SPI + I2C breakouts for other peripherals + +- Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +- Hardware Supported: [Bastardkb Dilemma](https://github.com/Bastardkb/Dilemma) +- Hardware Availability: [Bastardkb.com](https://bastardkb.com/) + +A DIY version of the 3x5_2 PCB with promicro compatible footprint is also available. Make example for this keyboard (after setting up your build environment): - make bastardkb/dilemma/3x5_2/assembled:default - make bastardkb/dilemma/3x5_2/promicro:default make bastardkb/dilemma/3x5_3:default make bastardkb/dilemma/4x6_4:default Flashing example for this keyboard: - make bastardkb/dilemma/3x5_2/assembled:default:flash - make bastardkb/dilemma/3x5_2/promicro:default:flash make bastardkb/dilemma/3x5_3:default:flash make bastardkb/dilemma/4x6_4:default:flash -Note*: the `dilemma/3x5_2/promicro` revision is the only DIY Dilemma PCB. It is footprint and pin compatible with a Pro Micro development board, and the firmware is written as such it can be used with the Converter Feature. This PCB uses I2C communication for the Cirque Trackpad, opposed to SPI for the variants with an integrated microcontroller. - -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 and plug in the keyboard -* **Physical reset button**: Double-tap the reset button under/near the microcontroller. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/readme.md b/keyboards/bastardkb/readme.md deleted file mode 100644 index 1b95e09946..0000000000 --- a/keyboards/bastardkb/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# Information for Various BastardKB Hardware - -## Handedness Pin on Elite-C Holder -The [Elite-C Holder](https://github.com/Bastardkb/Elite-C-holder) supports setting [handedness by pin](https://docs.qmk.fm/features/split_keyboard#handedness-by-pin) on pin F1 of an Elite-C. - -To utilise this, you must be using an Elite-C compatible development board (with the bottom 5 pins broken out) and install the necessary resistor. The following firmware configuration can be made in your keymap directory: -```Makefile -# rules.mk - -PIN_COMPATIBLE = elite_c -``` - -```c -// config.h -#pragma once - -#define SPLIT_HAND_PIN F1 -#define SPLIT_HAND_PIN_LOW_IS_LEFT -``` diff --git a/keyboards/bastardkb/scylla/blackpill/config.h b/keyboards/bastardkb/scylla/blackpill/config.h index c6b40f3e5f..1d86b474ee 100644 --- a/keyboards/bastardkb/scylla/blackpill/config.h +++ b/keyboards/bastardkb/scylla/blackpill/config.h @@ -1,9 +1,27 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + /* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 @@ -11,6 +29,14 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 + +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED /* SPI config for EEPROM. */ #define SPI_DRIVER SPID1 diff --git a/keyboards/bastardkb/scylla/blackpill/halconf.h b/keyboards/bastardkb/scylla/blackpill/halconf.h index 545fc20cb3..1ba700a80f 100644 --- a/keyboards/bastardkb/scylla/blackpill/halconf.h +++ b/keyboards/bastardkb/scylla/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/scylla/blackpill/keyboard.json b/keyboards/bastardkb/scylla/blackpill/keyboard.json index 4bef461b6b..5294976fd3 100644 --- a/keyboards/bastardkb/scylla/blackpill/keyboard.json +++ b/keyboards/bastardkb/scylla/blackpill/keyboard.json @@ -1,23 +1,37 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "Scylla Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["B15", "A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/scylla/blackpill/mcuconf.h b/keyboards/bastardkb/scylla/blackpill/mcuconf.h index cc77ec94ae..2b3f30cbfe 100644 --- a/keyboards/bastardkb/scylla/blackpill/mcuconf.h +++ b/keyboards/bastardkb/scylla/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next diff --git a/keyboards/bastardkb/scylla/blackpill/rules.mk b/keyboards/bastardkb/scylla/blackpill/rules.mk new file mode 100644 index 0000000000..48c904dd64 --- /dev/null +++ b/keyboards/bastardkb/scylla/blackpill/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/scylla/info.json b/keyboards/bastardkb/scylla/info.json index 7f3619c6d0..6508c15b5a 100644 --- a/keyboards/bastardkb/scylla/info.json +++ b/keyboards/bastardkb/scylla/info.json @@ -1,85 +1,23 @@ { - "keyboard_name": "Scylla", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true + "url": "https://bastardkb.com/scylla", + "usb": { + "pid": "0x1829" }, "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 2}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 2}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 2}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 2}, - {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, - {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, - {"matrix": [1, 1], "x": 20, "y": 16, "flags": 4}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4}, - {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, - {"matrix": [3, 2], "x": 41, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 61, "y": 48, "flags": 4}, - {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4}, - {"matrix": [1, 3], "x": 61, "y": 16, "flags": 4}, - {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 81, "y": 16, "flags": 4}, - {"matrix": [2, 4], "x": 81, "y": 32, "flags": 4}, - {"matrix": [3, 4], "x": 81, "y": 48, "flags": 4}, - {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, - {"matrix": [1, 5], "x": 102, "y": 16, "flags": 4}, - {"matrix": [2, 5], "x": 102, "y": 32, "flags": 4}, - {"matrix": [3, 5], "x": 102, "y": 48, "flags": 4}, - {"matrix": [4, 2], "x": 102, "y": 64, "flags": 2}, - {"matrix": [4, 5], "x": 81, "y": 64, "flags": 2}, - {"matrix": [4, 3], "x": 61, "y": 56, "flags": 2}, - {"matrix": [4, 4], "x": 81, "y": 56, "flags": 2}, - {"matrix": [4, 1], "x": 102, "y": 56, "flags": 2}, - {"matrix": [5, 0], "x": 224, "y": 0, "flags": 2}, - {"matrix": [6, 0], "x": 224, "y": 16, "flags": 2}, - {"matrix": [7, 0], "x": 224, "y": 32, "flags": 2}, - {"matrix": [8, 0], "x": 224, "y": 48, "flags": 2}, - {"matrix": [8, 1], "x": 204, "y": 48, "flags": 4}, - {"matrix": [7, 1], "x": 204, "y": 32, "flags": 4}, - {"matrix": [6, 1], "x": 204, "y": 16, "flags": 4}, - {"matrix": [5, 1], "x": 204, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 183, "y": 0, "flags": 4}, - {"matrix": [6, 2], "x": 183, "y": 16, "flags": 4}, - {"matrix": [7, 2], "x": 183, "y": 32, "flags": 4}, - {"matrix": [8, 2], "x": 183, "y": 48, "flags": 4}, - {"matrix": [8, 3], "x": 163, "y": 48, "flags": 4}, - {"matrix": [7, 3], "x": 163, "y": 32, "flags": 4}, - {"matrix": [6, 3], "x": 163, "y": 16, "flags": 4}, - {"matrix": [5, 3], "x": 163, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 142, "y": 0, "flags": 4}, - {"matrix": [6, 4], "x": 142, "y": 16, "flags": 4}, - {"matrix": [7, 4], "x": 142, "y": 32, "flags": 4}, - {"matrix": [8, 4], "x": 142, "y": 48, "flags": 4}, - {"matrix": [5, 5], "x": 122, "y": 0, "flags": 4}, - {"matrix": [6, 5], "x": 122, "y": 16, "flags": 4}, - {"matrix": [7, 5], "x": 122, "y": 32, "flags": 4}, - {"matrix": [8, 5], "x": 122, "y": 48, "flags": 4}, - {"matrix": [9, 2], "x": 122, "y": 64, "flags": 2}, - {"matrix": [9, 5], "x": 142, "y": 64, "flags": 2}, - {"matrix": [9, 3], "x": 163, "y": 56, "flags": 2}, - {"matrix": [9, 4], "x": 142, "y": 56, "flags": 2}, - {"matrix": [9, 1], "x": 122, "y": 56, "flags": 2} - ], "max_brightness": 50, "sleep": true, "split_count": [29, 29] }, - "split": { - "enabled": true + "rgblight": { + "led_count": 58, + "split_count": [29, 29] }, - "url": "https://github.com/Bastardkb/Scylla", - "usb": { - "device_version": "2.0.0", - "pid": "0x1829" + "split": { + "transport": { + "sync": { + "matrix_state": true + } + } }, "layouts": { "LAYOUT_split_4x6_5": { @@ -90,56 +28,67 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [5, 5], "x": 11, "y": 0}, {"matrix": [5, 4], "x": 12, "y": 0}, {"matrix": [5, 3], "x": 13, "y": 0}, {"matrix": [5, 2], "x": 14, "y": 0}, {"matrix": [5, 1], "x": 15, "y": 0}, {"matrix": [5, 0], "x": 16, "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": [1, 5], "x": 5, "y": 1}, + {"matrix": [6, 5], "x": 11, "y": 1}, {"matrix": [6, 4], "x": 12, "y": 1}, {"matrix": [6, 3], "x": 13, "y": 1}, {"matrix": [6, 2], "x": 14, "y": 1}, {"matrix": [6, 1], "x": 15, "y": 1}, {"matrix": [6, 0], "x": 16, "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": [2, 5], "x": 5, "y": 2}, + {"matrix": [7, 5], "x": 11, "y": 2}, {"matrix": [7, 4], "x": 12, "y": 2}, {"matrix": [7, 3], "x": 13, "y": 2}, {"matrix": [7, 2], "x": 14, "y": 2}, {"matrix": [7, 1], "x": 15, "y": 2}, {"matrix": [7, 0], "x": 16, "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}, {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [8, 5], "x": 11, "y": 3}, {"matrix": [8, 4], "x": 12, "y": 3}, {"matrix": [8, 3], "x": 13, "y": 3}, {"matrix": [8, 2], "x": 14, "y": 3}, {"matrix": [8, 1], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 16, "y": 3}, + {"matrix": [4, 3], "x": 5, "y": 4}, {"matrix": [4, 4], "x": 6, "y": 4}, {"matrix": [4, 1], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 9, "y": 4}, {"matrix": [9, 4], "x": 10, "y": 4}, {"matrix": [9, 3], "x": 11, "y": 4}, + {"matrix": [4, 5], "x": 6, "y": 5}, {"matrix": [4, 2], "x": 7, "y": 5}, + {"matrix": [9, 2], "x": 9, "y": 5}, {"matrix": [9, 5], "x": 10, "y": 5} ] diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.c b/keyboards/bastardkb/scylla/keymaps/default/keymap.c new file mode 100644 index 0000000000..10adac4126 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_4x6_5(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //-------------------------------------------------//-----------------------------------------------------------// + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + //-------------------------------------------------//-----------------------------------------------------------// + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, + //-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI, KC_HOME, KC_BSPC, KC_DEL, KC_RALT), + + [1] = LAYOUT_split_4x6_5(KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + //---------------------------------------------------------//-----------------------------------------------------------// + QK_BOOT, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS, + //---------------------------------------------------------//-----------------------------------------------------------// + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE, + //---------------------------------------------------------//-----------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, + //---------------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI, KC_SPC, KC_BSPC, KC_RCTL, KC_ENT), + + [2] = LAYOUT_split_4x6_5(KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE, + //---------------------------------------------------------//--------------------------------------------------------------// + _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, + //---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + //---------------------------------------------------------//--------------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, QK_BOOT, KC_SPC, KC_BSPC, KC_RCTL, KC_ENT), +}; diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.json b/keyboards/bastardkb/scylla/keymaps/default/keymap.json deleted file mode 100644 index d06e183517..0000000000 --- a/keyboards/bastardkb/scylla/keymaps/default/keymap.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "keyboard": "bastardkb/scylla/promicro", - "keymap": "default", - "layout": "LAYOUT_split_4x6_5", - "layers": [ - [ - "KC_ESC" , "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_GRV" , - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_CAPS", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RGUI", - "KC_LALT", "KC_SPC", "KC_BSPC", "KC_RALT" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", - "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/bastardkb/scylla/promicro/keyboard.json b/keyboards/bastardkb/scylla/promicro/keyboard.json deleted file mode 100644 index 89116f7dcd..0000000000 --- a/keyboards/bastardkb/scylla/promicro/keyboard.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F4", "F7", "C6", "D4", "B5"] - }, - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/scylla/readme.md b/keyboards/bastardkb/scylla/readme.md index fd40c418c7..830b8eacda 100644 --- a/keyboards/bastardkb/scylla/readme.md +++ b/keyboards/bastardkb/scylla/readme.md @@ -1,27 +1,29 @@ # Scylla -* Keyboard Maintainer: [Quentin Lebastard](https://github.com/bastardkb) -* Hardware Supported: BastardKB Blackpill or Pro Micro adapter & compatible development boards -* Hardware Availability: [GitHub](https://github.com/Bastardkb/Scylla) +A modern, low-profile split ergonomic keyboard -Make example for this keyboard (after setting up your build environment): +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) - make bastardkb/scylla/blackpill:default - make bastardkb/scylla/promicro:default +## Building the firmware -Flashing example for this keyboard: +**You must specify the shield version when compiling/flashing the firmware.** - make bastardkb/scylla/blackpill:default:flash - make bastardkb/scylla/promicro:default:flash +The template is: -Note if using the `promicro` version: If you are using an Elite-C compatible development board, see [here](../readme.md#handedness-pin-on-elite-c-holder) for setting handedness by pin. +```shell +qmk compile -kb bastardkb/scylla/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | ------------------------------------------------------------- | --------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/scylla/v1/elitec -km default` | `qmk compile -kb bastardkb/scylla/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/scylla/v2/elitec -km default` | `qmk compile -kb bastardkb/scylla/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/scylla/v2/splinky/v2 -km default` | `qmk compile -kb bastardkb/scylla/v2/splinky/v2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/scylla/v2/splinky/v3 -km default` | `qmk compile -kb bastardkb/scylla/v2/splinky/v3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/scylla/v2/stemcell -km default` | `qmk compile -kb bastardkb/scylla/v2/stemcell -km via` | 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 and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the adapter PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +See the [keyboard build instructions](https://docs.bastardkb.com) diff --git a/keyboards/bastardkb/scylla/scylla.c b/keyboards/bastardkb/scylla/scylla.c new file mode 100644 index 0000000000..7aaa0fc1ce --- /dev/null +++ b/keyboards/bastardkb/scylla/scylla.c @@ -0,0 +1,63 @@ +/** + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // left + { 0, 7, 8, 15, 16, 20 }, + { 1, 6, 9, 14, 17, 21 }, + { 2, 5, 10, 13, 18, 22 }, + { 3, 4, 11, 12, 19, 23 }, + { NO_LED, 28, 24, 26, 27, 25 }, + // right + { 29, 36, 37, 44, 45, 49 }, + { 30, 35, 38, 43, 46, 50 }, + { 31, 34, 39, 42, 47, 51 }, + { 32, 33, 40, 41, 48, 52 }, + { NO_LED, 57, 53, 55, 56, 54 } +}, { + // left + { 0, 0 }, { 0, 16 }, { 0, 32 }, { 0, 48 }, // col 1 + { 20, 48 }, { 20, 32 }, { 20, 16 }, { 20, 0 }, // col 2 + { 41, 0 }, { 41, 16 }, { 41, 32 }, { 41, 48 }, + { 61, 48 }, { 61, 32 }, { 61, 16 }, { 61, 0 }, + { 81, 0 }, { 81, 16 }, { 81, 32 }, { 81, 48 }, + { 102, 0 }, { 102, 16 }, { 102, 32 }, { 102, 48 }, + { 102, 64 }, { 81, 64 }, { 61, 56 }, { 81, 56 }, { 102, 56 }, // left thumb cluster + // right + { 224, 0 }, { 224, 16 }, { 224, 32 }, { 224, 48 }, // col 12 + { 204, 48 }, { 204, 32 }, { 204, 16 }, { 204, 0 }, // col 11 + { 183, 0 }, { 183, 16 }, { 183, 32 }, { 183, 48 }, + { 163, 48 }, { 163, 32 }, { 163, 16 }, { 163, 0 }, + { 142, 0 }, { 142, 16 }, { 142, 32 }, { 142, 48 }, + { 122, 0 }, { 122, 16 }, { 122, 32 }, { 122, 48 }, + { 122, 64 }, { 142, 64 }, { 163, 56 }, { 142, 56 }, { 122, 56 } // right thumb cluster +}, { + // left + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, + // right + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2 +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/scylla/v1/elitec/config.h b/keyboards/bastardkb/scylla/v1/elitec/config.h new file mode 100644 index 0000000000..41b5aa1c66 --- /dev/null +++ b/keyboards/bastardkb/scylla/v1/elitec/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/scylla/v1/elitec/keyboard.json b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json new file mode 100644 index 0000000000..17b6b7fc36 --- /dev/null +++ b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Scylla Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D2" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["B4", "E6", "C6", "B1", "B3", "B2"], + "rows": ["D7", "B5", "F7", "F6", "B6"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/scylla/v1/elitec/rules.mk b/keyboards/bastardkb/scylla/v1/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/scylla/v1/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/scylla/v2/elitec/config.h b/keyboards/bastardkb/scylla/v2/elitec/config.h new file mode 100644 index 0000000000..e6b7fefa66 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/elitec/config.h @@ -0,0 +1,21 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/scylla/v2/elitec/keyboard.json b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json new file mode 100644 index 0000000000..7bfb7ff5a4 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Scylla Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], + "rows": ["F4", "F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/scylla/v2/elitec/rules.mk b/keyboards/bastardkb/scylla/v2/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/config.h b/keyboards/bastardkb/scylla/v2/splinky_2/config.h new file mode 100644 index 0000000000..977fb0a6e8 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_2/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..2b9022d24e --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "Scylla Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP29", "GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/readme.md b/keyboards/bastardkb/scylla/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/config.h b/keyboards/bastardkb/scylla/v2/splinky_3/config.h new file mode 100644 index 0000000000..e496023656 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_3/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..cd4da3ac41 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "Scylla Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP29", "GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/readme.md b/keyboards/bastardkb/scylla/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/scylla/v2/stemcell/config.h b/keyboards/bastardkb/scylla/v2/stemcell/config.h new file mode 100644 index 0000000000..ca1cc0f719 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/scylla/v2/stemcell/halconf.h b/keyboards/bastardkb/scylla/v2/stemcell/halconf.h new file mode 100644 index 0000000000..dbeb6aeaa0 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..06bfeda7d2 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json @@ -0,0 +1,32 @@ +{ + "keyboard_name": "Scylla STeMCell", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B10", "B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h b/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..6afebade36 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk new file mode 100644 index 0000000000..3fe3e4ffbe --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/skeletyl/blackpill/config.h b/keyboards/bastardkb/skeletyl/blackpill/config.h index c6b40f3e5f..1d86b474ee 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/config.h +++ b/keyboards/bastardkb/skeletyl/blackpill/config.h @@ -1,9 +1,27 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + /* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 @@ -11,6 +29,14 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 + +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED /* SPI config for EEPROM. */ #define SPI_DRIVER SPID1 diff --git a/keyboards/bastardkb/skeletyl/blackpill/halconf.h b/keyboards/bastardkb/skeletyl/blackpill/halconf.h index 545fc20cb3..1ba700a80f 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/halconf.h +++ b/keyboards/bastardkb/skeletyl/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/skeletyl/blackpill/keyboard.json b/keyboards/bastardkb/skeletyl/blackpill/keyboard.json index 15edbf74b8..16fa2b2412 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/keyboard.json +++ b/keyboards/bastardkb/skeletyl/blackpill/keyboard.json @@ -1,23 +1,37 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "Skeletyl Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h b/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h index cc77ec94ae..2b3f30cbfe 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h +++ b/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next diff --git a/keyboards/bastardkb/skeletyl/blackpill/rules.mk b/keyboards/bastardkb/skeletyl/blackpill/rules.mk new file mode 100644 index 0000000000..48c904dd64 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/blackpill/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/skeletyl/info.json b/keyboards/bastardkb/skeletyl/info.json index 470197edb9..e4ac29207d 100644 --- a/keyboards/bastardkb/skeletyl/info.json +++ b/keyboards/bastardkb/skeletyl/info.json @@ -1,63 +1,23 @@ { - "keyboard_name": "Skeletyl", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true + "url": "https://www.bastardkb.com/skeletyl", + "usb": { + "pid": "0x1830" }, "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, - {"matrix": [1, 1], "x": 18, "y": 21, "flags": 4}, - {"matrix": [2, 1], "x": 18, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 36, "y": 42, "flags": 4}, - {"matrix": [1, 2], "x": 36, "y": 21, "flags": 4}, - {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 54, "y": 0, "flags": 4}, - {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4}, - {"matrix": [2, 3], "x": 54, "y": 42, "flags": 4}, - {"matrix": [0, 4], "x": 72, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 72, "y": 21, "flags": 4}, - {"matrix": [2, 4], "x": 72, "y": 42, "flags": 4}, - {"matrix": [3, 2], "x": 72, "y": 64, "flags": 1}, - {"matrix": [3, 3], "x": 90, "y": 64, "flags": 1}, - {"matrix": [3, 0], "x": 108, "y": 64, "flags": 1}, - {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [4, 1], "x": 206, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 206, "y": 21, "flags": 4}, - {"matrix": [6, 1], "x": 206, "y": 42, "flags": 4}, - {"matrix": [6, 2], "x": 188, "y": 42, "flags": 4}, - {"matrix": [5, 2], "x": 188, "y": 21, "flags": 4}, - {"matrix": [4, 2], "x": 188, "y": 0, "flags": 4}, - {"matrix": [4, 3], "x": 170, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 170, "y": 21, "flags": 4}, - {"matrix": [6, 3], "x": 170, "y": 42, "flags": 4}, - {"matrix": [4, 4], "x": 152, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 152, "y": 21, "flags": 4}, - {"matrix": [6, 4], "x": 152, "y": 42, "flags": 4}, - {"matrix": [7, 2], "x": 152, "y": 64, "flags": 1}, - {"matrix": [7, 3], "x": 134, "y": 64, "flags": 1}, - {"matrix": [7, 0], "x": 116, "y": 64, "flags": 1} - ], "max_brightness": 50, "sleep": true, "split_count": [18, 18] }, - "split": { - "enabled": true + "rgblight": { + "led_count": 36, + "split_count": [18, 18] }, - "url": "https://github.com/Bastardkb/Skeletyl", - "usb": { - "device_version": "2.0.0", - "pid": "0x1830" + "split": { + "transport": { + "sync": { + "matrix_state": true + } + } }, "community_layouts": ["split_3x5_3"], "layouts": { @@ -68,34 +28,41 @@ {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [4, 4], "x": 11, "y": 0}, {"matrix": [4, 3], "x": 12, "y": 0}, {"matrix": [4, 2], "x": 13, "y": 0}, {"matrix": [4, 1], "x": 14, "y": 0}, {"matrix": [4, 0], "x": 15, "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": [5, 4], "x": 11, "y": 1}, {"matrix": [5, 3], "x": 12, "y": 1}, {"matrix": [5, 2], "x": 13, "y": 1}, {"matrix": [5, 1], "x": 14, "y": 1}, {"matrix": [5, 0], "x": 15, "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": [6, 4], "x": 11, "y": 2}, {"matrix": [6, 3], "x": 12, "y": 2}, {"matrix": [6, 2], "x": 13, "y": 2}, {"matrix": [6, 1], "x": 14, "y": 2}, {"matrix": [6, 0], "x": 15, "y": 2}, + {"matrix": [3, 2], "x": 4, "y": 3}, {"matrix": [3, 3], "x": 5, "y": 3}, {"matrix": [3, 0], "x": 6, "y": 3}, + {"matrix": [7, 0], "x": 9, "y": 3}, {"matrix": [7, 3], "x": 10, "y": 3}, {"matrix": [7, 2], "x": 11, "y": 3} diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c new file mode 100644 index 0000000000..56e56d9a43 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.json b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.json deleted file mode 100644 index 5253ca2a12..0000000000 --- a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "keyboard": "bastardkb/skeletyl/promicro", - "keymap": "default", - "layout": "LAYOUT_split_3x5_3", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", - "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", - "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT" - ], - [ - "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", - "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", - "EE_CLR", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______" - ] - ] -} - diff --git a/keyboards/bastardkb/skeletyl/promicro/keyboard.json b/keyboards/bastardkb/skeletyl/promicro/keyboard.json deleted file mode 100644 index d9c399865b..0000000000 --- a/keyboards/bastardkb/skeletyl/promicro/keyboard.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] - }, - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/skeletyl/readme.md b/keyboards/bastardkb/skeletyl/readme.md index 7299964968..bd05820d35 100644 --- a/keyboards/bastardkb/skeletyl/readme.md +++ b/keyboards/bastardkb/skeletyl/readme.md @@ -1,27 +1,31 @@ # Skeletyl -* Keyboard Maintainer: [Quentin Lebastard](https://github.com/bastardkb) -* Hardware Supported: BastardKB Blackpill or Pro Micro adapter & compatible development boards -* Hardware Availability: [GitHub](https://github.com/Bastardkb/Skeletyl) +A very small keyboard made for ergonomic enthusiasts. -Make example for this keyboard (after setting up your build environment): +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastardkb.com](https://bastardkb.com/) - make bastardkb/skeletyl/blackpill:default - make bastardkb/skeletyl/promicro:default +## Building the firmware -Flashing example for this keyboard: +**You must specify the shield version when compiling/flashing the firmware.** - make bastardkb/skeletyl/blackpill:default:flash - make bastardkb/skeletyl/promicro:default:flash +The template is: -Note if using the `promicro` version: If you are using an Elite-C compatible development board, see [here](../readme.md#handedness-pin-on-elite-c-holder) for setting handedness by pin. +```shell +qmk compile -kb bastardkb/skeletyl/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/skeletyl/v1/elitec -km default` | `qmk compile -kb bastardkb/skeletyl/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/skeletyl/v2/elitec -km default` | `qmk compile -kb bastardkb/skeletyl/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/skeletyl/v2/splinky_2 -km default` | `qmk compile -kb bastardkb/skeletyl/v2/splinky_2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/skeletyl/v2/splinky_3 -km default` | `qmk compile -kb bastardkb/skeletyl/v2/splinky_3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/skeletyl/v2/stemcell -km default` | `qmk compile -kb bastardkb/skeletyl/v2/stemcell -km via` | + +This keyboard is made to be used with the Miryoku layout, do not use the default keymap. 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 and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the adapter PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/skeletyl/skeletyl.c b/keyboards/bastardkb/skeletyl/skeletyl.c new file mode 100644 index 0000000000..6c65c3fa87 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/skeletyl.c @@ -0,0 +1,81 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +/** + * LEDs index. + * + * ╭────────────────────╮ ╭────────────────────╮ + * 2 3 8 9 12 30 27 26 21 20 + * ├────────────────────┤ ├────────────────────┤ + * 1 4 7 10 13 31 28 25 22 19 + * ├────────────────────┤ ├────────────────────┤ + * 0 5 6 11 14 32 29 24 23 18 + * ╰────────────────────╯ ╰────────────────────╯ + * 15 16 17 35 34 33 + * ╰────────────╯ ╰────────────╯ + */ +// clang-format off +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 2, 3, 8, 9, 12 }, // Top row + { 1, 4, 7, 10, 13 }, // Middle row + { 0, 5, 6, 11, 14 }, // Bottom row + { 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster + // Right split. + { 20, 21, 26, 27, 30 }, // Top row + { 19, 22, 25, 28, 31 }, // Middle row + { 18, 23, 24, 29, 32 }, // Bottom row + { 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most) + /* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2 + /* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 }, + /* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 }, + /* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 }, + /* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster + // Right split. + /* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most) + /* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9 + /* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 }, + /* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 }, + /* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 }, + /* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster + // Right split. + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/config.h b/keyboards/bastardkb/skeletyl/v1/elitec/config.h new file mode 100644 index 0000000000..41b5aa1c66 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v1/elitec/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json new file mode 100644 index 0000000000..2910d80b2f --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Skeletyl Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D2" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["E6", "C6", "B1", "B3", "B2"], + "rows": ["B5", "F7", "F6", "B6"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk b/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/config.h b/keyboards/bastardkb/skeletyl/v2/elitec/config.h new file mode 100644 index 0000000000..e6b7fefa66 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/elitec/config.h @@ -0,0 +1,21 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json new file mode 100644 index 0000000000..dec2537b65 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Skeletyl Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F5", "B6", "D7", "E6", "B4"], + "rows": ["F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk b/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/config.h b/keyboards/bastardkb/skeletyl/v2/splinky_2/config.h new file mode 100644 index 0000000000..977fb0a6e8 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..897f195a31 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "Skeletyl Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/readme.md b/keyboards/bastardkb/skeletyl/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/config.h b/keyboards/bastardkb/skeletyl/v2/splinky_3/config.h new file mode 100644 index 0000000000..e496023656 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..06a93dfbeb --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "Skeletyl Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/readme.md b/keyboards/bastardkb/skeletyl/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/config.h b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h new file mode 100644 index 0000000000..ca1cc0f719 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h b/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h new file mode 100644 index 0000000000..dbeb6aeaa0 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..6dd86bcc12 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json @@ -0,0 +1,32 @@ +{ + "keyboard_name": "Skeletyl STeMCell", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h b/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..6afebade36 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk new file mode 100644 index 0000000000..3fe3e4ffbe --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/tbkmini/blackpill/config.h b/keyboards/bastardkb/tbkmini/blackpill/config.h index c6b40f3e5f..1d86b474ee 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/config.h +++ b/keyboards/bastardkb/tbkmini/blackpill/config.h @@ -1,9 +1,27 @@ -// Copyright 2020 Christopher Courtney (@drashna) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once +/* Handedness. */ +#define SPLIT_HAND_PIN A3 // High -> left, Low -> right. + /* RGB settings. */ #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 @@ -11,6 +29,14 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 +#define WS2812_PWM_TARGET_PERIOD 800000 + +/* Serial configuration for split keyboard. */ +#define SERIAL_USART_TX_PIN A9 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED /* SPI config for EEPROM. */ #define SPI_DRIVER SPID1 diff --git a/keyboards/bastardkb/tbkmini/blackpill/halconf.h b/keyboards/bastardkb/tbkmini/blackpill/halconf.h index 545fc20cb3..1ba700a80f 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/halconf.h +++ b/keyboards/bastardkb/tbkmini/blackpill/halconf.h @@ -1,10 +1,27 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/** + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/bastardkb/tbkmini/blackpill/keyboard.json b/keyboards/bastardkb/tbkmini/blackpill/keyboard.json index df77023bd6..61d0e741fe 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/keyboard.json +++ b/keyboards/bastardkb/tbkmini/blackpill/keyboard.json @@ -1,23 +1,37 @@ { - "development_board": "blackpill_f411", + "keyboard_name": "TBK Mini Blackpill", + "usb": { + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "eeprom": { "driver": "spi" }, + "split": { + "enabled": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] }, - "split": { - "handedness": { - "pin": "A3" - }, - "serial": { - "driver": "usart", - "pin": "A9" - } - }, - "ws2812": { - "driver": "pwm", - "pin": "A1" - } + "diode_direction": "ROW2COL", + "development_board": "blackpill_f411" } diff --git a/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h b/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h index cc77ec94ae..2b3f30cbfe 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h +++ b/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h @@ -1,7 +1,22 @@ -// Copyright 2020 Nick Brassel (tzarc) -// Copyright 2021 Stefan Kerkmann (@KarlK90) -// Copyright 2022 Charly Delay (@0xcharly) -// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include_next diff --git a/keyboards/bastardkb/tbkmini/blackpill/rules.mk b/keyboards/bastardkb/tbkmini/blackpill/rules.mk new file mode 100644 index 0000000000..48c904dd64 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/blackpill/rules.mk @@ -0,0 +1,5 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint + +SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/tbkmini/info.json b/keyboards/bastardkb/tbkmini/info.json index f37e092c2d..ff2df9cdd6 100644 --- a/keyboards/bastardkb/tbkmini/info.json +++ b/keyboards/bastardkb/tbkmini/info.json @@ -1,70 +1,24 @@ { - "url": "https://github.com/Bastardkb/TBK-Mini", - "keyboard_name": "TBK Mini", + "url": "https://www.bastardkb.com/tbk-mini", "usb": { - "pid": "0x1828", - "device_version": "2.0.0" + "pid": "0x1828" }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "rgb_matrix": true - }, - "split": { - "enabled": true - }, - "diode_direction": "ROW2COL", "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 2}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 2}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 2}, - {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 41, "y": 21, "flags": 4}, - {"matrix": [2, 2], "x": 41, "y": 42, "flags": 4}, - {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, - {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, - {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, - {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, - {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, - {"matrix": [1, 5], "x": 102, "y": 21, "flags": 4}, - {"matrix": [2, 5], "x": 102, "y": 42, "flags": 4}, - {"matrix": [3, 1], "x": 61, "y": 64, "flags": 2}, - {"matrix": [3, 3], "x": 81, "y": 64, "flags": 2}, - {"matrix": [3, 4], "x": 102, "y": 64, "flags": 2}, - {"matrix": [4, 0], "x": 224, "y": 0, "flags": 2}, - {"matrix": [5, 0], "x": 224, "y": 21, "flags": 2}, - {"matrix": [6, 0], "x": 224, "y": 42, "flags": 2}, - {"matrix": [6, 1], "x": 204, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 204, "y": 21, "flags": 4}, - {"matrix": [4, 1], "x": 204, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 183, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 183, "y": 21, "flags": 4}, - {"matrix": [6, 2], "x": 183, "y": 42, "flags": 4}, - {"matrix": [6, 3], "x": 163, "y": 42, "flags": 4}, - {"matrix": [5, 3], "x": 163, "y": 21, "flags": 4}, - {"matrix": [4, 3], "x": 163, "y": 0, "flags": 4}, - {"matrix": [4, 4], "x": 142, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 142, "y": 21, "flags": 4}, - {"matrix": [6, 4], "x": 142, "y": 42, "flags": 4}, - {"matrix": [4, 5], "x": 122, "y": 0, "flags": 4}, - {"matrix": [5, 5], "x": 122, "y": 21, "flags": 4}, - {"matrix": [6, 5], "x": 122, "y": 42, "flags": 4}, - {"matrix": [7, 1], "x": 163, "y": 64, "flags": 2}, - {"matrix": [7, 3], "x": 142, "y": 64, "flags": 2}, - {"matrix": [7, 4], "x": 122, "y": 64, "flags": 2} - ], "max_brightness": 50, "sleep": true, "split_count": [21, 21] }, + "rgblight": { + "led_count": 42, + "split_count": [21, 21] + }, + "split": { + "transport": { + "sync": { + "matrix_state": true + } + } + }, "community_layouts": ["split_3x6_3"], "layouts": { "LAYOUT_split_3x6_3": { @@ -75,39 +29,46 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [4, 5], "x": 11, "y": 0}, {"matrix": [4, 4], "x": 12, "y": 0}, {"matrix": [4, 3], "x": 13, "y": 0}, {"matrix": [4, 2], "x": 14, "y": 0}, {"matrix": [4, 1], "x": 15, "y": 0}, {"matrix": [4, 0], "x": 16, "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": [1, 5], "x": 5, "y": 1}, + {"matrix": [5, 5], "x": 11, "y": 1}, {"matrix": [5, 4], "x": 12, "y": 1}, {"matrix": [5, 3], "x": 13, "y": 1}, {"matrix": [5, 2], "x": 14, "y": 1}, {"matrix": [5, 1], "x": 15, "y": 1}, {"matrix": [5, 0], "x": 16, "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": [2, 5], "x": 5, "y": 2}, + {"matrix": [6, 5], "x": 11, "y": 2}, {"matrix": [6, 4], "x": 12, "y": 2}, {"matrix": [6, 3], "x": 13, "y": 2}, {"matrix": [6, 2], "x": 14, "y": 2}, {"matrix": [6, 1], "x": 15, "y": 2}, {"matrix": [6, 0], "x": 16, "y": 2}, + {"matrix": [3, 3], "x": 5, "y": 3}, {"matrix": [3, 4], "x": 6, "y": 3}, {"matrix": [3, 1], "x": 7, "y": 3}, + {"matrix": [7, 1], "x": 9, "y": 3}, {"matrix": [7, 4], "x": 10, "y": 3}, {"matrix": [7, 3], "x": 11, "y": 3} diff --git a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c new file mode 100644 index 0000000000..551aea127f --- /dev/null +++ b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(1), MO(2), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + )}; diff --git a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.json b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.json deleted file mode 100644 index 72ca022da9..0000000000 --- a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "keyboard": "bastardkb/tbkmini/promicro", - "keymap": "default", - "layout": "LAYOUT_split_3x6_3", - "layers": [ - [ - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC", - "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT" - ], - [ - "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", - "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "CK_TOGG", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/bastardkb/tbkmini/promicro/keyboard.json b/keyboards/bastardkb/tbkmini/promicro/keyboard.json deleted file mode 100644 index c1e653ffc1..0000000000 --- a/keyboards/bastardkb/tbkmini/promicro/keyboard.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "development_board": "elite_c", - "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] - }, - "split": { - "serial": { - "pin": "D2" - } - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/bastardkb/tbkmini/readme.md b/keyboards/bastardkb/tbkmini/readme.md index 87f6cdcf2f..74e24ff506 100644 --- a/keyboards/bastardkb/tbkmini/readme.md +++ b/keyboards/bastardkb/tbkmini/readme.md @@ -1,27 +1,29 @@ # TBK Mini -* Keyboard Maintainer: [Quentin Lebastard](https://github.com/bastardkb) -* Hardware Supported: BastardKB Blackpill or Pro Micro adapter & compatible development boards -* Hardware Availability: [GitHub](https://github.com/Bastardkb/TBK-Mini) +A split, compact ergonomic keyboard. -Make example for this keyboard (after setting up your build environment): +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastardkb.com](https://bastardkb.com/) - make bastardkb/tbkmini/blackpill:default - make bastardkb/tbkmini/promicro:default +## Building the firmware -Flashing example for this keyboard: +**You must specify the shield version when compiling/flashing the firmware.** - make bastardkb/tbkmini/blackpill:default:flash - make bastardkb/tbkmini/promicro:default:flash +The template is: -Note if using the `promicro` version: If you are using an Elite-C compatible development board, see [here](../readme.md#handedness-pin-on-elite-c-holder) for setting handedness by pin. +```shell +qmk compile -kb bastardkb/tbkmini/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | -------------------------------------------------------------- | ---------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/tbkmini/v1/elitec -km default` | `qmk compile -kb bastardkb/tbkmini/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/tbkmini/v2/elitec -km default` | `qmk compile -kb bastardkb/tbkmini/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v2 -km default` | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v3 -km default` | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/tbkmini/v2/stemcell -km default` | `qmk compile -kb bastardkb/tbkmini/v2/stemcell -km via` | 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 and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the adapter PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/tbkmini/tbkmini.c b/keyboards/bastardkb/tbkmini/tbkmini.c new file mode 100644 index 0000000000..51baefb737 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/tbkmini.c @@ -0,0 +1,61 @@ +/** + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // left + { 0, 5, 6, 11, 12, 15 }, + { 1, 4, 7, 10, 13, 16 }, + { 2, 3, 8, 9, 14, 17 }, + { NO_LED, 18, NO_LED, 19, 20, NO_LED }, + // right + { 21, 26, 27, 32, 33, 36 }, + { 22, 25, 28, 31, 34, 37 }, + { 23, 24, 29, 30, 35, 38 }, + { NO_LED, 39, NO_LED, 40, 41, NO_LED } +}, { + // left + { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 + { 20, 42 }, { 20, 21 }, { 20, 0 }, // col 2 + { 41, 0 }, { 41, 21 }, { 41, 42 }, + { 61, 42 }, { 61, 21 }, { 61, 0 }, + { 81, 0 }, { 81, 21 }, { 81, 42 }, + { 102, 0 }, { 102, 21 }, { 102, 42 }, + { 61, 64 }, { 81, 64 }, { 102, 64 }, // left thumb cluster + // right + { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 12 + { 204, 42 }, { 204, 21 }, { 204, 0 }, // col 11 + { 183, 0 }, { 183, 21 }, { 183, 42 }, + { 163, 42 }, { 163, 21 }, { 163, 0 }, + { 142, 0 }, { 142, 21 }, { 142, 42 }, + { 122, 0 }, { 122, 21 }, { 122, 42 }, + { 163, 64 }, { 142, 64 }, { 122, 64 } // right thumb cluster +}, { + // left + 2, 2, 2, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, + // right + 2, 2, 2, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2 +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/config.h b/keyboards/bastardkb/tbkmini/v1/elitec/config.h new file mode 100644 index 0000000000..41b5aa1c66 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v1/elitec/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json new file mode 100644 index 0000000000..59988074ba --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "TBK Mini Elite-C", + "usb": { + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D2" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["B4", "E6", "C6", "B1", "B3", "B2"], + "rows": ["B5", "F7", "F6", "B6"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk b/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/config.h b/keyboards/bastardkb/tbkmini/v2/elitec/config.h new file mode 100644 index 0000000000..e6b7fefa66 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/elitec/config.h @@ -0,0 +1,21 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json new file mode 100644 index 0000000000..01679bcff9 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "TBK Mini Elite-C", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], + "rows": ["F7", "C6", "D4", "B5"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk b/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk new file mode 100644 index 0000000000..1868c4bb02 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk @@ -0,0 +1 @@ +AUDIO_SUPPORTED = no # Audio is not supported diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/config.h b/keyboards/bastardkb/tbkmini/v2/splinky_2/config.h new file mode 100644 index 0000000000..977fb0a6e8 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP13 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json new file mode 100644 index 0000000000..2048db6251 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "TBK Mini Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/readme.md b/keyboards/bastardkb/tbkmini/v2/splinky_2/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/config.h b/keyboards/bastardkb/tbkmini/v2/splinky_3/config.h new file mode 100644 index 0000000000..e496023656 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/config.h @@ -0,0 +1,31 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define SPLIT_HAND_PIN GP15 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json new file mode 100644 index 0000000000..8dd21b7591 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "TBK Mini Splinky", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], + "rows": ["GP26", "GP5", "GP4", "GP9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1" + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "processor": "RP2040", + "bootloader": "rp2040" +} diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/readme.md b/keyboards/bastardkb/tbkmini/v2/splinky_3/readme.md new file mode 100644 index 0000000000..662eb5825c --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/readme.md @@ -0,0 +1,5 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3). diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk new file mode 100644 index 0000000000..077573eb76 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/config.h b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h new file mode 100644 index 0000000000..ca1cc0f719 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* RGB settings. */ +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_PWM_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h b/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h new file mode 100644 index 0000000000..dbeb6aeaa0 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json new file mode 100644 index 0000000000..41abba96cb --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json @@ -0,0 +1,32 @@ +{ + "keyboard_name": "TBK Mini STeMCell", + "usb": { + "device_version": "2.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "A2", + "driver": "pwm" + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "A3" + }, + "development_board": "stemcell" +} diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h b/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..6afebade36 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk new file mode 100644 index 0000000000..3fe3e4ffbe --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk @@ -0,0 +1,3 @@ +AUDIO_SUPPORTED = no # Audio is not supported + +SERIAL_DRIVER = usart diff --git a/keyboards/bbrfkr/dynamis/dynamis.c b/keyboards/bbrfkr/dynamis/dynamis.c index 9bf7fb6ae1..f21bf24900 100644 --- a/keyboards/bbrfkr/dynamis/dynamis.c +++ b/keyboards/bbrfkr/dynamis/dynamis.c @@ -20,9 +20,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (clockwise) { - tap_code(layer_state == 0 ? MS_WHLD : KC_VOLD); + tap_code(layer_state == 0 ? KC_WH_D : KC_VOLD); } else { - tap_code(layer_state == 0 ? MS_WHLU : KC_VOLU); + tap_code(layer_state == 0 ? KC_WH_U : KC_VOLU); } return true; } diff --git a/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c b/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c index 301a9003c8..e27d17827c 100644 --- a/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c +++ b/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_BTN3, MS_BTN2, MS_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE ), diff --git a/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c b/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c index ecd1d69c11..38a56f56f4 100644 --- a/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c +++ b/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_BTN3, MS_BTN2, MS_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE ), diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json index 1a35a26a27..90191299d8 100644 --- a/keyboards/bear_face/info.json +++ b/keyboards/bear_face/info.json @@ -9,6 +9,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false }, diff --git a/keyboards/bear_face/v1/keymaps/default/keymap.c b/keyboards/bear_face/v1/keymaps/default/keymap.c index 22235f4af6..e615a3915d 100644 --- a/keyboards/bear_face/v1/keymaps/default/keymap.c +++ b/keyboards/bear_face/v1/keymaps/default/keymap.c @@ -12,9 +12,12 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -#define BASE_QWER PDF(_QWER) -#define BASE_COLE PDF(_COLE) -#define BASE_DVOR PDF(_DVOR) +//custom keycode enums +enum custom_keycodes { + BASE_QWER = QK_USER, + BASE_COLE, + BASE_DVOR +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT( @@ -64,3 +67,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; + + +// macros to allow the user to set whatever default layer they want, even after reboot +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BASE_QWER: + if (record->event.pressed) { + // when keycode BASE_QWER is pressed + set_single_persistent_default_layer(_QWER); + } else { + // when keycode BASE_QWER is released + } + break; + + case BASE_COLE: + if (record->event.pressed) { + // when keycode BASE_COLE is pressed + set_single_persistent_default_layer(_COLE); + } else { + // when keycode BASE_COLE is released + } + break; + + case BASE_DVOR: + if (record->event.pressed) { + // when keycode BASE_DVOR is pressed + set_single_persistent_default_layer(_DVOR); + } else { + // when keycode BASE_DVOR is released + } + break; + } + return true; +}; diff --git a/keyboards/bear_face/v2/keymaps/default/keymap.c b/keyboards/bear_face/v2/keymaps/default/keymap.c index 0f8aefb4b3..08f193052a 100644 --- a/keyboards/bear_face/v2/keymaps/default/keymap.c +++ b/keyboards/bear_face/v2/keymaps/default/keymap.c @@ -12,9 +12,12 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -#define BASE_QWER PDF(_QWER) -#define BASE_COLE PDF(_COLE) -#define BASE_DVOR PDF(_DVOR) +//custom keycode enums +enum custom_keycodes { + BASE_QWER = QK_USER, + BASE_COLE, + BASE_DVOR +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_83_ansi( @@ -64,3 +67,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; + + +// macros to allow the user to set whatever default layer they want, even after reboot +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BASE_QWER: + if (record->event.pressed) { + // when keycode BASE_QWER is pressed + set_single_persistent_default_layer(_QWER); + } else { + // when keycode BASE_QWER is released + } + break; + + case BASE_COLE: + if (record->event.pressed) { + // when keycode BASE_COLE is pressed + set_single_persistent_default_layer(_COLE); + } else { + // when keycode BASE_COLE is released + } + break; + + case BASE_DVOR: + if (record->event.pressed) { + // when keycode BASE_DVOR is pressed + set_single_persistent_default_layer(_DVOR); + } else { + // when keycode BASE_DVOR is released + } + break; + } + return true; +}; diff --git a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c index 69d6720510..a5e96207f6 100644 --- a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c +++ b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c @@ -12,9 +12,12 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -#define BASE_QWER PDF(_QWER) -#define BASE_COLE PDF(_COLE) -#define BASE_DVOR PDF(_DVOR) +//custom keycode enums +enum custom_keycodes { + BASE_QWER = QK_USER, + BASE_COLE, + BASE_DVOR +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_84_iso( @@ -64,3 +67,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; + + +//macros to allow the user to set whatever default layer they want, even after reboot +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BASE_QWER: + if (record->event.pressed) { + // when keycode BASE_QWER is pressed + set_single_persistent_default_layer(_QWER); + } else { + // when keycode BASE_QWER is released + } + break; + + case BASE_COLE: + if (record->event.pressed) { + // when keycode BASE_COLE is pressed + set_single_persistent_default_layer(_COLE); + } else { + // when keycode BASE_COLE is released + } + break; + + case BASE_DVOR: + if (record->event.pressed) { + // when keycode BASE_DVOR is pressed + set_single_persistent_default_layer(_DVOR); + } else { + // when keycode BASE_DVOR is released + } + break; + } + return true; +}; diff --git a/keyboards/bear_face/v3/keymaps/default/keymap.c b/keyboards/bear_face/v3/keymaps/default/keymap.c index 0f8aefb4b3..f6e71f1b34 100644 --- a/keyboards/bear_face/v3/keymaps/default/keymap.c +++ b/keyboards/bear_face/v3/keymaps/default/keymap.c @@ -12,9 +12,12 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -#define BASE_QWER PDF(_QWER) -#define BASE_COLE PDF(_COLE) -#define BASE_DVOR PDF(_DVOR) +//custom keycode enums +enum custom_keycodes { + BASE_QWER = QK_USER, + BASE_COLE, + BASE_DVOR +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_83_ansi( @@ -64,3 +67,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; + + +// Macros to allow the user to set whatever default layer they want, even after reboot +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BASE_QWER: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWER); + } + break; + case BASE_COLE: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLE); + } + break; + case BASE_DVOR: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVOR); + } + break; + } + return true; +}; diff --git a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c index 69d6720510..cc97d54a9b 100644 --- a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c +++ b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c @@ -12,9 +12,12 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -#define BASE_QWER PDF(_QWER) -#define BASE_COLE PDF(_COLE) -#define BASE_DVOR PDF(_DVOR) +//custom keycode enums +enum custom_keycodes { + BASE_QWER = QK_USER, + BASE_COLE, + BASE_DVOR +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_84_iso( @@ -64,3 +67,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; + + +// Macros to allow the user to set whatever default layer they want, even after reboot +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BASE_QWER: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWER); + } + break; + case BASE_COLE: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLE); + } + break; + case BASE_DVOR: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVOR); + } + break; + } + return true; +}; diff --git a/keyboards/beatervan/keyboard.json b/keyboards/beatervan/keyboard.json index 685f713501..27d0f3e535 100644 --- a/keyboards/beatervan/keyboard.json +++ b/keyboards/beatervan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "beatervan", "manufacturer": "OJ", + "url": "", "maintainer": "OJ", "usb": { "vid": "0x6F7A", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -26,7 +28,8 @@ "rows": ["D1", "D0", "D4", "C6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/beatervan/keymaps/default/keymap.c b/keyboards/beatervan/keymaps/default/keymap.c index ef88ae9207..a99b9c9e51 100644 --- a/keyboards/beatervan/keymaps/default/keymap.c +++ b/keyboards/beatervan/keymaps/default/keymap.c @@ -24,9 +24,11 @@ enum layers { _L3, }; -#define QWERTY PDF(_QW) -#define DVORAK PDF(_DV) -#define COLEMAK PDF(_CM) +enum custom_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = LAYOUT( /* Qwerty */ @@ -66,3 +68,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ ) }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DV); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QW); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_CM); + } + return false; + default: + return true; + } + return true; +}; diff --git a/keyboards/beekeeb/3w6hs/config.h b/keyboards/beekeeb/3w6hs/config.h deleted file mode 100644 index fb3b16960d..0000000000 --- a/keyboards/beekeeb/3w6hs/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 beekeeb -// Copyright 2021 weteor -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 10 - -#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) -#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) - -#define MATRIX_ROW_PINS_L { GP7, GP8, GP9, GP10} -#define MATRIX_COL_PINS_L { GP11, GP12, GP13, GP14, GP15 } - -#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } -#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } - -#define I2C_DRIVER I2CD0 -#define I2C1_SDA_PIN GP0 -#define I2C1_SCL_PIN GP1 diff --git a/keyboards/beekeeb/3w6hs/halconf.h b/keyboards/beekeeb/3w6hs/halconf.h deleted file mode 100644 index 9419229b61..0000000000 --- a/keyboards/beekeeb/3w6hs/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2023 QMK - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next - diff --git a/keyboards/beekeeb/3w6hs/keyboard.json b/keyboards/beekeeb/3w6hs/keyboard.json deleted file mode 100644 index 74f1f1f245..0000000000 --- a/keyboards/beekeeb/3w6hs/keyboard.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "manufacturer": "beekeeb", - "keyboard_name": "3w6hs", - "maintainer": "beekeeb", - "diode_direction": "COL2ROW", - "usb": { - "device_version": "1.0.0", - "pid": "0x0003", - "vid": "0xBEEB", - "no_startup_check": true - }, - "processor": "RP2040", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true - }, - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.8}, - {"matrix": [0, 1], "x": 1, "y": 0.2}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.2}, - {"matrix": [0, 4], "x": 4, "y": 0.4}, - - {"matrix": [4, 0], "x": 8, "y": 0.4}, - {"matrix": [4, 1], "x": 9, "y": 0.2}, - {"matrix": [4, 2], "x": 10, "y": 0}, - {"matrix": [4, 3], "x": 11, "y": 0.2}, - {"matrix": [4, 4], "x": 12, "y": 0.8}, - - {"matrix": [1, 0], "x": 0, "y": 1.8}, - {"matrix": [1, 1], "x": 1, "y": 1.2}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.2}, - {"matrix": [1, 4], "x": 4, "y": 1.4}, - - {"matrix": [5, 0], "x": 8, "y": 1.4}, - {"matrix": [5, 1], "x": 9, "y": 1.2}, - {"matrix": [5, 2], "x": 10, "y": 1}, - {"matrix": [5, 3], "x": 11, "y": 1.2}, - {"matrix": [5, 4], "x": 12, "y": 1.8}, - - {"matrix": [2, 0], "x": 0, "y": 2.8}, - {"matrix": [2, 1], "x": 1, "y": 2.2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.2}, - {"matrix": [2, 4], "x": 4, "y": 2.4}, - - {"matrix": [6, 0], "x": 8, "y": 2.4}, - {"matrix": [6, 1], "x": 9, "y": 2.2}, - {"matrix": [6, 2], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 11, "y": 2.2}, - {"matrix": [6, 4], "x": 12, "y": 2.8}, - - {"matrix": [3, 2], "x": 3.2, "y": 3.6}, - {"matrix": [3, 3], "x": 4.2, "y": 3.6}, - {"matrix": [3, 4], "x": 5.2, "y": 3.8}, - - {"matrix": [7, 0], "x": 6.8, "y": 3.8}, - {"matrix": [7, 1], "x": 7.8, "y": 3.6}, - {"matrix": [7, 2], "x": 8.8, "y": 3.6} - ] - } - } -} diff --git a/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c deleted file mode 100644 index 8a9a90175f..0000000000 --- a/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2021 weteor - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers { - _ALPHA_QWERTY, - _ALPHA_COLEMAK, - _SYM, - _NAV, - _NUM, - _CFG, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - - [_ALPHA_QWERTY] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - - LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) - ), - [_ALPHA_COLEMAK] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), - LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) - ), - [_SYM] = LAYOUT_split_3x5_3( - KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, - KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, - _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, - XXXXXXX, MO(_CFG), XXXXXXX, _______, XXXXXXX, XXXXXXX - ), - [_NAV] = LAYOUT_split_3x5_3( - XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, - KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, _______, XXXXXXX, MO(_CFG), XXXXXXX - ), - [_NUM] = LAYOUT_split_3x5_3( - XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, - XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, - XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, - XXXXXXX, _______, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX - ), - [_CFG] = LAYOUT_split_3x5_3( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX - ), -}; diff --git a/keyboards/beekeeb/3w6hs/matrix.c b/keyboards/beekeeb/3w6hs/matrix.c deleted file mode 100644 index 8bddc62842..0000000000 --- a/keyboards/beekeeb/3w6hs/matrix.c +++ /dev/null @@ -1,248 +0,0 @@ -/* -Copyright 2013 Oleg Kostyuk - 2020 Pierre Chevalier - 2021 weteor - 2023 beekeeb -*/ - -// SPDX-License-Identifier: GPL-2.0-or-later - -/* - * This code was heavily inspired by the ergodox_ez keymap, and modernized - * to take advantage of the quantum.h microcontroller agnostics gpio control - * abstractions and use the macros defined in config.h for the wiring as opposed - * to repeating that information all over the place. - */ - -#include "matrix.h" -#include "debug.h" -#include "wait.h" -#include "i2c_master.h" - -extern i2c_status_t tca9555_status; -//#define I2C_TIMEOUT 1000 - -// I2C address: -// All address pins of the tca9555 are connected to the ground -// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | -// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | -#define I2C_ADDR (0b0100000 << 1) - -// Register addresses -#define IODIRA 0x06 // i/o direction register -#define IODIRB 0x07 -#define IREGP0 0x00 // GPIO pull-up resistor register -#define IREGP1 0x01 -#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) -#define OREGP1 0x03 - -bool i2c_initialized = 0; -i2c_status_t tca9555_status = I2C_ADDR; - -uint8_t init_tca9555(void) { - dprint("starting init\n"); - tca9555_status = I2C_ADDR; - - // I2C subsystem - if (i2c_initialized == 0) { - i2c_init(); // on pins D(1,0) - i2c_initialized = true; - wait_ms(I2C_TIMEOUT); - } - - // set pin direction - // - unused : input : 1 - // - input : input : 1 - // - driving : output : 0 - uint8_t conf[2] = { - // This means: read all pins of port 0 - 0b11111111, - // This means: we will write on pins 0 to 3 on port 1. read rest - 0b11110000, - }; - tca9555_status = i2c_write_register(I2C_ADDR, IODIRA, conf, 2, I2C_TIMEOUT); - - return tca9555_status; -} - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; // debounced values - -static matrix_row_t read_cols(uint8_t row); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -static uint8_t tca9555_reset_loop; - -void matrix_init_custom(void) { - // initialize row and col - - tca9555_status = init_tca9555(); - - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - } -} - -void matrix_power_up(void) { - tca9555_status = init_tca9555(); - - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - } -} - -// Reads and stores a row, returning -// whether a change occurred. -static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { - matrix_row_t temp = read_cols(index); - if (current_matrix[index] != temp) { - current_matrix[index] = temp; - return true; - } - return false; -} - -bool matrix_scan_custom(matrix_row_t current_matrix[]) { - if (tca9555_status) { // if there was an error - if (++tca9555_reset_loop == 0) { - // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans - // this will be approx bit more frequent than once per second - dprint("trying to reset tca9555\n"); - tca9555_status = init_tca9555(); - if (tca9555_status) { - dprint("right side not responding\n"); - } else { - dprint("right side attached\n"); - } - } - } - - bool changed = false; - for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { - // select rows from left and right hands - uint8_t left_index = i; - uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; - select_row(left_index); - select_row(right_index); - - // we don't need a 30us delay anymore, because selecting a - // left-hand row requires more than 30us for i2c. - - changed |= store_matrix_row(current_matrix, left_index); - changed |= store_matrix_row(current_matrix, right_index); - - unselect_rows(); - } - - return changed; -} - -static void init_cols(void) { - // init on tca9555 - // not needed, already done as part of init_tca9555() - - // init on mcu - pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; - for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { - pin_t pin = matrix_col_pins_mcu[pin_index]; - gpio_set_pin_input_high(pin); - gpio_write_pin_high(pin); - } -} - -static matrix_row_t read_cols(uint8_t row) { - if (row < MATRIX_ROWS_PER_SIDE) { - pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; - matrix_row_t current_row_value = 0; - // For each col... - for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { - // Select the col pin to read (active low) - uint8_t pin_state = gpio_read_pin(matrix_col_pins_mcu[col_index]); - - // Populate the matrix row with the state of the col pin - current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); - } - return current_row_value; - } else { - if (tca9555_status) { // if there was an error - return 0; - } else { - uint8_t data = 0; - uint8_t port0 = 0; - tca9555_status = i2c_read_register(I2C_ADDR, IREGP0, &port0, 1, I2C_TIMEOUT); - if (tca9555_status) { // if there was an error - // do nothing - return 0; - } else { - port0 = ~port0; - // We read all the pins on GPIOA. - // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. - // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. - // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on). - data |= (port0 & 0x01) << 4; - data |= (port0 & 0x02) << 2; - data |= (port0 & 0x04); - data |= (port0 & 0x08) >> 2; - data |= (port0 & 0x10) >> 4; - - tca9555_status = I2C_STATUS_SUCCESS; - return data; - } - } - } -} - -static void unselect_rows(void) { - // no need to unselect on tca9555, because the select step sets all - // the other row bits high, and it's not changing to a different - // direction - - // unselect rows on microcontroller - pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; - for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { - pin_t pin = matrix_row_pins_mcu[pin_index]; - gpio_set_pin_input_high(pin); - gpio_write_pin_low(pin); - } -} - -static void select_row(uint8_t row) { - uint8_t port1 = 0xff; - - if (row < MATRIX_ROWS_PER_SIDE) { - // select on atmega32u4 - pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; - pin_t pin = matrix_row_pins_mcu[row]; - gpio_set_pin_output(pin); - gpio_write_pin_low(pin); - } else { - // select on tca9555 - if (tca9555_status) { // if there was an error - // do nothing - } else { - switch(row) { - case 4: port1 &= ~(1 << 0); break; - case 5: port1 &= ~(1 << 1); break; - case 6: port1 &= ~(1 << 2); break; - case 7: - port1 &= ~(1 << 3); - break; - default: break; - } - - tca9555_status = i2c_write_register(I2C_ADDR, OREGP1, &port1, 1, I2C_TIMEOUT); - // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. - // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. - } - } -} diff --git a/keyboards/beekeeb/3w6hs/mcuconf.h b/keyboards/beekeeb/3w6hs/mcuconf.h deleted file mode 100644 index dd927436df..0000000000 --- a/keyboards/beekeeb/3w6hs/mcuconf.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2023 QMK - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C0 TRUE -#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/beekeeb/3w6hs/readme.md b/keyboards/beekeeb/3w6hs/readme.md deleted file mode 100644 index e0dde6eb0b..0000000000 --- a/keyboards/beekeeb/3w6hs/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# 3W6HS - -![3W6HS](https://i.imgur.com/CPxwGSt.jpeg) - -The 3W6HS is a hotswap, RP2040, low profile, split keyboard with 36 keys, modified from 3W6 by weteor. - -* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb) -* Hardware Supported: RP2040 -* Hardware Availability: [https://shop.beekeeb.com/](https://shop.beekeeb.com) - -Make example for this keyboard (after setting up your build environment): - - make beekeeb/3w6hs:default - -Flashing example for this keyboard: - - make beekeeb/3w6hs: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 - -To enter the bootloader, follow these steps: -* Disconnect the keyboard from the computer. -* Locate the BOOT button, which is the top button on the left side of the keyboard. -* While holding down the BOOT button, connect the keyboard back to the computer. diff --git a/keyboards/beekeeb/3w6hs/rules.mk b/keyboards/beekeeb/3w6hs/rules.mk deleted file mode 100644 index cea39bb5c9..0000000000 --- a/keyboards/beekeeb/3w6hs/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CUSTOM_MATRIX = lite -SRC += matrix.c -I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/beekeeb/piantor/keyboard.json b/keyboards/beekeeb/piantor/keyboard.json index 94463f6c6d..77bfc3678c 100644 --- a/keyboards/beekeeb/piantor/keyboard.json +++ b/keyboards/beekeeb/piantor/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "rp2040", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/beekeeb/piantor_pro/keyboard.json b/keyboards/beekeeb/piantor_pro/keyboard.json index bca723d5ba..ad4890ae68 100644 --- a/keyboards/beekeeb/piantor_pro/keyboard.json +++ b/keyboards/beekeeb/piantor_pro/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP7", "GP8", "GP9", "GP10"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/bestway/keyboard.json b/keyboards/bestway/keyboard.json index 2f4541b268..66856115f8 100644 --- a/keyboards/bestway/keyboard.json +++ b/keyboards/bestway/keyboard.json @@ -35,6 +35,7 @@ "led_count": 3, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBB05", diff --git a/keyboards/bfake/keyboard.json b/keyboards/bfake/keyboard.json index febcc29f91..4774e282d7 100644 --- a/keyboards/bfake/keyboard.json +++ b/keyboards/bfake/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "B.fake", "manufacturer": "NotWinkeyless", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c b/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c index 1ebbfc219e..0710cd1ebe 100644 --- a/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c +++ b/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c @@ -87,8 +87,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [RGB] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, TAP_ANIM,XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, RGB_RST, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, TAP_ANIM,XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAD, RGB_VAD, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) @@ -98,7 +98,7 @@ bool isTapAnim = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { isTapAnim = false; } diff --git a/keyboards/biacco42/ergo42/rev1/keyboard.json b/keyboards/biacco42/ergo42/rev1/keyboard.json index 2ccf9887df..c75e9d1c51 100644 --- a/keyboards/biacco42/ergo42/rev1/keyboard.json +++ b/keyboards/biacco42/ergo42/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ergo42", "manufacturer": "Biacco42", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBC42", @@ -36,7 +37,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x14" }, diff --git a/keyboards/biacco42/ergo42/rules.mk b/keyboards/biacco42/ergo42/rules.mk new file mode 100644 index 0000000000..18059c0a3b --- /dev/null +++ b/keyboards/biacco42/ergo42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = biacco42/ergo42/rev1 diff --git a/keyboards/biacco42/meishi/keyboard.json b/keyboards/biacco42/meishi/keyboard.json index 08f2edcb38..b7d751d83e 100644 --- a/keyboards/biacco42/meishi/keyboard.json +++ b/keyboards/biacco42/meishi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Meishi", "manufacturer": "Biacco42", + "url": "", "maintainer": "Biacco42", "usb": { "vid": "0xBC42", @@ -26,7 +27,8 @@ "rows": ["B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/biacco42/meishi2/keyboard.json b/keyboards/biacco42/meishi2/keyboard.json index 9e630c7df8..2f553681bc 100644 --- a/keyboards/biacco42/meishi2/keyboard.json +++ b/keyboards/biacco42/meishi2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "meishi2", "manufacturer": "Biacco42", + "url": "", "maintainer": "biacco42", "usb": { "vid": "0xBC42", @@ -26,7 +27,8 @@ "rows": ["D7", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/biacco42/meishi2/readme.md b/keyboards/biacco42/meishi2/readme.md index b190ff38ce..97c5465f86 100644 --- a/keyboards/biacco42/meishi2/readme.md +++ b/keyboards/biacco42/meishi2/readme.md @@ -5,7 +5,8 @@ meishi2 - The better micro macro keyboard Keyboard Maintainer: [Biacco42](https://github.com/Biacco42) -Hardware Availability: https://github.com/Biacco42/meishi2 +Hardware Supported: The PCBs, controllers supported +Hardware Availability: [links to where you can find this hardware](https://github.com/Biacco42/meishi2) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/binepad/bn006/keyboard.json b/keyboards/binepad/bn006/keyboard.json index 52f0086d1a..e5e25b4b90 100755 --- a/keyboards/binepad/bn006/keyboard.json +++ b/keyboards/binepad/bn006/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/binepad/bn009/info.json b/keyboards/binepad/bn009/info.json index eba9ab4e4b..5e06ee9ef6 100644 --- a/keyboards/binepad/bn009/info.json +++ b/keyboards/binepad/bn009/info.json @@ -4,6 +4,8 @@ "maintainer": "binepad", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/binepad/bn009/rules.mk b/keyboards/binepad/bn009/rules.mk new file mode 100644 index 0000000000..74214d60ed --- /dev/null +++ b/keyboards/binepad/bn009/rules.mk @@ -0,0 +1,3 @@ +# This file is mostly left blank + +DEFAULT_FOLDER = binepad/bn009/r2 diff --git a/keyboards/binepad/bnk8/config.h b/keyboards/binepad/bnk8/config.h deleted file mode 100644 index 40eea2db81..0000000000 --- a/keyboards/binepad/bnk8/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 binepad (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Timing for SK6812 -#define WS2812_T1H 650 diff --git a/keyboards/binepad/bnk8/keyboard.json b/keyboards/binepad/bnk8/keyboard.json deleted file mode 100755 index 550aa77961..0000000000 --- a/keyboards/binepad/bnk8/keyboard.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "manufacturer": "binepad", - "keyboard_name": "BNK8", - "maintainer": "binepad", - "bootloader": "stm32duino", - "bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A7", "pin_b": "A0", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B3", "B4", "C13"], - "rows": ["C14", "B13", "B12"] - }, - "processor": "STM32F103", - "rgb_matrix": { - "animations": { - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_pinwheel": true, - "cycle_up_down": true, - "jellybean_raindrops": true, - "riverflow": true, - "solid_reactive": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 80, "y": 32, "flags": 4}, - {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, - {"matrix": [1, 2], "x": 144, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 80, "y": 64, "flags": 4}, - {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, - {"matrix": [2, 2], "x": 144, "y": 64, "flags": 4} - ], - "led_process_limit": 9, - "max_brightness": 180, - "sleep": true - }, - "url": "https://www.binepad.com/product-page/bnk8", - "usb": { - "device_version": "1.0.0", - "vid": "0x4249", - "pid": "0x4E41" - }, - "eeprom": { - "wear_leveling": { - "backing_size": 1024 - } - }, - "ws2812": { - "pin": "C15" - }, - "community_layouts": ["ortho_3x3"], - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"label": "1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "2", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0}, - {"label": "3", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "4", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "5", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "6", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "7", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "8", "matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/binepad/bnk8/keymaps/default/keymap.json b/keyboards/binepad/bnk8/keymaps/default/keymap.json deleted file mode 100644 index 51b5e06619..0000000000 --- a/keyboards/binepad/bnk8/keymaps/default/keymap.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "keyboard": "binepad/bnk8", - "version": 1, - "author": "binepad", - "notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8", - "keymap": "default", - "layout": "LAYOUT_ortho_3x3", - "layers": [ - [ - "KC_P1", "KC_P2", "KC_MUTE", - "KC_P3", "KC_P4", "KC_P5", - "KC_P6", "KC_P7", "LT(1, KC_P8)" - ], - [ - "RM_HUEU", "RM_SATU", "RM_SPDU", - "RM_HUED", "RM_SATD", "RM_SPDD", - "RM_TOGG", "RM_NEXT", "_______" - - ] - ], - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [ - { - "ccw": "KC_VOLD", - "cw": "KC_VOLU" - } - ], - [ - { - "ccw": "RM_VALD", - "cw": "RM_VALU" - } - ] - ] -} diff --git a/keyboards/binepad/bnk8/readme.md b/keyboards/binepad/bnk8/readme.md deleted file mode 100755 index 89ceb863a1..0000000000 --- a/keyboards/binepad/bnk8/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# BINEPAD BNK8 - -![BINEPAD BNK8](https://i.imgur.com/HFIZg48h.jpeg) - -A compact 8-key 3x3 macropad with a rotary encoder at the top right. - -* Keyboard Maintainer: [binepad](https://github.com/binepad) -* Hardware Supported: BINPAD BNK8 -* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8) - -Make example for this keyboard (after setting up your build environment): - - make binepad/bnk8:default - -Flashing example for this keyboard: - - make binepad/bnk8: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/bnk9/keymaps/default/keymap.c b/keyboards/binepad/bnk9/keymaps/default/keymap.c index 60b0210599..9ae1e4541f 100644 --- a/keyboards/binepad/bnk9/keymaps/default/keymap.c +++ b/keyboards/binepad/bnk9/keymaps/default/keymap.c @@ -11,10 +11,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P7, KC_P8, LT(1, KC_P9) ), [1] = LAYOUT( - RM_TOGG, - RM_HUEU, RM_SATU, RM_SPDU, - RM_HUED, RM_SATD, RM_SPDD, - RM_PREV, RM_NEXT, _______ + RGB_TOG, + RGB_HUI, RGB_SAI, RGB_SPI, + RGB_HUD, RGB_SAD, RGB_SPD, + RGB_RMOD, RGB_MOD, _______ ) }; @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/binepad/bnr1/info.json b/keyboards/binepad/bnr1/info.json index b2591901fc..42067200cd 100755 --- a/keyboards/binepad/bnr1/info.json +++ b/keyboards/binepad/bnr1/info.json @@ -4,6 +4,8 @@ "maintainer": "Binpad", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/binepad/bnr1/keymaps/default/keymap.c b/keyboards/binepad/bnr1/keymaps/default/keymap.c index 3ba547b2af..4e7b0cf6eb 100644 --- a/keyboards/binepad/bnr1/keymaps/default/keymap.c +++ b/keyboards/binepad/bnr1/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_L0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_L1] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU) } + [_L1] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP) } }; #endif diff --git a/keyboards/binepad/bnr1/rules.mk b/keyboards/binepad/bnr1/rules.mk new file mode 100755 index 0000000000..ce85c57404 --- /dev/null +++ b/keyboards/binepad/bnr1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = binepad/bnr1/v2 diff --git a/keyboards/binepad/kn01/keyboard.json b/keyboards/binepad/kn01/keyboard.json deleted file mode 100755 index d7edaee77e..0000000000 --- a/keyboards/binepad/kn01/keyboard.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "manufacturer": "Binepad", - "keyboard_name": "KN01", - "maintainer": "Binpad", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B3", "pin_b": "B4"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "cols": ["A15"], - "rows": ["A8"] - }, - "processor": "STM32F103", - "url": "http://binepad.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x4040", - "vid": "0x4249" - }, - "community_layouts": ["ortho_1x1"], - "layouts": { - "LAYOUT_ortho_1x1": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 2, "h": 2} - ] - } - } -} diff --git a/keyboards/binepad/kn01/keymaps/default/keymap.json b/keyboards/binepad/kn01/keymaps/default/keymap.json deleted file mode 100644 index f4e436cbc6..0000000000 --- a/keyboards/binepad/kn01/keymaps/default/keymap.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [ - { - "ccw": "KC_VOLD", - "cw": "KC_VOLU" - } - ], - [ - { - "ccw": "MS_WHLD", - "cw": "MS_WHLU" - } - ] - ], - "keyboard": "binepad/kn01", - "keymap": "default", - "layers": [ - ["LT(1, KC_MUTE)"], - ["_______"] - ], - "layout": "LAYOUT_ortho_1x1", - "version": 1 -} diff --git a/keyboards/binepad/kn01/readme.md b/keyboards/binepad/kn01/readme.md deleted file mode 100755 index e65709a540..0000000000 --- a/keyboards/binepad/kn01/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# BINEPAD NEOKNOB KN01 - -![Binepad NeoKnob KN01](https://i.imgur.com/N8GXq7P.png) - -The KN01 is a multifunction knob, which can be rotated, pressed, and rotated while pressed. - -* Keyboard Maintainer: [Binpad](https://github.com/binepad) -* Hardware Supported: **NEOKNOB KN01** -* Hardware Availability: [Binepad.com](https://www.binepad.com/products/kn01) - -Make example for this keyboard (after setting up your build environment): - - make binepad/kn01:default - -Flashing example for this keyboard: - - make binepad/kn01: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 knob while plugging in the keyboard's USB cable -* **Physical reset button**: Briefly press the button on the underside of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/knobx1/keyboard.json b/keyboards/binepad/knobx1/keyboard.json deleted file mode 100644 index f82cf1dbd3..0000000000 --- a/keyboards/binepad/knobx1/keyboard.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "manufacturer": "Binepad", - "keyboard_name": "KnobX1", - "maintainer": "binepad", - "bootloader": "stm32duino", - "bootloader_instructions": "Hold down the layer button (small button on the bottom left) and plug in the keyboard.", - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 1024 - } - }, - "encoder": { - "rotary": [ - {"pin_a": "B12", "pin_b": "B13", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "rgblight": true - }, - "matrix_pins": { - "direct": [ - ["A7", "A15"] - ] - }, - "processor": "STM32F103", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "gradient": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "twinkle": true - }, - "default": { - "hue": 198, - "speed": 2, - "val": 204 - }, - "driver": "ws2812", - "led_count": 2, - "sleep": true - }, - "url": "https://binepad.com/products/knobx1", - "usb": { - "device_version": "1.0.0", - "pid": "0x4249", - "vid": "0x5831" - }, - "ws2812": { - "pin": "C13" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0, "w": 3, "h": 3} - ] - } - } -} diff --git a/keyboards/binepad/knobx1/keymaps/default/keymap.json b/keyboards/binepad/knobx1/keymaps/default/keymap.json deleted file mode 100644 index 4d91c09968..0000000000 --- a/keyboards/binepad/knobx1/keymaps/default/keymap.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [ - { - "ccw": "KC_VOLD", - "cw": "KC_VOLU" - } - ] - ], - "keyboard": "binepad/knobx1", - "keymap": "default", - "layers": [ - ["X1_LYRU", "KC_MUTE"] - ], - "layout": "LAYOUT", - "version": 1 -} diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c deleted file mode 100644 index 7f299b67e3..0000000000 --- a/keyboards/binepad/knobx1/knobx1.c +++ /dev/null @@ -1,76 +0,0 @@ -// (c) 2025 Binepad (@binpad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "knobx1.h" - -#ifdef DYNAMIC_KEYMAP_LAYER_COUNT -# define X1_KEYMAP_LAYER_COUNT DYNAMIC_KEYMAP_LAYER_COUNT -#else -# define X1_KEYMAP_LAYER_COUNT 4 -#endif - -void keyboard_pre_init_kb(void) { - const pin_t indicator_leds[4] = {IND1_LED, IND2_LED, IND3_LED, IND4_LED}; - for (int i = 0; i < 4; i++) { - gpio_set_pin_output(indicator_leds[i]); // Set Indicators as output - gpio_write_pin_low(indicator_leds[i]); // Set initial indicator low / OFF - } - - // Call the user pre-init function if needed - // Do it after ._kb incase the user wants to change pin stuff - keyboard_pre_init_user(); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - uint8_t layer = get_highest_layer(state); - x1_layer_led(layer); - return state; -} - -void matrix_init_kb(void) { - // Direct PINS use; gpio -> switch -> ground. - // Setting Row 0 to ground makes it work like a direct pin - gpio_set_pin_output(ROW0_PIN); // Set Col0 as an output - gpio_write_pin_low(ROW0_PIN); // Set Col0 to low / ground - - matrix_init_user(); -} - -bool process_x1_layer_up(keyrecord_t *record) { - if (record->event.pressed) { - uint8_t current_layer = get_highest_layer(layer_state); - // Cycle through layers - uint8_t next_layer = (current_layer + 1) % X1_KEYMAP_LAYER_COUNT; - layer_move(next_layer); - x1_layer_led(next_layer); // Update LED indicators - } - return false; -} - -bool process_x1_layer_down(keyrecord_t *record) { - if (record->event.pressed) { - uint8_t current_layer = get_highest_layer(layer_state); - // Reverse through layers - uint8_t prev_layer = (current_layer == 0) ? (X1_KEYMAP_LAYER_COUNT - 1) : (current_layer - 1); - layer_move(prev_layer); - x1_layer_led(prev_layer); - } - return false; -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case X1_LAYER_SELECTOR_UP: - return process_x1_layer_up(record); - - case X1_LAYER_SELECTOR_DOWN: - return process_x1_layer_down(record); - - default: - return true; - } -} diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h deleted file mode 100644 index 7645124057..0000000000 --- a/keyboards/binepad/knobx1/knobx1.h +++ /dev/null @@ -1,49 +0,0 @@ -// (c) 2025 Binepad (@binpad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "quantum.h" - -// PCB has a 1x2 matrix. Set the ROW0 to ground for faster direct pin access. -#define ROW0_PIN B8 - -#define IND1_LED A6 -#define IND2_LED A5 -#define IND3_LED A4 -#define IND4_LED A3 - -// clang-format off -enum x1_keycodes { - X1_LAYER_SELECTOR_UP = QK_USER, - X1_LAYER_SELECTOR_DOWN -}; -// clang-format on - -#define X1_LYRU X1_LAYER_SELECTOR_UP -#define X1_LYRD X1_LAYER_SELECTOR_DOWN - -// clang-format off -static inline void x1_led_1(bool on) { gpio_write_pin(IND1_LED, on); } -static inline void x1_led_2(bool on) { gpio_write_pin(IND2_LED, on); } -static inline void x1_led_3(bool on) { gpio_write_pin(IND3_LED, on); } -static inline void x1_led_4(bool on) { gpio_write_pin(IND4_LED, on); } -static inline void x1_led_1_on(void) { gpio_write_pin_high(IND1_LED); } -static inline void x1_led_2_on(void) { gpio_write_pin_high(IND2_LED); } -static inline void x1_led_3_on(void) { gpio_write_pin_high(IND3_LED); } -static inline void x1_led_4_on(void) { gpio_write_pin_high(IND4_LED); } -static inline void x1_led_1_off(void) { gpio_write_pin_low(IND1_LED); } -static inline void x1_led_2_off(void) { gpio_write_pin_low(IND2_LED); } -static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); } -static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); } -// clang-format on - -static inline void x1_layer_led(uint8_t lyr) { - gpio_write_pin(IND1_LED, lyr >= 0); - gpio_write_pin(IND2_LED, lyr >= 1); - gpio_write_pin(IND3_LED, lyr >= 2); - gpio_write_pin(IND4_LED, lyr >= 3); -} - -bool process_x1_layer_up(keyrecord_t *record); -bool process_x1_layer_down(keyrecord_t *record); diff --git a/keyboards/binepad/knobx1/readme.md b/keyboards/binepad/knobx1/readme.md deleted file mode 100644 index 36f082dbfd..0000000000 --- a/keyboards/binepad/knobx1/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Binepad KnobX1 - -![Binepad KnobX1](https://i.imgur.com/9HeFQXP.png) - -*A fully customizable knob designed to enhance your PC experience* - -* Keyboard Maintainer: [binepad](https://github.com/binepad) -* Hardware Supported: *Binepad knobX1* -* Hardware Availability: [binepad.com](https://binepad.com/products/knobx1) - -Make example for this keyboard (after setting up your build environment): - - make binepad/knobx1:default - -Flashing example for this keyboard: - - make binepad/knobx1: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 2 ways: - -* **Bootmagic reset**: Hold down the layer button (small button on the bottom left) and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/pixie/keyboard.json b/keyboards/binepad/pixie/keyboard.json index 8017121006..7d9d2ceb9a 100644 --- a/keyboards/binepad/pixie/keyboard.json +++ b/keyboards/binepad/pixie/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/binepad/pixie/keymaps/default/keymap.c b/keyboards/binepad/pixie/keymaps/default/keymap.c index a8e2a12303..b49c4db6de 100644 --- a/keyboards/binepad/pixie/keymaps/default/keymap.c +++ b/keyboards/binepad/pixie/keymaps/default/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), - ENCODER_CCW_CW(MS_WHLU, MS_WHLD) + ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; diff --git a/keyboards/bioi/f60/keyboard.json b/keyboards/bioi/f60/keyboard.json index 1ad2f89cf8..9adbb2f48a 100644 --- a/keyboards/bioi/f60/keyboard.json +++ b/keyboards/bioi/f60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BIOI F60", "manufacturer": "Basic IO Instruments", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x8101", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -50,20 +53,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_arrow", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_tsangan", "60_ansi_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb", "60_ansi_arrow", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ @@ -416,7 +406,7 @@ {"matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/bioi/g60/keyboard.json b/keyboards/bioi/g60/keyboard.json index 4140abfbe2..b98aee8273 100644 --- a/keyboards/bioi/g60/keyboard.json +++ b/keyboards/bioi/g60/keyboard.json @@ -64,9 +64,6 @@ }, "processor": "atmega32u4", "bootloader": "qmk-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -285,7 +282,7 @@ {"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -499,7 +496,7 @@ {"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4} ] }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb_iso": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/bioi/g60ble/keyboard.json b/keyboards/bioi/g60ble/keyboard.json index ad1aed6048..2d09fadff0 100644 --- a/keyboards/bioi/g60ble/keyboard.json +++ b/keyboards/bioi/g60ble/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BIOI G60 BLE", "manufacturer": "Basic IO Instruments", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6583", @@ -59,16 +60,7 @@ }, "processor": "atmega32u4", "bootloader": "qmk-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -423,7 +415,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/bioi/morgan65/keyboard.json b/keyboards/bioi/morgan65/keyboard.json index 0182392706..5606233f2a 100644 --- a/keyboards/bioi/morgan65/keyboard.json +++ b/keyboards/bioi/morgan65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Morgan65", "manufacturer": "Basic IO Instruments", + "url": "", "maintainer": "scottywei", "usb": { "vid": "0x8101", diff --git a/keyboards/bioi/s65/keyboard.json b/keyboards/bioi/s65/keyboard.json index c07fd9158d..56d53b54cf 100644 --- a/keyboards/bioi/s65/keyboard.json +++ b/keyboards/bioi/s65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BIOI S65", "manufacturer": "Basic IO Instruments", + "url": "", "maintainer": "scottywei", "usb": { "vid": "0x8101", @@ -13,6 +14,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/black_hellebore/keyboard.json b/keyboards/black_hellebore/keyboard.json index e93b6c05f5..b59cb8f7b9 100644 --- a/keyboards/black_hellebore/keyboard.json +++ b/keyboards/black_hellebore/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/black_hellebore/mcuconf.h b/keyboards/black_hellebore/mcuconf.h index 51dc999135..ccb216946c 100644 --- a/keyboards/black_hellebore/mcuconf.h +++ b/keyboards/black_hellebore/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/blackplum/keyboard.json b/keyboards/blackplum/keyboard.json index 4fabde8535..277e0eae62 100644 --- a/keyboards/blackplum/keyboard.json +++ b/keyboards/blackplum/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/blackplum/keymaps/default/keymap.c b/keyboards/blackplum/keymaps/default/keymap.c index 3101d1159e..6cab19864d 100644 --- a/keyboards/blackplum/keymaps/default/keymap.c +++ b/keyboards/blackplum/keymaps/default/keymap.c @@ -1,8 +1,16 @@ #include QMK_KEYBOARD_H -enum layer_names { - _BASE, - _FN +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BASE 0 +#define _FN 1 + + + +enum custom_keycodes { + TG_GUI = SAFE_RANGE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -19,6 +27,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, KC_MUTE, KC_END, _______, UG_TOGG, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, GU_TOGG, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + _______, TG_GUI,_______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if(record->event.pressed) { + switch(keycode) { + case TG_GUI: + keymap_config.no_gui ^= 1; + return false; + } + } + return true; +} diff --git a/keyboards/blank/blank01/keyboard.json b/keyboards/blank/blank01/keyboard.json index 0e7e7d1de5..f8af736bef 100644 --- a/keyboards/blank/blank01/keyboard.json +++ b/keyboards/blank/blank01/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BLANK.01", "manufacturer": "BLANK", + "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x424C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,11 +32,8 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/blank/blank01/keymaps/default/keymap.c b/keyboards/blank/blank01/keymaps/default/keymap.c index 03f8987fa7..2e2a863f27 100644 --- a/keyboards/blank/blank01/keymaps/default/keymap.c +++ b/keyboards/blank/blank01/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn1 Layer - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, diff --git a/keyboards/blaster75/keyboard.json b/keyboards/blaster75/keyboard.json index f0b3a5fccf..81cc789da6 100644 --- a/keyboards/blaster75/keyboard.json +++ b/keyboards/blaster75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Blaster 75", "manufacturer": "Altain", + "url": "", "maintainer": "Altain", "usb": { "vid": "0xA122", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": false, "mousekey": false, diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json index ce261639e2..ad844102dc 100644 --- a/keyboards/blockboy/ac980mini/keyboard.json +++ b/keyboards/blockboy/ac980mini/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -19,6 +21,7 @@ "rows": ["D0", "D1", "D2", "D3", "D5"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x6060", diff --git a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c index 0194281ebf..b5541ed23e 100644 --- a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c +++ b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c @@ -40,14 +40,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // RGB Control [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, _______, RM_TOGG, RM_SPDU, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, RM_NEXT, RM_HUEU, RM_SATU, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, RGB_MOD, RGB_HUI, RGB_SAI, _______, _______, _______ ), [2] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/blockey/keyboard.json b/keyboards/blockey/keyboard.json index a8d7113846..9710606a52 100644 --- a/keyboards/blockey/keyboard.json +++ b/keyboards/blockey/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BlocKey", "manufacturer": "Eucalyn", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -46,7 +47,8 @@ "rows": ["D3", "D1", "D4", "E6", "B5", "D2", "F6", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bluebell/swoop/keyboard.json b/keyboards/bluebell/swoop/keyboard.json index 1ab8cd090a..08f61ac20d 100644 --- a/keyboards/bluebell/swoop/keyboard.json +++ b/keyboards/bluebell/swoop/keyboard.json @@ -53,7 +53,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_3": { diff --git a/keyboards/boardrun/bizarre/keyboard.json b/keyboards/boardrun/bizarre/keyboard.json index 22ddfb005d..f61f3b053f 100644 --- a/keyboards/boardrun/bizarre/keyboard.json +++ b/keyboards/boardrun/bizarre/keyboard.json @@ -33,6 +33,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/boardrun/classic/keyboard.json b/keyboards/boardrun/classic/keyboard.json index bdddee8067..be21483c8e 100644 --- a/keyboards/boardrun/classic/keyboard.json +++ b/keyboards/boardrun/classic/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/boardsource/beiwagon/keyboard.json b/keyboards/boardsource/beiwagon/keyboard.json index 0bfa159a8a..39a9006b85 100644 --- a/keyboards/boardsource/beiwagon/keyboard.json +++ b/keyboards/boardsource/beiwagon/keyboard.json @@ -61,24 +61,24 @@ }, "driver": "ws2812", "layout": [ - {"x": 200, "y": 11, "flags": 2}, - {"x": 200, "y": 32, "flags": 2}, - {"x": 200, "y": 52, "flags": 2}, - {"x": 24, "y": 52, "flags": 2}, - {"x": 24, "y": 32, "flags": 2}, - {"x": 24, "y": 11, "flags": 2}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [1, 1], "x": 112, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 224, "y": 21, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [2, 1], "x": 112, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 224, "y": 42, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [3, 1], "x": 112, "y": 64, "flags": 4}, - {"matrix": [3, 2], "x": 224, "y": 64, "flags": 4} + {"flags": 2, "x": 16, "y": 38}, + {"flags": 2, "x": 16, "y": 113}, + {"flags": 2, "x": 16, "y": 188}, + {"flags": 2, "x": 48, "y": 38}, + {"flags": 2, "x": 48, "y": 113}, + {"flags": 2, "x": 48, "y": 188}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 32, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 64, "y": 0}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 75}, + {"flags": 4, "matrix": [1, 1], "x": 32, "y": 75}, + {"flags": 4, "matrix": [1, 2], "x": 64, "y": 75}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 150}, + {"flags": 4, "matrix": [2, 1], "x": 32, "y": 150}, + {"flags": 4, "matrix": [2, 2], "x": 64, "y": 150}, + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 224}, + {"flags": 4, "matrix": [3, 1], "x": 32, "y": 224}, + {"flags": 4, "matrix": [3, 2], "x": 64, "y": 224} ] }, "layouts": { diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c new file mode 100644 index 0000000000..584ada4830 --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Boardsource + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,RAISE + ), + [_RAISE] = LAYOUT( + KC_7, KC_8, RGB_TOG, + KC_4, KC_5, RGB_MOD, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,_______ + ) +}; diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.json b/keyboards/boardsource/beiwagon/keymaps/default/keymap.json deleted file mode 100644 index b6ba14a076..0000000000 --- a/keyboards/boardsource/beiwagon/keymaps/default/keymap.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "keyboard": "boardsource/beiwagon", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_7", "KC_8", "KC_9", - "KC_4", "KC_5", "KC_6", - "KC_1", "KC_2", "KC_3", - "KC_0", "KC_PENT", "MO(1)" - ], - [ - "QK_BOOT", "_______", "RM_TOGG", - "_______", "_______", "RM_NEXT", - "_______", "_______", "_______", - "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/boardsource/equals/60/keymaps/default/keymap.c b/keyboards/boardsource/equals/60/keymaps/default/keymap.c index b744ea6c4c..48e26a4094 100644 --- a/keyboards/boardsource/equals/60/keymaps/default/keymap.c +++ b/keyboards/boardsource/equals/60/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RM_NEXT, RM_TOGG + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RGB_MOD, RGB_TOG ), [_RAISE] = LAYOUT_ortho_5x12( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, diff --git a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c index 6cac7e1a0f..99a049214b 100644 --- a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c +++ b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RM_NEXT, RM_TOGG + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RGB_MOD, RGB_TOG ), [_RAISE] = LAYOUT_ortho_5x12( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, diff --git a/keyboards/boardsource/lulu/keymaps/default/keymap.c b/keyboards/boardsource/lulu/keymaps/default/keymap.c index 9c1ed869ef..cbee1401ed 100644 --- a/keyboards/boardsource/lulu/keymaps/default/keymap.c +++ b/keyboards/boardsource/lulu/keymaps/default/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | - * |------+------+------+------+------+------|RM_TOGG| | ] |------+------+------+------+------+------| + * |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | @@ -74,10 +74,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = LAYOUT( - RM_NEXT, RM_PREV, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ADJUST diff --git a/keyboards/boardsource/lulu/readme.md b/keyboards/boardsource/lulu/readme.md index 9304a0fa8d..a1c184eaac 100644 --- a/keyboards/boardsource/lulu/readme.md +++ b/keyboards/boardsource/lulu/readme.md @@ -6,8 +6,8 @@ The lulu is what the ergo community has needed for a long time, a high-end aesth * Keyboard Maintainer: [Boardsource](https://github.com/daysgobye) -* Hardware Supported: lulu v1/v2, lily pad v2 -* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/products/lily-pad-pcb) +* Hardware Supported: lulu v1 +* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/store/61d0b772319a1f3cc53ba2fb) Make example for this keyboard (after setting up your build environment): @@ -21,7 +21,7 @@ Flashing example for this keyboard: make boardsource/lulu/avr:default:flash -Compile `rp2040` firmware if you purchased PCB in lulu group buy or lily pad (integrated microcontroller). +Compile `rp2040` firmware if you purchased PCB in lulu group buy (integrated microcontroller). Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro. diff --git a/keyboards/boardsource/sessanta/keymaps/default/keymap.json b/keyboards/boardsource/sessanta/keymaps/default/keymap.json index d8fb2f8e4a..b99333c46d 100644 --- a/keyboards/boardsource/sessanta/keymaps/default/keymap.json +++ b/keyboards/boardsource/sessanta/keymaps/default/keymap.json @@ -12,8 +12,8 @@ ], [ "QK_BOOT", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_F13", - "QK_RBT", "RM_NEXT", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "RM_PREV", "RM_VALD", "RM_HUED", "RM_SATD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c index 4299269190..a43d930c4f 100644 --- a/keyboards/boardsource/technik_o/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_RAISE] = LAYOUT_ortho_4x12( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) }; diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c index 9c215f99e2..bae6438d15 100644 --- a/keyboards/boardsource/technik_s/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -30,12 +30,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSFT,KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , - RM_TOGG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), [_RAISE] = LAYOUT( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RM_NEXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), [_LOWER] = LAYOUT( diff --git a/keyboards/boardsource/the_q/keymaps/default/keymap.json b/keyboards/boardsource/the_q/keymaps/default/keymap.json index 5cd91661d0..69aa6f8629 100644 --- a/keyboards/boardsource/the_q/keymaps/default/keymap.json +++ b/keyboards/boardsource/the_q/keymaps/default/keymap.json @@ -16,9 +16,9 @@ "_______", "_______", "_______", "_______", "_______", "_______" ], [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] ] diff --git a/keyboards/boardsource/unicorne/keyboard.json b/keyboards/boardsource/unicorne/keyboard.json index c87f8dd83a..da1c3a787e 100644 --- a/keyboards/boardsource/unicorne/keyboard.json +++ b/keyboards/boardsource/unicorne/keyboard.json @@ -118,9 +118,9 @@ {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 223, "y": 7, "flags": 1}, - {"matrix": [5, 0], "x": 223, "y": 24, "flags": 1}, - {"matrix": [6, 0], "x": 223, "y": 41, "flags": 1} + {"matrix": [4, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 0, "y": 41, "flags": 1} ], "sleep": true }, diff --git a/keyboards/boardsource/unicorne/keymaps/default/keymap.json b/keyboards/boardsource/unicorne/keymaps/default/keymap.json index 1aa2917778..1980bc3c87 100644 --- a/keyboards/boardsource/unicorne/keymaps/default/keymap.json +++ b/keyboards/boardsource/unicorne/keymaps/default/keymap.json @@ -16,8 +16,8 @@ "_______", "_______", "_______", "_______", "_______", "_______" ], [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "CK_TOGG", "_______", + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] diff --git a/keyboards/boardwalk/keyboard.json b/keyboards/boardwalk/keyboard.json index 50a00b0f65..6fb7673ec8 100644 --- a/keyboards/boardwalk/keyboard.json +++ b/keyboards/boardwalk/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Boardwalk", "manufacturer": "shensmobile", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCDCD", @@ -31,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/bobpad/keyboard.json b/keyboards/bobpad/keyboard.json index 2581097a67..feddbbf222 100644 --- a/keyboards/bobpad/keyboard.json +++ b/keyboards/bobpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "bobPad", "manufacturer": "Desiboards", + "url": "", "maintainer": "Ananya Kirti", "usb": { "vid": "0x416B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/bolsa/bolsalice/keyboard.json b/keyboards/bolsa/bolsalice/keyboard.json index 74607ed464..8ada9b5546 100644 --- a/keyboards/bolsa/bolsalice/keyboard.json +++ b/keyboards/bolsa/bolsalice/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -40,6 +42,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "url": "", "maintainer": "qmk", "community_layouts": ["alice", "alice_split_bs"], "layouts": { diff --git a/keyboards/bolsa/damapad/keyboard.json b/keyboards/bolsa/damapad/keyboard.json index 1a31316f9c..5a47d12322 100644 --- a/keyboards/bolsa/damapad/keyboard.json +++ b/keyboards/bolsa/damapad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Damapad", "manufacturer": "Bolsa Keyboard Supply", + "url": "", "maintainer": "matthewdias", "usb": { "vid": "0x6D64", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -30,13 +33,13 @@ "layouts": { "LAYOUT_wkl": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.25}, - {"matrix": [0, 1], "x": 1, "y": 0.25}, - {"matrix": [0, 2], "x": 2, "y": 0.25}, - {"matrix": [0, 3], "x": 3, "y": 0.25}, - {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 0], "x": 5.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 0.25}, + {"matrix": [0, 2], "x": 1, "y": 0.25}, + {"matrix": [0, 3], "x": 2, "y": 0.25}, + {"matrix": [0, 4], "x": 3, "y": 0.25}, + {"matrix": [0, 5], "x": 4, "y": 0.25}, {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.25}, @@ -55,13 +58,13 @@ }, "LAYOUT_bar": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.25}, - {"matrix": [0, 1], "x": 1, "y": 0.25}, - {"matrix": [0, 2], "x": 2, "y": 0.25}, - {"matrix": [0, 3], "x": 3, "y": 0.25}, - {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 0], "x": 5.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 0.25}, + {"matrix": [0, 2], "x": 1, "y": 0.25}, + {"matrix": [0, 3], "x": 2, "y": 0.25}, + {"matrix": [0, 4], "x": 3, "y": 0.25}, + {"matrix": [0, 5], "x": 4, "y": 0.25}, {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.25}, @@ -71,7 +74,7 @@ {"matrix": [1, 5], "x": 5.25, "y": 1.25}, - {"matrix": [2, 1], "x": 0, "y": 2.25, "w": 2.75}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 2.75}, {"matrix": [2, 3], "x": 2.75, "y": 2.25, "w": 2.25}, {"matrix": [2, 5], "x": 5.25, "y": 2.25} diff --git a/keyboards/bop/keyboard.json b/keyboards/bop/keyboard.json index f94264a670..6a88bb4617 100644 --- a/keyboards/bop/keyboard.json +++ b/keyboards/bop/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/boston/keyboard.json b/keyboards/boston/keyboard.json index f32101ca2e..050076c7a6 100644 --- a/keyboards/boston/keyboard.json +++ b/keyboards/boston/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/boston_meetup/2019/keyboard.json b/keyboards/boston_meetup/2019/keyboard.json index 4f07e0c631..40a390b0a8 100644 --- a/keyboards/boston_meetup/2019/keyboard.json +++ b/keyboards/boston_meetup/2019/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Boston Meetup Board", "manufacturer": "ishtob", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFB30", diff --git a/keyboards/boston_meetup/2019/keymaps/default/keymap.c b/keyboards/boston_meetup/2019/keymaps/default/keymap.c index ea65556636..b4d7280640 100644 --- a/keyboards/boston_meetup/2019/keymaps/default/keymap.c +++ b/keyboards/boston_meetup/2019/keymaps/default/keymap.c @@ -78,9 +78,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = LAYOUT( KC_NUM, - RM_TOGG, RM_NEXT, RM_PREV, XXXXXXX, - _______, RM_HUEU, RM_SATU, RM_VALU, - _______, RM_HUED, RM_SATD, RM_VALD + RGB_TOG, RGB_MOD, RGB_RMOD, XXXXXXX, + _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, RGB_HUD, RGB_SAD, RGB_VAD ), diff --git a/keyboards/boston_meetup/rules.mk b/keyboards/boston_meetup/rules.mk new file mode 100644 index 0000000000..6d6745a0e5 --- /dev/null +++ b/keyboards/boston_meetup/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = boston_meetup/2019 diff --git a/keyboards/botanicalkeyboards/fm2u/keyboard.json b/keyboards/botanicalkeyboards/fm2u/keyboard.json index 8c2714ade3..907d5d46b8 100644 --- a/keyboards/botanicalkeyboards/fm2u/keyboard.json +++ b/keyboards/botanicalkeyboards/fm2u/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FM2U", "manufacturer": "Botanical Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6969", diff --git a/keyboards/box75/keyboard.json b/keyboards/box75/keyboard.json index 9c5c245f20..89afff1716 100644 --- a/keyboards/box75/keyboard.json +++ b/keyboards/box75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BOX75", "manufacturer": "Lin Design", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x7668", diff --git a/keyboards/bpiphany/four_banger/keyboard.json b/keyboards/bpiphany/four_banger/keyboard.json index b94bdf2e90..a368fbfe61 100644 --- a/keyboards/bpiphany/four_banger/keyboard.json +++ b/keyboards/bpiphany/four_banger/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Four Banger", "manufacturer": "1up Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bpiphany/frosty_flake/20130602/keyboard.json b/keyboards/bpiphany/frosty_flake/20130602/keyboard.json index a5efb2e322..142010c9c4 100644 --- a/keyboards/bpiphany/frosty_flake/20130602/keyboard.json +++ b/keyboards/bpiphany/frosty_flake/20130602/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bpiphany/frosty_flake/20140521/keyboard.json b/keyboards/bpiphany/frosty_flake/20140521/keyboard.json index 33f9ee5f3d..2ca004c24d 100644 --- a/keyboards/bpiphany/frosty_flake/20140521/keyboard.json +++ b/keyboards/bpiphany/frosty_flake/20140521/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bpiphany/frosty_flake/info.json b/keyboards/bpiphany/frosty_flake/info.json index bfec449931..33a2f792d9 100644 --- a/keyboards/bpiphany/frosty_flake/info.json +++ b/keyboards/bpiphany/frosty_flake/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Frosty Flake", "manufacturer": "Bathroom Epiphanies", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk new file mode 100644 index 0000000000..e5402b32f7 --- /dev/null +++ b/keyboards/bpiphany/frosty_flake/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=bpiphany/frosty_flake/20140521 diff --git a/keyboards/bpiphany/ghost_squid/keyboard.json b/keyboards/bpiphany/ghost_squid/keyboard.json index 68901ba316..85f6f0fa8e 100644 --- a/keyboards/bpiphany/ghost_squid/keyboard.json +++ b/keyboards/bpiphany/ghost_squid/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ghost Squid", "manufacturer": "Bathroom Epiphanies", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/hid_liber/keyboard.json b/keyboards/bpiphany/hid_liber/keyboard.json index 2f8f3ea4ce..67c8416849 100644 --- a/keyboards/bpiphany/hid_liber/keyboard.json +++ b/keyboards/bpiphany/hid_liber/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HIDLiberation", "manufacturer": "bpiphany", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/kitten_paw/keyboard.json b/keyboards/bpiphany/kitten_paw/keyboard.json index 42c6cb8732..829129d406 100644 --- a/keyboards/bpiphany/kitten_paw/keyboard.json +++ b/keyboards/bpiphany/kitten_paw/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kitten Paw", "manufacturer": "bpiphany", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/pegasushoof/info.json b/keyboards/bpiphany/pegasushoof/info.json index a28f68e63e..1e9e9db306 100644 --- a/keyboards/bpiphany/pegasushoof/info.json +++ b/keyboards/bpiphany/pegasushoof/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Filco", + "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk new file mode 100644 index 0000000000..20adecaa08 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=bpiphany/pegasushoof/2013 diff --git a/keyboards/bpiphany/sixshooter/keyboard.json b/keyboards/bpiphany/sixshooter/keyboard.json index b84e8f5c5d..21e52f3629 100644 --- a/keyboards/bpiphany/sixshooter/keyboard.json +++ b/keyboards/bpiphany/sixshooter/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "halfkay", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bpiphany/tiger_lily/keyboard.json b/keyboards/bpiphany/tiger_lily/keyboard.json index f260f84c71..118f89f39d 100644 --- a/keyboards/bpiphany/tiger_lily/keyboard.json +++ b/keyboards/bpiphany/tiger_lily/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "tiger_lily", "manufacturer": "Bathroom Epiphanies", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4245", diff --git a/keyboards/bpiphany/unloved_bastard/readme.md b/keyboards/bpiphany/unloved_bastard/readme.md index b11a9bfa77..9909d5af3f 100644 --- a/keyboards/bpiphany/unloved_bastard/readme.md +++ b/keyboards/bpiphany/unloved_bastard/readme.md @@ -1,5 +1,9 @@ # unloved_bastard +![unloved_bastard](imgur.com image replace me!) + +A short description of the keyboard/project + Keyboard Maintainer: [Alexander Fougner](https://github.com/fougner) Hardware Supported: CoolerMaster Masterkeys S PBT (Not the Pro versions with backlighting etc) Hardware Availability: Pretty much anywhere diff --git a/keyboards/bredworks/wyvern_hs/keyboard.json b/keyboards/bredworks/wyvern_hs/keyboard.json index c5233c304a..63e85496ae 100644 --- a/keyboards/bredworks/wyvern_hs/keyboard.json +++ b/keyboards/bredworks/wyvern_hs/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bschwind/key_ripper/keyboard.json b/keyboards/bschwind/key_ripper/keyboard.json index f9dbf9d6cb..ee30687d4f 100644 --- a/keyboards/bschwind/key_ripper/keyboard.json +++ b/keyboards/bschwind/key_ripper/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bt66tech/bt66tech60/keyboard.json b/keyboards/bt66tech/bt66tech60/keyboard.json index 2b476a6eea..778e27fe67 100644 --- a/keyboards/bt66tech/bt66tech60/keyboard.json +++ b/keyboards/bt66tech/bt66tech60/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "bt66tech 60%", "manufacturer": "bt66tech", + "url": "", "maintainer": "bt66tech", "usb": { "vid": "0x4254", "pid": "0x7070", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, diff --git a/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c b/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c index c8bc919a86..5f4acc1b9d 100644 --- a/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c +++ b/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c @@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_60_ansi( 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, KC_DEL, - MS_ACL0, MS_BTN1, MS_UP, MS_BTN2, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, - MS_ACL1, MS_LEFT, MS_DOWN,MS_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MS_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, MO(_FN1), + KC_MS_ACCEL0, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, + KC_MS_ACCEL1, KC_MS_LEFT, KC_MS_DOWN,KC_MS_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_MS_ACCEL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, MO(_FN1), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______ ), diff --git a/keyboards/bthlabs/geekpad/keyboard.json b/keyboards/bthlabs/geekpad/keyboard.json index 2519925333..43ce11edf5 100644 --- a/keyboards/bthlabs/geekpad/keyboard.json +++ b/keyboards/bthlabs/geekpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -19,7 +21,8 @@ "rows": ["F4", "F5", "F6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bubble75/hotswap/keyboard.json b/keyboards/bubble75/hotswap/keyboard.json index 47f658349f..011ce33ec4 100644 --- a/keyboards/bubble75/hotswap/keyboard.json +++ b/keyboards/bubble75/hotswap/keyboard.json @@ -1,18 +1,15 @@ { "keyboard_name": "bubble75", + "url": "", "manufacturer": "phl", "maintainer": "velocifire", "usb": { "vid": "0x4242", "pid": "0x5A4C", "device_version": "0.0.1", + "force_nkro": true, "no_startup_check": true }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, "mousekey": false, diff --git a/keyboards/bubble75/hotswap/keymaps/default/keymap.c b/keyboards/bubble75/hotswap/keymaps/default/keymap.c index 1f878ebe32..7ce1f6bf91 100644 --- a/keyboards/bubble75/hotswap/keymaps/default/keymap.c +++ b/keyboards/bubble75/hotswap/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_HUED, - _______, _______, _______, RM_NEXT, RM_TOGG, _______, RM_SPDD, RM_VALD, RM_SPDU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/budgy/keyboard.json b/keyboards/budgy/keyboard.json index d43e02fdc0..0dc45c9da0 100644 --- a/keyboards/budgy/keyboard.json +++ b/keyboards/budgy/keyboard.json @@ -5,11 +5,14 @@ "bootloader": "rp2040", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0117", diff --git a/keyboards/buildakb/mw60/keyboard.json b/keyboards/buildakb/mw60/keyboard.json index 00e21a0335..9a8b7955a8 100644 --- a/keyboards/buildakb/mw60/keyboard.json +++ b/keyboards/buildakb/mw60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,29 +17,13 @@ "rows": ["E6", "D1", "F7", "F4", "F1"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", "vid": "0x4A56" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -819,7 +805,7 @@ {"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "k000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "k001", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/buildakb/potato65/keyboard.json b/keyboards/buildakb/potato65/keyboard.json index c78ee1948e..db20353142 100644 --- a/keyboards/buildakb/potato65/keyboard.json +++ b/keyboards/buildakb/potato65/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/buildakb/potato65hs/keyboard.json b/keyboards/buildakb/potato65hs/keyboard.json index 3a91ac1ccc..9e5edd6adb 100644 --- a/keyboards/buildakb/potato65hs/keyboard.json +++ b/keyboards/buildakb/potato65hs/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/buildakb/potato65s/keyboard.json b/keyboards/buildakb/potato65s/keyboard.json index 3ff7187962..8dd9b6cc53 100644 --- a/keyboards/buildakb/potato65s/keyboard.json +++ b/keyboards/buildakb/potato65s/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/butterkeebs/pocketpad/keyboard.json b/keyboards/butterkeebs/pocketpad/keyboard.json index 0829f91438..0b42d5fb17 100644 --- a/keyboards/butterkeebs/pocketpad/keyboard.json +++ b/keyboards/butterkeebs/pocketpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/buzzard/keymaps/default/keymap.c b/keyboards/buzzard/keymaps/default/keymap.c index 9e9fe20577..7ca3ddc7de 100644 --- a/keyboards/buzzard/keymaps/default/keymap.c +++ b/keyboards/buzzard/keymaps/default/keymap.c @@ -52,13 +52,13 @@ enum layers { #define SFT_TAB MT(MOD_LSFT, KC_TAB) // Thumbcluster -#define UC_TL1 MS_BTN1 +#define UC_TL1 KC_BTN1 #define UC_TL2 LT(NAVR, KC_SPC) #define UC_TL3 LT(NUMR, KC_TAB) #define UC_TR3 LT(FUNL, KC_BSPC) #define UC_TR2 LT(SYMB, KC_ENT) -#define UC_TR1 MS_BTN2 +#define UC_TR1 KC_BTN2 // Shortcuts #define UC_COPY LCTL(KC_C) @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , UC_OSFT, GUI_A , ALT_S , CTL_D , SFT_F , KC_G , KC_H , SFT_J , CTL_K , ALT_L , GUI_SCL, KC_DEL, CTL_ESC, KC_Z , RALT_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, RALT_DT, KC_SLSH, ADJL , - MS_BTN1, UC_TL2 , UC_TL3 , UC_TR3 , UC_TR2 , UC_TR1 + KC_BTN1, UC_TL2 , UC_TL3 , UC_TR3 , UC_TR2 , UC_TR1 ), // /* @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAVR] = LAYOUT( _______, _______, _______, _______, _______, KC_INS , UC_CUT , KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, UC_COPY, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, UC_PSTE, KC_HOME, MS_WHLU, MS_WHLD, KC_END , _______, + _______, _______, _______, _______, _______, _______, UC_PSTE, KC_HOME, KC_WH_U, KC_WH_D, KC_END , _______, _______, _______, _______, KC_BSPC, KC_ENT , _______ ), // -------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -264,7 +264,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case MS_BTN1 ... MS_BTN5: + case KC_BTN1 ... KC_BTN5: return true; break; } diff --git a/keyboards/buzzard/rules.mk b/keyboards/buzzard/rules.mk new file mode 100644 index 0000000000..2f66720b77 --- /dev/null +++ b/keyboards/buzzard/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = buzzard/rev1 diff --git a/keyboards/cablecardesigns/cypher/rev6/keyboard.json b/keyboards/cablecardesigns/cypher/rev6/keyboard.json index f6e481c1df..644f2f1aa6 100644 --- a/keyboards/cablecardesigns/cypher/rev6/keyboard.json +++ b/keyboards/cablecardesigns/cypher/rev6/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cablecardesigns/phoenix/keyboard.json b/keyboards/cablecardesigns/phoenix/keyboard.json index a165758ad0..0d2ea10ad6 100755 --- a/keyboards/cablecardesigns/phoenix/keyboard.json +++ b/keyboards/cablecardesigns/phoenix/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/caffeinated/serpent65/keyboard.json b/keyboards/caffeinated/serpent65/keyboard.json index 7ea4957921..add4854720 100644 --- a/keyboards/caffeinated/serpent65/keyboard.json +++ b/keyboards/caffeinated/serpent65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Serpent65", "manufacturer": "Caffeinated Studios", + "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x4353", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/canary/canary60rgb/keymaps/default/keymap.c b/keyboards/canary/canary60rgb/keymaps/default/keymap.c index f57f83b933..094595130f 100644 --- a/keyboards/canary/canary60rgb/keymaps/default/keymap.c +++ b/keyboards/canary/canary60rgb/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = 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_DEL, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/canary/canary60rgb/v1/keyboard.json b/keyboards/canary/canary60rgb/v1/keyboard.json index a1247769e6..ac1ba67de0 100644 --- a/keyboards/canary/canary60rgb/v1/keyboard.json +++ b/keyboards/canary/canary60rgb/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CANARY60RGB", "manufacturer": "CANARY", + "url": "", "maintainer": "tuananhnguyen204", "usb": { "vid": "0x4341", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/cannonkeys/adelie/keyboard.json b/keyboards/cannonkeys/adelie/keyboard.json index 136c0d362f..6b36af3082 100644 --- a/keyboards/cannonkeys/adelie/keyboard.json +++ b/keyboards/cannonkeys/adelie/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Adelie", "manufacturer": "Abec13", + "url": "", "maintainer": "Abec13", "usb": { "vid": "0xCA04", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/cannonkeys/an_c/keyboard.json b/keyboards/cannonkeys/an_c/keyboard.json index 29225da183..ea12799871 100644 --- a/keyboards/cannonkeys/an_c/keyboard.json +++ b/keyboards/cannonkeys/an_c/keyboard.json @@ -55,10 +55,7 @@ "resync": true } }, - "community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift"], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -129,7 +126,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c index 9d79916835..ac3e794880 100644 --- a/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c +++ b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c @@ -26,7 +26,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/atlas_alps/keyboard.json b/keyboards/cannonkeys/atlas_alps/keyboard.json index f70ce60acc..39bfa968b9 100644 --- a/keyboards/cannonkeys/atlas_alps/keyboard.json +++ b/keyboards/cannonkeys/atlas_alps/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json b/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json index 4865ca02b6..cba8980b9d 100644 --- a/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json +++ b/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json b/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json index f9cc28f864..c8ef323906 100644 --- a/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json +++ b/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastion60/keyboard.json b/keyboards/cannonkeys/bastion60/keyboard.json index 518d332ce0..07443b50b7 100644 --- a/keyboards/cannonkeys/bastion60/keyboard.json +++ b/keyboards/cannonkeys/bastion60/keyboard.json @@ -13,6 +13,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -51,16 +53,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -262,7 +260,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/bastion65/keyboard.json b/keyboards/cannonkeys/bastion65/keyboard.json index 4d13309331..dd7dd4516e 100644 --- a/keyboards/cannonkeys/bastion65/keyboard.json +++ b/keyboards/cannonkeys/bastion65/keyboard.json @@ -13,6 +13,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastion75/keyboard.json b/keyboards/cannonkeys/bastion75/keyboard.json index 3c96e4f943..276cc03c51 100644 --- a/keyboards/cannonkeys/bastion75/keyboard.json +++ b/keyboards/cannonkeys/bastion75/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastiontkl/keyboard.json b/keyboards/cannonkeys/bastiontkl/keyboard.json index 9617bce56c..72733b3d8f 100644 --- a/keyboards/cannonkeys/bastiontkl/keyboard.json +++ b/keyboards/cannonkeys/bastiontkl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/brutalv2_1800/keyboard.json b/keyboards/cannonkeys/brutalv2_1800/keyboard.json index 0fd9204be9..13f1b12733 100644 --- a/keyboards/cannonkeys/brutalv2_1800/keyboard.json +++ b/keyboards/cannonkeys/brutalv2_1800/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/brutalv2_60/keyboard.json b/keyboards/cannonkeys/brutalv2_60/keyboard.json index 923be17c9a..3ee5f0d576 100644 --- a/keyboards/cannonkeys/brutalv2_60/keyboard.json +++ b/keyboards/cannonkeys/brutalv2_60/keyboard.json @@ -29,16 +29,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -304,7 +300,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/caerdroia/keyboard.json b/keyboards/cannonkeys/caerdroia/keyboard.json index 0fec202dea..4b5baf21dd 100644 --- a/keyboards/cannonkeys/caerdroia/keyboard.json +++ b/keyboards/cannonkeys/caerdroia/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/cerberus/config.h b/keyboards/cannonkeys/cerberus/config.h deleted file mode 100644 index 84ea5d9acd..0000000000 --- a/keyboards/cannonkeys/cerberus/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/cerberus/halconf.h b/keyboards/cannonkeys/cerberus/halconf.h deleted file mode 100644 index d0f34b102c..0000000000 --- a/keyboards/cannonkeys/cerberus/halconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next - diff --git a/keyboards/cannonkeys/cerberus/hotswap/keyboard.json b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json deleted file mode 100644 index 78890d942e..0000000000 --- a/keyboards/cannonkeys/cerberus/hotswap/keyboard.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "keyboard_name": "Cerberus HS", - "usb": { - "pid": "0x0034" - }, - "community_layouts": ["tkl_nofrow_ansi"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - } - } -} diff --git a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 779070197a..0000000000 --- a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -enum layer_names { - _BASE, - _FN1, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = 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, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/cannonkeys/cerberus/hotswap/rules.mk b/keyboards/cannonkeys/cerberus/hotswap/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cannonkeys/cerberus/hotswap/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/cerberus/info.json b/keyboards/cannonkeys/cerberus/info.json deleted file mode 100644 index c260c2fcd5..0000000000 --- a/keyboards/cannonkeys/cerberus/info.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "manufacturer": "CannonKeys", - "maintainer": "awkannan", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["B0", "C15", "C14", "A7", "A5", "C13", "A4", "A2", "A1", "A0", "B9", "B8", "B7", "A3", "B6", "B4", "B3", "A15"], - "rows": ["B11", "B10", "B2", "F0", "B5"] - }, - "processor": "STM32F072", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 4 - }, - "url": "https://cannonkeys.com", - "usb": { - "device_version": "0.0.1", - "vid": "0xCA04" - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - } -} diff --git a/keyboards/cannonkeys/cerberus/mcuconf.h b/keyboards/cannonkeys/cerberus/mcuconf.h deleted file mode 100644 index 32f9fbd6db..0000000000 --- a/keyboards/cannonkeys/cerberus/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/cannonkeys/cerberus/readme.md b/keyboards/cannonkeys/cerberus/readme.md deleted file mode 100644 index 848d746594..0000000000 --- a/keyboards/cannonkeys/cerberus/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Cerberus Keyboard by CannonKeys - -This folder contains firmware for both the Solderable and Hotswap version of Cerberus - -The hotswap PCB does not support per-key LEDs and has reduced layout support (no ISO) - -* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) -* Hardware Supported: STM32F072CBT6 - -Make example for this keyboard (after setting up your build environment): - - make cannonkeys/cerberus/hotswap:default - make cannonkeys/cerberus/solderable:default - -Flashing example for this keyboard: - - make cannonkeys/cerberus/hotswap:default:flash - make cannonkeys/cerberus/solderable:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/cerberus/solderable/config.h b/keyboards/cannonkeys/cerberus/solderable/config.h deleted file mode 100644 index 9e5e637de4..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/cannonkeys/cerberus/solderable/halconf.h b/keyboards/cannonkeys/cerberus/solderable/halconf.h deleted file mode 100644 index fc641ca42f..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next - diff --git a/keyboards/cannonkeys/cerberus/solderable/keyboard.json b/keyboards/cannonkeys/cerberus/solderable/keyboard.json deleted file mode 100644 index 3797df3851..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/keyboard.json +++ /dev/null @@ -1,711 +0,0 @@ -{ - "keyboard_name": "Cerberus", - "backlight": { - "breathing": true, - "levels": 6, - "pin": "A6" - }, - "features": { - "backlight": true - }, - "indicators": { - "caps_lock": "F1", - "on_state": 0 - }, - "usb": { - "pid": "0x0031" - }, - "community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"], - "layout_aliases": { - "LAYOUT_all": "LAYOUT" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "`", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "Page Up", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "Page Down", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_iso": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_iso_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - }, - "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, - {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, - {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, - {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, - {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} - ] - } - } -} diff --git a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c deleted file mode 100644 index 782e9a138f..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -enum layer_names { - _BASE, - _FN1, -}; -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = 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, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md deleted file mode 100644 index 5beb866f72..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md +++ /dev/null @@ -1,24 +0,0 @@ -# Matrix Diagram for Cerberus - -``` - ┌───────┐ - 2u Backspace │0D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │0G │0H │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │ │1F │1G │1H │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2E │ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2E │ │2C │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3G │ ISO Enter -├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ -│40 │41 │42 │45 │4A │4B │4C │4E │ │4F │4G │4H │ -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ -┌────────┐ ┌──────────┐ -│30 │ 2.25u LShift 2.75u RShift │3C │ -└────────┘ └──────────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│40 │41 │42 │45 │4B │4C │4E │ Tsangan/WKL -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` diff --git a/keyboards/cannonkeys/cerberus/solderable/mcuconf.h b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h deleted file mode 100644 index 931e93d66f..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cannonkeys/cerberus/solderable/rules.mk b/keyboards/cannonkeys/cerberus/solderable/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cannonkeys/cerberus/solderable/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/chimera65_hs/keyboard.json b/keyboards/cannonkeys/chimera65_hs/keyboard.json index fd5c7dd84a..a126a007b5 100644 --- a/keyboards/cannonkeys/chimera65_hs/keyboard.json +++ b/keyboards/cannonkeys/chimera65_hs/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/db60/hotswap/keyboard.json b/keyboards/cannonkeys/db60/hotswap/keyboard.json index dfed24c565..d272b35a0f 100644 --- a/keyboards/cannonkeys/db60/hotswap/keyboard.json +++ b/keyboards/cannonkeys/db60/hotswap/keyboard.json @@ -3,13 +3,7 @@ "usb": { "pid": "0xDB62" }, - "community_layouts": [ - "60_ansi", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -80,7 +74,7 @@ {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1, "y": 0, "matrix": [0, 1]}, diff --git a/keyboards/cannonkeys/db60/hotswap/rules.mk b/keyboards/cannonkeys/db60/hotswap/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cannonkeys/db60/hotswap/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/db60/j02/keyboard.json b/keyboards/cannonkeys/db60/j02/keyboard.json index bb693bcfc0..0778b604ff 100644 --- a/keyboards/cannonkeys/db60/j02/keyboard.json +++ b/keyboards/cannonkeys/db60/j02/keyboard.json @@ -3,14 +3,7 @@ "usb": { "pid": "0xDB60" }, - "community_layouts": [ - "60_ansi", - "60_ansi_tsangan_split_bs_rshift", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -81,7 +74,7 @@ {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1, "y": 0, "matrix": [0, 1]}, diff --git a/keyboards/cannonkeys/db60/j02/rules.mk b/keyboards/cannonkeys/db60/j02/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cannonkeys/db60/j02/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c index f82afc8b32..279b238547 100644 --- a/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c +++ b/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c @@ -28,7 +28,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/db60/rev2/keyboard.json b/keyboards/cannonkeys/db60/rev2/keyboard.json index 81fc8208d5..dc45ffecd5 100644 --- a/keyboards/cannonkeys/db60/rev2/keyboard.json +++ b/keyboards/cannonkeys/db60/rev2/keyboard.json @@ -3,14 +3,7 @@ "usb": { "pid": "0xDB61" }, - "community_layouts": [ - "60_ansi", - "60_ansi_tsangan_split_bs_rshift", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -81,7 +74,7 @@ {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1, "y": 0, "matrix": [0, 1]}, diff --git a/keyboards/cannonkeys/db60/rev2/rules.mk b/keyboards/cannonkeys/db60/rev2/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cannonkeys/db60/rev2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rules.mk new file mode 100644 index 0000000000..60addd7fe7 --- /dev/null +++ b/keyboards/cannonkeys/db60/rules.mk @@ -0,0 +1,4 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +DEFAULT_FOLDER = cannonkeys/db60/rev2 diff --git a/keyboards/cannonkeys/ellipse/keyboard.json b/keyboards/cannonkeys/ellipse/keyboard.json index dc99210b88..2f35c45351 100644 --- a/keyboards/cannonkeys/ellipse/keyboard.json +++ b/keyboards/cannonkeys/ellipse/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -35,15 +37,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -326,7 +324,7 @@ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0}, {"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0}, diff --git a/keyboards/cannonkeys/ellipse_hs/keyboard.json b/keyboards/cannonkeys/ellipse_hs/keyboard.json index fba7abf9ea..098882fcc3 100644 --- a/keyboards/cannonkeys/ellipse_hs/keyboard.json +++ b/keyboards/cannonkeys/ellipse_hs/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -22,14 +24,13 @@ "pid": "0x0016" }, "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c index e4e3af2dab..3d829466c3 100644 --- a/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, KC_DEL, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, QK_BOOT ), - [_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN2] = LAYOUT_60_tsangan_hhkb( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______ ), - [_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN3] = LAYOUT_60_tsangan_hhkb( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/hoodrowg/keyboard.json b/keyboards/cannonkeys/hoodrowg/keyboard.json index 73d4370c4a..971779411d 100644 --- a/keyboards/cannonkeys/hoodrowg/keyboard.json +++ b/keyboards/cannonkeys/hoodrowg/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/cannonkeys/instant60/keyboard.json b/keyboards/cannonkeys/instant60/keyboard.json index f802823709..3261a82f28 100644 --- a/keyboards/cannonkeys/instant60/keyboard.json +++ b/keyboards/cannonkeys/instant60/keyboard.json @@ -55,13 +55,7 @@ "resync": true } }, - "community_layouts": [ - "60_ansi", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -132,7 +126,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c index c9e5d9ba16..dc04a39c5e 100644 --- a/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c +++ b/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c @@ -30,7 +30,7 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/leviatan/keyboard.json b/keyboards/cannonkeys/leviatan/keyboard.json index f68ca0ef2c..7e8d6c6fdd 100644 --- a/keyboards/cannonkeys/leviatan/keyboard.json +++ b/keyboards/cannonkeys/leviatan/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -21,14 +23,7 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_tsangan_split_bs_rshift", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -99,7 +94,7 @@ {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1, "y": 0, "matrix": [0, 1]}, diff --git a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c index 30d1781fe6..c735160c3d 100644 --- a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c +++ b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c @@ -28,7 +28,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c index a410480d7d..6f76582e4b 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c @@ -53,26 +53,10 @@ void board_init(void) { SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); } -uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length) { -#ifdef VIA_ENABLE - return via_read_custom_config(data, offset, length); -#else - return eeconfig_read_kb_datablock(data, offset, length); -#endif -} - -uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length) { -#ifdef VIA_ENABLE - return via_update_custom_config(data, offset, length); -#else - return eeconfig_update_kb_datablock(data, offset, length); -#endif -} - void keyboard_post_init_kb(void) { /* This is a workaround to some really weird behavior - Without this code, the OLED will turn on, but not when you initially plug the keyboard in. + Without this code, the OLED will turn on, but not when you initially plug the keyboard in. You have to manually trigger a user reset to get the OLED to initialize properly I'm not sure what the root cause is at this time, but this workaround fixes it. */ @@ -90,11 +74,11 @@ void keyboard_post_init_kb(void) { void custom_set_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); - + switch ( *value_id ) { case id_oled_default_mode: { - write_custom_config(&value_data[0], EEPROM_DEFAULT_OLED_OFFSET, 1); + eeprom_update_byte((uint8_t*)EEPROM_DEFAULT_OLED, value_data[0]); break; } case id_oled_mode: @@ -108,7 +92,7 @@ void custom_set_value(uint8_t *data) { uint8_t index = value_data[0]; uint8_t enable = value_data[1]; enabled_encoder_modes = (enabled_encoder_modes & ~(1< #include -#include - #include "via.h" // only for EEPROM address #include "satisfaction_keycodes.h" -#define EEPROM_ENABLED_ENCODER_MODES_OFFSET 0 -#define EEPROM_DEFAULT_OLED_OFFSET 1 -#define EEPROM_CUSTOM_ENCODER_OFFSET 2 +#define EEPROM_ENABLED_ENCODER_MODES (VIA_EEPROM_CUSTOM_CONFIG_ADDR) +#define EEPROM_DEFAULT_OLED (VIA_EEPROM_CUSTOM_CONFIG_ADDR+1) +#define EEPROM_CUSTOM_ENCODER (VIA_EEPROM_CUSTOM_CONFIG_ADDR+2) enum s75_keyboard_value_id { id_encoder_modes = 1, @@ -96,6 +94,3 @@ void oled_request_repaint(void); bool oled_task_needs_to_repaint(void); void custom_config_load(void); - -uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length); -uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length); diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c index 87ff87ea66..7e0b82e9e7 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c @@ -215,13 +215,10 @@ uint16_t handle_encoder_press(void){ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ #ifdef DYNAMIC_KEYMAP_ENABLE - uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); + void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); //big endian - uint8_t hi, lo; - read_custom_config(&hi, offset+0, 1); - read_custom_config(&lo, offset+1, 1); - uint16_t keycode = hi << 8; - keycode |= lo; + uint16_t keycode = eeprom_read_byte(addr) << 8; + keycode |= eeprom_read_byte(addr + 1); return keycode; #else return 0; @@ -230,10 +227,8 @@ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ void set_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior, uint16_t new_code){ #ifdef DYNAMIC_KEYMAP_ENABLE - uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); - uint8_t hi = new_code >> 8; - uint8_t lo = new_code & 0xFF; - write_custom_config(&hi, offset+0, 1); - write_custom_config(&lo, offset+1, 1); + void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); + eeprom_update_byte(addr, (uint8_t)(new_code >> 8)); + eeprom_update_byte(addr + 1, (uint8_t)(new_code & 0xFF)); #endif } diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c index 815e84901d..0361453c52 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c @@ -8,6 +8,7 @@ #include "matrix.h" #include "led.h" #include "host.h" +#include "oled_driver.h" #include "progmem.h" #include @@ -15,7 +16,6 @@ void draw_default(void); void draw_clock(void); #ifdef OLED_ENABLE -#include "oled_driver.h" oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_0; } diff --git a/keyboards/cannonkeys/link/config.h b/keyboards/cannonkeys/link/config.h deleted file mode 100644 index c244f7a56b..0000000000 --- a/keyboards/cannonkeys/link/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2024 CannonKeys */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -/* VBUS-routed pin for upstream detection */ -#define USB_VBUS_PIN GP27 - -#define SPLIT_HAND_PIN_LOW_IS_LEFT - -// Configure full duplex split comms over PIO -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP28 -#define SERIAL_USART_RX_PIN GP29 -#define SERIAL_USART_PIN_SWAP - -/* 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 - -/* I2C for OLEDs */ -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP14 -#define I2C1_SCL_PIN GP15 - -#define OLED_DISPLAY_64X128 diff --git a/keyboards/cannonkeys/link/halconf.h b/keyboards/cannonkeys/link/halconf.h deleted file mode 100644 index 538c60c0b2..0000000000 --- a/keyboards/cannonkeys/link/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_I2C TRUE -#include_next diff --git a/keyboards/cannonkeys/link/keyboard.json b/keyboards/cannonkeys/link/keyboard.json deleted file mode 100644 index e5692cd458..0000000000 --- a/keyboards/cannonkeys/link/keyboard.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "manufacturer": "CannonKeys", - "keyboard_name": "Link", - "maintainer": "awkannan", - "bootloader": "rp2040", - "bootmagic": { - "matrix": [0, 5] - }, - "build": { - "debounce_type": "asym_eager_defer_pk" - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 6 - }, - "encoder": { - "rotary": [ - {"pin_a": "GP12", "pin_b": "GP13", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true - }, - "matrix_pins": { - "cols": ["GP17", "GP18", "GP19", "GP20", "GP21", "GP24"], - "rows": ["GP25", "GP26", "GP16", "GP11", "GP10"] - }, - "processor": "RP2040", - "qmk": { - "tap_keycode_delay": 10 - }, - "split": { - "bootmagic": { - "matrix": [5, 5] - }, - "enabled": true, - "handedness": { - "pin": "GP8" - }, - "matrix_pins": { - "right": { - "cols": ["GP16", "GP11", "GP10", "GP3", "GP2", "GP1"], - "rows": ["GP9", "GP0", "GP17", "GP18", "GP19"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "layer_state": true, - "matrix_state": true, - "oled": true, - "wpm": true - } - } - }, - "url": "https://cannonkeys.com/", - "usb": { - "device_version": "0.0.1", - "pid": "0x0038", - "vid": "0xCA04" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 5], "x": 0, "y": 0}, - {"matrix": [0, 4], "x": 1, "y": 0}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 1], "x": 4, "y": 0}, - {"matrix": [0, 0], "x": 5, "y": 0}, - {"matrix": [5, 0], "x": 11, "y": 0}, - {"matrix": [5, 1], "x": 12, "y": 0}, - {"matrix": [5, 2], "x": 13, "y": 0}, - {"matrix": [5, 3], "x": 14, "y": 0}, - {"matrix": [5, 4], "x": 15, "y": 0}, - {"matrix": [5, 5], "x": 16, "y": 0}, - {"matrix": [1, 5], "x": 0, "y": 1}, - {"matrix": [1, 4], "x": 1, "y": 1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 2], "x": 3, "y": 1}, - {"matrix": [1, 1], "x": 4, "y": 1}, - {"matrix": [1, 0], "x": 5, "y": 1}, - {"matrix": [6, 0], "x": 11, "y": 1}, - {"matrix": [6, 1], "x": 12, "y": 1}, - {"matrix": [6, 2], "x": 13, "y": 1}, - {"matrix": [6, 3], "x": 14, "y": 1}, - {"matrix": [6, 4], "x": 15, "y": 1}, - {"matrix": [6, 5], "x": 16, "y": 1}, - {"matrix": [2, 5], "x": 0, "y": 2}, - {"matrix": [2, 4], "x": 1, "y": 2}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 2], "x": 3, "y": 2}, - {"matrix": [2, 1], "x": 4, "y": 2}, - {"matrix": [2, 0], "x": 5, "y": 2}, - {"matrix": [7, 0], "x": 11, "y": 2}, - {"matrix": [7, 1], "x": 12, "y": 2}, - {"matrix": [7, 2], "x": 13, "y": 2}, - {"matrix": [7, 3], "x": 14, "y": 2}, - {"matrix": [7, 4], "x": 15, "y": 2}, - {"matrix": [7, 5], "x": 16, "y": 2}, - {"matrix": [3, 5], "x": 0, "y": 3}, - {"matrix": [3, 4], "x": 1, "y": 3}, - {"matrix": [3, 3], "x": 2, "y": 3}, - {"matrix": [3, 2], "x": 3, "y": 3}, - {"matrix": [3, 1], "x": 4, "y": 3}, - {"matrix": [3, 0], "x": 5, "y": 3}, - {"matrix": [4, 5], "x": 6, "y": 3}, - {"matrix": [9, 5], "x": 10, "y": 3}, - {"matrix": [8, 0], "x": 11, "y": 3}, - {"matrix": [8, 1], "x": 12, "y": 3}, - {"matrix": [8, 2], "x": 13, "y": 3}, - {"matrix": [8, 3], "x": 14, "y": 3}, - {"matrix": [8, 4], "x": 15, "y": 3}, - {"matrix": [8, 5], "x": 16, "y": 3}, - {"matrix": [4, 4], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 2], "x": 4, "y": 4}, - {"matrix": [4, 1], "x": 5, "y": 4}, - {"matrix": [4, 0], "x": 6, "y": 4, "h": 1.5}, - {"matrix": [9, 0], "x": 10, "y": 4, "h": 1.5}, - {"matrix": [9, 1], "x": 11, "y": 4}, - {"matrix": [9, 2], "x": 12, "y": 4}, - {"matrix": [9, 3], "x": 13, "y": 4}, - {"matrix": [9, 4], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/cannonkeys/link/keymaps/default/keymap.c b/keyboards/cannonkeys/link/keymaps/default/keymap.c deleted file mode 100644 index eba810d868..0000000000 --- a/keyboards/cannonkeys/link/keymaps/default/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2025 Andrew Kannan (awkannan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT( - 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_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, 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_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI -), - -[1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, - KC_WREF, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, - KC_TRNS, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DOT, KC_COLN, KC_BSLS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -), - -[2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_PGUP, KC_MPRV, KC_MNXT, KC_PSCR, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -) -}; diff --git a/keyboards/cannonkeys/link/link.c b/keyboards/cannonkeys/link/link.c deleted file mode 100644 index 2d0d2cb557..0000000000 --- a/keyboards/cannonkeys/link/link.c +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2025 Andrew Kannan (awkannan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_0; - } else { - return OLED_ROTATION_90; - } - return rotation; -} - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - oled_write_P(qmk_logo, false); -} - -void print_status_narrow(void) { - oled_write_P(PSTR("\n\n"), false); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_ln_P(PSTR("Qwrt"), false); - break; - case 1: - oled_write_ln_P(PSTR("Clmk"), false); - break; - default: - oled_write_P(PSTR("Mod\n"), false); - break; - } - oled_write_P(PSTR("\n\n"), false); - oled_write_ln_P(PSTR("LAYER"), false); - switch (get_highest_layer(layer_state)) { - case 0: - case 1: - oled_write_P(PSTR("Base\n"), false); - break; - case 2: - oled_write_P(PSTR("Raise"), false); - break; - case 3: - oled_write_P(PSTR("Lower"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_P(PSTR("\n\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return true; -} - -#endif - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return true; -} -#endif diff --git a/keyboards/cannonkeys/link/readme.md b/keyboards/cannonkeys/link/readme.md deleted file mode 100644 index 461be86180..0000000000 --- a/keyboards/cannonkeys/link/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Link - -The Link is a Sofle58 inspired Ergo Split keyboard from CannonKeys. -It uses 1.3" SH1107 screens and ALPS EC11 compatible encoders. - -* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) -* Hardware Supported: RP2040 -* Hardware Availability: [CannonKeys](https://cannonkeys.com) - - -Make example for this keyboard (after setting up your build environment): - - make cannonkeys/link:default - -Flashing example for this keyboard: - - make cannonkeys/link: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 top-most and outer-most key in the matrix and plug in the keyboard -* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/meetuppad2023/keyboard.json b/keyboards/cannonkeys/meetuppad2023/keyboard.json index ae393ecb2c..e55d4361d8 100644 --- a/keyboards/cannonkeys/meetuppad2023/keyboard.json +++ b/keyboards/cannonkeys/meetuppad2023/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/moment/keyboard.json b/keyboards/cannonkeys/moment/keyboard.json index 1585403293..4e489a7d97 100644 --- a/keyboards/cannonkeys/moment/keyboard.json +++ b/keyboards/cannonkeys/moment/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -33,13 +35,9 @@ }, "community_layouts": [ "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb", + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -181,7 +179,7 @@ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0}, {"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0}, @@ -320,7 +318,7 @@ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5} ] }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb_iso": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0}, {"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0}, diff --git a/keyboards/cannonkeys/moment_hs/keyboard.json b/keyboards/cannonkeys/moment_hs/keyboard.json index 4a55026974..c83c5e7a9d 100644 --- a/keyboards/cannonkeys/moment_hs/keyboard.json +++ b/keyboards/cannonkeys/moment_hs/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -26,14 +28,13 @@ "pid": "0x0013" }, "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c index e4e3af2dab..3d829466c3 100644 --- a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, KC_DEL, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, QK_BOOT ), - [_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN2] = LAYOUT_60_tsangan_hhkb( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______ ), - [_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN3] = LAYOUT_60_tsangan_hhkb( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/nearfield/keyboard.json b/keyboards/cannonkeys/nearfield/keyboard.json index 0d49846394..e516198f09 100644 --- a/keyboards/cannonkeys/nearfield/keyboard.json +++ b/keyboards/cannonkeys/nearfield/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Nearfield", "manufacturer": "JLC", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x0004", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/ortho48/keyboard.json b/keyboards/cannonkeys/ortho48/keyboard.json index 34f295fcd3..2e045c183e 100644 --- a/keyboards/cannonkeys/ortho48/keyboard.json +++ b/keyboards/cannonkeys/ortho48/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho48", "manufacturer": "CannonKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/ortho48v2/keyboard.json b/keyboards/cannonkeys/ortho48v2/keyboard.json index 7861f33425..4ead7db042 100644 --- a/keyboards/cannonkeys/ortho48v2/keyboard.json +++ b/keyboards/cannonkeys/ortho48v2/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/ortho48v2/keymaps/default/keymap.c b/keyboards/cannonkeys/ortho48v2/keymaps/default/keymap.c index b961c50e36..7bfc7a5cf0 100644 --- a/keyboards/cannonkeys/ortho48v2/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/ortho48v2/keymaps/default/keymap.c @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, - [_RAISE] = { ENCODER_CCW_CW(MS_WHLL, MS_WHLR) }, + [_LOWER] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [_RAISE] = { ENCODER_CCW_CW(KC_MS_WH_LEFT, KC_MS_WH_RIGHT) }, }; #endif diff --git a/keyboards/cannonkeys/ortho60/keyboard.json b/keyboards/cannonkeys/ortho60/keyboard.json index 874dc9efae..2e8ad77297 100644 --- a/keyboards/cannonkeys/ortho60/keyboard.json +++ b/keyboards/cannonkeys/ortho60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho60", "manufacturer": "CannonKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/ortho60v2/keyboard.json b/keyboards/cannonkeys/ortho60v2/keyboard.json index 99c15f1058..360c98bff9 100644 --- a/keyboards/cannonkeys/ortho60v2/keyboard.json +++ b/keyboards/cannonkeys/ortho60v2/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/ortho75/keyboard.json b/keyboards/cannonkeys/ortho75/keyboard.json index e46b255b79..af09fd47a7 100644 --- a/keyboards/cannonkeys/ortho75/keyboard.json +++ b/keyboards/cannonkeys/ortho75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho75", "manufacturer": "CannonKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/cannonkeys/petrichor/keyboard.json b/keyboards/cannonkeys/petrichor/keyboard.json index 90f9886cdc..ecec61e7cf 100644 --- a/keyboards/cannonkeys/petrichor/keyboard.json +++ b/keyboards/cannonkeys/petrichor/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/practice60/keyboard.json b/keyboards/cannonkeys/practice60/keyboard.json index 9cd29cb2c5..ad8cde6d6b 100644 --- a/keyboards/cannonkeys/practice60/keyboard.json +++ b/keyboards/cannonkeys/practice60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Practice 60", "manufacturer": "CannonKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h deleted file mode 100644 index ea5c26b6c7..0000000000 --- a/keyboards/cannonkeys/reverie/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 \ No newline at end of file diff --git a/keyboards/cannonkeys/reverie/hotswap/keyboard.json b/keyboards/cannonkeys/reverie/hotswap/keyboard.json deleted file mode 100644 index 4a2101f9de..0000000000 --- a/keyboards/cannonkeys/reverie/hotswap/keyboard.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "keyboard_name": "Reverie HS", - "usb": { - "pid": "0x0033" - }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], - "layout_aliases": { - "LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_all" - }, - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c deleted file mode 100644 index e1081d169c..0000000000 --- a/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _FN1 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN1] = LAYOUT_all( - QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, _______, QK_BOOT - ) -}; diff --git a/keyboards/cannonkeys/reverie/info.json b/keyboards/cannonkeys/reverie/info.json deleted file mode 100644 index 418d0a6176..0000000000 --- a/keyboards/cannonkeys/reverie/info.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "manufacturer": "CannonKeys", - "maintainer": "awkannan", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] - }, - "processor": "RP2040", - "url": "https://cannonkeys.com", - "usb": { - "device_version": "0.0.1", - "vid": "0xCA04" - } -} diff --git a/keyboards/cannonkeys/reverie/readme.md b/keyboards/cannonkeys/reverie/readme.md deleted file mode 100644 index 8647bc0dad..0000000000 --- a/keyboards/cannonkeys/reverie/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# Reverie PCBs - -Reverie PCBs from CannonKeys - -This folder is for both the solderable and hotswap versions of this PCB. - -The hotswap version does not support per-key LEDs and has reduced layout support (no ISO) - -* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) -* Hardware Supported: RP2040 -* Hardware Availability: [CannonKeys](https://cannonkeys.com) - - -Make example for this keyboard (after setting up your build environment): - - make cannonkeys/reverie/solderable:default - -Flashing example for this keyboard: - - make cannonkeys/reverie/solderable:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/reverie/solderable/config.h b/keyboards/cannonkeys/reverie/solderable/config.h deleted file mode 100644 index 9a8669d7a8..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/reverie/solderable/halconf.h b/keyboards/cannonkeys/reverie/solderable/halconf.h deleted file mode 100644 index 0536c37ff3..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cannonkeys/reverie/solderable/keyboard.json b/keyboards/cannonkeys/reverie/solderable/keyboard.json deleted file mode 100644 index b1d909cb85..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/keyboard.json +++ /dev/null @@ -1,672 +0,0 @@ -{ - "keyboard_name": "Reverie", - "backlight": { - "breathing": true, - "breathing_period": 5, - "levels": 15, - "pin": "GP22" - }, - "features": { - "backlight": true - }, - "indicators": { - "caps_lock": "GP29", - "on_state": 0 - }, - "usb": { - "pid": "0x0030" - }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], - "layout_aliases": { - "LAYOUT": "LAYOUT_all" - }, - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.25}, - {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, - {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c deleted file mode 100644 index 0a256ac406..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _FN1 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN1] = LAYOUT_all( - QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT - ) -}; diff --git a/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md deleted file mode 100644 index c74adfdb7c..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md +++ /dev/null @@ -1,27 +0,0 @@ -# Matrix Diagram for CannonKeys Reverie - -``` - ┌───────┐ - 2u Backspace │0D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ -├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ -│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │ -└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘ -┌────────┐ -│30 │ 2.25u LShift -└────────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┐ -│40 │41 │42 │46 │4B │ Blocker Tsangan -└─────┴───┴─────┴───────────────────────────┴─────┘ -┌────┬────┬────┬────────────────────────┬────┬────┐ -│40 │41 │42 │46 │4A │4B │ Blocker -└────┴────┴────┴────────────────────────┴────┴────┘ -``` diff --git a/keyboards/cannonkeys/reverie/solderable/mcuconf.h b/keyboards/cannonkeys/reverie/solderable/mcuconf.h deleted file mode 100644 index 200f75c11b..0000000000 --- a/keyboards/cannonkeys/reverie/solderable/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_PWM_USE_PWM3 -#define RP_PWM_USE_PWM3 TRUE diff --git a/keyboards/cannonkeys/ripple/keyboard.json b/keyboards/cannonkeys/ripple/keyboard.json index e2f6c77645..3dc11719a1 100644 --- a/keyboards/cannonkeys/ripple/keyboard.json +++ b/keyboards/cannonkeys/ripple/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -34,6 +36,8 @@ "rgblight": { "led_count": 20, "hue_steps": 17, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "static_gradient": true, "twinkle": true, diff --git a/keyboards/cannonkeys/ripple_hs/keyboard.json b/keyboards/cannonkeys/ripple_hs/keyboard.json index 34ba5c8210..7892acc6c6 100644 --- a/keyboards/cannonkeys/ripple_hs/keyboard.json +++ b/keyboards/cannonkeys/ripple_hs/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/sagittarius/keyboard.json b/keyboards/cannonkeys/sagittarius/keyboard.json index e64268ab53..8f83a42984 100644 --- a/keyboards/cannonkeys/sagittarius/keyboard.json +++ b/keyboards/cannonkeys/sagittarius/keyboard.json @@ -60,14 +60,6 @@ "resync": true } }, - "encoder": { - "rotary": [ - {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, - {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, - {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, - {"pin_a": "B12", "pin_b": "B11", "resolution": 2} - ] - }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c index 5dbb6b8b87..093895bb99 100644 --- a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c @@ -44,10 +44,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) }, - [1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU), ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, -}; -#endif diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk b/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk deleted file mode 100644 index 376fe3d8dc..0000000000 --- a/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -ENCODER_ENABLE = yes -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.c b/keyboards/cannonkeys/sagittarius/sagittarius.c deleted file mode 100644 index 1000f7dd43..0000000000 --- a/keyboards/cannonkeys/sagittarius/sagittarius.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -#if defined(ENCODER_ENABLE) || defined(ENCODER_MAP_ENABLE) - -# if !defined(ENCODER_SETTLE_PIN_STATE_DELAY_US) -# define ENCODER_SETTLE_PIN_STATE_DELAY_US 2 -# endif - -static pin_t matrix_row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; - -void encoder_driver_task(void) { - // Set all relevant rows to output, which is different to the matrix expectations - for (uint8_t i = 0; i < 4; i++) { - gpio_set_pin_output(matrix_row_pins[i]); - } - - // Read each encoder - for (uint8_t i = 0; i < 4; i++) { - // Set the row pin low for the corresponding encoder... - for (uint8_t j = 0; j < 4; j++) { - gpio_write_pin(matrix_row_pins[j], (i == j) ? 0 : 1); - } - // ...and let them settle. - wait_us(ENCODER_SETTLE_PIN_STATE_DELAY_US); - - // Run the normal encoder handling - extern void encoder_quadrature_handle_read(uint8_t index, uint8_t pin_a_state, uint8_t pin_b_state); - extern uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b); - encoder_quadrature_handle_read(i, encoder_quadrature_read_pin(i, false), encoder_quadrature_read_pin(i, true)); - } - - // Set all rows back to input-high as per matrix expectations - for (uint8_t i = 0; i < 4; i++) { - gpio_set_pin_input_high(matrix_row_pins[i]); - } -} - -#endif // defined(ENCODER_ENABLE) || defined(ENCODER_MAP_ENABLE) diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h index 28bc6b286a..969206b19a 100644 --- a/keyboards/cannonkeys/satisfaction75/config.h +++ b/keyboards/cannonkeys/satisfaction75/config.h @@ -42,7 +42,4 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 -// And if VIA isn't enabled, fall back to using standard QMK for configuration -#ifndef VIA_ENABLE -#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE -#endif + diff --git a/keyboards/cannonkeys/satisfaction75/info.json b/keyboards/cannonkeys/satisfaction75/info.json index 69efb36a8c..96aeca80ee 100644 --- a/keyboards/cannonkeys/satisfaction75/info.json +++ b/keyboards/cannonkeys/satisfaction75/info.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk index 25eebb9054..c92469d1bd 100644 --- a/keyboards/cannonkeys/satisfaction75/rules.mk +++ b/keyboards/cannonkeys/satisfaction75/rules.mk @@ -5,3 +5,5 @@ VPATH += keyboards/cannonkeys/lib/satisfaction75 SRC += satisfaction_encoder.c \ satisfaction_oled.c \ satisfaction_core.c + +DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1 \ No newline at end of file diff --git a/keyboards/cannonkeys/satisfaction75_hs/config.h b/keyboards/cannonkeys/satisfaction75_hs/config.h index 26c3e4080c..658babd3c0 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/config.h +++ b/keyboards/cannonkeys/satisfaction75_hs/config.h @@ -40,10 +40,5 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 -// And if VIA isn't enabled, fall back to using standard QMK for configuration -#ifndef VIA_ENABLE -#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE -#endif - // VIA lighting is handled by the keyboard-level code #define VIA_CUSTOM_LIGHTING_ENABLE diff --git a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json index 55a03da463..6e8172ec02 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json @@ -11,6 +11,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, @@ -111,9 +112,9 @@ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25}, - {"matrix": [5, 11], "x": 11, "y": 5.25}, - {"matrix": [5, 9], "x": 12, "y": 5.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1}, + {"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1}, {"matrix": [5, 12], "x": 13.25, "y": 5.5}, {"matrix": [5, 13], "x": 14.25, "y": 5.5}, {"matrix": [5, 14], "x": 15.25, "y": 5.5} diff --git a/keyboards/cannonkeys/savage65/keyboard.json b/keyboards/cannonkeys/savage65/keyboard.json index 471b785633..bc9c1d77e5 100644 --- a/keyboards/cannonkeys/savage65/keyboard.json +++ b/keyboards/cannonkeys/savage65/keyboard.json @@ -1,62 +1,140 @@ { - "manufacturer": "CannonKeys", "keyboard_name": "Savage65", + "manufacturer": "CannonKeys", + "url": "https://cannonkeys.com", "maintainer": "awkannan", - "backlight": { - "breathing": true, - "levels": 6, - "pin": "A6" - }, - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "backlight": true, - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true + "usb": { + "vid": "0xCA04", + "pid": "0x5A65", + "device_version": "0.0.1" }, "matrix_pins": { "cols": ["A5", "B10", "A3", "A2", "B0", "A9", "C13", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], "rows": ["B12", "B11", "B14", "A8", "A1"] }, + "diode_direction": "COL2ROW", + "backlight": { + "pin": "A6", + "levels": 6, + "breathing": true + }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, "processor": "STM32F072", + "bootloader": "stm32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "qmk": { "locking": { "enabled": true, "resync": true } }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 20 - }, - "url": "https://cannonkeys.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x5A65", - "vid": "0xCA04" - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker"], + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_iso_blocker"], "layouts": { + "LAYOUT_default": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -74,6 +152,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -89,6 +168,7 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -103,6 +183,7 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -117,6 +198,7 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -146,6 +228,7 @@ {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [0, 14], "x": 14, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -161,6 +244,7 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -175,6 +259,7 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -189,6 +274,7 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -217,6 +303,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -232,6 +319,7 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -246,6 +334,7 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -260,77 +349,7 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [4, 1], "x": 1.5, "y": 4}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, @@ -358,6 +377,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -372,6 +392,7 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -387,6 +408,7 @@ {"matrix": [2, 12], "x": 12.75, "y": 2}, {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, {"matrix": [3, 2], "x": 2.25, "y": 3}, @@ -402,80 +424,7 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_default": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, diff --git a/keyboards/cannonkeys/serenity/keyboard.json b/keyboards/cannonkeys/serenity/keyboard.json index 83eed98abb..3259baaca9 100644 --- a/keyboards/cannonkeys/serenity/keyboard.json +++ b/keyboards/cannonkeys/serenity/keyboard.json @@ -13,6 +13,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/typeb/keyboard.json b/keyboards/cannonkeys/typeb/keyboard.json index fb3bf0964d..1f16991205 100644 --- a/keyboards/cannonkeys/typeb/keyboard.json +++ b/keyboards/cannonkeys/typeb/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/vector/keyboard.json b/keyboards/cannonkeys/vector/keyboard.json index 117a83208f..09fd5b601f 100644 --- a/keyboards/cannonkeys/vector/keyboard.json +++ b/keyboards/cannonkeys/vector/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,6 +21,7 @@ "on_state": 0 }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "vid": "0xCA04", @@ -26,13 +29,9 @@ }, "community_layouts": [ "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb", + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -175,7 +174,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cannonkeys/vida/config.h b/keyboards/cannonkeys/vida/config.h deleted file mode 100644 index 4eec357f20..0000000000 --- a/keyboards/cannonkeys/vida/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/vida/hotswap/keyboard.json b/keyboards/cannonkeys/vida/hotswap/keyboard.json deleted file mode 100644 index a2278354e5..0000000000 --- a/keyboards/cannonkeys/vida/hotswap/keyboard.json +++ /dev/null @@ -1,272 +0,0 @@ -{ - "keyboard_name": "Vida HS", - "usb": { - "pid": "0x0035" - }, - "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb"], - "layout_aliases": { - "LAYOUT_60_ansi_split_bs_rshift": "LAYOUT_all" - }, - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 8ff252918f..0000000000 --- a/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2023 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _FN1 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL - ), - - [_FN1] = LAYOUT_all( - QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT - ) -}; diff --git a/keyboards/cannonkeys/vida/info.json b/keyboards/cannonkeys/vida/info.json deleted file mode 100644 index c8462b2ea9..0000000000 --- a/keyboards/cannonkeys/vida/info.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "manufacturer": "CannonKeys", - "maintainer": "awkannan", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "GP29", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], - "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] - }, - "processor": "RP2040", - "url": "https://cannonkeys.com", - "usb": { - "device_version": "0.0.1", - "vid": "0xCA04" - } -} diff --git a/keyboards/cannonkeys/vida/readme.md b/keyboards/cannonkeys/vida/readme.md deleted file mode 100644 index 2143a7d20a..0000000000 --- a/keyboards/cannonkeys/vida/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Vida Keyboard PCB - -Vida PCB from CannonKeys - -This folder has files for both the wired hotswap and solderable versions of the Vida PCB - -The hotswap version does not have as much layout support as the solderable version (no ISO, no split space) -The hotswap version does not support per key LED backlighting - -* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) -* Hardware Supported: RP2040 -* Hardware Availability: [CannonKeys](https://cannonkeys.com) - - -Make example for this keyboard (after setting up your build environment): - - make cannonkeys/vida:hotswap:default - -Flashing example for this keyboard: - - make cannonkeys/vida:hotswap:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/vida/solderable/config.h b/keyboards/cannonkeys/vida/solderable/config.h deleted file mode 100644 index 9a8669d7a8..0000000000 --- a/keyboards/cannonkeys/vida/solderable/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/vida/solderable/halconf.h b/keyboards/cannonkeys/vida/solderable/halconf.h deleted file mode 100644 index 0536c37ff3..0000000000 --- a/keyboards/cannonkeys/vida/solderable/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cannonkeys/vida/solderable/keyboard.json b/keyboards/cannonkeys/vida/solderable/keyboard.json deleted file mode 100644 index 1b8635b443..0000000000 --- a/keyboards/cannonkeys/vida/solderable/keyboard.json +++ /dev/null @@ -1,680 +0,0 @@ -{ - "keyboard_name": "Vida", - "backlight": { - "breathing": true, - "breathing_period": 5, - "levels": 15, - "pin": "GP22" - }, - "features": { - "backlight": true - }, - "usb": { - "pid": "0x0032" - }, - "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_tsangan_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.25}, - {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, - {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c deleted file mode 100644 index 46d376f42d..0000000000 --- a/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2023 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _FN1 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL - ), - - [_FN1] = LAYOUT_all( - QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT - ) -}; diff --git a/keyboards/cannonkeys/vida/solderable/matrix_diagram.md b/keyboards/cannonkeys/vida/solderable/matrix_diagram.md deleted file mode 100644 index 6de584cb4e..0000000000 --- a/keyboards/cannonkeys/vida/solderable/matrix_diagram.md +++ /dev/null @@ -1,24 +0,0 @@ -# Matrix Diagram for CannonKeys Vida - -``` - ┌───────┐ - 2u Backspace │0D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ -├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ -│40 │41 │42 │46 │4A │4B │4C │4D │ -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ -┌────────┐ ┌──────────┐ -│30 │ 2.25u LShift 2.75u RShift │3C │ -└────────┘ └──────────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` diff --git a/keyboards/cannonkeys/vida/solderable/mcuconf.h b/keyboards/cannonkeys/vida/solderable/mcuconf.h deleted file mode 100644 index 200f75c11b..0000000000 --- a/keyboards/cannonkeys/vida/solderable/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Andrew Kannan -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_PWM_USE_PWM3 -#define RP_PWM_USE_PWM3 TRUE diff --git a/keyboards/cantor/keyboard.json b/keyboards/cantor/keyboard.json index 9065e11ae5..26b79c0280 100644 --- a/keyboards/cantor/keyboard.json +++ b/keyboards/cantor/keyboard.json @@ -4,6 +4,8 @@ "maintainer": "diepala", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/capsunlocked/cu24/keyboard.json b/keyboards/capsunlocked/cu24/keyboard.json index 2a8ccf19c0..ceec64611c 100644 --- a/keyboards/capsunlocked/cu24/keyboard.json +++ b/keyboards/capsunlocked/cu24/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CU24", "manufacturer": "Yiancar/CapsUnlocked", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/capsunlocked/cu65/keyboard.json b/keyboards/capsunlocked/cu65/keyboard.json index 444a5ae178..80f1149661 100644 --- a/keyboards/capsunlocked/cu65/keyboard.json +++ b/keyboards/capsunlocked/cu65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CU65", "manufacturer": "CapsUnlocked", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4355", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/capsunlocked/cu7/keyboard.json b/keyboards/capsunlocked/cu7/keyboard.json index e19dc5acb3..46f8b34213 100644 --- a/keyboards/capsunlocked/cu7/keyboard.json +++ b/keyboards/capsunlocked/cu7/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/capsunlocked/cu75/keyboard.json b/keyboards/capsunlocked/cu75/keyboard.json index b226f74bf9..f7a8356bcc 100644 --- a/keyboards/capsunlocked/cu75/keyboard.json +++ b/keyboards/capsunlocked/cu75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CU75", "manufacturer": "LFKeyboards/CapsUnlocked", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/capsunlocked/cu80/v1/keyboard.json b/keyboards/capsunlocked/cu80/v1/keyboard.json index 18fb97037b..e3283d99cb 100644 --- a/keyboards/capsunlocked/cu80/v1/keyboard.json +++ b/keyboards/capsunlocked/cu80/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c index 27725440e4..b0270d17f9 100644 --- a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_SPDD, - _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_TOGG, RM_NEXT + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD ) }; diff --git a/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c index c13c244a3d..4bae95ed07 100644 --- a/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_TOGG, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD ) }; diff --git a/keyboards/carbo65/keyboard.json b/keyboards/carbo65/keyboard.json index 918cbf465e..f2a4ce0dac 100644 --- a/keyboards/carbo65/keyboard.json +++ b/keyboards/carbo65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cata/keyboard.json b/keyboards/cata/keyboard.json deleted file mode 100644 index f6b5ef169f..0000000000 --- a/keyboards/cata/keyboard.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "manufacturer": "Steven Karrmann", - "keyboard_name": "Cata", - "maintainer": "skarrmann", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14"], - "rows": ["GP27", "GP5", "GP26", "GP6", "GP15", "GP7", "GP14", "GP8"] - }, - "processor": "RP2040", - "url": "https://github.com/skarrmann/cata", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "community_layouts": ["split_3x5_2"], - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [1, 0], "x": 6, "y": 0}, - {"matrix": [1, 1], "x": 7, "y": 0}, - {"matrix": [1, 2], "x": 8, "y": 0}, - {"matrix": [1, 3], "x": 9, "y": 0}, - {"matrix": [1, 4], "x": 10, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [2, 1], "x": 1, "y": 1}, - {"matrix": [2, 2], "x": 2, "y": 1}, - {"matrix": [2, 3], "x": 3, "y": 1}, - {"matrix": [2, 4], "x": 4, "y": 1}, - {"matrix": [3, 0], "x": 6, "y": 1}, - {"matrix": [3, 1], "x": 7, "y": 1}, - {"matrix": [3, 2], "x": 8, "y": 1}, - {"matrix": [3, 3], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [4, 1], "x": 1, "y": 2}, - {"matrix": [4, 2], "x": 2, "y": 2}, - {"matrix": [4, 3], "x": 3, "y": 2}, - {"matrix": [4, 4], "x": 4, "y": 2}, - {"matrix": [5, 0], "x": 6, "y": 2}, - {"matrix": [5, 1], "x": 7, "y": 2}, - {"matrix": [5, 2], "x": 8, "y": 2}, - {"matrix": [5, 3], "x": 9, "y": 2}, - {"matrix": [5, 4], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 3, "y": 3}, - {"matrix": [6, 4], "x": 4, "y": 3}, - {"matrix": [7, 0], "x": 6, "y": 3}, - {"matrix": [7, 1], "x": 7, "y": 3} - ] - } - } -} diff --git a/keyboards/cata/keymaps/default/keymap.c b/keyboards/cata/keymaps/default/keymap.c deleted file mode 100644 index ac760ab014..0000000000 --- a/keyboards/cata/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2025 Steven Karrmann (@skarrmann) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _SYMBOL, - _NAVIGATION, - _FUNCTION -}; - -#define MO_SYM MO(_SYMBOL) -#define MO_NAV MO(_NAVIGATION) -#define MO_FUN MO(_FUNCTION) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_split_3x5_2( - KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , - KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_QUOT, - KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, - MO_NAV , KC_LSFT, KC_SPC , MO_SYM - ), - [_SYMBOL] = LAYOUT_split_3x5_2( - KC_SCLN, KC_LBRC, KC_RBRC, KC_5 , XXXXXXX, XXXXXXX, KC_6 , KC_MINS, KC_EQL , KC_GRV , - KC_1 , KC_2 , KC_3 , KC_4 , KC_BSLS, XXXXXXX, KC_7 , KC_8 , KC_9 , KC_0 , - OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, - MO_FUN , _______, _______, _______ - ), - [_NAVIGATION] = LAYOUT_split_3x5_2( - KC_PSCR, KC_INS , KC_APP , KC_DEL , XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END , - KC_ESC , KC_TAB , KC_ENT , KC_BSPC, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, - OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, - _______, _______, _______, MO_FUN - ), - [_FUNCTION] = LAYOUT_split_3x5_2( - KC_F1 , KC_F2 , KC_F3 , KC_F4 , QK_BOOT, KC_SCRL, KC_F9 , KC_F10 , KC_F11 , KC_F12 , - KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_CAPS, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, - OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_NUM, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, - _______, _______, _______, _______ - ), -}; diff --git a/keyboards/cata/readme.md b/keyboards/cata/readme.md deleted file mode 100644 index c21750b16d..0000000000 --- a/keyboards/cata/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Cata - -![Cata](https://i.imgur.com/6jGENr9.jpeg) - -Cata is a 34 key ortholinear keyboard, powered by a Waveshare RP2040-Zero. - -* Keyboard Maintainer: [skarrmann](https://github.com/skarrmann) -* Hardware Supported: Cata PCBs with RP2040-Zero -* Hardware Availability: [Cata GitHub repository](https://github.com/skarrmann/cata) - -Make example for this keyboard (after setting up your build environment): - - make cata:default - -Flashing example for this keyboard: - - make cata: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 top left key) and plug in the keyboard. -* **Physical reset button**: Double-tap the RESET button on the RP-2040 Zero (button on the right). -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/catch22/keyboard.json b/keyboards/catch22/keyboard.json index 22aebe844a..3c1d9c5777 100644 --- a/keyboards/catch22/keyboard.json +++ b/keyboards/catch22/keyboard.json @@ -38,7 +38,8 @@ "rows": ["B6", "B2", "B3", "B1", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/centromere/keyboard.json b/keyboards/centromere/keyboard.json index 01dd6c9875..c190bd84d7 100644 --- a/keyboards/centromere/keyboard.json +++ b/keyboards/centromere/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Centromere", "manufacturer": "Southpaw Design", + "url": "", "maintainer": "spe2", "usb": { "vid": "0xFEED", diff --git a/keyboards/cest73/tkm/keyboard.json b/keyboards/cest73/tkm/keyboard.json index 31e592ec05..e9aad4461b 100644 --- a/keyboards/cest73/tkm/keyboard.json +++ b/keyboards/cest73/tkm/keyboard.json @@ -6,16 +6,14 @@ "usb": { "vid": "0xBADD", "pid": "0xAA55", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/chalice/keyboard.json b/keyboards/chalice/keyboard.json index 3b9f1fa0b7..b8b4436966 100644 --- a/keyboards/chalice/keyboard.json +++ b/keyboards/chalice/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/chaos65/keyboard.json b/keyboards/chaos65/keyboard.json index 87f03b3a75..ed3f33e0c3 100644 --- a/keyboards/chaos65/keyboard.json +++ b/keyboards/chaos65/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0xB23B", "pid": "0x1688", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/charue/charon/keyboard.json b/keyboards/charue/charon/keyboard.json index 206474171b..3dede57ba4 100644 --- a/keyboards/charue/charon/keyboard.json +++ b/keyboards/charue/charon/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/charue/sunsetter_r2/keyboard.json b/keyboards/charue/sunsetter_r2/keyboard.json index 6e2c1a92e1..b7b7cc8d92 100644 --- a/keyboards/charue/sunsetter_r2/keyboard.json +++ b/keyboards/charue/sunsetter_r2/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/chavdai40/rev1/keyboard.json b/keyboards/chavdai40/rev1/keyboard.json index 350aa9de5f..22c4ccfb7b 100644 --- a/keyboards/chavdai40/rev1/keyboard.json +++ b/keyboards/chavdai40/rev1/keyboard.json @@ -6,6 +6,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/chavdai40/rev2/keyboard.json b/keyboards/chavdai40/rev2/keyboard.json index 9cf0e3693c..b43c68604f 100644 --- a/keyboards/chavdai40/rev2/keyboard.json +++ b/keyboards/chavdai40/rev2/keyboard.json @@ -6,6 +6,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/checkerboards/axon40/keyboard.json b/keyboards/checkerboards/axon40/keyboard.json index a6647e9f3d..c0b67b611d 100644 --- a/keyboards/checkerboards/axon40/keyboard.json +++ b/keyboards/checkerboards/axon40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Axon40", "manufacturer": "Nasp", + "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/candybar_ortho/keyboard.json b/keyboards/checkerboards/candybar_ortho/keyboard.json index e9735a0bca..d7908a04f4 100644 --- a/keyboards/checkerboards/candybar_ortho/keyboard.json +++ b/keyboards/checkerboards/candybar_ortho/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CandyBar Ortho", "manufacturer": "Nasp", + "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", @@ -30,6 +31,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/g_idb60/keyboard.json b/keyboards/checkerboards/g_idb60/keyboard.json index 1273341e19..b4fc0f9b6d 100644 --- a/keyboards/checkerboards/g_idb60/keyboard.json +++ b/keyboards/checkerboards/g_idb60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "G_IDB60", "manufacturer": "Nasp", + "url": "", "maintainer": "npspears", "usb": { "vid": "0x7070", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -27,12 +30,11 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi_tsangan": { @@ -103,7 +105,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c b/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c index 8f78394753..f49a3ff09d 100644 --- a/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c +++ b/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl | * `-------------------------------------------------------------' */ - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [2] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/checkerboards/nop60/keyboard.json b/keyboards/checkerboards/nop60/keyboard.json index d4648387f5..a07c2af3bc 100644 --- a/keyboards/checkerboards/nop60/keyboard.json +++ b/keyboards/checkerboards/nop60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NOP60", "manufacturer": "Nasp", + "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -57,12 +59,11 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_2x3u": "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space", - "LAYOUT_7u": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb_split_space": "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space" + "LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space", + "LAYOUT_7u": "LAYOUT_60_tsangan_hhkb" }, "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space": { + "LAYOUT_60_tsangan_hhkb_split_space": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -134,7 +135,7 @@ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/checkerboards/nop60/keymaps/7u/keymap.c b/keyboards/checkerboards/nop60/keymaps/7u/keymap.c index 8443807d5f..6cf55851fd 100644 --- a/keyboards/checkerboards/nop60/keymaps/7u/keymap.c +++ b/keyboards/checkerboards/nop60/keymaps/7u/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl | * `-------------------------------------------------------------' */ - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [2] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/checkerboards/nop60/keymaps/default/keymap.c b/keyboards/checkerboards/nop60/keymaps/default/keymap.c index 9a8fb4f8b7..6c64d98c12 100644 --- a/keyboards/checkerboards/nop60/keymaps/default/keymap.c +++ b/keyboards/checkerboards/nop60/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl |GUI |Alt |Space |BLTOG |Space |Alt |GUI |Ctrl | * `-------------------------------------------------------------' */ - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space( + [0] = LAYOUT_60_tsangan_hhkb_split_space( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 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, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space( + [1] = LAYOUT_60_tsangan_hhkb_split_space( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |QK_BOOT | * `------------------------------------------------------------------------------' */ - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space( + [2] = LAYOUT_60_tsangan_hhkb_split_space( 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, KC_DEL, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/checkerboards/plexus75/keyboard.json b/keyboards/checkerboards/plexus75/keyboard.json index 4bab1ce986..14bd4deb75 100644 --- a/keyboards/checkerboards/plexus75/keyboard.json +++ b/keyboards/checkerboards/plexus75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Plexus75", "manufacturer": "Nasp", + "url": "", "maintainer": "npspears", "usb": { "vid": "0x7070", @@ -31,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/checkerboards/plexus75_he/keyboard.json b/keyboards/checkerboards/plexus75_he/keyboard.json index 55a7a49235..2da1bf34f3 100644 --- a/keyboards/checkerboards/plexus75_he/keyboard.json +++ b/keyboards/checkerboards/plexus75_he/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/checkerboards/pursuit40/keyboard.json b/keyboards/checkerboards/pursuit40/keyboard.json index 3ef3e2f3ab..996a55850d 100644 --- a/keyboards/checkerboards/pursuit40/keyboard.json +++ b/keyboards/checkerboards/pursuit40/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/quark/keyboard.json b/keyboards/checkerboards/quark/keyboard.json index 90d378b528..4bb7c7fef7 100644 --- a/keyboards/checkerboards/quark/keyboard.json +++ b/keyboards/checkerboards/quark/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "QUARK", "manufacturer": "Nasp", + "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/quark_lp/keyboard.json b/keyboards/checkerboards/quark_lp/keyboard.json index 7634a71d3e..59fda2efc8 100644 --- a/keyboards/checkerboards/quark_lp/keyboard.json +++ b/keyboards/checkerboards/quark_lp/keyboard.json @@ -40,6 +40,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/checkerboards/quark_plus/keyboard.json b/keyboards/checkerboards/quark_plus/keyboard.json index 6f38cbb752..311d21c219 100644 --- a/keyboards/checkerboards/quark_plus/keyboard.json +++ b/keyboards/checkerboards/quark_plus/keyboard.json @@ -32,6 +32,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/checkerboards/quark_plus/quark_plus.c b/keyboards/checkerboards/quark_plus/quark_plus.c index 66b210ad7a..84e2375a74 100644 --- a/keyboards/checkerboards/quark_plus/quark_plus.c +++ b/keyboards/checkerboards/quark_plus/quark_plus.c @@ -20,9 +20,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 0) { /* right encoder */ if (clockwise){ diff --git a/keyboards/checkerboards/snop60/snop60.c b/keyboards/checkerboards/snop60/snop60.c index 18445174f3..641815f919 100644 --- a/keyboards/checkerboards/snop60/snop60.c +++ b/keyboards/checkerboards/snop60/snop60.c @@ -22,9 +22,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 0) { /* right encoder */ if (clockwise){ diff --git a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json index 7e18bd3708..2aae3d1cc8 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json +++ b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UD40_Ortho_Alt", "manufacturer": "Nasp", + "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb1800/keyboard.json b/keyboards/cherrybstudio/cb1800/keyboard.json index 384109b83d..fedcc1c75e 100644 --- a/keyboards/cherrybstudio/cb1800/keyboard.json +++ b/keyboards/cherrybstudio/cb1800/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb65/keyboard.json b/keyboards/cherrybstudio/cb65/keyboard.json index f9facaa1aa..8f14ec0941 100644 --- a/keyboards/cherrybstudio/cb65/keyboard.json +++ b/keyboards/cherrybstudio/cb65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87/keyboard.json b/keyboards/cherrybstudio/cb87/keyboard.json index 2b7fba491e..417c40e53d 100644 --- a/keyboards/cherrybstudio/cb87/keyboard.json +++ b/keyboards/cherrybstudio/cb87/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87rgb/keyboard.json b/keyboards/cherrybstudio/cb87rgb/keyboard.json index 1ce2fab78f..bba6bea541 100644 --- a/keyboards/cherrybstudio/cb87rgb/keyboard.json +++ b/keyboards/cherrybstudio/cb87rgb/keyboard.json @@ -39,6 +39,11 @@ "hue_breathing": true, "hue_pendulum": true, "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, "solid_reactive_simple": true, "solid_reactive": true, "solid_reactive_wide": true, @@ -58,6 +63,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87v2/keyboard.json b/keyboards/cherrybstudio/cb87v2/keyboard.json index 7337ed186b..c40bb1778f 100644 --- a/keyboards/cherrybstudio/cb87v2/keyboard.json +++ b/keyboards/cherrybstudio/cb87v2/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cheshire/curiosity/keyboard.json b/keyboards/cheshire/curiosity/keyboard.json index d630072123..b408a5b6e9 100644 --- a/keyboards/cheshire/curiosity/keyboard.json +++ b/keyboards/cheshire/curiosity/keyboard.json @@ -33,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cheshire/curiosity/keymaps/default/keymap.c b/keyboards/cheshire/curiosity/keymaps/default/keymap.c index 85bb51b7fd..18d371c58a 100644 --- a/keyboards/cheshire/curiosity/keymaps/default/keymap.c +++ b/keyboards/cheshire/curiosity/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FNMS] = LAYOUT_default( UG_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN2, _______, _______, + UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, UG_SATU, UG_HUEU, UG_VALU, UG_SATD, UG_HUED, UG_VALD, _______, _______, AG_TOGG, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/chew/config.h b/keyboards/chew/config.h new file mode 100644 index 0000000000..df672bc4e1 --- /dev/null +++ b/keyboards/chew/config.h @@ -0,0 +1,10 @@ +// Copyright 2024 Florent (@FLinguenheld) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Flash */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur + +#define EE_HANDS diff --git a/keyboards/chew/info.json b/keyboards/chew/info.json deleted file mode 100644 index 306e7f3057..0000000000 --- a/keyboards/chew/info.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "manufacturer": "florent@linguenheld.fr", - "maintainer": "florent@linguenheld.fr", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - } -} diff --git a/keyboards/chew/keyboard.json b/keyboards/chew/keyboard.json new file mode 100644 index 0000000000..01175e6341 --- /dev/null +++ b/keyboards/chew/keyboard.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "florent@linguenheld.fr", + "keyboard_name": "chew", + "maintainer": "florent@linguenheld.fr", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP4", "GP3", "GP2", "GP1", "GP0"], + ["GP15", "GP26", "GP27", "GP28", "GP29"], + ["GP14", "GP13", "GP9", "GP8", "NO_PIN"], + ["GP7", "GP6", "GP5", "NO_PIN", "NO_PIN"] + ] + }, + "processor": "RP2040", + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + ["GP0", "GP1", "GP2", "GP3", "GP4"], + ["GP29", "GP28", "GP27", "GP26", "GP15"], + ["GP8", "GP9", "GP13", "GP14", "NO_PIN"], + ["GP5", "GP6", "GP7", "NO_PIN", "NO_PIN"] + ] + } + }, + "serial": { + "driver": "vendor", + "pin": "GP11" + }, + "transport": { + "watchdog": true + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.125}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.125}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [4, 0], "x": 7, "y": 0.25}, + {"matrix": [4, 1], "x": 8, "y": 0.125}, + {"matrix": [4, 2], "x": 9, "y": 0}, + {"matrix": [4, 3], "x": 10, "y": 0.125}, + {"matrix": [4, 4], "x": 11, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.125}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [5, 0], "x": 7, "y": 1.25}, + {"matrix": [5, 1], "x": 8, "y": 1.125}, + {"matrix": [5, 2], "x": 9, "y": 1}, + {"matrix": [5, 3], "x": 10, "y": 1.125}, + {"matrix": [5, 4], "x": 11, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.125}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.125}, + {"matrix": [6, 0], "x": 8, "y": 2.125}, + {"matrix": [6, 1], "x": 9, "y": 2}, + {"matrix": [6, 2], "x": 10, "y": 2.125}, + {"matrix": [6, 3], "x": 11, "y": 2.25}, + {"matrix": [3, 0], "x": 2.5, "y": 3.25}, + {"matrix": [3, 1], "x": 3.5, "y": 3.5}, + {"matrix": [3, 2], "x": 4.5, "y": 3.75}, + {"matrix": [7, 0], "x": 6.5, "y": 3.75}, + {"matrix": [7, 1], "x": 7.5, "y": 3.5}, + {"matrix": [7, 2], "x": 8.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/chew/split/keymaps/default/keymap.c b/keyboards/chew/keymaps/default/keymap.c similarity index 100% rename from keyboards/chew/split/keymaps/default/keymap.c rename to keyboards/chew/keymaps/default/keymap.c diff --git a/keyboards/chew/mono/config.h b/keyboards/chew/mono/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/mono/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chew/mono/keyboard.json b/keyboards/chew/mono/keyboard.json deleted file mode 100644 index 9e48102367..0000000000 --- a/keyboards/chew/mono/keyboard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "keyboard_name": "chew/mono", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP5", "GP6", "GP7", "GP8"] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "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, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3} - ] - } - } -} diff --git a/keyboards/chew/mono/keymaps/default/keymap.c b/keyboards/chew/mono/keymaps/default/keymap.c deleted file mode 100644 index 0a69b72f85..0000000000 --- a/keyboards/chew/mono/keymaps/default/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ - * ├───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ - * │ Z │ X │ C │ V │ │ M │ , │ . │ / │ - * └───┴───┼───┼───┼───┬───┼───┼───┼───┴───┘ - * │ B │Bsp│Alt│ ␣ │Ent│ N │ - * └───┴───┴───┴───┴───┴───┘ - */ - [0] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_B, KC_BSPC, KC_RALT, KC_SPC, KC_ENT, KC_N - - ) -}; diff --git a/keyboards/chew/mono/readme.md b/keyboards/chew/mono/readme.md deleted file mode 100644 index a0c15170e4..0000000000 --- a/keyboards/chew/mono/readme.md +++ /dev/null @@ -1,37 +0,0 @@ -## Chew Mono - -[![Chew mono front photo](https://live.staticflickr.com/65535/53759880304_2e97179f76_b.jpg)](https://live.staticflickr.com/65535/53759880304_b9eb4130cf_o.png) -[![Chew mono front photo](https://live.staticflickr.com/65535/53759543226_57e3d6354f_b.jpg)](https://live.staticflickr.com/65535/53759543226_decbf17d2a_o.png) - -A crunched *monobloc* 34 key choc-spaced keyboard. - -- Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) -- Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) -- Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) - - -![fox](https://github.com/flinguenheld/chew/blob/main/images/fox_brown.png?raw=true) - -### Requirements - -- 1x PCB -- 1x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) -- 34x [1N4148W SMD diodes](https://splitkb.com/collections/keyboard-parts/products/smd-diodes) -- 34x switches Choc V1 **only** -- 34x keycaps Choc V1 - -Optional: -- 18x [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) -- 34x [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) -- 1x Back PCB + screws and bolts - -### Bootloader - -The controller has two buttons, so you can enter the bootloader in 2 ways: - -- Maintain the **boot** button and plug the usb cable in. -- Press twice the **reset** button. - -![sausages](https://github.com/flinguenheld/chew/blob/main/images/sausages.png?raw=true) - -[![Chew mono back photo](https://live.staticflickr.com/65535/53758638612_167c55f840_o.png)](https://live.staticflickr.com/65535/53758638612_167c55f840_o.png) diff --git a/keyboards/chew/readme.md b/keyboards/chew/readme.md index d478f86c49..a08398ea0f 100644 --- a/keyboards/chew/readme.md +++ b/keyboards/chew/readme.md @@ -1,12 +1,38 @@ -## Chew Mono +## Chew -[![Chew both](https://live.staticflickr.com/65535/53759959610_2960edcb50_b.jpg)](https://live.staticflickr.com/65535/53759959610_0c255fe2d4_o.png) +![Chew front photo](https://live.staticflickr.com/65535/53681212617_90e4eebaf9_o.jpg) +![Chew front photo](https://live.staticflickr.com/65535/53682442119_1fcea26fef_o.jpg) -A crunched 34 key choc-spaced keyboard. -Built with a RP2040 zero and available in [monobloc](https://github.com/qmk/qmk_firmware/tree/master/keyboards/chew/mono) and [splitted](https://github.com/qmk/qmk_firmware/tree/master/keyboards/chew/split) flavors. +A humble 34 key choc-spaced keyboard. - Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) - Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) - Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) -![fox](https://github.com/flinguenheld/chew/blob/main/images/fox_brown.png?raw=true) + +![squirrel](https://github.com/flinguenheld/chew/blob/main/images/squirrel_brown.png?raw=true) + +### Requirements + +- 2x PCB +- 2x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) +- 2x TRRS jack +- 34 switches Choc V1 **only** +- 34 keycaps Choc V1 + +Optional: +- 23 [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) +- 34 [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) +- 2x Back PCB + screws and bolts +- 2x [Tenting pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) +- 2x [Tripods](https://www.manfrotto.com/us-en/pocket-support-large-black-mp3-bk/) + +### Bootloader + +The controller has two buttons, so you can enter the bootloader in 2 ways: + +- Maintain the **boot** button and plug the usb cable in. +- Press twice the **reset** button. + +![hazelnuts](https://github.com/flinguenheld/chew/blob/main/images/hazelnuts.png?raw=true) +![Chew back photo](https://live.staticflickr.com/65535/53682442124_677ffa6cb5_o.jpg) diff --git a/keyboards/chew/split/config.h b/keyboards/chew/split/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/split/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chew/split/keyboard.json b/keyboards/chew/split/keyboard.json deleted file mode 100644 index 2a0245a9b4..0000000000 --- a/keyboards/chew/split/keyboard.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "keyboard_name": "chew/split", - "matrix_pins": { - "direct": [ - ["GP4", "GP3", "GP2", "GP1", "GP0"], - ["GP15", "GP26", "GP27", "GP28", "GP29"], - ["GP14", "GP13", "GP9", "GP8", "NO_PIN"], - ["GP7", "GP6", "GP5", "NO_PIN", "NO_PIN"] - ] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP10" - }, - "matrix_pins": { - "right": { - "direct": [ - ["GP0", "GP1", "GP2", "GP3", "GP4"], - ["GP29", "GP28", "GP27", "GP26", "GP15"], - ["GP8", "GP9", "GP13", "GP14", "NO_PIN"], - ["GP5", "GP6", "GP7", "NO_PIN", "NO_PIN"] - ] - } - }, - "serial": { - "driver": "vendor", - "pin": "GP11" - }, - "transport": { - "watchdog": true - } - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.25}, - {"matrix": [0, 1], "x": 1, "y": 0.125}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.125}, - {"matrix": [0, 4], "x": 4, "y": 0.25}, - {"matrix": [4, 0], "x": 7, "y": 0.25}, - {"matrix": [4, 1], "x": 8, "y": 0.125}, - {"matrix": [4, 2], "x": 9, "y": 0}, - {"matrix": [4, 3], "x": 10, "y": 0.125}, - {"matrix": [4, 4], "x": 11, "y": 0.25}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.125}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.125}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [5, 0], "x": 7, "y": 1.25}, - {"matrix": [5, 1], "x": 8, "y": 1.125}, - {"matrix": [5, 2], "x": 9, "y": 1}, - {"matrix": [5, 3], "x": 10, "y": 1.125}, - {"matrix": [5, 4], "x": 11, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25}, - {"matrix": [2, 1], "x": 1, "y": 2.125}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.125}, - {"matrix": [6, 0], "x": 8, "y": 2.125}, - {"matrix": [6, 1], "x": 9, "y": 2}, - {"matrix": [6, 2], "x": 10, "y": 2.125}, - {"matrix": [6, 3], "x": 11, "y": 2.25}, - {"matrix": [3, 0], "x": 2.5, "y": 3.25}, - {"matrix": [3, 1], "x": 3.5, "y": 3.5}, - {"matrix": [3, 2], "x": 4.5, "y": 3.75}, - {"matrix": [7, 0], "x": 6.5, "y": 3.75}, - {"matrix": [7, 1], "x": 7.5, "y": 3.5}, - {"matrix": [7, 2], "x": 8.5, "y": 3.25} - ] - } - } -} diff --git a/keyboards/chew/split/readme.md b/keyboards/chew/split/readme.md deleted file mode 100644 index b47d5ac0fa..0000000000 --- a/keyboards/chew/split/readme.md +++ /dev/null @@ -1,38 +0,0 @@ -## Chew Split - -[![Chew](https://live.staticflickr.com/65535/53745130678_97ce7dfedf_b.jpg)](https://live.staticflickr.com/65535/53745130678_2d3318d279_o.png) -[![Chew](https://live.staticflickr.com/65535/53745130683_c98f1a152b_b.jpg)](https://live.staticflickr.com/65535/53745130683_90aa38b210_o.png) - -A crunched 34 key choc-spaced keyboard. - -- Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) -- Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) -- Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) - - -![squirrel](https://github.com/flinguenheld/chew/blob/main/images/squirrel_brown.png?raw=true) - -### Requirements - -- 2x PCB -- 2x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) -- 2x TRRS jack -- 34 switches Choc V1 **only** -- 34 keycaps Choc V1 - -Optional: -- 23 [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) -- 34 [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) -- 2x Back PCB + screws and bolts -- 2x [Tenting pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) -- 2x [Tripods](https://www.manfrotto.com/us-en/pocket-support-large-black-mp3-bk/) - -### Bootloader - -The controller has two buttons, so you can enter the bootloader in 2 ways: - -- Maintain the **boot** button and plug the usb cable in. -- Press twice the **reset** button. - -![hazelnuts](https://github.com/flinguenheld/chew/blob/main/images/hazelnuts.png?raw=true) -[![Chew](https://live.staticflickr.com/65535/53744026347_a95fe6d897_b.jpg)](https://live.staticflickr.com/65535/53744026347_a0a3bbedb4_o.png) diff --git a/keyboards/chickenman/ciel/keyboard.json b/keyboards/chickenman/ciel/keyboard.json index 128e0d4b6d..554d41c394 100644 --- a/keyboards/chickenman/ciel/keyboard.json +++ b/keyboards/chickenman/ciel/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ciel", "manufacturer": "ChickenMan", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xC41C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -26,14 +29,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u2", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi_split_bs_rshift", "60_ansi", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ @@ -175,7 +171,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/chickenman/ciel65/keyboard.json b/keyboards/chickenman/ciel65/keyboard.json index fb89fb936e..8c316759a8 100644 --- a/keyboards/chickenman/ciel65/keyboard.json +++ b/keyboards/chickenman/ciel65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ciel65", "manufacturer": "ChickenMan", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xC41C", @@ -18,13 +19,17 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true }, "rgblight": { "led_count": 14, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/chill/ghoul/chconf.h b/keyboards/chill/ghoul/chconf.h deleted file mode 100644 index 54014b32f5..0000000000 --- a/keyboards/chill/ghoul/chconf.h +++ /dev/null @@ -1,8 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -#define CH_CFG_ST_RESOLUTION 16 -#define CH_CFG_ST_FREQUENCY 10000 - -#include_next diff --git a/keyboards/chill/ghoul/config.h b/keyboards/chill/ghoul/config.h deleted file mode 100644 index 9d5024d876..0000000000 --- a/keyboards/chill/ghoul/config.h +++ /dev/null @@ -1,7 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD2 -#define BACKLIGHT_PWM_CHANNEL 2 -#define BACKLIGHT_PAL_MODE 2 diff --git a/keyboards/chill/ghoul/halconf.h b/keyboards/chill/ghoul/halconf.h deleted file mode 100644 index cb37633eb6..0000000000 --- a/keyboards/chill/ghoul/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/chill/ghoul/keyboard.json b/keyboards/chill/ghoul/keyboard.json deleted file mode 100644 index 321b7d19bd..0000000000 --- a/keyboards/chill/ghoul/keyboard.json +++ /dev/null @@ -1,406 +0,0 @@ -{ - "manufacturer": "Chill", - "keyboard_name": "Ghoul", - "maintainer": "chillKB", - "url": "https://github.com/chillKB/ghoulTKL", - "backlight": { - "driver": "pwm", - "pin": "B3" - }, - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "backlight": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "B4", - "on_state": 0, - "scroll_lock": "B6" - }, - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A6", "A5", "A15", "A1", "A0"], - "rows": ["B7", "B9", "B8", "A7", "A4", "A3"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "pid": "0xFC87", - "vid": "0xC01D" - }, - "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"], - "layout_aliases": { - "LAYOUT_all": "LAYOUT_tkl_ansi_split_bs_rshift" - }, - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5}, - {"matrix": [3, 13], "x": 14, "y": 1.5}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.5}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5}, - {"matrix": [3, 13], "x": 14, "y": 1.5}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.5}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/chill/ghoul/keymaps/default/keymap.c b/keyboards/chill/ghoul/keymaps/default/keymap.c deleted file mode 100644 index 9fb9329eb1..0000000000 --- a/keyboards/chill/ghoul/keymaps/default/keymap.c +++ /dev/null @@ -1,24 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______, - BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/chill/ghoul/mcuconf.h b/keyboards/chill/ghoul/mcuconf.h deleted file mode 100644 index 75267add9b..0000000000 --- a/keyboards/chill/ghoul/mcuconf.h +++ /dev/null @@ -1,11 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM2 -#define STM32_PWM_USE_TIM2 TRUE - -#undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 14 diff --git a/keyboards/chill/ghoul/readme.md b/keyboards/chill/ghoul/readme.md deleted file mode 100644 index 4dc2b544b8..0000000000 --- a/keyboards/chill/ghoul/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Ghoul TKL - -![image](https://i.imgur.com/Y39mNA4.jpeg) - -A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported. - -* Keyboard Maintainer: [chillKB](https://github.com/chillKB) -* Hardware Supported: Ghoul TKL PCB -* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL) - -Make example for this keyboard (after setting up your build environment): - - make chill/ghoul:default - -Flashing example for this keyboard: - - make chill/ghoul: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 top left key (usually Escape) and plug in the keyboard -* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/chlx/lfn_merro60/keyboard.json b/keyboards/chlx/lfn_merro60/keyboard.json index 6533e3d37f..a35b598f0e 100644 --- a/keyboards/chlx/lfn_merro60/keyboard.json +++ b/keyboards/chlx/lfn_merro60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -32,24 +34,7 @@ "pid": "0x0604", "vid": "0x4358" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -831,7 +816,7 @@ {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/chlx/merro60/keyboard.json b/keyboards/chlx/merro60/keyboard.json index 1a547a5230..700af7e7e7 100644 --- a/keyboards/chlx/merro60/keyboard.json +++ b/keyboards/chlx/merro60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -31,16 +33,9 @@ "LAYOUT_default": "LAYOUT_all", "LAYOUT_hhkb": "LAYOUT_60_hhkb", "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", - "LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -465,7 +460,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c index e7266d227e..557711eeed 100644 --- a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c +++ b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chlx/piche60/keyboard.json b/keyboards/chlx/piche60/keyboard.json deleted file mode 100644 index 462338e41c..0000000000 --- a/keyboards/chlx/piche60/keyboard.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "manufacturer": "chlx bsmt", - "keyboard_name": "piche60", - "maintainer": "gaclee4b", - "bootloader": "atmel-dfu", - "bootmagic": { - "matrix": [1, 1] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "indicators": { - "caps_lock": "C7", - "compose": "B5", - "num_lock": "B6", - "scroll_lock": "C6", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["D0", "F5", "F7", "E6", "F0", "D4", "D5", "D7", "D3", "D2", "D1", "B7", "B3", "B2", "B1", "B0"], - "rows": ["F4", "F1", "F6", "D6", "B4"] - }, - "processor": "atmega32u4", - "url": "www.github.com/gaclee3b", - "usb": { - "device_version": "1.1.0", - "pid": "0x0611", - "vid": "0x4358" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [1, 1], "x": 0.5, "y": 0}, - - {"matrix": [0, 1], "x": 1.75, "y": 0.25}, - {"matrix": [0, 2], "x": 2.75, "y": 0.25}, - {"matrix": [0, 3], "x": 3.75, "y": 0}, - {"matrix": [0, 4], "x": 4.75, "y": 0.25}, - {"matrix": [0, 5], "x": 5.75, "y": 0.25}, - {"matrix": [0, 6], "x": 6.75, "y": 0.25}, - {"matrix": [0, 7], "x": 7.75, "y": 0.25}, - - {"matrix": [0, 8], "x": 11, "y": 0.25}, - {"matrix": [0, 9], "x": 12, "y": 0.25}, - {"matrix": [0, 10], "x": 13, "y": 0.25}, - {"matrix": [0, 11], "x": 14, "y": 0.25}, - {"matrix": [0, 12], "x": 15, "y": 0}, - {"matrix": [0, 13], "x": 16, "y": 0.25}, - {"matrix": [0, 14], "x": 17, "y": 0.25}, - {"matrix": [0, 15], "x": 18, "y": 0.25}, - - {"matrix": [2, 1], "x": 0.25, "y": 1}, - - {"matrix": [1, 2], "x": 1.5, "y": 1.25, "w": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4.25, "y": 1.25}, - {"matrix": [1, 5], "x": 5.25, "y": 1.25}, - {"matrix": [1, 6], "x": 6.25, "y": 1.25}, - {"matrix": [1, 7], "x": 7.25, "y": 1.25}, - - {"matrix": [1, 8], "x": 10.5, "y": 1.25}, - {"matrix": [1, 9], "x": 11.5, "y": 1.25}, - {"matrix": [1, 10], "x": 12.5, "y": 1.25}, - {"matrix": [1, 11], "x": 13.5, "y": 1.25}, - {"matrix": [1, 12], "x": 14.75, "y": 1.25}, - {"matrix": [1, 13], "x": 15.75, "y": 1.25}, - {"matrix": [1, 14], "x": 16.75, "y": 1.25}, - {"matrix": [1, 15], "x": 17.75, "y": 1.25, "w": 1.5}, - - {"matrix": [3, 1], "x": 0, "y": 2}, - - {"matrix": [2, 2], "x": 1.5, "y": 2.25, "w": 1.75}, - {"matrix": [2, 3], "x": 3.25, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - - {"matrix": [2, 8], "x": 10.75, "y": 2.25}, - {"matrix": [2, 9], "x": 11.75, "y": 2.25}, - {"matrix": [2, 10], "x": 12.75, "y": 2.25}, - {"matrix": [2, 11], "x": 13.75, "y": 2.25}, - {"matrix": [2, 12], "x": 15.25, "y": 2.25}, - {"matrix": [2, 13], "x": 16.25, "y": 2.25}, - {"matrix": [2, 14], "x": 17.25, "y": 2.25, "w": 2.25}, - - {"matrix": [3, 2], "x": 1.5, "y": 3.25, "w": 2.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 5, "y": 3.25}, - {"matrix": [3, 5], "x": 6, "y": 3.25}, - {"matrix": [3, 6], "x": 7, "y": 3.25}, - {"matrix": [3, 7], "x": 8, "y": 3.25}, - - {"matrix": [3, 8], "x": 10.25, "y": 3.25}, - {"matrix": [3, 9], "x": 11.25, "y": 3.25}, - {"matrix": [3, 10], "x": 12.25, "y": 3.25}, - {"matrix": [3, 11], "x": 13.25, "y": 3.25}, - {"matrix": [3, 12], "x": 15, "y": 3.25}, - {"matrix": [3, 13], "x": 16, "y": 3.25}, - {"matrix": [3, 14], "x": 17, "y": 3.25, "w": 1.75}, - {"matrix": [3, 15], "x": 18.75, "y": 3.25}, - - {"matrix": [4, 2], "x": 1.5, "y": 4.25, "w": 1.5}, - {"matrix": [4, 3], "x": 3, "y": 4.25, "w": 1.25}, - {"matrix": [4, 4], "x": 5, "y": 4.25, "w": 1.5}, - {"matrix": [4, 6], "x": 6.5, "y": 4.25, "w": 2}, - {"matrix": [4, 7], "x": 8.5, "y": 4.25}, - {"matrix": [4, 9], "x": 10.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 11], "x": 13, "y": 4.25, "w": 1.5}, - {"matrix": [4, 13], "x": 15.5, "y": 4.25, "w": 1.25}, - {"matrix": [4, 14], "x": 16.75, "y": 4.25, "w": 1.25}, - {"matrix": [4, 15], "x": 18, "y": 4.25, "w": 1.5} - ] - } - } -} diff --git a/keyboards/chlx/piche60/keymaps/default/keymap.c b/keyboards/chlx/piche60/keymaps/default/keymap.c deleted file mode 100644 index dfd3426a90..0000000000 --- a/keyboards/chlx/piche60/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2024 Alexander Lee - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_ESC, 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_BSPC, - KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; diff --git a/keyboards/chlx/piche60/readme.md b/keyboards/chlx/piche60/readme.md deleted file mode 100644 index de659b0ff7..0000000000 --- a/keyboards/chlx/piche60/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# piche60 - -![piche60 PCB](https://i.imgur.com/CBeJSUy.jpeg) - -- 60% alice format keyboard pcb with USB-C and unified daughterboard compatibility. -- Layout adds 3 additional keys in the palm area voids of traditional alice format. -- USB-C can be snapped off and converted into an ai03 C3 compatible daughterboard. -- Left and right halves can be snapped off and connected through 14-pin JST-SH interfaces. -- PCB can be manufactured with top-side USB-C for compatibility with legacy alice PCBs. - -Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b) -Hardware Supported: chlx PCB piche60.x.x.x; top-side USB version compatible with most keyboard cases using legacy alice format PCBs (i.e. lubrigante) -Hardware Availability: sales are typically done in-stock as bulk listings on reddit's mechanical keyboard market (r/mechmarket) - -Make example for this keyboard (after setting up your build environment): - - make chlx/piche60:default - -Flashing example for this keyboard: - - make chlx/piche60: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 bootloader mode by any of the following options - -- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard -- When already plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region -- When already plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot) - diff --git a/keyboards/chlx/ppr_merro60/keyboard.json b/keyboards/chlx/ppr_merro60/keyboard.json index 6ffd1614b6..f8f45232a1 100644 --- a/keyboards/chlx/ppr_merro60/keyboard.json +++ b/keyboards/chlx/ppr_merro60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -32,24 +34,7 @@ "pid": "0x0603", "vid": "0x4358" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -831,7 +816,7 @@ {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/chlx/ppr_merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/ppr_merro60/keymaps/tsangan/keymap.c index 53f0cd5236..73282416ab 100644 --- a/keyboards/chlx/ppr_merro60/keymaps/tsangan/keymap.c +++ b/keyboards/chlx/ppr_merro60/keymaps/tsangan/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT, _______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, diff --git a/keyboards/chlx/str_merro60/keyboard.json b/keyboards/chlx/str_merro60/keyboard.json index 4310f81d2e..cfd0286dd3 100644 --- a/keyboards/chlx/str_merro60/keyboard.json +++ b/keyboards/chlx/str_merro60/keyboard.json @@ -53,16 +53,9 @@ "LAYOUT_default": "LAYOUT_all", "LAYOUT_hhkb": "LAYOUT_60_hhkb", "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", - "LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -487,7 +480,7 @@ {"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c index 56888fefc8..1ee50bdaf0 100644 --- a/keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c +++ b/keyboards/chlx/str_merro60/keymaps/tsangan/keymap.c @@ -19,14 +19,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/chocofly/v1/keyboard.json b/keyboards/chocofly/v1/keyboard.json index 7765d721f4..195d1e9a9f 100644 --- a/keyboards/chocofly/v1/keyboard.json +++ b/keyboards/chocofly/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": false, "mousekey": false, @@ -25,7 +27,8 @@ {"pin_a": "D3", "pin_b": "D2", "resolution": 2} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/chocv/keyboard.json b/keyboards/chocv/keyboard.json index 596b80973b..670e46f817 100644 --- a/keyboards/chocv/keyboard.json +++ b/keyboards/chocv/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chord/zero/keyboard.json b/keyboards/chord/zero/keyboard.json index 5b957a8e53..63e74546d5 100644 --- a/keyboards/chord/zero/keyboard.json +++ b/keyboards/chord/zero/keyboard.json @@ -10,6 +10,8 @@ "maintainer": "sol", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c index 12b4ab6110..2e014dbe72 100644 --- a/keyboards/chosfox/cf81/cf81.c +++ b/keyboards/chosfox/cf81/cf81.c @@ -164,7 +164,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/chosfox/cf81/halconf.h b/keyboards/chosfox/cf81/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/chosfox/cf81/halconf.h +++ b/keyboards/chosfox/cf81/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/chosfox/cf81/keyboard.json b/keyboards/chosfox/cf81/keyboard.json index 333841fdf1..aae2421a03 100644 --- a/keyboards/chosfox/cf81/keyboard.json +++ b/keyboards/chosfox/cf81/keyboard.json @@ -3,16 +3,12 @@ "manufacturer": "CHOSFOX", "maintainer": "jonylee@hfd", "usb": { + "force_nkro": true, "vid": "0xFFFE", "pid": "0x0012", "device_version": "1.0.0", "suspend_wakeup_delay": 400 }, - "host": { - "default": { - "nkro": true - } - }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { @@ -26,6 +22,8 @@ "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "encoder": true, "rgb_matrix": true diff --git a/keyboards/chosfox/cf81/keymaps/default/keymap.c b/keyboards/chosfox/cf81/keymaps/default/keymap.c index 26a9952410..030ef2e2c1 100644 --- a/keyboards/chosfox/cf81/keymaps/default/keymap.c +++ b/keyboards/chosfox/cf81/keymaps/default/keymap.c @@ -37,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, KC_END, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, - _______, _______,DF(MAC_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______, _______,DF(MAC_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, @@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT( /* FN */ _______, 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, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, KC_END, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, - _______,DF(WIN_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, EE_CLR, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______,DF(WIN_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD) }; #if defined(ENCODER_MAP_ENABLE) diff --git a/keyboards/chouchou/keyboard.json b/keyboards/chouchou/keyboard.json index 1d6236c2ea..726f190aab 100644 --- a/keyboards/chouchou/keyboard.json +++ b/keyboards/chouchou/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "rp2040", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/chromatonemini/keyboard.json b/keyboards/chromatonemini/keyboard.json index 454938ca0c..963496a0c0 100644 --- a/keyboards/chromatonemini/keyboard.json +++ b/keyboards/chromatonemini/keyboard.json @@ -12,6 +12,7 @@ "extrakey": true, "encoder": true, "bootmagic": false, + "console": false, "mousekey": false, "nkro": false }, diff --git a/keyboards/chromatonemini/rgb_matrix_kb.inc b/keyboards/chromatonemini/rgb_matrix_kb.inc index ee9e8af427..09877e1a31 100644 --- a/keyboards/chromatonemini/rgb_matrix_kb.inc +++ b/keyboards/chromatonemini/rgb_matrix_kb.inc @@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(my_party_rocks) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t my_solid_reactive_multiwide_col_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV my_solid_reactive_multiwide_col_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick + dist; dx = dx < 0 ? dx * -1 : dx; dx = dx * 16 > 255 ? 255 : dx * 16; @@ -27,7 +27,7 @@ bool my_solid_reactive_col(effect_params_t* params) { uint16_t max_tick = 65535 / rgb_matrix_config.speed; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint16_t tick = max_tick; // Reverse search to find most recent key hit for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) { @@ -39,7 +39,7 @@ bool my_solid_reactive_col(effect_params_t* params) { uint16_t offset = scale16by8(tick, rgb_matrix_config.speed); hsv.h += qsub8(130, offset); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; @@ -47,8 +47,8 @@ bool my_solid_reactive_col(effect_params_t* params) { bool my_party_rocks(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); // rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); return led_max < RGB_MATRIX_LED_COUNT; diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json index d656997b78..00fc2d1bad 100644 --- a/keyboards/churrosoft/deck8/info.json +++ b/keyboards/churrosoft/deck8/info.json @@ -12,6 +12,7 @@ }, "features": { "bootmagic": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cipulot/chroma/keyboard.json b/keyboards/cipulot/chroma/keyboard.json index b029d324f4..5d418fdce1 100644 --- a/keyboards/cipulot/chroma/keyboard.json +++ b/keyboards/cipulot/chroma/keyboard.json @@ -25,20 +25,7 @@ }, "vid": "0x6369" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], + "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [ @@ -554,7 +541,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cipulot/common/common_cipulot.mk b/keyboards/cipulot/common/common_cipulot.mk deleted file mode 100644 index a1bbedab18..0000000000 --- a/keyboards/cipulot/common/common_cipulot.mk +++ /dev/null @@ -1,8 +0,0 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c - -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += via_ec.c -endif diff --git a/keyboards/cipulot/common/ec_board.c b/keyboards/cipulot/common/ec_board.c index b15543e49e..d9ba197589 100644 --- a/keyboards/cipulot/common/ec_board.c +++ b/keyboards/cipulot/common/ec_board.c @@ -17,10 +17,6 @@ #include "ec_switch_matrix.h" #include "keyboard.h" -#ifdef SPLIT_KEYBOARD -# include "transactions.h" -#endif - void eeconfig_init_kb(void) { // Default values eeprom_ec_config.actuation_mode = DEFAULT_ACTUATION_MODE; @@ -36,7 +32,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_update_kb_datablock(&eeprom_ec_config); eeconfig_init_user(); } @@ -44,7 +40,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_read_kb_datablock(&eeprom_ec_config); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; @@ -61,14 +57,8 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } -#ifdef SPLIT_KEYBOARD - transaction_register_rpc(RPC_ID_VIA_CMD, via_cmd_slave_handler); -#endif - keyboard_post_init_user(); } diff --git a/keyboards/cipulot/common/ec_switch_matrix.c b/keyboards/cipulot/common/ec_switch_matrix.c index 25c745703b..33123bd236 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.c +++ b/keyboards/cipulot/common/ec_switch_matrix.c @@ -37,14 +37,8 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; -#ifdef UNUSED_POSITIONS_LIST -const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; -# define UNUSED_POSITIONS_COUNT ARRAY_SIZE(UNUSED_POSITIONS) -#endif - #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) - // Checks for the correctness of the configuration _Static_assert(ARRAY_SIZE(amux_en_pins) == AMUX_COUNT, "AMUX_EN_PINS doesn't have the minimum number of bits required to enable all the multiplexers available"); // Check that number of select pins is enough to select all the channels @@ -76,16 +70,6 @@ void init_amux(void) { } } -// Disable all the unused rows -void disable_unused_row(uint8_t row) { - // disable all the other rows apart from the current selected one - for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { - if (idx != row) { - gpio_write_pin_low(row_pins[idx]); - } - } -} - // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -174,10 +158,6 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -200,15 +180,11 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -290,7 +266,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -304,7 +280,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -336,18 +312,6 @@ void ec_print_matrix(void) { print("\n"); } -// Check if the position is unused -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col) { - for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { - if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { - return true; - } - } - return false; -} -#endif - // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/common/ec_switch_matrix.h b/keyboards/cipulot/common/ec_switch_matrix.h index 8fbca372bf..4b424911da 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.h +++ b/keyboards/cipulot/common/ec_switch_matrix.h @@ -37,13 +37,11 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale - uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -60,7 +58,6 @@ extern ec_config_t ec_config; void init_row(void); void init_amux(void); -void disable_unused_row(uint8_t row); void select_amux_channel(uint8_t channel, uint8_t col); void disable_unused_amux(uint8_t channel); void discharge_capacitor(void); @@ -74,11 +71,3 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); - -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col); -#endif - -#ifdef SPLIT_KEYBOARD -void via_cmd_slave_handler(uint8_t m2s_size, const void* m2s_buffer, uint8_t s2m_size, void* s2m_buffer); -#endif diff --git a/keyboards/cipulot/common/eeprom_tools.h b/keyboards/cipulot/common/eeprom_tools.h new file mode 100644 index 0000000000..b3c90d8759 --- /dev/null +++ b/keyboards/cipulot/common/eeprom_tools.h @@ -0,0 +1,26 @@ +/* Copyright 2023 Cipulot + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "eeprom.h" + +#if (EECONFIG_KB_DATA_SIZE) > 0 +# define EEPROM_KB_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_KB_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) +#endif + +#if (EECONFIG_USER_DATA_SIZE) > 0 +# define EEPROM_USER_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_USER_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) +#endif diff --git a/keyboards/cipulot/common/via_ec.c b/keyboards/cipulot/common/via_ec.c index 7be6edd026..ce4e813f75 100644 --- a/keyboards/cipulot/common/via_ec.c +++ b/keyboards/cipulot/common/via_ec.c @@ -13,15 +13,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include "eeprom_tools.h" #include "ec_switch_matrix.h" #include "action.h" #include "print.h" #include "via.h" -#ifdef SPLIT_KEYBOARD -# include "transactions.h" -#endif - #ifdef VIA_ENABLE void ec_rescale_values(uint8_t item); @@ -53,12 +50,6 @@ void via_config_set_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); -# ifdef SPLIT_KEYBOARD - if (is_keyboard_master()) { - transaction_rpc_send(RPC_ID_VIA_CMD, 30, data); - } -# endif - switch (*value_id) { case id_actuation_mode: { eeprom_ec_config.actuation_mode = value_data[0]; @@ -72,7 +63,7 @@ void via_config_set_value(uint8_t *data) { uprintf("# Actuation Mode: Rapid Trigger #\n"); uprintf("#################################\n"); } - eeconfig_update_kb_datablock_field(eeprom_ec_config, actuation_mode); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, actuation_mode); break; } case id_mode_0_actuation_threshold: { @@ -124,8 +115,6 @@ void via_config_set_value(uint8_t *data) { ec_rescale_values(0); ec_rescale_values(1); ec_rescale_values(2); - ec_rescale_values(3); - ec_rescale_values(4); uprintf("#############################\n"); uprintf("# Noise floor data acquired #\n"); uprintf("#############################\n"); @@ -135,14 +124,13 @@ void via_config_set_value(uint8_t *data) { case id_show_calibration_data: { if (value_data[0] == 0) { ec_show_calibration_data(); + break; } - break; } case id_clear_bottoming_calibration_data: { if (value_data[0] == 0) { ec_clear_bottoming_calibration_data(); } - break; } default: { // Unhandled value. @@ -252,22 +240,6 @@ void ec_rescale_values(uint8_t item) { } } break; - // Rescale the Rapid Trigger mode actuation offsets - case 3: - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - } - } - break; - // Rescale the Rapid Trigger mode release offsets - case 4: - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - } - } - break; default: // Unhandled item. @@ -286,13 +258,11 @@ void ec_save_threshold_data(uint8_t option) { // Save Rapid Trigger mode thresholds and rescale them for runtime usage else if (option == 1) { eeprom_ec_config.mode_1_initial_deadzone_offset = ec_config.mode_1_initial_deadzone_offset; - eeprom_ec_config.mode_1_actuation_offset = ec_config.mode_1_actuation_offset; - eeprom_ec_config.mode_1_release_offset = ec_config.mode_1_release_offset; + eeprom_ec_config.mode_1_actuation_offset = ec_config.mode_1_actuation_offset; + eeprom_ec_config.mode_1_release_offset = ec_config.mode_1_release_offset; ec_rescale_values(2); - ec_rescale_values(3); - ec_rescale_values(4); } - eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_update_kb_datablock(&eeprom_ec_config); uprintf("####################################\n"); uprintf("# New thresholds applied and saved #\n"); uprintf("####################################\n"); @@ -302,12 +272,11 @@ void ec_save_threshold_data(uint8_t option) { void ec_save_bottoming_reading(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { - // If the calibration starter flag is still set on the key, it indicates that the key was skipped during the scan because it is not physically present. - // If the flag is not set, it means a bottoming reading was taken. If this reading doesn't exceed the noise floor by the BOTTOMING_CALIBRATION_THRESHOLD, it likely indicates one of the following: - // 1. The key is part of an alternative layout and is not being pressed. - // 2. The key is in the current layout but is not being pressed. - // In both conditions we should set the bottoming reading to the maximum value to avoid false positives. - if (ec_config.bottoming_calibration_starter[row][col] || ec_config.bottoming_reading[row][col] < (ec_config.noise_floor[row][col] + BOTTOMING_CALIBRATION_THRESHOLD)) { + // If the bottom reading doesn't go over the noise floor by BOTTOMING_CALIBRATION_THRESHOLD, it is likely that: + // 1. The key is not actually in the matrix + // 2. The key is on an alternative layout, therefore not being pressed + // 3. The key in in the current layout but not being pressed + if (ec_config.bottoming_reading[row][col] < (ec_config.noise_floor[row][col] + BOTTOMING_CALIBRATION_THRESHOLD)) { eeprom_ec_config.bottoming_reading[row][col] = 1023; } else { eeprom_ec_config.bottoming_reading[row][col] = ec_config.bottoming_reading[row][col]; @@ -318,9 +287,7 @@ void ec_save_bottoming_reading(void) { ec_rescale_values(0); ec_rescale_values(1); ec_rescale_values(2); - ec_rescale_values(3); - ec_rescale_values(4); - eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_update_kb_datablock(&eeprom_ec_config); } // Show the calibration data @@ -393,14 +360,4 @@ void ec_clear_bottoming_calibration_data(void) { uprintf("######################################\n"); } -# ifdef SPLIT_KEYBOARD -void via_cmd_slave_handler(uint8_t m2s_size, const void *m2s_buffer, uint8_t s2m_size, void *s2m_buffer) { - if (m2s_size == (RAW_EPSIZE-2)) { - via_config_set_value((uint8_t *)m2s_buffer); - } else { - uprintf("Unexpected response in slave handler\n"); - } -} -# endif - #endif // VIA_ENABLE diff --git a/keyboards/cipulot/ec1_at/config.h b/keyboards/cipulot/ec1_at/config.h deleted file mode 100644 index 5e7af3fac5..0000000000 --- a/keyboards/cipulot/ec1_at/config.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define MATRIX_ROWS 5 -#define MATRIX_COLS 21 - -#define UNUSED_POSITIONS_LIST { {2, 16}, {4, 5}, {4, 7}, {4, 9}, {4, 12}, {4, 16} } - -#define MATRIX_ROW_PINS {A8, B15, B14, B12, B13} - -#define AMUX_COUNT 2 -#define AMUX_MAX_COLS_COUNT 16 - -#define AMUX_EN_PINS {B5, A15} - -#define AMUX_SEL_PINS {B6, B7, B4, B3} - -#define AMUX_COL_CHANNELS_SIZES {16, 5} - -#define AMUX_0_COL_CHANNELS {5, 6, 7, 4, 3, 2, 1, 0, 8, 15, 14, 13, 12, 10, 9, 11} - -#define AMUX_1_COL_CHANNELS {4, 2, 1, 0, 3} - -#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS - -#define DISCHARGE_PIN A2 -#define ANALOG_PORT A3 - -#define DEFAULT_ACTUATION_MODE 0 -#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 -#define DEFAULT_MODE_0_RELEASE_LEVEL 500 -#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL -#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 -#define DEFAULT_MODE_1_RELEASE_OFFSET 70 -#define DEFAULT_EXTREMUM 1023 -#define EXPECTED_NOISE_FLOOR 0 -#define NOISE_FLOOR_THRESHOLD 50 -#define BOTTOMING_CALIBRATION_THRESHOLD 50 -#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 -#define DEFAULT_BOTTOMING_READING 1023 -#define DEFAULT_CALIBRATION_STARTER true - -#define DISCHARGE_TIME 10 - -#define EECONFIG_KB_DATA_SIZE 219 -#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/cipulot/ec1_at/halconf.h b/keyboards/cipulot/ec1_at/halconf.h deleted file mode 100644 index 6b63cb5af9..0000000000 --- a/keyboards/cipulot/ec1_at/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_ADC TRUE - -#include_next diff --git a/keyboards/cipulot/ec1_at/keyboard.json b/keyboards/cipulot/ec1_at/keyboard.json deleted file mode 100644 index 9a7a0ae04e..0000000000 --- a/keyboards/cipulot/ec1_at/keyboard.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "manufacturer": "Cipulot", - "keyboard_name": "EC1-AT", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 16384 - } - }, - "features": { - "bootmagic": false, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "processor": "STM32F411", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6BCE", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [0, 8], "x": 8.25, "y": 0}, - {"matrix": [0, 9], "x": 9.25, "y": 0}, - {"matrix": [0, 10], "x": 10.25, "y": 0}, - {"matrix": [0, 11], "x": 11.25, "y": 0}, - {"matrix": [0, 12], "x": 12.25, "y": 0}, - {"matrix": [0, 13], "x": 13.25, "y": 0}, - {"matrix": [0, 14], "x": 14.25, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.5, "y": 0}, - {"matrix": [0, 18], "x": 18.5, "y": 0}, - {"matrix": [0, 19], "x": 19.5, "y": 0}, - {"matrix": [0, 20], "x": 20.5, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 10], "x": 10.75, "y": 1}, - {"matrix": [1, 11], "x": 11.75, "y": 1}, - {"matrix": [1, 12], "x": 12.75, "y": 1}, - {"matrix": [1, 13], "x": 13.75, "y": 1}, - {"matrix": [1, 14], "x": 14.75, "y": 1}, - {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 0.75}, - {"matrix": [1, 16], "x": 16.5, "y": 1, "w": 0.75}, - {"matrix": [1, 17], "x": 17.5, "y": 1}, - {"matrix": [1, 18], "x": 18.5, "y": 1}, - {"matrix": [1, 19], "x": 19.5, "y": 1}, - {"matrix": [1, 20], "x": 20.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"matrix": [2, 3], "x": 4, "y": 2}, - {"matrix": [2, 4], "x": 5, "y": 2}, - {"matrix": [2, 5], "x": 6, "y": 2}, - {"matrix": [2, 6], "x": 7, "y": 2}, - {"matrix": [2, 7], "x": 8, "y": 2}, - {"matrix": [2, 8], "x": 9, "y": 2}, - {"matrix": [2, 9], "x": 10, "y": 2}, - {"matrix": [2, 10], "x": 11, "y": 2}, - {"matrix": [2, 11], "x": 12, "y": 2}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2, "w": 1.25}, - {"matrix": [2, 17], "x": 17.5, "y": 2}, - {"matrix": [2, 18], "x": 18.5, "y": 2}, - {"matrix": [2, 19], "x": 19.5, "y": 2}, - {"matrix": [2, 20], "x": 20.5, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.5, "y": 3}, - {"matrix": [3, 4], "x": 4.5, "y": 3}, - {"matrix": [3, 5], "x": 5.5, "y": 3}, - {"matrix": [3, 6], "x": 6.5, "y": 3}, - {"matrix": [3, 7], "x": 7.5, "y": 3}, - {"matrix": [3, 8], "x": 8.5, "y": 3}, - {"matrix": [3, 9], "x": 9.5, "y": 3}, - {"matrix": [3, 10], "x": 10.5, "y": 3}, - {"matrix": [3, 11], "x": 11.5, "y": 3}, - {"matrix": [3, 12], "x": 12.5, "y": 3}, - {"matrix": [3, 13], "x": 13.5, "y": 3}, - {"matrix": [3, 14], "x": 14.5, "y": 3}, - {"matrix": [3, 15], "x": 15.5, "y": 3, "w": 0.75}, - {"matrix": [3, 16], "x": 16.25, "y": 3}, - {"matrix": [3, 17], "x": 17.5, "y": 3}, - {"matrix": [3, 18], "x": 18.5, "y": 3}, - {"matrix": [3, 19], "x": 19.5, "y": 3}, - {"matrix": [3, 20], "x": 20.5, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 3], "x": 3.75, "y": 4}, - {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.5}, - {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, - {"matrix": [4, 14], "x": 14.75, "y": 4}, - {"matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, - {"matrix": [4, 17], "x": 17.5, "y": 4}, - {"matrix": [4, 18], "x": 18.5, "y": 4}, - {"matrix": [4, 19], "x": 19.5, "y": 4}, - {"matrix": [4, 20], "x": 20.5, "y": 4} - ] - } - } -} diff --git a/keyboards/cipulot/ec1_at/keymaps/default/keymap.c b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c deleted file mode 100644 index b0e5e3aac3..0000000000 --- a/keyboards/cipulot/ec1_at/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT( - _______, _______, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - _______, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_P7, KC_P8, KC_P9, KC_PMNS, - _______, _______, 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_NUHS, KC_ENTER, KC_P4, KC_P5, KC_P6, KC_PPLS, - _______, _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, - _______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_P0, KC_PDOT, KC_PENT), - - [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_DEL, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec1_at/mcuconf.h b/keyboards/cipulot/ec1_at/mcuconf.h deleted file mode 100644 index 1679d3fbc0..0000000000 --- a/keyboards/cipulot/ec1_at/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_ADC_USE_ADC1 -#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec1_at/post_rules.mk b/keyboards/cipulot/ec1_at/post_rules.mk deleted file mode 100644 index 5dba48cc5f..0000000000 --- a/keyboards/cipulot/ec1_at/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec1_at/readme.md b/keyboards/cipulot/ec1_at/readme.md deleted file mode 100644 index 8e2081dae7..0000000000 --- a/keyboards/cipulot/ec1_at/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# EC1-AT - -![EC1-AT](https://i.imgur.com/69OrQsh.png) - -EC version of the W1-AT keyboard. - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: EC1-AT -* Hardware Availability: TBD - -Make example for this keyboard (after setting up your build environment): - - make cipulot/ec1_at:default - -Flashing example for this keyboard: - - make cipulot/ec1_at: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 2 ways: - -* **Physical reset**: Long press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec1_at/rules.mk b/keyboards/cipulot/ec1_at/rules.mk deleted file mode 100644 index 1716098b3e..0000000000 --- a/keyboards/cipulot/ec1_at/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OPT = 3 diff --git a/keyboards/cipulot/ec_23u/post_rules.mk b/keyboards/cipulot/ec_23u/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_23u/post_rules.mk +++ b/keyboards/cipulot/ec_23u/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_23u/rules.mk b/keyboards/cipulot/ec_23u/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_23u/rules.mk +++ b/keyboards/cipulot/ec_23u/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_60/config.h b/keyboards/cipulot/ec_60/config.h index a409df2dfc..2452550143 100644 --- a/keyboards/cipulot/ec_60/config.h +++ b/keyboards/cipulot/ec_60/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {4, 3}, {4, 8} } - #define MATRIX_ROW_PINS \ { B15, A8, B0, A7, B1 } diff --git a/keyboards/cipulot/ec_60/post_rules.mk b/keyboards/cipulot/ec_60/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_60/post_rules.mk +++ b/keyboards/cipulot/ec_60/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_60/rules.mk b/keyboards/cipulot/ec_60/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_60/rules.mk +++ b/keyboards/cipulot/ec_60/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_60x/config.h b/keyboards/cipulot/ec_60x/config.h index 1784076d21..1a8d105d68 100644 --- a/keyboards/cipulot/ec_60x/config.h +++ b/keyboards/cipulot/ec_60x/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {2, 14}, {4, 3}, {4, 5}, {4, 7}, {4, 9}, {4, 14} } - #define MATRIX_ROW_PINS \ { A8, A15, B12, B8, B9} diff --git a/keyboards/cipulot/ec_60x/keyboard.json b/keyboards/cipulot/ec_60x/keyboard.json index 550bca953a..1d121800fc 100644 --- a/keyboards/cipulot/ec_60x/keyboard.json +++ b/keyboards/cipulot/ec_60x/keyboard.json @@ -40,7 +40,7 @@ "static_gradient": true, "twinkle": true }, - "led_count": 19 + "led_count": 22 }, "usb": { "device_version": "0.0.1", diff --git a/keyboards/cipulot/ec_60x/matrix_diagram.md b/keyboards/cipulot/ec_60x/matrix_diagram.md deleted file mode 100644 index 92fae552a3..0000000000 --- a/keyboards/cipulot/ec_60x/matrix_diagram.md +++ /dev/null @@ -1,44 +0,0 @@ -# Matrix Diagram for Cipulot EC 60 - -``` - ┌───────┐ - 2u Backpace │0E │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐1E │ ISO Enter -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ -├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ -│40 │41 │42 │44 │46 │48 │4A │4B │4C │4D │ -└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ -Shift Row: -┌────────┐ ┌──────────┐ -│30 │ 2.25u LShift 2.75u RShift │3D │ -└────────┘ └──────────┘ - ┌───┬──────┐ - 1u-1.75u RShift │3C │3D │ - └───┴──────┘ -Bottom Row: -┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ -│40 │41 │42 │46 │4A │4B │4C │4D │ 6.25u Spacebar -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│40** │41*│42 │46 │4B │4C*│4D** │ Tsangan/WKL*/HHKB** -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐ -│40* │41 │42 │46 │4A │4B │4C*│4D* │ Infinity/True HHKB* -└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ - ┌───────────┬───────────┐ - │44 │48 │ Split 6u Spacebar (3u-3u) - └───────────┴───────────┘ - ┌─────────┬───┬─────────┐ - │44 │46 │48 │ Split 6u Spacebar (2.5u-1u-2.5u) - └─────────┴───┴─────────┘ -┌─────┬───┬─────┬─────┬─────────┬─────┬─────┬─────┬───┬─────┐ -│40 │41*│42 │44 │46 │48 │4A │4B │4C*│4D │ JIS/JIS WKL* -└─────┴───┴─────┴─────┴─────────┴─────┴─────┴─────┴───┴─────┘ -``` diff --git a/keyboards/cipulot/ec_60x/post_rules.mk b/keyboards/cipulot/ec_60x/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_60x/post_rules.mk +++ b/keyboards/cipulot/ec_60x/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_60x/rules.mk b/keyboards/cipulot/ec_60x/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_60x/rules.mk +++ b/keyboards/cipulot/ec_60x/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_65x/config.h b/keyboards/cipulot/ec_65x/config.h deleted file mode 100644 index 142f7a140e..0000000000 --- a/keyboards/cipulot/ec_65x/config.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - -#define MATRIX_ROW_PINS \ - { A8, A15, B13, B8, B9} - -#define AMUX_COUNT 1 -#define AMUX_MAX_COLS_COUNT 16 - -#define AMUX_EN_PINS \ - { B5 } - -#define AMUX_SEL_PINS \ - { B6, B7, B4, B3 } - -#define AMUX_COL_CHANNELS_SIZES \ - { 16 } - -#define AMUX_0_COL_CHANNELS \ - { 7, 6, 5, 4, 3, 2, 1, 0, 8, 15, 14, 12, 11, 13, 9, 10} - -#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS - -#define DISCHARGE_PIN A2 -#define ANALOG_PORT A3 - -#define DEFAULT_ACTUATION_MODE 0 -#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 -#define DEFAULT_MODE_0_RELEASE_LEVEL 500 -#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL -#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 -#define DEFAULT_MODE_1_RELEASE_OFFSET 70 -#define DEFAULT_EXTREMUM 1023 -#define EXPECTED_NOISE_FLOOR 0 -#define NOISE_FLOOR_THRESHOLD 50 -#define BOTTOMING_CALIBRATION_THRESHOLD 50 -#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 -#define DEFAULT_BOTTOMING_READING 1023 -#define DEFAULT_CALIBRATION_STARTER true - -#define DISCHARGE_TIME 10 - -#define EECONFIG_KB_DATA_SIZE 169 - -// PWM driver with direct memory access (DMA) support -#define WS2812_PWM_COMPLEMENTARY_OUTPUT -#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 diff --git a/keyboards/cipulot/ec_65x/halconf.h b/keyboards/cipulot/ec_65x/halconf.h deleted file mode 100644 index fb0f77d82f..0000000000 --- a/keyboards/cipulot/ec_65x/halconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_ADC TRUE -#define HAL_USE_PAL TRUE -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cipulot/ec_65x/keyboard.json b/keyboards/cipulot/ec_65x/keyboard.json deleted file mode 100644 index 2baf3ea5f0..0000000000 --- a/keyboards/cipulot/ec_65x/keyboard.json +++ /dev/null @@ -1,420 +0,0 @@ -{ - "manufacturer": "Cipulot", - "keyboard_name": "EC 65X", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": false, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "processor": "STM32F411", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 19 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6BD1", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "ws2812": { - "driver": "pwm", - "pin": "B15" - }, - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 0.75}, - {"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, - {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, - {"matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c deleted file mode 100644 index 9af029b2e3..0000000000 --- a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_ansi_blocker( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_ansi_blocker( - _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_ansi_blocker( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c deleted file mode 100644 index 69f17a0ae4..0000000000 --- a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_ansi_blocker_tsangan( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_ansi_blocker_tsangan( - _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_ansi_blocker_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c deleted file mode 100644 index 0d695c2978..0000000000 --- a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_iso_blocker( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENTER, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_iso_blocker( - _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_iso_blocker( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c deleted file mode 100644 index 867167cdea..0000000000 --- a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_iso_blocker_tsangan( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENTER, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_iso_blocker_tsangan( - _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_iso_blocker_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_65x/keymaps/default/keymap.c b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c deleted file mode 100644 index e7fb368b0c..0000000000 --- a/keyboards/cipulot/ec_65x/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_all( - _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_all( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_65x/mcuconf.h b/keyboards/cipulot/ec_65x/mcuconf.h deleted file mode 100644 index 88185d8e9d..0000000000 --- a/keyboards/cipulot/ec_65x/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_ADC_USE_ADC1 -#define STM32_ADC_USE_ADC1 TRUE - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_65x/post_rules.mk b/keyboards/cipulot/ec_65x/post_rules.mk deleted file mode 100644 index 5dba48cc5f..0000000000 --- a/keyboards/cipulot/ec_65x/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_65x/readme.md b/keyboards/cipulot/ec_65x/readme.md deleted file mode 100644 index 786d2b4504..0000000000 --- a/keyboards/cipulot/ec_65x/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# EC 65X - -![EC 65X PCB](https://i.imgur.com/8B86zsO.png) - -Universal 65% Electrostatic Capacitive PCB, with multi-layout support. - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: EC 65X -* Hardware Availability: TBD - -Make example for this keyboard (after setting up your build environment): - - make cipulot/ec_66x:default - -Flashing example for this keyboard: - - make cipulot/ec_66x: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 2 ways: - -* **Physical button**: Long press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_65x/rules.mk b/keyboards/cipulot/ec_65x/rules.mk deleted file mode 100644 index 3aa0e2bf06..0000000000 --- a/keyboards/cipulot/ec_65x/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OPT = 2 diff --git a/keyboards/cipulot/ec_660c/config.h b/keyboards/cipulot/ec_660c/config.h index 16b2ade719..9e883c40da 100644 --- a/keyboards/cipulot/ec_660c/config.h +++ b/keyboards/cipulot/ec_660c/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {3, 14}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8} } - #define MATRIX_ROW_PINS \ { B1, B10, B0, A1, A0 } diff --git a/keyboards/cipulot/ec_660c/post_rules.mk b/keyboards/cipulot/ec_660c/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_660c/post_rules.mk +++ b/keyboards/cipulot/ec_660c/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_660c/rules.mk b/keyboards/cipulot/ec_660c/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_660c/rules.mk +++ b/keyboards/cipulot/ec_660c/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_980c/config.h b/keyboards/cipulot/ec_980c/config.h index bd8afcb687..e3723822e3 100644 --- a/keyboards/cipulot/ec_980c/config.h +++ b/keyboards/cipulot/ec_980c/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 -#define UNUSED_POSITIONS_LIST { {0, 1}, {0, 10}, {3, 14}, {4, 13}, {5, 4}, {5, 7}, {5, 12} } - #define MATRIX_ROW_PINS \ { B13, B12, B14, A9, B6, B7 } diff --git a/keyboards/cipulot/ec_980c/ec_980c.c b/keyboards/cipulot/ec_980c/ec_980c.c index 7a2062a4e4..0e23c32335 100644 --- a/keyboards/cipulot/ec_980c/ec_980c.c +++ b/keyboards/cipulot/ec_980c/ec_980c.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_update_kb_datablock(&eeprom_ec_config); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_read_kb_datablock(&eeprom_ec_config); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; @@ -69,8 +69,6 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } @@ -94,24 +92,24 @@ bool rgb_matrix_indicators_kb(void) { if (eeprom_ec_config.num.enabled) { // The rgb_matrix_set_color function needs an RGB code to work, so first the indicator color is cast to an HSV value and then translated to RGB - hsv_t hsv_num_indicator_color = {eeprom_ec_config.num.h, eeprom_ec_config.num.s, eeprom_ec_config.num.v}; - rgb_t rgb_num_indicator_color = hsv_to_rgb(hsv_num_indicator_color); + HSV hsv_num_indicator_color = {eeprom_ec_config.num.h, eeprom_ec_config.num.s, eeprom_ec_config.num.v}; + RGB rgb_num_indicator_color = hsv_to_rgb(hsv_num_indicator_color); if (host_keyboard_led_state().num_lock) rgb_matrix_set_color(NUM_INDICATOR_INDEX, rgb_num_indicator_color.r, rgb_num_indicator_color.g, rgb_num_indicator_color.b); else rgb_matrix_set_color(NUM_INDICATOR_INDEX, 0, 0, 0); } if (eeprom_ec_config.caps.enabled) { - hsv_t hsv_caps_indicator_color = {eeprom_ec_config.caps.h, eeprom_ec_config.caps.s, eeprom_ec_config.caps.v}; - rgb_t rgb_caps_indicator_color = hsv_to_rgb(hsv_caps_indicator_color); + HSV hsv_caps_indicator_color = {eeprom_ec_config.caps.h, eeprom_ec_config.caps.s, eeprom_ec_config.caps.v}; + RGB rgb_caps_indicator_color = hsv_to_rgb(hsv_caps_indicator_color); if (host_keyboard_led_state().caps_lock) rgb_matrix_set_color(CAPS_INDICATOR_INDEX, rgb_caps_indicator_color.r, rgb_caps_indicator_color.g, rgb_caps_indicator_color.b); else rgb_matrix_set_color(CAPS_INDICATOR_INDEX, 0, 0, 0); } if (eeprom_ec_config.scroll.enabled) { - hsv_t hsv_scroll_indicator_color = {eeprom_ec_config.scroll.h, eeprom_ec_config.scroll.s, eeprom_ec_config.scroll.v}; - rgb_t rgb_scroll_indicator_color = hsv_to_rgb(hsv_scroll_indicator_color); + HSV hsv_scroll_indicator_color = {eeprom_ec_config.scroll.h, eeprom_ec_config.scroll.s, eeprom_ec_config.scroll.v}; + RGB rgb_scroll_indicator_color = hsv_to_rgb(hsv_scroll_indicator_color); if (host_keyboard_led_state().scroll_lock) rgb_matrix_set_color(SCROLL_INDICATOR_INDEX, rgb_scroll_indicator_color.r, rgb_scroll_indicator_color.g, rgb_scroll_indicator_color.b); else diff --git a/keyboards/cipulot/ec_980c/ec_switch_matrix.c b/keyboards/cipulot/ec_980c/ec_switch_matrix.c index 00a0b632fb..33123bd236 100644 --- a/keyboards/cipulot/ec_980c/ec_switch_matrix.c +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.c @@ -37,11 +37,6 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; -#ifdef UNUSED_POSITIONS_LIST -const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; -# define UNUSED_POSITIONS_COUNT (sizeof(UNUSED_POSITIONS) / sizeof(UNUSED_POSITIONS[0])) -#endif - #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) // Checks for the correctness of the configuration @@ -75,16 +70,6 @@ void init_amux(void) { } } -// Disable all the unused rows -void disable_unused_row(uint8_t row) { - // disable all the other rows apart from the current selected one - for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { - if (idx != row) { - gpio_write_pin_low(row_pins[idx]); - } - } -} - // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -173,10 +158,6 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -199,15 +180,11 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -252,7 +229,7 @@ uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { } // Update press/release state of key -bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t sw_value) { +bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { bool current_state = (*current_row >> col) & 1; // Real Time Noise Floor Calibration @@ -289,7 +266,7 @@ bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -303,7 +280,7 @@ bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -335,18 +312,6 @@ void ec_print_matrix(void) { print("\n"); } -// Check if the position is unused -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col) { - for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { - if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { - return true; - } - } - return false; -} -#endif - // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/ec_980c/ec_switch_matrix.h b/keyboards/cipulot/ec_980c/ec_switch_matrix.h index a89f8970ab..8a75b5de5f 100644 --- a/keyboards/cipulot/ec_980c/ec_switch_matrix.h +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.h @@ -47,13 +47,11 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale - uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -83,7 +81,3 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); - -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col); -#endif diff --git a/keyboards/cipulot/ec_980c/keyboard.json b/keyboards/cipulot/ec_980c/keyboard.json index 823a761735..35946fa623 100644 --- a/keyboards/cipulot/ec_980c/keyboard.json +++ b/keyboards/cipulot/ec_980c/keyboard.json @@ -30,7 +30,8 @@ "rgb_matrix": { "animations": { "breathing": true, - "cycle_left_right": true + "cycle_left_right": true, + "solid_color": true }, "driver": "ws2812", "layout": [ @@ -38,7 +39,8 @@ {"matrix": [0, 16], "x": 17, "y": 1, "flags": 4}, {"matrix": [0, 17], "x": 18, "y": 1, "flags": 4} ], - "led_count": 3 + "led_count": 3, + "max_brightness": 255 }, "usb": { "device_version": "0.0.1", diff --git a/keyboards/cipulot/ec_980c/mcuconf.h b/keyboards/cipulot/ec_980c/mcuconf.h index 2f22252a00..5f9ecca48d 100644 --- a/keyboards/cipulot/ec_980c/mcuconf.h +++ b/keyboards/cipulot/ec_980c/mcuconf.h @@ -21,5 +21,8 @@ #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h index 995ede408b..ab51289c02 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 -#define UNUSED_POSITIONS_LIST { {2, 12}, {3, 11}, {3, 12}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 10} } - #define MATRIX_ROW_PINS \ { A14, B3, A15, B5, B4 } diff --git a/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/config.h b/keyboards/cipulot/ec_alveus/1_2_0/config.h index 05276c1d75..ab51289c02 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 -#define UNUSED_POSITIONS_LIST { {3, 11}, {3, 12}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 10} } - #define MATRIX_ROW_PINS \ { A14, B3, A15, B5, B4 } diff --git a/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_constellation/config.h b/keyboards/cipulot/ec_constellation/config.h deleted file mode 100644 index 1a2ecf54a0..0000000000 --- a/keyboards/cipulot/ec_constellation/config.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -#define UNUSED_POSITIONS_LIST { {3, 1}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9} } - -#define MATRIX_ROW_PINS \ - { A8, A15, B12, B8, B9 } - -#define AMUX_COUNT 1 -#define AMUX_MAX_COLS_COUNT 15 - -#define AMUX_EN_PINS \ - { B5 } - -#define AMUX_SEL_PINS \ - { B6, B7, B4, B3 } - -#define AMUX_COL_CHANNELS_SIZES \ - { 15 } - -#define AMUX_0_COL_CHANNELS \ - { 7, 6, 5, 4, 3, 2, 1, 0, 9, 15, 14, 13, 10, 11, 12} - -#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS - -#define DISCHARGE_PIN A2 -#define ANALOG_PORT A3 - -#define DEFAULT_ACTUATION_MODE 0 -#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 -#define DEFAULT_MODE_0_RELEASE_LEVEL 500 -#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL -#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 -#define DEFAULT_MODE_1_RELEASE_OFFSET 70 -#define DEFAULT_EXTREMUM 1023 -#define EXPECTED_NOISE_FLOOR 0 -#define NOISE_FLOOR_THRESHOLD 50 -#define BOTTOMING_CALIBRATION_THRESHOLD 50 -#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 -#define DEFAULT_BOTTOMING_READING 1023 -#define DEFAULT_CALIBRATION_STARTER true - -#define DISCHARGE_TIME 10 - -#define EECONFIG_KB_DATA_SIZE 159 diff --git a/keyboards/cipulot/ec_constellation/halconf.h b/keyboards/cipulot/ec_constellation/halconf.h deleted file mode 100644 index 6b63cb5af9..0000000000 --- a/keyboards/cipulot/ec_constellation/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_ADC TRUE - -#include_next diff --git a/keyboards/cipulot/ec_constellation/keyboard.json b/keyboards/cipulot/ec_constellation/keyboard.json deleted file mode 100644 index 15187c472f..0000000000 --- a/keyboards/cipulot/ec_constellation/keyboard.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "manufacturer": "Cipulot", - "keyboard_name": "Constellation EC", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": false, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "processor": "STM32F411", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6BC9", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_65_ansi_rwkl_split_bs" - }, - "layouts": { - "LAYOUT_65_ansi_rwkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 13], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_rwkl_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 13], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c deleted file mode 100644 index acc4c91e4c..0000000000 --- a/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_ansi_rwkl( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_65_ansi_rwkl( - 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, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_65_ansi_rwkl( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c deleted file mode 100644 index 18d1418be2..0000000000 --- a/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_65_ansi_rwkl_split_bs( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_65_ansi_rwkl_split_bs( - 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, KC_DEL, _______, _______, - _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_65_ansi_rwkl_split_bs( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_constellation/mcuconf.h b/keyboards/cipulot/ec_constellation/mcuconf.h deleted file mode 100644 index 1679d3fbc0..0000000000 --- a/keyboards/cipulot/ec_constellation/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_ADC_USE_ADC1 -#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_constellation/post_rules.mk b/keyboards/cipulot/ec_constellation/post_rules.mk deleted file mode 100644 index 5dba48cc5f..0000000000 --- a/keyboards/cipulot/ec_constellation/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_constellation/readme.md b/keyboards/cipulot/ec_constellation/readme.md deleted file mode 100644 index 16bbdcdf6f..0000000000 --- a/keyboards/cipulot/ec_constellation/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Constellation EC - -![Constellation EC](https://i.imgur.com/ndgUV63.jpeg) - -EC version of the Constellation keyboard. - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: Constellation EC PCB -* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/constellation) - -Make example for this keyboard (after setting up your build environment): - - make cipulot/ec_constellation:default - -Flashing example for this keyboard: - - make cipulot/ec_constellation: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 2 ways: - -* **Physical reset**: Long short the exposed pins on the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_constellation/rules.mk b/keyboards/cipulot/ec_constellation/rules.mk deleted file mode 100644 index 1716098b3e..0000000000 --- a/keyboards/cipulot/ec_constellation/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OPT = 3 diff --git a/keyboards/cipulot/ec_dolice/config.h b/keyboards/cipulot/ec_dolice/config.h index 2048fd4449..a5c56e7949 100644 --- a/keyboards/cipulot/ec_dolice/config.h +++ b/keyboards/cipulot/ec_dolice/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {2, 14}, {4, 0}, {4, 2}, {4, 4}, {4, 7}, {4, 9}, {4, 11}, {4, 12}, {4, 13} } - #define MATRIX_ROW_PINS \ { B13, A8, B12, B14, B15 } diff --git a/keyboards/cipulot/ec_dolice/post_rules.mk b/keyboards/cipulot/ec_dolice/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_dolice/post_rules.mk +++ b/keyboards/cipulot/ec_dolice/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_dolice/rules.mk b/keyboards/cipulot/ec_dolice/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_dolice/rules.mk +++ b/keyboards/cipulot/ec_dolice/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_menhir/config.h b/keyboards/cipulot/ec_menhir/config.h index d70fed7a3b..bd0094c7f1 100644 --- a/keyboards/cipulot/ec_menhir/config.h +++ b/keyboards/cipulot/ec_menhir/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 -#define UNUSED_POSITIONS_LIST { {2, 11}, {3, 0}, {3, 3}, {3, 7}, {3, 10}, {3, 11} } - #define MATRIX_ROW_PINS \ { A0, A3, A2, A1 } diff --git a/keyboards/cipulot/ec_menhir/post_rules.mk b/keyboards/cipulot/ec_menhir/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_menhir/post_rules.mk +++ b/keyboards/cipulot/ec_menhir/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_menhir/rules.mk b/keyboards/cipulot/ec_menhir/rules.mk new file mode 100644 index 0000000000..e7d73cefc9 --- /dev/null +++ b/keyboards/cipulot/ec_menhir/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c diff --git a/keyboards/cipulot/ec_pro2/config.h b/keyboards/cipulot/ec_pro2/config.h index 63c81a6364..a05e716823 100644 --- a/keyboards/cipulot/ec_pro2/config.h +++ b/keyboards/cipulot/ec_pro2/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } - #define MATRIX_ROW_PINS \ { B15, A8, B0, A7, B1 } diff --git a/keyboards/cipulot/ec_pro2/post_rules.mk b/keyboards/cipulot/ec_pro2/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_pro2/post_rules.mk +++ b/keyboards/cipulot/ec_pro2/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_pro2/rules.mk b/keyboards/cipulot/ec_pro2/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_pro2/rules.mk +++ b/keyboards/cipulot/ec_pro2/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_prox/ansi_iso/config.h b/keyboards/cipulot/ec_prox/ansi_iso/config.h index 00794921a3..bf25d0b712 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/config.h +++ b/keyboards/cipulot/ec_prox/ansi_iso/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } - #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_prox/jis/config.h b/keyboards/cipulot/ec_prox/jis/config.h index d7461097cd..fd3c048bc3 100644 --- a/keyboards/cipulot/ec_prox/jis/config.h +++ b/keyboards/cipulot/ec_prox/jis/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 -#define UNUSED_POSITIONS_LIST { {4, 6} } - #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_prox/jis/post_rules.mk b/keyboards/cipulot/ec_prox/jis/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_prox/jis/post_rules.mk +++ b/keyboards/cipulot/ec_prox/jis/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_prox/jis/rules.mk b/keyboards/cipulot/ec_prox/jis/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_prox/jis/rules.mk +++ b/keyboards/cipulot/ec_prox/jis/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_theca/config.h b/keyboards/cipulot/ec_theca/config.h index e62801b10f..d9fea55967 100644 --- a/keyboards/cipulot/ec_theca/config.h +++ b/keyboards/cipulot/ec_theca/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 -#define UNUSED_POSITIONS_LIST { {3, 12}, {4, 11}, {4, 12}, {5, 3}, {5, 4}, {5, 6}, {5, 7}, {5, 8}, {5, 9} } - #define MATRIX_ROW_PINS \ { B4, A14, B3, A15, B6, B5 } diff --git a/keyboards/cipulot/ec_theca/post_rules.mk b/keyboards/cipulot/ec_theca/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_theca/post_rules.mk +++ b/keyboards/cipulot/ec_theca/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_theca/rules.mk +++ b/keyboards/cipulot/ec_theca/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_tkl/config.h b/keyboards/cipulot/ec_tkl/config.h index d2178fa869..95a7f9137a 100644 --- a/keyboards/cipulot/ec_tkl/config.h +++ b/keyboards/cipulot/ec_tkl/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 -#define UNUSED_POSITIONS_LIST { {5, 3}, {5, 5} } - #define MATRIX_ROW_PINS \ { B6, B5, B12, B10, B13, B7 } diff --git a/keyboards/cipulot/ec_tkl/post_rules.mk b/keyboards/cipulot/ec_tkl/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_tkl/post_rules.mk +++ b/keyboards/cipulot/ec_tkl/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_tkl/rules.mk b/keyboards/cipulot/ec_tkl/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/ec_tkl/rules.mk +++ b/keyboards/cipulot/ec_tkl/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_tkl_x/config.h b/keyboards/cipulot/ec_tkl_x/config.h deleted file mode 100644 index 04d19a5f54..0000000000 --- a/keyboards/cipulot/ec_tkl_x/config.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define MATRIX_ROWS 6 -#define MATRIX_COLS 18 - -#define UNUSED_POSITIONS_LIST { {0, 13}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 15}, {4, 17}, {5, 3}, {5, 5}, {5, 7}, {5, 10}, {5, 15} } - -#define MATRIX_ROW_PINS {A15, B5, B12, B10, B6, B7} - -#define AMUX_COUNT 2 -#define AMUX_MAX_COLS_COUNT 15 - -#define AMUX_EN_PINS {B13, A10} - -#define AMUX_SEL_PINS {A8, A9, B14, B15} - -#define AMUX_COL_CHANNELS_SIZES {15, 3} - -#define AMUX_0_COL_CHANNELS {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} - -#define AMUX_1_COL_CHANNELS {3, 0, 1} - -#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS - -#define DISCHARGE_PIN A4 -#define ANALOG_PORT A2 - -#define DEFAULT_ACTUATION_MODE 0 -#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 -#define DEFAULT_MODE_0_RELEASE_LEVEL 500 -#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL -#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 -#define DEFAULT_MODE_1_RELEASE_OFFSET 70 -#define DEFAULT_EXTREMUM 1023 -#define EXPECTED_NOISE_FLOOR 0 -#define NOISE_FLOOR_THRESHOLD 50 -#define BOTTOMING_CALIBRATION_THRESHOLD 50 -#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 -#define DEFAULT_BOTTOMING_READING 1023 -#define DEFAULT_CALIBRATION_STARTER true - -#define DISCHARGE_TIME 10 - -// #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 225 - -// PWM driver with direct memory access (DMA) support -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 1 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_DMA_CHANNEL 5 diff --git a/keyboards/cipulot/ec_tkl_x/halconf.h b/keyboards/cipulot/ec_tkl_x/halconf.h deleted file mode 100644 index fb0f77d82f..0000000000 --- a/keyboards/cipulot/ec_tkl_x/halconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_ADC TRUE -#define HAL_USE_PAL TRUE -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cipulot/ec_tkl_x/keyboard.json b/keyboards/cipulot/ec_tkl_x/keyboard.json deleted file mode 100644 index 9149fb1d3b..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keyboard.json +++ /dev/null @@ -1,714 +0,0 @@ -{ - "manufacturer": "Cipulot", - "keyboard_name": "EC TKL X", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 8192 - } - }, - "features": { - "bootmagic": false, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "processor": "STM32F411", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 22 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6BC8", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "ws2812": { - "driver": "pwm", - "pin": "B4" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 0.75}, - {"matrix": [2, 14], "x": 14.25, "y": 2.25, "w": 0.75}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 0.75}, - {"matrix": [4, 14], "x": 14, "y": 4.25}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, - {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, - {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_jis": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, - {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, - {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_jis": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [0, 16], "x": 16.25, "y": 0}, - {"matrix": [0, 17], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [1, 17], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - {"matrix": [2, 16], "x": 16.25, "y": 2.25}, - {"matrix": [2, 17], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 16], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, - {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, - {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 16], "x": 16.25, "y": 5.25}, - {"matrix": [5, 17], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c deleted file mode 100644 index 9a357e2cf3..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_all( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c deleted file mode 100644 index 86b0699986..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_ansi_tsangan( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_ENTER, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_ansi_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_ansi_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c deleted file mode 100644 index eece893fe4..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_f13_ansi_tsangan( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_ENTER, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_f13_ansi_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_f13_ansi_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c deleted file mode 100644 index 9af7db9008..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_f13_ansi_tsangan( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_ENTER, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_f13_ansi_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_f13_ansi_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c deleted file mode 100644 index 8e0fd18d0b..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "keymap_japanese.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_f13_jis( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, - JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, - JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, - KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_f13_jis( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_f13_jis( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c deleted file mode 100644 index bae33d072d..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_ansi_tsangan( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_ENTER, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_ansi_tsangan( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_ansi_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c deleted file mode 100644 index f445d71d6e..0000000000 --- a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "keymap_japanese.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_tkl_jis( - 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_PSCR, KC_SCRL, KC_PAUS, - JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, - JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, - KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_tkl_jis( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), - - [2] = LAYOUT_tkl_jis( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - // clang-format on -}; diff --git a/keyboards/cipulot/ec_tkl_x/mcuconf.h b/keyboards/cipulot/ec_tkl_x/mcuconf.h deleted file mode 100644 index 99b613c493..0000000000 --- a/keyboards/cipulot/ec_tkl_x/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_ADC_USE_ADC1 -#define STM32_ADC_USE_ADC1 TRUE - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cipulot/ec_tkl_x/post_rules.mk b/keyboards/cipulot/ec_tkl_x/post_rules.mk deleted file mode 100644 index 5dba48cc5f..0000000000 --- a/keyboards/cipulot/ec_tkl_x/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_tkl_x/readme.md b/keyboards/cipulot/ec_tkl_x/readme.md deleted file mode 100644 index 0e37c23762..0000000000 --- a/keyboards/cipulot/ec_tkl_x/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# EC TKL X - -![EC TKL X PCB](https://i.imgur.com/pdkT14y.png) - -Universal TKL Electrostatic Capacitive PCB, with multi-layout support (F12/F13 version). - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: EC TKL X PCB -* Hardware Availability: TBD - -Make example for this keyboard (after setting up your build environment): - - make cipulot/ec_tkl_x:default - -Flashing example for this keyboard: - - make cipulot/ec_tkl_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). - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Physical reset**: Long press the button on the bottom on the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_tkl_x/rules.mk b/keyboards/cipulot/ec_tkl_x/rules.mk deleted file mode 100644 index 3aa0e2bf06..0000000000 --- a/keyboards/cipulot/ec_tkl_x/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OPT = 2 diff --git a/keyboards/cipulot/ec_typeb/config.h b/keyboards/cipulot/ec_typeb/config.h index 908bae13e6..bf25d0b712 100644 --- a/keyboards/cipulot/ec_typeb/config.h +++ b/keyboards/cipulot/ec_typeb/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 12}, {2, 14}, {3, 1}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } - #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_typeb/post_rules.mk b/keyboards/cipulot/ec_typeb/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_typeb/post_rules.mk +++ b/keyboards/cipulot/ec_typeb/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_typeb/rules.mk b/keyboards/cipulot/ec_typeb/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_typeb/rules.mk +++ b/keyboards/cipulot/ec_typeb/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_typek/config.h b/keyboards/cipulot/ec_typek/config.h index 9821dcbba6..a6619c600c 100644 --- a/keyboards/cipulot/ec_typek/config.h +++ b/keyboards/cipulot/ec_typek/config.h @@ -17,8 +17,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {2, 13}, {4, 2}, {4, 4}, {4, 9}, {4, 11}, {4, 12}, {4, 14} } - #define MATRIX_ROW_PINS \ { B14, B13, B12, A6, A7 } diff --git a/keyboards/cipulot/ec_typek/ec_switch_matrix.c b/keyboards/cipulot/ec_typek/ec_switch_matrix.c index ca55537825..da58a75bbc 100644 --- a/keyboards/cipulot/ec_typek/ec_switch_matrix.c +++ b/keyboards/cipulot/ec_typek/ec_switch_matrix.c @@ -37,11 +37,6 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; -#ifdef UNUSED_POSITIONS_LIST -const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; -# define UNUSED_POSITIONS_COUNT (sizeof(UNUSED_POSITIONS) / sizeof(UNUSED_POSITIONS[0])) -#endif - #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) // Checks for the correctness of the configuration @@ -75,16 +70,6 @@ void init_amux(void) { } } -// Disable all the unused rows -void disable_unused_row(uint8_t row) { - // disable all the other rows apart from the current selected one - for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { - if (idx != row) { - gpio_write_pin_low(row_pins[idx]); - } - } -} - // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -173,10 +158,6 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -199,15 +180,11 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { -#ifdef UNUSED_POSITIONS_LIST - if (is_unused_position(row, adjusted_col)) continue; -#endif - disable_unused_row(row); + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -252,7 +229,7 @@ uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { } // Update press/release state of key -bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t sw_value) { +bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { bool current_state = (*current_row >> col) & 1; // Real Time Noise Floor Calibration @@ -289,7 +266,7 @@ bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -303,7 +280,7 @@ bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -335,18 +312,6 @@ void ec_print_matrix(void) { print("\n"); } -// Check if the position is unused -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col) { - for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { - if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { - return true; - } - } - return false; -} -#endif - // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/ec_typek/ec_switch_matrix.h b/keyboards/cipulot/ec_typek/ec_switch_matrix.h index e3b6afb976..fad20360bc 100644 --- a/keyboards/cipulot/ec_typek/ec_switch_matrix.h +++ b/keyboards/cipulot/ec_typek/ec_switch_matrix.h @@ -33,13 +33,13 @@ typedef struct PACKED { indicator_config num; indicator_config caps; indicator_config scroll; - uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point, 2: Rapid trigger from resting point - uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 - uint16_t mode_0_release_threshold; // threshold for key release in mode 0 - uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 and 2 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 and 2 (1-255) - uint16_t bottoming_reading[MATRIX_ROWS][MATRIX_COLS]; // bottoming reading + uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point, 2: Rapid trigger from resting point + uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 + uint16_t mode_0_release_threshold; // threshold for key release in mode 0 + uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 and 2 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 and 2 (1-255) + uint16_t bottoming_reading[MATRIX_ROWS][MATRIX_COLS]; // bottoming reading } eeprom_ec_config_t; typedef struct { @@ -47,13 +47,11 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale - uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -84,7 +82,3 @@ void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); bool indicators_callback(void); - -#ifdef UNUSED_POSITIONS_LIST -bool is_unused_position(uint8_t row, uint8_t col); -#endif diff --git a/keyboards/cipulot/ec_typek/ec_typek.c b/keyboards/cipulot/ec_typek/ec_typek.c index 31616afc02..b899ddbb8a 100644 --- a/keyboards/cipulot/ec_typek/ec_typek.c +++ b/keyboards/cipulot/ec_typek/ec_typek.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_update_kb_datablock(&eeprom_ec_config); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); + eeconfig_read_kb_datablock(&eeprom_ec_config); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; @@ -69,8 +69,6 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); - ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } @@ -84,7 +82,7 @@ void keyboard_post_init_kb(void) { // This function gets called when caps, num, scroll change bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { + if(led_update_user(led_state)) { indicators_callback(); } return true; diff --git a/keyboards/cipulot/ec_typek/mcuconf.h b/keyboards/cipulot/ec_typek/mcuconf.h index 2f22252a00..5f9ecca48d 100644 --- a/keyboards/cipulot/ec_typek/mcuconf.h +++ b/keyboards/cipulot/ec_typek/mcuconf.h @@ -21,5 +21,8 @@ #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_vero/config.h b/keyboards/cipulot/ec_vero/config.h index d86c0b6ab0..89f7474b55 100644 --- a/keyboards/cipulot/ec_vero/config.h +++ b/keyboards/cipulot/ec_vero/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9}, {4, 12}, {4, 13}, {4, 14} } - #define MATRIX_ROW_PINS \ { B7, B6, A9, A10, B3 } diff --git a/keyboards/cipulot/ec_vero/post_rules.mk b/keyboards/cipulot/ec_vero/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_vero/post_rules.mk +++ b/keyboards/cipulot/ec_vero/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_vero/rules.mk b/keyboards/cipulot/ec_vero/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_vero/rules.mk +++ b/keyboards/cipulot/ec_vero/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_virgo/config.h b/keyboards/cipulot/ec_virgo/config.h index 87cfbcdd76..2fce8cd7fa 100644 --- a/keyboards/cipulot/ec_virgo/config.h +++ b/keyboards/cipulot/ec_virgo/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 -#define UNUSED_POSITIONS_LIST { {0, 6}, {0, 14}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 12}, {4, 15}, {4, 17}, {5, 1}, {5, 4}, {5, 8}, {5, 11}, {5, 12}, {5, 14} } - #define MATRIX_ROW_PINS \ { B6, B7, B5, B4, B3, A15 } diff --git a/keyboards/cipulot/ec_virgo/post_rules.mk b/keyboards/cipulot/ec_virgo/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/ec_virgo/post_rules.mk +++ b/keyboards/cipulot/ec_virgo/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_virgo/rules.mk b/keyboards/cipulot/ec_virgo/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/ec_virgo/rules.mk +++ b/keyboards/cipulot/ec_virgo/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/kallos/keyboard.json b/keyboards/cipulot/kallos/keyboard.json index ef10f34266..731b37fda9 100644 --- a/keyboards/cipulot/kallos/keyboard.json +++ b/keyboards/cipulot/kallos/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kallos", "manufacturer": "Cipulot", + "url": "", "maintainer": "Cipulot", "usb": { "vid": "0x6369", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/cipulot/mnk_60_ec/config.h b/keyboards/cipulot/mnk_60_ec/config.h index 1f31c91aaa..1a7df48657 100644 --- a/keyboards/cipulot/mnk_60_ec/config.h +++ b/keyboards/cipulot/mnk_60_ec/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 -#define UNUSED_POSITIONS_LIST { {3, 13}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 13} } - #define MATRIX_ROW_PINS \ { B13, B14, B15, A8, A15 } diff --git a/keyboards/cipulot/mnk_60_ec/keyboard.json b/keyboards/cipulot/mnk_60_ec/keyboard.json index 8929e3d5ff..802e216f67 100644 --- a/keyboards/cipulot/mnk_60_ec/keyboard.json +++ b/keyboards/cipulot/mnk_60_ec/keyboard.json @@ -25,14 +25,7 @@ "pid": "0x6BB6", "vid": "0x6369" }, - "community_layouts": [ - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi_wkl_split_bs_rshift": { "layout": [ @@ -162,7 +155,7 @@ {"matrix": [4, 11], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cipulot/mnk_60_ec/keymaps/default/keymap.c b/keyboards/cipulot/mnk_60_ec/keymaps/default/keymap.c index 6ce10b1375..08599b93d3 100644 --- a/keyboards/cipulot/mnk_60_ec/keymaps/default/keymap.c +++ b/keyboards/cipulot/mnk_60_ec/keymaps/default/keymap.c @@ -18,21 +18,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_RGUI, KC_RALT), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( _______, 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_DEL, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, MO(2), _______), - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [2] = LAYOUT_60_tsangan_hhkb( QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cipulot/mnk_60_ec/post_rules.mk b/keyboards/cipulot/mnk_60_ec/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/mnk_60_ec/post_rules.mk +++ b/keyboards/cipulot/mnk_60_ec/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/mnk_60_ec/rules.mk b/keyboards/cipulot/mnk_60_ec/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/mnk_60_ec/rules.mk +++ b/keyboards/cipulot/mnk_60_ec/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/mnk_65_ec/config.h b/keyboards/cipulot/mnk_65_ec/config.h index 9d880ba3bd..01d1248c43 100644 --- a/keyboards/cipulot/mnk_65_ec/config.h +++ b/keyboards/cipulot/mnk_65_ec/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define UNUSED_POSITIONS_LIST { {2, 13}, {3, 13}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 10}, {4, 13} } - #define MATRIX_ROW_PINS \ { B14, B15, A8, B12, A15 } diff --git a/keyboards/cipulot/mnk_65_ec/post_rules.mk b/keyboards/cipulot/mnk_65_ec/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/mnk_65_ec/post_rules.mk +++ b/keyboards/cipulot/mnk_65_ec/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/mnk_65_ec/rules.mk b/keyboards/cipulot/mnk_65_ec/rules.mk index 1716098b3e..ce525670a6 100644 --- a/keyboards/cipulot/mnk_65_ec/rules.mk +++ b/keyboards/cipulot/mnk_65_ec/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/mx65x/config.h b/keyboards/cipulot/mx65x/config.h deleted file mode 100644 index 5f4cc71911..0000000000 --- a/keyboards/cipulot/mx65x/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// PWM driver with direct memory access (DMA) support -#define WS2812_PWM_DRIVER PWMD1 -#define WS2812_PWM_CHANNEL 2 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 -#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/cipulot/mx65x/halconf.h b/keyboards/cipulot/mx65x/halconf.h deleted file mode 100644 index d220b03aa3..0000000000 --- a/keyboards/cipulot/mx65x/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cipulot/mx65x/hotswap/keyboard.json b/keyboards/cipulot/mx65x/hotswap/keyboard.json deleted file mode 100644 index bba641aa0b..0000000000 --- a/keyboards/cipulot/mx65x/hotswap/keyboard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "keyboard_name": "MX65X Hotswap", - "usb": { - "pid": "0x6BD8" - } -} diff --git a/keyboards/cipulot/mx65x/hotswap/rules.mk b/keyboards/cipulot/mx65x/hotswap/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cipulot/mx65x/hotswap/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cipulot/mx65x/info.json b/keyboards/cipulot/mx65x/info.json deleted file mode 100644 index 8de5c0d544..0000000000 --- a/keyboards/cipulot/mx65x/info.json +++ /dev/null @@ -1,421 +0,0 @@ -{ - "manufacturer": "Cipulot", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F0", "pin_b": "F1"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["B14", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], - "rows": ["A15", "B7", "B13", "B15", "A8"] - }, - "processor": "STM32F072", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 26 - }, - "usb": { - "device_version": "0.0.1", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "ws2812": { - "driver": "pwm", - "pin": "A9" - }, - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [3, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 4], "x": 4, "y": 4, "w": 2.5}, - {"matrix": [4, 6], "x": 6.5, "y": 4}, - {"matrix": [4, 8], "x": 7.5, "y": 4, "w": 2.5}, - {"matrix": [4, 9], "x": 10, "y": 4}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker/keymap.c b/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker/keymap.c deleted file mode 100644 index 804fb20521..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_ansi_blocker( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif -// clang-format on diff --git a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/keymap.c b/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/keymap.c deleted file mode 100644 index 84d7ad06be..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker_tsangan( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_ansi_blocker_tsangan( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_ansi_blocker_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif -// clang-format on diff --git a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/rules.mk b/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker_tsangan/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/keymap.c b/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/keymap.c deleted file mode 100644 index 9e7016bfb6..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_iso_blocker( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_iso_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_iso_blocker( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif -// clang-format on diff --git a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/rules.mk b/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/keymap.c deleted file mode 100644 index a18cc4fe4e..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_iso_blocker_tsangan( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_65_iso_blocker_tsangan( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_65_iso_blocker_tsangan( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif -// clang-format on diff --git a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/rules.mk b/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/65_iso_blocker_tsangan/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cipulot/mx65x/keymaps/default/keymap.c b/keyboards/cipulot/mx65x/keymaps/default/keymap.c deleted file mode 100644 index e0f5ea12cb..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/default/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - - [1] = LAYOUT_all( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______), - - [2] = LAYOUT_all( - QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif -// clang-format on diff --git a/keyboards/cipulot/mx65x/keymaps/default/rules.mk b/keyboards/cipulot/mx65x/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/cipulot/mx65x/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cipulot/mx65x/mcuconf.h b/keyboards/cipulot/mx65x/mcuconf.h deleted file mode 100644 index b939e65395..0000000000 --- a/keyboards/cipulot/mx65x/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2025 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/mx65x/readme.md b/keyboards/cipulot/mx65x/readme.md deleted file mode 100644 index e6b07fc03b..0000000000 --- a/keyboards/cipulot/mx65x/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# MX65X - -A 65% solder and hotswap PCB. - -Solder - -![MX65X Solder](https://i.imgur.com/M2lyPuo.png) - -Hotswap - -![MX65X Hotswap](https://i.imgur.com/18DnNrw.png) - - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: MX65X Solder and Hotswap -* Hardware Availability: [Clever Keebs](https://cleverkeebs.com) - -Make example for this keyboard (after setting up your build environment): - - make cipulot/mx65x/solder:default - make cipulot/mx65x/hotswap:default - -Flashing example for this keyboard: - - make cipulot/mx65x/solder:default:flash - make cipulot/mx65x/hotswap: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: - -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured. -* **Physical reset button**: Long press the reset button soldered on the PCB. -* **Bootmagic reset**: Hold down the top left key and plug in the controller. diff --git a/keyboards/cipulot/mx65x/solder/keyboard.json b/keyboards/cipulot/mx65x/solder/keyboard.json deleted file mode 100644 index 119397bef0..0000000000 --- a/keyboards/cipulot/mx65x/solder/keyboard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "keyboard_name": "MX65X Solder", - "usb": { - "pid": "0x6BD7" - } -} diff --git a/keyboards/cipulot/mx65x/solder/rules.mk b/keyboards/cipulot/mx65x/solder/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cipulot/mx65x/solder/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cipulot/ok_1/config.h b/keyboards/cipulot/ok_1/config.h deleted file mode 100644 index 64700a1aff..0000000000 --- a/keyboards/cipulot/ok_1/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// PWM driver with direct memory access (DMA) support -#define WS2812_PWM_COMPLEMENTARY_OUTPUT -#define WS2812_PWM_DRIVER PWMD1 -#define WS2812_PWM_CHANNEL 1 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 -#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/cipulot/ok_1/halconf.h b/keyboards/cipulot/ok_1/halconf.h deleted file mode 100644 index 33477f45bd..0000000000 --- a/keyboards/cipulot/ok_1/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PAL TRUE -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/cipulot/ok_1/keyboard.json b/keyboards/cipulot/ok_1/keyboard.json deleted file mode 100644 index 2457f22fd8..0000000000 --- a/keyboards/cipulot/ok_1/keyboard.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "manufacturer": "Cipulot", - "keyboard_name": "OK-1", - "maintainer": "Cipulot", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B10", "B2", "B1", "B0", "A7", "A6", "A5", "A1", "A0", "F1", "F0", "C15", "A4", "A3"], - "rows": ["B11", "A2", "B9", "B8", "B7", "B6"] - }, - "processor": "STM32F072", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "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, - "fractal": 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_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 - }, - "default": { - "animation": "rainbow_moving_chevron" - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 187, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 172, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 157, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 142, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 127, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 82, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 67, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 37, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 22, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 4, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, - {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, - {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, - {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4}, - {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4}, - {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4}, - {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4}, - {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4}, - {"matrix": [1, 8], "x": 119, "y": 13, "flags": 4}, - {"matrix": [1, 9], "x": 134, "y": 13, "flags": 4}, - {"matrix": [1, 10], "x": 149, "y": 13, "flags": 4}, - {"matrix": [1, 11], "x": 164, "y": 13, "flags": 4}, - {"matrix": [1, 12], "x": 179, "y": 13, "flags": 4}, - {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1}, - {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, - {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4}, - {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4}, - {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4}, - {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4}, - {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4}, - {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4}, - {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4}, - {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4}, - {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4}, - {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, - {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, - {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, - {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, - {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, - {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 41, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 56, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 71, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 86, "y": 38, "flags": 4}, - {"matrix": [3, 6], "x": 101, "y": 38, "flags": 4}, - {"matrix": [3, 7], "x": 116, "y": 38, "flags": 4}, - {"matrix": [3, 8], "x": 131, "y": 38, "flags": 4}, - {"matrix": [3, 9], "x": 146, "y": 38, "flags": 4}, - {"matrix": [3, 10], "x": 161, "y": 38, "flags": 4}, - {"matrix": [3, 11], "x": 175, "y": 38, "flags": 4}, - {"matrix": [3, 12], "x": 200, "y": 38, "flags": 1}, - {"matrix": [4, 12], "x": 209, "y": 51, "flags": 1}, - {"matrix": [4, 11], "x": 189, "y": 51, "flags": 1}, - {"matrix": [4, 10], "x": 168, "y": 51, "flags": 4}, - {"matrix": [4, 9], "x": 153, "y": 51, "flags": 4}, - {"matrix": [4, 8], "x": 138, "y": 51, "flags": 4}, - {"matrix": [4, 7], "x": 123, "y": 51, "flags": 4}, - {"matrix": [4, 6], "x": 108, "y": 51, "flags": 4}, - {"matrix": [4, 5], "x": 93, "y": 51, "flags": 4}, - {"matrix": [4, 4], "x": 78, "y": 51, "flags": 4}, - {"matrix": [4, 3], "x": 63, "y": 51, "flags": 4}, - {"matrix": [4, 2], "x": 49, "y": 51, "flags": 4}, - {"matrix": [4, 1], "x": 34, "y": 51, "flags": 4}, - {"matrix": [4, 0], "x": 9, "y": 51, "flags": 4}, - {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 15, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 30, "y": 64, "flags": 1}, - {"matrix": [5, 3], "x": 47, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 103, "y": 64, "flags": 4}, - {"matrix": [5, 9], "x": 159, "y": 64, "flags": 1}, - {"matrix": [5, 10], "x": 177, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 194, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 209, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 224, "y": 64, "flags": 1} - ], - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6BCA", - "shared_endpoint": { - "keyboard": true - }, - "vid": "0x6369" - }, - "ws2812": { - "driver": "pwm", - "pin": "B13" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 1], "x": 2.25, "y": 4}, - {"matrix": [4, 2], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [4, 4], "x": 5.25, "y": 4}, - {"matrix": [4, 5], "x": 6.25, "y": 4}, - {"matrix": [4, 6], "x": 7.25, "y": 4}, - {"matrix": [4, 7], "x": 8.25, "y": 4}, - {"matrix": [4, 8], "x": 9.25, "y": 4}, - {"matrix": [4, 9], "x": 10.25, "y": 4}, - {"matrix": [4, 10], "x": 11.25, "y": 4}, - {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 12], "x": 14, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5}, - {"matrix": [5, 1], "x": 1, "y": 5}, - {"matrix": [5, 2], "x": 2, "y": 5}, - {"matrix": [5, 3], "x": 3, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 4.25, "y": 5, "w": 6.25}, - {"matrix": [5, 9], "x": 10.5, "y": 5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.75, "y": 5, "w": 1.25}, - {"matrix": [5, 11], "x": 13, "y": 5}, - {"matrix": [5, 12], "x": 14, "y": 5}, - {"matrix": [5, 13], "x": 15, "y": 5} - ] - } - } -} diff --git a/keyboards/cipulot/ok_1/keymaps/default/keymap.c b/keyboards/cipulot/ok_1/keymaps/default/keymap.c deleted file mode 100644 index ceadc4c064..0000000000 --- a/keyboards/cipulot/ok_1/keymaps/default/keymap.c +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -enum layers{ - _MAC_BASE, - _MAC_FN, - _WIN_BASE, - _WIN_FN -}; - -enum custom_keycodes { - SNIP = SAFE_RANGE, -}; -// clang-format on - -#define MAC PDF(_MAC_BASE) -#define WIN PDF(_WIN_BASE) - -#define MACFN MO(_MAC_FN) -#define WINFN MO(_WIN_FN) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [_MAC_BASE] = LAYOUT( - 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_DEL, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - MACFN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, KC_LEFT, KC_DOWN, KC_RIGHT - ), - [_MAC_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_MCTL, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, SNIP, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, WIN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_PREV - ), - [_WIN_BASE] = LAYOUT( - 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_DEL, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - WINFN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT - ), - [_WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, SNIP, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, MAC, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_PREV - ), - // clang-format on -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SNIP: - if (record->event.pressed) { - if (IS_LAYER_ON(_WIN_FN)) { - tap_code(KC_PSCR); - } else if (IS_LAYER_ON(_MAC_FN)) { - tap_code16(LSFT(LGUI(KC_3))); - } - } - return false; - - default: - return true; - } -} diff --git a/keyboards/cipulot/ok_1/mcuconf.h b/keyboards/cipulot/ok_1/mcuconf.h deleted file mode 100644 index e65368bf26..0000000000 --- a/keyboards/cipulot/ok_1/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Cipulot - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ok_1/readme.md b/keyboards/cipulot/ok_1/readme.md deleted file mode 100644 index aa003326d9..0000000000 --- a/keyboards/cipulot/ok_1/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# OK-1 - -OK-1 is a low profile keyboard. - -* Keyboard Maintainer: [cipulot](https://github.com/cipulot) -* Hardware Supported: OK-1 -* Hardware Availability: TBD - -Make example for this keyboard (after setting up your build environment): - - make cipulot/ok_1:default - -Flashing example for this keyboard: - - make cipulot/ok_1: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: - -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured. -* **Physical reset button**: Long press the reset button soldered on the PCB. -* **Bootmagic reset**: Hold down the top left key and plug in the controller. diff --git a/keyboards/cipulot/ok_1/rules.mk b/keyboards/cipulot/ok_1/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/cipulot/ok_1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cipulot/rf_r1_8_9xu/config.h b/keyboards/cipulot/rf_r1_8_9xu/config.h index 91e3a459c3..cd98ff7f3d 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/config.h +++ b/keyboards/cipulot/rf_r1_8_9xu/config.h @@ -19,8 +19,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 -#define UNUSED_POSITIONS_LIST { {5, 3}, {5, 5} } - #define MATRIX_ROW_PINS \ { B15, A8, B13, B12, B14, B0 } diff --git a/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk b/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk index 5dba48cc5f..d726a112a8 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk @@ -1 +1,3 @@ -include keyboards/cipulot/common/common_cipulot.mk +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/rf_r1_8_9xu/rules.mk b/keyboards/cipulot/rf_r1_8_9xu/rules.mk index 3aa0e2bf06..318e0215ce 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/rules.mk @@ -1 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/ck60i/keyboard.json b/keyboards/ck60i/keyboard.json index d628275c48..72b57598a4 100644 --- a/keyboards/ck60i/keyboard.json +++ b/keyboards/ck60i/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CK60i", "manufacturer": "CandyKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x434B", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ckeys/handwire_101/keyboard.json b/keyboards/ckeys/handwire_101/keyboard.json index 088d3b5227..642d0d8a25 100644 --- a/keyboards/ckeys/handwire_101/keyboard.json +++ b/keyboards/ckeys/handwire_101/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x4" }, diff --git a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c index 74f7cf6f2c..0b26d61322 100755 --- a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c +++ b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c @@ -117,10 +117,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------------------------------------' */ [_MOUSE] = LAYOUT_ortho_4x4( - MS_BTN5, _______, MS_WHLU, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, - MS_BTN4, MS_LEFT, MS_DOWN, MS_RGHT, - MS_BTN3, MS_WHLL, MS_WHLD, MS_WHLR + KC_BTN5, _______, KC_WH_U, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, + KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R ), /* TERMINAL * ,---------------------------------------. diff --git a/keyboards/ckeys/nakey/keyboard.json b/keyboards/ckeys/nakey/keyboard.json index e9cbced1f1..85f744217f 100644 --- a/keyboards/ckeys/nakey/keyboard.json +++ b/keyboards/ckeys/nakey/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "naKey", "manufacturer": "cKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ckeys/obelus/keyboard.json b/keyboards/ckeys/obelus/keyboard.json index d0929647dc..797bb870b9 100644 --- a/keyboards/ckeys/obelus/keyboard.json +++ b/keyboards/ckeys/obelus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Obelus", "manufacturer": "cKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/ckeys/thedora/keyboard.json b/keyboards/ckeys/thedora/keyboard.json index d1e3ffd4da..d287e81a0b 100644 --- a/keyboards/ckeys/thedora/keyboard.json +++ b/keyboards/ckeys/thedora/keyboard.json @@ -11,6 +11,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "midi": true, diff --git a/keyboards/ckeys/thedora/keymaps/default/keymap.c b/keyboards/ckeys/thedora/keymaps/default/keymap.c index dd856ea23e..9c0d756562 100755 --- a/keyboards/ckeys/thedora/keymaps/default/keymap.c +++ b/keyboards/ckeys/thedora/keymaps/default/keymap.c @@ -123,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ [_MOUSE] = LAYOUT( - MS_BTN5, _______, MS_WHLU, _______, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, TG(_MOUSE), - MS_BTN4, MS_LEFT, MS_DOWN, MS_RGHT, _______, - _______, MS_BTN3, MS_WHLL, MS_WHLD, MS_WHLR, _______ + KC_BTN5, _______, KC_WH_U, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, TG(_MOUSE), + KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, _______, + _______, KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R, _______ ), // ADMIN LAYER diff --git a/keyboards/ckeys/washington/keyboard.json b/keyboards/ckeys/washington/keyboard.json index 76e6322ccb..b410e16f93 100644 --- a/keyboards/ckeys/washington/keyboard.json +++ b/keyboards/ckeys/washington/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/clap_studio/flame60/keyboard.json b/keyboards/clap_studio/flame60/keyboard.json deleted file mode 100644 index 8ceaa45990..0000000000 --- a/keyboards/clap_studio/flame60/keyboard.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "manufacturer": "Clap_Studio", - "keyboard_name": "Flame60", - "maintainer": "Freather", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B3", "B7", "D3", "D2", "D1", "D0", "B5", "B4", "D7", "D6", "D4"], - "rows": ["F4", "F1", "D5", "B6", "F5"] - }, - "processor": "atmega32u4", - "url": "https://www.instagram.com/clap__studio__/", - "usb": { - "device_version": "1.0.0", - "pid": "0x464C", - "vid": "0x434C" - }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/clap_studio/flame60/keymaps/default/keymap.c b/keyboards/clap_studio/flame60/keymaps/default/keymap.c deleted file mode 100644 index bbf725d3b0..0000000000 --- a/keyboards/clap_studio/flame60/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_ansi( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL - ), - - [1] = LAYOUT_60_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/clap_studio/flame60/readme.md b/keyboards/clap_studio/flame60/readme.md deleted file mode 100644 index 9e1c6a1163..0000000000 --- a/keyboards/clap_studio/flame60/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Flame60 - -![Flame60 PCB](https://i.imgur.com/vdOxw3j.jpeg) - -The Flame60 consists of a screwless exterior, flex cut pcb and plate to ensure a soft typing experience. - -* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/frankBTHID) -* Hardware Supported: Atmega32u4 -* Hardware Availability: [CLAP.STUDIO (Instagram)](https://www.instagram.com/clap__studio__/) - -Make example for this keyboard (after setting up your build environment): - - make clap_studio/flame60:default - -Flashing example for this keyboard: - - make clap_studio/flame60:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/clawsome/bookerboard/keyboard.json b/keyboards/clawsome/bookerboard/keyboard.json index 7e3065863a..a72260eb60 100644 --- a/keyboards/clawsome/bookerboard/keyboard.json +++ b/keyboards/clawsome/bookerboard/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bookerboard", "manufacturer": "AlisGraveNil", + "url": "", "maintainer": "AlisGraveNil", "usb": { "vid": "0xFEED", diff --git a/keyboards/clawsome/coupe/keyboard.json b/keyboards/clawsome/coupe/keyboard.json index 8910221eb6..576b8e7164 100644 --- a/keyboards/clawsome/coupe/keyboard.json +++ b/keyboards/clawsome/coupe/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D7", "D2", "C6", "B5", "D4", "B4", "D0", "D3", "D1", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/clawsome/doodle/keyboard.json b/keyboards/clawsome/doodle/keyboard.json index 51eeacc02c..0b3f4cc4e7 100644 --- a/keyboards/clawsome/doodle/keyboard.json +++ b/keyboards/clawsome/doodle/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D4", "C6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/fightpad/keyboard.json b/keyboards/clawsome/fightpad/keyboard.json index 2ac2fdff0d..7333349028 100644 --- a/keyboards/clawsome/fightpad/keyboard.json +++ b/keyboards/clawsome/fightpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -19,7 +21,8 @@ "rows": ["B5", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_0/keyboard.json b/keyboards/clawsome/gamebuddy/v1_0/keyboard.json index ebfd7970c4..978a3ad974 100644 --- a/keyboards/clawsome/gamebuddy/v1_0/keyboard.json +++ b/keyboards/clawsome/gamebuddy/v1_0/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D1", "D0", "E6", "B3", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_m/keyboard.json b/keyboards/clawsome/gamebuddy/v1_m/keyboard.json index 1a0014a1ac..dd9f39f97e 100644 --- a/keyboards/clawsome/gamebuddy/v1_m/keyboard.json +++ b/keyboards/clawsome/gamebuddy/v1_m/keyboard.json @@ -21,7 +21,8 @@ "rows": ["C6", "D7", "B5", "B3", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/numeros/keyboard.json b/keyboards/clawsome/numeros/keyboard.json index 2b9e0331ab..728a1a1853 100644 --- a/keyboards/clawsome/numeros/keyboard.json +++ b/keyboards/clawsome/numeros/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D0", "C6", "B2", "B6", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["numpad_5x4"], "layouts": { "LAYOUT_numpad_5x4": { diff --git a/keyboards/clawsome/roadster/keyboard.json b/keyboards/clawsome/roadster/keyboard.json index 1300a29623..895b97721b 100644 --- a/keyboards/clawsome/roadster/keyboard.json +++ b/keyboards/clawsome/roadster/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D2", "D3", "D0", "D1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/sidekick/keyboard.json b/keyboards/clawsome/sidekick/keyboard.json index f2712a367d..4f535d09aa 100644 --- a/keyboards/clawsome/sidekick/keyboard.json +++ b/keyboards/clawsome/sidekick/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sidekick", "manufacturer": "AlisGraveNil", + "url": "", "maintainer": "AlisGraveNil", "usb": { "vid": "0xFEED", diff --git a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c index 65ca621330..6bf9824472 100644 --- a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c +++ b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, - _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, KC_VOLD, _______, _______, _______, - _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, KC_VOLD, _______, _______, _______, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk new file mode 100644 index 0000000000..9d35960f7c --- /dev/null +++ b/keyboards/clickety_split/leeloo/rules.mk @@ -0,0 +1,2 @@ +# Default Folder +DEFAULT_FOLDER = clickety_split/leeloo/rev3 diff --git a/keyboards/clog/keyboard.json b/keyboards/clog/keyboard.json deleted file mode 100644 index 6197a176e5..0000000000 --- a/keyboards/clog/keyboard.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "keyboard_name": "The Clog", - "manufacturer": "S'mores", - "url": "https://github.com/smores56/clog", - "maintainer": "@smores56", - "usb": { - "vid": "0xBEEF", - "pid": "0x5051", - "device_version": "0.0.1" - }, - "development_board": "elite_c", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "direct": [ - ["B2", "F7", "F6", "F5", "F4"], - ["B6", "B3", "B1", "D3", "D1"], - ["D0", "D4", "C6", "D7", "E6"], - ["B4", "B5", null, null, null] - ] - }, - "split": { - "bootmagic": { - "matrix": [4, 4] - }, - "enabled": true, - "matrix_pins": { - "right": { - "direct": [ - ["F4", "F5", "F6", "F7", "B2"], - ["D1", "D3", "B1", "B3", "B6"], - ["E6", "D7", "C6", "D4", "D0"], - ["B5", "B4", null, null, null] - ] - } - }, - "serial": { - "pin": "D2" - } - }, - "community_layouts": ["split_3x5_2"], - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x5_2" - }, - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - {"label": "L01", "matrix": [0, 0], "x": 0, "y": 2.27}, - {"label": "L02", "matrix": [0, 1], "x": 2, "y": 0.31}, - {"label": "L03", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "L04", "matrix": [0, 3], "x": 4, "y": 0.28}, - {"label": "L05", "matrix": [0, 4], "x": 5, "y": 0.42}, - {"label": "R01", "matrix": [4, 0], "x": 9, "y": 0.42}, - {"label": "R02", "matrix": [4, 1], "x": 10, "y": 0.28}, - {"label": "R03", "matrix": [4, 2], "x": 11, "y": 0}, - {"label": "R04", "matrix": [4, 3], "x": 12, "y": 0.31}, - {"label": "R05", "matrix": [4, 4], "x": 14, "y": 2.27}, - {"label": "L06", "matrix": [1, 0], "x": 0, "y": 2.27}, - {"label": "L07", "matrix": [1, 1], "x": 2, "y": 1.31}, - {"label": "L08", "matrix": [1, 2], "x": 3, "y": 1}, - {"label": "L09", "matrix": [1, 3], "x": 4, "y": 1.28}, - {"label": "L10", "matrix": [1, 4], "x": 5, "y": 1.42}, - {"label": "R06", "matrix": [5, 0], "x": 9, "y": 1.42}, - {"label": "R07", "matrix": [5, 1], "x": 10, "y": 1.28}, - {"label": "R08", "matrix": [5, 2], "x": 11, "y": 1}, - {"label": "R09", "matrix": [5, 3], "x": 12, "y": 1.31}, - {"label": "R10", "matrix": [5, 4], "x": 14, "y": 2.27}, - {"label": "L11", "matrix": [2, 0], "x": 0, "y": 3.27}, - {"label": "L12", "matrix": [2, 1], "x": 2, "y": 2.31}, - {"label": "L13", "matrix": [2, 2], "x": 3, "y": 2}, - {"label": "L14", "matrix": [2, 3], "x": 4, "y": 2.28}, - {"label": "L15", "matrix": [2, 4], "x": 5, "y": 2.42}, - {"label": "R11", "matrix": [6, 0], "x": 9, "y": 2.42}, - {"label": "R12", "matrix": [6, 1], "x": 10, "y": 2.28}, - {"label": "R13", "matrix": [6, 2], "x": 11, "y": 2}, - {"label": "R14", "matrix": [6, 3], "x": 12, "y": 2.31}, - {"label": "R15", "matrix": [6, 4], "x": 14, "y": 3.27}, - {"label": "L16", "matrix": [3, 0], "x": 5, "y": 3.9}, - {"label": "L17", "matrix": [3, 1], "x": 6, "y": 3.7}, - {"label": "R16", "matrix": [7, 0], "x": 8, "y": 3.7}, - {"label": "R17", "matrix": [7, 1], "x": 9, "y": 3.9} - ] - } - } -} diff --git a/keyboards/clog/keymaps/default/config.h b/keyboards/clog/keymaps/default/config.h deleted file mode 100644 index be257a5919..0000000000 --- a/keyboards/clog/keymaps/default/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Sam Mohr (@smores56) -// SPDX-License-Identifier: GPL-2.0+ - -#pragma once - -// Defaults for usable home row mods -#define TAPPING_TERM 250 diff --git a/keyboards/clog/keymaps/default/keymap.c b/keyboards/clog/keymaps/default/keymap.c deleted file mode 100644 index 98617d7de0..0000000000 --- a/keyboards/clog/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2024 Sam Mohr (@smores56) -// SPDX-License-Identifier: GPL-2.0+ - -#include QMK_KEYBOARD_H - -/* Base layer 0 layout uses home row mods. See the following guide for details: - * https://precondition.github.io/home-row-mods - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_2( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - CTL_T(KC_A),ALT_T(KC_S),GUI_T(KC_D),SFT_T(KC_F), KC_G, KC_H, SFT_T(KC_J),GUI_T(KC_K),ALT_T(KC_L),CTL_T(KC_SCLN), - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - LT(2,KC_TAB), KC_ENT, KC_SPC, LT(1,KC_BSPC) - ), - [1] = LAYOUT_split_3x5_2( - KC_INS, KC_1, KC_2, KC_3, KC_VOLU, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DQUO, - KC_DEL, KC_4, KC_5, KC_6, KC_VOLD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, - KC_CAPS, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, - MO(3), QK_GESC, _______, _______ - ), - [2] = LAYOUT_split_3x5_2( - _______, KC_LBRC, KC_LCBR, KC_RCBR, _______, KC_CIRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_TILD, - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, - _______, _______, _______, _______, _______, KC_ASTR, KC_UNDS, KC_PLUS, KC_PIPE, _______, - _______, _______, KC_DEL, MO(3) - ), - [3] = LAYOUT_split_3x5_2( - _______, KC_F1, KC_F2, KC_F3, KC_F10, _______, MS_WHLU, MS_WHLD, _______, QK_BOOT, - _______, KC_F4, KC_F5, KC_F6, KC_F11, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_INS, - _______, KC_F7, KC_F8, KC_F9, KC_F12, _______, MS_BTN1, MS_BTN2, _______, _______, - _______, _______, _______, _______ - ) -}; diff --git a/keyboards/clog/readme.md b/keyboards/clog/readme.md deleted file mode 100644 index ddf7105669..0000000000 --- a/keyboards/clog/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# The Clog - -This is the official firmware for a family of boards designed by [smores56](https://github.com/smores56), -the first of which was [the Clog](https://github.com/smores56/clog). This firmware works for the following boards: - -- [The Clog](https://github.com/smores56/clog) -- [The Clog V3](https://github.com/smores56/clog-v3) -- [The Steel Toe](https://github.com/smores56/steel-toe) -- [The Sephirette](https://github.com/smores56/sephirette) - -Make example for this keyboard (after setting up your build environment): - - make clog:default - -Flashing example for this keyboard: - - make clog: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cloud_macro/keyboard.json b/keyboards/cloud_macro/keyboard.json deleted file mode 100644 index 1fe45a20a3..0000000000 --- a/keyboards/cloud_macro/keyboard.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "manufacturer": "Trey Wax", - "keyboard_name": "cloud_macro", - "maintainer": "TweyHugs", - "development_board": "kb2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "direct":[ - ["GP2", "GP3", "GP4", "GP5", "GP6"] - ] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0} - ] - } - } -} diff --git a/keyboards/cloud_macro/keymaps/default/keymap.c b/keyboards/cloud_macro/keymaps/default/keymap.c deleted file mode 100644 index 866c98f972..0000000000 --- a/keyboards/cloud_macro/keymaps/default/keymap.c +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_1, KC_2, KC_3, KC_4, KC_5) -}; diff --git a/keyboards/cloud_macro/readme.md b/keyboards/cloud_macro/readme.md deleted file mode 100644 index 4f45227160..0000000000 --- a/keyboards/cloud_macro/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# cloud_macro - -![cloud_macro](https://i.imgur.com/n0PMttQ.jpeg) - -A 5 key macropad in the shape of a cloud - -* Keyboard Maintainer: [Trey Wax](https://github.com/TweyHugs) -* Hardware Supported: Adafruit KB2040 -* Hardware Availability: *https://circuitrey.carrd.co/* - -Make example for this keyboard (after setting up your build environment): - - make cloud_macro:default - -Flashing example for this keyboard: - - make cloud_macro:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/clueboard/17/keyboard.json b/keyboards/clueboard/17/keyboard.json index 7b900cafd0..d6aec9cfcc 100644 --- a/keyboards/clueboard/17/keyboard.json +++ b/keyboards/clueboard/17/keyboard.json @@ -8,6 +8,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -31,12 +32,15 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 10, - "led_count": 4 + "led_count": 4, + "saturation_steps": 17 }, "ws2812": { "pin": "F6" }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x2312", diff --git a/keyboards/clueboard/2x1800/2018/keyboard.json b/keyboards/clueboard/2x1800/2018/keyboard.json index cf827de11e..1a926c62b9 100644 --- a/keyboards/clueboard/2x1800/2018/keyboard.json +++ b/keyboards/clueboard/2x1800/2018/keyboard.json @@ -8,6 +8,7 @@ "features": { "audio": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -43,6 +44,7 @@ "twinkle": true }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 16, "saturation_steps": 8 }, diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c index c192f64175..b7fb799ecb 100644 --- a/keyboards/clueboard/2x1800/2019/2019.c +++ b/keyboards/clueboard/2x1800/2019/2019.c @@ -41,12 +41,12 @@ void check_encoder_buttons(void) { dprintf("Turning drawing mode off.\n"); drawing_mode = false; gpio_write_pin_low(D6); - unregister_code(MS_BTN1); + unregister_code(KC_BTN1); } else { dprintf("Turning drawing mode on.\n"); drawing_mode = true; gpio_write_pin_high(D6); - register_code(MS_BTN1); + register_code(KC_BTN1); } } } @@ -88,37 +88,37 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (keycode == ENC_BTN1) { if (record->event.pressed) { btn1_pressed = true; - register_code(MS_BTN1); + register_code(KC_BTN1); } else { btn1_pressed = false; - unregister_code(MS_BTN1); + unregister_code(KC_BTN1); } } if (keycode == ENC_BTN2) { if (record->event.pressed) { btn2_pressed = true; - register_code(MS_BTN2); + register_code(KC_BTN2); } else { btn2_pressed = false; - unregister_code(MS_BTN2); + unregister_code(KC_BTN2); } } if (keycode == ENC_BTN3) { if (record->event.pressed) { btn3_pressed = true; - register_code(MS_BTN3); + register_code(KC_BTN3); } else { btn3_pressed = false; - unregister_code(MS_BTN3); + unregister_code(KC_BTN3); } } if (keycode == ENC_BTN4) { if (record->event.pressed) { btn4_pressed = true; - register_code(MS_BTN4); + register_code(KC_BTN4); } else { btn4_pressed = false; - unregister_code(MS_BTN4); + unregister_code(KC_BTN4); } } @@ -132,16 +132,16 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (encoder_update_user(index, clockwise)) { // Encoder 1, outside left if (index == 0 && clockwise) { - tap_code(MS_UP); // turned right + tap_code(KC_MS_U); // turned right } else if (index == 0) { - tap_code(MS_DOWN); // turned left + tap_code(KC_MS_D); // turned left } // Encoder 2, inside left else if (index == 1 && clockwise) { - tap_code(MS_WHLD); // turned right + tap_code(KC_WH_D); // turned right } else if (index == 1) { - tap_code(MS_WHLU); // turned left + tap_code(KC_WH_U); // turned left } // Encoder 3, inside right @@ -153,9 +153,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { // Encoder 4, outside right else if (index == 3 && clockwise) { - tap_code(MS_RGHT); // turned right + tap_code(KC_MS_R); // turned right } else if (index == 3) { - tap_code(MS_LEFT); // turned left + tap_code(KC_MS_L); // turned left } } return true; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c index b14b6f1878..b2456225f1 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_1u_ansi( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c index 37dabfb7e3..70e38efcba 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_1u_iso( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c index d7ebfb029b..cb41bf9a7d 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_2u_ansi( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c index e1f0c97c94..af3e7f96c7 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_2u_iso( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c index 79a32c74bb..fd7723d3de 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_4u_iso( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c index 9d056dac26..761423bfc4 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_7u_ansi( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_DEL, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c index 738c4792a5..b499999954 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_7u_iso( - MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SCRL, KC_PAUS, KC_DEL, KC_PMNS, KC_NUM, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PSLS, diff --git a/keyboards/clueboard/2x1800/2021/2021.c b/keyboards/clueboard/2x1800/2021/2021.c index bd072c14b2..511c40a699 100644 --- a/keyboards/clueboard/2x1800/2021/2021.c +++ b/keyboards/clueboard/2x1800/2021/2021.c @@ -134,16 +134,16 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { #else // Encoder 1, left if (index == 0 && clockwise) { - tap_code(MS_RGHT); // turned right + tap_code(KC_MS_R); // turned right } else if (index == 0) { - tap_code(MS_LEFT); // turned left + tap_code(KC_MS_L); // turned left } // Encoder 2, right else if (index == 1 && clockwise) { - tap_code(MS_UP); // turned right + tap_code(KC_MS_U); // turned right } else if (index == 1) { - tap_code(MS_DOWN); // turned left + tap_code(KC_MS_D); // turned left } #endif } diff --git a/keyboards/clueboard/60/keyboard.json b/keyboards/clueboard/60/keyboard.json index 4187f5ede4..d0b4d34999 100644 --- a/keyboards/clueboard/60/keyboard.json +++ b/keyboards/clueboard/60/keyboard.json @@ -10,6 +10,7 @@ "features": { "audio": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/clueboard/66/rev1/keyboard.json b/keyboards/clueboard/66/rev1/keyboard.json index 3675f7170f..ca1e3a6553 100644 --- a/keyboards/clueboard/66/rev1/keyboard.json +++ b/keyboards/clueboard/66/rev1/keyboard.json @@ -7,6 +7,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -32,8 +33,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 10, - "led_count": 14 + "led_count": 14, + "saturation_steps": 17 }, "ws2812": { "pin": "B2" diff --git a/keyboards/clueboard/66/rev2/keyboard.json b/keyboards/clueboard/66/rev2/keyboard.json index 4681056ece..fea4f8d39b 100644 --- a/keyboards/clueboard/66/rev2/keyboard.json +++ b/keyboards/clueboard/66/rev2/keyboard.json @@ -7,6 +7,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -33,8 +34,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 32, - "led_count": 14 + "led_count": 14, + "saturation_steps": 17 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66/rev3/keyboard.json b/keyboards/clueboard/66/rev3/keyboard.json index 03a7608876..4553979d8a 100644 --- a/keyboards/clueboard/66/rev3/keyboard.json +++ b/keyboards/clueboard/66/rev3/keyboard.json @@ -8,6 +8,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -32,8 +34,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 32, - "led_count": 18 + "led_count": 18, + "saturation_steps": 17 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66/rev4/keyboard.json b/keyboards/clueboard/66/rev4/keyboard.json index c854cfff99..dbc1b94915 100644 --- a/keyboards/clueboard/66/rev4/keyboard.json +++ b/keyboards/clueboard/66/rev4/keyboard.json @@ -9,6 +9,7 @@ "features": { "audio": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -31,8 +32,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 32, - "led_count": 18 + "led_count": 18, + "saturation_steps": 17 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66_hotswap/prototype/keyboard.json b/keyboards/clueboard/66_hotswap/prototype/keyboard.json index 17dd296d4f..9d0b0dd27c 100644 --- a/keyboards/clueboard/66_hotswap/prototype/keyboard.json +++ b/keyboards/clueboard/66_hotswap/prototype/keyboard.json @@ -9,6 +9,7 @@ "audio": true, "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, @@ -38,8 +39,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 32, - "led_count": 26 + "led_count": 26, + "saturation_steps": 17 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/california/keyboard.json b/keyboards/clueboard/california/keyboard.json index 15467d4deb..66b4b484e2 100644 --- a/keyboards/clueboard/california/keyboard.json +++ b/keyboards/clueboard/california/keyboard.json @@ -1,5 +1,6 @@ { "keyboard_name": "Clueboard California", + "url": "", "maintainer": "skullydazed", "processor": "STM32F303", "board": "QMK_PROTON_C", diff --git a/keyboards/clueboard/card/keyboard.json b/keyboards/clueboard/card/keyboard.json index b5d5122c3d..0425819ed7 100644 --- a/keyboards/clueboard/card/keyboard.json +++ b/keyboards/clueboard/card/keyboard.json @@ -10,6 +10,7 @@ "audio": true, "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -24,8 +25,10 @@ "rows": ["F0", "F5", "F4", "B4"] }, "rgblight": { + "brightness_steps": 17, "hue_steps": 10, - "led_count": 4 + "led_count": 4, + "saturation_steps": 17 }, "ws2812": { "pin": "E6" diff --git a/keyboards/cmm_studio/fuji65/keyboard.json b/keyboards/cmm_studio/fuji65/keyboard.json index 55ff233335..c4f1e5156e 100644 --- a/keyboards/cmm_studio/fuji65/keyboard.json +++ b/keyboards/cmm_studio/fuji65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Fuji65", "manufacturer": "CMM.Studio", + "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", @@ -29,6 +30,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/cmm_studio/saka68/hotswap/keyboard.json b/keyboards/cmm_studio/saka68/hotswap/keyboard.json index 8ea3185bf7..6dc3ec639a 100644 --- a/keyboards/cmm_studio/saka68/hotswap/keyboard.json +++ b/keyboards/cmm_studio/saka68/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Saka68 Hotswap", "manufacturer": "CMM.Studio", + "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", diff --git a/keyboards/cmm_studio/saka68/solder/keyboard.json b/keyboards/cmm_studio/saka68/solder/keyboard.json index 977162e6a4..d5aea40763 100644 --- a/keyboards/cmm_studio/saka68/solder/keyboard.json +++ b/keyboards/cmm_studio/saka68/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Saka68 Solder", "manufacturer": "CMM.Studio", + "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/coarse/ixora/keyboard.json b/keyboards/coarse/ixora/keyboard.json index ebcc345d52..33ba2270ac 100644 --- a/keyboards/coarse/ixora/keyboard.json +++ b/keyboards/coarse/ixora/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ixora Rev1", "manufacturer": "PeiorisBoards", + "url": "", "maintainer": "Peioris", "usb": { "vid": "0xFEED", diff --git a/keyboards/coarse/vinta/keyboard.json b/keyboards/coarse/vinta/keyboard.json index 07d5edb29b..df9aa7e5a1 100644 --- a/keyboards/coarse/vinta/keyboard.json +++ b/keyboards/coarse/vinta/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vinta R1", "manufacturer": "PeiorisBoards", + "url": "", "maintainer": "Peioris", "usb": { "vid": "0xFEED", diff --git a/keyboards/coban/pad12a/config.h b/keyboards/coban/pad12a/config.h deleted file mode 100644 index b6b096ad05..0000000000 --- a/keyboards/coban/pad12a/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 RyanDam (https://github.com/RyanDam) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/coban/pad12a/keyboard.json b/keyboards/coban/pad12a/keyboard.json deleted file mode 100644 index dc027d46f4..0000000000 --- a/keyboards/coban/pad12a/keyboard.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "keyboard_name": "Coban Pad 12A", - "name": "Coban Pad 12A", - "url": "https://cobanstationery.com", - "maintainer": "Coban Stationery", - "manufacturer": "Coban Stationery", - "usb": { - "pid": "0xC12A", - "vid": "0xCB3A", - "device_version": "1.0.0" - }, - "matrix_pins": { - "cols": ["GP18", "GP16", "GP11", "GP10"], - "rows": ["GP19", "GP17", "GP12"] - }, - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "GP20", "pin_b": "GP21"} - ] - }, - "processor": "RP2040", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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} - ] - } - } -} diff --git a/keyboards/coban/pad12a/keymaps/default/keymap.c b/keyboards/coban/pad12a/keymaps/default/keymap.c deleted file mode 100644 index 0ef7814f63..0000000000 --- a/keyboards/coban/pad12a/keymaps/default/keymap.c +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2025 RyanDam (https://github.com/RyanDam) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MPLY, KC_MPRV, KC_MUTE, KC_MNXT, - KC_PGUP, KC_ESC, KC_UP, KC_ENT, - KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT - ), -}; - - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, -}; -#endif diff --git a/keyboards/coban/pad12a/keymaps/default/rules.mk b/keyboards/coban/pad12a/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/coban/pad12a/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/coban/pad12a/readme.md b/keyboards/coban/pad12a/readme.md deleted file mode 100644 index 92b5b4528b..0000000000 --- a/keyboards/coban/pad12a/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Coban Pad 12A - -![Coban Pad 12A](https://i.imgur.com/PTIaQld.jpeg) -Small ortho keyboard with 11 hotswapable buttons and 1 encoder - -* Keyboard Maintainer: [RyanDam](https://github.com/RyanDam) -* Hardware Supported: Coban Pad 12A - -Make example for this keyboard (after setting up your build environment): - - make coban/pad12a:default - -Flashing example for this keyboard: - - make coban/pad12a:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader: - -* **boot button**: Hold the BOOT button on the back of the PCB while plug in usb cable diff --git a/keyboards/coban/pad3a/keyboard.json b/keyboards/coban/pad3a/keyboard.json index b2a9c32b77..a9a78b8220 100644 --- a/keyboards/coban/pad3a/keyboard.json +++ b/keyboards/coban/pad3a/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/coban/pad9a/keyboard.json b/keyboards/coban/pad9a/keyboard.json index d34f2b000b..1b5efb3456 100644 --- a/keyboards/coban/pad9a/keyboard.json +++ b/keyboards/coban/pad9a/keyboard.json @@ -69,7 +69,7 @@ {"label": "key_3", "matrix": [0, 4], "x": 2, "y": 1}, {"label": "key_4", "matrix": [0, 5], "x": 0, "y": 2}, {"label": "key_5", "matrix": [0, 6], "x": 1, "y": 2}, - {"label": "key_6", "matrix": [0, 7], "x": 2, "y": 2} + {"label": "key_6", "matrix": [0, 7], "x": 2, "y": 3} ] } } diff --git a/keyboards/coban/pad9a/keymaps/default/keymap.c b/keyboards/coban/pad9a/keymaps/default/keymap.c index 2638b2c2e7..9ef5fc54d7 100644 --- a/keyboards/coban/pad9a/keymaps/default/keymap.c +++ b/keyboards/coban/pad9a/keymaps/default/keymap.c @@ -26,6 +26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #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(MS_WHLU, MS_WHLD) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, }; #endif diff --git a/keyboards/compound/keyboard.json b/keyboards/compound/keyboard.json index d30389da84..a0a1e1e949 100644 --- a/keyboards/compound/keyboard.json +++ b/keyboards/compound/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/concreteflowers/cor/keyboard.json b/keyboards/concreteflowers/cor/keyboard.json deleted file mode 100644 index ff7f9d1777..0000000000 --- a/keyboards/concreteflowers/cor/keyboard.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "manufacturer": "concreteflowers", - "keyboard_name": "cor", - "maintainer": "ramonimbao", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "rows": ["F0", "F1", "F4", "B3", "B6"], - "cols": ["F5", "F6", "F7", "C6", "C7", "B1", "B7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"] - }, - "processor": "atmega32u4", - "usb": { - "device_version": "1.0.0", - "vid": "0x5001", - "pid": "0x0002" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_ansi_blocker_split_bs" - }, - "layouts": { - "LAYOUT_ansi_blocker": { - "layout": [ - {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0, "w": 2}, - {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, - - {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, - {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, - - {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, - - {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, - {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, - {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, - {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, - {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, - {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, - - {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 7], "x": 5, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, - {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, - {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} - ] - }, - "LAYOUT_ansi_blocker_split_bs": { - "layout": [ - {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, - - {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, - {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, - - {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, - - {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, - {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, - {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, - {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, - {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, - {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, - - {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 7], "x": 5, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, - {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, - {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} - ] - }, - "LAYOUT_ansi_blocker_tsangan": { - "layout": [ - {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0, "w": 2}, - {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, - - {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, - {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, - - {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, - - {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, - {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, - {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, - {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, - {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, - {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, - - {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"label": "GUI", "matrix": [4, 2], "x": 2.75, "y": 4}, - {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, - {"label": "Ctrl", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, - {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, - {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} - ] - }, - "LAYOUT_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, - - {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, - {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, - - {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, - - {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, - {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, - {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, - {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, - {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, - {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, - - {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"label": "GUI", "matrix": [4, 2], "x": 2.75, "y": 4}, - {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, - {"label": "Ctrl", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, - {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, - {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, - {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} - ] - } - } -} diff --git a/keyboards/concreteflowers/cor/readme.md b/keyboards/concreteflowers/cor/readme.md deleted file mode 100644 index a63012ee5c..0000000000 --- a/keyboards/concreteflowers/cor/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# concrete flowers cor - -![concrete flowers cor](https://i.imgur.com/AOT6mmMl.jpg) - -An exploded 65% with a macro column. - -* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) -* Hardware Supported: ATmega32u4 - -Make example for this keyboard (after setting up your build environment): - - make concreteflowers/cor:default - -Flashing example for this keyboard: - - make concrete flowers/cor: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 upper left key and plug in the keyboard -* **Physical reset button**: Briefly press the reset button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json deleted file mode 100644 index d5a293eaa3..0000000000 --- a/keyboards/concreteflowers/cor_tkl/keyboard.json +++ /dev/null @@ -1,584 +0,0 @@ -{ - "keyboard_name": "Cor TKL", - "manufacturer": "concreteflowers", - "maintainer": "ramonimbao", - "community_layouts": [ - "tkl_f13_ansi", - "tkl_f13_ansi_split_bs_rshift", - "tkl_f13_iso", - "tkl_f13_iso_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", - "LAYOUT_iso": "LAYOUT_tkl_f13_iso" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": false, - "rgb_matrix": true - }, - "usb": { - "vid": "0x5001", - "pid": "0x0003", - "device_version": "1.0.0" - }, - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP5"], - "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] - }, - "rgb_matrix": { - "driver": "ws2812" - }, - "ws2812": { - "pin": "GP19", - "driver": "vendor" - }, - "layouts": { - "LAYOUT_tkl_f13_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 13], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 13], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 13], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/concreteflowers/cor_tkl/readme.md b/keyboards/concreteflowers/cor_tkl/readme.md deleted file mode 100644 index 0e482bfb2f..0000000000 --- a/keyboards/concreteflowers/cor_tkl/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# concrete flowers cor TKL - -![Cor TKL](https://i.imgur.com/RGctsaVl.png) - -* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) -* Hardware Supported: RP2040 - -Make example for this keyboard (after setting up your build environment): - - make concreteflowers/cor_tkl:default - -To get to the bootloader, simply press the reset button located at the back of the PCB. You can then flash new firmware onto it. - -Flashing example for this keyboard: - - make concreteflowers/cor_tkl: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). diff --git a/keyboards/contender/keyboard.json b/keyboards/contender/keyboard.json index ef0812ae19..2e5ef84412 100644 --- a/keyboards/contender/keyboard.json +++ b/keyboards/contender/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/contra/keyboard.json b/keyboards/contra/keyboard.json index 5c02afd061..ffa32d6555 100644 --- a/keyboards/contra/keyboard.json +++ b/keyboards/contra/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Contra", "manufacturer": "Cartel", + "url": "", "maintainer": "qmk", "features": { "bootmagic": true, @@ -13,7 +14,8 @@ "pid": "0x0001", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "diode_direction": "COL2ROW", "matrix_pins": { "cols": ["F4", "F5", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"], diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c index 645005769a..29f98033d6 100644 --- a/keyboards/contra/keymaps/default/keymap.c +++ b/keyboards/contra/keymaps/default/keymap.c @@ -28,17 +28,16 @@ enum planck_layers { }; enum planck_keycodes { - PLOVER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, LOWER, RAISE, BACKLIT, EXT_PLV }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -178,6 +177,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -222,9 +240,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; break; diff --git a/keyboards/controllerworks/city42/keyboard.json b/keyboards/controllerworks/city42/keyboard.json index 1343229f77..6657a7485b 100644 --- a/keyboards/controllerworks/city42/keyboard.json +++ b/keyboards/controllerworks/city42/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/controllerworks/city42/keymaps/default/keymap.c b/keyboards/controllerworks/city42/keymaps/default/keymap.c index b6b3597e98..7f46648a7e 100644 --- a/keyboards/controllerworks/city42/keymaps/default/keymap.c +++ b/keyboards/controllerworks/city42/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/controllerworks/mini36/keyboard.json b/keyboards/controllerworks/mini36/keyboard.json index 64327709a3..8039025a28 100644 --- a/keyboards/controllerworks/mini36/keyboard.json +++ b/keyboards/controllerworks/mini36/keyboard.json @@ -54,6 +54,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/controllerworks/mini36/keymaps/default/keymap.c b/keyboards/controllerworks/mini36/keymaps/default/keymap.c index 45f46b47bd..b5fbe49bb2 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini36/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------------------------------------------. ,--------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/controllerworks/mini42/keyboard.json b/keyboards/controllerworks/mini42/keyboard.json index f917cdd990..ceb7f8ce1f 100644 --- a/keyboards/controllerworks/mini42/keyboard.json +++ b/keyboards/controllerworks/mini42/keyboard.json @@ -54,6 +54,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/controllerworks/mini42/keymaps/default/keymap.c b/keyboards/controllerworks/mini42/keymaps/default/keymap.c index 50ffd9fd55..af9a62b400 100644 --- a/keyboards/controllerworks/mini42/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini42/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/converter/a1200/miss1200/keyboard.json b/keyboards/converter/a1200/miss1200/keyboard.json index 5f090449a9..1f7bfcda3f 100644 --- a/keyboards/converter/a1200/miss1200/keyboard.json +++ b/keyboards/converter/a1200/miss1200/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/converter/a1200/mistress1200/keyboard.json b/keyboards/converter/a1200/mistress1200/keyboard.json index 73c0846ea8..c2cf110b2a 100644 --- a/keyboards/converter/a1200/mistress1200/keyboard.json +++ b/keyboards/converter/a1200/mistress1200/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "grave_esc": false, "magic": false, diff --git a/keyboards/converter/a1200/teensy2pp/keyboard.json b/keyboards/converter/a1200/teensy2pp/keyboard.json index f5922cf3e2..0766123913 100644 --- a/keyboards/converter/a1200/teensy2pp/keyboard.json +++ b/keyboards/converter/a1200/teensy2pp/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/converter/adb_usb/info.json b/keyboards/converter/adb_usb/info.json index 3452efd709..3fbe2c0c74 100644 --- a/keyboards/converter/adb_usb/info.json +++ b/keyboards/converter/adb_usb/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "ADB to USB Keyboard Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk index b4a73249dd..28df56c337 100644 --- a/keyboards/converter/adb_usb/rules.mk +++ b/keyboards/converter/adb_usb/rules.mk @@ -3,3 +3,5 @@ CUSTOM_MATRIX = yes SRC += matrix.c adb.c led.c # OPT_DEFS += -DADB_MOUSE_ENABLE -DMOUSE_ENABLE + +DEFAULT_FOLDER = converter/adb_usb/rev1 diff --git a/keyboards/converter/ibm_terminal/keyboard.json b/keyboards/converter/ibm_terminal/keyboard.json index d37bb2b147..b95ea58d20 100644 --- a/keyboards/converter/ibm_terminal/keyboard.json +++ b/keyboards/converter/ibm_terminal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "IBM Terminal to USB Keyboard Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/m0110_usb/keyboard.json b/keyboards/converter/m0110_usb/keyboard.json index c4803b6e88..11b83bbb18 100644 --- a/keyboards/converter/m0110_usb/keyboard.json +++ b/keyboards/converter/m0110_usb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Apple M0110(A) to USB Keyboard Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/numeric_keypad_iie/keyboard.json b/keyboards/converter/numeric_keypad_iie/keyboard.json index 6d64654846..6dcffe7e21 100644 --- a/keyboards/converter/numeric_keypad_iie/keyboard.json +++ b/keyboards/converter/numeric_keypad_iie/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Numeric Keypad IIe", "manufacturer": "Apple Inc.", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/palm_usb/stowaway/config.h b/keyboards/converter/palm_usb/config.h similarity index 100% rename from keyboards/converter/palm_usb/stowaway/config.h rename to keyboards/converter/palm_usb/config.h diff --git a/keyboards/converter/palm_usb/info.json b/keyboards/converter/palm_usb/info.json new file mode 100644 index 0000000000..c5b893d757 --- /dev/null +++ b/keyboards/converter/palm_usb/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Stowaway Converter", + "manufacturer": "QMK", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": false, + "console": true, + "command": true + } +} diff --git a/keyboards/converter/palm_usb/stowaway/matrix.c b/keyboards/converter/palm_usb/matrix.c similarity index 100% rename from keyboards/converter/palm_usb/stowaway/matrix.c rename to keyboards/converter/palm_usb/matrix.c diff --git a/keyboards/converter/palm_usb/stowaway/readme.md b/keyboards/converter/palm_usb/readme.md similarity index 100% rename from keyboards/converter/palm_usb/stowaway/readme.md rename to keyboards/converter/palm_usb/readme.md diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk new file mode 100644 index 0000000000..bdb3bb0d6b --- /dev/null +++ b/keyboards/converter/palm_usb/rules.mk @@ -0,0 +1,7 @@ +#HARDWARE_SERIAL = yes +CUSTOM_MATRIX = yes + +SRC += matrix.c +UART_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = converter/palm_usb/stowaway diff --git a/keyboards/converter/palm_usb/stowaway/keyboard.json b/keyboards/converter/palm_usb/stowaway/keyboard.json index 6488b5c23c..9a263327ad 100644 --- a/keyboards/converter/palm_usb/stowaway/keyboard.json +++ b/keyboards/converter/palm_usb/stowaway/keyboard.json @@ -1,21 +1,4 @@ { - "keyboard_name": "Stowaway Converter", - "manufacturer": "QMK", - "maintainer": "qmk", - "usb": { - "vid": "0xFEED", - "pid": "0x0001", - "device_version": "1.0.0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "features": { - "bootmagic": false, - "mousekey": false, - "extrakey": false, - "console": true, - "command": true - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/converter/palm_usb/stowaway/rules.mk b/keyboards/converter/palm_usb/stowaway/rules.mk deleted file mode 100644 index ccb8eb9ecc..0000000000 --- a/keyboards/converter/palm_usb/stowaway/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -#HARDWARE_SERIAL = yes -CUSTOM_MATRIX = yes - -SRC += matrix.c -UART_DRIVER_REQUIRED = yes diff --git a/keyboards/converter/siemens_tastatur/keyboard.json b/keyboards/converter/siemens_tastatur/keyboard.json index 8f9f31bef1..710a2902cb 100644 --- a/keyboards/converter/siemens_tastatur/keyboard.json +++ b/keyboards/converter/siemens_tastatur/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Siemens Tastatur", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x8968", diff --git a/keyboards/converter/sun_usb/info.json b/keyboards/converter/sun_usb/info.json index 57c38520ff..e4031595ad 100644 --- a/keyboards/converter/sun_usb/info.json +++ b/keyboards/converter/sun_usb/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sun Keyboard Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk index 0268798cc0..d3ec00c5d5 100644 --- a/keyboards/converter/sun_usb/rules.mk +++ b/keyboards/converter/sun_usb/rules.mk @@ -3,3 +3,5 @@ CUSTOM_MATRIX = yes SRC += matrix.c led.c UART_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = converter/sun_usb/type5 diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json b/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json deleted file mode 100644 index 4f876a4a94..0000000000 --- a/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "manufacturer": "strobo5", - "keyboard_name": "converter/thinkpad_t6x/rpi_pico", - "maintainer": "strobo5", - "board": "GENERIC_RP_RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "cols": ["GP7", "GP9", "GP11", "GP13", "GP17", "GP16", "GP14", "GP12", "GP15", "GP8", "GP10", "GP6", "GP4", "GP2", "GP5", "GP3"], - "rows": ["GP20", "GP26", "GP22", "GP21", "GP18", "GP19", "GP27", "GP28"] - }, - "processor": "RP2040", - "ps2": { - "clock_pin": "GP1", - "data_pin": "GP0", - "driver": "vendor", - "enabled": true, - "mouse_enabled": true - }, - "url": "https://github.com/strobo5/T61_PiPico_Scanner", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_iso": { - "layout": [ - {"label": "Esc", "matrix": [5, 0], "x": 0, "y": 0, "w": 0.9, "h": 0.75}, - {"label": "Mute", "matrix": [4, 10], "x": 0.9, "y": 0, "w": 0.75, "h": 0.5}, - {"label": "Vol -", "matrix": [3, 10], "x": 1.65, "y": 0, "w": 0.75, "h": 0.5}, - {"label": "Vol +", "matrix": [2, 10], "x": 2.4, "y": 0, "w": 0.75, "h": 0.5}, - {"label": "ThinkVantage", "matrix": [5, 10], "x": 3.5, "y": 0, "w": 1.25, "h": 0.5}, - {"label": "PrtSc", "matrix": [1, 13], "x": 8.9, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "ScrLk", "matrix": [2, 13], "x": 9.8, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "Pause", "matrix": [6, 12], "x": 10.7, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "Insert", "matrix": [0, 9], "x": 12, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "Home", "matrix": [0, 12], "x": 12.9, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "PgUp", "matrix": [0, 11], "x": 13.8, "y": 0, "w": 0.9, "h": 0.65}, - {"label": "F1", "matrix": [0, 1], "x": 0, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F2", "matrix": [0, 2], "x": 0.9, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F3", "matrix": [3, 2], "x": 1.8, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F4", "matrix": [5, 2], "x": 2.7, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F5", "matrix": [5, 8], "x": 4, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F6", "matrix": [5, 5], "x": 4.9, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F7", "matrix": [3, 6], "x": 5.8, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F8", "matrix": [0, 6], "x": 6.7, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F9", "matrix": [0, 8], "x": 8, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F10", "matrix": [1, 8], "x": 8.9, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F11", "matrix": [1, 10], "x": 9.8, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "F12", "matrix": [1, 9], "x": 10.7, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "Delete", "matrix": [0, 10], "x": 12, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "End", "matrix": [1, 12], "x": 12.9, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "PgDn", "matrix": [1, 11], "x": 13.8, "y": 0.75, "w": 0.9, "h": 0.65}, - {"label": "`\u00ac", "matrix": [0, 0], "x": 0, "y": 1.4}, - {"label": "1!", "matrix": [1, 0], "x": 1, "y": 1.4}, - {"label": "2\"", "matrix": [1, 1], "x": 2, "y": 1.4}, - {"label": "3\u00a3", "matrix": [1, 2], "x": 3, "y": 1.4}, - {"label": "4$", "matrix": [1, 3], "x": 4, "y": 1.4}, - {"label": "5%", "matrix": [0, 3], "x": 5, "y": 1.4}, - {"label": "6^", "matrix": [0, 4], "x": 6, "y": 1.4}, - {"label": "7&", "matrix": [1, 4], "x": 7, "y": 1.4}, - {"label": "8*", "matrix": [1, 5], "x": 8, "y": 1.4}, - {"label": "9(", "matrix": [1, 6], "x": 9, "y": 1.4}, - {"label": "0)", "matrix": [1, 7], "x": 10, "y": 1.4}, - {"label": "-_", "matrix": [0, 7], "x": 11, "y": 1.4}, - {"label": "=+", "matrix": [0, 5], "x": 12, "y": 1.4}, - {"label": "Bksp", "matrix": [3, 8], "x": 13, "y": 1.4, "w": 2}, - {"label": "Tab", "matrix": [3, 0], "x": 0, "y": 2.4, "w": 1.5}, - {"label": "Q", "matrix": [2, 0], "x": 1.5, "y": 2.4}, - {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 2.4}, - {"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.4}, - {"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.4}, - {"label": "T", "matrix": [3, 3], "x": 5.5, "y": 2.4}, - {"label": "Y", "matrix": [3, 4], "x": 6.5, "y": 2.4}, - {"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.4}, - {"label": "I", "matrix": [2, 5], "x": 8.5, "y": 2.4}, - {"label": "O", "matrix": [2, 6], "x": 9.5, "y": 2.4}, - {"label": "P", "matrix": [2, 7], "x": 10.5, "y": 2.4}, - {"label": "[{", "matrix": [3, 7], "x": 11.5, "y": 2.4}, - {"label": "]}", "matrix": [3, 5], "x": 12.5, "y": 2.4}, - {"label": "Caps Lock", "matrix": [3, 1], "x": 0, "y": 3.4, "w": 1.75}, - {"label": "A", "matrix": [4, 0], "x": 1.75, "y": 3.4}, - {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.4}, - {"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.4}, - {"label": "F", "matrix": [4, 3], "x": 4.75, "y": 3.4}, - {"label": "G", "matrix": [5, 3], "x": 5.75, "y": 3.4}, - {"label": "H", "matrix": [5, 4], "x": 6.75, "y": 3.4}, - {"label": "J", "matrix": [4, 4], "x": 7.75, "y": 3.4}, - {"label": "K", "matrix": [4, 5], "x": 8.75, "y": 3.4}, - {"label": "L", "matrix": [4, 6], "x": 9.75, "y": 3.4}, - {"label": ";:", "matrix": [4, 7], "x": 10.75, "y": 3.4}, - {"label": "'@", "matrix": [5, 7], "x": 11.75, "y": 3.4}, - {"label": "#~", "matrix": [6, 7], "x": 12.75, "y": 3.4}, - {"label": "Enter", "matrix": [6, 8], "x": 13.75, "y": 2.4, "w": 1.25, "h": 2}, - {"label": "Shift", "matrix": [3, 14], "x": 0, "y": 4.4, "w": 1.25}, - {"label": "\\|", "matrix": [5, 1], "x": 1.25, "y": 4.4}, - {"label": "Z", "matrix": [6, 0], "x": 2.25, "y": 4.4}, - {"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.4}, - {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 4.4}, - {"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.4}, - {"label": "B", "matrix": [7, 3], "x": 6.25, "y": 4.4}, - {"label": "N", "matrix": [7, 4], "x": 7.25, "y": 4.4}, - {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 4.4}, - {"label": ",<", "matrix": [6, 5], "x": 9.25, "y": 4.4}, - {"label": ".>", "matrix": [6, 6], "x": 10.25, "y": 4.4}, - {"label": "/?", "matrix": [7, 7], "x": 11.25, "y": 4.4}, - {"label": "Shift", "matrix": [6, 14], "x": 12.25, "y": 4.4, "w": 2.75}, - {"label": "Fn", "matrix": [4, 9], "x": 0, "y": 5.4}, - {"label": "Ctrl", "matrix": [0, 15], "x": 1, "y": 5.4, "w": 1.25}, - {"label": "Left OS", "matrix": [2, 11], "x": 2.25, "y": 5.4, "w": 0.9}, - {"label": "Alt", "matrix": [5, 13], "x": 3.15, "y": 5.4}, - {"label": "Space", "matrix": [7, 8], "x": 4.15, "y": 5.4, "w": 5}, - {"label": "AltGr", "matrix": [7, 13], "x": 9.25, "y": 5.4}, - {"label": "Menu", "matrix": [4, 11], "x": 10.25, "y": 5.4}, - {"label": "Ctrl", "matrix": [6, 15], "x": 11.25, "y": 5.4}, - {"label": "Browser Back", "matrix": [6, 11], "x": 12.25, "y": 5.4, "w": 0.9, "h": 0.75}, - {"label": "Up", "matrix": [5, 12], "x": 13.15, "y": 5.4, "w": 0.9, "h": 0.75}, - {"label": "Browser Forward", "matrix": [7, 11], "x": 14.05, "y": 5.4, "w": 0.9, "h": 0.75}, - {"label": "Left", "matrix": [7, 12], "x": 12.25, "y": 6.15, "w": 0.9, "h": 0.75}, - {"label": "Down", "matrix": [7, 10], "x": 13.15, "y": 6.15, "w": 0.9, "h": 0.75}, - {"label": "Right", "matrix": [7, 9], "x": 14.05, "y": 6.15, "w": 0.9, "h": 0.75} - ] - } - } -} diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c b/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c deleted file mode 100644 index 4dac20888f..0000000000 --- a/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( - KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PGUP, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_END, KC_PGDN, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_WBAK, KC_UP , KC_WFWD, - KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md b/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md deleted file mode 100644 index 0008dad2f1..0000000000 --- a/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# converter/thinkpad_t6x/rpi_pico - -![converter/thinkpad_t6x/rpi_pico](https://i.imgur.com/wUG9p6eh.jpeg) - -This is a converter PCB for Lenovo Thinkpad keyboards from a wide range of models (T60, T61, X220, ...), based on the Raspberry Pi Pico. The QMK implementation here is specific to the converter in the link below. Similar PCB designs to convert a Thinkpad keyboard to USB exist, but they use a different microcontroller and wiring of the keyboard connector with the MCU. - -* Keyboard Maintainer: [Michael Büchler](https://github.com/strobo5) -* Hardware Supported: The linked converter PCB with keyboards from various Thinkpad models -* Hardware Availability: [Custom PCB](https://github.com/strobo5/T61_PiPico_Scanner) - -Make example for this keyboard (after setting up your build environment): - - make converter/thinkpad_t6x/rpi_pico:default - -Flashing example for this keyboard: - - make converter/thinkpad_t6x/rpi_pico:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/converter/usb_usb/info.json b/keyboards/converter/usb_usb/info.json index 97d048160f..747fd49782 100644 --- a/keyboards/converter/usb_usb/info.json +++ b/keyboards/converter/usb_usb/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "USB to USB Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk index 682fa821ef..1e278514f6 100644 --- a/keyboards/converter/usb_usb/rules.mk +++ b/keyboards/converter/usb_usb/rules.mk @@ -1,3 +1,5 @@ CUSTOM_MATRIX = yes SRC += custom_matrix.cpp + +DEFAULT_FOLDER = converter/usb_usb/hasu diff --git a/keyboards/converter/xt_usb/keyboard.json b/keyboards/converter/xt_usb/keyboard.json index 08e697b8e9..649b283329 100644 --- a/keyboards/converter/xt_usb/keyboard.json +++ b/keyboards/converter/xt_usb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "IBM PC XT Keyboard Converter", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/cool836a/keyboard.json b/keyboards/cool836a/keyboard.json index 0095f8c73f..3d32f45c9d 100644 --- a/keyboards/cool836a/keyboard.json +++ b/keyboards/cool836a/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cool836a/readme.md b/keyboards/cool836a/readme.md index 9473b7136a..dd3ace3cbc 100644 --- a/keyboards/cool836a/readme.md +++ b/keyboards/cool836a/readme.md @@ -28,7 +28,7 @@ git clone のあと、 ----------------- ## English -- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: m.ki +- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: [m.ki](imgur.com image replace me!) - Each virsions(A, B+, C+) of cool836A has the same circuit and that means you can install this firmware on any of them. - However, this repository is currently(Jan 7, 2021) tested on ver.B+ (RED version) only. Feel free to contact [ME](https://github.com/ketcha-k) for any problems. diff --git a/keyboards/copenhagen_click/click_pad_v1/keyboard.json b/keyboards/copenhagen_click/click_pad_v1/keyboard.json index 5897b1e114..d84630cfbc 100755 --- a/keyboards/copenhagen_click/click_pad_v1/keyboard.json +++ b/keyboards/copenhagen_click/click_pad_v1/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h deleted file mode 100644 index dbf7031b62..0000000000 --- a/keyboards/cornia/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Select hand configuration */ -// #define MASTER_LEFT -#define MASTER_RIGHT -// #define EE_HANDS - -/* I²C config */ -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP10 -#define I2C1_SCL_PIN GP11 - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. \ No newline at end of file diff --git a/keyboards/cornia/cornia.c b/keyboards/cornia/cornia.c deleted file mode 100644 index 9a09047333..0000000000 --- a/keyboards/cornia/cornia.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "cornia.h" - -// 'Cornia', 32x32px -#define OLED_LOGO_CORNIA {\ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, \ - 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, \ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0xe1, \ - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, \ - 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x07, 0x3f, 0xff, 0xff, \ - 0xff, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ - 0x00, 0x1e, 0x1f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, \ - 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 \ - } - -void cornia_render_logo(void) { -#ifdef OLED_ENABLE - static const char PROGMEM logo[] = OLED_LOGO_CORNIA; - oled_write_raw_P(logo, sizeof(logo)); -#endif -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - cornia_render_logo(); - return true; -} diff --git a/keyboards/cornia/cornia.h b/keyboards/cornia/cornia.h deleted file mode 100644 index 2cee8d4a68..0000000000 --- a/keyboards/cornia/cornia.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -void cornia_render_logo(void); diff --git a/keyboards/cornia/info.json b/keyboards/cornia/info.json deleted file mode 100644 index 7c0b5aabf2..0000000000 --- a/keyboards/cornia/info.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "manufacturer": "Vaarai", - "maintainer": "Vaarai", - "url": "https://github.com/Vaarai/Cornia", - "usb": { - "vid": "0xFEED" - }, - "processor": "RP2040", - "bootloader": "rp2040", - "split": { - "enabled": true, - "serial": { - "driver": "vendor", - "pin": "GP1" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "features": { - "extrakey": true, - "mousekey": true, - "bootmagic": true, - "nkro": true, - "oled": true, - "rgb_matrix": true - }, - "community_layouts": [ "split_3x6_3" ], - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x6_3" - }, - "layouts": { - "LAYOUT_split_3x6_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2}, - {"matrix": [7, 5], "x": 8, "y": 3.2}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - } - }, - "ws2812": { - "driver": "vendor", - "pin": "GP0" - }, - "rgb_matrix": { - "driver": "ws2812", - "sleep": true, - "split_count": [21, 21], - "animations": { - "static_gradient": true, - "breathing": true - }, - "layout": [ - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, - {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, - {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, - {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} - ] - } -} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/keymap.c b/keyboards/cornia/keymaps/default/keymap.c deleted file mode 100644 index 1aa48d471f..0000000000 --- a/keyboards/cornia/keymaps/default/keymap.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -/* Layers definitions */ -enum layers { - _ALPHA, - _LOWER, - _UPPER, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_ALPHA] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LSFT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RSFT - //`--------------------------' `--------------------------' - ), - - [_LOWER] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_RALT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, _______, _______, _______, _______, _______ - //`--------------------------' `--------------------------' - ), - - [_UPPER] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, KC_RGUI - //`--------------------------' `--------------------------' - ), - - [_ADJUST] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______ - //`--------------------------' `--------------------------' - ), -}; \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/rules.mk b/keyboards/cornia/keymaps/default/rules.mk deleted file mode 100644 index 7c9bf212a6..0000000000 --- a/keyboards/cornia/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TRI_LAYER_ENABLE = yes diff --git a/keyboards/cornia/keymaps/fire/config.h b/keyboards/cornia/keymaps/fire/config.h deleted file mode 100644 index a40a881bf5..0000000000 --- a/keyboards/cornia/keymaps/fire/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Split */ -#define SPLIT_ACTIVITY_ENABLE -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE - -/* Trackpad */ -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_RIGHT -#define POINTING_DEVICE_ROTATION_90 -#define CIRQUE_PINNACLE_DIAMETER_MM 40 -#define CIRQUE_PINNACLE_TAP_ENABLE -#define CIRQUE_PINNACLE_CURVED_OVERLAY -#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE -#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X diff --git a/keyboards/cornia/keymaps/fire/keymap.c b/keyboards/cornia/keymaps/fire/keymap.c deleted file mode 100644 index ff63df801a..0000000000 --- a/keyboards/cornia/keymaps/fire/keymap.c +++ /dev/null @@ -1,226 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "./keymap.h" -#include "./tap_dances.h" - -/* Flag to enable/disable trackpad scroll */ -bool set_scrolling = false; - -/* Variables to store accumulated scroll values */ -float scroll_accumulated_h = 0; -float scroll_accumulated_v = 0; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_ALPHA] = LAYOUT_split_3x6_3( /* Fire (Oxey) : https://bit.ly/layout-doc-v2 */ - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, KC_P, KC_L, KC_D, KC_G, KC_V, KC_Q, KC_F, KC_O, KC_U, KC_COMM, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TAB, KC_N, KC_R, KC_T, KC_S, KC_Y, KC_J, KC_H, KC_A, KC_E, KC_I, KC_LALT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_X, KC_K, KC_C, KC_W, KC_Z, KC_B, KC_M, KC_QUOT, KC_SCLN, KC_DOT, KC_RCTL, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - TD(TD_SFT_CAPSW), TD(TD_NAV_ACCENT), KC_SPC, KC_ENT, TD(TD_NUM_ACCENT), TD(TD_SFT_CAPSW) - //`--------------------------' `--------------------------' - ), - - [_NAV] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, G(KC_L), XXXXXXX, CK_SCRL, C(KC_A), XXXXXXX, MS_BTN1, MS_BTN2, MS_BTN3, XXXXXXX, XXXXXXX, KC_DEL, - //|--------+--------+ GUI V +--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, C(KC_X), G(KC_V), C(KC_V), C(KC_C), C(KC_Z), MS_WHLU, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, - //|ALT LEFT+--------+ ALT SFT+scrnshot+--------+--------| |--------+--------+--------+--------+--------+--------| - A(KC_LEFT),C(KC_S),S(KC_LALT), CK_SSHT,C(KC_F), C(KC_Y), MS_WHLD, KC_HOME, CK_SELL, CK_SELR, KC_END, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, _______, _______, _______,MO(_ADJUST),_______ - //`--------------------------' `--------------------------' - ), - - [_NUM] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - //|--------+-- / ---+-- { ---+-- ( ---+-- [ ---+-- - ---| |--- _ --+--- ] --+-- ) ---+-- } ---+-- \ ---+--------| - _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______,MO(_ADJUST),_______, _______, _______, KC_RGUI - //`--------------------------' `--------------------------' - ), - - [_ADJUST] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, CK_DPII, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, CK_DPID, XXXXXXX, TO(_G0), TO(_G1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______ - //`--------------------------' `--------------------------' - ), - - /* Generic game */ - [_G0] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, KC_LSFT, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LGUI, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, TG(_G0), XXXXXXX - //`--------------------------' `--------------------------' - ), - - /* Warframe */ - [_G1] = LAYOUT_split_3x6_3( - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TAB, KC_ESC, KC_Q, KC_W, KC_1, KC_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F, KC_LSFT, KC_A, KC_S, KC_D, KC_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LGUI, KC_LCTL, KC_M, KC_Y, KC_X, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_SPC,CK_RKJMP, KC_5, XXXXXXX, TG(_G1), XXXXXXX - //`--------------------------' `--------------------------' - ), -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case CK_RKJMP: /* Warframe rocket jump */ - if (record->event.pressed) { - SEND_STRING(SS_DOWN(X_C)); - } else { - SEND_STRING(SS_DOWN(X_SPC) SS_DELAY(50) SS_UP(X_C) SS_DELAY(50) SS_UP(X_SPC)); - } - return false; - case CK_DPII: /* Increase trackpad DPI */ - if (record->event.pressed) { - pointing_device_set_cpi(pointing_device_get_cpi()+100); - } - return false; - case CK_DPID: /* Decrease trackpad DPI */ - if (record->event.pressed) { - pointing_device_set_cpi(pointing_device_get_cpi()-100); - } - return false; - case CK_SCRL: /* Toggle set_scrolling when CK_SCRL key is pressed or released */ - set_scrolling = record->event.pressed; - return false; - } - /* Accented letters */ - if (accent_state != ACCENT_NONE && record->event.pressed) - { - switch (keycode) { - case KC_A: - SEND_STRING(SS_ACCENT_A_GRAVE); - break; - case KC_C: - SEND_STRING(SS_ACCENT_C_CEDIL); - break; - case KC_E: - switch (accent_state) { - case ACCENT_LEFT: - SEND_STRING(SS_ACCENT_E_ACUTE); break; - case ACCENT_RIGHT: - SEND_STRING(SS_ACCENT_E_GRAVE); break; - case ACCENT_NONE: - break; - } - break; - case KC_O: - SEND_STRING(SS_ACCENT_O_CIRCU); - break; - case KC_U: - SEND_STRING(SS_ACCENT_U_GRAVE); - break; - } - accent_state = ACCENT_NONE; - return false; - } - return true; -} - -bool shutdown_user(bool jump_to_bootloader) { - oled_clear(); - oled_set_cursor(0, 2); - if (jump_to_bootloader) { - oled_write_P(PSTR("FLASH"), false); - } else { - oled_write_P(PSTR("RESET"), false); - } - oled_render_dirty(true); - return false; -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; -} - -bool oled_task_user(void) { - /* Print cornia logo */ - cornia_render_logo(); - - /* Print layer status */ - oled_set_cursor(0, 7); - switch (get_highest_layer(layer_state)) { - case _ALPHA: - oled_write_ln("ALPHA", 0); - break; - case _NAV: - oled_write_ln("NAV", 0); - break; - case _NUM: - oled_write_ln("NUM", 0); - break; - case _ADJUST: - oled_write_ln("ADJUS", 0); - break; - case _G0: - oled_write_ln("GAME0", 0); - break; - case _G1: - oled_write_ln("GAME1", 0); - break; - } - return false; -} - -report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { - /* Check if drag scrolling is active */ - if (set_scrolling) { - /* Calculate and accumulate scroll values based on mouse movement and divisors */ - scroll_accumulated_h += (float)mouse_report.x / SCROLL_DIVISOR_H; - scroll_accumulated_v += (float)mouse_report.y / SCROLL_DIVISOR_V; - - /* Assign integer parts of accumulated scroll values to the mouse report */ - mouse_report.h = (int8_t)scroll_accumulated_h; - mouse_report.v = (int8_t)scroll_accumulated_v; - - /* Update accumulated scroll values by subtracting the integer parts */ - scroll_accumulated_h -= (int8_t)scroll_accumulated_h; - scroll_accumulated_v -= (int8_t)scroll_accumulated_v; - - /* Clear the X and Y values of the mouse report */ - mouse_report.x = 0; - mouse_report.y = 0; - } - return mouse_report; -} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/keymap.h b/keyboards/cornia/keymaps/fire/keymap.h deleted file mode 100644 index 719c2b97a8..0000000000 --- a/keyboards/cornia/keymaps/fire/keymap.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include QMK_KEYBOARD_H - -/* Trackpad srolling speed adjustment */ -#define SCROLL_DIVISOR_H 8.0 -#define SCROLL_DIVISOR_V 8.0 - -/* Trackpad srolling enablement flag */ -extern bool set_scrolling; - -/* Layers definitions */ -enum layers { - _ALPHA, - _NAV, - _NUM, - _ADJUST, - _G0, - _G1 -}; - -/* Custom Keycodes (CK_xxx) */ -#define CK_SSHT LSG(KC_S) -#define CK_SELL LSFT(LCTL(KC_LEFT)) -#define CK_SELR LSFT(LCTL(KC_RIGHT)) - -typedef enum { - CK_RKJMP = SAFE_RANGE, /* Warframe rocket/bullet jump */ - CK_DPII, - CK_DPID, - CK_SCRL, -} cornia_custom_keycodes_t; - -#define SS_ACCENT_A_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P3) SS_UP(X_LALT) /* à */ -#define SS_ACCENT_C_CEDIL SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT) /* ç */ -#define SS_ACCENT_E_ACUTE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P0) SS_UP(X_LALT) /* é */ -#define SS_ACCENT_E_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P8) SS_UP(X_LALT) /* è */ -#define SS_ACCENT_O_CIRCU SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P4) SS_TAP(X_P7) SS_UP(X_LALT) /* ô */ -#define SS_ACCENT_U_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P0) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P9) SS_UP(X_LALT) /* ù */ diff --git a/keyboards/cornia/keymaps/fire/rules.mk b/keyboards/cornia/keymaps/fire/rules.mk deleted file mode 100644 index 221d810975..0000000000 --- a/keyboards/cornia/keymaps/fire/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -SRC += tap_dances.c - -CAPS_WORD_ENABLE = yes -TAP_DANCE_ENABLE = yes - -# Cirque Trackpad I²C configuration -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/cornia/keymaps/fire/tap_dances.c b/keyboards/cornia/keymaps/fire/tap_dances.c deleted file mode 100644 index 63f9911549..0000000000 --- a/keyboards/cornia/keymaps/fire/tap_dances.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "./tap_dances.h" -#include "./keymap.h" - -/* define a type containing as many tapdance states as you need */ -typedef enum { - SINGLE_TAP, - SINGLE_HOLD, - DOUBLE_TAP, - DOUBLE_HOLD, - OTHER_TAP -} td_state_t; - -/* Create a global instance of the tapdance state type */ -static td_state_t td_state; -accent_state_t accent_state = ACCENT_NONE; - -tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT] = { - [TD_SFT_CAPSW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_shift_capsword_finished, dance_shift_capsword_reset), - [TD_NAV_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_nav_accent_finished, dance_nav_accent_reset), - [TD_NUM_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_num_accent_finished, dance_num_accent_reset) -}; - -int cur_dance (tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) - { - return SINGLE_TAP; - } else { - return SINGLE_HOLD; - } - } - if (state->count == 2) - { - if (state->interrupted || !state->pressed) - { - return DOUBLE_TAP; - } else { - return DOUBLE_HOLD; - } - } else { - return OTHER_TAP; - } -} - -void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data) -{ - td_state = cur_dance(state); - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - register_code(KC_LSFT); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - caps_word_on(); - break; - case OTHER_TAP: - break; - } -} - -void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data) -{ - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - unregister_code(KC_LSFT); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - case OTHER_TAP: - break; - } -} - -void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data) -{ - td_state = cur_dance(state); - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - layer_on(_NAV); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - accent_state = ACCENT_LEFT; - break; - case OTHER_TAP: - break; - } -} - -void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data) -{ - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - layer_off(_NAV); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - case OTHER_TAP: - break; - } -} - -void dance_num_accent_finished (tap_dance_state_t *state, void *user_data) -{ - td_state = cur_dance(state); - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - layer_on(_NUM); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - accent_state = ACCENT_RIGHT; - break; - case OTHER_TAP: - break; - } -} - -void dance_num_accent_reset (tap_dance_state_t *state, void *user_data) -{ - switch (td_state) { - case SINGLE_TAP: - case SINGLE_HOLD: - layer_off(_NUM); - break; - case DOUBLE_TAP: - case DOUBLE_HOLD: - case OTHER_TAP: - break; - } -} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/tap_dances.h b/keyboards/cornia/keymaps/fire/tap_dances.h deleted file mode 100644 index 082e81f3ce..0000000000 --- a/keyboards/cornia/keymaps/fire/tap_dances.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include QMK_KEYBOARD_H - -/* Tap dances definitions */ -enum tap_dances { - TD_SFT_CAPSW, - TD_NAV_ACCENT, - TD_NUM_ACCENT, - TAP_DANCE_ACTIONS_COUNT /* Utility to get TD_xxx count */ -}; - -/* Accented letters */ -typedef enum { - ACCENT_NONE, - ACCENT_LEFT, - ACCENT_RIGHT -} accent_state_t; - -extern accent_state_t accent_state; - -extern tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT]; - -void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data); -void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data); - -void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data); -void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data); - -void dance_num_accent_finished (tap_dance_state_t *state, void *user_data); -void dance_num_accent_reset (tap_dance_state_t *state, void *user_data); diff --git a/keyboards/cornia/mcuconf.h b/keyboards/cornia/mcuconf.h deleted file mode 100644 index 9c018283f8..0000000000 --- a/keyboards/cornia/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Vaarai - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 FALSE - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/cornia/readme.md b/keyboards/cornia/readme.md deleted file mode 100644 index 3051d010a9..0000000000 --- a/keyboards/cornia/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -# Cornia Keyboard - -![Cornia v1](https://i.imgur.com/3vRlvi3.jpeg) - -A split keyboard with 3x6 column strongly staggered keys and 3 thumb keys - -* Keyboard Maintainer: [Vaarai](https://github.com/Vaarai) -* Hardware Supported: Cornia PCB, RP2040 / 0xCB-Helios -* Hardware Availability: [PCB Data](https://github.com/Vaarai/Cornia) - -Make example for this keyboard (after setting up your build environment): - - make cornia/v1:default - -Flashing example for this keyboard: - - make cornia/v1: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 - -The Cornia PCBs have a reset button on the bottom side near to the TRRS jack. - -To enter in to the bootloader you can either: -- Hold reset when plugging in that half of the keyboard. -- Double press reset if firmware was already flashed and if RP2040 is used -- Press NAV+NUM+ESC if firmware was already flashed no matter what controller is used - -## Keymaps - -Two keymaps are available for now, below are their [KLE](https://www.keyboard-layout-editor.com/) views: -- [Default QWERTY layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/5af136790cefe4b35cdf02ca52c1fccc) -- [Fire layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/a40345c92e1f3f326426ef890ebf4d1c) (Based on [Fire (Oxey)](https://docs.google.com/document/d/1Ic-h8UxGe5-Q0bPuYNgE3NoWiI8ekeadvSQ5YysrwII) layout) - -## OLED Display & Cirque Trackpad - -The Cornia Keyboard also support OLED Display and Cirque Trackpad through I²C, an implementation is available in `fire` keymap. - -To use it please make with the following command: - - make cornia/v1:fire - -And flash with: - - make cornia/v1:fire:flash \ No newline at end of file diff --git a/keyboards/cornia/v0_6/keyboard.json b/keyboards/cornia/v0_6/keyboard.json deleted file mode 100644 index 5e4b96da21..0000000000 --- a/keyboards/cornia/v0_6/keyboard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "Cornia v0.6", - "usb": { - "pid": "0x0600", - "device_version": "0.6.0" - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": [ "GP29", "GP28", "GP27", "GP26", "GP22", "GP20" ], - "rows": [ "GP4", "GP5", "GP6", "GP7" ] - } -} diff --git a/keyboards/cornia/v1/keyboard.json b/keyboards/cornia/v1/keyboard.json deleted file mode 100644 index 90a54f288e..0000000000 --- a/keyboards/cornia/v1/keyboard.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "keyboard_name": "Cornia v1", - "usb": { - "pid": "0x1000", - "device_version": "1.0.0" - }, - "split": { - - "handedness": { - "pin": "GP25" - } - }, - "matrix_pins": { - "direct":[ - ["GP27", "GP4", "GP28", "GP3", "GP29", "GP2"], - ["GP5", "GP26", "GP6", "GP22", "GP7", "GP20"], - ["GP8", "GP15", "GP9", "GP14", "GP12", "GP13"], - [ null, null, null, "GP16", "GP23", "GP21"] - ] - } -} diff --git a/keyboards/cornifi/config.h b/keyboards/cornifi/config.h deleted file mode 100644 index 36750714de..0000000000 --- a/keyboards/cornifi/config.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024-2025 QMK -// SPDX-License-Identifier: GPL-3.0-or-later - -#pragma once - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP12 -#define SERIAL_USART_RX_PIN GP13 -#define USB_VBUS_PIN GP24 - -/* 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 diff --git a/keyboards/cornifi/keyboard.json b/keyboards/cornifi/keyboard.json deleted file mode 100644 index 68e062ad33..0000000000 --- a/keyboards/cornifi/keyboard.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "manufacturer": "v3lmx", - "keyboard_name": "cornifi", - "maintainer": "v3lmx", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [ - ["GP21", "GP25", "GP26", "GP28", "GP29", "GP5"], - ["GP20", "GP22", "GP27", "GP2", "GP3", "GP8"], - ["GP19", "GP23", "GP1", "GP0", "GP4", null], - [null, null, "GP16", "GP17", "GP18", null] - ] - }, - "processor": "RP2040", - "split": { - "bootmagic": { - "matrix": [4, 0] - }, - "enabled": true, - "matrix_pins": { - "right": { - "direct": [ - ["GP9", "GP8", "GP4", "GP3", "GP2", "GP25"], - ["GP10", "GP6", "GP1", "GP28", "GP27", "GP21"], - ["GP11", "GP5", "GP0", "GP29", "GP26", null], - [null, null, "GP16", "GP17", "GP18", null] - ] - } - }, - "serial": { - "driver": "vendor" - } - }, - "url": "https://github.com/v3lmx/cornifi", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x5_3_ex2" - }, - "layouts": { - "LAYOUT_split_3x5_3_ex2": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.9}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.35}, - {"matrix": [0, 4], "x": 4, "y": 0.45}, - {"matrix": [0, 5], "x": 5, "y": 0.7}, - {"matrix": [4, 5], "x": 8, "y": 0.7}, - {"matrix": [4, 4], "x": 9, "y": 0.45}, - {"matrix": [4, 3], "x": 10, "y": 0.35}, - {"matrix": [4, 2], "x": 11, "y": 0}, - {"matrix": [4, 1], "x": 12, "y": 0.3}, - {"matrix": [4, 0], "x": 13, "y": 0.9}, - {"matrix": [1, 0], "x": 0, "y": 1.9}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.35}, - {"matrix": [1, 4], "x": 4, "y": 1.45}, - {"matrix": [1, 5], "x": 5, "y": 1.7}, - {"matrix": [5, 5], "x": 8, "y": 1.7}, - {"matrix": [5, 4], "x": 9, "y": 1.45}, - {"matrix": [5, 3], "x": 10, "y": 1.35}, - {"matrix": [5, 2], "x": 11, "y": 1}, - {"matrix": [5, 1], "x": 12, "y": 1.3}, - {"matrix": [5, 0], "x": 13, "y": 1.9}, - {"matrix": [2, 0], "x": 0, "y": 2.9}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.35}, - {"matrix": [2, 4], "x": 4, "y": 2.45}, - {"matrix": [6, 4], "x": 9, "y": 2.45}, - {"matrix": [6, 3], "x": 10, "y": 2.35}, - {"matrix": [6, 2], "x": 11, "y": 2}, - {"matrix": [6, 1], "x": 12, "y": 2.3}, - {"matrix": [6, 0], "x": 13, "y": 2.9}, - {"matrix": [3, 2], "x": 3, "y": 3.7}, - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 3], "x": 9, "y": 3.7}, - {"matrix": [7, 2], "x": 10, "y": 3.7} - ] - } - } -} diff --git a/keyboards/cornifi/keymaps/default/keymap.c b/keyboards/cornifi/keymaps/default/keymap.c deleted file mode 100644 index 207db11738..0000000000 --- a/keyboards/cornifi/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2025 @v3lmx -// SPDX-License-Identifier: GPL-3.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [0] = LAYOUT_split_3x5_3_ex2( - 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_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, - KC_ESC, MO(1), KC_TAB, KC_ENT, MO(2), KC_BSPC - ), - [1] = LAYOUT_split_3x5_3_ex2( - KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, - XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, _______, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT,XXXXXXX, - XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, - KC_LGUI,_______,KC_SPC, KC_ENT, XXXXXXX, KC_RALT - ), - [2] = LAYOUT_split_3x5_3_ex2( - KC_EXLM, KC_AT,KC_HASH, KC_DLR, KC_PERC,_______, _______, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, - XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, _______, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS, - XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE, - KC_LGUI,XXXXXXX, KC_SPC, KC_ENT, _______,KC_RALT - ) - // clang-format on -}; diff --git a/keyboards/cornifi/readme.md b/keyboards/cornifi/readme.md deleted file mode 100644 index 3c4022e5ac..0000000000 --- a/keyboards/cornifi/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# cornifi - -![cornifi keyboard](https://i.imgur.com/Q7B3VX8.jpeg) - -The cornifi keyboard is a split keyboard based on the [corne](https://github.com/foostan/crkbd) with the physical layout of the [fifi](https://github.com/raychengy/fifi_split_keeb). - -* Keyboard Maintainer: [v3lmx (github)](https://github.com/v3lmx) -* Hardware Availability: [v3lmx/cornifi (github)](https://github.com/v3lmx/cornifi) - -Make example for this keyboard (after setting up your build environment): - - make cornifi:default - -Flashing example for this keyboard: - - make cornifi:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold down the `boot` button and press the `reset` button -* **Keycode in layout**: Press the key mapped to `TD_BOOT` twice if it is available - -## Keymap - -It is recommended to make your own keymap using the [external userspace feature(https://docs.qmk.fm/newbs_external_userspace). - -You can find an example here: [v3lmx qmk userspace](https://github.com/v3lmx/qmk_userspace) diff --git a/keyboards/coseyfannitutti/discipad/keyboard.json b/keyboards/coseyfannitutti/discipad/keyboard.json index 0c9cf4498f..5c491876e4 100644 --- a/keyboards/coseyfannitutti/discipad/keyboard.json +++ b/keyboards/coseyfannitutti/discipad/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/coseyfannitutti/romeo/keyboard.json b/keyboards/coseyfannitutti/romeo/keyboard.json index 97a3610a48..260589889a 100644 --- a/keyboards/coseyfannitutti/romeo/keyboard.json +++ b/keyboards/coseyfannitutti/romeo/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cosmo65/keyboard.json b/keyboards/cosmo65/keyboard.json index 690170b1d1..1814b3f0d0 100644 --- a/keyboards/cosmo65/keyboard.json +++ b/keyboards/cosmo65/keyboard.json @@ -28,6 +28,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cozykeys/bloomer/v2/keyboard.json b/keyboards/cozykeys/bloomer/v2/keyboard.json index d1714b7ef1..9f09db86fa 100644 --- a/keyboards/cozykeys/bloomer/v2/keyboard.json +++ b/keyboards/cozykeys/bloomer/v2/keyboard.json @@ -4,6 +4,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cozykeys/bloomer/v3/keyboard.json b/keyboards/cozykeys/bloomer/v3/keyboard.json index d598b84f0d..a0f04956af 100644 --- a/keyboards/cozykeys/bloomer/v3/keyboard.json +++ b/keyboards/cozykeys/bloomer/v3/keyboard.json @@ -4,6 +4,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cozykeys/speedo/v2/keyboard.json b/keyboards/cozykeys/speedo/v2/keyboard.json index b361006005..69dd33d6b6 100644 --- a/keyboards/cozykeys/speedo/v2/keyboard.json +++ b/keyboards/cozykeys/speedo/v2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cradio/keyboard.json b/keyboards/cradio/keyboard.json index 2074295b36..433c6e96e9 100644 --- a/keyboards/cradio/keyboard.json +++ b/keyboards/cradio/keyboard.json @@ -13,6 +13,8 @@ "pin_compatible": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cradio/keymaps/default/keymap.c b/keyboards/cradio/keymaps/default/keymap.c index 3d624cd009..e6cbe763ba 100644 --- a/keyboards/cradio/keymaps/default/keymap.c +++ b/keyboards/cradio/keymaps/default/keymap.c @@ -30,9 +30,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, KC_DEL, MO(3) ), [3] = LAYOUT_split_3x5_2( - _______, KC_F1, KC_F2, KC_F3, KC_F10, _______, MS_WHLU, MS_WHLD, _______, QK_BOOT, - _______, KC_F4, KC_F5, KC_F6, KC_F11, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_INS, - _______, KC_F7, KC_F8, KC_F9, KC_F12, _______, MS_BTN1, MS_BTN2, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F10, _______, KC_WH_U, KC_WH_D, _______, QK_BOOT, + _______, KC_F4, KC_F5, KC_F6, KC_F11, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_INS, + _______, KC_F7, KC_F8, KC_F9, KC_F12, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/craftwalk/keymaps/default/keymap.c b/keyboards/craftwalk/keymaps/default/keymap.c index 019e99faf9..b212425bcf 100644 --- a/keyboards/craftwalk/keymaps/default/keymap.c +++ b/keyboards/craftwalk/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( KC_Q, KC_W, KC_E, KC_LCTL, KC_A, KC_S, KC_D, - KC_LSFT, MO_ADJ, MS_WHLU, MS_WHLD, KC_F, MO_NUM, KC_SPC + KC_LSFT, MO_ADJ, KC_WH_U, KC_WH_D, KC_F, MO_NUM, KC_SPC ), /* Number */ [_NUM] = LAYOUT( diff --git a/keyboards/crawlpad/keyboard.json b/keyboards/crawlpad/keyboard.json index 02791ab583..d4f1c43971 100644 --- a/keyboards/crawlpad/keyboard.json +++ b/keyboards/crawlpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Crawlpad", "manufacturer": "WoodKeys.Click", + "url": "", "maintainer": "colemarkham", "usb": { "vid": "0xFEED", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/crazy_keyboard_68/keyboard.json b/keyboards/crazy_keyboard_68/keyboard.json index b58d7eb342..a53013bfb9 100644 --- a/keyboards/crazy_keyboard_68/keyboard.json +++ b/keyboards/crazy_keyboard_68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Crazy_Keyboard 68", "manufacturer": "chent7", + "url": "", "maintainer": "chent7", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/crbn/keyboard.json b/keyboards/crbn/keyboard.json index a0fd785111..9febd33ed6 100644 --- a/keyboards/crbn/keyboard.json +++ b/keyboards/crbn/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -31,7 +33,8 @@ {"pin_a": "F5", "pin_b": "F4", "resolution": 2} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x12", "planck_mit"], "layout_aliases": { "LAYOUT_crbn_1x2u": "LAYOUT_planck_mit", diff --git a/keyboards/creatkeebs/glacier/keyboard.json b/keyboards/creatkeebs/glacier/keyboard.json index ccda609975..61e6bd9136 100644 --- a/keyboards/creatkeebs/glacier/keyboard.json +++ b/keyboards/creatkeebs/glacier/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "glacier", "manufacturer": "creatkeebs", + "url": "", "maintainer": "Timliuzhaolu", "usb": { "vid": "0x0410", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/creatkeebs/thera/keyboard.json b/keyboards/creatkeebs/thera/keyboard.json index f9d40e5f1f..ab10fda324 100644 --- a/keyboards/creatkeebs/thera/keyboard.json +++ b/keyboards/creatkeebs/thera/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/crimsonkeyboards/resume1800/keyboard.json b/keyboards/crimsonkeyboards/resume1800/keyboard.json index 9b68049c6d..aa54b04801 100644 --- a/keyboards/crimsonkeyboards/resume1800/keyboard.json +++ b/keyboards/crimsonkeyboards/resume1800/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Resume1800", "manufacturer": "CrimsonKeyboards", + "url": "", "maintainer": "CrimsonKeyboards", "usb": { "vid": "0xFEED", diff --git a/keyboards/crkbd/crkbd.c b/keyboards/crkbd/crkbd.c index ae94088d29..2ac0e63125 100644 --- a/keyboards/crkbd/crkbd.c +++ b/keyboards/crkbd/crkbd.c @@ -113,7 +113,6 @@ static void oled_render_keylog(void) { oled_write(depad_str(last_keycode_str, ' '), false); oled_write_P(PSTR(":"), false); oled_write_char(key_name, false); - oled_advance_page(true); } // static void render_bootmagic_status(bool status) { diff --git a/keyboards/crkbd/info.json b/keyboards/crkbd/info.json index 31ee98e269..880cbccc29 100644 --- a/keyboards/crkbd/info.json +++ b/keyboards/crkbd/info.json @@ -1,138 +1,34 @@ { + "keyboard_name": "Corne", "manufacturer": "foostan", - "url": "https://github.com/foostan/crkbd", + "url": "", "maintainer": "qmk", "usb": { - "vid": "0x4653" + "vid": "0x4653", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "rgb_matrix": { + "driver": "ws2812" }, "features": { "bootmagic": true, "extrakey": true, + "mousekey": true, "nkro": true, - "oled": true, - "rgblight": false, - "rgb_matrix": true + "oled": true }, - "bootmagic": { - "matrix": [0, 1] + "build": { + "lto": true }, + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ], + "rows": [ "D4", "C6", "D7", "E6" ] + }, + "diode_direction": "COL2ROW", "split": { - "enabled": true, - "bootmagic": { - "matrix": [4, 1] - } + "enabled": true }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x6_3" - }, - "community_layouts": [ "split_3x5_3", "split_3x6_3" ], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 1], "x": 0, "y": 0.3}, - {"matrix": [0, 2], "x": 1, "y": 0.1}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0.1}, - {"matrix": [0, 5], "x": 4, "y": 0.2}, - - {"matrix": [4, 5], "x": 8, "y": 0.2}, - {"matrix": [4, 4], "x": 9, "y": 0.1}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 2], "x": 11, "y": 0.1}, - {"matrix": [4, 1], "x": 12, "y": 0.3}, - - {"matrix": [1, 1], "x": 0, "y": 1.3}, - {"matrix": [1, 2], "x": 1, "y": 1.1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3, "y": 1.1}, - {"matrix": [1, 5], "x": 4, "y": 1.2}, - - {"matrix": [5, 5], "x": 8, "y": 1.2}, - {"matrix": [5, 4], "x": 9, "y": 1.1}, - {"matrix": [5, 3], "x": 10, "y": 1}, - {"matrix": [5, 2], "x": 11, "y": 1.1}, - {"matrix": [5, 1], "x": 12, "y": 1.3}, - - {"matrix": [2, 1], "x": 0, "y": 2.3}, - {"matrix": [2, 2], "x": 1, "y": 2.1}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 4], "x": 3, "y": 2.1}, - {"matrix": [2, 5], "x": 4, "y": 2.2}, - - {"matrix": [6, 5], "x": 8, "y": 2.2}, - {"matrix": [6, 4], "x": 9, "y": 2.1}, - {"matrix": [6, 3], "x": 10, "y": 2}, - {"matrix": [6, 2], "x": 11, "y": 2.1}, - {"matrix": [6, 1], "x": 12, "y": 2.3}, - - {"matrix": [3, 3], "x": 3, "y": 3.7}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 8, "y": 3.7}, - {"matrix": [7, 3], "x": 9, "y": 3.7} - ] - }, - "LAYOUT_split_3x6_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - } - }, - "rgb_matrix": { - "driver": "ws2812", - "max_brightness": 120 - }, - "rgblight": { - "max_brightness": 120 - } + "processor": "atmega32u4", + "community_layouts": [ "split_3x5_3", "split_3x6_3" ] } diff --git a/keyboards/crkbd/keymaps/default/keymap.c b/keyboards/crkbd/keymaps/default/keymap.c index 6d8d5b7f1d..e46743af6b 100644 --- a/keyboards/crkbd/keymaps/default/keymap.c +++ b/keyboards/crkbd/keymaps/default/keymap.c @@ -58,22 +58,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ) }; - -#ifdef 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_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, -}; -#endif diff --git a/keyboards/crkbd/post_config.h b/keyboards/crkbd/post_config.h index dcc194479b..aaf405a5bf 100644 --- a/keyboards/crkbd/post_config.h +++ b/keyboards/crkbd/post_config.h @@ -16,6 +16,34 @@ #pragma once -#ifndef OLED_FONT_H -# define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" +#ifndef BOOTMAGIC_ROW +# define BOOTMAGIC_ROW 0 +#endif +#ifndef BOOTMAGIC_COLUMN +# define BOOTMAGIC_COLUMN 1 +#endif + +#ifndef BOOTMAGIC_ROW_RIGHT +# define BOOTMAGIC_ROW_RIGHT 4 +#endif +#ifndef BOOTMAGIC_COLUMN_RIGHT +# define BOOTMAGIC_COLUMN_RIGHT 1 +#endif + +#ifdef RGBLIGHT_ENABLE +# ifndef RGBLIGHT_LIMIT_VAL +# define RGBLIGHT_LIMIT_VAL 120 +# endif +#endif + +#ifdef RGB_MATRIX_ENABLE +# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +# endif +#endif + +#ifdef OLED_ENABLE + #ifndef OLED_FONT_H + #define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + #endif #endif diff --git a/keyboards/crkbd/r2g/keyboard.json b/keyboards/crkbd/r2g/keyboard.json index 15d5ef0a03..e6c49d5fc8 100644 --- a/keyboards/crkbd/r2g/keyboard.json +++ b/keyboards/crkbd/r2g/keyboard.json @@ -1,21 +1,7 @@ { - "keyboard_name": "Corne", - "usb": { - "pid": "0x0001", - "device_version": "0.0.1" - }, - "processor": "atmega32u4", "features": { "rgb_matrix": true }, - "build": { - "lto": true - }, - "matrix_pins": { - "cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ], - "rows": [ "D4", "C6", "D7", "E6" ] - }, - "diode_direction": "COL2ROW", "split": { "serial": { "pin": "D2" @@ -52,7 +38,6 @@ "layout_aliases": { "LAYOUT": "LAYOUT_split_3x6_3" }, - "community_layouts": [ "split_3x5_3", "split_3x6_3" ], "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md index 7e921ad66d..4297ee56d9 100644 --- a/keyboards/crkbd/readme.md +++ b/keyboards/crkbd/readme.md @@ -1,33 +1,28 @@ # Corne Keyboard (CRKBD) +Also known (incorrectly) as the `HeliDox`. + ![Crkbd](https://user-images.githubusercontent.com/736191/40575636-6fba63a4-6123-11e8-9ca0-3f990f1f9f4c.jpg) ![Crkbd](https://user-images.githubusercontent.com/736191/40887871-0eead5dc-678a-11e8-9518-e3ad9e5d2bac.png) A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. -Also, it has the option that use extension keys and rotary encoders. Keyboard Maintainer: [foostan](https://github.com/foostan/) [@foostan](https://twitter.com/foostan) -Hardware Supported: Corne PCB +Hardware Supported: Crkbd PCB, Pro Micro Hardware Availability: [PCB & Case Data](https://github.com/foostan/crkbd) -Flash example for this keyboard of v1 - v3: +Make example for this keyboard (after setting up your build environment): ```sh -qmk flash -kb crkbd/rev1 -km default -``` - -Flash example for this keyboard of v4: - -```sh -qmk flash -kb crkbd/rev4 -km default +make crkbd:default ``` See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). ## Bootloader -The Corne PCBs have a reset and boot buttons next to the TRRS jack to enter in to the bootloader. +The Corne PCBs have a reset button next to the TRRS jack to enter in to the bootloader. Additionally, if you hold down the "Q" or "P" buttons when plugging in that half of the keyboard (per the default QWERTY layout), this will jump to the bootloader and reset the EEPROM (persistent storage). This would normally be the very top corner-most position, but due to the breakaway column, it's left at Q and P for compatibility. diff --git a/keyboards/crkbd/rev1/keyboard.json b/keyboards/crkbd/rev1/keyboard.json index 2b32a5c8f6..c9b5c27884 100644 --- a/keyboards/crkbd/rev1/keyboard.json +++ b/keyboards/crkbd/rev1/keyboard.json @@ -1,20 +1,7 @@ { - "keyboard_name": "Corne", - "usb": { - "pid": "0x0001", - "device_version": "0.0.1" - }, "features": { "rgblight": true }, - "build": { - "lto": true - }, - "matrix_pins": { - "cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ], - "rows": [ "D4", "C6", "D7", "E6" ] - }, - "diode_direction": "COL2ROW", "split": { "serial": { "pin": "D2" @@ -91,5 +78,110 @@ {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} ] }, - "development_board": "promicro" + "development_board": "promicro", + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0.3}, + {"matrix": [0, 2], "x": 1, "y": 0.1}, + {"matrix": [0, 3], "x": 2, "y": 0}, + {"matrix": [0, 4], "x": 3, "y": 0.1}, + {"matrix": [0, 5], "x": 4, "y": 0.2}, + + {"matrix": [4, 5], "x": 8, "y": 0.2}, + {"matrix": [4, 4], "x": 9, "y": 0.1}, + {"matrix": [4, 3], "x": 10, "y": 0}, + {"matrix": [4, 2], "x": 11, "y": 0.1}, + {"matrix": [4, 1], "x": 12, "y": 0.3}, + + {"matrix": [1, 1], "x": 0, "y": 1.3}, + {"matrix": [1, 2], "x": 1, "y": 1.1}, + {"matrix": [1, 3], "x": 2, "y": 1}, + {"matrix": [1, 4], "x": 3, "y": 1.1}, + {"matrix": [1, 5], "x": 4, "y": 1.2}, + + {"matrix": [5, 5], "x": 8, "y": 1.2}, + {"matrix": [5, 4], "x": 9, "y": 1.1}, + {"matrix": [5, 3], "x": 10, "y": 1}, + {"matrix": [5, 2], "x": 11, "y": 1.1}, + {"matrix": [5, 1], "x": 12, "y": 1.3}, + + {"matrix": [2, 1], "x": 0, "y": 2.3}, + {"matrix": [2, 2], "x": 1, "y": 2.1}, + {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 4], "x": 3, "y": 2.1}, + {"matrix": [2, 5], "x": 4, "y": 2.2}, + + {"matrix": [6, 5], "x": 8, "y": 2.2}, + {"matrix": [6, 4], "x": 9, "y": 2.1}, + {"matrix": [6, 3], "x": 10, "y": 2}, + {"matrix": [6, 2], "x": 11, "y": 2.1}, + {"matrix": [6, 1], "x": 12, "y": 2.3}, + + {"matrix": [3, 3], "x": 3, "y": 3.7}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 8, "y": 3.7}, + {"matrix": [7, 3], "x": 9, "y": 3.7} + ] + }, + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + } } diff --git a/keyboards/crkbd/rev4_0/config.h b/keyboards/crkbd/rev4_0/config.h deleted file mode 100755 index 228fc6dc07..0000000000 --- a/keyboards/crkbd/rev4_0/config.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP12 -#define SERIAL_USART_RX_PIN GP13 - -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP6 -#define I2C1_SCL_PIN GP7 - -/* RP2040- and hardware-specific config */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/crkbd/rev4_0/info.json b/keyboards/crkbd/rev4_0/info.json deleted file mode 100755 index 2eda29a53f..0000000000 --- a/keyboards/crkbd/rev4_0/info.json +++ /dev/null @@ -1,367 +0,0 @@ -{ - "maintainer": "foostan", - "manufacturer": "foostan", - "url": "https://github.com/foostan/crkbd", - "usb": { - "vid": "0x4653", - "suspend_wakeup_delay": 200, - "device_version": "4.0.0" - }, - "processor": "RP2040", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true, - "oled": true, - "rgblight": false, - "rgb_matrix": true, - "mousekey": true, - "encoder": true - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 6 - }, - "matrix_pins": { - "direct":[ - ["GP22", "GP20", "GP23", "GP26", "GP29", "GP0", "GP4"], - ["GP19", "GP18", "GP24", "GP27", "GP1", "GP2", "GP8"], - ["GP17", "GP16", "GP25", "GP28", "GP3", "GP9", null], - [ null, null, null, "GP14", "GP15", "GP11", null] - ] - }, - "encoder": { - "rotary": [ - {"pin_a": "GP5", "pin_b": "GP7"}, - {"pin_a": "GP6", "pin_b": "GP7"} - ] - }, - "bootmagic": { - "enabled": true, - "matrix": [ 0, 1 ] - }, - "split": { - "enabled": true, - "bootmagic": { - "matrix": [ 4, 1 ] - }, - "handedness": { - "pin": "GP21" - }, - "matrix_pins": { - "right": { - "direct": [ - [ "GP8", "GP9", "GP3", "GP2", "GP1", "GP27", "GP25"], - ["GP11", "GP14", "GP4", "GP0", "GP28", "GP26", "GP23"], - ["GP15", "GP18", "GP5", "GP29", "GP20", "GP22", null], - [ null, null, null, "GP16", "GP17", "GP19", null] - ] - } - }, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "GP24", "pin_b": "GP7"}, - {"pin_a": "GP6", "pin_b": "GP7"} - ] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - }, - "watchdog": true - - }, - "usb_detect": { - "timeout": 500 - } - }, - "community_layouts": [ "split_3x5_3", "split_3x6_3" ], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 1], "x": 0, "y": 0.3}, - {"matrix": [0, 2], "x": 1, "y": 0.1}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0.1}, - {"matrix": [0, 5], "x": 4, "y": 0.2}, - - {"matrix": [4, 5], "x": 8, "y": 0.2}, - {"matrix": [4, 4], "x": 9, "y": 0.1}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 2], "x": 11, "y": 0.1}, - {"matrix": [4, 1], "x": 12, "y": 0.3}, - - {"matrix": [1, 1], "x": 0, "y": 1.3}, - {"matrix": [1, 2], "x": 1, "y": 1.1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3, "y": 1.1}, - {"matrix": [1, 5], "x": 4, "y": 1.2}, - - {"matrix": [5, 5], "x": 8, "y": 1.2}, - {"matrix": [5, 4], "x": 9, "y": 1.1}, - {"matrix": [5, 3], "x": 10, "y": 1}, - {"matrix": [5, 2], "x": 11, "y": 1.1}, - {"matrix": [5, 1], "x": 12, "y": 1.3}, - - {"matrix": [2, 1], "x": 0, "y": 2.3}, - {"matrix": [2, 2], "x": 1, "y": 2.1}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 4], "x": 3, "y": 2.1}, - {"matrix": [2, 5], "x": 4, "y": 2.2}, - - {"matrix": [6, 5], "x": 8, "y": 2.2}, - {"matrix": [6, 4], "x": 9, "y": 2.1}, - {"matrix": [6, 3], "x": 10, "y": 2}, - {"matrix": [6, 2], "x": 11, "y": 2.1}, - {"matrix": [6, 1], "x": 12, "y": 2.3}, - - {"matrix": [3, 3], "x": 3, "y": 3.7}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 8, "y": 3.7}, - {"matrix": [7, 3], "x": 9, "y": 3.7} - ] - }, - "LAYOUT_split_3x6_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - }, - "LAYOUT_split_3x5_3_ex2": { - "layout": [ - {"matrix": [0, 1], "x": 0, "y": 0.3}, - {"matrix": [0, 2], "x": 1, "y": 0.1}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0.1}, - {"matrix": [0, 5], "x": 4, "y": 0.2}, - {"matrix": [0, 6], "x": 5, "y": 0.7}, - - {"matrix": [4, 6], "x": 8, "y": 0.7}, - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - - {"matrix": [1, 1], "x": 0, "y": 1.3}, - {"matrix": [1, 2], "x": 1, "y": 1.1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3, "y": 1.1}, - {"matrix": [1, 5], "x": 4, "y": 1.2}, - {"matrix": [1, 6], "x": 5, "y": 1.7}, - - {"matrix": [5, 6], "x": 8, "y": 1.7}, - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - - {"matrix": [2, 1], "x": 0, "y": 2.3}, - {"matrix": [2, 2], "x": 1, "y": 2.1}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 4], "x": 3, "y": 2.1}, - {"matrix": [2, 5], "x": 4, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - }, - "LAYOUT_split_3x6_3_ex2": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - {"matrix": [0, 6], "x": 6, "y": 0.7}, - - {"matrix": [4, 6], "x": 8, "y": 0.7}, - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - {"matrix": [1, 6], "x": 6, "y": 1.7}, - - {"matrix": [5, 6], "x": 8, "y": 1.7}, - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - } - }, - "ws2812": { - "driver": "vendor", - "pin": "GP10" - }, - "rgblight": { - "led_count": 46, - "split": true, - "split_count": [23, 23], - "max_brightness": 50, - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - } - }, - "rgb_matrix": { - "driver": "ws2812", - "max_brightness": 50, - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "sleep": true - } -} diff --git a/keyboards/crkbd/rev4_0/mcuconf.h b/keyboards/crkbd/rev4_0/mcuconf.h deleted file mode 100755 index 543d4703b0..0000000000 --- a/keyboards/crkbd/rev4_0/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/crkbd/rev4_0/mini/keyboard.json b/keyboards/crkbd/rev4_0/mini/keyboard.json deleted file mode 100755 index a455b1ba21..0000000000 --- a/keyboards/crkbd/rev4_0/mini/keyboard.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "keyboard_name": "Corne v4 mini", - "usb": { - "pid": "0x0104" - }, - "rgb_matrix": { - "split_count": [20, 20], - "layout": [ - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 4}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 4}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 6], "x": 103, "y": 17, "flags": 4}, - {"matrix": [1, 6], "x": 103, "y": 24, "flags": 4}, - - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 4}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 4}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 4}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 6], "x": 122, "y": 17, "flags": 4}, - {"matrix": [5, 6], "x": 122, "y": 24, "flags": 4} - ] - } -} diff --git a/keyboards/crkbd/rev4_0/post_config.h b/keyboards/crkbd/rev4_0/post_config.h deleted file mode 100755 index d9669a4cc3..0000000000 --- a/keyboards/crkbd/rev4_0/post_config.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#ifndef OLED_FONT_H -# define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" -#endif -#ifndef OLED_UPDATE_INTERVAL -# define OLED_UPDATE_INTERVAL 50 -#endif // OLED_UPDATE_INTERVAL diff --git a/keyboards/crkbd/rev4_0/standard/keyboard.json b/keyboards/crkbd/rev4_0/standard/keyboard.json deleted file mode 100755 index ba90a9e5f5..0000000000 --- a/keyboards/crkbd/rev4_0/standard/keyboard.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "keyboard_name": "Corne v4", - "usb": { - "pid": "0x0004" - }, - "rgb_matrix": { - "split_count": [23, 23], - "layout": [ - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 4}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 4}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4}, - {"matrix": [0, 6], "x": 103, "y": 17, "flags": 4}, - {"matrix": [1, 6], "x": 103, "y": 24, "flags": 4}, - - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 4}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 4}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 4}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4}, - {"matrix": [4, 6], "x": 122, "y": 17, "flags": 4}, - {"matrix": [5, 6], "x": 122, "y": 24, "flags": 4} - ] - } -} diff --git a/keyboards/crkbd/rev4_1/config.h b/keyboards/crkbd/rev4_1/config.h deleted file mode 100755 index 6f7d290ddc..0000000000 --- a/keyboards/crkbd/rev4_1/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define SERIAL_USART_TX_PIN GP12 -#define USB_VBUS_PIN GP13 - -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP6 -#define I2C1_SCL_PIN GP7 - -/* RP2040- and hardware-specific config */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/crkbd/rev4_1/info.json b/keyboards/crkbd/rev4_1/info.json deleted file mode 100755 index 3732d63910..0000000000 --- a/keyboards/crkbd/rev4_1/info.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "maintainer": "foostan", - "manufacturer": "foostan", - "url": "https://github.com/foostan/crkbd", - "usb": { - "vid": "0x4653", - "suspend_wakeup_delay": 200, - "device_version": "4.1.0" - }, - "processor": "RP2040", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true, - "oled": true, - "rgblight": false, - "rgb_matrix": true, - "mousekey": true, - "encoder": true - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 6 - }, - "matrix_pins": { - "direct":[ - ["GP22", "GP20", "GP23", "GP26", "GP29", "GP0", "GP4"], - ["GP19", "GP18", "GP24", "GP27", "GP1", "GP2", "GP8"], - ["GP17", "GP16", "GP25", "GP28", "GP3", "GP9", null], - [ null, null, null, "GP14", "GP15", "GP11", null] - ] - }, - "encoder": { - "rotary": [ - {"pin_a": "GP5", "pin_b": "GP7"}, - {"pin_a": "GP6", "pin_b": "GP7"} - ] - }, - "bootmagic": { - "enabled": true, - "matrix": [ 0, 1 ] - }, - "split": { - "enabled": true, - "bootmagic": { - "matrix": [ 4, 1 ] - }, - "handedness": { - "pin": "GP21" - }, - "matrix_pins": { - "right": { - "direct": [ - [ "GP8", "GP9", "GP3", "GP2", "GP1", "GP27", "GP25"], - ["GP11", "GP14", "GP4", "GP0", "GP28", "GP26", "GP23"], - ["GP15", "GP18", "GP5", "GP29", "GP20", "GP22", null], - [ null, null, null, "GP16", "GP17", "GP19", null] - ] - } - }, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "GP24", "pin_b": "GP7"}, - {"pin_a": "GP6", "pin_b": "GP7"} - ] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - }, - "watchdog": true - } - }, - "community_layouts": [ "split_3x5_3", "split_3x6_3" ], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 1], "x": 0, "y": 0.3}, - {"matrix": [0, 2], "x": 1, "y": 0.1}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0.1}, - {"matrix": [0, 5], "x": 4, "y": 0.2}, - - {"matrix": [4, 5], "x": 8, "y": 0.2}, - {"matrix": [4, 4], "x": 9, "y": 0.1}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 2], "x": 11, "y": 0.1}, - {"matrix": [4, 1], "x": 12, "y": 0.3}, - - {"matrix": [1, 1], "x": 0, "y": 1.3}, - {"matrix": [1, 2], "x": 1, "y": 1.1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3, "y": 1.1}, - {"matrix": [1, 5], "x": 4, "y": 1.2}, - - {"matrix": [5, 5], "x": 8, "y": 1.2}, - {"matrix": [5, 4], "x": 9, "y": 1.1}, - {"matrix": [5, 3], "x": 10, "y": 1}, - {"matrix": [5, 2], "x": 11, "y": 1.1}, - {"matrix": [5, 1], "x": 12, "y": 1.3}, - - {"matrix": [2, 1], "x": 0, "y": 2.3}, - {"matrix": [2, 2], "x": 1, "y": 2.1}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 4], "x": 3, "y": 2.1}, - {"matrix": [2, 5], "x": 4, "y": 2.2}, - - {"matrix": [6, 5], "x": 8, "y": 2.2}, - {"matrix": [6, 4], "x": 9, "y": 2.1}, - {"matrix": [6, 3], "x": 10, "y": 2}, - {"matrix": [6, 2], "x": 11, "y": 2.1}, - {"matrix": [6, 1], "x": 12, "y": 2.3}, - - {"matrix": [3, 3], "x": 3, "y": 3.7}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 8, "y": 3.7}, - {"matrix": [7, 3], "x": 9, "y": 3.7} - ] - }, - "LAYOUT_split_3x6_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - }, - "LAYOUT_split_3x5_3_ex2": { - "layout": [ - {"matrix": [0, 1], "x": 0, "y": 0.3}, - {"matrix": [0, 2], "x": 1, "y": 0.1}, - {"matrix": [0, 3], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0.1}, - {"matrix": [0, 5], "x": 4, "y": 0.2}, - {"matrix": [0, 6], "x": 5, "y": 0.7}, - - {"matrix": [4, 6], "x": 8, "y": 0.7}, - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - - {"matrix": [1, 1], "x": 0, "y": 1.3}, - {"matrix": [1, 2], "x": 1, "y": 1.1}, - {"matrix": [1, 3], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3, "y": 1.1}, - {"matrix": [1, 5], "x": 4, "y": 1.2}, - {"matrix": [1, 6], "x": 5, "y": 1.7}, - - {"matrix": [5, 6], "x": 8, "y": 1.7}, - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - - {"matrix": [2, 1], "x": 0, "y": 2.3}, - {"matrix": [2, 2], "x": 1, "y": 2.1}, - {"matrix": [2, 3], "x": 2, "y": 2}, - {"matrix": [2, 4], "x": 3, "y": 2.1}, - {"matrix": [2, 5], "x": 4, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - }, - "LAYOUT_split_3x6_3_ex2": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.3}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - {"matrix": [0, 6], "x": 6, "y": 0.7}, - - {"matrix": [4, 6], "x": 8, "y": 0.7}, - {"matrix": [4, 5], "x": 9, "y": 0.2}, - {"matrix": [4, 4], "x": 10, "y": 0.1}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0.1}, - {"matrix": [4, 1], "x": 13, "y": 0.3}, - {"matrix": [4, 0], "x": 14, "y": 0.3}, - - {"matrix": [1, 0], "x": 0, "y": 1.3}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - {"matrix": [1, 6], "x": 6, "y": 1.7}, - - {"matrix": [5, 6], "x": 8, "y": 1.7}, - {"matrix": [5, 5], "x": 9, "y": 1.2}, - {"matrix": [5, 4], "x": 10, "y": 1.1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1.1}, - {"matrix": [5, 1], "x": 13, "y": 1.3}, - {"matrix": [5, 0], "x": 14, "y": 1.3}, - - {"matrix": [2, 0], "x": 0, "y": 2.3}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - - {"matrix": [6, 5], "x": 9, "y": 2.2}, - {"matrix": [6, 4], "x": 10, "y": 2.1}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2.1}, - {"matrix": [6, 1], "x": 13, "y": 2.3}, - {"matrix": [6, 0], "x": 14, "y": 2.3}, - - {"matrix": [3, 3], "x": 4, "y": 3.7}, - {"matrix": [3, 4], "x": 5, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, - - {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, - {"matrix": [7, 4], "x": 9, "y": 3.7}, - {"matrix": [7, 3], "x": 10, "y": 3.7} - ] - } - }, - "ws2812": { - "driver": "vendor", - "pin": "GP10" - }, - "rgblight": { - "led_count": 46, - "split": true, - "split_count": [23, 23], - "max_brightness": 50, - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - } - }, - "rgb_matrix": { - "driver": "ws2812", - "max_brightness": 50, - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "sleep": true - } -} diff --git a/keyboards/crkbd/rev4_1/mcuconf.h b/keyboards/crkbd/rev4_1/mcuconf.h deleted file mode 100755 index 543d4703b0..0000000000 --- a/keyboards/crkbd/rev4_1/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/crkbd/rev4_1/mini/keyboard.json b/keyboards/crkbd/rev4_1/mini/keyboard.json deleted file mode 100755 index a455b1ba21..0000000000 --- a/keyboards/crkbd/rev4_1/mini/keyboard.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "keyboard_name": "Corne v4 mini", - "usb": { - "pid": "0x0104" - }, - "rgb_matrix": { - "split_count": [20, 20], - "layout": [ - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 4}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 4}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 6], "x": 103, "y": 17, "flags": 4}, - {"matrix": [1, 6], "x": 103, "y": 24, "flags": 4}, - - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 4}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 4}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 4}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 6], "x": 122, "y": 17, "flags": 4}, - {"matrix": [5, 6], "x": 122, "y": 24, "flags": 4} - ] - } -} diff --git a/keyboards/crkbd/rev4_1/post_config.h b/keyboards/crkbd/rev4_1/post_config.h deleted file mode 100755 index 4cb5c8b236..0000000000 --- a/keyboards/crkbd/rev4_1/post_config.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#ifndef OLED_FONT_H -# define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" -#endif -#ifndef OLED_UPDATE_INTERVAL -# define OLED_UPDATE_INTERVAL 50 -#endif // OLED_UPDATE_INTERVAL diff --git a/keyboards/crkbd/rev4_1/standard/keyboard.json b/keyboards/crkbd/rev4_1/standard/keyboard.json deleted file mode 100755 index ba90a9e5f5..0000000000 --- a/keyboards/crkbd/rev4_1/standard/keyboard.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "keyboard_name": "Corne v4", - "usb": { - "pid": "0x0004" - }, - "rgb_matrix": { - "split_count": [23, 23], - "layout": [ - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 4}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 4}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4}, - {"matrix": [0, 6], "x": 103, "y": 17, "flags": 4}, - {"matrix": [1, 6], "x": 103, "y": 24, "flags": 4}, - - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 4}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 4}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 4}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4}, - {"matrix": [4, 6], "x": 122, "y": 17, "flags": 4}, - {"matrix": [5, 6], "x": 122, "y": 24, "flags": 4} - ] - } -} diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk new file mode 100644 index 0000000000..836587e45e --- /dev/null +++ b/keyboards/crkbd/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = crkbd/rev1 diff --git a/keyboards/crowboard/keyboard.json b/keyboards/crowboard/keyboard.json index 2686a3d99c..1a9502cbd1 100644 --- a/keyboards/crowboard/keyboard.json +++ b/keyboards/crowboard/keyboard.json @@ -15,6 +15,7 @@ "rows": ["GP14", "GP15", "GP16", "GP17"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/custommk/cmk11/halconf.h b/keyboards/custommk/cmk11/halconf.h index 32d126efc5..6791d829f9 100644 --- a/keyboards/custommk/cmk11/halconf.h +++ b/keyboards/custommk/cmk11/halconf.h @@ -20,6 +20,11 @@ #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 diff --git a/keyboards/custommk/elysian/halconf.h b/keyboards/custommk/elysian/halconf.h index 501c3e00b5..5b2f7eedd2 100644 --- a/keyboards/custommk/elysian/halconf.h +++ b/keyboards/custommk/elysian/halconf.h @@ -5,6 +5,10 @@ #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 diff --git a/keyboards/custommk/elysian/keyboard.json b/keyboards/custommk/elysian/keyboard.json index 9055b70025..4fc842149d 100644 --- a/keyboards/custommk/elysian/keyboard.json +++ b/keyboards/custommk/elysian/keyboard.json @@ -30,12 +30,8 @@ "usb": { "device_version": "1.0.0", "pid": "0xFABB", - "vid": "0xF35B" - }, - "host": { - "default": { - "nkro": true - } + "vid": "0xF35B", + "force_nkro": true }, "encoder": { "rotary": [ diff --git a/keyboards/custommk/elysian/keymaps/default/keymap.c b/keyboards/custommk/elysian/keymaps/default/keymap.c index f7cb4924c9..fcb617ad9e 100644 --- a/keyboards/custommk/elysian/keymaps/default/keymap.c +++ b/keyboards/custommk/elysian/keymaps/default/keymap.c @@ -14,6 +14,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #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(MS_WHLD, MS_WHLU) } + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) } }; #endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/halconf.h b/keyboards/custommk/ergostrafer/halconf.h index 17a94765ca..aed037ba2a 100644 --- a/keyboards/custommk/ergostrafer/halconf.h +++ b/keyboards/custommk/ergostrafer/halconf.h @@ -20,6 +20,11 @@ #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 diff --git a/keyboards/custommk/ergostrafer/keyboard.json b/keyboards/custommk/ergostrafer/keyboard.json index 926190d952..4f23417415 100644 --- a/keyboards/custommk/ergostrafer/keyboard.json +++ b/keyboards/custommk/ergostrafer/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/custommk/ergostrafer_rgb/halconf.h b/keyboards/custommk/ergostrafer_rgb/halconf.h index 32d126efc5..6791d829f9 100644 --- a/keyboards/custommk/ergostrafer_rgb/halconf.h +++ b/keyboards/custommk/ergostrafer_rgb/halconf.h @@ -20,6 +20,11 @@ #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 diff --git a/keyboards/custommk/evo70/evo70.c b/keyboards/custommk/evo70/evo70.c index c20c25d3f0..a8df4a7d1d 100644 --- a/keyboards/custommk/evo70/evo70.c +++ b/keyboards/custommk/evo70/evo70.c @@ -93,8 +93,8 @@ uint16_t enc_ccw[] = { KC_VOLD, KC_VOLD, KC_MEDIA_PREV_TRACK, KC_VOLD, 0, 0, 0, "Scroll Wheel" }; -uint16_t enc_cw[] = { KC_VOLU, KC_VOLU, KC_MEDIA_NEXT_TRACK, KC_VOLU, 0, 0, 0, 0, 0, MS_WHLU }; -uint16_t enc_ccw[] = { KC_VOLD, KC_VOLD, KC_MEDIA_PREV_TRACK, KC_VOLD, 0, 0, 0, 0, 0, MS_WHLD }; +uint16_t enc_cw[] = { KC_VOLU, KC_VOLU, KC_MEDIA_NEXT_TRACK, KC_VOLU, 0, 0, 0, 0, 0, KC_WH_U }; +uint16_t enc_ccw[] = { KC_VOLD, KC_VOLD, KC_MEDIA_PREV_TRACK, KC_VOLD, 0, 0, 0, 0, 0, KC_WH_D }; #endif //bongocat uint8_t num_enc_modes = 10; diff --git a/keyboards/custommk/evo70/keyboard.json b/keyboards/custommk/evo70/keyboard.json index 14a328e442..95464e691a 100644 --- a/keyboards/custommk/evo70/keyboard.json +++ b/keyboards/custommk/evo70/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "backlight": true, "rgblight": true, diff --git a/keyboards/custommk/evo70_r2/halconf.h b/keyboards/custommk/evo70_r2/halconf.h index da1c76d1de..5268fe5de6 100644 --- a/keyboards/custommk/evo70_r2/halconf.h +++ b/keyboards/custommk/evo70_r2/halconf.h @@ -26,6 +26,11 @@ #define HAL_USE_GPT 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 diff --git a/keyboards/custommk/evo70_r2/keyboard.json b/keyboards/custommk/evo70_r2/keyboard.json index 8f986c92ac..5f10d6705d 100644 --- a/keyboards/custommk/evo70_r2/keyboard.json +++ b/keyboards/custommk/evo70_r2/keyboard.json @@ -6,6 +6,8 @@ "tags": ["70%", "encoder", "underglow", "backlight"], "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -59,6 +61,7 @@ "backlight": { "driver": "pwm", "breathing": true, + "breathing_period": 6, "levels": 17, "pin": "A6" }, diff --git a/keyboards/custommk/genesis/rules.mk b/keyboards/custommk/genesis/rules.mk new file mode 100644 index 0000000000..3d64c0af2b --- /dev/null +++ b/keyboards/custommk/genesis/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = custommk/genesis/rev2 diff --git a/keyboards/cutie_club/borsdorf/keyboard.json b/keyboards/cutie_club/borsdorf/keyboard.json index 02c3c12dff..30b5a74d64 100644 --- a/keyboards/cutie_club/borsdorf/keyboard.json +++ b/keyboards/cutie_club/borsdorf/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Borsdorf", "manufacturer": "Cutie Club", + "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/fidelity/keyboard.json b/keyboards/cutie_club/fidelity/keyboard.json index 142f303f46..47e7789506 100644 --- a/keyboards/cutie_club/fidelity/keyboard.json +++ b/keyboards/cutie_club/fidelity/keyboard.json @@ -1,22 +1,15 @@ { - "manufacturer": "HAND x KOEN", "keyboard_name": "Fidelity", + "manufacturer": "HAND x KOEN", "maintainer": "Cutie Club", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", + "url": "", "features": { "bootmagic": true, + "mousekey": true, "extrakey": true, - "mousekey": true + "command": false, + "console": false }, - "indicators": { - "caps_lock": "B4" - }, - "matrix_pins": { - "cols": ["A7", "A6", "A5", "A4", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0"], - "rows": ["A15", "B3", "B5", "B6", "B7"] - }, - "processor": "STM32F072", "qmk": { "locking": { "enabled": true, @@ -24,364 +17,91 @@ } }, "usb": { - "device_version": "0.0.1", + "vid": "0xFB9C", "pid": "0x4D1B", - "vid": "0xFB9C" + "device_version": "0.0.1" }, - "layout_aliases": { - "LAYOUT": "LAYOUT_all" + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "A7", "A6", "A5", "A4", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0" ], + "rows": [ "A15", "B3", "B5", "B6", "B7" ] + }, + "indicators": { + "caps_lock": "B4" }, "layouts": { - "LAYOUT_65_ansi_bauer": { + "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_bauer_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_bauer": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_bauer_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + { "matrix": [1, 15], "x": 15, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25 }, + { "matrix": [1, 14], "x": 14, "y": 2 }, + { "matrix": [2, 15], "x": 15, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 }, + { "matrix": [3, 14], "x": 14, "y": 3 }, + { "matrix": [3, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5 }, + { "matrix": [4, 7], "x": 3.75, "y": 4, "w": 7 }, + { "matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5 }, + { "matrix": [4, 13], "x": 13, "y": 4 }, + { "matrix": [4, 14], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } ] } } diff --git a/keyboards/cutie_club/fidelity/keymaps/default/keymap.c b/keyboards/cutie_club/fidelity/keymaps/default/keymap.c index 00c1acde3f..1f076a0e7d 100644 --- a/keyboards/cutie_club/fidelity/keymaps/default/keymap.c +++ b/keyboards/cutie_club/fidelity/keymaps/default/keymap.c @@ -18,14 +18,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_all( + [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_all( + [1] = LAYOUT( 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/cutie_club/giant_macro_pad/keyboard.json b/keyboards/cutie_club/giant_macro_pad/keyboard.json index ee9a42bf7c..f5cde334c0 100644 --- a/keyboards/cutie_club/giant_macro_pad/keyboard.json +++ b/keyboards/cutie_club/giant_macro_pad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Cupar19 Giant Macro Pad", "manufacturer": "Cutie Club", + "url": "", "maintainer": "cutie-club", "usb": { "vid": "0xFB9C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/keebcats/denis/keyboard.json b/keyboards/cutie_club/keebcats/denis/keyboard.json index e5ec7faa7f..f9d06af12a 100644 --- a/keyboards/cutie_club/keebcats/denis/keyboard.json +++ b/keyboards/cutie_club/keebcats/denis/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Keebcats Denis 80", "manufacturer": "Cutie Club", + "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -29,19 +32,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_iso_tsangan", "60_iso_split_bs_rshift", "60_iso", "60_tsangan_hhkb", "60_hhkb", "60_ansi_tsangan", "60_ansi_split_bs_rshift", "60_ansi"], "layouts": { "LAYOUT_all": { "layout": [ @@ -605,7 +596,7 @@ {"matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/cutie_club/keebcats/dougal/keyboard.json b/keyboards/cutie_club/keebcats/dougal/keyboard.json index 6d96936d4a..915e3ad15c 100644 --- a/keyboards/cutie_club/keebcats/dougal/keyboard.json +++ b/keyboards/cutie_club/keebcats/dougal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Keebcats Dougal 65", "manufacturer": "Cutie Club", + "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/novus/keyboard.json b/keyboards/cutie_club/novus/keyboard.json index 73ecac31f0..97bb81a71f 100644 --- a/keyboards/cutie_club/novus/keyboard.json +++ b/keyboards/cutie_club/novus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Novus", "manufacturer": "Cutie Club", + "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/wraith/keyboard.json b/keyboards/cutie_club/wraith/keyboard.json index b163eb76a9..7cc29caf25 100644 --- a/keyboards/cutie_club/wraith/keyboard.json +++ b/keyboards/cutie_club/wraith/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wraith", "manufacturer": "Amber", + "url": "", "maintainer": "amberstarlight", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cx60/keyboard.json b/keyboards/cx60/keyboard.json index 846b870d95..9748d934a6 100644 --- a/keyboards/cx60/keyboard.json +++ b/keyboards/cx60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CX60", "manufacturer": "CX60", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4358", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json deleted file mode 100644 index a85126aab6..0000000000 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "manufacturer": "cxt_studio", - "keyboard_name": "cxt_studio 12E3", - "maintainer": "muge", - "bootloader": "atmel-dfu", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "encoder": true, - "rgb_matrix": true - }, - "ws2812": { - "pin": "F7" - }, - "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5"], - "rows": ["C7", "C6", "D6", "F4"] - }, - "encoder": { - "rotary": [ - {"pin_a": "F5", "pin_b": "F6", "resolution": 4}, - {"pin_a": "E6", "pin_b": "F0", "resolution": 4}, - {"pin_a": "B3", "pin_b": "B2", "resolution": 2} - ] - }, - "processor": "atmega32u4", - "rgb_matrix": { - "animations": { - "breathing": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "default": { - "animation": "solid_reactive_simple" - }, - "driver": "ws2812", - "layout": [ - {"flags": 4, "matrix": [0, 3], "x": 3, "y": 0}, - {"flags": 4, "matrix": [0, 2], "x": 2, "y": 0}, - {"flags": 4, "matrix": [0, 1], "x": 1, "y": 0}, - {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 4, "matrix": [1, 0], "x": 0, "y": 1}, - {"flags": 4, "matrix": [1, 1], "x": 1, "y": 1}, - {"flags": 4, "matrix": [1, 2], "x": 2, "y": 1}, - {"flags": 4, "matrix": [1, 3], "x": 3, "y": 1}, - {"flags": 4, "matrix": [2, 3], "x": 3, "y": 2}, - {"flags": 4, "matrix": [2, 2], "x": 2, "y": 2}, - {"flags": 4, "matrix": [2, 1], "x": 1, "y": 2}, - {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} - ] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x12E3", - "vid": "0x0215" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - - {"matrix": [3, 2], "x": 4, "y": 0}, - {"matrix": [3, 3], "x": 5, "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": [3, 1], "x": 4, "y": 1, "w": 2, "h": 2}, - - {"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} - ] - } - } -} - diff --git a/keyboards/cxt_studio/12e3/keymaps/default/keymap.c b/keyboards/cxt_studio/12e3/keymaps/default/keymap.c deleted file mode 100644 index ef4b6938eb..0000000000 --- a/keyboards/cxt_studio/12e3/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum my_layers { - _BASE, - _RGBL, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_BASE] = LAYOUT( - KC_ESC, C(KC_X), C(KC_C), C(KC_V), MS_BTN3, RM_TOGG, - KC_PSCR,C(KC_Z), KC_CALC, KC_MNXT, KC_MPLY, - MO(1), KC_LGUI, KC_DEL, KC_APP - ), - - [_RGBL] = LAYOUT( - RM_NEXT, RM_SATU, KC_INS, KC_DEL, _______, _______, - RM_PREV, RM_SATD, KC_PGUP, KC_HOME, KC_MUTE, - _______, QK_BOOT, KC_PGDN, KC_END - ), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - // Encoders: Left, Right, Big - [_BASE] = { - ENCODER_CCW_CW(MS_WHLD, MS_WHLU), - ENCODER_CCW_CW(KC_PGDN, KC_PGUP), - ENCODER_CCW_CW(KC_VOLD, KC_VOLU) - }, - [_RGBL] = { - ENCODER_CCW_CW(RM_HUED, RM_HUEU), - ENCODER_CCW_CW(RM_SPDD, RM_SPDU), - ENCODER_CCW_CW(RM_VALD, RM_VALU) - }, -}; -#endif diff --git a/keyboards/cxt_studio/12e3/keymaps/default/rules.mk b/keyboards/cxt_studio/12e3/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/cxt_studio/12e3/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cxt_studio/12e3/readme.md b/keyboards/cxt_studio/12e3/readme.md deleted file mode 100644 index 8ea527f473..0000000000 --- a/keyboards/cxt_studio/12e3/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# cxt_studio/12e3 - -![cxt_studio/12e3](https://i.postimg.cc/NFK8rY8N/M5rtTSP.png) - -3x4 ortho layout, with 3 encoders. - -* Keyboard Maintainer: [muge](https://github.com/muge) -* Hardware Supported: CXT Studio 12E3 -* Hardware Availability: AliExpress, Taobao - -Make example for this keyboard (after setting up your build environment): - - make cxt_studio/12e3:default - -Flashing example for this keyboard: - - make cxt_studio/12e3:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB, located under the large encoder, on the right side -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. It is included in the default layout diff --git a/keyboards/cxt_studio/12e4/config.h b/keyboards/cxt_studio/12e4/config.h deleted file mode 100644 index de0fbad7ec..0000000000 --- a/keyboards/cxt_studio/12e4/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2023 Colin Kinloch (@ColinKinloch) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9 diff --git a/keyboards/cxt_studio/12e4/cxt_studio.c b/keyboards/cxt_studio/12e4/cxt_studio.c deleted file mode 100644 index 03a15e4d48..0000000000 --- a/keyboards/cxt_studio/12e4/cxt_studio.c +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2023 Colin Kinloch (@ColinKinloch) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - switch (index) { - case 0: { - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } - break; - case 1: { - if (clockwise) { - rgb_matrix_increase_hue(); - } else { - rgb_matrix_decrease_hue(); - } - } - break; - case 2: { - if (clockwise) { - rgb_matrix_increase_val(); - } else { - rgb_matrix_decrease_val(); - } - } - break; - case 3: { - if (clockwise) { - rgb_matrix_step(); - } else { - rgb_matrix_step_reverse(); - } - } - break; - } - return true; -} -#endif diff --git a/keyboards/cxt_studio/12e4/keyboard.json b/keyboards/cxt_studio/12e4/keyboard.json deleted file mode 100644 index 9b54d6fd26..0000000000 --- a/keyboards/cxt_studio/12e4/keyboard.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "manufacturer": "CXT", - "keyboard_name": "cxt_studio 12E4", - "maintainer": "ColinKinloch", - "bootloader": "atmel-dfu", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "encoder": true, - "rgb_matrix": true - }, - "ws2812": { - "pin": "F7" - }, - "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5"], - "rows": ["C7", "C6", "D6", "F4"] - }, - "encoder": { - "rotary": [ - {"pin_a": "D5", "pin_b": "D3"}, - {"pin_a": "B2", "pin_b": "B3"}, - {"pin_a": "F5", "pin_b": "F6"}, - {"pin_a": "E6", "pin_b": "F0"} - ] - }, - "processor": "atmega32u4", - "rgb_matrix": { - "animations": { - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "default": { - "animation": "typing_heatmap" - }, - "driver": "ws2812", - "layout": [ - {"flags": 4, "matrix": [0, 3], "x": 3, "y": 0}, - {"flags": 4, "matrix": [0, 2], "x": 2, "y": 0}, - {"flags": 4, "matrix": [0, 1], "x": 1, "y": 0}, - {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 4, "matrix": [1, 0], "x": 0, "y": 1}, - {"flags": 4, "matrix": [1, 1], "x": 1, "y": 1}, - {"flags": 4, "matrix": [1, 2], "x": 2, "y": 1}, - {"flags": 4, "matrix": [1, 3], "x": 3, "y": 1}, - {"flags": 4, "matrix": [2, 3], "x": 3, "y": 2}, - {"flags": 4, "matrix": [2, 2], "x": 2, "y": 2}, - {"flags": 4, "matrix": [2, 1], "x": 1, "y": 2}, - {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} - ] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0xC401", - "vid": "0x5754" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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": [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} - ] - } - } -} diff --git a/keyboards/cxt_studio/12e4/keymaps/default/keymap.json b/keyboards/cxt_studio/12e4/keymaps/default/keymap.json deleted file mode 100644 index b05d3ba179..0000000000 --- a/keyboards/cxt_studio/12e4/keymaps/default/keymap.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "keyboard": "cxt_studio/12e4", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_ESC", "KC_F11", "KC_NO", "KC_MSTP", - "KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD", - "KC_NO", "KC_MPLY", "KC_MPLY", "KC_MNXT", - "KC_MUTE", "KC_NO", "KC_NO", "RM_TOGG" - ] - ] -} diff --git a/keyboards/cxt_studio/12e4/readme.md b/keyboards/cxt_studio/12e4/readme.md deleted file mode 100644 index 760c3544b4..0000000000 --- a/keyboards/cxt_studio/12e4/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# cxt_studio/12e4 - -![cxt_studio/12e4](https://i.imgur.com/AMCTioSh.jpeg) - -3x4 ortho rgb lighting 4 knobs. - -* Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch) -* Hardware Supported: CXT-Studio/12E4 -* Hardware Availability: AliExpress. I think the manufacturer is on Taobao. - -Make example for this keyboard (after setting up your build environment): - - make cxt_studio/12e4:default - -Flashing example for this keyboard: - - make cxt_studio/12e4:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cxt_studio/config.h b/keyboards/cxt_studio/config.h new file mode 100644 index 0000000000..e56e07a254 --- /dev/null +++ b/keyboards/cxt_studio/config.h @@ -0,0 +1,22 @@ +// Copyright 2023 Colin Kinloch (@ColinKinloch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/cxt_studio/cxt_studio.c b/keyboards/cxt_studio/cxt_studio.c new file mode 100644 index 0000000000..2b36905340 --- /dev/null +++ b/keyboards/cxt_studio/cxt_studio.c @@ -0,0 +1,55 @@ +// Copyright 2023 Colin Kinloch (@ColinKinloch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static uint8_t anim = 0; + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + switch (index) { + case 0: { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + break; + case 1: { + if (clockwise) { + rgblight_increase_hue(); + } else { + rgblight_decrease_hue(); + } + } + break; + case 2: { + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + } + break; + case 3: { + if (clockwise) { + anim++; + } else { + anim--; + } + if (anim >= RGB_MATRIX_EFFECT_MAX) { + anim = 0; + } else if (anim < 0) { + anim = RGB_MATRIX_EFFECT_MAX - 1; + } + rgblight_mode(anim); + } + break; + } + return true; +} +#endif diff --git a/keyboards/cxt_studio/keyboard.json b/keyboards/cxt_studio/keyboard.json new file mode 100644 index 0000000000..7ee7b52d50 --- /dev/null +++ b/keyboards/cxt_studio/keyboard.json @@ -0,0 +1,98 @@ +{ + "manufacturer": "CXT", + "keyboard_name": "cxt_studio", + "maintainer": "ColinKinloch", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "F7" + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5"], + "rows": ["C7", "C6", "D6", "F4"] + }, + "encoder": { + "rotary": [ + {"pin_a": "D5", "pin_b": "D3"}, + {"pin_a": "B2", "pin_b": "B3"}, + {"pin_a": "F5", "pin_b": "F6"}, + {"pin_a": "E6", "pin_b": "F0"} + ] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "animations": { + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "default": { + "animation": "typing_heatmap" + }, + "driver": "ws2812", + "layout": [ + {"flags": 4, "matrix": [0, 3], "x": 3, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 2, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 1, "y": 0}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 1}, + {"flags": 4, "matrix": [1, 1], "x": 1, "y": 1}, + {"flags": 4, "matrix": [1, 2], "x": 2, "y": 1}, + {"flags": 4, "matrix": [1, 3], "x": 3, "y": 1}, + {"flags": 4, "matrix": [2, 3], "x": 3, "y": 2}, + {"flags": 4, "matrix": [2, 2], "x": 2, "y": 2}, + {"flags": 4, "matrix": [2, 1], "x": 1, "y": 2}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xC401", + "vid": "0x5754" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "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": [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": [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} + ] + } + } +} diff --git a/keyboards/cxt_studio/keymaps/default/keymap.json b/keyboards/cxt_studio/keymaps/default/keymap.json new file mode 100644 index 0000000000..77b4cabc92 --- /dev/null +++ b/keyboards/cxt_studio/keymaps/default/keymap.json @@ -0,0 +1,13 @@ +{ + "keyboard": "cxt_studio", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", "KC_F11", "KC_NO", "KC_MSTP", + "KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD", + "KC_NO", "KC_MPLY", "KC_MPLY", "KC_MNXT", + "KC_MUTE", "KC_NO", "KC_NO", "RGB_TOG" + ] + ] +} diff --git a/keyboards/cxt_studio/readme.md b/keyboards/cxt_studio/readme.md new file mode 100644 index 0000000000..6397a3fdfd --- /dev/null +++ b/keyboards/cxt_studio/readme.md @@ -0,0 +1,27 @@ +# cxt_studio + +![cxt_studio](https://i.imgur.com/AMCTioSh.jpeg) + +3x4 ortho rgb lighting 4 knobs. + +* Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch) +* Hardware Supported: CXT-Studio +* Hardware Availability: AliExpress. I think the manufacturer is on Taobao. + +Make example for this keyboard (after setting up your build environment): + + make cxt_studio:default + +Flashing example for this keyboard: + + make cxt_studio:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cybergear/macro25/keyboard.json b/keyboards/cybergear/macro25/keyboard.json index 8b0bcc8ef4..a1fca49406 100644 --- a/keyboards/cybergear/macro25/keyboard.json +++ b/keyboards/cybergear/macro25/keyboard.json @@ -8,7 +8,8 @@ "pid": "0x69A1", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "diode_direction": "COL2ROW", "layouts": { "LAYOUT_ortho_2x5": { @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dailycraft/bat43/info.json b/keyboards/dailycraft/bat43/info.json index a8b6f83792..19aaa540dd 100644 --- a/keyboards/dailycraft/bat43/info.json +++ b/keyboards/dailycraft/bat43/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "bat43", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": true, "nkro": false @@ -18,5 +21,6 @@ "rows": ["E6", "D7", "C6", "D4", "F7", "F6", "F5", "F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/dailycraft/bat43/rules.mk b/keyboards/dailycraft/bat43/rules.mk new file mode 100644 index 0000000000..b152851948 --- /dev/null +++ b/keyboards/dailycraft/bat43/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dailycraft/bat43/rev2 diff --git a/keyboards/dailycraft/claw44/rev1/keyboard.json b/keyboards/dailycraft/claw44/rev1/keyboard.json index c10fa57cb3..62b069a490 100644 --- a/keyboards/dailycraft/claw44/rev1/keyboard.json +++ b/keyboards/dailycraft/claw44/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "claw44", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -18,7 +19,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/dailycraft/claw44/rules.mk b/keyboards/dailycraft/claw44/rules.mk new file mode 100644 index 0000000000..0344b3ee28 --- /dev/null +++ b/keyboards/dailycraft/claw44/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dailycraft/claw44/rev1 diff --git a/keyboards/dailycraft/owl8/keyboard.json b/keyboards/dailycraft/owl8/keyboard.json index fb3f2042f4..a4a1a70e3e 100644 --- a/keyboards/dailycraft/owl8/keyboard.json +++ b/keyboards/dailycraft/owl8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "owl8", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -17,6 +18,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/dailycraft/sandbox/rev1/keyboard.json b/keyboards/dailycraft/sandbox/rev1/keyboard.json index 19e4e924b2..8658de96df 100644 --- a/keyboards/dailycraft/sandbox/rev1/keyboard.json +++ b/keyboards/dailycraft/sandbox/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "sandbox rev1", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -12,7 +13,8 @@ "rows": ["B5", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dailycraft/sandbox/rev2/keyboard.json b/keyboards/dailycraft/sandbox/rev2/keyboard.json index d94593cced..1eb61ee12c 100644 --- a/keyboards/dailycraft/sandbox/rev2/keyboard.json +++ b/keyboards/dailycraft/sandbox/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "sandbox rev2", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -18,7 +19,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dailycraft/sandbox/rules.mk b/keyboards/dailycraft/sandbox/rules.mk new file mode 100644 index 0000000000..c62f01e18f --- /dev/null +++ b/keyboards/dailycraft/sandbox/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dailycraft/sandbox/rev2 diff --git a/keyboards/dailycraft/stickey4/keyboard.json b/keyboards/dailycraft/stickey4/keyboard.json index d4cf997877..d0e2a491d3 100644 --- a/keyboards/dailycraft/stickey4/keyboard.json +++ b/keyboards/dailycraft/stickey4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "stickey4", "manufacturer": "yfuku", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5946", @@ -17,6 +18,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/dailycraft/wings42/rev1/keyboard.json b/keyboards/dailycraft/wings42/rev1/keyboard.json index 3f71586581..f4a3949c61 100644 --- a/keyboards/dailycraft/wings42/rev1/keyboard.json +++ b/keyboards/dailycraft/wings42/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "wings42 rev1", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -18,7 +19,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json index a3ea3c2b45..bebe264cc0 100644 --- a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json +++ b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "wings42 rev1_extkeys", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -18,7 +19,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dailycraft/wings42/rev2/keyboard.json b/keyboards/dailycraft/wings42/rev2/keyboard.json index 7ed0fb9967..3f2cb1b766 100644 --- a/keyboards/dailycraft/wings42/rev2/keyboard.json +++ b/keyboards/dailycraft/wings42/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "wings42 rev2", "manufacturer": "yfuku", + "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", @@ -24,7 +25,8 @@ { "pin_a": "B6", "pin_b": "B2" } ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "encoder": true, diff --git a/keyboards/dailycraft/wings42/rules.mk b/keyboards/dailycraft/wings42/rules.mk new file mode 100644 index 0000000000..b027fec9b9 --- /dev/null +++ b/keyboards/dailycraft/wings42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dailycraft/wings42/rev2 diff --git a/keyboards/daji/seis_cinco/keyboard.json b/keyboards/daji/seis_cinco/keyboard.json index 837f01380d..358dfc17ce 100644 --- a/keyboards/daji/seis_cinco/keyboard.json +++ b/keyboards/daji/seis_cinco/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Seis Cinco", "manufacturer": "Daji", + "url": "", "maintainer": "toraifu", "usb": { "vid": "0xBF00", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dark/magnum_ergo_1/keyboard.json b/keyboards/dark/magnum_ergo_1/keyboard.json index d4a74d592b..a52de6decc 100644 --- a/keyboards/dark/magnum_ergo_1/keyboard.json +++ b/keyboards/dark/magnum_ergo_1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Magnum Ergo 1", "manufacturer": "Gondolindrim X Dark", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4744", @@ -18,6 +19,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/darkproject/kd83a_bfg_edition/config.h b/keyboards/darkproject/kd83a_bfg_edition/config.h index fce00d29ab..880aabd5d7 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/config.h +++ b/keyboards/darkproject/kd83a_bfg_edition/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/darkproject/kd83a_bfg_edition/halconf.h b/keyboards/darkproject/kd83a_bfg_edition/halconf.h index adeb248f90..8f61d3fc64 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/halconf.h +++ b/keyboards/darkproject/kd83a_bfg_edition/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json index f8964bf461..23bd2b6981 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -172,6 +174,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "0.0.3", "pid": "0xE392", diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c index 8218f5fd6c..0c23701f5b 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c @@ -46,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [Winfn] = LAYOUT( - QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RM_NEXT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), [Macfn] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RM_NEXT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), }; diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h index 9e68844daf..a32f712231 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/config.h +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/darkproject/kd87a_bfg_edition/halconf.h b/keyboards/darkproject/kd87a_bfg_edition/halconf.h index adeb248f90..8f61d3fc64 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/halconf.h +++ b/keyboards/darkproject/kd87a_bfg_edition/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json index cd6ae14108..1e0d7f5e8b 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json @@ -180,6 +180,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "0.0.3", "pid": "0xE393", diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c index 4c36cd29eb..8d48ed9acf 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c @@ -47,19 +47,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [Winfn] = LAYOUT_tkl_ansi( QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, - KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), [Macfn] = LAYOUT_tkl_ansi( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, - KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), }; diff --git a/keyboards/darmoshark/k3/halconf.h b/keyboards/darmoshark/k3/halconf.h index adf026a47a..b6a606056a 100644 --- a/keyboards/darmoshark/k3/halconf.h +++ b/keyboards/darmoshark/k3/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/darmoshark/k3/keyboard.json b/keyboards/darmoshark/k3/keyboard.json index c58b295404..ff5047b93a 100644 --- a/keyboards/darmoshark/k3/keyboard.json +++ b/keyboards/darmoshark/k3/keyboard.json @@ -2,6 +2,7 @@ "manufacturer": "Darmoshark", "keyboard_name": "K3 QMK", "maintainer": "Proceee", + "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { @@ -13,6 +14,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -30,7 +33,8 @@ "cols": ["B1", "C7", "C13", "B9"] }, "indicators": { - "num_lock": "C5" + "num_lock": "C5", + "on_state": 1 }, "ws2812": { "pin": "A8" diff --git a/keyboards/darmoshark/k3/keymaps/default/keymap.c b/keyboards/darmoshark/k3/keymaps/default/keymap.c index 8c70bf10f2..5c49cab1a3 100644 --- a/keyboards/darmoshark/k3/keymaps/default/keymap.c +++ b/keyboards/darmoshark/k3/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_numpad_6x4( - EE_CLR, _______, RM_NEXT, _______, - KC_CALC, _______, _______, RM_VALD, - _______, RM_SPDU, _______, - _______, _______, _______, RM_VALU, - _______, RM_SPDD, _______, - _______, RM_TOGG, _______ + EE_CLR, _______, RGB_MOD, _______, + KC_CALC, _______, _______, RGB_VAD, + _______, RGB_SPI, _______, + _______, _______, _______, RGB_VAI, + _______, RGB_SPD, _______, + _______, RGB_TOG, _______ ) }; diff --git a/keyboards/dasky/reverb/keyboard.json b/keyboards/dasky/reverb/keyboard.json index bfeb9ef675..e7e203ebf6 100644 --- a/keyboards/dasky/reverb/keyboard.json +++ b/keyboards/dasky/reverb/keyboard.json @@ -124,6 +124,7 @@ {"matrix": [3, 0], "x": 129, "y": 13, "flags": 4} ] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/dasky/reverb/keymaps/default/keymap.json b/keyboards/dasky/reverb/keymaps/default/keymap.json index bce24be260..c23702d4c0 100644 --- a/keyboards/dasky/reverb/keymaps/default/keymap.json +++ b/keyboards/dasky/reverb/keymaps/default/keymap.json @@ -25,8 +25,8 @@ ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR", "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"] ] } diff --git a/keyboards/db/db63/keyboard.json b/keyboards/db/db63/keyboard.json index b3db08c01c..ec41b8c313 100644 --- a/keyboards/db/db63/keyboard.json +++ b/keyboards/db/db63/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/dc01/arrow/keyboard.json b/keyboards/dc01/arrow/keyboard.json index c8a2b229ea..f56646367f 100644 --- a/keyboards/dc01/arrow/keyboard.json +++ b/keyboards/dc01/arrow/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DC01 Arrow", "manufacturer": "Mechboards", + "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/left/keyboard.json b/keyboards/dc01/left/keyboard.json index 01942c099c..2238f67564 100644 --- a/keyboards/dc01/left/keyboard.json +++ b/keyboards/dc01/left/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DC01 Left", "manufacturer": "Mechboards", + "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/numpad/keyboard.json b/keyboards/dc01/numpad/keyboard.json index b78d8b9ee5..900af6e542 100644 --- a/keyboards/dc01/numpad/keyboard.json +++ b/keyboards/dc01/numpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DC01 Numpad", "manufacturer": "Mechboards", + "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/right/keyboard.json b/keyboards/dc01/right/keyboard.json index 3811ec3331..36dc7a7056 100644 --- a/keyboards/dc01/right/keyboard.json +++ b/keyboards/dc01/right/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DC01 Right", "manufacturer": "Mechboards", + "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/decent/numpad/config.h b/keyboards/decent/numpad/config.h deleted file mode 100644 index f5114d3ce0..0000000000 --- a/keyboards/decent/numpad/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define JOYSTICK_AXIS_COUNT 4 -#define JOYSTICK_BUTTON_COUNT 10 -#define JOYSTICK_HAS_HAT diff --git a/keyboards/decent/numpad/keyboard.json b/keyboards/decent/numpad/keyboard.json deleted file mode 100644 index eb45c72232..0000000000 --- a/keyboards/decent/numpad/keyboard.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "manufacturer": "Bertrand Le roy", - "keyboard_name": "DecenTKL NumPad", - "maintainer": "bleroy", - "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", - "tags": ["ansi", "numpad", "rgb", "atari", "joystick"], - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "rgb_matrix": true, - "extrakey": true, - "mousekey": true, - "joystick": true - }, - "matrix_pins": { - "cols": ["GP0", "GP1", "GP2", "GP3"], - "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "ws2812": { - "pin": "GP20", - "driver": "vendor" - }, - "bootmagic": { - "matrix": [1, 0] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0.75, "y": 0, "label": "F11"}, - {"matrix": [0, 1], "x": 2.25, "y": 0, "label": "F12"}, - - {"matrix": [1, 0], "x": 0, "y": 1, "label": "Num"}, - {"matrix": [1, 1], "x": 1, "y": 1, "label": "/"}, - {"matrix": [1, 2], "x": 2, "y": 1, "label": "*"}, - {"matrix": [1, 3], "x": 3, "y": 1, "label": "-"}, - - {"matrix": [2, 0], "x": 0, "y": 2, "label": "7"}, - {"matrix": [2, 1], "x": 1, "y": 2, "label": "8"}, - {"matrix": [2, 2], "x": 2, "y": 2, "label": "9"}, - {"matrix": [2, 3], "x": 3, "y": 2, "h": 2, "label": "+"}, - - {"matrix": [3, 0], "x": 0, "y": 3, "label": "4"}, - {"matrix": [3, 1], "x": 1, "y": 3, "label": "5"}, - {"matrix": [3, 2], "x": 2, "y": 3, "label": "6"}, - - {"matrix": [4, 0], "x": 0, "y": 4, "label": "1"}, - {"matrix": [4, 1], "x": 1, "y": 4, "label": "2"}, - {"matrix": [4, 2], "x": 2, "y": 4, "label": "3"}, - {"matrix": [4, 3], "x": 3, "y": 4, "h": 2, "label": "Enter"}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 2, "label": "0"}, - {"matrix": [5, 2], "x": 2, "y": 5, "label": "."} - ] - } - }, - "rgb_matrix": { - "center_point": [37, 42], - "max_brightness": 125, - "sleep": true, - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "layout": [ - {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 169, "y": 0, "flags": 4}, - - {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, - {"matrix": [1, 1], "x": 75, "y": 20, "flags": 4}, - {"matrix": [1, 2], "x": 150, "y": 20, "flags": 4}, - {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4}, - - {"matrix": [2, 0], "x": 0, "y": 31, "flags": 4}, - {"matrix": [2, 1], "x": 75, "y": 31, "flags": 4}, - {"matrix": [2, 2], "x": 150, "y": 31, "flags": 4}, - {"x": 224, "y": 31, "flags": 2}, - - {"matrix": [3, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [3, 1], "x": 75, "y": 42, "flags": 4}, - {"matrix": [3, 2], "x": 150, "y": 42, "flags": 4}, - {"matrix": [3, 3], "x": 224, "y": 42, "flags": 4}, - - {"matrix": [4, 0], "x": 0, "y": 53, "flags": 4}, - {"matrix": [4, 1], "x": 75, "y": 53, "flags": 4}, - {"matrix": [4, 2], "x": 150, "y": 53, "flags": 4}, - {"x": 224, "y": 53, "flags": 2}, - - {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, - {"x": 85, "y": 75, "flags": 2}, - {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4}, - {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} - ], - "driver": "ws2812" - } -} diff --git a/keyboards/decent/numpad/keymaps/default/keymap.c b/keyboards/decent/numpad/keymaps/default/keymap.c deleted file mode 100644 index c450b186d9..0000000000 --- a/keyboards/decent/numpad/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * /─────/─────/ - * /F11 /F12 / - * /─────/─────/ - * ┌───┬───┬───┬───┐ - * │Num│ / │ * │ - │ - * ├───┼───┼───┼───┤ - * │ 7 │ 8 │ 9 │ + │ - * ├───┼───┼───┤ │ - * │ 4 │ 5 │ 6 │ │ - * ├───┼───┼───┼───┤ - * │ 1 │ 2 │ 3 │Ent│ - * ├───┴───┼───┤ er│ - * │ 0 │ . │ │ - * └───────┴───┴───┘ - */ - [0] = LAYOUT( - KC_F11, KC_F12, - - MO(1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [1] = LAYOUT( - S(KC_F11), S(KC_F12), - - _______, _______, _______, RM_VALD, - _______, RM_HUEU, _______, RM_VALU, - RM_SPDD, _______, RM_SPDU, - RM_PREV, RM_HUED, RM_NEXT, QK_BOOT, - RM_TOGG, _______ - ), -}; diff --git a/keyboards/decent/numpad/numpad.c b/keyboards/decent/numpad/numpad.c deleted file mode 100644 index 5a8b032746..0000000000 --- a/keyboards/decent/numpad/numpad.c +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2024 B. Le Roy -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" -#include "analog.h" - -joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { - [0] = JOYSTICK_AXIS_VIRTUAL, - [1] = JOYSTICK_AXIS_VIRTUAL, - [2] = JOYSTICK_AXIS_VIRTUAL, - [3] = JOYSTICK_AXIS_VIRTUAL -}; - -void keyboard_post_init_kb(void) { - gpio_set_pin_input_high(GP10); // Up1 - gpio_set_pin_input_high(GP11); // Down1 - gpio_set_pin_input_high(GP12); // Left1 - gpio_set_pin_input_high(GP13); // Right1 - gpio_set_pin_input_high(GP14); // Fire1 - gpio_set_pin_input_high(GP15); - gpio_set_pin_input_high(GP16); - gpio_set_pin_input_high(GP17); - gpio_set_pin_input_high(GP18); - gpio_set_pin_input_high(GP19); - - keyboard_post_init_user(); -} - -void set_button_state(int btn, bool state) { - if (state) { - unregister_joystick_button(btn); - } - else { - register_joystick_button(btn); - } -} - -void housekeeping_task_kb(void) { - set_button_state(0, gpio_read_pin(GP16)); - set_button_state(1, gpio_read_pin(GP18)); - set_button_state(2, gpio_read_pin(GP17)); - set_button_state(3, gpio_read_pin(GP15)); - set_button_state(4, gpio_read_pin(GP14)); - set_button_state(5, gpio_read_pin(GP19)); - bool up = !gpio_read_pin(10); - bool down = !gpio_read_pin(11); - bool left = !gpio_read_pin(12); - bool right = !gpio_read_pin(13); - if (up) { - if (left) { - joystick_set_hat(7); - } - else if (right) { - joystick_set_hat(1); - } - else { - joystick_set_hat(0); - } - } - else if (down) { - if (left) { - joystick_set_hat(5); - } - else if (right) { - joystick_set_hat(3); - } - else { - joystick_set_hat(4); - } - } - else if (left) { - joystick_set_hat(6); - } - else if (right) { - joystick_set_hat(2); - } - else { - joystick_set_hat(-1); - } - int16_t analog = analogReadPin(GP26); - joystick_set_axis(0, analog); - analog = analogReadPin(GP27); - joystick_set_axis(1, analog); - analog = analogReadPin(GP28); - joystick_set_axis(2, analog); - analog = analogReadPin(GP29); - joystick_set_axis(3, analog); -} - -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { - return false; - } - - if (get_highest_layer(layer_state) > 0) { - uint8_t layer = get_highest_layer(layer_state); - - for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { - for (uint8_t col = 0; col < MATRIX_COLS; ++col) { - uint8_t index = g_led_config.matrix_co[row][col]; - - if (index >= led_min && index < led_max && index != NO_LED && - keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { - rgb_matrix_set_color(index, RGB_GREEN); - } - } - } - } - - return false; -} diff --git a/keyboards/decent/numpad/readme.md b/keyboards/decent/numpad/readme.md deleted file mode 100644 index 83436bf8c0..0000000000 --- a/keyboards/decent/numpad/readme.md +++ /dev/null @@ -1,71 +0,0 @@ -# DecenTKL NumPad - -*A numeric pad to go with the DecenTKL keyboard* - -This numeric pad also includes a 3-port USB hub, enabling the connection of the TKL -keyboard on the back of the pad. - -The pad also has two Atari joystick ports. - -* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) -* Hardware Supported: DecenTKL (RP2040-based) -* Hardware Availability: Custom built but open-source - -Make example for this keyboard (after setting up your build environment): - - make decent/numpad:default - -Flashing example for this keyboard: - - make decent/numpad: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 - -Press the Num key or the button on the back of the board while connecting the pad. - -## Special commands - -Num + Enter: go into bootloader mode without unplugging the keyboard - -## Layout -```C -/* - * /─────/─────/ - * /F11 /F12 / - * /─────/─────/ - * ┌───┬───┬───┬───┐ - * │Num│ / │ * │ - │ - * ├───┼───┼───┼───┤ - * │ 7 │ 8 │ 9 │ + │ - * ├───┼───┼───┤ │ - * │ 4 │ 5 │ 6 │ │ - * ├───┼───┼───┼───┤ - * │ 1 │ 2 │ 3 │Ent│ - * ├───┴───┼───┤ er│ - * │ 0 │ . │ │ - * └───────┴───┴───┘ - */ -``` - -While holding the Num key: - -```C -/* - * /─────────/─────────/ - * /Shift+F11/Shift+F12/ - * /─────────/─────────/ - * ┌───────┬───────┬───────┬───────┐ - * │ │ │ │Bright-│ - * ├───────┼───────┼───────┼───────┤ - * │ │ Hue + │ │Bright+│ - * ├───────┼───────┼───────┤ │ - * │Speed -│ Swirl │Speed +│ │ - * ├───────┼───────┼───────┼───────┤ - * │Mode - │ Hue - │Mode + │ │ - * ├───────┴───────┼───────┤BootSel│ - * │ on / off │ │ │ - * └───────────────┴───────┴───────┘ - */ -``` diff --git a/keyboards/decent/tkl/atari-font.c b/keyboards/decent/tkl/atari-font.c deleted file mode 100644 index 635e711f52..0000000000 --- a/keyboards/decent/tkl/atari-font.c +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "progmem.h" - -static const unsigned char PROGMEM font[] = { - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, - 0x18, 0x18, 0xFF, 0xFF, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, - 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, - 0x07, 0x0E, 0x1C, 0x38, 0x70, 0xE0, - 0x80, 0xC0, 0xF0, 0xF8, 0xFE, 0xFF, - 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, - 0xFF, 0xFE, 0xF8, 0xF0, 0xC0, 0x80, - 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, - 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, - 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, - 0x18, 0x58, 0x66, 0x66, 0x58, 0x18, - 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, - 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, - 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, - 0x1F, 0x15, 0x75, 0x50, 0x50, 0x00, - 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, - 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, - 0x10, 0x38, 0x54, 0x10, 0x10, 0x00, - 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, - 0x24, 0x7E, 0x24, 0x7E, 0x24, 0x00, - 0x24, 0x2A, 0x6B, 0x2A, 0x12, 0x00, - 0x4C, 0x2C, 0x10, 0x68, 0x64, 0x00, - 0x30, 0x4A, 0x55, 0x32, 0x50, 0x00, - 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x10, 0x54, 0x38, 0x54, 0x10, 0x00, - 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, - 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3C, 0x52, 0x4A, 0x46, 0x3C, 0x00, - 0x00, 0x44, 0x7E, 0x40, 0x00, 0x00, - 0x44, 0x62, 0x52, 0x4A, 0x44, 0x00, - 0x22, 0x42, 0x4A, 0x56, 0x22, 0x00, - 0x30, 0x28, 0x24, 0x7E, 0x20, 0x00, - 0x2E, 0x4A, 0x4A, 0x4A, 0x32, 0x00, - 0x3C, 0x4A, 0x4A, 0x4A, 0x30, 0x00, - 0x62, 0x12, 0x0A, 0x06, 0x02, 0x00, - 0x34, 0x4A, 0x4A, 0x4A, 0x34, 0x00, - 0x04, 0x4A, 0x4A, 0x2A, 0x1C, 0x00, - 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x48, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x04, 0x02, 0x52, 0x0A, 0x04, 0x00, - 0x3C, 0x42, 0x5A, 0x5A, 0x5C, 0x00, - 0x78, 0x24, 0x22, 0x24, 0x78, 0x00, - 0x7E, 0x4A, 0x4A, 0x4A, 0x34, 0x00, - 0x3C, 0x42, 0x42, 0x42, 0x24, 0x00, - 0x7E, 0x42, 0x42, 0x24, 0x18, 0x00, - 0x7E, 0x4A, 0x4A, 0x4A, 0x42, 0x00, - 0x7E, 0x0A, 0x0A, 0x0A, 0x02, 0x00, - 0x3C, 0x42, 0x42, 0x52, 0x72, 0x00, - 0x7E, 0x08, 0x08, 0x08, 0x7E, 0x00, - 0x00, 0x42, 0x7E, 0x42, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3E, 0x00, 0x00, - 0x7E, 0x18, 0x24, 0x42, 0x00, 0x00, - 0x7E, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7E, 0x04, 0x08, 0x04, 0x7E, 0x00, - 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, - 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x00, - 0x7E, 0x12, 0x12, 0x12, 0x0C, 0x00, - 0x3C, 0x42, 0x52, 0x22, 0x5C, 0x00, - 0x7E, 0x12, 0x12, 0x32, 0x4C, 0x00, - 0x04, 0x4A, 0x4A, 0x4A, 0x30, 0x00, - 0x02, 0x02, 0x7E, 0x02, 0x02, 0x00, - 0x7E, 0x40, 0x40, 0x40, 0x7E, 0x00, - 0x1E, 0x20, 0x40, 0x20, 0x1E, 0x00, - 0x7E, 0x20, 0x10, 0x20, 0x7E, 0x00, - 0x42, 0x24, 0x18, 0x24, 0x42, 0x00, - 0x06, 0x08, 0x70, 0x08, 0x06, 0x00, - 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00, - 0x00, 0x7E, 0x42, 0x42, 0x00, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x00, 0x42, 0x42, 0x7E, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x18, 0x3C, 0x7E, 0x7E, 0x3C, 0x18, - 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, - 0x7E, 0x48, 0x48, 0x48, 0x30, 0x00, - 0x00, 0x38, 0x44, 0x44, 0x44, 0x00, - 0x30, 0x48, 0x48, 0x48, 0x7E, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7C, 0x0A, 0x0A, 0x00, - 0x98, 0xA4, 0xA4, 0xA4, 0x7C, 0x00, - 0x7E, 0x08, 0x08, 0x08, 0x70, 0x00, - 0x00, 0x48, 0x7A, 0x40, 0x00, 0x00, - 0x00, 0x80, 0x80, 0x80, 0x7A, 0x00, - 0x00, 0x7E, 0x10, 0x28, 0x40, 0x00, - 0x00, 0x42, 0x7E, 0x40, 0x00, 0x00, - 0x7C, 0x0C, 0x18, 0x0C, 0x78, 0x00, - 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x00, 0xFC, 0x24, 0x24, 0x18, 0x00, - 0x00, 0x18, 0x24, 0x24, 0xFC, 0x00, - 0x00, 0x7C, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x00, 0x04, 0x3E, 0x44, 0x44, 0x00, - 0x3C, 0x40, 0x40, 0x40, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x1C, 0x70, 0x38, 0x70, 0x1C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x8C, 0x90, 0x90, 0x50, 0x3C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x18, 0x5C, 0x7E, 0x7E, 0x5C, 0x18, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x1E, 0x06, 0x0A, 0x72, 0x00, 0x00, - 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x00, - 0x00, 0x7F, 0x3E, 0x1C, 0x08, 0x00, - 0x7E, 0xD5, 0xD5, 0xD5, 0xD5, 0x7E, - 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, - 0xFE, 0xCF, 0x33, 0xE3, 0xC1, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, - 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x03, 0x01, 0x01, 0xF1, 0xF1, 0xF1, - 0xE1, 0x03, 0x03, 0x0F, 0xFF, 0x03, - 0x01, 0x01, 0x31, 0x31, 0x31, 0x31, - 0x31, 0xFF, 0x0F, 0x03, 0x03, 0xE1, - 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xFF, - 0x03, 0x01, 0x01, 0x31, 0x31, 0x31, - 0x31, 0x31, 0xFF, 0x03, 0x01, 0x01, - 0xC1, 0x03, 0x0F, 0x3F, 0xFF, 0x01, - 0x01, 0x01, 0xFF, 0xF1, 0xF1, 0xF1, - 0x01, 0x01, 0x01, 0x01, 0xF1, 0xF1, - 0xF1, 0xFF, 0x01, 0x01, 0x01, 0x01, - 0x0F, 0x07, 0x03, 0xC1, 0xE1, 0xF1, - 0xF9, 0xFD, 0xFF, 0x01, 0x01, 0x01, - 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, - 0x00, 0x00, 0x4C, 0x5A, 0x32, 0x00, - 0x7E, 0x08, 0x70, 0x00, 0x7A, 0x00, - 0x7C, 0x0A, 0x00, 0x3E, 0x48, 0x00, - 0x00, 0x00, 0x7E, 0x0A, 0x0A, 0x00, - 0x78, 0x08, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, - 0xBA, 0xBA, 0xFE, 0x86, 0xEA, 0xEA, - 0x86, 0xFE, 0x82, 0xEA, 0xEA, 0xF6, - 0xFE, 0xB6, 0xAA, 0xDA, 0xFE, 0x7C, - 0x20, 0x30, 0x38, 0x3C, 0x3E, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x38, 0x27, 0x2F, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, - 0x3C, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x30, 0x20, 0xA0, 0x23, 0xA3, 0x23, - 0xA1, 0x30, 0x30, 0x3C, 0x3F, 0x30, - 0x20, 0x20, 0x23, 0x23, 0x23, 0x23, - 0x23, 0x3F, 0x3C, 0x30, 0x20, 0x21, - 0x23, 0x23, 0x23, 0x23, 0x23, 0x3F, - 0x30, 0x20, 0x20, 0x23, 0x23, 0x23, - 0x23, 0x23, 0x3F, 0x20, 0x20, 0x20, - 0x3F, 0x3F, 0x3C, 0x30, 0x20, 0x20, - 0x20, 0x30, 0x3F, 0x3F, 0x3F, 0x3F, - 0x20, 0x20, 0x20, 0x20, 0x3F, 0x3F, - 0x3F, 0x3F, 0x20, 0x20, 0x20, 0x20, - 0x3C, 0x38, 0x30, 0x20, 0x21, 0x23, - 0x27, 0x2F, 0x3F, 0x30, 0x20, 0x20, - 0x20, 0x23, 0x23, 0x23, 0x23, 0x23, - 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, - 0xBF, 0x9F, 0xCF, 0xE1, 0xFF, 0x81, - 0xFF, 0xE1, 0xCF, 0x9F, 0xBF, 0xFF, - 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0xFF, 0xB3, 0xA5, 0xCD, 0xFF, - 0x81, 0xF7, 0x8F, 0xFF, 0x85, 0xFF, - 0x83, 0xF5, 0xFF, 0xC1, 0xB7, 0x7E, - 0x7E, 0xFF, 0x81, 0xF5, 0xF5, 0xFF, - 0x87, 0xF7, 0x8F, 0xFF, 0x7E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, - 0x44, 0x44, 0x00, 0x78, 0x14, 0x14, - 0x78, 0x00, 0x7C, 0x14, 0x14, 0x08, - 0x00, 0x48, 0x54, 0x24, 0x00, 0x00, - 0x7E, 0xFF, 0xC3, 0xBD, 0xBD, 0xFF, - 0xC1, 0xB7, 0xFF, 0x8F, 0xF7, 0xF7, - 0xFF, 0x81, 0xFF, 0x7E, 0x00, 0x00, - 0x7E, 0xFF, 0x83, 0xF5, 0xF5, 0x83, - 0xFF, 0x81, 0xFF, 0xC1, 0xB7, 0x7E, - 0x2A, 0x7F, 0xF1, 0x6F, 0xC1, 0x6F, - 0xF1, 0x7F, 0x2A, 0x00, 0x00, 0x3E, - 0x7F, 0x41, 0x61, 0xFF, 0xBE, 0x00, - 0x7F, 0x7E, 0x0C, 0x18, 0x0C, 0x7E, - 0x7F, 0x00, 0x7F, 0x7F, 0x1C, 0x36, - 0x63, 0x41, 0x00, 0x00, 0x00, 0x7F, - 0x7F, 0x1B, 0x1B, 0x03, 0x00, 0x7B, - 0x7B, 0x00, 0x7C, 0x78, 0x0C, 0x0C, - 0x00, 0x7C, 0x78, 0x0C, 0x7C, 0x78, - 0x0C, 0x7C, 0x78, 0x00, 0x1C, 0x38, - 0x60, 0x38, 0x60, 0x38, 0x1C, 0x00, - 0x20, 0x74, 0x54, 0x54, 0x3C, 0x78, - 0x00, 0x7C, 0x78, 0x0C, 0x0C, 0x00, - 0x38, 0x7C, 0x54, 0x54, 0x5C, 0x58, - 0x00, 0x2A, 0x2A, 0x2A, 0x2A, 0x00, - 0x40, 0x60, 0x30, 0x1E, 0x00, 0x7E, - 0x00, 0x1E, 0x30, 0x60, 0x40, 0x00, - 0x40, 0x60, 0x70, 0x78, 0x7C, 0x7E, - 0x7F, 0x73, 0x65, 0x49, 0x51, 0x63, - 0x7F, 0x7F, 0x41, 0x5D, 0x63, 0x7F, - 0x41, 0x55, 0x5D, 0x7F, 0x63, 0x5D, - 0x5D, 0x7F, 0x41, 0x55, 0x5D, 0x7F, - 0x41, 0x73, 0x67, 0x41, 0x7F, 0x79, - 0x79, 0x41, 0x41, 0x79, 0x79, 0x7F, - 0x41, 0x41, 0x63, 0x41, 0x49, 0x5D, - 0x7F, 0x41, 0x41, 0x4F, 0x4F, 0x7F, - 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, -}; diff --git a/keyboards/decent/tkl/config.h b/keyboards/decent/tkl/config.h deleted file mode 100644 index 772d6f4a27..0000000000 --- a/keyboards/decent/tkl/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define I2C1_SDA_PIN GP26 -#define I2C1_SCL_PIN GP27 - -#define OLED_FONT_H "atari-font.c" \ No newline at end of file diff --git a/keyboards/decent/tkl/keyboard.json b/keyboards/decent/tkl/keyboard.json deleted file mode 100644 index d5b0c972c6..0000000000 --- a/keyboards/decent/tkl/keyboard.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "manufacturer": "Bertrand Le roy", - "keyboard_name": "DecenTKL", - "maintainer": "bleroy", - "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", - "tags": ["ansi", "tkl", "rgb", "oled", "encoder", "atari"], - "bootloader": "rp2040", - "processor": "RP2040", - "features": { - "encoder": true, - "bootmagic": true, - "rgb_matrix": true, - "oled": true, - "extrakey": true, - "mousekey": false, - "nkro": true - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], - "rows": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20"] - }, - "bootmagic": { - "matrix": [0, 6] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "encoder": { - "rotary": [ - { - "pin_a": "GP21", - "pin_b": "GP22", - "resolution": 1 - } - ] - }, - "ws2812": { - "pin": "GP0", - "driver": "vendor" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 6], "x": 0.5, "y": 0, "label": "Esc"}, - {"matrix": [0, 5], "x": 3.5, "y": 0, "label": "F1"}, - {"matrix": [0, 4], "x": 5, "y": 0, "label": "F2"}, - {"matrix": [0, 3], "x": 6.5, "y": 0, "label": "F3"}, - {"matrix": [0, 2], "x": 8, "y": 0, "label": "F4"}, - {"matrix": [0, 1], "x": 9.5, "y": 0, "label": "F5"}, - {"matrix": [0, 0], "x": 11, "y": 0, "label": "F6"}, - {"matrix": [1, 0], "x": 12.5, "y": 0, "label": "F7"}, - {"matrix": [1, 1], "x": 14, "y": 0, "label": "F8"}, - {"matrix": [1, 2], "x": 15.5, "y": 0, "label": "F9"}, - {"matrix": [1, 3], "x": 17, "y": 0, "label": "F10"}, - - {"matrix": [2, 6], "x": 0, "y": 1.5, "label": "`"}, - {"matrix": [2, 5], "x": 1, "y": 1.5, "label": "1"}, - {"matrix": [2, 4], "x": 2, "y": 1.5, "label": "2"}, - {"matrix": [2, 3], "x": 3, "y": 1.5, "label": "3"}, - {"matrix": [2, 2], "x": 4, "y": 1.5, "label": "4"}, - {"matrix": [2, 1], "x": 5, "y": 1.5, "label": "5"}, - {"matrix": [2, 0], "x": 6, "y": 1.5, "label": "6"}, - {"matrix": [3, 0], "x": 7, "y": 1.5, "label": "7"}, - {"matrix": [3, 1], "x": 8, "y": 1.5, "label": "8"}, - {"matrix": [3, 2], "x": 9, "y": 1.5, "label": "9"}, - {"matrix": [3, 3], "x": 10, "y": 1.5, "label": "0"}, - {"matrix": [3, 4], "x": 11, "y": 1.5, "label": "-"}, - {"matrix": [3, 5], "x": 12, "y": 1.5, "label": "="}, - {"matrix": [3, 6], "x": 13, "y": 1.5, "w": 2, "label": "Backspace"}, - {"matrix": [1, 4], "x": 15.5, "y": 1.5, "label": "Insert"}, - {"matrix": [1, 5], "x": 16.5, "y": 1.5, "label": "Home"}, - {"matrix": [1, 6], "x": 17.5, "y": 1.5, "label": "PgUp"}, - - {"matrix": [4, 6], "x": 0, "y": 2.5, "w": 1.5, "label": "Tab"}, - {"matrix": [4, 5], "x": 1.5, "y": 2.5, "label": "Q"}, - {"matrix": [4, 4], "x": 2.5, "y": 2.5, "label": "W"}, - {"matrix": [4, 3], "x": 3.5, "y": 2.5, "label": "E"}, - {"matrix": [4, 2], "x": 4.5, "y": 2.5, "label": "R"}, - {"matrix": [4, 1], "x": 5.5, "y": 2.5, "label": "T"}, - {"matrix": [4, 0], "x": 6.5, "y": 2.5, "label": "Y"}, - {"matrix": [5, 0], "x": 7.5, "y": 2.5, "label": "U"}, - {"matrix": [5, 1], "x": 8.5, "y": 2.5, "label": "I"}, - {"matrix": [5, 2], "x": 9.5, "y": 2.5, "label": "O"}, - {"matrix": [5, 3], "x": 10.5, "y": 2.5, "label": "P"}, - {"matrix": [5, 4], "x": 11.5, "y": 2.5, "label": "["}, - {"matrix": [5, 5], "x": 12.5, "y": 2.5, "label": "]"}, - {"matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5, "label": "\\"}, - {"matrix": [9, 5], "x": 15.5, "y": 2.5, "label": "Del"}, - {"matrix": [9, 6], "x": 16.5, "y": 2.5, "label": "End"}, - {"matrix": [7, 6], "x": 17.5, "y": 2.5, "label": "PgDn"}, - - {"matrix": [6, 6], "x": 0, "y": 3.5, "w": 1.75, "label": "Caps"}, - {"matrix": [6, 5], "x": 1.75, "y": 3.5, "label": "A"}, - {"matrix": [6, 4], "x": 2.75, "y": 3.5, "label": "S"}, - {"matrix": [6, 3], "x": 3.75, "y": 3.5, "label": "D"}, - {"matrix": [6, 2], "x": 4.75, "y": 3.5, "label": "F"}, - {"matrix": [6, 1], "x": 5.75, "y": 3.5, "label": "G"}, - {"matrix": [6, 0], "x": 6.75, "y": 3.5, "label": "H"}, - {"matrix": [7, 0], "x": 7.75, "y": 3.5, "label": "J"}, - {"matrix": [7, 1], "x": 8.75, "y": 3.5, "label": "K"}, - {"matrix": [7, 2], "x": 9.75, "y": 3.5, "label": "L"}, - {"matrix": [7, 3], "x": 10.75, "y": 3.5, "label": ";"}, - {"matrix": [7, 4], "x": 11.75, "y": 3.5, "label": "'"}, - {"matrix": [7, 5], "x": 12.75, "y": 3.5, "w": 2.25, "label": "Return"}, - - {"matrix": [8, 6], "x": 0, "y": 4.5, "w": 2.25, "label": "Shift"}, - {"matrix": [8, 5], "x": 2.25, "y": 4.5, "label": "Z"}, - {"matrix": [8, 4], "x": 3.25, "y": 4.5, "label": "X"}, - {"matrix": [8, 3], "x": 4.25, "y": 4.5, "label": "C"}, - {"matrix": [8, 2], "x": 5.25, "y": 4.5, "label": "V"}, - {"matrix": [8, 1], "x": 6.25, "y": 4.5, "label": "B"}, - {"matrix": [8, 0], "x": 7.25, "y": 4.5, "label": "N"}, - {"matrix": [9, 0], "x": 8.25, "y": 4.5, "label": "M"}, - {"matrix": [9, 1], "x": 9.25, "y": 4.5, "label": ","}, - {"matrix": [9, 2], "x": 10.25, "y": 4.5, "label": "."}, - {"matrix": [9, 3], "x": 11.25, "y": 4.5, "label": "/"}, - {"matrix": [9, 4], "x": 12.25, "y": 4.5, "w": 2.75, "label": "Shift"}, - {"matrix": [4, 7], "x": 16.5, "y": 4.5, "label": "Up"}, - - {"matrix": [0, 8], "x": 0, "y": 5.5, "w": 1.25, "label": "Ctrl"}, - {"matrix": [1, 8], "x": 1.25, "y": 5.5, "w": 1.25, "label": "Atari"}, - {"matrix": [2, 8], "x": 2.5, "y": 5.5, "w": 1.25, "label": "Alt"}, - {"matrix": [3, 8], "x": 3.75, "y": 5.5, "w": 6.25, "label": "Space"}, - {"matrix": [2, 7], "x": 10, "y": 5.5, "w": 1.25, "label": "Alt"}, - {"matrix": [1, 7], "x": 11.25, "y": 5.5, "w": 1.25, "label": "Fn"}, - {"matrix": [3, 7], "x": 12.5, "y": 5.5, "w": 1.25, "label": "Menu"}, - {"matrix": [0, 7], "x": 13.75, "y": 5.5, "w": 1.25, "label": "Ctrl"}, - {"matrix": [4, 8], "x": 15.25, "y": 5.5, "label": "Left"}, - {"matrix": [5, 7], "x": 16.25, "y": 5.5, "label": "Down"}, - {"matrix": [5, 8], "x": 17.25, "y": 5.5, "label": "Right"} - ] - } - }, - "rgb_matrix": { - "max_brightness": 125, - "sleep": true, - "center_point": [77, 32], - "default": { - "animation": "typing_heatmap" - }, - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "layout": [ - {"matrix": [0, 6], "x": 8, "y": 0, "flags": 4}, - {"matrix": [2, 6], "x": 0, "y": 16, "flags": 4}, - {"matrix": [4, 6], "x": 3, "y": 26, "flags": 4}, - {"matrix": [6, 6], "x": 4, "y": 36, "flags": 4}, - {"matrix": [8, 6], "x": 6, "y": 46, "flags": 1}, - {"matrix": [0, 8], "x": 1, "y": 56, "flags": 1}, - - {"matrix": [0, 5], "x": 40, "y": 0, "flags": 4}, - {"matrix": [2, 5], "x": 10, "y": 16, "flags": 4}, - {"matrix": [4, 5], "x": 15, "y": 26, "flags": 4}, - {"matrix": [6, 5], "x": 17, "y": 36, "flags": 4}, - {"matrix": [8, 5], "x": 22, "y": 46, "flags": 4}, - {"matrix": [1, 8], "x": 14, "y": 56, "flags": 1}, - - {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4}, - {"matrix": [2, 4], "x": 20, "y": 16, "flags": 4}, - {"matrix": [4, 4], "x": 25, "y": 26, "flags": 4}, - {"matrix": [6, 4], "x": 27, "y": 36, "flags": 4}, - {"matrix": [8, 4], "x": 32, "y": 46, "flags": 4}, - {"matrix": [2, 8], "x": 26, "y": 56, "flags": 1}, - - {"matrix": [0, 3], "x": 70, "y": 0, "flags": 4}, - {"matrix": [2, 3], "x": 30, "y": 16, "flags": 4}, - {"matrix": [4, 3], "x": 35, "y": 26, "flags": 4}, - {"matrix": [6, 3], "x": 37, "y": 36, "flags": 4}, - {"matrix": [8, 3], "x": 42, "y": 46, "flags": 4}, - - {"matrix": [0, 2], "x": 85, "y": 0, "flags": 4}, - {"matrix": [2, 2], "x": 40, "y": 16, "flags": 4}, - {"matrix": [4, 2], "x": 45, "y": 26, "flags": 4}, - {"matrix": [6, 2], "x": 47, "y": 36, "flags": 4}, - {"matrix": [8, 2], "x": 52, "y": 46, "flags": 4}, - - {"matrix": [0, 1], "x": 100, "y": 0, "flags": 4}, - {"matrix": [2, 1], "x": 50, "y": 16, "flags": 4}, - {"matrix": [4, 1], "x": 55, "y": 26, "flags": 4}, - {"matrix": [6, 1], "x": 57, "y": 36, "flags": 4}, - {"matrix": [8, 1], "x": 62, "y": 46, "flags": 4}, - {"matrix": [3, 8], "x": 63, "y": 56, "flags": 4}, - - {"matrix": [0, 0], "x": 115, "y": 0, "flags": 4}, - {"matrix": [2, 0], "x": 60, "y": 16, "flags": 4}, - {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, - {"matrix": [6, 0], "x": 67, "y": 36, "flags": 4}, - {"matrix": [8, 0], "x": 72, "y": 46, "flags": 4}, - - {"matrix": [1, 0], "x": 130, "y": 0, "flags": 4}, - {"matrix": [3, 0], "x": 70, "y": 16, "flags": 4}, - {"matrix": [5, 0], "x": 75, "y": 26, "flags": 4}, - {"matrix": [7, 0], "x": 77, "y": 36, "flags": 4}, - {"matrix": [9, 0], "x": 82, "y": 46, "flags": 4}, - - {"matrix": [1, 1], "x": 145, "y": 0, "flags": 4}, - {"matrix": [3, 1], "x": 80, "y": 16, "flags": 4}, - {"matrix": [5, 1], "x": 85, "y": 26, "flags": 4}, - {"matrix": [7, 1], "x": 87, "y": 36, "flags": 4}, - {"matrix": [9, 1], "x": 92, "y": 46, "flags": 4}, - - {"matrix": [1, 2], "x": 160, "y": 0, "flags": 4}, - {"matrix": [3, 2], "x": 90, "y": 16, "flags": 4}, - {"matrix": [5, 2], "x": 95, "y": 26, "flags": 4}, - {"matrix": [7, 2], "x": 97, "y": 36, "flags": 4}, - {"matrix": [9, 2], "x": 102, "y": 46, "flags": 4}, - - {"matrix": [1, 3], "x": 175, "y": 0, "flags": 4}, - {"matrix": [3, 3], "x": 100, "y": 16, "flags": 4}, - {"matrix": [5, 3], "x": 105, "y": 26, "flags": 4}, - {"matrix": [7, 3], "x": 107, "y": 36, "flags": 4}, - {"matrix": [9, 3], "x": 112, "y": 46, "flags": 4}, - {"matrix": [2, 7], "x": 100, "y": 56, "flags": 1}, - - {"matrix": [3, 4], "x": 110, "y": 16, "flags": 4}, - {"matrix": [5, 4], "x": 115, "y": 26, "flags": 4}, - {"matrix": [7, 4], "x": 117, "y": 36, "flags": 4}, - {"matrix": [9, 4], "x": 130, "y": 46, "flags": 1}, - {"matrix": [1, 7], "x": 112, "y": 56, "flags": 1}, - - {"matrix": [3, 5], "x": 120, "y": 16, "flags": 4}, - {"matrix": [5, 5], "x": 125, "y": 26, "flags": 4}, - {"matrix": [7, 5], "x": 132, "y": 36, "flags": 4}, - {"matrix": [3, 7], "x": 125, "y": 56, "flags": 1}, - - {"matrix": [3, 6], "x": 140, "y": 16, "flags": 4}, - {"matrix": [5, 6], "x": 135, "y": 26, "flags": 4}, - {"matrix": [0, 7], "x": 137, "y": 56, "flags": 1}, - - {"matrix": [1, 4], "x": 150, "y": 16, "flags": 4}, - {"matrix": [9, 5], "x": 150, "y": 26, "flags": 4}, - {"matrix": [4, 8], "x": 150, "y": 56, "flags": 4}, - - {"matrix": [1, 5], "x": 160, "y": 16, "flags": 4}, - {"matrix": [9, 6], "x": 160, "y": 26, "flags": 4}, - {"matrix": [4, 7], "x": 160, "y": 46, "flags": 4}, - {"matrix": [5, 7], "x": 160, "y": 56, "flags": 4}, - - {"matrix": [1, 6], "x": 170, "y": 16, "flags": 4}, - {"matrix": [7, 6], "x": 170, "y": 26, "flags": 4}, - {"matrix": [5, 8], "x": 170, "y": 56, "flags": 4} - ], - "driver": "ws2812" - } -} \ No newline at end of file diff --git a/keyboards/decent/tkl/keymaps/default/keymap.c b/keyboards/decent/tkl/keymaps/default/keymap.c deleted file mode 100644 index cd842cdec3..0000000000 --- a/keyboards/decent/tkl/keymaps/default/keymap.c +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ - * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / - * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* - * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / - * - * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ - * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ - * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ - * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ - * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ - */ - [1] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, _______, - - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_VOLD, - _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU - ), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } -}; -#endif diff --git a/keyboards/decent/tkl/readme.md b/keyboards/decent/tkl/readme.md deleted file mode 100644 index 2069268bfc..0000000000 --- a/keyboards/decent/tkl/readme.md +++ /dev/null @@ -1,79 +0,0 @@ -# DecenTKL - -*A TKL keyboard inspired by the language design of Atari XE and ST computers* - -* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) -* Hardware Supported: DecenTKL (Pi Pico based) -* Hardware Availability: Custom built but open-source - -Make example for this keyboard (after setting up your build environment): - - make decent/tkl:default - -Flashing example for this keyboard: - - make decent/tkl: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 - -Press the escape key or the button on the back of the Pi while connecting the keyboard. - -## Special commands - -Fn + F1: Open my computer -Fn + F2: Browser home -Fn + F3: Open calculator -Fn + F4: Open media player -Fn + F5: Previous media -Fn + F6: Next media -Fn + F7: Play media -Fn + F8: Stop media -Fn + F9: Mute -Fn + PgUp: Volume up -Fn + PgDn: Volume down -Fn + 1: Toggle RGB lighting -Fn + Up: Next RGB effect -Fn + Down: Previous RGB effect -Fn + X: Change RGB hue -Fn + S: Lower RGB brightness -Fn + W: Raise RGB brightness -Fn + Left: Lower RGB animation speed -Fn + Right: Raise RGB animation speed - -Fn + \: go into bootloader mode without unplugging the keyboard - -## Layout -```C -/* - * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ - * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / - * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ -*/ -``` - -When holding Fn down: - -```C -/* - * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / - * - * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ - * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ - * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ - * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ - * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ -*/ -``` \ No newline at end of file diff --git a/keyboards/decent/tkl/tkl.c b/keyboards/decent/tkl/tkl.c deleted file mode 100644 index 96f8a9dd5a..0000000000 --- a/keyboards/decent/tkl/tkl.c +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2024 B. Le Roy -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 0x20, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xBC, 0xBD, 0xBE, 0xBF, - 0x00 - }; - - oled_write_P(qmk_logo, false); - oled_write_pixel(126, 0, 1); - oled_write_pixel(127, 0, 1); - oled_write_pixel(126, 1, 1); -} - -static const char PROGMEM caps_on[] = { 0x9C, 0x9D, 0x9E, 0x9F }; -static const char PROGMEM caps_off[] = { 0xBC, 0xBD, 0xBE, 0xBF }; - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - - render_logo(); - - bool caps = host_keyboard_led_state().caps_lock; - - if (caps) { - oled_set_cursor(17, 3); - oled_write_P(caps ? caps_on : caps_off, false); - } - return false; -} - -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { - return false; - } - - bool caps = host_keyboard_led_state().caps_lock; - - if (caps) { - for (uint8_t i = led_min; i < led_max; i++) { - if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) { - rgb_matrix_set_color(i, RGB_RED); - } - } - } - - if (get_highest_layer(layer_state) > 0) { - uint8_t layer = get_highest_layer(layer_state); - - for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { - for (uint8_t col = 0; col < MATRIX_COLS; ++col) { - uint8_t index = g_led_config.matrix_co[row][col]; - - if (index >= led_min && index < led_max && index != NO_LED && - keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { - rgb_matrix_set_color(index, RGB_GREEN); - } - } - } - } - - return false; -} diff --git a/keyboards/deemen17/de60/r1/keyboard.json b/keyboards/deemen17/de60/r1/keyboard.json deleted file mode 100644 index 62de2691ce..0000000000 --- a/keyboards/deemen17/de60/r1/keyboard.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "manufacturer": "Deemen17 Works", - "keyboard_name": "DE60 R1", - "maintainer": "Deemen17", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "GP24" - }, - "matrix_pins": { - "cols": ["GP23", "GP22", "GP21", "GP20", "GP28", "GP0", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], - "rows": ["GP27", "GP26", "GP25", "GP29", "GP18"] - }, - "processor": "RP2040", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 22, - "max_brightness": 240, - "sleep": true - }, - "usb": { - "vid": "0xDE17", - "pid": "0x60F0", - "device_version": "0.0.1" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP11" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb" - ], - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - } - } -} diff --git a/keyboards/deemen17/de60/r1/readme.md b/keyboards/deemen17/de60/r1/readme.md deleted file mode 100644 index e71a2fc412..0000000000 --- a/keyboards/deemen17/de60/r1/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# DE60 Round 1 - -![DE60 R1](https://i.imgur.com/7hpYaoXh.jpg) - -A GH60 form factor PCB for 60% keyboards. Uses a Left USB Type C connector or 5 JST SH positions for daughter board. - -* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17) -* Hardware Supported: RP2040, De60fs PCB, De60fs Oring Edition PCB, De60 Tsangan Edition PCB -* Hardware Availability: [Deemen17 Works](https://www.facebook.com/deemen17) - -Make example for this keyboard (after setting up your build environment): - - make deemen17/de60/r1:default - -Flashing example for this keyboard: - - make deemen17/de60/r1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly double press the button RESET on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/deemen17/de60/readme.md b/keyboards/deemen17/de60/readme.md deleted file mode 100644 index c5ea64a6a6..0000000000 --- a/keyboards/deemen17/de60/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# DE60 - -Deemen17 Works's 60% PCB Platform, which works as the base for our 60%-layout PCB designs. - -* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17) -* Hardware Supported: DE60 PCBs -* Hardware Availability: [Deemen17 Facebook Page](https://www.facebook.com/deemen17/), [Deemen17 Works Instagram](https://www.instagram.com/deemen17.works) - -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 (ESC/Escape) and plug in the keyboard -* **Physical reset button**: Double tap the button RESET on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/deemen17/de60/r1/config.h b/keyboards/deemen17/de60fs/config.h similarity index 100% rename from keyboards/deemen17/de60/r1/config.h rename to keyboards/deemen17/de60fs/config.h diff --git a/keyboards/deemen17/de60fs/keyboard.json b/keyboards/deemen17/de60fs/keyboard.json new file mode 100644 index 0000000000..b2d9a12f4e --- /dev/null +++ b/keyboards/deemen17/de60fs/keyboard.json @@ -0,0 +1,403 @@ +{ + "manufacturer": "Deemen17", + "keyboard_name": "De60fs", + "maintainer": "Deemen17", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "GP24" + }, + "matrix_pins": { + "cols": ["GP23", "GP22", "GP21", "GP20", "GP28", "GP0", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP27", "GP26", "GP25", "GP29", "GP18"] + }, + "processor": "RP2040", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 22, + "max_brightness": 240, + "sleep": true + }, + "usb": { + "vid": "0xDE17", + "pid": "0x60F0", + "device_version": "0.0.1" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP11" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" + }, + "community_layouts": [ + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_ansi_wkl", + "60_ansi_wkl_split_bs_rshift", + "60_hhkb" + ], + "layouts": { + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/deemen17/de60/r1/keymaps/default/keymap.c b/keyboards/deemen17/de60fs/keymaps/default/keymap.c similarity index 100% rename from keyboards/deemen17/de60/r1/keymaps/default/keymap.c rename to keyboards/deemen17/de60fs/keymaps/default/keymap.c diff --git a/keyboards/deemen17/de60fs/readme.md b/keyboards/deemen17/de60fs/readme.md new file mode 100644 index 0000000000..e5135691a8 --- /dev/null +++ b/keyboards/deemen17/de60fs/readme.md @@ -0,0 +1,27 @@ +# De60fs + +![De60fs](https://i.imgur.com/7hpYaoXh.jpg) + +A GH60 form factor PCB for 60% keyboards. Uses a Left USB Type C connector or 5 JST SH positions for daughter board. + +* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17) +* Hardware Supported: RP2040, De60fs PCB, De60fs Oring Edition PCB, De60 Tsangan Edition PCB +* Hardware Availability: [Deemen17 Works](https://www.facebook.com/deemen17) + +Make example for this keyboard (after setting up your build environment): + + make deemen17/de60fs:default + +Flashing example for this keyboard: + + make deemen17/de60fs:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly double press the button RESET on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/deemen17/de80/config.h b/keyboards/deemen17/de80/config.h deleted file mode 100644 index e4066d3954..0000000000 --- a/keyboards/deemen17/de80/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2024 Deemen17 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_USE_CIRCULAR_BUFFER diff --git a/keyboards/deemen17/de80/halconf.h b/keyboards/deemen17/de80/halconf.h deleted file mode 100644 index ccf7447285..0000000000 --- a/keyboards/deemen17/de80/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2022 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next - diff --git a/keyboards/deemen17/de80/keyboard.json b/keyboards/deemen17/de80/keyboard.json deleted file mode 100644 index f2b6b2dbdd..0000000000 --- a/keyboards/deemen17/de80/keyboard.json +++ /dev/null @@ -1,893 +0,0 @@ -{ - "manufacturer": "Deemen17", - "keyboard_name": "DE80", - "maintainer": "Deemen17", - "bootloader": "uf2boot", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true, - "encoder": true - }, - "matrix_pins": { - "rows": ["A8", "A10", "A9", "B11", "C14", "C13"], - "cols": ["B14", "B13", "B12", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "A15", "B7", "B6"] - }, - "processor": "STM32F103", - "usb": { - "vid": "0xDE17", - "pid": "0x80F1", - "device_version": "1.0.0" - }, - "indicators": { - "caps_lock": "B10", - "scroll_lock": "B3" - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 40, - "max_brightness": 250, - "sleep": true - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - }, - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B4"} - ] - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_wkl", "tkl_f13_ansi_wkl_split_bs_rshift" ], - "layouts": { - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 12], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 12], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 12], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 12], "x": 14, "y": 1.25}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/deemen17/de80/keymaps/default/keymap.c b/keyboards/deemen17/de80/keymaps/default/keymap.c deleted file mode 100644 index 4a1a2563cf..0000000000 --- a/keyboards/deemen17/de80/keymaps/default/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2024 Deemen17 Works - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_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_F13, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATU, UG_HUEU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_HUED, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_VALD, UG_NEXT - ) - -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, -}; -#endif diff --git a/keyboards/deemen17/de80/keymaps/default/rules.mk b/keyboards/deemen17/de80/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/deemen17/de80/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/deemen17/de80/mcuconf.h b/keyboards/deemen17/de80/mcuconf.h deleted file mode 100644 index 8b309107b0..0000000000 --- a/keyboards/deemen17/de80/mcuconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/deemen17/de80/readme.md b/keyboards/deemen17/de80/readme.md deleted file mode 100644 index c82330d8f2..0000000000 --- a/keyboards/deemen17/de80/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# DE80 - -![deemen17/de80](https://i.imgur.com/oZvFM0G.png) - -The DE80 is a portable TKL PCB that features a compact A87 form factor, dual USB Type C ports (breakable), seven JST SH 4P 1.0 ports, two FPC ports, and compatibility with both F12 and F13 footprints, making it suitable for use with a variety of TKL boards. - -* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17) -* Hardware Supported: DE80 R1 2024 PCB w/ STM32F103 MCU -* Hardware Availability: [Deemen17 Facebook Page](https://www.facebook.com/deemen17/), [Deemen17 Works Instagram](https://www.instagram.com/deemen17.works) - -Make example for this keyboard (after setting up your build environment): - - make deemen17/de80:default - -Flashing example for this keyboard: - - make deemen17/de80: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 (ESC/Escape) and plug in the keyboard -* **Physical reset button**: Double tap the button RESET on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c index 7f7a8925fd..5665bcb799 100644 --- a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c +++ b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c @@ -82,10 +82,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RGB] = LAYOUT( RGB_M_P, RGB_M_B, RGB_M_R, - RGB_M_SW, RM_SPDD, RM_SPDU, - RM_NEXT, RM_SATD, RM_SATU, - RM_PREV, RM_HUED, RM_HUEU, - RM_TOGG, RM_VALD, RM_VALU, + RGB_M_SW, RGB_SPD, RGB_SPI, + RGB_MOD, RGB_SAD, RGB_SAI, + RGB_RMOD, RGB_HUD, RGB_HUI, + RGB_TOG, RGB_VAD, RGB_VAI, RGB_LAYER, KC_NO ) }; diff --git a/keyboards/delikeeb/flatbread60/keyboard.json b/keyboards/delikeeb/flatbread60/keyboard.json index 2536df862d..b0cf794dfb 100644 --- a/keyboards/delikeeb/flatbread60/keyboard.json +++ b/keyboards/delikeeb/flatbread60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Flatbread60", "manufacturer": "delikeeb", + "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -46,7 +49,8 @@ "rows": ["F6", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c b/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c index 8dfcce364b..8ed0118578 100644 --- a/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c +++ b/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c @@ -18,13 +18,16 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; +enum layer_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, +}; + +// Defines the keycodes used by our macros in process_record_user #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE * ,-----------------------------------------------------------------------------------. @@ -160,3 +163,25 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); return state; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} diff --git a/keyboards/delikeeb/vaguettelite/keyboard.json b/keyboards/delikeeb/vaguettelite/keyboard.json index 61e65105fb..56919958f2 100644 --- a/keyboards/delikeeb/vaguettelite/keyboard.json +++ b/keyboards/delikeeb/vaguettelite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vaguette Lite", "manufacturer": "dELIKEEb", + "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vanana/info.json b/keyboards/delikeeb/vanana/info.json index 0ba67d4af5..520cd92b09 100644 --- a/keyboards/delikeeb/vanana/info.json +++ b/keyboards/delikeeb/vanana/info.json @@ -1,5 +1,6 @@ { "manufacturer": "dELIKEEb", + "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/delikeeb/vanana/rev1/keyboard.json b/keyboards/delikeeb/vanana/rev1/keyboard.json index 66aeeaa877..d8d5d2e4c9 100644 --- a/keyboards/delikeeb/vanana/rev1/keyboard.json +++ b/keyboards/delikeeb/vanana/rev1/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vanana/rev2/keyboard.json b/keyboards/delikeeb/vanana/rev2/keyboard.json index 9a7052f65f..9da7a9dd88 100644 --- a/keyboards/delikeeb/vanana/rev2/keyboard.json +++ b/keyboards/delikeeb/vanana/rev2/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vanana/rules.mk b/keyboards/delikeeb/vanana/rules.mk new file mode 100644 index 0000000000..ff3dc1df61 --- /dev/null +++ b/keyboards/delikeeb/vanana/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = delikeeb/vanana/rev2 diff --git a/keyboards/delikeeb/vaneela/keyboard.json b/keyboards/delikeeb/vaneela/keyboard.json index 7a467a59aa..5f76c8b7ab 100644 --- a/keyboards/delikeeb/vaneela/keyboard.json +++ b/keyboards/delikeeb/vaneela/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -25,7 +27,8 @@ "rows": ["F6", "F7", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/delikeeb/vaneelaex/keyboard.json b/keyboards/delikeeb/vaneelaex/keyboard.json index 295ad722b5..9810d341ab 100644 --- a/keyboards/delikeeb/vaneelaex/keyboard.json +++ b/keyboards/delikeeb/vaneelaex/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -25,7 +27,8 @@ "rows": ["D3", "D2", "D1", "D0", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ss_6x12": { "layout": [ diff --git a/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json b/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json index 86c1572713..22fb33aade 100644 --- a/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json +++ b/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json @@ -3,6 +3,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/delikeeb/waaffle/rev3/info.json b/keyboards/delikeeb/waaffle/rev3/info.json index 761c2dc3c7..1201411d46 100644 --- a/keyboards/delikeeb/waaffle/rev3/info.json +++ b/keyboards/delikeeb/waaffle/rev3/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Waaffle rev3", "manufacturer": "dELIKEEb", + "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json b/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json index b1d721e038..55e68c4393 100644 --- a/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json +++ b/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json @@ -3,6 +3,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/delikeeb/waaffle/rev3/rules.mk b/keyboards/delikeeb/waaffle/rev3/rules.mk new file mode 100644 index 0000000000..dbd58ca5bf --- /dev/null +++ b/keyboards/delikeeb/waaffle/rev3/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = delikeeb/waaffle/rev3/pro_micro diff --git a/keyboards/deltapad/keyboard.json b/keyboards/deltapad/keyboard.json index 5fc2edff63..23683bbd1e 100644 --- a/keyboards/deltapad/keyboard.json +++ b/keyboards/deltapad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "deltapad", "manufacturer": "Richard Snijder", + "url": "", "maintainer": "Richard Snijder", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/deltapad/readme.md b/keyboards/deltapad/readme.md index f5dae4d9b0..858f99b436 100644 --- a/keyboards/deltapad/readme.md +++ b/keyboards/deltapad/readme.md @@ -1,10 +1,15 @@ # deltapad + + +*A short description of the keyboard/project* + A 4x4 keypad * Keyboard Maintainer: [Richard Snijder](https://github.com/rich239) * Hardware Supported: Atmel 32u4 based keypads + Make example for this keyboard (after setting up your build environment): make deltapad:default diff --git a/keyboards/deltasplit75/rules.mk b/keyboards/deltasplit75/rules.mk new file mode 100644 index 0000000000..ee888337e5 --- /dev/null +++ b/keyboards/deltasplit75/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = deltasplit75/v2 diff --git a/keyboards/deltasplit75/v2/keyboard.json b/keyboards/deltasplit75/v2/keyboard.json index efd4217f13..031d2b9185 100644 --- a/keyboards/deltasplit75/v2/keyboard.json +++ b/keyboards/deltasplit75/v2/keyboard.json @@ -24,7 +24,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/demiurge/keyboard.json b/keyboards/demiurge/keyboard.json index 56ac687cd5..ad5264323b 100644 --- a/keyboards/demiurge/keyboard.json +++ b/keyboards/demiurge/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Demiurge", "manufacturer": "ojthetiny", + "url": "", "maintainer": "ojthetiny", "usb": { "vid": "0x6F6A", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json index a39c234bfa..94e2aca2ec 100644 --- a/keyboards/deng/djam/keyboard.json +++ b/keyboards/deng/djam/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DJam", "manufacturer": "Leo Deng", + "url": "", "maintainer": "myst729", "usb": { "vid": "0xDE29", @@ -20,6 +21,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/deng/djam/keymaps/default/keymap.c b/keyboards/deng/djam/keymaps/default/keymap.c index d46cc6fcc3..11508963b1 100644 --- a/keyboards/deng/djam/keymaps/default/keymap.c +++ b/keyboards/deng/djam/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_RGHT, KC_LSFT, L1_SPC, KC_RSFT, KC_UP, KC_DOWN), [1] = LAYOUT( - RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, RM_PREV, - _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, RM_NEXT, RM_TOGG, + RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, RGB_RMOD, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, RGB_MOD, RGB_TOG, _______, _______, BL_TOGG, _______, BL_STEP, _______, _______) }; diff --git a/keyboards/deng/thirty/keyboard.json b/keyboards/deng/thirty/keyboard.json index da36ae19f5..a26d727f12 100644 --- a/keyboards/deng/thirty/keyboard.json +++ b/keyboards/deng/thirty/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Thirty", "manufacturer": "Leo Deng", + "url": "", "maintainer": "myst729", "usb": { "vid": "0xDE29", diff --git a/keyboards/deng/thirty/keymaps/default/keymap.c b/keyboards/deng/thirty/keymaps/default/keymap.c index fcda453e8e..68bf26ccad 100644 --- a/keyboards/deng/thirty/keymaps/default/keymap.c +++ b/keyboards/deng/thirty/keymaps/default/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [4] = LAYOUT_ortho_3x10( - QK_BOOT, KC_BRID, KC_BRIU, _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RM_NEXT, - KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_M_B, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RM_PREV, + QK_BOOT, KC_BRID, KC_BRIU, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MOD, + KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_M_B, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/densus/alveus/mx/keyboard.json b/keyboards/densus/alveus/mx/keyboard.json index dd3f1bde05..839c84fb45 100644 --- a/keyboards/densus/alveus/mx/keyboard.json +++ b/keyboards/densus/alveus/mx/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alveus", "manufacturer": "Mechlovin Studio", + "url": "", "usb": { "vid": "0xDE00", "pid": "0x0F70", diff --git a/keyboards/dichotomy/keyboard.json b/keyboards/dichotomy/keyboard.json index 33a799b0e3..bc3546a082 100644 --- a/keyboards/dichotomy/keyboard.json +++ b/keyboards/dichotomy/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dichotomy", "manufacturer": "Broekhuijsen", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/dinofizz/fnrow/v1/keyboard.json b/keyboards/dinofizz/fnrow/v1/keyboard.json index befcc05c0a..16f80b780d 100644 --- a/keyboards/dinofizz/fnrow/v1/keyboard.json +++ b/keyboards/dinofizz/fnrow/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/djreisch/lumpy27/keyboard.json b/keyboards/djreisch/lumpy27/keyboard.json deleted file mode 100644 index d6c4b180bd..0000000000 --- a/keyboards/djreisch/lumpy27/keyboard.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "manufacturer": "djreisch", - "keyboard_name": "LumPy27", - "maintainer": "djreisch", - "board": "GENERIC_RP_RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"], - "rows": ["GP14", "GP15", "GP16", "GP17", "GP18"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x2326", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "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": [1, 5], "x": 5, "y": 1}, - {"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": [2, 5], "x": 5, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4} - ] - } - } -} diff --git a/keyboards/djreisch/lumpy27/keymaps/default/keymap.c b/keyboards/djreisch/lumpy27/keymaps/default/keymap.c deleted file mode 100644 index 48897c8064..0000000000 --- a/keyboards/djreisch/lumpy27/keymaps/default/keymap.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2024 Daniel Reisch (djreisch) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum custom_keycodes { MACRO_GG = QK_USER }; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - Main - ,-----------------------------------------. - | ESC | 1 | 2 | 3 | 4 | 5 | - |------+------+------+------+------+------| - | Tab | G | Q | W | E | R | - |------+------+------+------+------+------| - | LSHIFT | A | S | D | F | - |------+------+------+------+------+------| - | LCTL | B | Z | X | C | V |-------| - `-----------------------------------------/ / - | LAlt | FN | / Space / - | | |/ / - `---------------------' - */ - [0] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_G, KC_Q, KC_W, KC_E, KC_R, - KC_LSFT, KC_A, KC_S, KC_D, KC_F, - KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, - KC_LALT, MO(1), KC_SPACE), - - /* - Alt - ,-----------------------------------------. - | ESC | 0 | 9 | 8 | 7 | 6 | - |------+------+------+------+------+------| - | F1 | F2 | F3 | F4 | F5 | F6 | - |------+------+------+------+------+------| - | LSHIFT | A | S | Y | H | - |------+------+------+------+------+------| - | LCTL | B | Z | X | C | M |-------| - `-----------------------------------------/ / - | LAlt | FN | / Enter / - | | |/ / - `---------------------' - */ - [1] = LAYOUT(KC_ESC, KC_0, KC_9, KC_8, KC_7, KC_6, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_LSFT, KC_A, KC_S, KC_Y, KC_H, - KC_LCTL, MACRO_GG, KC_Z, KC_X, KC_C, KC_M, - KC_LALT, KC_TRNS, KC_ENTER) -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MACRO_GG: - if (record->event.pressed) { - // when keycode MACRO_GG is pressed, press shift+enter, send string "gg" and press enter - SEND_STRING(SS_DOWN(X_LSFT) SS_DELAY(10) SS_TAP(X_ENTER) SS_UP(X_LSFT) "gg" SS_TAP(X_ENTER)); - } - break; - } - - return true; -} diff --git a/keyboards/djreisch/lumpy27/readme.md b/keyboards/djreisch/lumpy27/readme.md deleted file mode 100644 index da7d1ca92b..0000000000 --- a/keyboards/djreisch/lumpy27/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# LumPy27 - -The Lightweight User-Modifiable Pi/Python keyboard is a 26-key ergonomic gaming keyboard running on an RP2040. Originally designed to run CircuitPython and KMK, since QMK supports the RP2040 bootloader this is now an additional option for firmware. - -Q: Why is it named the LumPy27 even though it has 26 keys? - -A: When originally designing the PCB and coming up with a name, I miscounted the switches. With the name emblazoned on the silkscreen I figured it sounded better than LumPy26. - -Q: Why are the keys in the wrong place? - -A: For certain games I found it easier instead of remapping them to just change where they are. That's why keys like B and G are not in the right spots. - -* Keyboard Maintainer: [djreisch](https://github.com/djreisch) -* Hardware Availability: [DuckyDebug.org](https://duckydebug.org/products/lumpy27-ergonomic-gaming-keyboard) - -qmk compile example for this keyboard (after setting up your build environment): - - qmk compile -kb djreisch/lumpy27 -km default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Bootloader Reset**: Hold down the bootload button and press the reset button -* **Bootloader Power On**: Hold down the bootloader button and plug in the keyboard - - diff --git a/keyboards/dk60/keyboard.json b/keyboards/dk60/keyboard.json index 1eb1dbe90a..a88920814d 100644 --- a/keyboards/dk60/keyboard.json +++ b/keyboards/dk60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DK60", "manufacturer": "DARKOU", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dlip/haritev2/config.h b/keyboards/dlip/haritev2/config.h deleted file mode 100644 index 119ba7cbac..0000000000 --- a/keyboards/dlip/haritev2/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2024 Dane Lipscombe (@dlip) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1500U - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP1 -#define SERIAL_USART_RX_PIN GP0 -#define SERIAL_USART_PIN_SWAP - -#define EE_HANDS - -#define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP2 -#define SPI_MOSI_PIN GP3 -#define SPI_MISO_PIN GP4 -#define POINTING_DEVICE_CS_PIN GP5 diff --git a/keyboards/dlip/haritev2/dual_cirque/config.h b/keyboards/dlip/haritev2/dual_cirque/config.h deleted file mode 100644 index ad92aaa9ad..0000000000 --- a/keyboards/dlip/haritev2/dual_cirque/config.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 Dane Lipscombe (@dlip) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_COMBINED -#define POINTING_DEVICE_ROTATION_90 -#define POINTING_DEVICE_ROTATION_90_RIGHT -#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE -#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE diff --git a/keyboards/dlip/haritev2/dual_cirque/keyboard.json b/keyboards/dlip/haritev2/dual_cirque/keyboard.json deleted file mode 100644 index 2224a5d894..0000000000 --- a/keyboards/dlip/haritev2/dual_cirque/keyboard.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "features": { - "pointing_device": true - } -} diff --git a/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c b/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c deleted file mode 100644 index 3e23d4b088..0000000000 --- a/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_5x6( - KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, - - KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D, - - KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D - ) -}; diff --git a/keyboards/dlip/haritev2/dual_cirque/readme.md b/keyboards/dlip/haritev2/dual_cirque/readme.md deleted file mode 100644 index 17c540b1c9..0000000000 --- a/keyboards/dlip/haritev2/dual_cirque/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Harite v2 (Cirque trackpad version) - -5 way switch directional keyboard - -![Harite-v2](https://i.imgur.com/v8kUtL3.jpeg) - -* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip) -* Hardware Supported: Harite v2 (Cirque trackpad version) -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - -```bash -make dlip/haritev2/dual_cirque:default -``` - -Flashing example for this keyboard: - -```bash -# For the left half... -make dlip/haritev2/dual_cirque:default:uf2-split-left -# or the qmk cli equivalent: -qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-left - -# For the right half... -make dlip/haritev2/dual_cirque:default:uf2-split-right -# or the qmk cli equivalent: -qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-right -``` - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dlip/haritev2/dual_cirque/rules.mk b/keyboards/dlip/haritev2/dual_cirque/rules.mk deleted file mode 100644 index fb5d649735..0000000000 --- a/keyboards/dlip/haritev2/dual_cirque/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/dlip/haritev2/halconf.h b/keyboards/dlip/haritev2/halconf.h deleted file mode 100644 index 102ec51a6b..0000000000 --- a/keyboards/dlip/haritev2/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2023 Dane Lipscombe (@dlip) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/dlip/haritev2/info.json b/keyboards/dlip/haritev2/info.json deleted file mode 100644 index b7e12b89d5..0000000000 --- a/keyboards/dlip/haritev2/info.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "manufacturer": "Dane Lipscombe", - "keyboard_name": "haritev2", - "maintainer": "dlip", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP26"], - "rows": ["GP6", "GP7", "GP8", "GP9", "GP10"] - }, - "processor": "RP2040", - "split": { - "enabled": true, - "serial": { - "driver": "vendor" - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x4832", - "vid": "0x444C" - }, - "layouts": { - "LAYOUT_split_5x6": { - "layout": [ - {"label": "lpu", "matrix": [0, 0], "x": 1, "y": 0}, - {"label": "lru", "matrix": [0, 1], "x": 5, "y": 0}, - {"label": "lmu", "matrix": [0, 2], "x": 9, "y": 0}, - {"label": "liu", "matrix": [0, 3], "x": 13, "y": 0}, - {"label": "riu", "matrix": [8, 3], "x": 21, "y": 0}, - {"label": "rmu", "matrix": [8, 2], "x": 25, "y": 0}, - {"label": "rru", "matrix": [8, 1], "x": 29, "y": 0}, - {"label": "rpu", "matrix": [8, 0], "x": 33, "y": 0}, - {"label": "lpl", "matrix": [2, 0], "x": 0, "y": 1}, - {"label": "lpc", "matrix": [1, 0], "x": 1, "y": 1}, - {"label": "lpr", "matrix": [3, 0], "x": 2, "y": 1}, - {"label": "lrl", "matrix": [2, 1], "x": 4, "y": 1}, - {"label": "lrc", "matrix": [1, 1], "x": 5, "y": 1}, - {"label": "lrr", "matrix": [3, 1], "x": 6, "y": 1}, - {"label": "lml", "matrix": [2, 2], "x": 8, "y": 1}, - {"label": "lmc", "matrix": [1, 2], "x": 9, "y": 1}, - {"label": "lmr", "matrix": [3, 2], "x": 10, "y": 1}, - {"label": "lil", "matrix": [2, 3], "x": 12, "y": 1}, - {"label": "lic", "matrix": [1, 3], "x": 13, "y": 1}, - {"label": "lir", "matrix": [3, 3], "x": 14, "y": 1}, - {"label": "ril", "matrix": [5, 3], "x": 20, "y": 1}, - {"label": "ric", "matrix": [6, 3], "x": 21, "y": 1}, - {"label": "rir", "matrix": [9, 3], "x": 22, "y": 1}, - {"label": "rml", "matrix": [5, 2], "x": 24, "y": 1}, - {"label": "rmc", "matrix": [6, 2], "x": 25, "y": 1}, - {"label": "rmr", "matrix": [9, 2], "x": 26, "y": 1}, - {"label": "rrl", "matrix": [5, 1], "x": 28, "y": 1}, - {"label": "rrc", "matrix": [6, 1], "x": 29, "y": 1}, - {"label": "rrr", "matrix": [9, 1], "x": 30, "y": 1}, - {"label": "rpl", "matrix": [5, 0], "x": 32, "y": 1}, - {"label": "rpc", "matrix": [6, 0], "x": 33, "y": 1}, - {"label": "rpr", "matrix": [9, 0], "x": 34, "y": 1}, - {"label": "lpd", "matrix": [4, 0], "x": 1, "y": 2}, - {"label": "lrd", "matrix": [4, 1], "x": 5, "y": 2}, - {"label": "lmd", "matrix": [4, 2], "x": 9, "y": 2}, - {"label": "lid", "matrix": [4, 3], "x": 13, "y": 2}, - {"label": "rid", "matrix": [7, 3], "x": 21, "y": 2}, - {"label": "rmd", "matrix": [7, 2], "x": 25, "y": 2}, - {"label": "rrd", "matrix": [7, 1], "x": 29, "y": 2}, - {"label": "rpd", "matrix": [7, 0], "x": 33, "y": 2}, - {"label": "ltu", "matrix": [0, 4], "x": 13, "y": 3}, - {"label": "rtu", "matrix": [5, 4], "x": 21, "y": 3}, - {"label": "ltl", "matrix": [2, 4], "x": 12, "y": 4}, - {"label": "ltc", "matrix": [1, 4], "x": 13, "y": 4}, - {"label": "ltr", "matrix": [3, 4], "x": 14, "y": 4}, - {"label": "rtl", "matrix": [7, 4], "x": 20, "y": 4}, - {"label": "rtc", "matrix": [6, 4], "x": 21, "y": 4}, - {"label": "rtr", "matrix": [8, 4], "x": 22, "y": 4}, - {"label": "ltd", "matrix": [4, 4], "x": 13, "y": 5}, - {"label": "rtd", "matrix": [9, 4], "x": 21, "y": 5}, - {"label": "lt2u", "matrix": [0, 5], "x": 13, "y": 6}, - {"label": "rt2u", "matrix": [5, 5], "x": 21, "y": 6}, - {"label": "lt2l", "matrix": [2, 5], "x": 12, "y": 7}, - {"label": "lt2c", "matrix": [1, 5], "x": 13, "y": 7}, - {"label": "lt2r", "matrix": [3, 5], "x": 14, "y": 7}, - {"label": "rt2l", "matrix": [7, 5], "x": 20, "y": 7}, - {"label": "rt2c", "matrix": [6, 5], "x": 21, "y": 7}, - {"label": "rt2r", "matrix": [8, 5], "x": 22, "y": 7}, - {"label": "lt2d", "matrix": [4, 5], "x": 13, "y": 8}, - {"label": "rt2d", "matrix": [9, 5], "x": 21, "y": 8} - ] - } - } -} diff --git a/keyboards/dlip/haritev2/mcuconf.h b/keyboards/dlip/haritev2/mcuconf.h deleted file mode 100644 index 62375dc72c..0000000000 --- a/keyboards/dlip/haritev2/mcuconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2023 Dane Lipscombe (@dlip) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next -#undef RP_SPI_USE_SPI0 -#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h b/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h deleted file mode 100644 index b050985f3e..0000000000 --- a/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Dane Lipscombe (@dlip) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define PMW33XX_CPI 1000 -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_INVERT_X -#define POINTING_DEVICE_RIGHT diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json b/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json deleted file mode 100644 index 687c0ea3a9..0000000000 --- a/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "features": { - "joystick": true, - "pointing_device": true - }, - "joystick": { - "driver": "analog", - "axes": { - "x": { - "high": 938, - "input_pin": "GP27", - "low": 25, - "rest": 501 - }, - "y": { - "high": 942, - "input_pin": "GP28", - "low": 58, - "rest": 474 - } - }, - "axis_resolution": 10, - "button_count": 32 - } -} diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c b/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c deleted file mode 100644 index 3e23d4b088..0000000000 --- a/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_5x6( - KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, - - KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D, - - KC_U, KC_U, - KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, - KC_D, KC_D - ) -}; diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md b/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md deleted file mode 100644 index ed0caf977a..0000000000 --- a/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Harite v2 (Thumbstick + PMW3389 version) - -5 way switch directional keyboard - -![Harite-v2](https://i.imgur.com/wyrUsjG.jpeg) - -* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip) -* Hardware Supported: Harite v2 (Thumbstick + PMW3389 version) -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - -```bash -make dlip/haritev2/thumbstick_pmw3389:default -``` - -Flashing example for this keyboard: - -```bash -# For the left half... -make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-left -# or the qmk cli equivalent: -qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-left - -# For the right half... -make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-right -# or the qmk cli equivalent: -qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-right -``` - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/rules.mk b/keyboards/dlip/haritev2/thumbstick_pmw3389/rules.mk deleted file mode 100644 index 8ff6b63653..0000000000 --- a/keyboards/dlip/haritev2/thumbstick_pmw3389/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3389 diff --git a/keyboards/dm9records/ergoinu/keyboard.json b/keyboards/dm9records/ergoinu/keyboard.json index 05150f5e06..1f91a06600 100644 --- a/keyboards/dm9records/ergoinu/keyboard.json +++ b/keyboards/dm9records/ergoinu/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ergoinu", "manufacturer": "Dm9Records", + "url": "", "maintainer": "hsgw(Takuya Urakawa)", "usb": { "vid": "0x04D8", @@ -25,7 +26,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dm9records/ergoinu/keymaps/default/keymap.c b/keyboards/dm9records/ergoinu/keymaps/default/keymap.c index 9656aeb168..96a83e0fd3 100644 --- a/keyboards/dm9records/ergoinu/keymaps/default/keymap.c +++ b/keyboards/dm9records/ergoinu/keymaps/default/keymap.c @@ -35,8 +35,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CONF] = LAYOUT( - _______, RGB_TYPE,UG_NEXT, UG_VALU, UG_SATU, UG_HUEU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_RST, UG_TOGG, UG_PREV, UG_VALD, UG_SATD, UG_HUED, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, RGB_TYPE,RGB_MOD, RGB_VAI, RGB_HUI, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_RST, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX @@ -55,7 +55,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { enableLEDTypeAnime = false; diff --git a/keyboards/dm9records/ergoinu/keymaps/default_jis/keymap.c b/keyboards/dm9records/ergoinu/keymaps/default_jis/keymap.c index ac4c2ed848..e3f46772a8 100644 --- a/keyboards/dm9records/ergoinu/keymaps/default_jis/keymap.c +++ b/keyboards/dm9records/ergoinu/keymaps/default_jis/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CONF] = LAYOUT( - _______, RGB_TYPE,UG_NEXT, UG_VALU, UG_SATU, UG_HUEU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_RST, UG_TOGG, UG_PREV, UG_VALD, UG_SATD, UG_HUED, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, RGB_TYPE,RGB_MOD, RGB_VAI, RGB_HUI, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_RST, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX @@ -63,7 +63,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { enableLEDTypeAnime = false; diff --git a/keyboards/dm9records/lain/keyboard.json b/keyboards/dm9records/lain/keyboard.json index 1f02a98fc4..32cece9f15 100644 --- a/keyboards/dm9records/lain/keyboard.json +++ b/keyboards/dm9records/lain/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index 3ee327f65e..2b366f4930 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -28,7 +28,10 @@ enum plaid_layers { }; enum plaid_keycodes { - PLOVER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, EXT_PLV, LED_1, LED_2, @@ -45,10 +48,6 @@ enum plaid_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - // array of keys considered modifiers for led purposes const uint16_t modifiers[] = { KC_LCTL, @@ -302,6 +301,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { led_keypress_update(LED_GREEN, led_config.green_mode, keycode, record); } switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case PLOVER: if (record->event.pressed) { layer_off(_RAISE); @@ -311,9 +329,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; break; diff --git a/keyboards/dmqdesign/spin/keyboard.json b/keyboards/dmqdesign/spin/keyboard.json index dd3cbaa838..b271f1ebd5 100644 --- a/keyboards/dmqdesign/spin/keyboard.json +++ b/keyboards/dmqdesign/spin/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "midi": true, diff --git a/keyboards/dnlnm/cloak/keyboard.json b/keyboards/dnlnm/cloak/keyboard.json deleted file mode 100644 index fb429e789a..0000000000 --- a/keyboards/dnlnm/cloak/keyboard.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "manufacturer": "dnlnm", - "keyboard_name": "Cloak", - "maintainer": "dnlnm", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A9", "pin_b": "A10", "resolution": 2}, - {"pin_a": "B4", "pin_b": "B6", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A8", "B15", "B14", "B13", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "B8"], - "rows": ["B3", "B12", "A15", "B7", "B9"] - }, - "processor": "STM32F072", - "rgblight": { - "default": { - "on": false - }, - "driver": "ws2812", - "layers": { - "blink": true, - "enabled": true, - "override_rgb": true - }, - "led_count": 12 - }, - "url": "https://github.com/dnlnm/cloak-xt-stm32", - "usb": { - "device_version": "1.0.0", - "pid": "0xFCD4", - "vid": "0x7E7E" - }, - "ws2812": { - "pin": "B5" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.63, "y": 0}, - {"matrix": [0, 6], "x": 6.63, "y": 0}, - {"matrix": [0, 7], "x": 7.63, "y": 0}, - {"matrix": [0, 8], "x": 8.63, "y": 0}, - {"matrix": [0, 9], "x": 10, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1.25}, - {"matrix": [1, 2], "x": 2.5, "y": 1.25}, - {"matrix": [1, 3], "x": 3.5, "y": 1.25}, - {"matrix": [1, 4], "x": 4.5, "y": 1.25}, - {"matrix": [1, 5], "x": 5.5, "y": 1.25}, - {"matrix": [1, 6], "x": 6.5, "y": 1.25}, - {"matrix": [1, 7], "x": 7.5, "y": 1.25}, - {"matrix": [1, 8], "x": 8.5, "y": 1.25}, - {"matrix": [1, 9], "x": 9.5, "y": 1.25}, - {"matrix": [1, 10], "x": 10.5, "y": 1.25}, - {"matrix": [1, 11], "x": 11.5, "y": 1.25}, - {"matrix": [1, 12], "x": 12.5, "y": 1.25, "w": 1.5}, - {"matrix": [1, 13], "x": 14.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2.25}, - {"matrix": [2, 2], "x": 2.75, "y": 2.25}, - {"matrix": [2, 3], "x": 3.75, "y": 2.25}, - {"matrix": [2, 4], "x": 4.75, "y": 2.25}, - {"matrix": [2, 5], "x": 5.75, "y": 2.25}, - {"matrix": [2, 6], "x": 6.75, "y": 2.25}, - {"matrix": [2, 7], "x": 7.75, "y": 2.25}, - {"matrix": [2, 8], "x": 8.75, "y": 2.25}, - {"matrix": [2, 9], "x": 9.75, "y": 2.25}, - {"matrix": [2, 10], "x": 10.75, "y": 2.25}, - {"matrix": [2, 11], "x": 11.75, "y": 2.25, "w": 2.25}, - {"matrix": [2, 12], "x": 14.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3.25}, - {"matrix": [3, 2], "x": 3.25, "y": 3.25}, - {"matrix": [3, 3], "x": 4.25, "y": 3.25}, - {"matrix": [3, 4], "x": 5.25, "y": 3.25}, - {"matrix": [3, 5], "x": 6.25, "y": 3.25}, - {"matrix": [3, 6], "x": 7.25, "y": 3.25}, - {"matrix": [3, 7], "x": 8.25, "y": 3.25}, - {"matrix": [3, 8], "x": 9.25, "y": 3.25}, - {"matrix": [3, 9], "x": 10.25, "y": 3.25}, - {"matrix": [3, 10], "x": 11.25, "y": 3.25}, - {"matrix": [3, 11], "x": 12.25, "y": 3.25, "w": 1.75}, - {"matrix": [3, 12], "x": 14.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25, "w": 1.25}, - {"matrix": [4, 6], "x": 3.5, "y": 4.25, "w": 7}, - {"matrix": [4, 10], "x": 10.5, "y": 4.25, "w": 1.25}, - {"matrix": [4, 11], "x": 11.75, "y": 4.25}, - {"matrix": [4, 12], "x": 12.75, "y": 4.25, "w": 1.25}, - {"matrix": [4, 13], "x": 14.25, "y": 4.25} - ] - } - } -} diff --git a/keyboards/dnlnm/cloak/keymaps/default/keymap.c b/keyboards/dnlnm/cloak/keymaps/default/keymap.c deleted file mode 100644 index 61733d2bba..0000000000 --- a/keyboards/dnlnm/cloak/keymaps/default/keymap.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2025 dnlnm -// 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_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_MPLY, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_VOLU, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_VOLD, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_MUTE, - KC_LCTL, KC_LGUI, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_PSCR), - - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU)}, -}; -#endif - -#ifdef RGBLIGHT_ENABLE - -// Light LEDs 10 & 11 in blue when caps lock is active. -const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {10, 2, HSV_BLUE} // Light 4 LEDs, starting with LED 6 -); -// Light LEDs 0 & 1 in blue when keyboard layer 1 is active -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 2, HSV_BLUE} -); -// Light LEDs 4 & 5 in blue when keyboard layer 2 is active -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {4, 2, HSV_BLUE} -); - -// Now define the array of layers. Later layers take precedence -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer, - my_layer1_layer, // Overrides caps lock layer - my_layer2_layer // Overrides other layers -); - -void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; -} - -bool led_update_user(led_t led_state) { - rgblight_set_layer_state(0, led_state.caps_lock); - return true; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - return state; -} - -#endif diff --git a/keyboards/dnlnm/cloak/keymaps/default/rules.mk b/keyboards/dnlnm/cloak/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/dnlnm/cloak/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dnlnm/cloak/readme.md b/keyboards/dnlnm/cloak/readme.md deleted file mode 100644 index 99c50c8d43..0000000000 --- a/keyboards/dnlnm/cloak/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# dnlnm/cloak - -![dnlnm/cloak](https://i.imgur.com/eZCUPvK.jpeg) - -* Keyboard Maintainer: [Daniel Naim](https://github.com/dnlnm) -* Hardware Supported: Cloak-XT -* Hardware Availability: https://github.com/dnlnm/cloak-xt-stm32 - -Make example for this keyboard (after setting up your build environment): - - make dnlnm/cloak:default - -Flashing example for this keyboard: - - make dnlnm/cloak:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dnworks/frltkl/keyboard.json b/keyboards/dnworks/frltkl/keyboard.json index 1561a648a0..86796a6084 100644 --- a/keyboards/dnworks/frltkl/keyboard.json +++ b/keyboards/dnworks/frltkl/keyboard.json @@ -13,10 +13,13 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "indicators": { - "caps_lock": "GP27" + "caps_lock": "GP27", + "on_state": 1 }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/dnworks/sbl/keyboard.json b/keyboards/dnworks/sbl/keyboard.json index d9c6fa1bb3..81461ead4d 100644 --- a/keyboards/dnworks/sbl/keyboard.json +++ b/keyboards/dnworks/sbl/keyboard.json @@ -13,10 +13,13 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "indicators": { - "caps_lock": "GP29" + "caps_lock": "GP29", + "on_state": 1 }, "diode_direction": "COL2ROW", "matrix_pins": { @@ -24,18 +27,16 @@ "cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"] }, "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], "layouts": { "LAYOUT_all": { @@ -319,7 +320,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dnworks/tkl87/keyboard.json b/keyboards/dnworks/tkl87/keyboard.json index af912ae25d..6b56435ae3 100644 --- a/keyboards/dnworks/tkl87/keyboard.json +++ b/keyboards/dnworks/tkl87/keyboard.json @@ -17,7 +17,8 @@ }, "indicators": { "caps_lock": "GP27", - "scroll_lock": "GP1" + "scroll_lock": "GP1", + "on_state": 1 }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/do60/keyboard.json b/keyboards/do60/keyboard.json index 0c6cd8db83..2a7d585f65 100644 --- a/keyboards/do60/keyboard.json +++ b/keyboards/do60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Do60", "manufacturer": "Doyu Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4453", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/doio/kb03/config.h b/keyboards/doio/kb03/config.h deleted file mode 100644 index f0f974d940..0000000000 --- a/keyboards/doio/kb03/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (C) 2025 DOIO -// Copyright (C) 2025 ClownFish (@clownfish-og) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_DRIVER PWMD1 -#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 diff --git a/keyboards/doio/kb03/halconf.h b/keyboards/doio/kb03/halconf.h deleted file mode 100644 index 8c0968d792..0000000000 --- a/keyboards/doio/kb03/halconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (C) 2025 DOIO -// Copyright (C) 2025 ClownFish (@clownfish-og) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/doio/kb03/kb03.c b/keyboards/doio/kb03/kb03.c deleted file mode 100644 index 9368bc5d41..0000000000 --- a/keyboards/doio/kb03/kb03.c +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2025 DOIO -// Copyright (C) 2025 ClownFish (@clownfish-og) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case RM_TOGG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - - hsv_t hsv = {0, 255, 100}; - switch (get_highest_layer(layer_state)) { - case 0: - hsv = (hsv_t){HSV_RED}; - break; - case 1: - hsv = (hsv_t){HSV_GREEN}; - break; - case 2: - hsv = (hsv_t){HSV_BLUE}; - break; - case 3: - hsv = (hsv_t){HSV_WHITE}; - break; - default: - hsv = (hsv_t){HSV_YELLOW}; - break; - } - hsv.v = (rgb_matrix_get_val() * 70 / 200) + 30; //set indicator brightness range 30-100, vary based on RGB Matrix brightness - rgb_t rgb = hsv_to_rgb(hsv); - rgb_matrix_set_color(9, rgb.r, rgb.g, rgb.b); - return false; -} - -#endif diff --git a/keyboards/doio/kb03/keyboard.json b/keyboards/doio/kb03/keyboard.json deleted file mode 100644 index d2a214c92f..0000000000 --- a/keyboards/doio/kb03/keyboard.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "manufacturer": "DOIO", - "keyboard_name": "KB03-01", - "maintainer": "clownfish-og", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B6", "resolution": 4}, - {"pin_a": "A2", "pin_b": "A1", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B14", "B13", "B12", "B0", "A7"], - "rows": ["B3"] - }, - "processor": "STM32F103", - "rgb_matrix": { - "animations": { - "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, - "dual_beacon": true, - "gradient_left_right": true, - "gradient_up_down": true, - "hue_breathing": true, - "hue_wave": true, - "jellybean_raindrops": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "rainbow_pinwheels": true, - "raindrops": true, - "solid_reactive": true, - "solid_reactive_cross": true, - "solid_reactive_nexus": true, - "solid_reactive_simple": true, - "solid_reactive_wide": true, - "solid_splash": true, - "splash": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, - {"x": 224, "y": 0, "flags": 2}, - {"x": 0, "y": 0, "flags": 2}, - {"x": 0, "y": 32, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 224, "y": 32, "flags": 2}, - {"x": 10, "y": 0, "flags": 8} - ], - "max_brightness": 200, - "sleep": true - }, - "url": "https://www.keebmonkey.com/products/megalodon-dual-layer-knob-macro-pad", - "usb": { - "device_version": "0.0.1", - "pid": "0x0301", - "vid": "0xD010" - }, - "ws2812": { - "pin": "A10", - "driver": "pwm" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Layers", "matrix": [0, 3], "x": 0.75, "y": 0, "h": 0.5}, - {"label": "1!", "matrix": [0, 0], "x": 0, "y": 0.75}, - {"label": "2@", "matrix": [0, 1], "x": 1, "y": 0.75}, - {"label": "3#", "matrix": [0, 2], "x": 2, "y": 0.75}, - {"label": "Encoder", "matrix": [0, 4], "x": 0.5, "y": 2, "w": 2, "h": 2} - ] - } - } -} diff --git a/keyboards/doio/kb03/keymaps/default/keymap.c b/keyboards/doio/kb03/keymaps/default/keymap.c deleted file mode 100644 index 67e43faca4..0000000000 --- a/keyboards/doio/kb03/keymaps/default/keymap.c +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2025 DOIO -// Copyright 2025 ClownFish (@clownfish-og) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum my_layers { - _BASE, - _MOUSE, - _MEDIA, - _LIGHTS -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - TO(_MOUSE), - KC_1, KC_2, KC_3, - KC_ENT - ), - [_MOUSE] = LAYOUT( - TO(_MEDIA), - MS_BTN1, MS_BTN3, MS_BTN2, - KC_LCTL - ), - [_MEDIA] = LAYOUT( - TO(_LIGHTS), - KC_MRWD, KC_MPLY, KC_MFFD, - KC_MUTE - ), - [_LIGHTS] = LAYOUT( - TO(_BASE), - RM_VALD, RM_NEXT, RM_VALU, - RM_TOGG - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) }, - [_MOUSE] = { ENCODER_CCW_CW(MS_LEFT, MS_RGHT), ENCODER_CCW_CW(MS_UP, MS_DOWN) }, - [_MEDIA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, - [_LIGHTS] = { ENCODER_CCW_CW(RM_SATD, RM_SATU), ENCODER_CCW_CW(RM_HUED, RM_HUEU) } -}; -#endif diff --git a/keyboards/doio/kb03/keymaps/default/rules.mk b/keyboards/doio/kb03/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/doio/kb03/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb03/mcuconf.h b/keyboards/doio/kb03/mcuconf.h deleted file mode 100644 index 5869741c98..0000000000 --- a/keyboards/doio/kb03/mcuconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2025 DOIO -// Copyright (C) 2025 ClownFish (@clownfish-og) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/doio/kb03/readme.md b/keyboards/doio/kb03/readme.md deleted file mode 100644 index 873ab2f38d..0000000000 --- a/keyboards/doio/kb03/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# DOIO KB03-01 - -![KB03-01](https://i.imgur.com/bnlDpkY.png) - -QMK for Megalodon DOIO Dual Layer Knob 3 Key macropad. - -* Keyboard Maintainer: [clownfish-og](https://github.com/clownfish-og) -* Hardware Supported: DOIO KB03-01 using APM32F103CBT6 (clone STM32F103CBT6) -* Hardware Availability: https://www.keebmonkey.com/products/megalodon-dual-layer-knob-macro-pad - -Make example for this keyboard (after setting up your build environment): - - make doio/kb03:default - -Flashing example for this keyboard: - - make doio/kb03:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/doio/kb03/rules.mk b/keyboards/doio/kb03/rules.mk deleted file mode 100644 index 6f0a3736a7..0000000000 --- a/keyboards/doio/kb03/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Configure for 128K flash -MCU_LDSCRIPT = STM32F103xB diff --git a/keyboards/doio/kb04/keyboard.json b/keyboards/doio/kb04/keyboard.json index ea5c58c71c..2455f82e03 100644 --- a/keyboards/doio/kb04/keyboard.json +++ b/keyboards/doio/kb04/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/doio/kb04/keymaps/default/keymap.c b/keyboards/doio/kb04/keymaps/default/keymap.c index 9203aea481..7df80397fd 100644 --- a/keyboards/doio/kb04/keymaps/default/keymap.c +++ b/keyboards/doio/kb04/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE ), [_LAY1] = LAYOUT( - KC_TRNS, RM_HUED, RM_TOGG, RM_NEXT, KC_TRNS + KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS ) }; diff --git a/keyboards/doio/kb09/keyboard.json b/keyboards/doio/kb09/keyboard.json deleted file mode 100644 index a9c0e2a579..0000000000 --- a/keyboards/doio/kb09/keyboard.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "manufacturer": "DOIO", - "keyboard_name": "KB09-01", - "maintainer": "DOIO2022", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B6"}, - {"pin_a": "A1", "pin_b": "A2"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B14", "B13", "B12", "B0", "A7"], - "rows": ["B3", "B4", "B9", "B8"] - }, - "processor": "STM32F103", - "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_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 - }, - "default": { - "animation": "cycle_up_down" - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 56, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 112, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [1, 1], "x": 56, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 112, "y": 21, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [2, 1], "x": 56, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 112, "y": 42, "flags": 4} - ], - "max_brightness": 200, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x0901", - "vid": "0xD010" - }, - "ws2812": { - "pin": "A10" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [1, 3], "x": 1, "y": 0}, - {"matrix": [0, 0], "x": 4, "y": 0}, - {"matrix": [0, 1], "x": 5, "y": 0}, - {"matrix": [0, 2], "x": 6, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 3], "x": 0, "y": 1}, - {"matrix": [2, 3], "x": 2, "y": 1}, - {"matrix": [1, 0], "x": 4, "y": 1}, - {"matrix": [1, 1], "x": 5, "y": 1}, - {"matrix": [1, 2], "x": 6, "y": 1}, - {"matrix": [3, 0], "x": 1, "y": 2}, - {"matrix": [2, 0], "x": 4, "y": 2}, - {"matrix": [2, 1], "x": 5, "y": 2}, - {"matrix": [2, 2], "x": 6, "y": 2}, - {"matrix": [3, 1], "x": 3, "y": 3}, - {"matrix": [3, 2], "x": 3, "y": 3} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/doio/kb09/keymaps/default/keymap.c b/keyboards/doio/kb09/keymaps/default/keymap.c deleted file mode 100644 index b5a0e5f62d..0000000000 --- a/keyboards/doio/kb09/keymaps/default/keymap.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2022 DOIO - * Copyright 2022 DOIO2022 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include QMK_KEYBOARD_H - -enum layer_names { - _LAY0, - _LAY1, - _LAY2, - _LAY3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAY0] = LAYOUT( - KC_UP, KC_1, KC_2, KC_3, KC_MPLY, KC_MUTE, - KC_LEFT, KC_RIGHT, KC_4, KC_5, KC_6, - KC_DOWN, KC_7, KC_8, KC_9, - TO(1), LWIN(KC_D)), - [_LAY1] = LAYOUT( - KC_TRNS, C(S(KC_S)), C(KC_H), C(KC_G), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, C(S(KC_A)), C(KC_J), C(S(KC_G)), - KC_TRNS, C(KC_Z), KC_DEL, C(A(S(KC_E))), - TO(2), KC_TRNS), - [_LAY2] = LAYOUT( - KC_TRNS, S(KC_I), A(KC_EQL), C(S(KC_M)), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, S(KC_O), A(KC_MINS), S(KC_M), - KC_TRNS, KC_C, KC_V, C(KC_M), - TO(3), KC_TRNS), - [_LAY3] = LAYOUT( - KC_TRNS, RM_SPDU, RM_SPDD, RM_HUEU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_SATU, RM_SATD, RM_HUED, - KC_TRNS, RM_NEXT, RM_VALU, RM_VALD, - TO(0), KC_TRNS) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, -}; -#endif diff --git a/keyboards/doio/kb09/readme.md b/keyboards/doio/kb09/readme.md deleted file mode 100644 index a7b23dc58d..0000000000 --- a/keyboards/doio/kb09/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# doio/kb09 - -![kb09-01](https://i.imgur.com/MVKeweC.png) - -QMK for DOIO GBA keypad . - -* Keyboard Maintainer: DOIO2022 -* Hardware Supported: DOIO GBA keypad - -Make example for this keyboard (after setting up your build environment): - - make doio/kb09:default - -Flashing example for this keyboard: - - make doio/kb09:default:flash - -See the build [environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/doio/kb12/keyboard.json b/keyboards/doio/kb12/keyboard.json index 134c4aff76..c87d5f9544 100644 --- a/keyboards/doio/kb12/keyboard.json +++ b/keyboards/doio/kb12/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KB12-01", "manufacturer": "DOIO", + "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", @@ -93,6 +94,8 @@ "bootloader": "stm32duino", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/doio/kb12/keymaps/default/keymap.c b/keyboards/doio/kb12/keymaps/default/keymap.c index 21786fd743..72360f1a8b 100644 --- a/keyboards/doio/kb12/keymaps/default/keymap.c +++ b/keyboards/doio/kb12/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY4] = LAYOUT( TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [_LAY5] = LAYOUT( - TO(0), RM_TOGG, RM_NEXT, RM_SPDU, RM_SPDD, RM_SATU, RM_SATD, RM_HUEU, RM_HUED, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS) + TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/doio/kb16/info.json b/keyboards/doio/kb16/info.json index 7b27370707..08c19819bb 100644 --- a/keyboards/doio/kb16/info.json +++ b/keyboards/doio/kb16/info.json @@ -4,12 +4,8 @@ "maintainer": "HorrorTroll", "usb": { "vid": "0xD010", - "pid": "0x1601" - }, - "host": { - "default": { - "nkro": true - } + "pid": "0x1601", + "force_nkro": true }, "diode_direction": "COL2ROW", "build": { diff --git a/keyboards/doio/kb16/keymaps/default/keymap.c b/keyboards/doio/kb16/keymaps/default/keymap.c index 9e6c0e8662..fc1f1dcfaa 100644 --- a/keyboards/doio/kb16/keymaps/default/keymap.c +++ b/keyboards/doio/kb16/keymaps/default/keymap.c @@ -115,10 +115,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 */ [_FN2] = LAYOUT( - RM_SPDU, RM_SPDD, _______, QK_BOOT, _______, - RM_SATU, RM_SATD, _______, _______, TO(_BASE), - RM_TOGG, RM_NEXT, RM_HUEU, _______, _______, - _______, RM_VALU, RM_HUED, RM_VALD + RGB_SPI, RGB_SPD, _______, QK_BOOT, _______, + RGB_SAI, RGB_SAD, _______, _______, TO(_BASE), + RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, + _______, RGB_VAI, RGB_HUD, RGB_VAD ), }; diff --git a/keyboards/doio/kb19/keyboard.json b/keyboards/doio/kb19/keyboard.json index 170794cef7..faaaedd36f 100644 --- a/keyboards/doio/kb19/keyboard.json +++ b/keyboards/doio/kb19/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KB19-01", "manufacturer": "DOIO", + "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", @@ -12,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "encoder": true, "nkro": false, "rgblight": true diff --git a/keyboards/doio/kb30/keyboard.json b/keyboards/doio/kb30/keyboard.json index 86c1535a5d..388df2d9e3 100644 --- a/keyboards/doio/kb30/keyboard.json +++ b/keyboards/doio/kb30/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KB30-01", "manufacturer": "DOIO", + "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", @@ -92,6 +93,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/doio/kb30/keymaps/default/keymap.c b/keyboards/doio/kb30/keymaps/default/keymap.c index 855fba1697..2e385d24e3 100644 --- a/keyboards/doio/kb30/keymaps/default/keymap.c +++ b/keyboards/doio/kb30/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_SPDU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_SPDD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, - KC_TRNS, KC_TRNS, RM_VALD, RM_TOGG, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, KC_TRNS, TO(0), KC_TRNS) }; diff --git a/keyboards/doio/kb38/kb38.c b/keyboards/doio/kb38/kb38.c index 2eaf62fa73..55a88a068b 100644 --- a/keyboards/doio/kb38/kb38.c +++ b/keyboards/doio/kb38/kb38.c @@ -52,9 +52,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } else if (index == 1) { // Mouse Wheel Up/Down if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } } else if (index == 2) { // Volume Up/Down diff --git a/keyboards/doio/kb38/keyboard.json b/keyboards/doio/kb38/keyboard.json index 5214c60d08..a46f1a6a45 100644 --- a/keyboards/doio/kb38/keyboard.json +++ b/keyboards/doio/kb38/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/doio/kb38/keymaps/default/keymap.c b/keyboards/doio/kb38/keymaps/default/keymap.c index 6f5304c004..96a548e512 100644 --- a/keyboards/doio/kb38/keymaps/default/keymap.c +++ b/keyboards/doio/kb38/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───────┴───┴───┘└───┴───┴───┘└───────────┘ */ [_QWERTY] = LAYOUT( - MO(1), KC_BSPC, RM_PREV, RM_TOGG, RM_NEXT, KC_F1, KC_F2, KC_F3, + MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT ), [_LAYERTWO] = LAYOUT( - _______, KC_BSPC, RM_PREV, RM_TOGG, RM_NEXT, KC_A, QK_RBT, QK_BOOT, + _______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_RBT, QK_BOOT, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, diff --git a/keyboards/doio/kb3x/keyboard.json b/keyboards/doio/kb3x/keyboard.json index eb9e843745..be0d138439 100644 --- a/keyboards/doio/kb3x/keyboard.json +++ b/keyboards/doio/kb3x/keyboard.json @@ -86,6 +86,7 @@ "max_brightness": 200, "sleep": true }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x3F01", diff --git a/keyboards/doio/kb3x/keymaps/default/keymap.c b/keyboards/doio/kb3x/keymaps/default/keymap.c index 7791a19f95..934019e8cf 100644 --- a/keyboards/doio/kb3x/keymaps/default/keymap.c +++ b/keyboards/doio/kb3x/keymaps/default/keymap.c @@ -26,15 +26,15 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - TO(1), RM_NEXT, RM_TOGG, RM_HUEU, RM_VALD, RM_VALU, + TO(1), RGB_MOD, RGB_TOG, RGB_HUI, RGB_VAD, RGB_VAI, KC_MPLY, KC_UP, KC_UP, KC_MNXT, KC_TRNS, KC_MPRV, A(KC_LEFT), KC_TRNS, A(KC_RIGHT), KC_RIGHT, KC_TRNS, KC_LEFT, KC_MPLY, KC_DOWN, KC_DOWN), [_LAY1] = LAYOUT( TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - MS_WHLU, S(KC_RBRC), C(KC_L), - C(MS_WHLD), KC_TRNS, C(MS_WHLU), KC_DOT, KC_TRNS, KC_COMM, C(KC_B), KC_TRNS, C(KC_U), - MS_WHLD, S(KC_LBRC), C(KC_M)), + KC_WH_U, S(KC_RBRC), C(KC_L), + C(KC_WH_D), KC_TRNS, C(KC_WH_U), KC_DOT, KC_TRNS, KC_COMM, C(KC_B), KC_TRNS, C(KC_U), + KC_WH_D, S(KC_LBRC), C(KC_M)), [_LAY2] = LAYOUT( TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_B, KC_UP, S(KC_I), diff --git a/keyboards/donutcables/budget96/keyboard.json b/keyboards/donutcables/budget96/keyboard.json index 6b9b99abd9..eaba1b7c46 100644 --- a/keyboards/donutcables/budget96/keyboard.json +++ b/keyboards/donutcables/budget96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Budget96", "manufacturer": "DonutCables", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4443", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/donutcables/scrabblepad/keyboard.json b/keyboards/donutcables/scrabblepad/keyboard.json index f614dffa4f..aa03523ed8 100644 --- a/keyboards/donutcables/scrabblepad/keyboard.json +++ b/keyboards/donutcables/scrabblepad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ScrabblePad", "manufacturer": "DonutCables", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4443", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/doodboard/duckboard/keyboard.json b/keyboards/doodboard/duckboard/keyboard.json index b5f07ead98..bb0b5c0f00 100644 --- a/keyboards/doodboard/duckboard/keyboard.json +++ b/keyboards/doodboard/duckboard/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "encoder": true, "extrakey": true, @@ -37,7 +38,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/doodboard/duckboard_r2/keyboard.json b/keyboards/doodboard/duckboard_r2/keyboard.json index cffb2904e3..94c79d382c 100644 --- a/keyboards/doodboard/duckboard_r2/keyboard.json +++ b/keyboards/doodboard/duckboard_r2/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "encoder": true, "extrakey": true, @@ -40,7 +41,8 @@ "bootmagic": { "matrix": [0, 1] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/doppelganger/keyboard.json b/keyboards/doppelganger/keyboard.json index 72b3604596..8856927012 100644 --- a/keyboards/doppelganger/keyboard.json +++ b/keyboards/doppelganger/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Doppelganger", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/doro67/multi/keyboard.json b/keyboards/doro67/multi/keyboard.json index 6749a234cf..a3a652e40b 100644 --- a/keyboards/doro67/multi/keyboard.json +++ b/keyboards/doro67/multi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Doro67 Multi", "manufacturer": "Backprop Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4250", diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json index de95db63d6..8f372dc9c7 100644 --- a/keyboards/doro67/rgb/keyboard.json +++ b/keyboards/doro67/rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Doro67 RGB", "manufacturer": "Backprop Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4250", @@ -55,6 +56,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/doro67/rgb/keymaps/default/keymap.c b/keyboards/doro67/rgb/keymaps/default/keymap.c index bc4485af66..ca9ec2e612 100644 --- a/keyboards/doro67/rgb/keymaps/default/keymap.c +++ b/keyboards/doro67/rgb/keymaps/default/keymap.c @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi_blocker( 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, _______, _______, QMKBEST, QMKURL, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/dotmod/dymium65/keyboard.json b/keyboards/dotmod/dymium65/keyboard.json index a76bc91cd6..c5cd1b2cb7 100644 --- a/keyboards/dotmod/dymium65/keyboard.json +++ b/keyboards/dotmod/dymium65/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0x5678", "pid": "0x5058", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "diode_direction": "ROW2COL", "matrix_pins": { @@ -23,6 +19,8 @@ "features": { "bootmagic": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "mousekey": true, "rgb_matrix": true diff --git a/keyboards/dotmod/dymium65/keymaps/default/keymap.c b/keyboards/dotmod/dymium65/keymaps/default/keymap.c index 23e50f2907..e18c3b5b23 100644 --- a/keyboards/dotmod/dymium65/keymaps/default/keymap.c +++ b/keyboards/dotmod/dymium65/keymaps/default/keymap.c @@ -39,10 +39,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT( KC_GRAVE, 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_BACKSPACE, KC_TRNS, - RM_TOGG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RM_HUEU, RM_HUED, KC_BACKSLASH, KC_TRNS, - KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RM_SATD, RM_SATU, KC_ENTER, KC_TRNS, - KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, MO(_LN), KC_SLASH, KC_RIGHT_SHIFT, RM_VALU, - KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, RM_NEXT, _______, KC_RIGHT_CTRL, RM_SPDD, RM_VALD, RM_SPDU + RGB_TOG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RGB_HUI, RGB_HUD, KC_BACKSLASH, KC_TRNS, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RGB_SAD, RGB_SAI, KC_ENTER, KC_TRNS, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, MO(_LN), KC_SLASH, KC_RIGHT_SHIFT, RGB_VAI, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, RGB_MOD, _______, KC_RIGHT_CTRL, RGB_SPD, RGB_VAD, RGB_SPI ), [_LN] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, KC_TRNS, @@ -64,8 +64,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) }, - [_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, - [_LN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [_MT] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, + [_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [_LN] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [_MT] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, }; #endif diff --git a/keyboards/dp3000/keymaps/default/keymap.c b/keyboards/dp3000/keymaps/default/keymap.c index 1455e153ef..6d3561edbc 100644 --- a/keyboards/dp3000/keymaps/default/keymap.c +++ b/keyboards/dp3000/keymaps/default/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, _______, KC_1, KC_2, KC_3, KC_4, - TO(0), TO(2), TO(3), RM_TOGG + TO(0), TO(2), TO(3), RGB_TOG ), [2] = LAYOUT( _______, _______, @@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #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(RM_HUED, RM_HUEU) }, - [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, - [3] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, }; #endif diff --git a/keyboards/dp3000/rev1/keyboard.json b/keyboards/dp3000/rev1/keyboard.json index 00ee2bb59e..aa7ff8bc0a 100644 --- a/keyboards/dp3000/rev1/keyboard.json +++ b/keyboards/dp3000/rev1/keyboard.json @@ -2,6 +2,8 @@ "keyboard_name": "dp3000", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "encoder": true, "oled": true, diff --git a/keyboards/dp3000/rev2/keyboard.json b/keyboards/dp3000/rev2/keyboard.json index 202d3b7bf6..7d82c38460 100644 --- a/keyboards/dp3000/rev2/keyboard.json +++ b/keyboards/dp3000/rev2/keyboard.json @@ -2,6 +2,8 @@ "keyboard_name": "dp3000 rev2", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "encoder": true, "oled": true, diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk new file mode 100644 index 0000000000..0f44aefd44 --- /dev/null +++ b/keyboards/dp3000/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dp3000/rev1 diff --git a/keyboards/dp60/keyboard.json b/keyboards/dp60/keyboard.json index 2c42747bb4..9780141cea 100644 --- a/keyboards/dp60/keyboard.json +++ b/keyboards/dp60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DP60", "manufacturer": "astro", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x60BE", @@ -150,15 +151,9 @@ }, "layout_aliases": { "LAYOUT_60_wkl": "LAYOUT_60_ansi_tsangan_split_rshift", - "LAYOUT_60_wkl_split_bs": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_hhkb", - "60_iso" - ], + "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi_tsangan_split_rshift": { "layout": [ @@ -507,7 +502,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dp60/keymaps/default/keymap.c b/keyboards/dp60/keymaps/default/keymap.c index 0054aef212..3d49bd268f 100644 --- a/keyboards/dp60/keymaps/default/keymap.c +++ b/keyboards/dp60/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_ansi_split_bs_rshift( _______, 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_PSCR, - QK_BOOT, RM_TOGG,RM_NEXT,_______,KC_F13,KC_F14,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + QK_BOOT, RGB_TOG,RGB_MOD,_______,KC_F13,KC_F14,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______,_______,TG(0),_______), diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json index 9c21b2a97d..3ba2f0efae 100644 --- a/keyboards/draculad/keyboard.json +++ b/keyboards/draculad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DracuLad", "manufacturer": "MangoIV", + "url": "", "maintainer": "MangoIV", "usb": { "vid": "0xFEED", @@ -48,7 +49,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/draculad/keymaps/default/keymap.c b/keyboards/draculad/keymaps/default/keymap.c index 16df3ebac3..a7b5261904 100644 --- a/keyboards/draculad/keymaps/default/keymap.c +++ b/keyboards/draculad/keymaps/default/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MUS] = LAYOUT( KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LALT, MS_BTN3, MS_BTN2, MS_BTN1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX @@ -218,9 +218,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { else if (index == 3 ) { // Page up/Page down if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/draytronics/daisy/keyboard.json b/keyboards/draytronics/daisy/keyboard.json index 30a32fd457..92b0b54f43 100644 --- a/keyboards/draytronics/daisy/keyboard.json +++ b/keyboards/draytronics/daisy/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/draytronics/elise/keyboard.json b/keyboards/draytronics/elise/keyboard.json index 6a273d0d1d..782c61d764 100644 --- a/keyboards/draytronics/elise/keyboard.json +++ b/keyboards/draytronics/elise/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/draytronics/elise_v2/keyboard.json b/keyboards/draytronics/elise_v2/keyboard.json index 1feabdbb7c..217f837e19 100644 --- a/keyboards/draytronics/elise_v2/keyboard.json +++ b/keyboards/draytronics/elise_v2/keyboard.json @@ -32,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/drewkeys/iskar/keyboard.json b/keyboards/drewkeys/iskar/keyboard.json index ccbbbc16f4..66d4ebd74d 100644 --- a/keyboards/drewkeys/iskar/keyboard.json +++ b/keyboards/drewkeys/iskar/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drhigsby/bkf/keyboard.json b/keyboards/drhigsby/bkf/keyboard.json index 17f1adc364..a3933c8228 100644 --- a/keyboards/drhigsby/bkf/keyboard.json +++ b/keyboards/drhigsby/bkf/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -31,7 +33,8 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_625uC": { "layout": [ diff --git a/keyboards/drhigsby/dubba175/keyboard.json b/keyboards/drhigsby/dubba175/keyboard.json index f1d55d1855..69570a1c2f 100644 --- a/keyboards/drhigsby/dubba175/keyboard.json +++ b/keyboards/drhigsby/dubba175/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["B1", "B3", "B2", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/drhigsby/ogurec/info.json b/keyboards/drhigsby/ogurec/info.json index bc43e1563a..f3c753f2c0 100644 --- a/keyboards/drhigsby/ogurec/info.json +++ b/keyboards/drhigsby/ogurec/info.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -25,5 +27,6 @@ "rows": ["F6", "B6", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/drhigsby/ogurec/rules.mk b/keyboards/drhigsby/ogurec/rules.mk new file mode 100644 index 0000000000..ed83fb6386 --- /dev/null +++ b/keyboards/drhigsby/ogurec/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = drhigsby/ogurec/left_pm diff --git a/keyboards/drhigsby/packrat/keyboard.json b/keyboards/drhigsby/packrat/keyboard.json index 8713ec034d..a836b0bf96 100644 --- a/keyboards/drhigsby/packrat/keyboard.json +++ b/keyboards/drhigsby/packrat/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -31,7 +33,8 @@ {"pin_a": "F5", "pin_b": "F4"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_3uc": { "layout": [ diff --git a/keyboards/drop/alt/keymaps/default/keymap.c b/keyboards/drop/alt/keymaps/default/keymap.c index 1e75813a71..28d7232bcf 100644 --- a/keyboards/drop/alt/keymaps/default/keymap.c +++ b/keyboards/drop/alt/keymaps/default/keymap.c @@ -12,8 +12,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( 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, _______, KC_MUTE, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, _______, _______, _______, EE_CLR, KC_APP, _______, KC_HOME, KC_PGDN, KC_END ) diff --git a/keyboards/drop/alt/v2/keyboard.json b/keyboards/drop/alt/v2/keyboard.json index 18bbe5f76d..8363aca5cf 100644 --- a/keyboards/drop/alt/v2/keyboard.json +++ b/keyboards/drop/alt/v2/keyboard.json @@ -20,6 +20,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/cstm65/keyboard.json b/keyboards/drop/cstm65/keyboard.json index 4ee594f127..708649966e 100644 --- a/keyboards/drop/cstm65/keyboard.json +++ b/keyboards/drop/cstm65/keyboard.json @@ -20,6 +20,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/cstm65/keymaps/default/keymap.c b/keyboards/drop/cstm65/keymaps/default/keymap.c index 1e75813a71..28d7232bcf 100644 --- a/keyboards/drop/cstm65/keymaps/default/keymap.c +++ b/keyboards/drop/cstm65/keymaps/default/keymap.c @@ -12,8 +12,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( 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, _______, KC_MUTE, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, _______, _______, _______, EE_CLR, KC_APP, _______, KC_HOME, KC_PGDN, KC_END ) diff --git a/keyboards/drop/cstm80/keyboard.json b/keyboards/drop/cstm80/keyboard.json index 4489eebd4a..5ce4e666b1 100644 --- a/keyboards/drop/cstm80/keyboard.json +++ b/keyboards/drop/cstm80/keyboard.json @@ -20,6 +20,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/cstm80/keymaps/default/keymap.c b/keyboards/drop/cstm80/keymaps/default/keymap.c index 0b7f3e523b..e820a0a743 100644 --- a/keyboards/drop/cstm80/keymaps/default/keymap.c +++ b/keyboards/drop/cstm80/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_f13_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/drop/ctrl/keymaps/default/keymap.c b/keyboards/drop/ctrl/keymaps/default/keymap.c index d871251511..82b1088921 100644 --- a/keyboards/drop/ctrl/keymaps/default/keymap.c +++ b/keyboards/drop/ctrl/keymaps/default/keymap.c @@ -14,8 +14,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/drop/ctrl/v2/keyboard.json b/keyboards/drop/ctrl/v2/keyboard.json index 402327ed31..f461800dde 100644 --- a/keyboards/drop/ctrl/v2/keyboard.json +++ b/keyboards/drop/ctrl/v2/keyboard.json @@ -20,6 +20,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/lib/common.c b/keyboards/drop/lib/common.c index 53fa70882e..04845ed17a 100644 --- a/keyboards/drop/lib/common.c +++ b/keyboards/drop/lib/common.c @@ -28,7 +28,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!record->event.pressed) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); diff --git a/keyboards/drop/sense75/keyboard.json b/keyboards/drop/sense75/keyboard.json index eb9cb121c2..052b494375 100644 --- a/keyboards/drop/sense75/keyboard.json +++ b/keyboards/drop/sense75/keyboard.json @@ -21,6 +21,8 @@ "rgb_matrix": true, "encoder": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/sense75/keymaps/default/keymap.c b/keyboards/drop/sense75/keymaps/default/keymap.c index 9fe2515767..36b17d967e 100644 --- a/keyboards/drop/sense75/keymaps/default/keymap.c +++ b/keyboards/drop/sense75/keymaps/default/keymap.c @@ -31,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ ) diff --git a/keyboards/drop/sense75/keymaps/default_md/keymap.c b/keyboards/drop/sense75/keymaps/default_md/keymap.c index 54b443b9a3..fb81be2721 100644 --- a/keyboards/drop/sense75/keymaps/default_md/keymap.c +++ b/keyboards/drop/sense75/keymaps/default_md/keymap.c @@ -38,8 +38,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ ), diff --git a/keyboards/drop/shift/keymaps/default/keymap.c b/keyboards/drop/shift/keymaps/default/keymap.c index 389d704db1..371908bb48 100644 --- a/keyboards/drop/shift/keymaps/default/keymap.c +++ b/keyboards/drop/shift/keymaps/default/keymap.c @@ -14,8 +14,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_1800_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_MPLY, KC_MSTP, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_SCRL, - _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/drop/shift/v2/keyboard.json b/keyboards/drop/shift/v2/keyboard.json index 85556998f2..212263d71c 100644 --- a/keyboards/drop/shift/v2/keyboard.json +++ b/keyboards/drop/shift/v2/keyboard.json @@ -20,6 +20,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/thekey/v1/keyboard.json b/keyboards/drop/thekey/v1/keyboard.json index 3038171fb3..f1f204e3a0 100644 --- a/keyboards/drop/thekey/v1/keyboard.json +++ b/keyboards/drop/thekey/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "backlight": true, diff --git a/keyboards/drop/thekey/v2/keyboard.json b/keyboards/drop/thekey/v2/keyboard.json index 7497907187..ced9901bea 100644 --- a/keyboards/drop/thekey/v2/keyboard.json +++ b/keyboards/drop/thekey/v2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "rgblight": true diff --git a/keyboards/drop/thekey/v2/keymaps/rgb-control-macos/keymap.c b/keyboards/drop/thekey/v2/keymaps/rgb-control-macos/keymap.c index 2fc74c35f6..f3699e752f 100644 --- a/keyboards/drop/thekey/v2/keymaps/rgb-control-macos/keymap.c +++ b/keyboards/drop/thekey/v2/keymaps/rgb-control-macos/keymap.c @@ -26,16 +26,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(LAYER_SWITCH, G(KC_C), G(KC_V)), /* RGB Toggle + Mode Change */ - [1] = LAYOUT(LAYER_SWITCH, UG_TOGG, UG_NEXT), + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), /* RGB Brightness */ - [2] = LAYOUT(LAYER_SWITCH, UG_VALD, UG_VALU), + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), /* RGB Hue */ - [3] = LAYOUT(LAYER_SWITCH, UG_HUED, UG_HUEU), + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), /* RGB Saturation */ - [4] = LAYOUT(LAYER_SWITCH, UG_SATD, UG_SATU), + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), }; diff --git a/keyboards/drop/thekey/v2/keymaps/rgb-control/keymap.c b/keyboards/drop/thekey/v2/keymaps/rgb-control/keymap.c index 9cea1018d4..4246973654 100644 --- a/keyboards/drop/thekey/v2/keymaps/rgb-control/keymap.c +++ b/keyboards/drop/thekey/v2/keymaps/rgb-control/keymap.c @@ -26,16 +26,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(LAYER_SWITCH, C(KC_C), C(KC_V)), /* RGB Toggle + Mode Change */ - [1] = LAYOUT(LAYER_SWITCH, UG_TOGG, UG_NEXT), + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), /* RGB Brightness */ - [2] = LAYOUT(LAYER_SWITCH, UG_VALD, UG_VALU), + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), /* RGB Hue */ - [3] = LAYOUT(LAYER_SWITCH, UG_HUED, UG_HUEU), + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), /* RGB Saturation */ - [4] = LAYOUT(LAYER_SWITCH, UG_SATD, UG_SATU), + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), }; diff --git a/keyboards/druah/dk_saver_redux/keyboard.json b/keyboards/druah/dk_saver_redux/keyboard.json index 76f6131358..6c76e10756 100644 --- a/keyboards/druah/dk_saver_redux/keyboard.json +++ b/keyboards/druah/dk_saver_redux/keyboard.json @@ -15,6 +15,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/druah/majestouch_redux/keyboard.json b/keyboards/druah/majestouch_redux/keyboard.json deleted file mode 100644 index b9ea139bd5..0000000000 --- a/keyboards/druah/majestouch_redux/keyboard.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "manufacturer": "FILCO", - "keyboard_name": "Majestouch Redux", - "maintainer": "Druah", - "bootloader": "atmel-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "C1", - "scroll_lock": "C0" - }, - "matrix_pins": { - "cols": ["A0", "A1", "A2", "F6", "F7", "E6", "F0", "F1", "F2", "B3", "B2", "B1", "F3", "F4", "C5", "C6", "C3"], - "rows": ["C2", "B4", "B5", "F5", "C7", "C4"] - }, - "processor": "at90usb646", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "url": "https://druah.moe", - "usb": { - "device_version": "1.0.0", - "pid": "0x0003", - "vid": "0x444E" - }, - "community_layouts": ["tkl_ansi"], - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 7], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/druah/majestouch_redux/keymaps/default/keymap.c b/keyboards/druah/majestouch_redux/keymaps/default/keymap.c deleted file mode 100644 index a3f8be1bba..0000000000 --- a/keyboards/druah/majestouch_redux/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 Druah (@Druah) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│Scr│Pse│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ - */ - [0] = LAYOUT_tkl_ansi( - 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_PSCR, KC_SCRL, KC_PAUS, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/keyboards/druah/majestouch_redux/readme.md b/keyboards/druah/majestouch_redux/readme.md deleted file mode 100644 index 19df7d4697..0000000000 --- a/keyboards/druah/majestouch_redux/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Majestouch Redux - -![PCB](https://i.imgur.com/LjoywMI.png) - -A replacement PCB for the FILCO Majestouch TKL line of keyboards (and other keyboards) compatible with [Phantom TKL](https://deskthority.net/wiki/Phantom) PCB spacing - -* Keyboard Maintainer: [Druah](https://github.com/Druah) -* Hardware Supported: Majestouch Redux -* Hardware Availability: Private buy - -Make example for this keyboard (after setting up your build environment): - - make druah/majestouch_redux:default - -Flashing example for this keyboard: - - make druah/majestouch_redux: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 Escape/top left key) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB labelled with "RESET" -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dtisaac/cg108/keyboard.json b/keyboards/dtisaac/cg108/keyboard.json index 3328fcd96a..28e5563111 100644 --- a/keyboards/dtisaac/cg108/keyboard.json +++ b/keyboards/dtisaac/cg108/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CG108", "manufacturer": "DTIsaac", + "url": "", "maintainer": "daotakisaac", "usb": { "vid": "0x4454", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json index 4f5522947a..5f3654d2c5 100644 --- a/keyboards/dtisaac/dosa40rgb/keyboard.json +++ b/keyboards/dtisaac/dosa40rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": ">_Dosa40", "manufacturer": "DTIsaac", + "url": "", "maintainer": "DTIsaac", "usb": { "vid": "0x4454", @@ -71,6 +72,8 @@ "features": { "bluetooth": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c index e9038537f2..38db55938a 100644 --- a/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c +++ b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c @@ -45,8 +45,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT( - RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, OU_USB, OU_BT, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_BSLS, + RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, OU_USB, OU_BT, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/dtisaac/dtisaac01/keyboard.json b/keyboards/dtisaac/dtisaac01/keyboard.json index 33885b73f7..0b4b1b3057 100644 --- a/keyboards/dtisaac/dtisaac01/keyboard.json +++ b/keyboards/dtisaac/dtisaac01/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "dtisaac01", "manufacturer": "DTIsaac", + "url": "", "maintainer": "DTIsaac", "usb": { "vid": "0x4454", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/duck/jetfire/keyboard.json b/keyboards/duck/jetfire/keyboard.json index d9adf05ca4..a97ff193a8 100644 --- a/keyboards/duck/jetfire/keyboard.json +++ b/keyboards/duck/jetfire/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jetfire", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/jetfire/readme.md b/keyboards/duck/jetfire/readme.md index 2e12315d6b..8de2f5ced6 100644 --- a/keyboards/duck/jetfire/readme.md +++ b/keyboards/duck/jetfire/readme.md @@ -1,5 +1,7 @@ # Jetfire +![jetfire](imgur.com image replace me!) + The Duck Jetfire is a hybrid full size and 1800 layout keyboard that went on Group Buy in November 2017. diff --git a/keyboards/duck/lightsaver/keyboard.json b/keyboards/duck/lightsaver/keyboard.json index 978e0c6e23..d4e1cd1e35 100644 --- a/keyboards/duck/lightsaver/keyboard.json +++ b/keyboards/duck/lightsaver/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lightsaver V3", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/octagon/rules.mk b/keyboards/duck/octagon/rules.mk new file mode 100644 index 0000000000..46bd457bb7 --- /dev/null +++ b/keyboards/duck/octagon/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = duck/octagon/v2 \ No newline at end of file diff --git a/keyboards/duck/octagon/v1/keyboard.json b/keyboards/duck/octagon/v1/keyboard.json index 7dfd9ec3ea..47f3acdc4d 100644 --- a/keyboards/duck/octagon/v1/keyboard.json +++ b/keyboards/duck/octagon/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Octagon V1", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/octagon/v2/keyboard.json b/keyboards/duck/octagon/v2/keyboard.json index b3a1eb784d..4afbc42d47 100644 --- a/keyboards/duck/octagon/v2/keyboard.json +++ b/keyboards/duck/octagon/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Octagon V2", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/orion/rules.mk b/keyboards/duck/orion/rules.mk new file mode 100644 index 0000000000..3788e0fbfb --- /dev/null +++ b/keyboards/duck/orion/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = duck/orion/v3 diff --git a/keyboards/duck/orion/v3/keyboard.json b/keyboards/duck/orion/v3/keyboard.json index 9a7251c650..ba479aa0a2 100644 --- a/keyboards/duck/orion/v3/keyboard.json +++ b/keyboards/duck/orion/v3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Orion V3", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/tcv3/keyboard.json b/keyboards/duck/tcv3/keyboard.json index 699a44e69b..c03142b4db 100644 --- a/keyboards/duck/tcv3/keyboard.json +++ b/keyboards/duck/tcv3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TC-V3", "manufacturer": "Duck", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/ducky/one2mini/1861st/keyboard.json b/keyboards/ducky/one2mini/1861st/keyboard.json index 9f0010e6a7..a39945d68c 100644 --- a/keyboards/ducky/one2mini/1861st/keyboard.json +++ b/keyboards/ducky/one2mini/1861st/keyboard.json @@ -4,12 +4,8 @@ "usb": { "vid": "0x0416", "pid": "0x0123", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "matrix_pins": { "cols": ["B10", "B9", "C13", "C12", "C11", "C10", "C9", "C8", "A15", "A14", "A13", "D0", "D1", "D2", "B8"], @@ -239,75 +235,6 @@ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] } } } diff --git a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c index a80da0b114..8ea4a1729f 100644 --- a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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, KC_DEL, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_ENT, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_ENT, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ ), @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, - _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_TOGG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c deleted file mode 100644 index e28b4b7df0..0000000000 --- a/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright 2019 /u/KeepItUnder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -// LAYERS -enum Layer { - _QWERTY = 0, // Standard QWERTY layer - _FUNCTION, // Function key layer - _COLOUR // RGB key layer -}; -#define _QW _QWERTY -#define _FN _FUNCTION -#define _CLR _COLOUR - - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ Fn │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴────┤ - * │Ctrl│GUI │Alt │ │Alt │GUI │Ctrl │ - * └────┴────┴────┴─────────────────────────────┴────┴────┴─────┘ - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT_60_ansi_tsangan( - // 2 3 4 5 6 7 8 9 10 11 12 13 14 - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - - [_FUNCTION] = LAYOUT_60_ansi_tsangan( - // 2 3 4 5 6 7 8 9 10 11 12 13 14 - 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, KC_DEL, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_ENT, - _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, KC_APP, MO(_CLR), _______, KC_APP, _______, _______ - ), - - [_COLOUR] = LAYOUT_60_ansi_tsangan( - // 2 3 4 5 6 7 8 9 10 11 12 13 14 - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, - _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_TOGG, _______, _______, _______ - ), -}; diff --git a/keyboards/ducky/one2mini/keymaps/default/keymap.c b/keyboards/ducky/one2mini/keymaps/default/keymap.c index 69fcc295ad..537c5a420e 100644 --- a/keyboards/ducky/one2mini/keymaps/default/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/default/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT_all( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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, KC_DEL, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, MO(_CLR), KC_MPLY, _______, KC_APP, _______, _______ ), @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_all( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_TOGG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/iso/keymap.c b/keyboards/ducky/one2mini/keymaps/iso/keymap.c index 4f45273b8b..1c653d0fd5 100644 --- a/keyboards/ducky/one2mini/keymaps/iso/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/iso/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 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, KC_DEL, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT, _______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______ ), @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_TOGG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/rules.mk b/keyboards/ducky/one2mini/rules.mk new file mode 100644 index 0000000000..628be832ee --- /dev/null +++ b/keyboards/ducky/one2mini/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ducky/one2mini/1861st diff --git a/keyboards/ducky/one2sf/1967st/keyboard.json b/keyboards/ducky/one2sf/1967st/keyboard.json index 093793d4c8..3bb58fd48f 100644 --- a/keyboards/ducky/one2sf/1967st/keyboard.json +++ b/keyboards/ducky/one2sf/1967st/keyboard.json @@ -5,12 +5,8 @@ "usb": { "vid": "0x445B", "pid": "0x07AF", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "matrix_pins": { "cols": ["B10", "B9", "C13", "C12", "C11", "C10", "C9", "C8", "A15", "A14", "A13", "D0", "D1", "D2", "B15", "B8"], diff --git a/keyboards/ducky/one2sf/keymaps/default/keymap.c b/keyboards/ducky/one2sf/keymaps/default/keymap.c index 91a644d972..044b5067f6 100644 --- a/keyboards/ducky/one2sf/keymaps/default/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default/keymap.c @@ -38,9 +38,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = 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, KC_DEL, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUSE, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_END, _______, _______, KC_END, - _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUSE, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_END, _______, _______, KC_END, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c b/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c index d353f005ed..089f5f5f07 100644 --- a/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c @@ -38,9 +38,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT_ansi( 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, KC_DEL, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_END, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_END, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c b/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c index 3ec27fa54f..be678520e6 100644 --- a/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c @@ -38,9 +38,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT_iso( 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, KC_DEL, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, KC_HOME, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, _______, KC_END, - _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, KC_HOME, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, _______, KC_END, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/ducky/one2sf/rules.mk b/keyboards/ducky/one2sf/rules.mk new file mode 100644 index 0000000000..0c9ddb957f --- /dev/null +++ b/keyboards/ducky/one2sf/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ducky/one2sf/1967st diff --git a/keyboards/dumbo/keyboard.json b/keyboards/dumbo/keyboard.json index 4f8f04c06c..b833915d80 100644 --- a/keyboards/dumbo/keyboard.json +++ b/keyboards/dumbo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dumbo", "manufacturer": "trip_trap", + "url": "", "maintainer": "adamnaldal", "usb": { "vid": "0xFEED", @@ -32,7 +33,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk new file mode 100644 index 0000000000..87ec1ab01b --- /dev/null +++ b/keyboards/dumbpad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dumbpad/v0x diff --git a/keyboards/dumbpad/v0x/keyboard.json b/keyboards/dumbpad/v0x/keyboard.json index 9d25d80494..f0cecd8063 100644 --- a/keyboards/dumbpad/v0x/keyboard.json +++ b/keyboards/dumbpad/v0x/keyboard.json @@ -15,7 +15,8 @@ "bootmagic": { "matrix": [3, 0] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v0x/keymaps/default/keymap.c b/keyboards/dumbpad/v0x/keymaps/default/keymap.c index 13c8777274..9787c24f0f 100644 --- a/keyboards/dumbpad/v0x/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v0x/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_BSPC, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_TAB, - MS_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER + KC_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER ), /* SUB LAYER @@ -87,9 +87,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v0x/v0x.c b/keyboards/dumbpad/v0x/v0x.c index ba68a75eaa..5a61096606 100644 --- a/keyboards/dumbpad/v0x/v0x.c +++ b/keyboards/dumbpad/v0x/v0x.c @@ -69,9 +69,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v0x_dualencoder/keyboard.json b/keyboards/dumbpad/v0x_dualencoder/keyboard.json index 0754f301b7..71b501cedd 100644 --- a/keyboards/dumbpad/v0x_dualencoder/keyboard.json +++ b/keyboards/dumbpad/v0x_dualencoder/keyboard.json @@ -16,7 +16,8 @@ "bootmagic": { "matrix": [3, 0] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c b/keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c index c7f7d6fcee..28b71cd8e7 100644 --- a/keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c @@ -95,9 +95,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c index 26ebb70acd..1c622f7bf4 100644 --- a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c +++ b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c @@ -69,9 +69,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v0x_right/keyboard.json b/keyboards/dumbpad/v0x_right/keyboard.json index f581dd8e87..883f2f785d 100644 --- a/keyboards/dumbpad/v0x_right/keyboard.json +++ b/keyboards/dumbpad/v0x_right/keyboard.json @@ -15,7 +15,8 @@ "bootmagic": { "matrix": [3, 4] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v0x_right/keymaps/default/keymap.c b/keyboards/dumbpad/v0x_right/keymaps/default/keymap.c index cb916b7edc..a0f4e3a669 100644 --- a/keyboards/dumbpad/v0x_right/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v0x_right/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_BSPC, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_TAB, - TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER, MS_BTN1 + TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER, KC_BTN1 ), /* SUB LAYER @@ -87,9 +87,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v0x_right/v0x_right.c b/keyboards/dumbpad/v0x_right/v0x_right.c index ba68a75eaa..5a61096606 100644 --- a/keyboards/dumbpad/v0x_right/v0x_right.c +++ b/keyboards/dumbpad/v0x_right/v0x_right.c @@ -69,9 +69,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x/keyboard.json b/keyboards/dumbpad/v1x/keyboard.json index c78bbfef04..9ab78e1a9f 100644 --- a/keyboards/dumbpad/v1x/keyboard.json +++ b/keyboards/dumbpad/v1x/keyboard.json @@ -15,7 +15,8 @@ "bootmagic": { "matrix": [3, 0] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v1x/keymaps/default/keymap.c b/keyboards/dumbpad/v1x/keymaps/default/keymap.c index 13c8777274..9787c24f0f 100644 --- a/keyboards/dumbpad/v1x/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v1x/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_BSPC, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_TAB, - MS_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER + KC_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER ), /* SUB LAYER @@ -87,9 +87,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x/v1x.c b/keyboards/dumbpad/v1x/v1x.c index 650f9230cf..3fec6cb7e6 100644 --- a/keyboards/dumbpad/v1x/v1x.c +++ b/keyboards/dumbpad/v1x/v1x.c @@ -81,9 +81,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x_dualencoder/keyboard.json b/keyboards/dumbpad/v1x_dualencoder/keyboard.json index 413d1970a0..f3aeafe625 100644 --- a/keyboards/dumbpad/v1x_dualencoder/keyboard.json +++ b/keyboards/dumbpad/v1x_dualencoder/keyboard.json @@ -16,7 +16,8 @@ "bootmagic": { "matrix": [3, 0] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c b/keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c index d144278f8b..805815253a 100644 --- a/keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_BSPC, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_TAB, - MS_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER + KC_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER ), /* SUB LAYER @@ -95,9 +95,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c index f4aef72f46..31137ce775 100644 --- a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c +++ b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c @@ -81,9 +81,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x_oled/keyboard.json b/keyboards/dumbpad/v1x_oled/keyboard.json index 6547b9ca39..3a437699b8 100644 --- a/keyboards/dumbpad/v1x_oled/keyboard.json +++ b/keyboards/dumbpad/v1x_oled/keyboard.json @@ -13,7 +13,8 @@ {"pin_a": "E6", "pin_b": "D7"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/dumbpad/v1x_right/keyboard.json b/keyboards/dumbpad/v1x_right/keyboard.json index b9a62f2e69..583d60bc5d 100644 --- a/keyboards/dumbpad/v1x_right/keyboard.json +++ b/keyboards/dumbpad/v1x_right/keyboard.json @@ -15,7 +15,8 @@ "bootmagic": { "matrix": [3, 4] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/dumbpad/v1x_right/keymaps/default/keymap.c b/keyboards/dumbpad/v1x_right/keymaps/default/keymap.c index cb916b7edc..a0f4e3a669 100644 --- a/keyboards/dumbpad/v1x_right/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v1x_right/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_BSPC, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_TAB, - TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER, MS_BTN1 + TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER, KC_BTN1 ), /* SUB LAYER @@ -87,9 +87,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case 0: // main layer - move mouse right (CW) and left (CCW) if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v1x_right/v1x_right.c b/keyboards/dumbpad/v1x_right/v1x_right.c index 650f9230cf..3fec6cb7e6 100644 --- a/keyboards/dumbpad/v1x_right/v1x_right.c +++ b/keyboards/dumbpad/v1x_right/v1x_right.c @@ -81,9 +81,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch (get_highest_layer(layer_state)) { case 0: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json index 58b8da5b3a..7ea29cd9ad 100644 --- a/keyboards/dumbpad/v3x/keyboard.json +++ b/keyboards/dumbpad/v3x/keyboard.json @@ -55,7 +55,8 @@ "ws2812": { "pin": "D1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": false, diff --git a/keyboards/dumbpad/v3x/keymaps/default/keymap.c b/keyboards/dumbpad/v3x/keymaps/default/keymap.c index bbd9687ea9..0c65fac187 100644 --- a/keyboards/dumbpad/v3x/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v3x/keymaps/default/keymap.c @@ -50,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { \-----------------------------------------------------' */ [1] = LAYOUT( - RM_TOGG, RM_VALD, RM_VALU, QK_BOOT, - KC_NO, RM_HUED, RM_HUEU, KC_NO, - KC_NO, RM_SATD, RM_SATU, KC_NO, - KC_NO, _______, RM_SPDD, RM_SPDU, KC_NO + RGB_TOG, RGB_VAD, RGB_VAI, QK_BOOT, + KC_NO, RGB_HUD, RGB_HUI, KC_NO, + KC_NO, RGB_SAD, RGB_SAI, KC_NO, + KC_NO, _______, RGB_SPD, RGB_SPI, KC_NO ), }; // clang-format on diff --git a/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json index c6834b5660..83b285786d 100644 --- a/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json @@ -20,20 +20,20 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_PREV", "RM_NEXT", "RM_TOGG", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_RMOD","RGB_MOD", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" ] ], "author":"dkjer", diff --git a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json index c19a834337..fc2a11b35c 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json @@ -18,18 +18,18 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_APP", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" ] ], "author":"J-Sully", diff --git a/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json index 987886e72d..f3ecd2cc9b 100644 --- a/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json @@ -18,18 +18,18 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_APP", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" ] ], "author":"ebastler", diff --git a/keyboards/durgod/dgk6x/rules.mk b/keyboards/durgod/dgk6x/rules.mk index c74ac83e91..597f5bbcf9 100644 --- a/keyboards/durgod/dgk6x/rules.mk +++ b/keyboards/durgod/dgk6x/rules.mk @@ -1,2 +1,4 @@ # Do not put the microcontroller into power saving mode NO_SUSPEND_POWER_DOWN = yes + +DEFAULT_FOLDER=durgod/dgk6x/hades_ansi diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json index 8acd302a05..ff3f85d9e4 100644 --- a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json @@ -18,16 +18,16 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", - "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", + "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS" ], [ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "RM_SATU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "RM_HUED", "RM_SATD", "RM_HUEU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "RGB_SAI", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "RGB_HUD", "RGB_SAD", "RGB_HUI", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "KC_TRNS", "KC_TRNS", "XXXXXXX" ] diff --git a/keyboards/durgod/galaxy/rules.mk b/keyboards/durgod/galaxy/rules.mk new file mode 100644 index 0000000000..ff1e1ff205 --- /dev/null +++ b/keyboards/durgod/galaxy/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=durgod/dgk6x/galaxy diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md index 7483dc5ddf..1f39f79513 100644 --- a/keyboards/durgod/k310/readme.md +++ b/keyboards/durgod/k310/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) +* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page") * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) ## Instructions diff --git a/keyboards/durgod/k320/base/keyboard.json b/keyboards/durgod/k320/base/keyboard.json index 243f00e834..89ea273baf 100644 --- a/keyboards/durgod/k320/base/keyboard.json +++ b/keyboards/durgod/k320/base/keyboard.json @@ -4,6 +4,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md index fd4752c184..ce5ae3211d 100644 --- a/keyboards/durgod/k320/readme.md +++ b/keyboards/durgod/k320/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) +* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page") * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) ## Instructions @@ -15,11 +15,11 @@ keyboard without backlight. This supports both the ANSI and ISO variants. Make command example for this keyboard (after setting up your build environment): - make durgod/k320/base:default + make durgod/k3x0/k320/base:default Flashing example for this keyboard: - make durgod/k320/base:default:flash + make durgod/k3x0/k320/base: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). diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index e4fa680781..90e9602e71 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -5,8 +5,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: - * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) - * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) + * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Taurus K310 Product Page | Durgod.com") + * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Taurus K320 Product Page | Durgod.com") * Hardware Availability: * [K310 on Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) * [K320 on Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) @@ -16,8 +16,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. ### Build Instructions for building the K310 and K320 firmware can be found here: -* [K310](../k310/readme.md) -* [K320](../k320/readme.md) +* [K310](k310/readme.md) +* [K320](k320/readme.md) ### Initial Flash @@ -67,10 +67,10 @@ dfu-util -a 0 -d 0483:DF11 -s 0x08000000 -U k3x0_original.bin ```bash # k310 -qmk flash -kb durgod/k310 -km default +qmk flash -kb durgod/k3x0/k310 -km default # k320 -qmk flash -kb durgod/k320 -km default +qmk flash -kb durgod/k3x0/k320 -km default ``` ### Subsequent Flashing diff --git a/keyboards/durgod/venus/rules.mk b/keyboards/durgod/venus/rules.mk new file mode 100644 index 0000000000..57acf2a48c --- /dev/null +++ b/keyboards/durgod/venus/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=durgod/dgk6x/venus diff --git a/keyboards/dyz/dyz40/keyboard.json b/keyboards/dyz/dyz40/keyboard.json index ec8e4e8111..4916ec7ecd 100644 --- a/keyboards/dyz/dyz40/keyboard.json +++ b/keyboards/dyz/dyz40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/dyz60/keyboard.json b/keyboards/dyz/dyz60/keyboard.json index 6caeecd28c..824e23d709 100644 --- a/keyboards/dyz/dyz60/keyboard.json +++ b/keyboards/dyz/dyz60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/dyz60_hs/keyboard.json b/keyboards/dyz/dyz60_hs/keyboard.json index 3afa3fea23..637f02d910 100644 --- a/keyboards/dyz/dyz60_hs/keyboard.json +++ b/keyboards/dyz/dyz60_hs/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -49,16 +51,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -273,7 +266,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dyz/dyz_tkl/keyboard.json b/keyboards/dyz/dyz_tkl/keyboard.json index 584e22fdd4..4d8bba1710 100644 --- a/keyboards/dyz/dyz_tkl/keyboard.json +++ b/keyboards/dyz/dyz_tkl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dyz/selka40/keyboard.json b/keyboards/dyz/selka40/keyboard.json index dc117b3b72..4a8df19633 100644 --- a/keyboards/dyz/selka40/keyboard.json +++ b/keyboards/dyz/selka40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/synthesis60/keyboard.json b/keyboards/dyz/synthesis60/keyboard.json index 704b87f007..cdb4760381 100644 --- a/keyboards/dyz/synthesis60/keyboard.json +++ b/keyboards/dyz/synthesis60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dz60/keyboard.json b/keyboards/dz60/keyboard.json index 52ad5484ae..e3e7495958 100644 --- a/keyboards/dz60/keyboard.json +++ b/keyboards/dz60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ60", "manufacturer": "KBDFans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x445A", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -57,18 +60,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_arrow", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_abnt2" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_abnt2", "60_tsangan_hhkb"], "layouts": { "LAYOUT": { "layout": [ @@ -1433,7 +1425,7 @@ {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c b/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c index 4d1815eea8..1479d14398 100644 --- a/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c +++ b/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c @@ -93,8 +93,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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_DEL, _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, - _______, MS_LEFT,MS_DOWN,MS_UP, MS_RGHT,_______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, - _______, _______, _______, _______, _______, MS_BTN1,MS_BTN2,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, + _______, KC_MS_LEFT,KC_MS_DOWN,KC_MS_UP, KC_MS_RIGHT,_______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, KC_MS_BTN1,KC_MS_BTN2,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), /* Keymap NL: Numpad Layer diff --git a/keyboards/dztech/bocc/keyboard.json b/keyboards/dztech/bocc/keyboard.json index 7c2be5645f..a6208b2bf7 100644 --- a/keyboards/dztech/bocc/keyboard.json +++ b/keyboards/dztech/bocc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BOCC", "manufacturer": "DZTECH", + "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x445A", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/duo_s/keyboard.json b/keyboards/dztech/duo_s/keyboard.json index 512d4c3256..7bf8b0bfdd 100644 --- a/keyboards/dztech/duo_s/keyboard.json +++ b/keyboards/dztech/duo_s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DUO-S", "manufacturer": "DZTECH", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index 1bcc77c605..17439e3443 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ60RGB", "manufacturer": "DZTECH", + "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c index b98886ed1d..87e64544e0 100644 --- a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = 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_DEL, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/dztech/dz60rgb_ansi/info.json b/keyboards/dztech/dz60rgb_ansi/info.json index dddbd47315..12fefa5d87 100644 --- a/keyboards/dztech/dz60rgb_ansi/info.json +++ b/keyboards/dztech/dz60rgb_ansi/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ60RGB_ANSI", "manufacturer": "DZTECH", + "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c index b13c115528..339d2fa428 100644 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/dztech/dz60rgb_wkl/info.json b/keyboards/dztech/dz60rgb_wkl/info.json index a4dfb63c7a..52685db180 100644 --- a/keyboards/dztech/dz60rgb_wkl/info.json +++ b/keyboards/dztech/dz60rgb_wkl/info.json @@ -1,17 +1,17 @@ { "keyboard_name": "DZ60RGB_WKL", "manufacturer": "DZTECH", + "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_tsangan_hhkb"], "layout_aliases": { - "LAYOUT_HHKB": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_HHKB": "LAYOUT_60_tsangan_hhkb" }, "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c index 7382750d16..bf02a301be 100644 --- a/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c @@ -1,24 +1,24 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, _______, _______, _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [2] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/dztech/dz60v2/keyboard.json b/keyboards/dztech/dz60v2/keyboard.json index 4e0de8ae5c..5288939608 100644 --- a/keyboards/dztech/dz60v2/keyboard.json +++ b/keyboards/dztech/dz60v2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -51,18 +53,14 @@ "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb", "64_ansi", "64_iso" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT": { "layout": [ @@ -1820,7 +1818,7 @@ { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/dztech/dz64rgb/keyboard.json b/keyboards/dztech/dz64rgb/keyboard.json index ef95b52400..ea22af59db 100644 --- a/keyboards/dztech/dz64rgb/keyboard.json +++ b/keyboards/dztech/dz64rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ64RGB", "manufacturer": "DZTECH", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/dz64rgb/keymaps/default/keymap.c b/keyboards/dztech/dz64rgb/keymaps/default/keymap.c index 6d9b275513..032473f88f 100644 --- a/keyboards/dztech/dz64rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz64rgb/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/dztech/dz65rgb/info.json b/keyboards/dztech/dz65rgb/info.json index 39e1242af4..d3a127251b 100644 --- a/keyboards/dztech/dz65rgb/info.json +++ b/keyboards/dztech/dz65rgb/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ65RGB", "manufacturer": "DZTECH", + "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz65rgb/keymaps/default/keymap.c b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c index ae73fdc0a7..548d55799a 100644 --- a/keyboards/dztech/dz65rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS), RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS), RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/dztech/dz65rgb/v1/keyboard.json b/keyboards/dztech/dz65rgb/v1/keyboard.json index 32b830052d..6dcc88b59e 100644 --- a/keyboards/dztech/dz65rgb/v1/keyboard.json +++ b/keyboards/dztech/dz65rgb/v1/keyboard.json @@ -46,6 +46,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz65rgb/v2/keyboard.json b/keyboards/dztech/dz65rgb/v2/keyboard.json index bf7331e101..16d38a3af5 100644 --- a/keyboards/dztech/dz65rgb/v2/keyboard.json +++ b/keyboards/dztech/dz65rgb/v2/keyboard.json @@ -46,6 +46,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz96/keyboard.json b/keyboards/dztech/dz96/keyboard.json index 0d37f09ff0..ef2de26a70 100644 --- a/keyboards/dztech/dz96/keyboard.json +++ b/keyboards/dztech/dz96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DZ96", "manufacturer": "DZTECH", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x445A", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/dztech/endless80/keyboard.json b/keyboards/dztech/endless80/keyboard.json index 54ca7c12a7..9387b67ead 100644 --- a/keyboards/dztech/endless80/keyboard.json +++ b/keyboards/dztech/endless80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "endless80", "manufacturer": "dztech", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/mellow/keyboard.json b/keyboards/dztech/mellow/keyboard.json deleted file mode 100644 index 565c2b0995..0000000000 --- a/keyboards/dztech/mellow/keyboard.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "manufacturer": "dztech", - "keyboard_name": "mellow", - "maintainer": "moyi4681", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "GP25" - }, - "matrix_pins": { - "cols": ["GP29", "GP28", "GP27", "GP26", "GP0", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5"], - "rows": ["GP1", "GP2", "GP3", "GP4", "GP24"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0007", - "vid": "0x445A" - }, - "community_layouts": [ - "60_ansi", - "60_hhkb", - "60_iso" - ], - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } - ] - }, - "LAYOUT_60_iso": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [1, 13], "x": 12.75, "y": 2 }, - { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [2, 12], "x": 14, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [4, 1], "x": 1.5, "y": 4 }, - { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, - { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, - { "matrix": [4, 11], "x": 12.5, "y": 4 } - ] - }, - "LAYOUT_all": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [2, 12], "x": 14, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } - ] - } - } -} diff --git a/keyboards/dztech/mellow/keymaps/ansi/keymap.c b/keyboards/dztech/mellow/keymaps/ansi/keymap.c deleted file mode 100644 index 867dda96db..0000000000 --- a/keyboards/dztech/mellow/keymaps/ansi/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2024 DZTECH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_ansi( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL - ) -}; diff --git a/keyboards/dztech/mellow/keymaps/default/keymap.c b/keyboards/dztech/mellow/keymaps/default/keymap.c deleted file mode 100644 index a2f0f15665..0000000000 --- a/keyboards/dztech/mellow/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2024 DZTECH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - #include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ - * ├────┼───┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_all( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL - ) -}; diff --git a/keyboards/dztech/mellow/keymaps/hhkb/keymap.c b/keyboards/dztech/mellow/keymaps/hhkb/keymap.c deleted file mode 100644 index 3dfa568b18..0000000000 --- a/keyboards/dztech/mellow/keymaps/hhkb/keymap.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2024 DZTECH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ - * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ - * │Alt│ GUI │ │ GUI │Alt│ - * └───┴─────┴───────────────────────────┴─────┴───┘ - */ - [0] = LAYOUT_60_hhkb( - 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT - ), - - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Pwr│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│ - * ├───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┘ - * │Caps │ Q │ W │ E │ R │ T │ Y │ U │PSc│Scr│Pse│ ↑ │ ] │ Bspc│ - * └─────┘┌───┬───┬───┐──┴┬──┴┌───┬──┴┬──┴┬──┴┬──┴┬──┴┬────────┐ - * │ Ctrl │Vl-│Vl+│Mut│ F │ G │ * │ / │Hom│PgU│ ← │ → │ Enter │ - * ├──────└───┴───┴───┘─┬─┴─┬─└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┘ - * │ Shift │ Z │ X │ C │ V │ B │ + │ - │End│PgD│ ↓ │ Shift│MO1│ - * └─────┬──┴┬──┴──┬┴───┴───┴───└───┴───┴───┴───┴───┘┬───┬─┴───┘ - * │Alt│ GUI │ │ GUI │Alt│ - * └───┴─────┴───────────────────────────┴─────┴───┘ - */ - [1] = LAYOUT_60_hhkb( - KC_PWR, 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_DEL, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, - _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/dztech/mellow/keymaps/iso/keymap.c b/keyboards/dztech/mellow/keymaps/iso/keymap.c deleted file mode 100644 index 45b9b27465..0000000000 --- a/keyboards/dztech/mellow/keymaps/iso/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2024 DZTECH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ - * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_iso( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL - ) -}; diff --git a/keyboards/dztech/mellow/readme.md b/keyboards/dztech/mellow/readme.md deleted file mode 100644 index e8dfa6a26c..0000000000 --- a/keyboards/dztech/mellow/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# dztech/mellow - -A customizable 60% keyboard. - -* Keyboard Maintainer: [dztech](https://github.com/moyi4681) -* Hardware Supported: mellow -* Hardware Availability: [KBDfans](https://kbdfans.com/) - -Make example for this keyboard (after setting up your build environment): - - make dztech/mellow:default - -Flashing example for this keyboard: - - make dztech/mellow:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dztech/pluto/keyboard.json b/keyboards/dztech/pluto/keyboard.json index 1e1b577293..d64e941346 100644 --- a/keyboards/dztech/pluto/keyboard.json +++ b/keyboards/dztech/pluto/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dztech/tofu/ii/keymaps/default/keymap.c b/keyboards/dztech/tofu/ii/keymaps/default/keymap.c index f6c9387968..2f5a6316e4 100644 --- a/keyboards/dztech/tofu/ii/keymaps/default/keymap.c +++ b/keyboards/dztech/tofu/ii/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/dztech/tofu/ii/rules.mk b/keyboards/dztech/tofu/ii/rules.mk new file mode 100644 index 0000000000..c08cfdaae9 --- /dev/null +++ b/keyboards/dztech/tofu/ii/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dztech/tofu/ii/v1 diff --git a/keyboards/dztech/tofu/ii/v1/keyboard.json b/keyboards/dztech/tofu/ii/v1/keyboard.json index ca1d5608c1..60ccc5ec9b 100644 --- a/keyboards/dztech/tofu/ii/v1/keyboard.json +++ b/keyboards/dztech/tofu/ii/v1/keyboard.json @@ -3,6 +3,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu/jr/keymaps/default/keymap.c b/keyboards/dztech/tofu/jr/keymaps/default/keymap.c index cf7b90b55a..406c8f7fd5 100644 --- a/keyboards/dztech/tofu/jr/keymaps/default/keymap.c +++ b/keyboards/dztech/tofu/jr/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/dztech/tofu/jr/rules.mk b/keyboards/dztech/tofu/jr/rules.mk new file mode 100644 index 0000000000..7333c613fd --- /dev/null +++ b/keyboards/dztech/tofu/jr/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = dztech/tofu/jr/v1 diff --git a/keyboards/dztech/tofu/jr/v1/keyboard.json b/keyboards/dztech/tofu/jr/v1/keyboard.json index 5eb20be00d..12930f65d0 100644 --- a/keyboards/dztech/tofu/jr/v1/keyboard.json +++ b/keyboards/dztech/tofu/jr/v1/keyboard.json @@ -4,6 +4,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu/jr/v2/keyboard.json b/keyboards/dztech/tofu/jr/v2/keyboard.json index d8de9b956f..6a60565b22 100644 --- a/keyboards/dztech/tofu/jr/v2/keyboard.json +++ b/keyboards/dztech/tofu/jr/v2/keyboard.json @@ -4,6 +4,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu60/keyboard.json b/keyboards/dztech/tofu60/keyboard.json index 6e6a047733..57c57604d1 100644 --- a/keyboards/dztech/tofu60/keyboard.json +++ b/keyboards/dztech/tofu60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -27,16 +29,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -383,7 +381,7 @@ { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/e88/keyboard.json b/keyboards/e88/keyboard.json index 941eb42729..32ee42aefd 100644 --- a/keyboards/e88/keyboard.json +++ b/keyboards/e88/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "e88", "manufacturer": "Pink Labs", + "url": "", "maintainer": "2-n", "usb": { "vid": "0x4705", diff --git a/keyboards/ealdin/quadrant/keyboard.json b/keyboards/ealdin/quadrant/keyboard.json index eafd9c57fe..7a8bcf0db2 100644 --- a/keyboards/ealdin/quadrant/keyboard.json +++ b/keyboards/ealdin/quadrant/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/earth_rover/keyboard.json b/keyboards/earth_rover/keyboard.json index b3f5d2bae4..0c760f612c 100644 --- a/keyboards/earth_rover/keyboard.json +++ b/keyboards/earth_rover/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -25,7 +27,8 @@ "rows": ["D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/eason/aeroboard/keyboard.json b/keyboards/eason/aeroboard/keyboard.json index d48b9819d0..3d8c2a6db6 100644 --- a/keyboards/eason/aeroboard/keyboard.json +++ b/keyboards/eason/aeroboard/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "AeroBoard", "manufacturer": "Eason", + "url": "", "maintainer": "EasonQian1", "usb": { "vid": "0x8954", "pid": "0x8870", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "led_count": 20, @@ -33,6 +30,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/eason/capsule65/keyboard.json b/keyboards/eason/capsule65/keyboard.json index cc33904c55..87b7b94568 100644 --- a/keyboards/eason/capsule65/keyboard.json +++ b/keyboards/eason/capsule65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "capsule65", "manufacturer": "eason", + "url": "", "maintainer": "EasonQian1", "usb": { "vid": "0xF21E", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/eason/greatsword80/keyboard.json b/keyboards/eason/greatsword80/keyboard.json index 5f0daebd45..6500fac978 100644 --- a/keyboards/eason/greatsword80/keyboard.json +++ b/keyboards/eason/greatsword80/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/eason/meow65/keyboard.json b/keyboards/eason/meow65/keyboard.json index 20285b66c6..340a741040 100644 --- a/keyboards/eason/meow65/keyboard.json +++ b/keyboards/eason/meow65/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Meow65", "manufacturer": "Eason", + "url": "", "maintainer": "Eason", "usb": { "vid": "0x68F4", "pid": "0x70A0", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/eason/void65h/keyboard.json b/keyboards/eason/void65h/keyboard.json index 484b939871..7b6a7fe2fb 100644 --- a/keyboards/eason/void65h/keyboard.json +++ b/keyboards/eason/void65h/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Void65h", "manufacturer": "Eason", + "url": "", "maintainer": "Eason", "usb": { "vid": "0x51D7", "pid": "0x5517", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ebastler/e80_1800/keyboard.json b/keyboards/ebastler/e80_1800/keyboard.json index 5b409c7074..dfb669e72e 100644 --- a/keyboards/ebastler/e80_1800/keyboard.json +++ b/keyboards/ebastler/e80_1800/keyboard.json @@ -16,6 +16,8 @@ "extrakey": true, "backlight": true, "nkro": true, + "command": false, + "console": false, "mousekey": false }, "matrix_pins": { @@ -25,7 +27,8 @@ "backlight": { "breathing": true, "levels": 5, - "pin": "A9" + "pin": "A9", + "on_state": 1 }, "indicators": { "num_lock": "B6", diff --git a/keyboards/ebastler/isometria_75/rev1/keyboard.json b/keyboards/ebastler/isometria_75/rev1/keyboard.json index e7a6e01f3d..cf36d60df1 100644 --- a/keyboards/ebastler/isometria_75/rev1/keyboard.json +++ b/keyboards/ebastler/isometria_75/rev1/keyboard.json @@ -24,6 +24,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/eco/info.json b/keyboards/eco/info.json index a234ea2399..1bb5c79eb2 100644 --- a/keyboards/eco/info.json +++ b/keyboards/eco/info.json @@ -1,12 +1,14 @@ { "keyboard_name": "The ECO Keyboard", "manufacturer": "Bishop Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", "pid": "0x6006" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "qmk": { "locking": { "enabled": true, diff --git a/keyboards/eco/rev1/keyboard.json b/keyboards/eco/rev1/keyboard.json index e241774e81..1b3cb5f8df 100644 --- a/keyboards/eco/rev1/keyboard.json +++ b/keyboards/eco/rev1/keyboard.json @@ -11,6 +11,7 @@ "backlight": false, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/eco/rev2/keyboard.json b/keyboards/eco/rev2/keyboard.json index ca8709a266..8effdd85e5 100644 --- a/keyboards/eco/rev2/keyboard.json +++ b/keyboards/eco/rev2/keyboard.json @@ -11,6 +11,7 @@ "backlight": false, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/eco/rules.mk b/keyboards/eco/rules.mk new file mode 100644 index 0000000000..a3d419658b --- /dev/null +++ b/keyboards/eco/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = eco/rev2 diff --git a/keyboards/edc40/keyboard.json b/keyboards/edc40/keyboard.json index 33998f4747..7ad2fdd3b8 100644 --- a/keyboards/edc40/keyboard.json +++ b/keyboards/edc40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "edc40", "manufacturer": "OJ", + "url": "", "maintainer": "ojthetiny", "usb": { "vid": "0x4F4A", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/edda/keyboard.json b/keyboards/edda/keyboard.json index a0f91429af..4a997abeac 100644 --- a/keyboards/edda/keyboard.json +++ b/keyboards/edda/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/edi/hardlight/mk2/halconf.h b/keyboards/edi/hardlight/mk2/halconf.h index f7b5100b2c..498f31a919 100644 --- a/keyboards/edi/hardlight/mk2/halconf.h +++ b/keyboards/edi/hardlight/mk2/halconf.h @@ -25,5 +25,8 @@ along with this program. If not, see . // Activate Serial Peripheral Interface #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next + +#include_next \ No newline at end of file diff --git a/keyboards/edi/standaside/keyboard.json b/keyboards/edi/standaside/keyboard.json index 744f5fbe1e..410f8f693a 100644 --- a/keyboards/edi/standaside/keyboard.json +++ b/keyboards/edi/standaside/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stand Aside", "manufacturer": "Fate Everywhere", + "url": "", "maintainer": "fateeverywhere", "usb": { "vid": "0xF7E0", diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index 0e510e282a..86ff284347 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -13,6 +13,7 @@ "val": 150 }, "driver": "ws2812", + "led_flush_limit": 16, "max_brightness": 200 }, "features": { diff --git a/keyboards/eek/keymaps/ledtest/keymap.c b/keyboards/eek/keymaps/ledtest/keymap.c index 232f928be4..3a6cc6f38c 100644 --- a/keyboards/eek/keymaps/ledtest/keymap.c +++ b/keyboards/eek/keymaps/ledtest/keymap.c @@ -44,9 +44,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ [_QUERTY] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, RGBRST, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, - KC_A, KC_S, KC_D, KC_F, KC_G, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, - KC_Z, KC_X, KC_C, KC_V, KC_B, RM_TOGG, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_Q, KC_W, KC_E, KC_R, KC_T, RGBRST, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, + KC_A, KC_S, KC_D, KC_F, KC_G, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, + KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, MO(_RAISE), OSM(MOD_LSFT) ), @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT_split_3x5_3( - RM_VALU, RM_SATU, RM_HUEU, RM_NEXT, RM_TOGG, _______, KC_F9, KC_F10, KC_F11, KC_F12, - RM_VALD, RM_SATD, RM_HUED, RM_PREV, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, + RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, RGB_TOG, _______, KC_F9, KC_F10, KC_F11, KC_F12, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/eek/rules.mk b/keyboards/eek/rules.mk new file mode 100644 index 0000000000..65b8265b53 --- /dev/null +++ b/keyboards/eek/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = eek/silk_down diff --git a/keyboards/efreet/keyboard.json b/keyboards/efreet/keyboard.json index 0e42253c47..7dac78cc39 100644 --- a/keyboards/efreet/keyboard.json +++ b/keyboards/efreet/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Efreet", "manufacturer": "Soran", + "url": "", "maintainer": "amberstarlight", "usb": { "vid": "0x534F", diff --git a/keyboards/eggsworks/egg58/keymaps/default/keymap.c b/keyboards/eggsworks/egg58/keymaps/default/keymap.c index aa46b90955..482a34c129 100644 --- a/keyboards/eggsworks/egg58/keymaps/default/keymap.c +++ b/keyboards/eggsworks/egg58/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_F12, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, RM_NEXT, RM_TOGG + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_MOD, RGB_TOG ) }; diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json index b1e48f1747..a7902af490 100644 --- a/keyboards/ein_60/keyboard.json +++ b/keyboards/ein_60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ein_60", "manufacturer": "klackygears", + "url": "", "maintainer": "klackygears", "usb": { "vid": "0x4A53", @@ -12,6 +13,7 @@ "val": 150 }, "driver": "ws2812", + "led_flush_limit": 16, "max_brightness": 200 }, "rgblight": { diff --git a/keyboards/ein_60/keymaps/default/keymap.c b/keyboards/ein_60/keymaps/default/keymap.c index 0df24cdcb6..038e8ce19a 100644 --- a/keyboards/ein_60/keymaps/default/keymap.c +++ b/keyboards/ein_60/keymaps/default/keymap.c @@ -92,8 +92,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `------' `-----------------------------------------' */ [_ADJUST] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, RGBRST, RM_NEXT, RM_VALU, RM_SATU, RM_HUEU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_SATD, RM_HUED, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, RGBRST, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json index 60b135b086..d1d321623e 100644 --- a/keyboards/elephant42/keyboard.json +++ b/keyboards/elephant42/keyboard.json @@ -54,7 +54,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": false, diff --git a/keyboards/emajesty/eiri/keyboard.json b/keyboards/emajesty/eiri/keyboard.json index 3dd0ab0888..6941bb921d 100644 --- a/keyboards/emajesty/eiri/keyboard.json +++ b/keyboards/emajesty/eiri/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -19,7 +21,8 @@ "rows": ["B4", "B5", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/emi20/keyboard.json b/keyboards/emi20/keyboard.json index 7a2b820549..56f13af875 100644 --- a/keyboards/emi20/keyboard.json +++ b/keyboards/emi20/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Emi20", "manufacturer": "Aquacylinder", + "url": "", "maintainer": "Aquacylinder", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json index 226ab34303..96f9391dcc 100644 --- a/keyboards/emptystring/nqg/keyboard.json +++ b/keyboards/emptystring/nqg/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NQG", "manufacturer": "emptystring", + "url": "", "maintainer": "culturalsnow", "usb": { "vid": "0x0076", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true @@ -18,7 +21,8 @@ "rows": ["B6", "B2", "B3", "B1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/eniigmakeyboards/ek60/keyboard.json b/keyboards/eniigmakeyboards/ek60/keyboard.json index 97f3469cd8..6446dbce34 100644 --- a/keyboards/eniigmakeyboards/ek60/keyboard.json +++ b/keyboards/eniigmakeyboards/ek60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "EK60", "manufacturer": "Eniigma Keyboards", + "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/eniigmakeyboards/ek65/keyboard.json b/keyboards/eniigmakeyboards/ek65/keyboard.json index 60fdc4db81..fa6ad3566a 100644 --- a/keyboards/eniigmakeyboards/ek65/keyboard.json +++ b/keyboards/eniigmakeyboards/ek65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "EK65", "manufacturer": "Eniigma Keyboards", + "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/eniigmakeyboards/ek87/keyboard.json b/keyboards/eniigmakeyboards/ek87/keyboard.json index c1ac8623b1..900a74a4b6 100644 --- a/keyboards/eniigmakeyboards/ek87/keyboard.json +++ b/keyboards/eniigmakeyboards/ek87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "EK87", "manufacturer": "Eniigma Keyboards", + "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/enmeseoz/enmepad3x4/keyboard.json b/keyboards/enmeseoz/enmepad3x4/keyboard.json deleted file mode 100644 index 50fccf9d8c..0000000000 --- a/keyboards/enmeseoz/enmepad3x4/keyboard.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "manufacturer": "ENMESEOZ", - "keyboard_name": "ENMEPAD", - "maintainer": "ENMESEOZ", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP26", "GP27", "GP28", "GP29"], - "rows": ["GP3", "GP4", "GP5"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_3x4": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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} - ] - } - } -} diff --git a/keyboards/enmeseoz/enmepad3x4/keymaps/default/keymap.c b/keyboards/enmeseoz/enmepad3x4/keymaps/default/keymap.c deleted file mode 100644 index 0f6fd6b302..0000000000 --- a/keyboards/enmeseoz/enmepad3x4/keymaps/default/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2025 ENMESEOZ - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - LAYOUT_3x4( - KC_0, KC_1, KC_4, KC_7, - KC_ENT, KC_2, KC_5, KC_8, - MO(1), KC_3, KC_6, KC_9 - ), - LAYOUT_3x4( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/enmeseoz/enmepad3x4/readme.md b/keyboards/enmeseoz/enmepad3x4/readme.md deleted file mode 100644 index dd7391daac..0000000000 --- a/keyboards/enmeseoz/enmepad3x4/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# ENMEPAD 3x4 - -ENMEPAD3x4 a compact macropad controlled with rp2040. - -* Keyboard Maintainer: [bkchqaeh](https://github.com/bkchqaeh) -* Hardware Supported: *rp2040* -* Hardware Availability: *Not available* - -Make example for this keyboard (after setting up your build environment): - - make enmeseoz/enmepad3x4:default - -Flashing example for this keyboard: - - make enmeseoz/enmepad3x4:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/enochchau/dropout/dropout.c b/keyboards/enochchau/dropout/dropout.c deleted file mode 100644 index bef939fed1..0000000000 --- a/keyboards/enochchau/dropout/dropout.c +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2025 Enoch Chau -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -// Mimic handle_backlight_caps_lock to use num lock indicator for backlight -void handle_backlight_num_lock(led_t led_state) { - // Use backlight as num_lock indicator - uint8_t bl_toggle_lvl = 0; - bool backlight_enabled = is_backlight_enabled(); - - if (led_state.num_lock && !backlight_enabled) { - // Turning num_lock ON and backlight is disabled in config - // Toggling backlight to the brightest level - bl_toggle_lvl = BACKLIGHT_LEVELS; - } else if (!led_state.num_lock && backlight_enabled) { - // Turning num_lock OFF and backlight is enabled in config - // Toggling backlight and restoring config level - bl_toggle_lvl = get_backlight_level(); - } - - backlight_set(bl_toggle_lvl); -} - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { -#ifdef BACKLIGHT_ENABLE - handle_backlight_num_lock(led_state); -#endif - } - return res; -} diff --git a/keyboards/enochchau/dropout/keyboard.json b/keyboards/enochchau/dropout/keyboard.json deleted file mode 100644 index f928181ef6..0000000000 --- a/keyboards/enochchau/dropout/keyboard.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "manufacturer": "enochchau", - "keyboard_name": "dropout", - "maintainer": "enochchau", - "backlight": { - "levels": 6, - "on_state": 0, - "pin": "B6" - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D0", "pin_b": "D4"} - ] - }, - "features": { - "backlight": true, - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B3", "B1", "D7", "C6"], - "rows": ["D1", "B2", "E6", "B4", "B5"] - }, - "tags": ["numpad"], - "url": "https://github.com/enochchau/dropout-numpad", - "usb": { - "device_version": "0.0.1", - "pid": "0x2800", - "vid": "0x9650" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Num Lock", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "/", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "*", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "Play", "matrix": [0, 3], "x": 3, "y": 0, "encoder": 0}, - {"label": "7", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "8", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "9", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "-", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "4", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "5", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "6", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "+", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "1", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "2", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "3", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "Enter", "matrix": [3, 3], "x": 3, "y": 3, "h": 2}, - {"label": "0", "matrix": [4, 0], "x": 0, "y": 4, "w": 2}, - {"label": ".", "matrix": [4, 2], "x": 2, "y": 4} - ] - } - } -} diff --git a/keyboards/enochchau/dropout/keymaps/default/keymap.c b/keyboards/enochchau/dropout/keymaps/default/keymap.c deleted file mode 100644 index 15d954987e..0000000000 --- a/keyboards/enochchau/dropout/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2025 Enoch Chau -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _LIGHT -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_BASE] = LAYOUT( - LT(1, KC_NUM), KC_PSLS, KC_PAST, KC_MPLY, - KC_P7, KC_P8, KC_P9, KC_PMNS, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, KC_PENT, - KC_P0, KC_PDOT - ), - - [_LIGHT] = LAYOUT( - _______, _______, _______, _______, - _______, BL_UP, BL_DOWN, BL_TOGG, - _______, _______, _______, _______, - _______, _______, _______, QK_BOOT, - _______, _______ - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, - [_LIGHT] = {ENCODER_CCW_CW(_______, _______)} -}; -#endif diff --git a/keyboards/enochchau/dropout/keymaps/default/rules.mk b/keyboards/enochchau/dropout/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/enochchau/dropout/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/enochchau/dropout/readme.md b/keyboards/enochchau/dropout/readme.md deleted file mode 100644 index 8d595e8606..0000000000 --- a/keyboards/enochchau/dropout/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# dropout - -![dropout](https://i.imgur.com/VTjdJ4e.jpeg) - -A numpad with a rotary encoder. - -* Keyboard Maintainer: [Enoch Chau](https://github.com/enochchau) -* Hardware Supported: PCB w/ Pro Micro compatible development board -* Hardware Availability: [Github](https://github.com/enochchau/dropout-numpad) - -Make example for this keyboard (after setting up your build environment): - - make enochchau/dropout:default - -Flashing example for this keyboard: - - make enochchau/dropout:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the micro-controller -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/enviousdesign/60f/keyboard.json b/keyboards/enviousdesign/60f/keyboard.json index 738211674e..c163ca5d6d 100644 --- a/keyboards/enviousdesign/60f/keyboard.json +++ b/keyboards/enviousdesign/60f/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/65m/keyboard.json b/keyboards/enviousdesign/65m/keyboard.json index e0661dc9fa..2328932462 100644 --- a/keyboards/enviousdesign/65m/keyboard.json +++ b/keyboards/enviousdesign/65m/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/commissions/mini1800/keyboard.json b/keyboards/enviousdesign/commissions/mini1800/keyboard.json index 5eb78225a0..9303e7af23 100644 --- a/keyboards/enviousdesign/commissions/mini1800/keyboard.json +++ b/keyboards/enviousdesign/commissions/mini1800/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rev0/keyboard.json b/keyboards/enviousdesign/delirium/rev0/keyboard.json index 75ff24a9ef..f1eb3dc59b 100644 --- a/keyboards/enviousdesign/delirium/rev0/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev0/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rev1/keyboard.json b/keyboards/enviousdesign/delirium/rev1/keyboard.json index 83001140bb..e548d02814 100644 --- a/keyboards/enviousdesign/delirium/rev1/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev1/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rgb/keyboard.json b/keyboards/enviousdesign/delirium/rgb/keyboard.json index 4ef1251e11..b6e0bb0e0c 100644 --- a/keyboards/enviousdesign/delirium/rgb/keyboard.json +++ b/keyboards/enviousdesign/delirium/rgb/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c index 1152fc70b3..d791874aff 100644 --- a/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c +++ b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c @@ -30,11 +30,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, RM_SATU, RM_VALU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SATD, RM_VALD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SPDD, RM_HUED + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, RGB_VAD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD ) }; diff --git a/keyboards/enviousdesign/mcro/rev1/keyboard.json b/keyboards/enviousdesign/mcro/rev1/keyboard.json index 6e846f9621..c7e4c38765 100644 --- a/keyboards/enviousdesign/mcro/rev1/keyboard.json +++ b/keyboards/enviousdesign/mcro/rev1/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ep/comsn/tf_longeboye/keymaps/default/keymap.c b/keyboards/ep/comsn/tf_longeboye/keymaps/default/keymap.c index ef0570a6b3..1fdcc9d4db 100644 --- a/keyboards/ep/comsn/tf_longeboye/keymaps/default/keymap.c +++ b/keyboards/ep/comsn/tf_longeboye/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, LSG(KC_S), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, SGUI(KC_S), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/epomaker/tide65/keyboard.json b/keyboards/epomaker/tide65/keyboard.json index 47561f8af0..60f1b46f70 100644 --- a/keyboards/epomaker/tide65/keyboard.json +++ b/keyboards/epomaker/tide65/keyboard.json @@ -141,17 +141,14 @@ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} ] }, + "url": "", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0xE463", "suspend_wakeup_delay": 1000, "vid": "0x342D" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/era/divine/keyboard.json b/keyboards/era/divine/keyboard.json index 83da9f0854..d02241da78 100644 --- a/keyboards/era/divine/keyboard.json +++ b/keyboards/era/divine/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,6 +31,7 @@ "rows": ["GP11", "GP10", "GP9", "GP8", "GP4"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/era/era65/keyboard.json b/keyboards/era/era65/keyboard.json index 2939418d72..d5fd612767 100644 --- a/keyboards/era/era65/keyboard.json +++ b/keyboards/era/era65/keyboard.json @@ -18,6 +18,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -30,6 +32,7 @@ "rows": ["GP1", "GP2", "GP4", "GP10", "GP11"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.4", "pid": "0x0001", diff --git a/keyboards/era/linx3/fave65s/keyboard.json b/keyboards/era/linx3/fave65s/keyboard.json index af44df9850..9bb1e45694 100644 --- a/keyboards/era/linx3/fave65s/keyboard.json +++ b/keyboards/era/linx3/fave65s/keyboard.json @@ -109,6 +109,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0011", @@ -135,7 +136,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, @@ -278,7 +279,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, @@ -419,7 +420,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, @@ -564,7 +565,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, diff --git a/keyboards/era/linx3/fave65s/keymaps/default/keymap.c b/keyboards/era/linx3/fave65s/keymaps/default/keymap.c index 278b466c9e..85eb4fb4ee 100644 --- a/keyboards/era/linx3/fave65s/keymaps/default/keymap.c +++ b/keyboards/era/linx3/fave65s/keymaps/default/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/era/linx3/n86/keyboard.json b/keyboards/era/linx3/n86/keyboard.json index 354a358470..c0b8b5525a 100644 --- a/keyboards/era/linx3/n86/keyboard.json +++ b/keyboards/era/linx3/n86/keyboard.json @@ -161,6 +161,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0008", diff --git a/keyboards/era/linx3/n87/keyboard.json b/keyboards/era/linx3/n87/keyboard.json index 5a03a5cbc5..548a37fadd 100644 --- a/keyboards/era/linx3/n87/keyboard.json +++ b/keyboards/era/linx3/n87/keyboard.json @@ -162,6 +162,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0009", diff --git a/keyboards/era/linx3/n8x/keyboard.json b/keyboards/era/linx3/n8x/keyboard.json index c018874bd1..ae0d608ffa 100644 --- a/keyboards/era/linx3/n8x/keyboard.json +++ b/keyboards/era/linx3/n8x/keyboard.json @@ -29,6 +29,7 @@ "rows": ["GP4", "GP5", "GP6", "GP7", "GP10", "GP9"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0007", diff --git a/keyboards/era/sirind/brick65/keymaps/default/keymap.c b/keyboards/era/sirind/brick65/keymaps/default/keymap.c index 7d55b76632..f77a7aabff 100644 --- a/keyboards/era/sirind/brick65/keymaps/default/keymap.c +++ b/keyboards/era/sirind/brick65/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/era/sirind/brick65s/brick65s.c b/keyboards/era/sirind/brick65s/brick65s.c deleted file mode 100644 index ae76a3968c..0000000000 --- a/keyboards/era/sirind/brick65s/brick65s.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(0, 200, 0, 0); - } else { - rgb_matrix_set_color(0, 0, 0, 0); - } - - if (host_keyboard_led_state().scroll_lock) { - rgb_matrix_set_color(1, 200, 0, 0); - } else { - rgb_matrix_set_color(1, 0, 0, 0); - } - - return true; -} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/config.h b/keyboards/era/sirind/brick65s/config.h deleted file mode 100644 index 6bcd581290..0000000000 --- a/keyboards/era/sirind/brick65s/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Reset */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json deleted file mode 100644 index 489b0da323..0000000000 --- a/keyboards/era/sirind/brick65s/keyboard.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "manufacturer": "SIRIND", - "keyboard_name": "Brick65S", - "maintainer": "eerraa", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP28", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP14", "GP0", "GP13", "GP12"], - "rows": ["GP27", "GP29", "GP23", "GP24", "GP25"] - }, - "processor": "RP2040", - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 8}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 8} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0012", - "vid": "0x4552" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP26" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15.25, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, - {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25}, - {"matrix": [4, 14], "x": 14.25, "y": 4.25}, - {"matrix": [4, 15], "x": 15.25, "y": 4.25} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15.25, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, - {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25}, - {"matrix": [4, 14], "x": 14.25, "y": 4.25}, - {"matrix": [4, 15], "x": 15.25, "y": 4.25} - ] - }, - "LAYOUT_ansi_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15.25, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, - {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.25, "y": 4.25}, - {"matrix": [4, 14], "x": 14.25, "y": 4.25}, - {"matrix": [4, 15], "x": 15.25, "y": 4.25} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/keymaps/default/keymap.c b/keyboards/era/sirind/brick65s/keymaps/default/keymap.c deleted file mode 100644 index 3798c980db..0000000000 --- a/keyboards/era/sirind/brick65s/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [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_BSPC, 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_BSLS, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_PGDN, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/era/sirind/brick65s/readme.md b/keyboards/era/sirind/brick65s/readme.md deleted file mode 100644 index e173ba4e73..0000000000 --- a/keyboards/era/sirind/brick65s/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Brick65S, Solder ver - -* Keyboard Maintainer: [ERA](https://github.com/eerraa) -* Hardware supported: SIRIND Brick65 -* Hardware availability: [Syryan](https://srind.mysoho.com/) - -Make example for this keyboard (after setting up your build environment): - - make era/sirind/brick65s:default - -Flashing example for this keyboard: - - make era/sirind/brick65s: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 ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/sirind/chickpad/config.h b/keyboards/era/sirind/chickpad/config.h deleted file mode 100644 index 4a8c7d1a6b..0000000000 --- a/keyboards/era/sirind/chickpad/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Reset */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/chickpad/keyboard.json b/keyboards/era/sirind/chickpad/keyboard.json deleted file mode 100644 index c662d8241a..0000000000 --- a/keyboards/era/sirind/chickpad/keyboard.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "manufacturer": "SIRIND", - "keyboard_name": "ChickPad", - "maintainer": "eerraa", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP23", "GP25", "GP3", "GP5", "GP4"], - "rows": ["GP18", "GP24", "GP22"] - }, - "processor": "RP2040", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 56, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 168, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 224, "y": 16, "flags": 1}, - {"matrix": [1, 3], "x": 168, "y": 32, "flags": 4}, - {"matrix": [1, 2], "x": 112, "y": 32, "flags": 4}, - {"matrix": [1, 1], "x": 56, "y": 32, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 28, "y": 64, "flags": 1}, - {"matrix": [2, 2], "x": 112, "y": 64, "flags": 4}, - {"matrix": [2, 3], "x": 168, "y": 64, "flags": 4}, - {"matrix": [2, 4], "x": 224, "y": 64, "flags": 4} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0015", - "vid": "0x4552" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP19" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0, "w": 1.25, "h": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1}, - {"matrix": [1, 3], "x": 3.25, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2} - ] - } - } -} diff --git a/keyboards/era/sirind/chickpad/keymaps/default/keymap.c b/keyboards/era/sirind/chickpad/keymaps/default/keymap.c deleted file mode 100644 index a208c4866c..0000000000 --- a/keyboards/era/sirind/chickpad/keymaps/default/keymap.c +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2024 QMK (@qmk) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_1 , KC_2 , KC_3 , KC_4 , KC_ENT , - KC_LSFT, KC_VOLU, KC_VOLD, KC_UP , - KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/keyboards/era/sirind/chickpad/readme.md b/keyboards/era/sirind/chickpad/readme.md deleted file mode 100644 index fd6ad72d4f..0000000000 --- a/keyboards/era/sirind/chickpad/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# ChickPad Unified - -![Chickpad](https://i.imgur.com/RAH7dyl.jpeg) - -* Keyboard Maintainer: [ERA](https://github.com/eerraa) -* Hardware supported: Chickpad PCB w/ RP2040 -* Hardware availability: [Syryan](https://srind.mysoho.com/) - -Make example for this keyboard (after setting up your build environment): - - make era/sirind/chickpad:default - -Flashing example for this keyboard: - - make era/sirind/chickpad: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 ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/keyboard.json b/keyboards/era/sirind/klein_hs/keyboard.json index 01395c3af1..6d677f6748 100644 --- a/keyboards/era/sirind/klein_hs/keyboard.json +++ b/keyboards/era/sirind/klein_hs/keyboard.json @@ -28,6 +28,7 @@ "rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP4", "GP13", "GP12"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/era/sirind/klein_sd/keyboard.json b/keyboards/era/sirind/klein_sd/keyboard.json index b2fbe33290..62b8f78865 100644 --- a/keyboards/era/sirind/klein_sd/keyboard.json +++ b/keyboards/era/sirind/klein_sd/keyboard.json @@ -149,6 +149,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0005", diff --git a/keyboards/era/sirind/tomak/keyboard.json b/keyboards/era/sirind/tomak/keyboard.json index 9f4993614b..cfd933bfe6 100644 --- a/keyboards/era/sirind/tomak/keyboard.json +++ b/keyboards/era/sirind/tomak/keyboard.json @@ -196,6 +196,7 @@ } } }, + "url": "", "usb": { "device_version": "1.0.2", "pid": "0x0006", diff --git a/keyboards/era/sirind/tomak/keymaps/default/keymap.c b/keyboards/era/sirind/tomak/keymaps/default/keymap.c index bf070bd9fa..62941ff8b7 100644 --- a/keyboards/era/sirind/tomak/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c index 7a1edcb15f..3823cc69c3 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c index 20d99d5fa7..87f3072a9e 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c index e5d064cb47..6b8fb56e33 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c index c85224d234..380689dd46 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79h/config.h b/keyboards/era/sirind/tomak79h/config.h deleted file mode 100644 index f04429bcd8..0000000000 --- a/keyboards/era/sirind/tomak79h/config.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Split configuration */ -#define USB_VBUS_PIN GP19 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 -#define SERIAL_USART_PIN_SWAP - -/* Reset */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79h/keyboard.json b/keyboards/era/sirind/tomak79h/keyboard.json deleted file mode 100644 index d1764bb668..0000000000 --- a/keyboards/era/sirind/tomak79h/keyboard.json +++ /dev/null @@ -1,392 +0,0 @@ -{ - "manufacturer": "SIRIND", - "keyboard_name": "Tomak79H", - "maintainer": "eerraa", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP29", "GP9", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", null], - "rows": ["GP24", "GP8", "GP26", "GP25", "GP27", "GP28"] - }, - "processor": "RP2040", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 33, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 47, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 93, "y": 0, "flags": 4}, - {"matrix": [1, 7], "x": 95, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 81, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 68, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 54, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 41, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 27, "y": 15, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, - {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 26, "flags": 4}, - {"matrix": [2, 2], "x": 34, "y": 26, "flags": 4}, - {"matrix": [2, 3], "x": 47, "y": 26, "flags": 4}, - {"matrix": [2, 4], "x": 61, "y": 26, "flags": 4}, - {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, - {"matrix": [2, 6], "x": 88, "y": 26, "flags": 4}, - {"matrix": [3, 6], "x": 92, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 78, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 37, "y": 38, "flags": 4}, - {"matrix": [3, 1], "x": 24, "y": 38, "flags": 4}, - {"matrix": [3, 0], "x": 5, "y": 38, "flags": 1}, - {"matrix": [3, 0], "x": 2, "y": 38, "flags": 1}, - {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, - {"matrix": [4, 2], "x": 31, "y": 49, "flags": 4}, - {"matrix": [4, 3], "x": 44, "y": 49, "flags": 4}, - {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, - {"matrix": [4, 5], "x": 71, "y": 49, "flags": 4}, - {"matrix": [4, 6], "x": 85, "y": 49, "flags": 4}, - {"matrix": [5, 6], "x": 93, "y": 64, "flags": 1}, - {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, - {"matrix": [5, 2], "x": 37, "y": 61, "flags": 1}, - {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, - {"matrix": [5, 0], "x": 3, "y": 61, "flags": 1}, - {"matrix": [6, 8], "x": 221, "y": 0, "flags": 4}, - {"matrix": [6, 7], "x": 205, "y": 0, "flags": 4}, - {"matrix": [6, 5], "x": 185, "y": 0, "flags": 4}, - {"matrix": [6, 4], "x": 171, "y": 0, "flags": 4}, - {"matrix": [6, 3], "x": 158, "y": 0, "flags": 4}, - {"matrix": [6, 2], "x": 144, "y": 0, "flags": 4}, - {"matrix": [6, 1], "x": 124, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 111, "y": 0, "flags": 4}, - {"matrix": [7, 0], "x": 109, "y": 15, "flags": 4}, - {"matrix": [7, 1], "x": 123, "y": 15, "flags": 4}, - {"matrix": [7, 2], "x": 136, "y": 15, "flags": 4}, - {"matrix": [7, 3], "x": 150, "y": 15, "flags": 4}, - {"matrix": [7, 4], "x": 163, "y": 15, "flags": 4}, - {"matrix": [7, 5], "x": 177, "y": 15, "flags": 4}, - {"matrix": [7, 7], "x": 197, "y": 15, "flags": 1}, - {"matrix": [7, 8], "x": 221, "y": 15, "flags": 1}, - {"matrix": [8, 8], "x": 221, "y": 26, "flags": 4}, - {"matrix": [8, 7], "x": 200, "y": 26, "flags": 4}, - {"matrix": [8, 6], "x": 184, "y": 26, "flags": 4}, - {"matrix": [8, 5], "x": 170, "y": 26, "flags": 4}, - {"matrix": [8, 4], "x": 157, "y": 26, "flags": 4}, - {"matrix": [8, 3], "x": 143, "y": 26, "flags": 4}, - {"matrix": [8, 2], "x": 130, "y": 26, "flags": 4}, - {"matrix": [8, 1], "x": 116, "y": 26, "flags": 4}, - {"matrix": [8, 0], "x": 102, "y": 26, "flags": 4}, - {"matrix": [9, 0], "x": 106, "y": 38, "flags": 4}, - {"matrix": [9, 1], "x": 119, "y": 38, "flags": 4}, - {"matrix": [9, 2], "x": 133, "y": 38, "flags": 4}, - {"matrix": [9, 3], "x": 147, "y": 38, "flags": 4}, - {"matrix": [9, 4], "x": 160, "y": 38, "flags": 4}, - {"matrix": [9, 5], "x": 174, "y": 38, "flags": 4}, - {"matrix": [9, 7], "x": 200, "y": 38, "flags": 1}, - {"matrix": [10, 7], "x": 208, "y": 52, "flags": 4}, - {"matrix": [10, 6], "x": 186, "y": 49, "flags": 1}, - {"matrix": [10, 5], "x": 167, "y": 49, "flags": 4}, - {"matrix": [10, 4], "x": 153, "y": 49, "flags": 4}, - {"matrix": [10, 3], "x": 140, "y": 49, "flags": 4}, - {"matrix": [10, 2], "x": 126, "y": 49, "flags": 4}, - {"matrix": [10, 1], "x": 113, "y": 49, "flags": 4}, - {"matrix": [10, 0], "x": 99, "y": 49, "flags": 4}, - {"matrix": [11, 2], "x": 123, "y": 64, "flags": 4}, - {"matrix": [11, 4], "x": 160, "y": 61, "flags": 1}, - {"matrix": [11, 5], "x": 177, "y": 61, "flags": 1}, - {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, - {"matrix": [11, 7], "x": 208, "y": 64, "flags": 4}, - {"matrix": [11, 8], "x": 221, "y": 64, "flags": 4}, - {"x": 224, "y": 53, "flags": 2}, - {"x": 224, "y": 51, "flags": 2}, - {"x": 224, "y": 49, "flags": 2}, - {"x": 224, "y": 48, "flags": 2}, - {"x": 224, "y": 46, "flags": 2}, - {"x": 224, "y": 44, "flags": 2}, - {"x": 224, "y": 43, "flags": 2}, - {"x": 224, "y": 41, "flags": 2}, - {"x": 224, "y": 39, "flags": 2} - ], - "sleep": true, - "split_count": [41, 55] - }, - "split": { - "bootmagic": { - "matrix": [6, 0] - }, - "enabled": true, - "handedness": { - "pin": "GP20" - }, - "matrix_pins": { - "right": { - "cols": ["GP25", "GP24", "GP23", "GP22", "GP7", "GP6", "GP5", "GP4", "GP2"], - "rows": ["GP29", "GP28", "GP27", "GP26", "GP11", "GP3"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "indicators": true, - "layer_state": true, - "matrix_state": true - } - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0014", - "vid": "0x4552" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP17" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 6], "x": 15.5, "y": 1.25}, - {"matrix": [7, 7], "x": 16.5, "y": 1.25}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 7], "x": 15.5, "y": 1.25}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c deleted file mode 100644 index d1434f8cd0..0000000000 --- a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = 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_F13, KC_PSCR, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79h/readme.md b/keyboards/era/sirind/tomak79h/readme.md deleted file mode 100644 index 528731ef12..0000000000 --- a/keyboards/era/sirind/tomak79h/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tomak79H, Hotswap ver - -![Tomak79H](https://i.imgur.com/yJ5n7ll.jpeg) - -Ergonomics Split Keyboard powered by RP2040. - -* Keyboard Maintainer: [ERA](https://github.com/eerraa) -* Hardware supported: SIRIND Tomak79 -* Hardware availability: [Syryan](https://srind.mysoho.com/) - -Make example for this keyboard (after setting up your build environment): - - make era/sirind/tomak79h:default - -Flashing example for this keyboard: - - make era/sirind/tomak79h: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 'top-left(ESC, F7)' key and plug in the keyboard. -* **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79h/tomak79h.c b/keyboards/era/sirind/tomak79h/tomak79h.c deleted file mode 100644 index 580a1ba68b..0000000000 --- a/keyboards/era/sirind/tomak79h/tomak79h.c +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 87; i <= 95; i++) { - rgb_matrix_set_color(i, 0, 128, 128); - } - } - return true; -} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/config.h b/keyboards/era/sirind/tomak79s/config.h deleted file mode 100644 index f04429bcd8..0000000000 --- a/keyboards/era/sirind/tomak79s/config.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Split configuration */ -#define USB_VBUS_PIN GP19 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 -#define SERIAL_USART_PIN_SWAP - -/* Reset */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json deleted file mode 100644 index 2e68ad788d..0000000000 --- a/keyboards/era/sirind/tomak79s/keyboard.json +++ /dev/null @@ -1,674 +0,0 @@ -{ - "manufacturer": "SIRIND", - "keyboard_name": "Tomak79S", - "maintainer": "eerraa", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP29", "GP22", "GP5", "GP6", "GP7", "GP4", "GP3", "GP2", null], - "rows": ["GP28", "GP23", "GP24", "GP25", "GP26", "GP27"] - }, - "processor": "RP2040", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 33, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 47, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 93, "y": 0, "flags": 4}, - {"matrix": [1, 7], "x": 95, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 81, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 68, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 54, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 41, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 27, "y": 15, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, - {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 26, "flags": 4}, - {"matrix": [2, 2], "x": 34, "y": 26, "flags": 4}, - {"matrix": [2, 3], "x": 47, "y": 26, "flags": 4}, - {"matrix": [2, 4], "x": 61, "y": 26, "flags": 4}, - {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, - {"matrix": [2, 6], "x": 88, "y": 26, "flags": 4}, - {"matrix": [3, 6], "x": 92, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 78, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 37, "y": 38, "flags": 4}, - {"matrix": [3, 1], "x": 24, "y": 38, "flags": 4}, - {"matrix": [3, 0], "x": 5, "y": 38, "flags": 1}, - {"matrix": [3, 0], "x": 2, "y": 38, "flags": 1}, - {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, - {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, - {"matrix": [4, 1], "x": 17, "y": 49, "flags": 4}, - {"matrix": [4, 2], "x": 31, "y": 49, "flags": 4}, - {"matrix": [4, 3], "x": 44, "y": 49, "flags": 4}, - {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, - {"matrix": [4, 5], "x": 71, "y": 49, "flags": 4}, - {"matrix": [4, 6], "x": 85, "y": 49, "flags": 4}, - {"matrix": [5, 6], "x": 93, "y": 64, "flags": 1}, - {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, - {"matrix": [5, 2], "x": 37, "y": 61, "flags": 1}, - {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, - {"matrix": [5, 0], "x": 3, "y": 61, "flags": 1}, - {"matrix": [6, 8], "x": 221, "y": 0, "flags": 4}, - {"matrix": [6, 7], "x": 205, "y": 0, "flags": 4}, - {"matrix": [6, 5], "x": 185, "y": 0, "flags": 4}, - {"matrix": [6, 4], "x": 171, "y": 0, "flags": 4}, - {"matrix": [6, 3], "x": 158, "y": 0, "flags": 4}, - {"matrix": [6, 2], "x": 144, "y": 0, "flags": 4}, - {"matrix": [6, 1], "x": 124, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 111, "y": 0, "flags": 4}, - {"matrix": [7, 0], "x": 109, "y": 15, "flags": 4}, - {"matrix": [7, 1], "x": 123, "y": 15, "flags": 4}, - {"matrix": [7, 2], "x": 136, "y": 15, "flags": 4}, - {"matrix": [7, 3], "x": 150, "y": 15, "flags": 4}, - {"matrix": [7, 4], "x": 163, "y": 15, "flags": 4}, - {"matrix": [7, 5], "x": 177, "y": 15, "flags": 4}, - {"matrix": [7, 6], "x": 191, "y": 15, "flags": 1}, - {"matrix": [7, 7], "x": 197, "y": 15, "flags": 1}, - {"matrix": [7, 7], "x": 204, "y": 15, "flags": 1}, - {"matrix": [7, 8], "x": 221, "y": 15, "flags": 1}, - {"matrix": [8, 8], "x": 221, "y": 26, "flags": 4}, - {"matrix": [8, 7], "x": 200, "y": 26, "flags": 4}, - {"matrix": [8, 6], "x": 184, "y": 26, "flags": 4}, - {"matrix": [8, 5], "x": 170, "y": 26, "flags": 4}, - {"matrix": [8, 4], "x": 157, "y": 26, "flags": 4}, - {"matrix": [8, 3], "x": 143, "y": 26, "flags": 4}, - {"matrix": [8, 2], "x": 130, "y": 26, "flags": 4}, - {"matrix": [8, 1], "x": 116, "y": 26, "flags": 4}, - {"matrix": [8, 0], "x": 102, "y": 26, "flags": 4}, - {"matrix": [9, 0], "x": 106, "y": 38, "flags": 4}, - {"matrix": [9, 1], "x": 119, "y": 38, "flags": 4}, - {"matrix": [9, 2], "x": 133, "y": 38, "flags": 4}, - {"matrix": [9, 3], "x": 147, "y": 38, "flags": 4}, - {"matrix": [9, 4], "x": 160, "y": 38, "flags": 4}, - {"matrix": [9, 5], "x": 174, "y": 38, "flags": 4}, - {"matrix": [9, 6], "x": 187, "y": 38, "flags": 4}, - {"matrix": [9, 7], "x": 200, "y": 38, "flags": 1}, - {"matrix": [9, 7], "x": 202, "y": 34, "flags": 1}, - {"matrix": [10, 7], "x": 208, "y": 52, "flags": 4}, - {"matrix": [10, 6], "x": 186, "y": 49, "flags": 1}, - {"matrix": [10, 5], "x": 167, "y": 49, "flags": 4}, - {"matrix": [10, 4], "x": 153, "y": 49, "flags": 4}, - {"matrix": [10, 3], "x": 140, "y": 49, "flags": 4}, - {"matrix": [10, 2], "x": 126, "y": 49, "flags": 4}, - {"matrix": [10, 1], "x": 113, "y": 49, "flags": 4}, - {"matrix": [10, 0], "x": 99, "y": 49, "flags": 4}, - {"matrix": [11, 2], "x": 123, "y": 64, "flags": 4}, - {"matrix": [11, 4], "x": 160, "y": 61, "flags": 1}, - {"matrix": [11, 5], "x": 177, "y": 61, "flags": 1}, - {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, - {"matrix": [11, 7], "x": 208, "y": 64, "flags": 4}, - {"matrix": [11, 8], "x": 221, "y": 64, "flags": 4}, - {"x": 224, "y": 53, "flags": 2}, - {"x": 224, "y": 51, "flags": 2}, - {"x": 224, "y": 49, "flags": 2}, - {"x": 224, "y": 48, "flags": 2}, - {"x": 224, "y": 46, "flags": 2}, - {"x": 224, "y": 44, "flags": 2}, - {"x": 224, "y": 43, "flags": 2}, - {"x": 224, "y": 41, "flags": 2}, - {"x": 224, "y": 39, "flags": 2} - ], - "sleep": true, - "split_count": [43, 59] - }, - "split": { - "bootmagic": { - "matrix": [6, 0] - }, - "enabled": true, - "handedness": { - "pin": "GP20" - }, - "matrix_pins": { - "right": { - "cols": ["GP25", "GP24", "GP23", "GP22", "GP7", "GP6", "GP5", "GP4", "GP2"], - "rows": ["GP29", "GP28", "GP27", "GP26", "GP11", "GP3"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "indicators": true, - "layer_state": true, - "matrix_state": true - } - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0013", - "vid": "0x4552" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP17" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 6], "x": 15.5, "y": 1.25}, - {"matrix": [7, 7], "x": 16.5, "y": 1.25}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 6], "x": 15.25, "y": 3.25}, - {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - }, - "LAYOUT_ansi_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 6], "x": 15.5, "y": 1.25}, - {"matrix": [7, 7], "x": 16.5, "y": 1.25}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 6], "x": 15.25, "y": 3.25}, - {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - }, - "LAYOUT_iso_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.5, "y": 0}, - {"matrix": [0, 3], "x": 2.5, "y": 0}, - {"matrix": [0, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 5], "x": 4.5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 0], "x": 9.5, "y": 0}, - {"matrix": [6, 1], "x": 10.5, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 5], "x": 15, "y": 0}, - {"matrix": [6, 7], "x": 16.5, "y": 0}, - {"matrix": [6, 8], "x": 17.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [7, 0], "x": 9.5, "y": 1.25}, - {"matrix": [7, 1], "x": 10.5, "y": 1.25}, - {"matrix": [7, 2], "x": 11.5, "y": 1.25}, - {"matrix": [7, 3], "x": 12.5, "y": 1.25}, - {"matrix": [7, 4], "x": 13.5, "y": 1.25}, - {"matrix": [7, 5], "x": 14.5, "y": 1.25}, - {"matrix": [7, 6], "x": 15.5, "y": 1.25}, - {"matrix": [7, 7], "x": 16.5, "y": 1.25}, - {"matrix": [7, 8], "x": 17.75, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [8, 0], "x": 9, "y": 2.25}, - {"matrix": [8, 1], "x": 10, "y": 2.25}, - {"matrix": [8, 2], "x": 11, "y": 2.25}, - {"matrix": [8, 3], "x": 12, "y": 2.25}, - {"matrix": [8, 4], "x": 13, "y": 2.25}, - {"matrix": [8, 5], "x": 14, "y": 2.25}, - {"matrix": [8, 6], "x": 15, "y": 2.25}, - {"matrix": [8, 8], "x": 17.75, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [9, 0], "x": 9.25, "y": 3.25}, - {"matrix": [9, 1], "x": 10.25, "y": 3.25}, - {"matrix": [9, 2], "x": 11.25, "y": 3.25}, - {"matrix": [9, 3], "x": 12.25, "y": 3.25}, - {"matrix": [9, 4], "x": 13.25, "y": 3.25}, - {"matrix": [9, 5], "x": 14.25, "y": 3.25}, - {"matrix": [9, 6], "x": 15.25, "y": 3.25}, - {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [10, 0], "x": 8.75, "y": 4.25}, - {"matrix": [10, 1], "x": 9.75, "y": 4.25}, - {"matrix": [10, 2], "x": 10.75, "y": 4.25}, - {"matrix": [10, 3], "x": 11.75, "y": 4.25}, - {"matrix": [10, 4], "x": 12.75, "y": 4.25}, - {"matrix": [10, 5], "x": 13.75, "y": 4.25}, - {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, - {"matrix": [10, 7], "x": 16.75, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, - {"matrix": [5, 6], "x": 7, "y": 5.5}, - {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, - {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, - {"matrix": [11, 5], "x": 14.5, "y": 5.25}, - {"matrix": [11, 6], "x": 15.75, "y": 5.5}, - {"matrix": [11, 7], "x": 16.75, "y": 5.5}, - {"matrix": [11, 8], "x": 17.75, "y": 5.5} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c deleted file mode 100644 index 9ac7334d48..0000000000 --- a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2024 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = 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_F13, KC_PSCR, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/readme.md b/keyboards/era/sirind/tomak79s/readme.md deleted file mode 100644 index 5fc275bc65..0000000000 --- a/keyboards/era/sirind/tomak79s/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tomak79S, Solder ver - -![Tomak79S](https://i.imgur.com/Pq2itWD.jpeg) - -Ergonomics Split Keyboard powered by RP2040. - -* Keyboard Maintainer: [ERA](https://github.com/eerraa) -* Hardware supported: SIRIND Tomak79 -* Hardware availability: [Syryan](https://srind.mysoho.com/) - -Make example for this keyboard (after setting up your build environment): - - make era/sirind/tomak79s:default - -Flashing example for this keyboard: - - make era/sirind/tomak79s: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 'top-left(ESC, F7)' key and plug in the keyboard. -* **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/tomak79s.c b/keyboards/era/sirind/tomak79s/tomak79s.c deleted file mode 100644 index f5f3165b64..0000000000 --- a/keyboards/era/sirind/tomak79s/tomak79s.c +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2023 Hyojin Bak (@eerraa) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 93; i <= 101; i++) { - rgb_matrix_set_color(i, 0, 128, 128); - } - } - return true; -} \ No newline at end of file diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 9fdc814834..e23231ecb8 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -343,7 +343,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { eeconfig_update_kb(keyboard_config.raw); } break; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/ergodox_ez/glow/keymaps/default/keymap.c b/keyboards/ergodox_ez/glow/keymaps/default/keymap.c index edcb75dc1c..94d68cb870 100644 --- a/keyboards/ergodox_ez/glow/keymaps/default/keymap.c +++ b/keyboards/ergodox_ez/glow/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT), - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), ALT_T(KC_APP), KC_LGUI, KC_LALT, CTL_T(KC_ESC), KC_HOME, KC_PGUP, @@ -73,9 +73,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_0, KC_EQL, KC_TRNS, - RM_NEXT, KC_TRNS, RM_TOGG, RGB_M_P, + RGB_MOD, KC_TRNS, RGB_TOG, RGB_M_P, KC_TRNS, KC_TRNS, - RM_VALD, RM_VALU, KC_TRNS, KC_TRNS, RM_HUED, RM_HUEU + RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI ), /* Keymap 2: Media and mouse keys * @@ -101,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MDIA] = LAYOUT_ergodox_pretty( // left hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c index 2ec7a02920..94d68cb870 100644 --- a/keyboards/ergodox_ez/keymaps/default/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT), - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), ALT_T(KC_APP), KC_LGUI, KC_LALT, CTL_T(KC_ESC), KC_HOME, KC_PGUP, @@ -73,9 +73,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_0, KC_EQL, KC_TRNS, - UG_NEXT, KC_TRNS, UG_TOGG, RGB_M_P, + RGB_MOD, KC_TRNS, RGB_TOG, RGB_M_P, KC_TRNS, KC_TRNS, - UG_VALD, UG_VALU, KC_TRNS, KC_TRNS, UG_HUED, UG_HUEU + RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI ), /* Keymap 2: Media and mouse keys * @@ -101,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MDIA] = LAYOUT_ergodox_pretty( // left hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c index 3008726acd..3ab66078fe 100644 --- a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, @@ -119,10 +119,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c b/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c index 6072fbb5f0..dc26fa1075 100644 --- a/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c +++ b/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, @@ -95,18 +95,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, EPRM,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - UG_NEXT,RGB_LYR, + RGB_MOD,RGB_LYR, KC_TRNS, - UG_VALD,UG_VALU,KC_TRNS, + RGB_VAD,RGB_VAI,KC_TRNS, // right hand KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, - UG_TOGG, RGB_SLD, + RGB_TOG, RGB_SLD, KC_TRNS, - KC_TRNS, UG_HUED, UG_HUEU + KC_TRNS, RGB_HUD, RGB_HUI ), /* Keymap 2: Media and mouse keys * @@ -132,10 +132,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -189,7 +189,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - case UNDERGLOW_KEYCODE_RANGE: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) + case RGB_MOD ... RGB_M_G: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled if (user_config.rgb_layer_change) { // only if this is enabled user_config.rgb_layer_change = false; // disable it, and diff --git a/keyboards/ergodox_ez/keymaps/testing/keymap.c b/keyboards/ergodox_ez/keymaps/testing/keymap.c index 3f724fc2df..ee07f264b9 100644 --- a/keyboards/ergodox_ez/keymaps/testing/keymap.c +++ b/keyboards/ergodox_ez/keymaps/testing/keymap.c @@ -20,11 +20,11 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ergodox(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,LCTL(KC_MINUS),KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LBRC,KC_BSPC,KC_A,KC_S,KC_D,KC_F,KC_G,SC_LSPO,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,HYPR_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_UNDS,KC_END,LCTL(KC_EQUAL),KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_RBRC,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,KC_H,ALT_T(KC_J),KC_K,KC_L,LT(2,KC_SCLN),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SC_RSPC,KC_UP,KC_DOWN,KC_LBRC,KC_RBRC,TT(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDN,LT(1,KC_TAB),KC_ENTER), + [0] = LAYOUT_ergodox(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,LCTL(KC_MINUS),KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LBRC,KC_BSPC,KC_A,KC_S,KC_D,KC_F,KC_G,SC_LSPO,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,ALL_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_UNDS,KC_END,LCTL(KC_EQUAL),KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_RBRC,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,KC_H,ALT_T(KC_J),KC_K,KC_L,LT(2,KC_SCLN),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SC_RSPC,KC_UP,KC_DOWN,KC_LBRC,KC_RBRC,TT(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDN,LT(1,KC_TAB),KC_ENTER), - [1] = LAYOUT_ergodox(KC_TRANSPARENT,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_W),KC_LBRC,KC_RBRC,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_PGUP),LCTL(KC_PGDN),UG_NEXT,KC_TRANSPARENT,KC_TRANSPARENT,UG_VALD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_AMPR,KC_UNDS,KC_MINUS,KC_SCLN,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_PIPE,KC_AT,KC_EQUAL,KC_PERC,KC_BSLS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,UG_TOGG,RGB_SLD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,UG_HUEU), + [1] = LAYOUT_ergodox(KC_TRANSPARENT,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_W),KC_LBRC,KC_RBRC,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_PGUP),LCTL(KC_PGDN),RGB_MOD,KC_TRANSPARENT,KC_TRANSPARENT,RGB_VAD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_AMPR,KC_UNDS,KC_MINUS,KC_SCLN,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_PIPE,KC_AT,KC_EQUAL,KC_PERC,KC_BSLS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,RGB_TOG,RGB_SLD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUI), - [2] = LAYOUT_ergodox(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_LEFT,MS_DOWN,MS_RGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_BTN1,MS_BTN2,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_WWW_BACK), + [2] = LAYOUT_ergodox(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_BTN1,KC_MS_BTN2,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_WWW_BACK), }; diff --git a/keyboards/ergodox_ez/post_config.h b/keyboards/ergodox_ez/post_config.h index e94fda0f06..eb22439ae4 100644 --- a/keyboards/ergodox_ez/post_config.h +++ b/keyboards/ergodox_ez/post_config.h @@ -33,10 +33,8 @@ along with this program. If not, see . #ifdef ERGODOX_LED_30 // If using 30 LEDs, then define that many -# define WS2812_LED_COUNT 30 # define RGBLIGHT_LED_COUNT 30 // Number of LEDs #else // If not, then only define 15 -# define WS2812_LED_COUNT 15 # define RGBLIGHT_LED_COUNT 15 // Number of LEDs #endif diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index 9c0392f5d0..187d9dd8e2 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -14,3 +14,5 @@ AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no MOUSE_SHARED_EP = no + +DEFAULT_FOLDER = ergodox_ez/base diff --git a/keyboards/ergodox_ez/shine/rgblight_custom.c b/keyboards/ergodox_ez/shine/rgblight_custom.c index 8e806b1fd1..29060e76fc 100644 --- a/keyboards/ergodox_ez/shine/rgblight_custom.c +++ b/keyboards/ergodox_ez/shine/rgblight_custom.c @@ -21,55 +21,47 @@ along with this program. If not, see . #include "ergodox_ez.h" #include "ws2812.h" -#define WS2812_I2C_ADDRESS_LEFT 0x84 - -#if defined(ERGODOX_LED_30) -# define WS2812_LED_COUNT_LEFT (RGBLIGHT_LED_COUNT / 2) -ws2812_led_t ws2812_leds_left[WS2812_LED_COUNT_LEFT]; -#else -# define WS2812_LED_COUNT_LEFT RGBLIGHT_LED_COUNT -ws2812_led_t ws2812_leds_left[WS2812_LED_COUNT_LEFT]; +void setleds_custom(rgb_led_t *led, uint16_t led_num) { + uint16_t length = 0; + int i = 0; + int j = 0; +# ifdef WS2812_RGBW + int bytes_per_led = 4; +# else + int bytes_per_led = 3; +# endif +# if defined(ERGODOX_LED_30) + // prevent right-half code from trying to bitbang all 30 + // so with 30 LEDs, we count from 29 to 15 here, and the + // other half does 0 to 14. + uint8_t half_led_num = RGBLIGHT_LED_COUNT / 2; + length = half_led_num * bytes_per_led; + uint8_t data[length]; + for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i) +# elif defined(ERGODOX_LED_15_MIRROR) + length = led_num * bytes_per_led; + uint8_t data[length]; + for (i = 0; i < led_num; ++i) +# else // ERGDOX_LED_15 non-mirrored + length = led_num * bytes_per_led; + uint8_t data[length]; + for (i = led_num - 1; i >= 0; --i) +# endif + { + uint8_t *data_byte = (uint8_t *)(led + i); + data[j++] = data_byte[0]; + data[j++] = data_byte[1]; + data[j++] = data_byte[2]; +#ifdef WS2812_RGBW + data[j++] = data_byte[3]; #endif - -void set_color_left(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds_left[index].r = red; - ws2812_leds_left[index].g = green; - ws2812_leds_left[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds_left[index]); -#endif -} - -void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { -#if defined(ERGODOX_LED_30) - if (index < WS2812_LED_COUNT_LEFT) { - ws2812_set_color(index, red, green, blue); - } else { - set_color_left(RGBLIGHT_LED_COUNT - index - 1, red, green, blue); } -#elif defined(ERGODOX_LED_15_MIRROR) - ws2812_set_color(index, red, green, blue); - set_color_left(index, red, green, blue); -#else - ws2812_set_color(index, red, green, blue); - set_color_left(WS2812_LED_COUNT_LEFT - index - 1, red, green, blue); -#endif -} + i2c_transmit(0x84, data, sizeof(data), ERGODOX_EZ_I2C_TIMEOUT); -void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { - set_color_custom(i, red, green, blue); - } -} - -void flush_custom(void) { - i2c_transmit(WS2812_I2C_ADDRESS_LEFT, (uint8_t *)ws2812_leds_left, sizeof(ws2812_leds_left), ERGODOX_EZ_I2C_TIMEOUT); - ws2812_flush(); + ws2812_setleds(led, led_num); } const rgblight_driver_t rgblight_driver = { - .init = ws2812_init, - .set_color = set_color_custom, - .set_color_all = set_color_all_custom, - .flush = flush_custom, + .init = ws2812_init, + .setleds = setleds_custom, }; diff --git a/keyboards/ergodox_ez/util/keymap_beautifier/README.md b/keyboards/ergodox_ez/util/keymap_beautifier/README.md index 849e61fc9b..e7c7096f77 100644 --- a/keyboards/ergodox_ez/util/keymap_beautifier/README.md +++ b/keyboards/ergodox_ez/util/keymap_beautifier/README.md @@ -7,7 +7,7 @@ This Python 3 script, by [Tsan-Kuang Lee](https://github.com/tsankuanglee) takes For example, the original `keymap.c` looks like ``` -[0] = LAYOUT_ergodox(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,LCTL(KC_MINUS),KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LBRC,KC_BSPC,KC_A,KC_S,KC_D,KC_F,KC_G,SC_LSPO,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,HYPR_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_UNDS,KC_END,LCTL(KC_EQUAL),KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_RBRC,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,KC_H,ALT_T(KC_J),KC_K,KC_L,LT(2,KC_SCLN),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SC_RSPC,KC_UP,KC_DOWN,KC_LBRC,KC_RBRC,TT(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDN,LT(1,KC_TAB),KC_ENTER), +[0] = LAYOUT_ergodox(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,LCTL(KC_MINUS),KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LBRC,KC_BSPC,KC_A,KC_S,KC_D,KC_F,KC_G,SC_LSPO,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,ALL_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_UNDS,KC_END,LCTL(KC_EQUAL),KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_RBRC,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,KC_H,ALT_T(KC_J),KC_K,KC_L,LT(2,KC_SCLN),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SC_RSPC,KC_UP,KC_DOWN,KC_LBRC,KC_RBRC,TT(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDN,LT(1,KC_TAB),KC_ENTER), ``` The beautifier parses it and outputs: @@ -19,7 +19,7 @@ The beautifier parses it and outputs: KC_EQUAL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5, LCTL(KC_MINUS), KC_DELETE , KC_Q , KC_W , KC_E , KC_R , KC_T, KC_LBRC , KC_BSPC , KC_A , KC_S , KC_D , KC_F , KC_G, -SC_LSPO , CTL_T(KC_Z), KC_X , KC_C , KC_V , KC_B, HYPR_T(KC_NO) , +SC_LSPO , CTL_T(KC_Z), KC_X , KC_C , KC_V , KC_B, ALL_T(KC_NO) , LT(1,KC_GRAVE), KC_QUOTE , LALT(KC_LSFT) , KC_LEFT, KC_RIGHT, // left thumb diff --git a/keyboards/handwired/ergodox_stm32/board.h b/keyboards/ergodox_stm32/board.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/board.h rename to keyboards/ergodox_stm32/board.h diff --git a/keyboards/handwired/ergodox_stm32/chconf.h b/keyboards/ergodox_stm32/chconf.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/chconf.h rename to keyboards/ergodox_stm32/chconf.h diff --git a/keyboards/handwired/ergodox_stm32/config.h b/keyboards/ergodox_stm32/config.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/config.h rename to keyboards/ergodox_stm32/config.h diff --git a/keyboards/handwired/ergodox_stm32/ergodox_stm32.c b/keyboards/ergodox_stm32/ergodox_stm32.c similarity index 100% rename from keyboards/handwired/ergodox_stm32/ergodox_stm32.c rename to keyboards/ergodox_stm32/ergodox_stm32.c diff --git a/keyboards/handwired/ergodox_stm32/ergodox_stm32.h b/keyboards/ergodox_stm32/ergodox_stm32.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/ergodox_stm32.h rename to keyboards/ergodox_stm32/ergodox_stm32.h diff --git a/keyboards/handwired/ergodox_stm32/halconf.h b/keyboards/ergodox_stm32/halconf.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/halconf.h rename to keyboards/ergodox_stm32/halconf.h diff --git a/keyboards/ergodox_stm32/keyboard.json b/keyboards/ergodox_stm32/keyboard.json new file mode 100644 index 0000000000..9315a3971f --- /dev/null +++ b/keyboards/ergodox_stm32/keyboard.json @@ -0,0 +1,213 @@ +{ + "keyboard_name": "ErgoDox STM32", + "manufacturer": "ErgoDox", + "url": "github.com/codetector1374", + "maintainer": "codetector1374", + "usb": { + "vid": "0xFEED", + "pid": "0x1308", + "device_version": "1.0.1" + }, + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": true, + "nkro": true, + "unicode": true + }, + "processor": "STM32F103", + "bootloader": "custom", + "layouts": { + "LAYOUT_ergodox": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5}, + {"matrix": [1, 0], "x": 1.5, "y": 0.375}, + {"matrix": [2, 0], "x": 2.5, "y": 0.125}, + {"matrix": [3, 0], "x": 3.5, "y": 0}, + {"matrix": [4, 0], "x": 4.5, "y": 0.125}, + {"matrix": [5, 0], "x": 5.5, "y": 0.25}, + {"matrix": [6, 0], "x": 6.5, "y": 0.25}, + + {"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1.375}, + {"matrix": [2, 1], "x": 2.5, "y": 1.125}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [4, 1], "x": 4.5, "y": 1.125}, + {"matrix": [5, 1], "x": 5.5, "y": 1.25}, + {"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5}, + + {"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 2.375}, + {"matrix": [2, 2], "x": 2.5, "y": 2.125}, + {"matrix": [3, 2], "x": 3.5, "y": 2}, + {"matrix": [4, 2], "x": 4.5, "y": 2.125}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + + {"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 3.375}, + {"matrix": [2, 3], "x": 2.5, "y": 3.125}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [4, 3], "x": 4.5, "y": 3.125}, + {"matrix": [5, 3], "x": 5.5, "y": 3.25}, + {"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5}, + {"matrix": [0, 4], "x": 0.5, "y": 4.375}, + {"matrix": [1, 4], "x": 1.5, "y": 4.375}, + {"matrix": [2, 4], "x": 2.5, "y": 4.125}, + {"matrix": [3, 4], "x": 3.5, "y": 4}, + {"matrix": [4, 4], "x": 4.5, "y": 4.125}, + + {"matrix": [5, 5], "x": 6, "y": 5}, + {"matrix": [6, 5], "x": 7, "y": 5}, + {"matrix": [4, 5], "x": 7, "y": 6}, + + {"matrix": [3, 5], "x": 5, "y": 6, "h": 2}, + {"matrix": [2, 5], "x": 6, "y": 6, "h": 2}, + {"matrix": [1, 5], "x": 7, "y": 7}, + + {"matrix": [7, 0], "x": 9.5, "y": 0.25}, + {"matrix": [8, 0], "x": 10.5, "y": 0.25}, + {"matrix": [9, 0], "x": 11.5, "y": 0.125}, + {"matrix": [10, 0], "x": 12.5, "y": 0}, + {"matrix": [11, 0], "x": 13.5, "y": 0.125}, + {"matrix": [12, 0], "x": 14.5, "y": 0.375}, + {"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5}, + + {"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5}, + {"matrix": [8, 1], "x": 10.5, "y": 1.25}, + {"matrix": [9, 1], "x": 11.5, "y": 1.125}, + {"matrix": [10, 1], "x": 12.5, "y": 1}, + {"matrix": [11, 1], "x": 13.5, "y": 1.125}, + {"matrix": [12, 1], "x": 14.5, "y": 1.375}, + {"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5}, + + {"matrix": [8, 2], "x": 10.5, "y": 2.25}, + {"matrix": [9, 2], "x": 11.5, "y": 2.125}, + {"matrix": [10, 2], "x": 12.5, "y": 2}, + {"matrix": [11, 2], "x": 13.5, "y": 2.125}, + {"matrix": [12, 2], "x": 14.5, "y": 2.375}, + {"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5}, + + {"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5}, + {"matrix": [8, 3], "x": 10.5, "y": 3.25}, + {"matrix": [9, 3], "x": 11.5, "y": 3.125}, + {"matrix": [10, 3], "x": 12.5, "y": 3}, + {"matrix": [11, 3], "x": 13.5, "y": 3.125}, + {"matrix": [12, 3], "x": 14.5, "y": 3.375}, + {"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5}, + + {"matrix": [9, 4], "x": 11.5, "y": 4.125}, + {"matrix": [10, 4], "x": 12.5, "y": 4}, + {"matrix": [11, 4], "x": 13.5, "y": 4.125}, + {"matrix": [12, 4], "x": 14.5, "y": 4.375}, + {"matrix": [13, 4], "x": 15.5, "y": 4.375}, + + {"matrix": [7, 5], "x": 9, "y": 5}, + {"matrix": [8, 5], "x": 10, "y": 5}, + + {"matrix": [9, 5], "x": 9, "y": 6}, + + {"matrix": [12, 5], "x": 9, "y": 7}, + + {"matrix": [11, 5], "x": 10, "y": 6, "h": 2}, + {"matrix": [10, 5], "x": 11, "y": 6, "h": 2} + ] + }, + "LAYOUT_ergodox_pretty": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5}, + {"matrix": [1, 0], "x": 1.5, "y": 0.375}, + {"matrix": [2, 0], "x": 2.5, "y": 0.125}, + {"matrix": [3, 0], "x": 3.5, "y": 0}, + {"matrix": [4, 0], "x": 4.5, "y": 0.125}, + {"matrix": [5, 0], "x": 5.5, "y": 0.25}, + {"matrix": [6, 0], "x": 6.5, "y": 0.25}, + + {"matrix": [7, 0], "x": 9.5, "y": 0.25}, + {"matrix": [8, 0], "x": 10.5, "y": 0.25}, + {"matrix": [9, 0], "x": 11.5, "y": 0.125}, + {"matrix": [10, 0], "x": 12.5, "y": 0}, + {"matrix": [11, 0], "x": 13.5, "y": 0.125}, + {"matrix": [12, 0], "x": 14.5, "y": 0.375}, + {"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5}, + + {"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1.375}, + {"matrix": [2, 1], "x": 2.5, "y": 1.125}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [4, 1], "x": 4.5, "y": 1.125}, + {"matrix": [5, 1], "x": 5.5, "y": 1.25}, + {"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5}, + + {"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5}, + {"matrix": [8, 1], "x": 10.5, "y": 1.25}, + {"matrix": [9, 1], "x": 11.5, "y": 1.125}, + {"matrix": [10, 1], "x": 12.5, "y": 1}, + {"matrix": [11, 1], "x": 13.5, "y": 1.125}, + {"matrix": [12, 1], "x": 14.5, "y": 1.375}, + {"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5}, + + {"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 2.375}, + {"matrix": [2, 2], "x": 2.5, "y": 2.125}, + {"matrix": [3, 2], "x": 3.5, "y": 2}, + {"matrix": [4, 2], "x": 4.5, "y": 2.125}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + + {"matrix": [8, 2], "x": 10.5, "y": 2.25}, + {"matrix": [9, 2], "x": 11.5, "y": 2.125}, + {"matrix": [10, 2], "x": 12.5, "y": 2}, + {"matrix": [11, 2], "x": 13.5, "y": 2.125}, + {"matrix": [12, 2], "x": 14.5, "y": 2.375}, + {"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5}, + + {"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 3.375}, + {"matrix": [2, 3], "x": 2.5, "y": 3.125}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [4, 3], "x": 4.5, "y": 3.125}, + {"matrix": [5, 3], "x": 5.5, "y": 3.25}, + {"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5}, + + {"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5}, + {"matrix": [8, 3], "x": 10.5, "y": 3.25}, + {"matrix": [9, 3], "x": 11.5, "y": 3.125}, + {"matrix": [10, 3], "x": 12.5, "y": 3}, + {"matrix": [11, 3], "x": 13.5, "y": 3.125}, + {"matrix": [12, 3], "x": 14.5, "y": 3.375}, + {"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5}, + + {"matrix": [0, 4], "x": 0.5, "y": 4.375}, + {"matrix": [1, 4], "x": 1.5, "y": 4.375}, + {"matrix": [2, 4], "x": 2.5, "y": 4.125}, + {"matrix": [3, 4], "x": 3.5, "y": 4}, + {"matrix": [4, 4], "x": 4.5, "y": 4.125}, + + {"matrix": [9, 4], "x": 11.5, "y": 4.125}, + {"matrix": [10, 4], "x": 12.5, "y": 4}, + {"matrix": [11, 4], "x": 13.5, "y": 4.125}, + {"matrix": [12, 4], "x": 14.5, "y": 4.375}, + {"matrix": [13, 4], "x": 15.5, "y": 4.375}, + + {"matrix": [5, 5], "x": 6, "y": 5}, + {"matrix": [6, 5], "x": 7, "y": 5}, + + {"matrix": [7, 5], "x": 9, "y": 5}, + {"matrix": [8, 5], "x": 10, "y": 5}, + + {"matrix": [4, 5], "x": 7, "y": 6}, + + {"matrix": [9, 5], "x": 9, "y": 6}, + + {"matrix": [3, 5], "x": 5, "y": 6, "h": 2}, + {"matrix": [2, 5], "x": 6, "y": 6, "h": 2}, + + {"matrix": [1, 5], "x": 7, "y": 7}, + + {"matrix": [12, 5], "x": 9, "y": 7}, + + {"matrix": [11, 5], "x": 10, "y": 6, "h": 2}, + {"matrix": [10, 5], "x": 11, "y": 6, "h": 2} + ] + } + } +} diff --git a/keyboards/handwired/ergodox_stm32/keymaps/default/keymap.c b/keyboards/ergodox_stm32/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/ergodox_stm32/keymaps/default/keymap.c rename to keyboards/ergodox_stm32/keymaps/default/keymap.c diff --git a/keyboards/handwired/ergodox_stm32/ld/stm32f103_bootloader.ld b/keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld similarity index 100% rename from keyboards/handwired/ergodox_stm32/ld/stm32f103_bootloader.ld rename to keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld diff --git a/keyboards/handwired/ergodox_stm32/matrix.c b/keyboards/ergodox_stm32/matrix.c similarity index 100% rename from keyboards/handwired/ergodox_stm32/matrix.c rename to keyboards/ergodox_stm32/matrix.c diff --git a/keyboards/handwired/ergodox_stm32/mcuconf.h b/keyboards/ergodox_stm32/mcuconf.h similarity index 100% rename from keyboards/handwired/ergodox_stm32/mcuconf.h rename to keyboards/ergodox_stm32/mcuconf.h diff --git a/keyboards/ergodox_stm32/readme.md b/keyboards/ergodox_stm32/readme.md new file mode 100644 index 0000000000..f8b9c4c553 --- /dev/null +++ b/keyboards/ergodox_stm32/readme.md @@ -0,0 +1,9 @@ +# ergodox_stm32 + +* Keyboard Maintainer: [Codetector1374](https://github.com/Codetector1374) + +Make example for this keyboard (after setting up your build environment): + + make ergodox_stm32:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/ergodox_stm32/rules.mk b/keyboards/ergodox_stm32/rules.mk similarity index 100% rename from keyboards/handwired/ergodox_stm32/rules.mk rename to keyboards/ergodox_stm32/rules.mk diff --git a/keyboards/ergoslab/keymaps/default/keymap.c b/keyboards/ergoslab/keymaps/default/keymap.c index 019a6fc17c..01ea4ba36c 100644 --- a/keyboards/ergoslab/keymaps/default/keymap.c +++ b/keyboards/ergoslab/keymaps/default/keymap.c @@ -41,10 +41,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [MOUS] = LAYOUT( - _______, _______, MS_UP, _______, _______, _______, _______, MS_WHLU, _______, _______, - _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, MS_BTN3, MS_WHLD, _______, _______, + _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN3, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MS_ACL0, _______, MS_BTN2, MS_BTN1, _______, _______, _______, _______, + _______, _______, _______, _______, KC_ACL0, _______, KC_BTN2, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/ergoslab/rev1/keyboard.json b/keyboards/ergoslab/rev1/keyboard.json index 59e3e038e9..0d017d7a97 100644 --- a/keyboards/ergoslab/rev1/keyboard.json +++ b/keyboards/ergoslab/rev1/keyboard.json @@ -25,7 +25,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/ergoslab/rules.mk b/keyboards/ergoslab/rules.mk new file mode 100644 index 0000000000..8eb40c77d5 --- /dev/null +++ b/keyboards/ergoslab/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ergoslab/rev1 diff --git a/keyboards/ergotravel/keymaps/default/keymap.c b/keyboards/ergotravel/keymaps/default/keymap.c index fcc1ac76b4..166a6eed7e 100644 --- a/keyboards/ergotravel/keymaps/default/keymap.c +++ b/keyboards/ergotravel/keymaps/default/keymap.c @@ -9,7 +9,8 @@ enum layer_names { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + LOWER, RAISE, ADJUST, }; @@ -57,8 +58,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; + + + + + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/ergotravel/rev1/keyboard.json b/keyboards/ergotravel/rev1/keyboard.json index 803653fb70..0c34bf04bd 100644 --- a/keyboards/ergotravel/rev1/keyboard.json +++ b/keyboards/ergotravel/rev1/keyboard.json @@ -25,7 +25,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "bootloader": "caterina", + "processor": "atmega32u4", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk new file mode 100644 index 0000000000..3f30277bb5 --- /dev/null +++ b/keyboards/ergotravel/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ergotravel/rev1 diff --git a/keyboards/ericrlau/numdiscipline/readme.md b/keyboards/ericrlau/numdiscipline/readme.md index 9770432e56..bd040df2a5 100644 --- a/keyboards/ericrlau/numdiscipline/readme.md +++ b/keyboards/ericrlau/numdiscipline/readme.md @@ -13,6 +13,7 @@ A modified version of the through hole 65% Discipline keyboard by cftkb. Other Information: * Keyboard Maintainer: [ELau](https://github.com/ericrlau) +* Hardware Supported: The PCBs, controllers supported * Hardware Availability: https://github.com/ericrlau/NumDiscipline Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/esca/getawayvan/keyboard.json b/keyboards/esca/getawayvan/keyboard.json index 404ccd19d2..6105e5850d 100644 --- a/keyboards/esca/getawayvan/keyboard.json +++ b/keyboards/esca/getawayvan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GetawayVan", "manufacturer": "esca", + "url": "", "maintainer": "esca", "usb": { "vid": "0xE5CA", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/esca/getawayvan_f042/keyboard.json b/keyboards/esca/getawayvan_f042/keyboard.json index 97fe0022dc..6b934e16c7 100644 --- a/keyboards/esca/getawayvan_f042/keyboard.json +++ b/keyboards/esca/getawayvan_f042/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GetawayVan", "manufacturer": "esca", + "url": "", "maintainer": "esca", "usb": { "vid": "0xE5CA", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/eternal_keypad/keyboard.json b/keyboards/eternal_keypad/keyboard.json index 1951c7fa09..f50f235c98 100644 --- a/keyboards/eternal_keypad/keyboard.json +++ b/keyboards/eternal_keypad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/etiennecollin/wave/keyboard.json b/keyboards/etiennecollin/wave/keyboard.json index 0174312280..272cbdd002 100644 --- a/keyboards/etiennecollin/wave/keyboard.json +++ b/keyboards/etiennecollin/wave/keyboard.json @@ -19,6 +19,8 @@ "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/etiennecollin/wave/keymaps/default/keymap.c b/keyboards/etiennecollin/wave/keymaps/default/keymap.c index 8de48fb016..24bc85d5b4 100644 --- a/keyboards/etiennecollin/wave/keymaps/default/keymap.c +++ b/keyboards/etiennecollin/wave/keymaps/default/keymap.c @@ -115,10 +115,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | | | ___ | | left | right | mid | // --------+-------+-------- --------+-------+-------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_ACL0, MS_ACL1, MS_ACL2, XXXXXXX, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, - XXXXXXX, XXXXXXX, _______, MS_BTN1, MS_BTN2, MS_BTN3 + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, + XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, KC_BTN3 ), [SYM] = LAYOUT_split_3x5_3( // ----------------------------------------- ----------------------------------------- diff --git a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json index 4bedb82481..c6b77a26c8 100644 --- a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json +++ b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D1", "D0", "D4", "C6", "D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/evancookaudio/tenpad/keyboard.json b/keyboards/evancookaudio/tenpad/keyboard.json index c52556b4f4..46107a1c9b 100644 --- a/keyboards/evancookaudio/tenpad/keyboard.json +++ b/keyboards/evancookaudio/tenpad/keyboard.json @@ -21,7 +21,8 @@ "rows": ["D0", "D1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_2x5": { "layout": [ diff --git a/keyboards/eve/meteor/keyboard.json b/keyboards/eve/meteor/keyboard.json index f012bb6520..a8136496f0 100644 --- a/keyboards/eve/meteor/keyboard.json +++ b/keyboards/eve/meteor/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Meteor", "manufacturer": "EVE", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4556", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/evil80/keyboard.json b/keyboards/evil80/keyboard.json index 1c64076611..9610718b34 100644 --- a/keyboards/evil80/keyboard.json +++ b/keyboards/evil80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Evil80", "manufacturer": "Evil", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/evolv/keyboard.json b/keyboards/evolv/keyboard.json index 8a3b581ead..8373bbb536 100644 --- a/keyboards/evolv/keyboard.json +++ b/keyboards/evolv/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Evolv75", "manufacturer": "NathanAlpha", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7865", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/evyd13/atom47/keymaps/default/keymap.c b/keyboards/evyd13/atom47/keymaps/default/keymap.c index f00d689813..bba4b99929 100644 --- a/keyboards/evyd13/atom47/keymaps/default/keymap.c +++ b/keyboards/evyd13/atom47/keymaps/default/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PN] = LAYOUT_split_space( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT), }; diff --git a/keyboards/evyd13/atom47/rev2/keyboard.json b/keyboards/evyd13/atom47/rev2/keyboard.json index 8b1af5ede6..6466c1b7b8 100644 --- a/keyboards/evyd13/atom47/rev2/keyboard.json +++ b/keyboards/evyd13/atom47/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atom47 rev2", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev3/keyboard.json b/keyboards/evyd13/atom47/rev3/keyboard.json index e2c6a1e1ba..009c3ef534 100644 --- a/keyboards/evyd13/atom47/rev3/keyboard.json +++ b/keyboards/evyd13/atom47/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atom47 rev3", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev4/keyboard.json b/keyboards/evyd13/atom47/rev4/keyboard.json index 9a5d7b1ce4..cea416e1a6 100644 --- a/keyboards/evyd13/atom47/rev4/keyboard.json +++ b/keyboards/evyd13/atom47/rev4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atom47 rev4", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev5/keyboard.json b/keyboards/evyd13/atom47/rev5/keyboard.json index 86ff90c19c..074d34ab43 100644 --- a/keyboards/evyd13/atom47/rev5/keyboard.json +++ b/keyboards/evyd13/atom47/rev5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atom47 rev5", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk new file mode 100644 index 0000000000..9d5b753077 --- /dev/null +++ b/keyboards/evyd13/atom47/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = evyd13/atom47/rev4 diff --git a/keyboards/evyd13/eon65/keyboard.json b/keyboards/evyd13/eon65/keyboard.json index 328e0e4885..05506e0ea8 100644 --- a/keyboards/evyd13/eon65/keyboard.json +++ b/keyboards/evyd13/eon65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eon65", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon75/keyboard.json b/keyboards/evyd13/eon75/keyboard.json index d91e1267fb..fe6ee01832 100644 --- a/keyboards/evyd13/eon75/keyboard.json +++ b/keyboards/evyd13/eon75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eon75", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon87/keyboard.json b/keyboards/evyd13/eon87/keyboard.json index 1e5bbbda88..a0d73d442e 100644 --- a/keyboards/evyd13/eon87/keyboard.json +++ b/keyboards/evyd13/eon87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eon87", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/evyd13/eon95/keyboard.json b/keyboards/evyd13/eon95/keyboard.json index 4da4cad0d1..20be437ea1 100644 --- a/keyboards/evyd13/eon95/keyboard.json +++ b/keyboards/evyd13/eon95/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eon95", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/fin_pad/keyboard.json b/keyboards/evyd13/fin_pad/keyboard.json index 1720eed7db..01b24ccfd0 100644 --- a/keyboards/evyd13/fin_pad/keyboard.json +++ b/keyboards/evyd13/fin_pad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,6 +21,7 @@ "ortho_6x4" ], "processor": "atmega32u2", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xA6E2", diff --git a/keyboards/evyd13/gh80_1800/keyboard.json b/keyboards/evyd13/gh80_1800/keyboard.json index ed214fbb24..4fb513cc3c 100644 --- a/keyboards/evyd13/gh80_1800/keyboard.json +++ b/keyboards/evyd13/gh80_1800/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/evyd13/gh80_3700/keyboard.json b/keyboards/evyd13/gh80_3700/keyboard.json index 7b5ce62909..a647f46118 100644 --- a/keyboards/evyd13/gh80_3700/keyboard.json +++ b/keyboards/evyd13/gh80_3700/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/evyd13/gud70/keyboard.json b/keyboards/evyd13/gud70/keyboard.json index 6f2a787e69..00211d6167 100644 --- a/keyboards/evyd13/gud70/keyboard.json +++ b/keyboards/evyd13/gud70/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/minitomic/keyboard.json b/keyboards/evyd13/minitomic/keyboard.json index 97bc0dd050..7a8d6d8c23 100644 --- a/keyboards/evyd13/minitomic/keyboard.json +++ b/keyboards/evyd13/minitomic/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Minitomic", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/mx5160/keyboard.json b/keyboards/evyd13/mx5160/keyboard.json index 452d3427d1..b50f6130ce 100644 --- a/keyboards/evyd13/mx5160/keyboard.json +++ b/keyboards/evyd13/mx5160/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/nt210/keyboard.json b/keyboards/evyd13/nt210/keyboard.json index cbca2c6758..1c9fab2fcc 100644 --- a/keyboards/evyd13/nt210/keyboard.json +++ b/keyboards/evyd13/nt210/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/evyd13/nt650/keyboard.json b/keyboards/evyd13/nt650/keyboard.json index fe0380fa79..6f2910b630 100644 --- a/keyboards/evyd13/nt650/keyboard.json +++ b/keyboards/evyd13/nt650/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -20,6 +22,7 @@ "rows": ["F7", "D6", "D4", "F1", "D5", "F0", "D3", "D2"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xD5DF", diff --git a/keyboards/evyd13/nt660/keyboard.json b/keyboards/evyd13/nt660/keyboard.json index a0a330ae40..142e9f2920 100644 --- a/keyboards/evyd13/nt660/keyboard.json +++ b/keyboards/evyd13/nt660/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "nt660", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/nt750/keyboard.json b/keyboards/evyd13/nt750/keyboard.json index 8be6bc827e..03c76f1040 100644 --- a/keyboards/evyd13/nt750/keyboard.json +++ b/keyboards/evyd13/nt750/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/nt980/keyboard.json b/keyboards/evyd13/nt980/keyboard.json index 42c05e25c6..65ba93d73d 100644 --- a/keyboards/evyd13/nt980/keyboard.json +++ b/keyboards/evyd13/nt980/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "nt980", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/evyd13/omrontkl/keyboard.json b/keyboards/evyd13/omrontkl/keyboard.json index ee79748e6a..1ea340acaa 100644 --- a/keyboards/evyd13/omrontkl/keyboard.json +++ b/keyboards/evyd13/omrontkl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OmronTKL", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/evyd13/plain60/keyboard.json b/keyboards/evyd13/plain60/keyboard.json index 15c4c5b7f8..711bc51559 100644 --- a/keyboards/evyd13/plain60/keyboard.json +++ b/keyboards/evyd13/plain60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Plain60", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -24,17 +27,7 @@ }, "processor": "atmega32u4", "bootloader": "qmk-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"], "layouts": { "LAYOUT": { "layout": [ @@ -459,7 +452,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/evyd13/quackfire/keyboard.json b/keyboards/evyd13/quackfire/keyboard.json index 42a11ea776..85c2ae81fb 100644 --- a/keyboards/evyd13/quackfire/keyboard.json +++ b/keyboards/evyd13/quackfire/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/evyd13/solheim68/keyboard.json b/keyboards/evyd13/solheim68/keyboard.json index 98c617f959..9e04b9caab 100644 --- a/keyboards/evyd13/solheim68/keyboard.json +++ b/keyboards/evyd13/solheim68/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/ta65/keyboard.json b/keyboards/evyd13/ta65/keyboard.json index 3f51a25299..1f58de0200 100644 --- a/keyboards/evyd13/ta65/keyboard.json +++ b/keyboards/evyd13/ta65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ta-65", "manufacturer": "Evyd13", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/evyd13/ta65/keymaps/default/keymap.c b/keyboards/evyd13/ta65/keymaps/default/keymap.c index bde9290afb..697215510b 100644 --- a/keyboards/evyd13/ta65/keymaps/default/keymap.c +++ b/keyboards/evyd13/ta65/keymaps/default/keymap.c @@ -22,9 +22,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { switch(get_highest_layer(layer_state)){ case 1: //Layer 1 if (!clockwise) { // Remove ! to reverse direction - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } break; default: //Layer 0 diff --git a/keyboards/evyd13/wonderland/keyboard.json b/keyboards/evyd13/wonderland/keyboard.json index b15ad66f41..526416fd71 100644 --- a/keyboards/evyd13/wonderland/keyboard.json +++ b/keyboards/evyd13/wonderland/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wonderland", "manufacturer": "Evyd13", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/exclusive/e65/keyboard.json b/keyboards/exclusive/e65/keyboard.json index 2be0dc57d8..9735155abe 100644 --- a/keyboards/exclusive/e65/keyboard.json +++ b/keyboards/exclusive/e65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E6.5", "manufacturer": "Exclusive / E-Team", + "url": "", "maintainer": "masterzen", "usb": { "vid": "0x4558", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json index 52d77dfcaa..36c186584f 100644 --- a/keyboards/exclusive/e6_rgb/keyboard.json +++ b/keyboards/exclusive/e6_rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E6 RGB", "manufacturer": "astro", + "url": "", "maintainer": "yulei", "usb": { "vid": "0x4154", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -45,15 +48,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_60_wkl_split_bs": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb" - ], + "community_layouts": ["60_ansi", "60_hhkb", "60_tsangan_hhkb", "60_ansi_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -192,7 +189,7 @@ {"matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/exclusive/e6_rgb/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/exclusive/e6_rgb/keymaps/60_tsangan_hhkb/keymap.c index ec354f398f..fef10517ad 100644 --- a/keyboards/exclusive/e6_rgb/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/exclusive/e6_rgb/keymaps/60_tsangan_hhkb/keymap.c @@ -1,14 +1,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_END, KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( _______, 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_PSCR, QK_BOOT, UG_TOGG, UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, diff --git a/keyboards/exclusive/e6v2/le/keyboard.json b/keyboards/exclusive/e6v2/le/keyboard.json index a2a460d7de..e6d551126e 100644 --- a/keyboards/exclusive/e6v2/le/keyboard.json +++ b/keyboards/exclusive/e6v2/le/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E6-V2 LE", "manufacturer": "Exclusive / E-Team", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6v2/le_bmc/keyboard.json b/keyboards/exclusive/e6v2/le_bmc/keyboard.json index 1e36043e5a..09d99d670f 100644 --- a/keyboards/exclusive/e6v2/le_bmc/keyboard.json +++ b/keyboards/exclusive/e6v2/le_bmc/keyboard.json @@ -11,6 +11,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/exclusive/e6v2/oe/keyboard.json b/keyboards/exclusive/e6v2/oe/keyboard.json index 29730487c9..587205d2df 100644 --- a/keyboards/exclusive/e6v2/oe/keyboard.json +++ b/keyboards/exclusive/e6v2/oe/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E6-V2 OE", "manufacturer": "Exclusive / E-Team", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6v2/oe_bmc/keyboard.json b/keyboards/exclusive/e6v2/oe_bmc/keyboard.json index f287417943..7ff3099249 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/keyboard.json +++ b/keyboards/exclusive/e6v2/oe_bmc/keyboard.json @@ -11,6 +11,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/exclusive/e7v1/keyboard.json b/keyboards/exclusive/e7v1/keyboard.json index 04cd7ff0ae..ac0eb5549a 100644 --- a/keyboards/exclusive/e7v1/keyboard.json +++ b/keyboards/exclusive/e7v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E7-V1", "manufacturer": "Exclusive / E-Team", + "url": "", "maintainer": "masterzen", "usb": { "vid": "0x4558", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e7v1se/keyboard.json b/keyboards/exclusive/e7v1se/keyboard.json index 8154725075..4cd9484ae4 100644 --- a/keyboards/exclusive/e7v1se/keyboard.json +++ b/keyboards/exclusive/e7v1se/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/exclusive/e85/hotswap/keyboard.json b/keyboards/exclusive/e85/hotswap/keyboard.json index 72e578c04e..7fcd61c843 100644 --- a/keyboards/exclusive/e85/hotswap/keyboard.json +++ b/keyboards/exclusive/e85/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E8.5 Hotswap", "manufacturer": "Exclusive", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4558", diff --git a/keyboards/exclusive/e85/rules.mk b/keyboards/exclusive/e85/rules.mk new file mode 100644 index 0000000000..8eef46d0ab --- /dev/null +++ b/keyboards/exclusive/e85/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = exclusive/e85/hotswap diff --git a/keyboards/exclusive/e85/soldered/keyboard.json b/keyboards/exclusive/e85/soldered/keyboard.json index eaffa08933..dfd6d18826 100644 --- a/keyboards/exclusive/e85/soldered/keyboard.json +++ b/keyboards/exclusive/e85/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "E8.5 Soldered", "manufacturer": "Exclusive", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4558", diff --git a/keyboards/exent/keyboard.json b/keyboards/exent/keyboard.json index 5f3e058af0..1fcd11084b 100644 --- a/keyboards/exent/keyboard.json +++ b/keyboards/exent/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Exent", "manufacturer": "Quadcube", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5143", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/eyeohdesigns/babyv/keyboard.json b/keyboards/eyeohdesigns/babyv/keyboard.json index d9bf06190f..1197533189 100644 --- a/keyboards/eyeohdesigns/babyv/keyboard.json +++ b/keyboards/eyeohdesigns/babyv/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "babyv", "manufacturer": "Eye Oh Designs", + "url": "", "maintainer": "eye oh designs", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/eyeohdesigns/theboulevard/keyboard.json b/keyboards/eyeohdesigns/theboulevard/keyboard.json index 78a2e94128..94007dd2c5 100644 --- a/keyboards/eyeohdesigns/theboulevard/keyboard.json +++ b/keyboards/eyeohdesigns/theboulevard/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "the boulevard", "manufacturer": "eye oh designs", + "url": "", "maintainer": "eye oh designs", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/facew/keyboard.json b/keyboards/facew/keyboard.json index b8d22bdf96..a8a7543b7a 100644 --- a/keyboards/facew/keyboard.json +++ b/keyboards/facew/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FaceW", "manufacturer": "SPRiT", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/falsonix/fx19/keyboard.json b/keyboards/falsonix/fx19/keyboard.json index 64b34d0caf..4ef4730a5d 100644 --- a/keyboards/falsonix/fx19/keyboard.json +++ b/keyboards/falsonix/fx19/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -29,6 +31,7 @@ "rows": ["F0", "F1", "F4", "F5", "F6"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/fancytech/fancyalice66/keyboard.json b/keyboards/fancytech/fancyalice66/keyboard.json index c1f0a93f26..869ebe7465 100644 --- a/keyboards/fancytech/fancyalice66/keyboard.json +++ b/keyboards/fancytech/fancyalice66/keyboard.json @@ -162,14 +162,10 @@ "url": "https://www.aliexpress.com/item/1005004272392611.html", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x3663", "vid": "0xECED" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c index 7ce470a71c..0fed76c1b3 100644 --- a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c +++ b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c @@ -41,9 +41,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, RM_SATD, RM_TOGG, RM_HUEU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, RM_NEXT, _______, RM_VALD, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_SAD, RGB_TOG, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_VAD, _______ ) }; \ No newline at end of file diff --git a/keyboards/fatotesa/keyboard.json b/keyboards/fatotesa/keyboard.json index 3013e8b812..ba6fc08d0c 100644 --- a/keyboards/fatotesa/keyboard.json +++ b/keyboards/fatotesa/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -40,6 +42,7 @@ "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6", null], "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/fc660c/keyboard.json b/keyboards/fc660c/keyboard.json index 6486bf0587..6c573fef88 100644 --- a/keyboards/fc660c/keyboard.json +++ b/keyboards/fc660c/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FC660C", "manufacturer": "Hasu", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4853", diff --git a/keyboards/fc980c/keyboard.json b/keyboards/fc980c/keyboard.json index b22747ba15..9944dd3899 100644 --- a/keyboards/fc980c/keyboard.json +++ b/keyboards/fc980c/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FC980C", "manufacturer": "Hasu", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4853", diff --git a/keyboards/fearherbs1/blue_team_pad/keyboard.json b/keyboards/fearherbs1/blue_team_pad/keyboard.json index 5091fc0c31..b47b049b45 100644 --- a/keyboards/fearherbs1/blue_team_pad/keyboard.json +++ b/keyboards/fearherbs1/blue_team_pad/keyboard.json @@ -16,6 +16,7 @@ "mousekey": true, "extrakey": true, "console": true, + "command": false, "nkro": true, "oled": true }, diff --git a/keyboards/feker/ik75/keyboard.json b/keyboards/feker/ik75/keyboard.json index 03b86e5d8b..8f5614098c 100644 --- a/keyboards/feker/ik75/keyboard.json +++ b/keyboards/feker/ik75/keyboard.json @@ -62,6 +62,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/feker/ik75/keymaps/default/keymap.c b/keyboards/feker/ik75/keymaps/default/keymap.c index 7dd762a6ec..0ba5c774db 100644 --- a/keyboards/feker/ik75/keymaps/default/keymap.c +++ b/keyboards/feker/ik75/keymaps/default/keymap.c @@ -92,18 +92,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ [_FN] = LAYOUT( - QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_SLCT, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, _______, RM_TOGG, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RM_HUEU, - _______, _______, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, - _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_VALD, _______ + QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_SLCT, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, _______, RGB_TOG, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_HUI, + _______, _______, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/ferris/0_1/matrix.c b/keyboards/ferris/0_1/matrix.c index c05b193c1a..a3e2bebba6 100644 --- a/keyboards/ferris/0_1/matrix.c +++ b/keyboards/ferris/0_1/matrix.c @@ -29,7 +29,7 @@ along with this program. If not, see . #include "i2c_master.h" extern i2c_status_t mcp23017_status; -#define MCP23017_I2C_TIMEOUT 1000 +#define I2C_TIMEOUT 1000 // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial @@ -41,7 +41,9 @@ extern i2c_status_t mcp23017_status; // All address pins of the mcp23017 are connected to the ground on the ferris // | 0 | 1 | 0 | 0 | A2 | A1 | A0 | // | 0 | 1 | 0 | 0 | 0 | 0 | 0 | -#define I2C_ADDR (0b0100000 << 1) +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) +#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) // Register addresses // See https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/Adafruit_MCP23017.h @@ -49,8 +51,8 @@ extern i2c_status_t mcp23017_status; #define IODIRB 0x01 #define GPPUA 0x0C // GPIO pull-up resistor register #define GPPUB 0x0D -#define MCP23017_GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) -#define MCP23017_GPIOB 0x13 +#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define GPIOB 0x13 #define OLATA 0x14 // output latch register #define OLATB 0x15 @@ -58,14 +60,14 @@ bool i2c_initialized = 0; i2c_status_t mcp23017_status = I2C_ADDR; uint8_t init_mcp23017(void) { - print("init mcp23017\n"); + print("starting init"); mcp23017_status = I2C_ADDR; // I2C subsystem if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) i2c_initialized = true; - wait_ms(MCP23017_I2C_TIMEOUT); + wait_ms(I2C_TIMEOUT); } // set pin direction @@ -74,10 +76,8 @@ uint8_t init_mcp23017(void) { // - driving : output : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - uint8_t buf[] = {0b11111111, 0b11110000}; - print("before transmit\n"); - mcp23017_status = i2c_write_register(I2C_ADDR, IODIRA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); - uprintf("after transmit %i\n", mcp23017_status); + uint8_t buf[] = {IODIRA, 0b11111111, 0b11110000}; + mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); if (!mcp23017_status) { // set pull-up // - unused : on : 1 @@ -85,8 +85,8 @@ uint8_t init_mcp23017(void) { // - driving : off : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - mcp23017_status = i2c_write_register(I2C_ADDR, GPPUA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); - uprintf("after transmit2 %i\n", mcp23017_status); + uint8_t pullup_buf[] = {GPPUA, 0b11111111, 0b11110000}; + mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, pullup_buf, sizeof(pullup_buf), I2C_TIMEOUT); } return mcp23017_status; } @@ -144,12 +144,12 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { // if (++mcp23017_reset_loop >= 1300) { // since mcp23017_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second - print("trying to reset mcp23017\n"); + dprint("trying to reset mcp23017\n"); mcp23017_status = init_mcp23017(); if (mcp23017_status) { - print("right side not responding\n"); + dprint("right side not responding\n"); } else { - print("right side attached\n"); + dprint("right side attached\n"); } } } @@ -204,13 +204,18 @@ static matrix_row_t read_cols(uint8_t row) { if (mcp23017_status) { // if there was an error return 0; } else { + uint8_t buf[] = {GPIOA}; + mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); // We read all the pins on GPIOA. // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. // Since the pins connected to eact columns are sequential, and counting from zero up (col 5 -> GPIOA0, col 6 -> GPIOA1 and so on), the only transformation needed is a bitwise not to swap all zeroes and ones. uint8_t data[] = {0}; - mcp23017_status = i2c_read_register(I2C_ADDR, MCP23017_GPIOA, data, sizeof(data), MCP23017_I2C_TIMEOUT); - return ~data[0]; + if (!mcp23017_status) { + mcp23017_status = i2c_receive(I2C_ADDR_READ, data, sizeof(data), I2C_TIMEOUT); + data[0] = ~(data[0]); + } + return data[0]; } } } @@ -231,7 +236,7 @@ static void unselect_rows(void) { static void select_row(uint8_t row) { if (row < MATRIX_ROWS_PER_SIDE) { - // select on MCU + // select on atmega32u4 pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_MCU; pin_t pin = matrix_row_pins_mcu[row]; gpio_set_pin_output(pin); @@ -243,8 +248,8 @@ static void select_row(uint8_t row) { } else { // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. - uint8_t buf[] = {0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; - mcp23017_status = i2c_write_register(I2C_ADDR, MCP23017_GPIOB, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); + uint8_t buf[] = {GPIOB, 0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; + mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); } } } diff --git a/keyboards/ferris/0_2/matrix.c b/keyboards/ferris/0_2/matrix.c index 76bbcaf7b5..74fab717a1 100644 --- a/keyboards/ferris/0_2/matrix.c +++ b/keyboards/ferris/0_2/matrix.c @@ -30,7 +30,8 @@ along with this program. If not, see . extern i2c_status_t mcp23017_status; #define MCP23017_I2C_TIMEOUT 1000 - +#define I2C_WRITE 0x00 +#define I2C_READ 0x01 // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk index c04c3c92ed..11b9d33a69 100644 --- a/keyboards/ferris/0_2/rules.mk +++ b/keyboards/ferris/0_2/rules.mk @@ -2,3 +2,5 @@ CUSTOM_MATRIX = lite SRC += matrix.c I2C_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = ferris/0_2/base diff --git a/keyboards/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json index 0d081e4d8f..cc156df246 100644 --- a/keyboards/ferris/keymaps/default/keymap.json +++ b/keyboards/ferris/keymaps/default/keymap.json @@ -18,13 +18,13 @@ "LT(7,KC_SPC)", "KC_P1" ], ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "MS_BTN1" , "MS_WHLU" , "MS_BTN2" , "KC_TRNS", + "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", - "KC_TRNS" , "MS_BTN2" , "KC_NO" , "MS_BTN1" , "KC_TRNS", - "KC_TRNS" , "MS_LEFT" , "MS_DOWN" , "MS_UP" , "MS_RGHT", + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS", + "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "MS_WHLL" , "MS_WHLD" , "MS_WHLR" , "KC_TRNS", + "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" @@ -50,8 +50,8 @@ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "RM_PREV" , "KC_TRNS", - "KC_TRNS" , "RM_NEXT" + "RGB_RMOD" , "KC_TRNS", + "KC_TRNS" , "RGB_MOD" ], ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", diff --git a/keyboards/ffkeebs/puca/keyboard.json b/keyboards/ffkeebs/puca/keyboard.json index 3e3acdb1e1..2abd0cfc36 100644 --- a/keyboards/ffkeebs/puca/keyboard.json +++ b/keyboards/ffkeebs/puca/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -54,7 +56,8 @@ "ws2812": { "pin": "D4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/ffkeebs/siris/keyboard.json b/keyboards/ffkeebs/siris/keyboard.json index d8bcb4df36..86531b6d01 100644 --- a/keyboards/ffkeebs/siris/keyboard.json +++ b/keyboards/ffkeebs/siris/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/fjlabs/midway60/keyboard.json b/keyboards/fjlabs/midway60/keyboard.json index 98ebcba649..d05975699b 100644 --- a/keyboards/fjlabs/midway60/keyboard.json +++ b/keyboards/fjlabs/midway60/keyboard.json @@ -35,15 +35,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -325,7 +321,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/fjlabs/polaris/keyboard.json b/keyboards/fjlabs/polaris/keyboard.json index a16b547c8d..674cf8484b 100644 --- a/keyboards/fjlabs/polaris/keyboard.json +++ b/keyboards/fjlabs/polaris/keyboard.json @@ -35,15 +35,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -327,7 +323,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/fjlabs/sinanjuwk/keyboard.json b/keyboards/fjlabs/sinanjuwk/keyboard.json index 66c9f683c0..cb1565c682 100644 --- a/keyboards/fjlabs/sinanjuwk/keyboard.json +++ b/keyboards/fjlabs/sinanjuwk/keyboard.json @@ -32,14 +32,13 @@ } }, "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi": { @@ -250,7 +249,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/flashquark/horizon_z/keyboard.json b/keyboards/flashquark/horizon_z/keyboard.json index 8e3ba47e4d..0fe14e7c60 100755 --- a/keyboards/flashquark/horizon_z/keyboard.json +++ b/keyboards/flashquark/horizon_z/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c index eb2dbdc22d..5b8838c3b2 100755 --- a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), [_LAYER1] = LAYOUT_60_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, RM_TOGG, KC_UP, RM_NEXT, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/flehrad/numbrero/keyboard.json b/keyboards/flehrad/numbrero/keyboard.json index 353712358a..f72b06ca7c 100644 --- a/keyboards/flehrad/numbrero/keyboard.json +++ b/keyboards/flehrad/numbrero/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Numbrero", "manufacturer": "Flehrad", + "url": "", "maintainer": "Flehrad", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,7 +27,8 @@ "rows": ["F6", "B5", "B4", "E6", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_numbrero_numpad": "LAYOUT_numpad", "LAYOUT_numbrero_ortho": "LAYOUT_ortho" diff --git a/keyboards/flehrad/snagpad/keyboard.json b/keyboards/flehrad/snagpad/keyboard.json index 641e6efedd..1b2a2c4ae1 100644 --- a/keyboards/flehrad/snagpad/keyboard.json +++ b/keyboards/flehrad/snagpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Snagpad", "manufacturer": "Flehrad", + "url": "", "maintainer": "Flehrad", "usb": { "vid": "0x4443", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,7 +27,8 @@ "rows": ["D1", "D0", "D4", "C6", "D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x4", "numpad_5x4"], "layouts": { "LAYOUT_ortho_5x4": { diff --git a/keyboards/flehrad/tradestation/keyboard.json b/keyboards/flehrad/tradestation/keyboard.json index 55b75c4d51..757325ceaf 100644 --- a/keyboards/flehrad/tradestation/keyboard.json +++ b/keyboards/flehrad/tradestation/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Trade Station", "manufacturer": "Flehrad", + "url": "", "maintainer": "Flehrad", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,7 +27,8 @@ "rows": ["D1", "C6", "D4", "D0"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x4"], "layout_aliases": { "LAYOUT_tradestation": "LAYOUT_4x2u" diff --git a/keyboards/fleuron/keyboard.json b/keyboards/fleuron/keyboard.json index c3f3c35fe1..5cd7b7d8b2 100644 --- a/keyboards/fleuron/keyboard.json +++ b/keyboards/fleuron/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/fluorite/keyboard.json b/keyboards/fluorite/keyboard.json index 17824c36b7..37e74c387c 100644 --- a/keyboards/fluorite/keyboard.json +++ b/keyboards/fluorite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "fluorite", "manufacturer": "ihotsuno", + "url": "", "maintainer": "ihotsuno, qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/flx/lodestone/keyboard.json b/keyboards/flx/lodestone/keyboard.json index 8ed4e39956..3a70655f2a 100644 --- a/keyboards/flx/lodestone/keyboard.json +++ b/keyboards/flx/lodestone/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/flx/virgo/keyboard.json b/keyboards/flx/virgo/keyboard.json index 7641e3f2ea..996425282d 100644 --- a/keyboards/flx/virgo/keyboard.json +++ b/keyboards/flx/virgo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Virgo", "manufacturer": "FLX", + "url": "", "maintainer": "mechmerlin", "usb": { "vid": "0x4658", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h index af2447eb68..832108a54b 100644 --- a/keyboards/flxlb/zplit/config.h +++ b/keyboards/flxlb/zplit/config.h @@ -18,6 +18,7 @@ along with this program. If not, see . #pragma once +#define SELECT_SOFT_SERIAL_SPEED 1 // #define USE_I2C #define SPLIT_USB_DETECT #define SPLIT_USB_TIMEOUT 500 diff --git a/keyboards/flxlb/zplit/keyboard.json b/keyboards/flxlb/zplit/keyboard.json index fdbe34fc7e..cd16ef7a15 100644 --- a/keyboards/flxlb/zplit/keyboard.json +++ b/keyboards/flxlb/zplit/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/foostan/cornelius/keyboard.json b/keyboards/foostan/cornelius/keyboard.json index 5f80d597e7..75cf098c4d 100644 --- a/keyboards/foostan/cornelius/keyboard.json +++ b/keyboards/foostan/cornelius/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Cornelius", "manufacturer": "Yushakobo", + "url": "", "maintainer": "foostan", "usb": { "vid": "0x3265", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/for_science/keyboard.json b/keyboards/for_science/keyboard.json index 62718933cd..5ae7808d42 100644 --- a/keyboards/for_science/keyboard.json +++ b/keyboards/for_science/keyboard.json @@ -26,7 +26,8 @@ "rows": ["D4", "D7", "E6", "B4", "B5"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_split_4x5_3": { "layout": [ diff --git a/keyboards/forever65/keyboard.json b/keyboards/forever65/keyboard.json index 17866fa6e7..9f128c1177 100644 --- a/keyboards/forever65/keyboard.json +++ b/keyboards/forever65/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/fortitude60/keymaps/default/keymap.c b/keyboards/fortitude60/keymaps/default/keymap.c index 729b940d76..d03c2b7a4b 100644 --- a/keyboards/fortitude60/keymaps/default/keymap.c +++ b/keyboards/fortitude60/keymaps/default/keymap.c @@ -14,13 +14,18 @@ enum my_layers { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -155,3 +160,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} diff --git a/keyboards/fortitude60/rev1/keyboard.json b/keyboards/fortitude60/rev1/keyboard.json index 3970a78404..4ad8a723b7 100644 --- a/keyboards/fortitude60/rev1/keyboard.json +++ b/keyboards/fortitude60/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Fortitude60", "manufacturer": "Pekaso", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCB10", diff --git a/keyboards/fortitude60/rules.mk b/keyboards/fortitude60/rules.mk new file mode 100644 index 0000000000..ef158b8cf0 --- /dev/null +++ b/keyboards/fortitude60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = fortitude60/rev1 diff --git a/keyboards/foxlab/key65/hotswap/keyboard.json b/keyboards/foxlab/key65/hotswap/keyboard.json index e6c74011d3..b21893fa88 100644 --- a/keyboards/foxlab/key65/hotswap/keyboard.json +++ b/keyboards/foxlab/key65/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Key 65 Hotswap", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/key65/universal/keyboard.json b/keyboards/foxlab/key65/universal/keyboard.json index 6a70f6e679..daaa1b37b1 100644 --- a/keyboards/foxlab/key65/universal/keyboard.json +++ b/keyboards/foxlab/key65/universal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Key 65 Universal", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/leaf60/hotswap/keyboard.json b/keyboards/foxlab/leaf60/hotswap/keyboard.json index dedd885ef7..b452fb91e3 100644 --- a/keyboards/foxlab/leaf60/hotswap/keyboard.json +++ b/keyboards/foxlab/leaf60/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Leaf 60 Hotswap", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -58,11 +61,8 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/foxlab/leaf60/hotswap/keymaps/default/keymap.c b/keyboards/foxlab/leaf60/hotswap/keymaps/default/keymap.c index b52ab44e8f..1edc814bab 100644 --- a/keyboards/foxlab/leaf60/hotswap/keymaps/default/keymap.c +++ b/keyboards/foxlab/leaf60/hotswap/keymaps/default/keymap.c @@ -17,14 +17,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( 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_GRV, KC_BSLS, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RCTL), - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DOWN,BL_UP, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/foxlab/leaf60/universal/keyboard.json b/keyboards/foxlab/leaf60/universal/keyboard.json index 8a756aa070..93bfe45cce 100644 --- a/keyboards/foxlab/leaf60/universal/keyboard.json +++ b/keyboards/foxlab/leaf60/universal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Leaf 60 Universal", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/foxlab/time80/keyboard.json b/keyboards/foxlab/time80/keyboard.json index 5bdda54ffd..9902ed770d 100644 --- a/keyboards/foxlab/time80/keyboard.json +++ b/keyboards/foxlab/time80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Time80", "manufacturer": "Fox Lab", + "url": "", "maintainer": "lukelex", "usb": { "vid": "0x464C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/foxlab/time_re/hotswap/keyboard.json b/keyboards/foxlab/time_re/hotswap/keyboard.json index aeef957547..cfef3317f2 100644 --- a/keyboards/foxlab/time_re/hotswap/keyboard.json +++ b/keyboards/foxlab/time_re/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Time 80 Reforged", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/time_re/universal/keyboard.json b/keyboards/foxlab/time_re/universal/keyboard.json index e04ab3978e..b53364a589 100644 --- a/keyboards/foxlab/time_re/universal/keyboard.json +++ b/keyboards/foxlab/time_re/universal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Time 80 Reforged", "manufacturer": "Fox Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/fr4/southpaw75/keyboard.json b/keyboards/fr4/southpaw75/keyboard.json index c5d5094c96..47fb954bf9 100644 --- a/keyboards/fr4/southpaw75/keyboard.json +++ b/keyboards/fr4/southpaw75/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/fr4/unix60/keyboard.json b/keyboards/fr4/unix60/keyboard.json index 7f7bc3fbc7..a6c3d0cb6a 100644 --- a/keyboards/fr4/unix60/keyboard.json +++ b/keyboards/fr4/unix60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": [ "60_hhkb" ], diff --git a/keyboards/fractal/keyboard.json b/keyboards/fractal/keyboard.json index 38a8bf4593..1e322e63b4 100644 --- a/keyboards/fractal/keyboard.json +++ b/keyboards/fractal/keyboard.json @@ -13,7 +13,8 @@ "rows": ["B1", "F7", "F6", "F5", "F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/fractal/keymaps/default/keymap.c b/keyboards/fractal/keymaps/default/keymap.c index fea90ba2f3..ec54dfb78d 100644 --- a/keyboards/fractal/keymaps/default/keymap.c +++ b/keyboards/fractal/keymaps/default/keymap.c @@ -28,15 +28,14 @@ enum preonic_layers { }; enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -170,6 +169,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/free_willy/keyboard.json b/keyboards/free_willy/keyboard.json index d6d7d2d155..512d56516a 100644 --- a/keyboards/free_willy/keyboard.json +++ b/keyboards/free_willy/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -19,7 +21,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/friedrich/keyboard.json b/keyboards/friedrich/keyboard.json index 0489b57cea..d5dd68e0bc 100644 --- a/keyboards/friedrich/keyboard.json +++ b/keyboards/friedrich/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/frobiac/blackbowl/keyboard.json b/keyboards/frobiac/blackbowl/keyboard.json index 704a8b0d62..8a4aed1948 100644 --- a/keyboards/frobiac/blackbowl/keyboard.json +++ b/keyboards/frobiac/blackbowl/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": false, + "command": false, + "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/blackbowl/keymaps/default/keymap.c b/keyboards/frobiac/blackbowl/keymaps/default/keymap.c index c895ceb53c..d85215ea04 100644 --- a/keyboards/frobiac/blackbowl/keymaps/default/keymap.c +++ b/keyboards/frobiac/blackbowl/keymaps/default/keymap.c @@ -74,9 +74,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MOUSE] = LAYOUT( - MS_WHLL, XXXXXXX, MS_UP, XXXXXXX, XXXXXXX, MS_ACL0, XXXXXXX, MS_BTN3, XXXXXXX, MS_BTN5, - MS_WHLR, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLU, MS_ACL1, XXXXXXX, MS_BTN1, MS_BTN2, MS_BTN4, - MOUSE_X, MS_BTN1, MS_BTN3, MS_BTN2, MS_WHLD, MS_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_WH_L, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_ACL0, XXXXXXX, KC_BTN3, XXXXXXX, KC_BTN5, + KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, KC_ACL1, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN4, + MOUSE_X, KC_BTN1, KC_BTN3, KC_BTN2, KC_WH_D, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/frobiac/blackflat/keyboard.json b/keyboards/frobiac/blackflat/keyboard.json index b8c8622ac8..086d90d8f8 100644 --- a/keyboards/frobiac/blackflat/keyboard.json +++ b/keyboards/frobiac/blackflat/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, + "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/blackflat/keymaps/default/keymap.c b/keyboards/frobiac/blackflat/keymaps/default/keymap.c index f5591d6934..8cf73b9316 100644 --- a/keyboards/frobiac/blackflat/keymaps/default/keymap.c +++ b/keyboards/frobiac/blackflat/keymaps/default/keymap.c @@ -74,9 +74,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MOUSE] = LAYOUT( - MS_WHLL, XXXXXXX, MS_UP, XXXXXXX, XXXXXXX, MS_ACL0, XXXXXXX, MS_BTN3, XXXXXXX, MS_BTN5, - MS_WHLR, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLU, MS_ACL1, XXXXXXX, MS_BTN1, MS_BTN2, MS_BTN4, - MOUSE_X, MS_BTN1, MS_BTN3, MS_BTN2, MS_WHLD, MS_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_WH_L, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_ACL0, XXXXXXX, KC_BTN3, XXXXXXX, KC_BTN5, + KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, KC_ACL1, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN4, + MOUSE_X, KC_BTN1, KC_BTN3, KC_BTN2, KC_WH_D, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/frobiac/hypernano/keyboard.json b/keyboards/frobiac/hypernano/keyboard.json index ec7d850fd3..403beed952 100644 --- a/keyboards/frobiac/hypernano/keyboard.json +++ b/keyboards/frobiac/hypernano/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, + "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/hypernano/keymaps/default/keymap.c b/keyboards/frobiac/hypernano/keymaps/default/keymap.c index 5af1391461..5e5277805f 100644 --- a/keyboards/frobiac/hypernano/keymaps/default/keymap.c +++ b/keyboards/frobiac/hypernano/keymaps/default/keymap.c @@ -74,9 +74,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MOUSE] = LAYOUT( - MS_WHLL, XXXXXXX, MS_UP, XXXXXXX, XXXXXXX, MS_ACL0, XXXXXXX, MS_BTN3, XXXXXXX, MS_BTN5, - MS_WHLR, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLU, MS_ACL1, XXXXXXX, MS_BTN1, MS_BTN2, MS_BTN4, - MOUSE_X, MS_BTN1, MS_BTN3, MS_BTN2, MS_WHLD, XXXXXXX, XXXXXXX, MS_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_WH_L, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_ACL0, XXXXXXX, KC_BTN3, XXXXXXX, KC_BTN5, + KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, KC_ACL1, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN4, + MOUSE_X, KC_BTN1, KC_BTN3, KC_BTN2, KC_WH_D, XXXXXXX, XXXXXXX, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ ), diff --git a/keyboards/frobiac/redtilt/keyboard.json b/keyboards/frobiac/redtilt/keyboard.json index 5a6d746f35..f3cbd96e1c 100644 --- a/keyboards/frobiac/redtilt/keyboard.json +++ b/keyboards/frobiac/redtilt/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, + "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/redtilt/keymaps/default/keymap.c b/keyboards/frobiac/redtilt/keymaps/default/keymap.c index 71c7dd49c8..d6df7a9db3 100644 --- a/keyboards/frobiac/redtilt/keymaps/default/keymap.c +++ b/keyboards/frobiac/redtilt/keymaps/default/keymap.c @@ -76,9 +76,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MOUSE] = LAYOUT( - XXXXXXX, MS_WHLL, XXXXXXX, MS_UP, XXXXXXX, XXXXXXX, MS_ACL0, XXXXXXX, MS_BTN3, XXXXXXX, MS_BTN5, XXXXXXX, - XXXXXXX, MS_WHLR, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLU, MS_ACL1, XXXXXXX, MS_BTN1, MS_BTN2, MS_BTN4, XXXXXXX, - XXXXXXX, MOUSE_X, MS_BTN1, MS_BTN3, MS_BTN2, MS_WHLD, MS_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_WH_L, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_ACL0, XXXXXXX, KC_BTN3, XXXXXXX, KC_BTN5, XXXXXXX, + XXXXXXX, KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, KC_ACL1, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN4, XXXXXXX, + XXXXXXX, MOUSE_X, KC_BTN1, KC_BTN3, KC_BTN2, KC_WH_D, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX ), diff --git a/keyboards/frooastboard/nano/keyboard.json b/keyboards/frooastboard/nano/keyboard.json index 45e3dc75d6..5d7783145e 100644 --- a/keyboards/frooastboard/nano/keyboard.json +++ b/keyboards/frooastboard/nano/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json index f1958c04a2..4387452d38 100644 --- a/keyboards/frooastboard/walnut/keyboard.json +++ b/keyboards/frooastboard/walnut/keyboard.json @@ -8,6 +8,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/frooastboard/walnut/keymaps/default/keymap.c b/keyboards/frooastboard/walnut/keymaps/default/keymap.c index bb0e702389..57058d5de7 100644 --- a/keyboards/frooastboard/walnut/keymaps/default/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) }; diff --git a/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c b/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c index d785c66438..b9abd07d7d 100644 --- a/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_nofrow_ansi( 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, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) }; diff --git a/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c b/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c index e8380f5e2a..e6dd393f15 100644 --- a/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_nofrow_iso( 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, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) }; diff --git a/keyboards/fruitykeeb/fruitbar/r1/rules.mk b/keyboards/fruitykeeb/fruitbar/r1/rules.mk new file mode 100644 index 0000000000..3328de6095 --- /dev/null +++ b/keyboards/fruitykeeb/fruitbar/r1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = fruitykeeb/fruitbar/r1/promicro diff --git a/keyboards/fs_streampad/keyboard.json b/keyboards/fs_streampad/keyboard.json index 33604f70aa..5adefff443 100644 --- a/keyboards/fs_streampad/keyboard.json +++ b/keyboards/fs_streampad/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -74,6 +76,9 @@ "pixel_flow": true, "pixel_rain": true }, + "default": { + "animation": "cycle_left_right" + }, "sleep": true, "layout": [ {"matrix": [0, 0], "flags": 4, "x": 0, "y": 0 }, diff --git a/keyboards/fs_streampad/keymaps/default/keymap.c b/keyboards/fs_streampad/keymaps/default/keymap.c index bcbeaa0686..15997a0839 100644 --- a/keyboards/fs_streampad/keymaps/default/keymap.c +++ b/keyboards/fs_streampad/keymaps/default/keymap.c @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( - RM_TOGG, RM_NEXT, RM_PREV, + RGB_TOG, RGB_MOD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/ft/mars65/keyboard.json b/keyboards/ft/mars65/keyboard.json index b8206d29be..3b6f5ec8a9 100644 --- a/keyboards/ft/mars65/keyboard.json +++ b/keyboards/ft/mars65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mars 6.5", "manufacturer": "FT", + "url": "", "maintainer": "wonderbeel", "usb": { "vid": "0x20A0", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ft/mars80/keyboard.json b/keyboards/ft/mars80/keyboard.json index 38261ad547..1d5e53dcbe 100644 --- a/keyboards/ft/mars80/keyboard.json +++ b/keyboards/ft/mars80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mars 8.0", "manufacturer": "FT", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/function96/v1/keyboard.json b/keyboards/function96/v1/keyboard.json index 7a1367a30c..945042b284 100644 --- a/keyboards/function96/v1/keyboard.json +++ b/keyboards/function96/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/function96/v2/keyboard.json b/keyboards/function96/v2/keyboard.json index bbb508ec91..21d677d9a5 100644 --- a/keyboards/function96/v2/keyboard.json +++ b/keyboards/function96/v2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/fungo/keymaps/default/keymap.c b/keyboards/fungo/keymaps/default/keymap.c index 9225514452..6dc4e97f1b 100644 --- a/keyboards/fungo/keymaps/default/keymap.c +++ b/keyboards/fungo/keymaps/default/keymap.c @@ -145,9 +145,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [SAM4] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, MS_ACL0, MS_BTN1, MS_UP, MS_BTN2, KC_NO, KC_NO, - KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, MS_ACL1, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, KC_TAB, - KC_NO, KC_NO, MS_ACL0, MS_ACL1, MS_ACL2, KC_NO, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, MS_ACL2, MS_WHLL, MS_WHLU, MS_WHLD, MS_WHLR, KC_RCTL, + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, KC_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO, + KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_TAB, + KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, KC_ACL2, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_RCTL, KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO ), }; diff --git a/keyboards/fungo/rev1/keyboard.json b/keyboards/fungo/rev1/keyboard.json index e494bce0ad..0970a027c8 100644 --- a/keyboards/fungo/rev1/keyboard.json +++ b/keyboards/fungo/rev1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "key_lock": true, "mousekey": true, @@ -40,7 +42,8 @@ "resync": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "debounce": 3, "tapping": { "toggle": 3 diff --git a/keyboards/funky40/keyboard.json b/keyboards/funky40/keyboard.json index 856a9262f0..d76b9eee2e 100644 --- a/keyboards/funky40/keyboard.json +++ b/keyboards/funky40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Funky40", "manufacturer": "TheFourthCow", + "url": "", "maintainer": "TheFourthCow", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,7 +27,8 @@ "rows": ["D4", "C6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gami_studio/lex60/keyboard.json b/keyboards/gami_studio/lex60/keyboard.json index 9ddc1513f3..be1715c844 100644 --- a/keyboards/gami_studio/lex60/keyboard.json +++ b/keyboards/gami_studio/lex60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lex60", "manufacturer": "Evyd13", + "url": "", "maintainer": "GamiStudio", "usb": { "vid": "0x7353", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/gboards/butterstick/keyboard.json b/keyboards/gboards/butterstick/keyboard.json index 5b5cf773c8..59d703925b 100644 --- a/keyboards/gboards/butterstick/keyboard.json +++ b/keyboards/gboards/butterstick/keyboard.json @@ -1,22 +1,20 @@ { "keyboard_name": "Butter Stick", "manufacturer": "g Heavy Industries", + "url": "", "maintainer": "germ", "usb": { "vid": "0xFEED", "pid": "0x1337", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "build": { "lto": true }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gboards/butterstick/keymaps/default/keymap.c b/keyboards/gboards/butterstick/keymaps/default/keymap.c index d80169a2b8..d0c6af65df 100644 --- a/keyboards/gboards/butterstick/keymaps/default/keymap.c +++ b/keyboards/gboards/butterstick/keymaps/default/keymap.c @@ -49,8 +49,8 @@ uint32_t processQwerty(bool lookup) { P( LSD | RZ, SEND(KC_SPC)); // Dual chords - P( LP | LH, CLICK_MOUSE(MS_BTN2)); - P( ST1 | RF, CLICK_MOUSE(MS_BTN1)); + P( LP | LH, CLICK_MOUSE(KC_MS_BTN2)); + P( ST1 | RF, CLICK_MOUSE(KC_MS_BTN1)); P( LSU | LFT, SEND(KC_ESC)); P( LSD | LK, SEND(KC_LSFT)); P( RZ | RS, SEND(KC_LSFT)); diff --git a/keyboards/gboards/combos/germ-mouse-keys.def b/keyboards/gboards/combos/germ-mouse-keys.def index 55d3afc4ff..c0aff412e5 100644 --- a/keyboards/gboards/combos/germ-mouse-keys.def +++ b/keyboards/gboards/combos/germ-mouse-keys.def @@ -1,2 +1,2 @@ -COMB(gbClick, MS_BTN1, KC_G, KC_B) -COMB(fvClick, MS_BTN2, KC_F, KC_V) +COMB(gbClick, KC_BTN1, KC_G, KC_B) +COMB(fvClick, KC_BTN2, KC_F, KC_V) diff --git a/keyboards/gboards/georgi/keyboard.json b/keyboards/gboards/georgi/keyboard.json index 1262201f88..0b403a5a44 100644 --- a/keyboards/gboards/georgi/keyboard.json +++ b/keyboards/gboards/georgi/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xFEED", "pid": "0x1337", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c index 339622aa9c..932d48959c 100644 --- a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c +++ b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c @@ -55,8 +55,8 @@ uint32_t processQwerty(bool lookup) { P( LFT | LK | LP | LW, REPEAT()); // Mouse Keys - /* P( LO | LSD | LK, CLICK_MOUSE(MS_BTN2)); */ - /* P( LO | LR | LW, CLICK_MOUSE(MS_BTN1)); */ + /* P( LO | LSD | LK, CLICK_MOUSE(KC_MS_BTN2)); */ + /* P( LO | LR | LW, CLICK_MOUSE(KC_MS_BTN1)); */ /* Function layer diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c index f22fac75d8..19683179f3 100644 --- a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c @@ -46,8 +46,8 @@ uint32_t processQwerty(bool lookup) { P( ST1 | ST2 | LW | ST4, SEND(KC_BSPC)); // Mouse Keys - P( LO | LSD | LK, CLICK_MOUSE(MS_BTN2)); - P( LO | LR | LW, CLICK_MOUSE(MS_BTN1)); + P( LO | LSD | LK, CLICK_MOUSE(KC_MS_BTN2)); + P( LO | LR | LW, CLICK_MOUSE(KC_MS_BTN1)); // Thumb Chords P( LA | LO | RE | RU, SEND(KC_CAPS)); diff --git a/keyboards/gboards/georgi/keymaps/default/keymap.c b/keyboards/gboards/georgi/keymaps/default/keymap.c index 32f144914c..955ec0e406 100644 --- a/keyboards/gboards/georgi/keymaps/default/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default/keymap.c @@ -52,8 +52,8 @@ uint32_t processQwerty(bool lookup) { P( ST1 | ST2 | LW | ST4, SEND(KC_BSPC)); // Mouse Keys - P( LO | LSD | LK, CLICK_MOUSE(MS_BTN2)); - P( LO | LR | LW, CLICK_MOUSE(MS_BTN1)); + P( LO | LSD | LK, CLICK_MOUSE(KC_MS_BTN2)); + P( LO | LR | LW, CLICK_MOUSE(KC_MS_BTN1)); // Thumb Chords P( LA | LO | RE | RU, SEND(KC_CAPS)); diff --git a/keyboards/gboards/georgi/keymaps/minimal/keymap.c b/keyboards/gboards/georgi/keymaps/minimal/keymap.c index 3827089532..2f089866b2 100644 --- a/keyboards/gboards/georgi/keymaps/minimal/keymap.c +++ b/keyboards/gboards/georgi/keymaps/minimal/keymap.c @@ -44,8 +44,8 @@ uint32_t processQwerty(bool lookup) { P( ST1 | ST2 | LW | ST4, SEND(KC_BSPC)); // Mouse Keys - P( LO | LSD | LK, CLICK_MOUSE(MS_BTN2)); - P( LO | LR | LW, CLICK_MOUSE(MS_BTN1)); + P( LO | LSD | LK, CLICK_MOUSE(KC_MS_BTN2)); + P( LO | LR | LW, CLICK_MOUSE(KC_MS_BTN1)); // Thumb Chords P( LA | LO | RE | RU, SEND(KC_CAPS)); diff --git a/keyboards/gboards/georgi/keymaps/norman/keymap.c b/keyboards/gboards/georgi/keymaps/norman/keymap.c index 8f607bca1c..1b53cddd8b 100644 --- a/keyboards/gboards/georgi/keymaps/norman/keymap.c +++ b/keyboards/gboards/georgi/keymaps/norman/keymap.c @@ -111,8 +111,8 @@ uint32_t processQwerty(bool lookup) { P( MEDIA | RU, SEND(KC_RALT); SEND(KC_T); SEND(KC_A); SEND(KC_D)); // Mouse Keys and Printscreen - P( LFT | LH, CLICK_MOUSE(MS_BTN1)); - P( LK | LR, CLICK_MOUSE(MS_BTN2)); + P( LFT | LH, CLICK_MOUSE(KC_MS_BTN1)); + P( LK | LR, CLICK_MOUSE(KC_MS_BTN2)); P( RF | RT, SEND(KC_PSCR);); // Number Row Left diff --git a/keyboards/gboards/gergo/keymaps/colemak/keymap.c b/keyboards/gboards/gergo/keymaps/colemak/keymap.c index 5aa7a4a1e8..0783578804 100644 --- a/keyboards/gboards/gergo/keymaps/colemak/keymap.c +++ b/keyboards/gboards/gergo/keymaps/colemak/keymap.c @@ -47,7 +47,7 @@ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, OSM(MOD_LALT), KC ALT_T(KC_DEL), KC_BSPC, KC_SPC, CMD_T(KC_DEL), - MS_BTN3, KC_COLON, + KC_BTN3, KC_COLON, LT(SYMB, KC_ESC), LT(NUMB, KC_F13), LT(NUMB, KC_F14), LT(SYMB, KC_ENT)), /* Keymap 1: Symbols layer * @@ -100,8 +100,8 @@ KC_TRNS, KC_GRV, KC_TILD,KC_TRNS,KC_TRNS, KC_EQL, M2_URL, KC_TRN */ [NUMB] = LAYOUT_gergo( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PGUP, -KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MS_BTN1, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PGDN, -KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MS_BTN2, KC_TRNS, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_TRNS, KC_TRNS, +KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_BTN1, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PGDN, +KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BTN2, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_TRNS, diff --git a/keyboards/gboards/gergo/keymaps/default/keymap.c b/keyboards/gboards/gergo/keymaps/default/keymap.c index 6335b51df8..da6486c97a 100644 --- a/keyboards/gboards/gergo/keymaps/default/keymap.c +++ b/keyboards/gboards/gergo/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = LAYOUT( LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, - MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, MS_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MS_BTN1, MS_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_BSPC ), /* Keymap 1: Symbols layer @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [NUMB] = LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_MPLY, KC_MNXT, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/gboards/gergo/keymaps/germ/keymap.c b/keyboards/gboards/gergo/keymaps/germ/keymap.c index 066b8674bc..8e26223f17 100644 --- a/keyboards/gboards/gergo/keymaps/germ/keymap.c +++ b/keyboards/gboards/gergo/keymaps/germ/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = LAYOUT_gergo( LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, - MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, MS_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MS_BTN1, MS_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_BSPC ), /* Keymap 1: Symbols layer @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [NUMB] = LAYOUT_gergo( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_MPLY, KC_MNXT, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/gboards/gergo/keymaps/oled/keymap.c b/keyboards/gboards/gergo/keymaps/oled/keymap.c index 3e8fce15ef..ab374b9332 100644 --- a/keyboards/gboards/gergo/keymaps/oled/keymap.c +++ b/keyboards/gboards/gergo/keymaps/oled/keymap.c @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = LAYOUT_gergo( LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, - MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, MS_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MS_BTN1, MS_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_BSPC ), /* Keymap 1: Symbols layer @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [NUMB] = LAYOUT_gergo( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_MPLY, KC_MNXT, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/gboards/gergoplex/keyboard.json b/keyboards/gboards/gergoplex/keyboard.json index 111f7b8f2c..cf1e451392 100644 --- a/keyboards/gboards/gergoplex/keyboard.json +++ b/keyboards/gboards/gergoplex/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GergoPlex", "manufacturer": "g Heavy Industries", + "url": "", "maintainer": "germ", "usb": { "vid": "0x6B0A", diff --git a/keyboards/gboards/gergoplex/keymaps/colemak-dhm/gergoplex.def b/keyboards/gboards/gergoplex/keymaps/colemak-dhm/gergoplex.def index 2aada19b75..7ed0122c4b 100644 --- a/keyboards/gboards/gergoplex/keymaps/colemak-dhm/gergoplex.def +++ b/keyboards/gboards/gergoplex/keymaps/colemak-dhm/gergoplex.def @@ -5,7 +5,7 @@ COMB(eiGreat, KC_GT, KC_E, KC_I) COMB(xcDash, KC_MINS, KC_X, KC_C) COMB(hcUnds, KC_UNDS, KC_H, KC_COMM) COMB(khQuot, KC_QUOT, KC_K, KC_H) -COMB(gvClic, MS_BTN1, KC_G, KC_V) -COMB(tdClic, MS_BTN2, KC_T, KC_D) +COMB(gvClic, KC_BTN1, KC_G, KC_V) +COMB(tdClic, KC_BTN2, KC_T, KC_D) SUBS(pasta, "I would just like to interject for a moment.", KC_H, KC_J, KC_K, KC_L) diff --git a/keyboards/gboards/gergoplex/keymaps/colemak-dhm/keymap.c b/keyboards/gboards/gergoplex/keymaps/colemak-dhm/keymap.c index 0c25914540..4303ef4165 100644 --- a/keyboards/gboards/gergoplex/keymaps/colemak-dhm/keymap.c +++ b/keyboards/gboards/gergoplex/keymaps/colemak-dhm/keymap.c @@ -74,8 +74,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SPECIAL] = LAYOUT_split_3x5_3( KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, MS_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, MS_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, CM_TOGG, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_DEL), /* Keymap 2: Numbers/Function/Motion layer @@ -94,6 +94,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMBERS] = LAYOUT_split_3x5_3( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_VOLD, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT) }; diff --git a/keyboards/gboards/gergoplex/keymaps/default/keymap.c b/keyboards/gboards/gergoplex/keymaps/default/keymap.c index e3b762485d..7728304a9a 100644 --- a/keyboards/gboards/gergoplex/keymaps/default/keymap.c +++ b/keyboards/gboards/gergoplex/keymaps/default/keymap.c @@ -88,8 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SPECIAL] = LAYOUT_split_3x5_3( KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, MS_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, MS_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, CM_TOGG, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_DEL), /* Keymap 2: Numbers/Function/Motion layer @@ -108,6 +108,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMBERS] = LAYOUT_split_3x5_3( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_VOLD, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT) }; diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index a34912aee3..54d779570a 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -47,6 +47,7 @@ }, "default": { "animation": "cycle_up_down", + "sat": 255, "speed": 30, "val": 192 }, @@ -57,6 +58,8 @@ "bootloader": "stm32-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json index 2b85961df8..743e5e2392 100644 --- a/keyboards/geekboards/tester/keyboard.json +++ b/keyboards/geekboards/tester/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tester", "manufacturer": "Geekboards", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0xFEED", @@ -54,6 +55,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/geekboards/tester/keymaps/default/keymap.c b/keyboards/geekboards/tester/keymaps/default/keymap.c index 8412a3c550..acf63cb36a 100644 --- a/keyboards/geekboards/tester/keymaps/default/keymap.c +++ b/keyboards/geekboards/tester/keymaps/default/keymap.c @@ -1,7 +1,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - RM_NEXT, KC_1, KC_2, KC_3, + RGB_MOD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, MO(1) ), [1] = LAYOUT( /* Base */ diff --git a/keyboards/geigeigeist/klor/config.h b/keyboards/geigeigeist/klor/config.h deleted file mode 100644 index 2ece9b3d29..0000000000 --- a/keyboards/geigeigeist/klor/config.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#ifdef POINTING_DEVICE_ENABLE -# define POINTING_DEVICE_SCLK_PIN D0 -# define POINTING_DEVICE_SDIO_PIN D1 -#endif - -#ifdef AUDIO_ENABLE -# define AUDIO_PIN B5 -#endif - -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X64 -# define OLED_FONT_H "keyboards/geigeigeist/klor/glcdfont.c" -#endif diff --git a/keyboards/geigeigeist/klor/glcdfont.c b/keyboards/geigeigeist/klor/glcdfont.c deleted file mode 100644 index 3bab5d5081..0000000000 --- a/keyboards/geigeigeist/klor/glcdfont.c +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "progmem.h" - -static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00, 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, - 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, 0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00, 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00, 0x20, 0x12, 0x08, 0x24, 0x02, 0x00, 0x37, 0x49, 0x49, 0x37, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00, 0x08, 0x04, 0x02, 0x7F, 0x00, 0x00, - 0x71, 0x49, 0x49, 0x49, 0x4F, 0x00, 0x41, 0x41, 0x49, 0x49, 0x77, 0x00, 0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00, 0x4F, 0x49, 0x49, 0x49, 0x71, 0x00, 0x7E, 0x49, 0x49, 0x49, 0x70, 0x00, 0x01, 0x01, 0x71, 0x09, 0x07, 0x00, 0x77, 0x49, 0x49, 0x49, 0x77, 0x00, 0x07, 0x49, 0x49, 0x49, 0x3F, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x01, 0x01, 0x59, 0x09, 0x0F, 0x00, 0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x76, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x41, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x49, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x09, 0x00, 0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x70, 0x40, 0x40, 0x40, 0x7F, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x77, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00, 0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00, 0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00, 0x47, 0x49, 0x49, 0x49, 0x79, 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00, 0x77, 0x08, 0x08, 0x08, 0x77, 0x00, 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00, 0x61, 0x51, 0x49, 0x45, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x60, 0x54, 0x54, 0x54, 0x7C, 0x00, 0x7F, 0x44, 0x44, 0x44, 0x78, 0x00, 0x7C, 0x44, 0x44, 0x44, 0x44, 0x00, - 0x78, 0x44, 0x44, 0x44, 0x7F, 0x00, 0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00, 0x08, 0x7F, 0x09, 0x09, 0x09, 0x00, 0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00, 0x7F, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x70, 0x40, 0x40, 0x7D, 0x00, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x76, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00, 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, 0xFC, 0x24, 0x24, 0x24, 0x38, 0x00, 0x38, 0x24, 0x24, 0x24, 0xFC, 0x00, 0x7C, 0x04, 0x04, 0x04, 0x04, 0x00, 0x5C, 0x54, 0x54, 0x54, 0x74, 0x00, 0x04, 0x04, 0x7F, 0x04, 0x04, 0x00, 0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00, 0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00, 0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, 0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F, 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, 0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F, 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, 0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F, 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, - 0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF, 0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00, 0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C, 0x33, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F, - 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x24, 0x24, 0x12, 0x12, 0x24, 0x24, 0x48, 0x48, 0x24, 0x24, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F, 0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x0F, 0x14, 0x21, 0x40, 0x45, 0x41, 0x45, 0x40, 0x21, 0x14, 0x0F, 0x00, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0C, 0x30, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/geigeigeist/klor/keyboard.json b/keyboards/geigeigeist/klor/keyboard.json deleted file mode 100644 index a61c931dd9..0000000000 --- a/keyboards/geigeigeist/klor/keyboard.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "manufacturer": "Geigeigeist", - "keyboard_name": "Klor", - "maintainer": "waffle87", - "build": { - "lto": true - }, - "development_board": "elite_c", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F5", "pin_b": "F4"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "haptic": true, - "mousekey": true, - "oled": true, - "pointing_device": false, - "rgb_matrix": true, - "audio": false - }, - "haptic": { - "driver": "drv2605l" - }, - "matrix_pins": { - "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["C6", "D7", "E6", "B4"] - }, - "rgb_matrix": { - "driver": "ws2812", - "animations": { - "alphas_mods": true, - "band_sat": true, - "band_val": true, - "breathing": true, - "gradient_left_right": true, - "gradient_up_down": true - }, - "layout": [ - {"matrix": [3, 4], "x": 102, "y": 63, "flags": 1}, - {"matrix": [3, 3], "x": 89, "y": 54, "flags": 1}, - {"matrix": [3, 2], "x": 74, "y": 49, "flags": 1}, - {"matrix": [2, 5], "x": 75, "y": 34, "flags": 4}, - {"matrix": [1, 5], "x": 75, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 75, "y": 8, "flags": 4}, - {"matrix": [0, 4], "x": 60, "y": 6, "flags": 4}, - {"matrix": [1, 4], "x": 60, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 60, "y": 32, "flags": 4}, - {"matrix": [3, 1], "x": 58, "y": 48, "flags": 1}, - {"matrix": [2, 3], "x": 46, "y": 25, "flags": 4}, - {"matrix": [1, 3], "x": 46, "y": 12, "flags": 4}, - {"matrix": [0, 3], "x": 46, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 29, "y": 7, "flags": 4}, - {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 31, "y": 33, "flags": 4}, - {"matrix": [2, 1], "x": 17, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 15, "y": 30, "flags": 4}, - {"matrix": [0, 1], "x": 13, "y": 17, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 28, "flags": 1}, - {"matrix": [2, 0], "x": 3, "y": 41, "flags": 1}, - {"matrix": [7, 4], "x": 122, "y": 63, "flags": 1}, - {"matrix": [7, 3], "x": 135, "y": 54, "flags": 1}, - {"matrix": [7, 2], "x": 150, "y": 49, "flags": 1}, - {"matrix": [6, 5], "x": 149, "y": 34, "flags": 4}, - {"matrix": [5, 5], "x": 149, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 149, "y": 8, "flags": 4}, - {"matrix": [4, 4], "x": 163, "y": 6, "flags": 4}, - {"matrix": [5, 4], "x": 163, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 163, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 166, "y": 48, "flags": 1}, - {"matrix": [6, 3], "x": 178, "y": 25, "flags": 4}, - {"matrix": [5, 3], "x": 178, "y": 12, "flags": 4}, - {"matrix": [4, 3], "x": 178, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 195, "y": 7, "flags": 4}, - {"matrix": [5, 2], "x": 194, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 193, "y": 33, "flags": 4}, - {"matrix": [4, 1], "x": 206, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 209, "y": 30, "flags": 4}, - {"matrix": [6, 1], "x": 211, "y": 17, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 28, "flags": 1}, - {"matrix": [6, 0], "x": 221, "y": 41, "flags": 1} - ], - "split_count": [21, 21] - }, - "split": { - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "F4", "pin_b": "F5"} - ] - } - }, - "serial": { - "pin": "D2" - }, - "transport": { - "sync": { - "oled": true, - "matrix_state": true - } - } - }, - "url": "https://github.com/geigeigeist/klor", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x3A3C" - }, - "ws2812": { - "pin": "D3" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "L01", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "L02", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "L05", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "R00", "matrix": [4, 5], "x": 9, "y": 0}, - {"label": "R01", "matrix": [4, 4], "x": 10, "y": 0}, - {"label": "R02", "matrix": [4, 3], "x": 11, "y": 0}, - {"label": "R03", "matrix": [4, 2], "x": 12, "y": 0}, - {"label": "R04", "matrix": [4, 1], "x": 13, "y": 0}, - {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1}, - {"label": "L15", "matrix": [1, 5], "x": 5, "y": 1}, - {"label": "R10", "matrix": [5, 5], "x": 9, "y": 1}, - {"label": "R11", "matrix": [5, 4], "x": 10, "y": 1}, - {"label": "R12", "matrix": [5, 3], "x": 11, "y": 1}, - {"label": "R13", "matrix": [5, 2], "x": 12, "y": 1}, - {"label": "R14", "matrix": [5, 1], "x": 13, "y": 1}, - {"label": "R15", "matrix": [5, 0], "x": 14, "y": 1}, - {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "L35", "matrix": [3, 5], "x": 6, "y": 2}, - {"label": "R30", "matrix": [7, 5], "x": 8, "y": 2}, - {"label": "R20", "matrix": [6, 5], "x": 9, "y": 2}, - {"label": "R21", "matrix": [6, 4], "x": 10, "y": 2}, - {"label": "R22", "matrix": [6, 3], "x": 11, "y": 2}, - {"label": "R23", "matrix": [6, 2], "x": 12, "y": 2}, - {"label": "R24", "matrix": [6, 1], "x": 13, "y": 2}, - {"label": "R25", "matrix": [6, 0], "x": 14, "y": 2}, - {"label": "L31", "matrix": [3, 1], "x": 2, "y": 3}, - {"label": "L32", "matrix": [3, 2], "x": 3, "y": 3}, - {"label": "L33", "matrix": [3, 3], "x": 4, "y": 3}, - {"label": "L34", "matrix": [3, 4], "x": 5, "y": 3}, - {"label": "R31", "matrix": [7, 4], "x": 9, "y": 3}, - {"label": "R32", "matrix": [7, 3], "x": 10, "y": 3}, - {"label": "R33", "matrix": [7, 2], "x": 11, "y": 3}, - {"label": "R34", "matrix": [7, 1], "x": 12, "y": 3} - ] - } - } -} diff --git a/keyboards/geigeigeist/klor/keymaps/default/keymap.json b/keyboards/geigeigeist/klor/keymaps/default/keymap.json deleted file mode 100644 index cb9e5b4005..0000000000 --- a/keyboards/geigeigeist/klor/keymaps/default/keymap.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "keyboard": "geigeigeist/klor", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", - "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", - "KC_DEL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_MUTE", "KC_MPLY", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", - "KC_LCTL", "KC_TRNS", "KC_SPC", "KC_LALT", "KC_LGUI", "KC_ENT", "KC_TRNS", "KC_BSPC" - ] - ] -} diff --git a/keyboards/geigeigeist/klor/klor.c b/keyboards/geigeigeist/klor/klor.c deleted file mode 100644 index 5676c974f0..0000000000 --- a/keyboards/geigeigeist/klor/klor.c +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -static const char PROGMEM klor_face[] = { - // clang-format off - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, - 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - // clang-format on -}; - -void render_keyboard_status(void) { - static const char PROGMEM sep_v[] = {0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0}; - static const char PROGMEM sep_h1[] = {0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0}; - static const char PROGMEM sep_h2[] = {0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0}; - static const char PROGMEM face_1[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0xE1, 0}; - static const char PROGMEM face_2[] = {0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xE1, 0}; - static const char PROGMEM os_m_1[] = {0x95, 0x96, 0}; - static const char PROGMEM os_m_2[] = {0xB5, 0xB6, 0}; - static const char PROGMEM os_w_1[] = {0x97, 0x98, 0}; - static const char PROGMEM os_w_2[] = {0xB7, 0xB8, 0}; - static const char PROGMEM s_lock[] = {0x8F, 0x90, 0}; - static const char PROGMEM n_lock[] = {0x91, 0x92, 0}; - static const char PROGMEM c_lock[] = {0x93, 0x94, 0}; - static const char PROGMEM b_lock[] = {0xE1, 0xE1, 0}; - static const char PROGMEM hap_en[] = {0xB1, 0xB2, 0}; -# ifdef AUDIO_ENABLE - static const char PROGMEM aud_en[] = {0xAF, 0xB0, 0}; - static const char PROGMEM aud_di[] = {0xCF, 0xD0, 0}; -# endif - oled_write_ln_P(sep_v, false); - oled_write_P(keymap_config.swap_lctl_lgui ? os_m_1 : os_w_1, false); - oled_write_P(sep_h1, false); - oled_write_P(face_1, false); - oled_write_P(keymap_config.swap_lctl_lgui ? os_m_2 : os_w_2, false); - oled_write_P(sep_h1, false); - oled_write_P(face_2, false); - oled_write_ln_P(sep_v, false); - - led_t led_usb_state = host_keyboard_led_state(); - oled_write_P(led_usb_state.num_lock ? n_lock : b_lock, false); - oled_write_P(led_usb_state.caps_lock ? c_lock : b_lock, false); - oled_write_P(led_usb_state.scroll_lock ? s_lock : b_lock, false); - oled_write_P(sep_h2, false); - -# ifndef AUDIO_ENABLE - oled_write_P(b_lock, false); -# endif - oled_write_P(b_lock, false); - -# ifdef AUDIO_ENABLE - oled_write_P(is_audio_on() ? aud_en : aud_di, false); -# endif - oled_write_P(hap_en, false); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (is_keyboard_master()) { - render_keyboard_status(); - } else { - oled_write_raw_P(klor_face, sizeof(klor_face)); - } - return false; -} -#endif diff --git a/keyboards/geigeigeist/klor/readme.md b/keyboards/geigeigeist/klor/readme.md deleted file mode 100644 index 905dc8c5b3..0000000000 --- a/keyboards/geigeigeist/klor/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Klor - -![keyboard_image](https://i.imgur.com/1cx62B2.jpeg) - -* Keyboard Maintainer: [waffle87](https://github.com/waffle87) -* Hardware Supported: Klor PCBs w/ Pro-Micro compatible microcontrollers -* Hardware Availability: [github:geigeigeist/klor](https://github.com/geigeigeist/klor) - -**Note**: Audio and Pointing Device features are disabled by default to conserve firmware space on AVR - -Make example for this keyboard (after setting up your build environment): - - make geigeigeist/klor:default - -Flashing example for this keyboard: - - make geigeigeist/klor: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix -* **Physical reset button**: Briefly press the button on the PCB diff --git a/keyboards/geigeigeist/klor/rules.mk b/keyboards/geigeigeist/klor/rules.mk deleted file mode 100644 index 5ff6500c9a..0000000000 --- a/keyboards/geigeigeist/klor/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = paw3204 diff --git a/keyboards/geistmaschine/geist/keyboard.json b/keyboards/geistmaschine/geist/keyboard.json index 4d1b29c67f..079dd8d6d9 100644 --- a/keyboards/geistmaschine/geist/keyboard.json +++ b/keyboards/geistmaschine/geist/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/geistmaschine/macropod/keyboard.json b/keyboards/geistmaschine/macropod/keyboard.json index f5803778dd..333e7c0a50 100644 --- a/keyboards/geistmaschine/macropod/keyboard.json +++ b/keyboards/geistmaschine/macropod/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/generic_panda/panda65_01/keyboard.json b/keyboards/generic_panda/panda65_01/keyboard.json index 1ba0ec134b..098f3df1c0 100644 --- a/keyboards/generic_panda/panda65_01/keyboard.json +++ b/keyboards/generic_panda/panda65_01/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/genone/eclipse_65/keyboard.json b/keyboards/genone/eclipse_65/keyboard.json index 0b7a27e910..aeb2d8973c 100644 --- a/keyboards/genone/eclipse_65/keyboard.json +++ b/keyboards/genone/eclipse_65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/genone/g1_65/keyboard.json b/keyboards/genone/g1_65/keyboard.json index 3ee452f9d1..367bdfe7bb 100644 --- a/keyboards/genone/g1_65/keyboard.json +++ b/keyboards/genone/g1_65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/geonworks/ee_at/keyboard.json b/keyboards/geonworks/ee_at/keyboard.json index c901901ab0..803e0d3640 100644 --- a/keyboards/geonworks/ee_at/keyboard.json +++ b/keyboards/geonworks/ee_at/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/geonworks/frogmini/fmh/keyboard.json b/keyboards/geonworks/frogmini/fmh/keyboard.json index fd42773042..29c5ee8272 100644 --- a/keyboards/geonworks/frogmini/fmh/keyboard.json +++ b/keyboards/geonworks/frogmini/fmh/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -31,16 +33,11 @@ "processor": "STM32F401", "bootloader": "stm32-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb" - ], + "community_layouts": ["60_tsangan_hhkb", "60_ansi_tsangan", "60_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/geonworks/frogmini/fmh/keymaps/default/keymap.c b/keyboards/geonworks/frogmini/fmh/keymaps/default/keymap.c index b4a9e53080..4a800e085b 100644 --- a/keyboards/geonworks/frogmini/fmh/keymaps/default/keymap.c +++ b/keyboards/geonworks/frogmini/fmh/keymaps/default/keymap.c @@ -16,28 +16,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */ +[0] = LAYOUT_60_tsangan_hhkb( /* Base */ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[2] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[3] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/geonworks/frogmini/fms/keyboard.json b/keyboards/geonworks/frogmini/fms/keyboard.json index 4c582c2bd8..06a9c56047 100644 --- a/keyboards/geonworks/frogmini/fms/keyboard.json +++ b/keyboards/geonworks/frogmini/fms/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -35,10 +37,6 @@ }, "processor": "STM32F401", "bootloader": "stm32-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb_10u_space": "LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -321,7 +319,7 @@ {"matrix": [5, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -593,7 +591,7 @@ {"matrix": [5, 11], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space": { + "LAYOUT_60_tsangan_hhkb_10u_space": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c index 041d458e9b..db8693a146 100644 --- a/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c +++ b/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c @@ -16,28 +16,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space( /* Base */ +[0] = LAYOUT_60_tsangan_hhkb_10u_space( /* Base */ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_SPC, MO(1), KC_RCTL ), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space( +[1] = LAYOUT_60_tsangan_hhkb_10u_space( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space( +[2] = LAYOUT_60_tsangan_hhkb_10u_space( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift_10u_space( +[3] = LAYOUT_60_tsangan_hhkb_10u_space( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/geonworks/w1_at/keyboard.json b/keyboards/geonworks/w1_at/keyboard.json index 240463b9c4..8b7991c03d 100644 --- a/keyboards/geonworks/w1_at/keyboard.json +++ b/keyboards/geonworks/w1_at/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ggkeyboards/genesis/hotswap/keyboard.json b/keyboards/ggkeyboards/genesis/hotswap/keyboard.json index cb5e94cf38..5cd4f07716 100644 --- a/keyboards/ggkeyboards/genesis/hotswap/keyboard.json +++ b/keyboards/ggkeyboards/genesis/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Genesis Hotswap", "manufacturer": "GG Keyboards", + "url": "", "maintainer": "Spooknik", "usb": { "vid": "0xBB00", diff --git a/keyboards/ggkeyboards/genesis/solder/keyboard.json b/keyboards/ggkeyboards/genesis/solder/keyboard.json index 15fcc2334b..485be430e5 100644 --- a/keyboards/ggkeyboards/genesis/solder/keyboard.json +++ b/keyboards/ggkeyboards/genesis/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Genesis Solder", "manufacturer": "GG Keyboards", + "url": "", "maintainer": "Spooknik", "usb": { "vid": "0xBB00", diff --git a/keyboards/gh60/revc/keyboard.json b/keyboards/gh60/revc/keyboard.json index bfb81ad093..ea9794d9d2 100644 --- a/keyboards/gh60/revc/keyboard.json +++ b/keyboards/gh60/revc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GH60 Rev C", "manufacturer": "geekhack", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4335", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -30,15 +33,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_iso", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -537,7 +532,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/gh60/satan/keyboard.json b/keyboards/gh60/satan/keyboard.json index 864e5fa90d..e3f2685297 100644 --- a/keyboards/gh60/satan/keyboard.json +++ b/keyboards/gh60/satan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GH60 Satan", "manufacturer": "SATAN", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4335", diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c index 524b1b1b3f..b0ec4a72cd 100644 --- a/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c +++ b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = LAYOUT_60_iso_split_rshift( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, QK_BOOT, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, UG_TOGG, UG_NEXT, RGB_M_B, UG_VALU, UG_VALD, BL_UP, BL_DOWN, _______, + KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, RGB_TOG, RGB_MOD, RGB_M_B, RGB_VAI, RGB_VAD, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, KC_CEDL, _______, BL_TOGG, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______ ) diff --git a/keyboards/gh60/v1p3/keyboard.json b/keyboards/gh60/v1p3/keyboard.json index 38496bb9de..18ac7608bb 100644 --- a/keyboards/gh60/v1p3/keyboard.json +++ b/keyboards/gh60/v1p3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GH60 v1.3", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gh80_3000/keyboard.json b/keyboards/gh80_3000/keyboard.json index cf3c346486..c88f5c8232 100644 --- a/keyboards/gh80_3000/keyboard.json +++ b/keyboards/gh80_3000/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GH80-3000", "manufacturer": "farmakon", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json index 543dc041a7..b90655647d 100644 --- a/keyboards/ghs/jem/info.json +++ b/keyboards/ghs/jem/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "GHS.JEM", "manufacturer": "Gone Hacking Studio", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0x0645", @@ -10,6 +11,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "rgblight": true, @@ -26,6 +29,8 @@ "rgblight": { "led_count": 22, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "breathing": true, "rainbow_mood": true, diff --git a/keyboards/ghs/jem/rules.mk b/keyboards/ghs/jem/rules.mk new file mode 100644 index 0000000000..e96c00e5c0 --- /dev/null +++ b/keyboards/ghs/jem/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ghs/jem/soldered diff --git a/keyboards/ghs/rar/keyboard.json b/keyboards/ghs/rar/keyboard.json index 75b835a3e2..96184abe6a 100644 --- a/keyboards/ghs/rar/keyboard.json +++ b/keyboards/ghs/rar/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ghs/xls/keyboard.json b/keyboards/ghs/xls/keyboard.json index 64ce7cbb91..f062f32af8 100644 --- a/keyboards/ghs/xls/keyboard.json +++ b/keyboards/ghs/xls/keyboard.json @@ -5,6 +5,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "encoder": true, @@ -17,6 +19,7 @@ "indicators": { "num_lock": "B0" }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h index 886df53c18..bd501c1f76 100644 --- a/keyboards/giabalanai/config.h +++ b/keyboards/giabalanai/config.h @@ -17,6 +17,16 @@ along with this program. If not, see . #pragma once +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps + // Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve. #define MASTER_RIGHT diff --git a/keyboards/giabalanai/keyboard.json b/keyboards/giabalanai/keyboard.json index 2e2357fe4c..ae43139dad 100644 --- a/keyboards/giabalanai/keyboard.json +++ b/keyboards/giabalanai/keyboard.json @@ -34,8 +34,10 @@ "extrakey": true, "encoder": true, "bootmagic": false, + "console": false, "mousekey": false, "nkro": false, + "command": false, "backlight": false }, "build": { diff --git a/keyboards/gizmo_engineering/gk6/keyboard.json b/keyboards/gizmo_engineering/gk6/keyboard.json index 45e5bf0706..d68b356d9c 100644 --- a/keyboards/gizmo_engineering/gk6/keyboard.json +++ b/keyboards/gizmo_engineering/gk6/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c index 5c9208aacf..374152b945 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c index eac0406751..b303032171 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c index 041353b5a8..b0e1615479 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT ), diff --git a/keyboards/gkeyboard/gkb_m16/keyboard.json b/keyboards/gkeyboard/gkb_m16/keyboard.json index 968e154598..1f1fe50a67 100644 --- a/keyboards/gkeyboard/gkb_m16/keyboard.json +++ b/keyboards/gkeyboard/gkb_m16/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GKB-M16", "manufacturer": "gkeyboard", + "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x474B", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gkeyboard/gpad8_2r/keyboard.json b/keyboards/gkeyboard/gpad8_2r/keyboard.json index 6e3f510921..6c9a779b05 100644 --- a/keyboards/gkeyboard/gpad8_2r/keyboard.json +++ b/keyboards/gkeyboard/gpad8_2r/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -35,8 +37,8 @@ "encoder": { "enabled": true, "rotary": [ - {"pin_a": "GP29", "pin_b": "GP28"}, - {"pin_a": "GP2", "pin_b": "GP3"} + {"pin_a": "GP29", "pin_b": "GP28", "resolution": 4}, + {"pin_a": "GP2", "pin_b": "GP3", "resolution": 4} ] }, "rgb_matrix": { diff --git a/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c b/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c index 7ad050edb9..536a1ee7d8 100644 --- a/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c +++ b/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_MUTE, RM_TOGG, + KC_MUTE, RGB_TOG, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H ), @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #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(RM_NEXT, RM_PREV) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } diff --git a/keyboards/gkeyboard/greatpad/keyboard.json b/keyboards/gkeyboard/greatpad/keyboard.json index d578111703..6f55141333 100644 --- a/keyboards/gkeyboard/greatpad/keyboard.json +++ b/keyboards/gkeyboard/greatpad/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -60,6 +62,7 @@ "rainbow_moving_chevron": true, "rainbow_pinwheels": true, "raindrops": true, + "solid_color": true, "solid_multisplash": true, "solid_reactive": true, "solid_reactive_cross": true, diff --git a/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c b/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c index 47cf419dd1..1fd0edc5ca 100644 --- a/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c +++ b/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_MUTE, RM_TOGG, + KC_MUTE, RGB_TOG, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN, @@ -16,6 +16,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #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(RM_PREV, RM_NEXT) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, }; #endif diff --git a/keyboards/gl516/a52gl/keyboard.json b/keyboards/gl516/a52gl/keyboard.json index 4167f7ffc1..ad4921f635 100644 --- a/keyboards/gl516/a52gl/keyboard.json +++ b/keyboards/gl516/a52gl/keyboard.json @@ -8,7 +8,8 @@ "pid": "0xE8D1", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/gl516/j73gl/keyboard.json b/keyboards/gl516/j73gl/keyboard.json index 06f1a8d763..5fba198a71 100644 --- a/keyboards/gl516/j73gl/keyboard.json +++ b/keyboards/gl516/j73gl/keyboard.json @@ -26,7 +26,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/gl516/n51gl/keyboard.json b/keyboards/gl516/n51gl/keyboard.json index 388541c23a..c1ea4ab579 100644 --- a/keyboards/gl516/n51gl/keyboard.json +++ b/keyboards/gl516/n51gl/keyboard.json @@ -31,7 +31,8 @@ {"pin_a": "D7", "pin_b": "E6", "resolution": 3} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/gl516/xr63gl/keyboard.json b/keyboards/gl516/xr63gl/keyboard.json index e36b0622d6..ddeb425462 100644 --- a/keyboards/gl516/xr63gl/keyboard.json +++ b/keyboards/gl516/xr63gl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP26", "GP27", "GP28", "GP29", "GP0", "GP3", "GP4", "GP2", "GP1"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/glenpickle/chimera_ergo/keyboard.json b/keyboards/glenpickle/chimera_ergo/keyboard.json index d2b4d93b9d..038498fd10 100644 --- a/keyboards/glenpickle/chimera_ergo/keyboard.json +++ b/keyboards/glenpickle/chimera_ergo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chimera Ergo", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/glenpickle/chimera_ls/keyboard.json b/keyboards/glenpickle/chimera_ls/keyboard.json index 23c870c74d..b0d6a52912 100644 --- a/keyboards/glenpickle/chimera_ls/keyboard.json +++ b/keyboards/glenpickle/chimera_ls/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chimera Lets Split", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index b3ac9906db..d1f01fc8cb 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -204,26 +204,26 @@ led_config_t g_led_config = {{ {196, 64}, // 65 Down {210, 64}, // 66 Right - {224, 0 }, // 69 LED 1 - {224, 7 }, // 70 LED 2 - {224, 14}, // 71 LED 3 - {224, 21}, // 72 LED 4 - {224, 28}, // 73 LED 5 - {224, 35}, // 74 LED 6 - {224, 42}, // 75 LED 7 - {224, 49}, // 76 LED 8 - {224, 56}, // 77 LED 9 - {224, 64}, // 78 LED 10 - {0, 0 }, // 79 LED 11 - {0, 7 }, // 80 LED 12 - {0, 14}, // 81 LED 13 - {0, 21}, // 82 LED 14 - {0, 28}, // 83 LED 15 - {0, 35}, // 84 LED 16 - {0, 42}, // 85 LED 17 - {0, 49}, // 86 LED 18 - {0, 56}, // 87 LED 19 - {0, 64}, // 88 LED 20 + {0, 0}, // 69 LED 1 + {0, 7}, // 70 LED 2 + {0, 14}, // 71 LED 3 + {0, 21}, // 72 LED 4 + {0, 28}, // 73 LED 5 + {0, 35}, // 74 LED 6 + {0, 42}, // 75 LED 7 + {0, 49}, // 76 LED 8 + {0, 56}, // 77 LED 9 + {0, 64}, // 78 LED 10 + {224, 0 }, // 79 LED 11 + {224, 7 }, // 80 LED 12 + {224, 14}, // 81 LED 13 + {224, 21}, // 82 LED 14 + {224, 28}, // 83 LED 15 + {224, 35}, // 84 LED 16 + {224, 42}, // 85 LED 17 + {224, 49}, // 86 LED 18 + {224, 56}, // 87 LED 19 + {224, 64}, // 88 LED 20 }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json index 70c308da5f..a5c4c92552 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c index 2de830820a..42affd3de6 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RM_VALU, KC_HOME, - _______, _______, _______, QK_BOOT, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, + _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ) }; diff --git a/keyboards/gmmk/gmmk2/p65/halconf.h b/keyboards/gmmk/gmmk2/p65/halconf.h index 24941b1b6c..293d182917 100644 --- a/keyboards/gmmk/gmmk2/p65/halconf.h +++ b/keyboards/gmmk/gmmk2/p65/halconf.h @@ -22,5 +22,8 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next + diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index abadaccd34..2be5285394 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -206,26 +206,26 @@ led_config_t g_led_config = {{ {196, 64}, // 66 Down {210, 64}, // 67 Right - {224, 0 }, // 68 LED 1 - {224, 7 }, // 69 LED 2 - {224, 14}, // 70 LED 3 - {224, 21}, // 71 LED 4 - {224, 28}, // 72 LED 5 - {224, 35}, // 73 LED 6 - {224, 42}, // 74 LED 7 - {224, 49}, // 75 LED 8 - {224, 56}, // 76 LED 9 - {224, 64}, // 77 LED 10 - {0, 0 }, // 78 LED 11 - {0, 7 }, // 79 LED 12 - {0, 14}, // 80 LED 13 - {0, 21}, // 81 LED 14 - {0, 28}, // 82 LED 15 - {0, 35}, // 83 LED 16 - {0, 42}, // 84 LED 17 - {0, 49}, // 85 LED 18 - {0, 56}, // 86 LED 19 - {0, 64}, // 87 LED 20 + {0, 0}, // 68 LED 1 + {0, 7}, // 69 LED 2 + {0, 14}, // 70 LED 3 + {0, 21}, // 71 LED 4 + {0, 28}, // 72 LED 5 + {0, 35}, // 73 LED 6 + {0, 42}, // 74 LED 7 + {0, 49}, // 75 LED 8 + {0, 56}, // 76 LED 9 + {0, 64}, // 77 LED 10 + {224, 0 }, // 78 LED 11 + {224, 7 }, // 79 LED 12 + {224, 14}, // 80 LED 13 + {224, 21}, // 81 LED 14 + {224, 28}, // 82 LED 15 + {224, 35}, // 83 LED 16 + {224, 42}, // 84 LED 17 + {224, 49}, // 85 LED 18 + {224, 56}, // 86 LED 19 + {224, 64}, // 87 LED 20 }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, diff --git a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json index 9240268b4f..a4576c8c7f 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c index d0f1d08fd1..6a3da299a2 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c @@ -39,6 +39,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, 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_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RM_VALU, KC_HOME, - _______, _______, _______, QK_BOOT, _______, _______, RM_PREV, RM_VALD, RM_NEXT) + _______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, + _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD) }; diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json index 0646be8c88..8fd81ba1a0 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c index 36a9324844..2fc12c4f03 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c @@ -41,6 +41,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, UC_WIN, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT, _______, _______) + _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, UC_WIN, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______) }; diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 852d29df65..1b246e4f3f 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/gmmk/gmmk2/p96/halconf.h b/keyboards/gmmk/gmmk2/p96/halconf.h index 24941b1b6c..293d182917 100644 --- a/keyboards/gmmk/gmmk2/p96/halconf.h +++ b/keyboards/gmmk/gmmk2/p96/halconf.h @@ -22,5 +22,8 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next + diff --git a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json index 679881a94b..040b6f9c6f 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c index 80684a2d0b..0f56355d09 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c @@ -39,6 +39,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_SATU, RM_SATD, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, UC_WIN, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT, _______, _______) + _______, _______, RGB_SAI, RGB_SAD, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, UC_WIN, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______) }; diff --git a/keyboards/gmmk/numpad/halconf.h b/keyboards/gmmk/numpad/halconf.h index 7ac9455f98..b6b68a4e63 100644 --- a/keyboards/gmmk/numpad/halconf.h +++ b/keyboards/gmmk/numpad/halconf.h @@ -18,6 +18,9 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #define HAL_USE_ADC TRUE -#include_next + +#include_next \ No newline at end of file diff --git a/keyboards/gmmk/numpad/keymaps/default/keymap.c b/keyboards/gmmk/numpad/keymaps/default/keymap.c index b7f9ff46b3..aa1829cdd4 100644 --- a/keyboards/gmmk/numpad/keymaps/default/keymap.c +++ b/keyboards/gmmk/numpad/keymaps/default/keymap.c @@ -37,10 +37,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( _______, KC_PSLS, KC_PAST, KC_PMNS, - KC_P7, RM_VALU, KC_P9, KC_PPLS, - RM_PREV, KC_P5, RM_NEXT, KC_CALC, - KC_P1, RM_VALD, KC_P3, KC_PENT, - RM_TOGG, QK_BOOT + KC_P7, RGB_VAI, KC_P9, KC_PPLS, + RGB_RMOD, KC_P5, RGB_MOD, KC_CALC, + KC_P1, RGB_VAD, KC_P3, KC_PENT, + RGB_TOG, QK_BOOT ) }; diff --git a/keyboards/gmmk/pro/rev1/ansi/keyboard.json b/keyboards/gmmk/pro/rev1/ansi/keyboard.json index fbb9107d16..867f7e1d02 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev1/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c index 5d9aab5465..95f82d9a3d 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), diff --git a/keyboards/gmmk/pro/rev1/halconf.h b/keyboards/gmmk/pro/rev1/halconf.h index cfd866f371..8d9b60c234 100644 --- a/keyboards/gmmk/pro/rev1/halconf.h +++ b/keyboards/gmmk/pro/rev1/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/gmmk/pro/rev1/iso/keyboard.json b/keyboards/gmmk/pro/rev1/iso/keyboard.json index 7506f8952d..6eabec96fe 100644 --- a/keyboards/gmmk/pro/rev1/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev1/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c index 272c18a0df..49752bf6a0 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), diff --git a/keyboards/gmmk/pro/rev2/ansi/keyboard.json b/keyboards/gmmk/pro/rev2/ansi/keyboard.json index 4e0fdfccd9..21bc7df7fb 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev2/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c index 2863121e7f..cbea58716e 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), @@ -63,6 +63,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev2/halconf.h b/keyboards/gmmk/pro/rev2/halconf.h index cfd866f371..8d9b60c234 100644 --- a/keyboards/gmmk/pro/rev2/halconf.h +++ b/keyboards/gmmk/pro/rev2/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/gmmk/pro/rev2/iso/keyboard.json b/keyboards/gmmk/pro/rev2/iso/keyboard.json index 01db9dc22f..83d1fd3028 100644 --- a/keyboards/gmmk/pro/rev2/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev2/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c index fc2abb8b17..e22e616505 100644 --- a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), diff --git a/keyboards/gon/nerd60/keyboard.json b/keyboards/gon/nerd60/keyboard.json index 01cbaf3cd0..590b3f3d9e 100644 --- a/keyboards/gon/nerd60/keyboard.json +++ b/keyboards/gon/nerd60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NerD 60", "manufacturer": "GON", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E45", diff --git a/keyboards/gon/nerdtkl/keyboard.json b/keyboards/gon/nerdtkl/keyboard.json index ae9db2553b..ccf13ec325 100644 --- a/keyboards/gon/nerdtkl/keyboard.json +++ b/keyboards/gon/nerdtkl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NerD TKL", "manufacturer": "GON", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E45", diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c index 52e1434f00..0ed811c89f 100644 --- a/keyboards/gopolar/gg86/gg86.c +++ b/keyboards/gopolar/gg86/gg86.c @@ -58,7 +58,7 @@ led_config_t g_led_config = { { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -93,10 +93,10 @@ bool rgb_matrix_indicators_kb(void) { return false; } - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); diff --git a/keyboards/gopolar/gg86/keyboard.json b/keyboards/gopolar/gg86/keyboard.json index 3412a7c63c..b704582aa6 100644 --- a/keyboards/gopolar/gg86/keyboard.json +++ b/keyboards/gopolar/gg86/keyboard.json @@ -1,18 +1,15 @@ { "keyboard_name": "GG86 Tai-Chi", "manufacturer": "Gopolar", + "url": "", "maintainer": "Gopolar", "usb": { "vid": "0x0007", "pid": "0x0007", "device_version": "0.0.1", + "force_nkro": true, "no_startup_check": true }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/gopolar/gg86/keymaps/default/keymap.c b/keyboards/gopolar/gg86/keymaps/default/keymap.c index c6f7358472..e192d46a80 100644 --- a/keyboards/gopolar/gg86/keymaps/default/keymap.c +++ b/keyboards/gopolar/gg86/keymaps/default/keymap.c @@ -89,11 +89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [1] = LAYOUT_all( KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EE_CLR, _______, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_SPDU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_SPDD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), /* @@ -115,11 +115,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [2] = LAYOUT_all( KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_SPDU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_SPDD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), /* @@ -141,11 +141,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [3] = LAYOUT_all( KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_SPDU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_SPDD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), }; diff --git a/keyboards/gorthage_truck/keyboard.json b/keyboards/gorthage_truck/keyboard.json index 4af39afca3..1a0a364f96 100644 --- a/keyboards/gorthage_truck/keyboard.json +++ b/keyboards/gorthage_truck/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gowla/keyboard.json b/keyboards/gowla/keyboard.json index 0922862146..0f64cad79b 100644 --- a/keyboards/gowla/keyboard.json +++ b/keyboards/gowla/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -19,7 +21,8 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_3x3": { "layout": [ diff --git a/keyboards/gray_studio/aero75/keyboard.json b/keyboards/gray_studio/aero75/keyboard.json index e510c160e8..c0ede794c2 100644 --- a/keyboards/gray_studio/aero75/keyboard.json +++ b/keyboards/gray_studio/aero75/keyboard.json @@ -39,6 +39,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/apollo80/keyboard.json b/keyboards/gray_studio/apollo80/keyboard.json index 6211f78447..f3425aa20d 100644 --- a/keyboards/gray_studio/apollo80/keyboard.json +++ b/keyboards/gray_studio/apollo80/keyboard.json @@ -35,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gray_studio/bd60/bd60.c b/keyboards/gray_studio/bd60/bd60.c deleted file mode 100644 index 2461485e69..0000000000 --- a/keyboards/gray_studio/bd60/bd60.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2023 CMM.S Freather - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGBLIGHT_LAYERS -const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_WHITE} -); - -// Now define the array of layers. Later layers take precedence -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer -); - -void keyboard_post_init_kb(void){ - rgblight_layers = my_rgb_layers; - keyboard_post_init_user(); -} - -bool led_update_kb(led_t led_state){ - bool res = led_update_user(led_state); - if (res) { - rgblight_set_layer_state(0, led_state.caps_lock); - } - return res; -} -#endif diff --git a/keyboards/gray_studio/bd60/keyboard.json b/keyboards/gray_studio/bd60/keyboard.json deleted file mode 100644 index d9c5133b1e..0000000000 --- a/keyboards/gray_studio/bd60/keyboard.json +++ /dev/null @@ -1,312 +0,0 @@ -{ - "manufacturer": "GrayStudio", - "keyboard_name": "BD60", - "maintainer": "srk24", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A3", "C14", "C13", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A8", "B15", "B14"], - "rows": ["B13", "B12", "A2", "A0", "A1"] - }, - "processor": "STM32F072", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "brightness_steps": 8, - "default": { - "animation": "rainbow_mood" - }, - "layers": { - "enabled": true - }, - "led_count": 1, - "max_brightness": 150, - "saturation_steps": 8, - "sleep": true - }, - "usb": { - "device_version": "0.0.2", - "pid": "0x4060", - "vid": "0x4753" - }, - "ws2812": { - "pin": "B10" - }, - "community_layouts": ["60_ansi", "60_ansi_wkl", "60_hhkb"], - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 6.5, "y": 1}, - {"matrix": [1, 8], "x": 7.5, "y": 1}, - {"matrix": [1, 9], "x": 8.5, "y": 1}, - {"matrix": [1, 10], "x": 9.5, "y": 1}, - {"matrix": [1, 11], "x": 10.5, "y": 1}, - {"matrix": [1, 12], "x": 11.5, "y": 1}, - {"matrix": [1, 13], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 6.5, "y": 1}, - {"matrix": [1, 8], "x": 7.5, "y": 1}, - {"matrix": [1, 9], "x": 8.5, "y": 1}, - {"matrix": [1, 10], "x": 9.5, "y": 1}, - {"matrix": [1, 11], "x": 10.5, "y": 1}, - {"matrix": [1, 12], "x": 11.5, "y": 1}, - {"matrix": [1, 13], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.5}, - {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 6.5, "y": 1}, - {"matrix": [1, 8], "x": 7.5, "y": 1}, - {"matrix": [1, 9], "x": 8.5, "y": 1}, - {"matrix": [1, 10], "x": 9.5, "y": 1}, - {"matrix": [1, 11], "x": 10.5, "y": 1}, - {"matrix": [1, 12], "x": 11.5, "y": 1}, - {"matrix": [1, 13], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 6.5, "y": 1}, - {"matrix": [1, 8], "x": 7.5, "y": 1}, - {"matrix": [1, 9], "x": 8.5, "y": 1}, - {"matrix": [1, 10], "x": 9.5, "y": 1}, - {"matrix": [1, 11], "x": 10.5, "y": 1}, - {"matrix": [1, 12], "x": 11.5, "y": 1}, - {"matrix": [1, 13], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/gray_studio/bd60/keymaps/default/keymap.c b/keyboards/gray_studio/bd60/keymaps/default/keymap.c deleted file mode 100644 index 91aaf1d11d..0000000000 --- a/keyboards/gray_studio/bd60/keymaps/default/keymap.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2023 srk24 -// SPDX-License-Identifier: GPL-2.0 -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1) - ), - [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, KC_DEL, KC_INS, - _______, UG_TOGG, KC_UP, UG_NEXT, _______, _______, _______, UG_VALU, UG_VALD, _______, _______, _______, _______, KC_INS, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_MPRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, - _______, _______, _______, KC_MPLY, _______, KC_LEFT, KC_RGHT, _______ - ) -}; diff --git a/keyboards/gray_studio/bd60/matrix_diagram.md b/keyboards/gray_studio/bd60/matrix_diagram.md deleted file mode 100644 index 622864bf91..0000000000 --- a/keyboards/gray_studio/bd60/matrix_diagram.md +++ /dev/null @@ -1,24 +0,0 @@ -# Matrix Diagram for GrayStudio BD60 - -``` - ┌───────┐ - 2u Backspace │0D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ -│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ -│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ -│40 │41 │43 │47 │4A │4B │4D │4E │ -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ -┌────────┐ ┌──────────┐ -│30 │ 2.25u LShift 2.75u RShift │3D │ -└────────┘ └──────────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│40 │41 │43 │47 │4B │4D │4E │ Tsangan/WKL/HHKB -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` diff --git a/keyboards/gray_studio/bd60/readme.md b/keyboards/gray_studio/bd60/readme.md deleted file mode 100644 index 9be7724be3..0000000000 --- a/keyboards/gray_studio/bd60/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# Gray Studio BD60 - -A 65% keyboard by Graystudio. PCB designed and manufactured by DEMO Studio. - -* Keyboard Maintainer: [srk24](https://github.com/srk24) -* Hardware Support: BD60 PCB w/ STM32F072 microcontroller -* Hardware Availability: [graystudio.club/bd60](https://in-stock.graystudio.club/products/in-stock-bd60) - -Make example for this keyboard (after setting up your build environment): - - make gray_studio/bd60:default - -Flashing example for this keyboard: - - make gray_studio/bd60: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 - -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/gray_studio/cod67/keyboard.json b/keyboards/gray_studio/cod67/keyboard.json index e0a71c6703..fa946d9b33 100644 --- a/keyboards/gray_studio/cod67/keyboard.json +++ b/keyboards/gray_studio/cod67/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "COD67", "manufacturer": "Graystudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/hb85/keyboard.json b/keyboards/gray_studio/hb85/keyboard.json index 9d182a458e..61387a2709 100644 --- a/keyboards/gray_studio/hb85/keyboard.json +++ b/keyboards/gray_studio/hb85/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HB85", "manufacturer": "Gray Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/gray_studio/space65/keyboard.json b/keyboards/gray_studio/space65/keyboard.json index 3ca6a306cd..ffe825ff4c 100644 --- a/keyboards/gray_studio/space65/keyboard.json +++ b/keyboards/gray_studio/space65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Space65", "manufacturer": "Graystudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/space65r3/keyboard.json b/keyboards/gray_studio/space65r3/keyboard.json index ab2bac62f9..bdf3624c58 100644 --- a/keyboards/gray_studio/space65r3/keyboard.json +++ b/keyboards/gray_studio/space65r3/keyboard.json @@ -39,6 +39,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/think65/hotswap/keyboard.json b/keyboards/gray_studio/think65/hotswap/keyboard.json index a38f648eca..c2dba58190 100644 --- a/keyboards/gray_studio/think65/hotswap/keyboard.json +++ b/keyboards/gray_studio/think65/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Think6.5\u00b0 Hotswap", "manufacturer": "Graystudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/think65/solder/keyboard.json b/keyboards/gray_studio/think65/solder/keyboard.json index 283516b60a..09096a854e 100644 --- a/keyboards/gray_studio/think65/solder/keyboard.json +++ b/keyboards/gray_studio/think65/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Think6.5\u00b0", "manufacturer": "Graystudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/think65v3/keyboard.json b/keyboards/gray_studio/think65v3/keyboard.json index 201e271b33..0c6b8e7938 100644 --- a/keyboards/gray_studio/think65v3/keyboard.json +++ b/keyboards/gray_studio/think65v3/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/green_keys/gravity_45/keyboard.json b/keyboards/green_keys/gravity_45/keyboard.json deleted file mode 100644 index 762f3ebae6..0000000000 --- a/keyboards/green_keys/gravity_45/keyboard.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "manufacturer": "GreenKeys", - "keyboard_name": "Gravity-45", - "maintainer": "takashicompany", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["GP14", "GP15", "GP26", "GP27", "GP28", "GP29", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP10", "GP11", "GP12", "GP13"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 1, - "max_brightness": 120 - }, - "url": "https://green-keys.info", - "usb": { - "device_version": "1.0.0", - "pid": "0x9121", - "vid": "0x1209" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP8" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 9.5, "y": 0}, - {"matrix": [0, 7], "x": 10.5, "y": 0}, - {"matrix": [0, 8], "x": 11.5, "y": 0}, - {"matrix": [0, 9], "x": 12.5, "y": 0}, - {"matrix": [0, 10], "x": 13.5, "y": 0}, - {"matrix": [0, 11], "x": 14.5, "y": 0}, - {"matrix": [1, 0], "x": 0.25, "y": 1}, - {"matrix": [1, 1], "x": 1.25, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1}, - {"matrix": [1, 3], "x": 3.25, "y": 1}, - {"matrix": [1, 4], "x": 4.25, "y": 1}, - {"matrix": [1, 5], "x": 5.25, "y": 1}, - {"matrix": [3, 11], "x": 7.625, "y": 1.5}, - {"matrix": [1, 6], "x": 9.75, "y": 1}, - {"matrix": [1, 7], "x": 10.75, "y": 1}, - {"matrix": [1, 8], "x": 11.75, "y": 1}, - {"matrix": [1, 9], "x": 12.75, "y": 1}, - {"matrix": [1, 10], "x": 13.75, "y": 1}, - {"matrix": [1, 11], "x": 14.75, "y": 1}, - {"matrix": [2, 0], "x": 0.5, "y": 2}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 10, "y": 2}, - {"matrix": [2, 7], "x": 11, "y": 2}, - {"matrix": [2, 8], "x": 12, "y": 2}, - {"matrix": [2, 9], "x": 13, "y": 2}, - {"matrix": [2, 10], "x": 14, "y": 2}, - {"matrix": [2, 11], "x": 15, "y": 2}, - {"matrix": [3, 2], "x": 2.5, "y": 3}, - {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 9.75, "y": 3, "w": 1.25}, - {"matrix": [3, 7], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [3, 8], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [3, 9], "x": 13.5, "y": 3, "w": 1.25} - ] - } - } -} diff --git a/keyboards/green_keys/gravity_45/keymaps/default/keymap.c b/keyboards/green_keys/gravity_45/keymaps/default/keymap.c deleted file mode 100644 index d7ef16b0e6..0000000000 --- a/keyboards/green_keys/gravity_45/keymaps/default/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// 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, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, UG_TOGG, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, - KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_RGUI - ), - - [1] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, - KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, - KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_TRNS, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - KC_TRNS, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, - KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, - KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, - KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RALT, KC_RGUI - ), - - [4] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_TRNS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS, - KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT( - KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, - KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_TRNS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [6] = LAYOUT( - KC_TRNS, KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [7] = LAYOUT( - KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [8] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/green_keys/gravity_45/readme.md b/keyboards/green_keys/gravity_45/readme.md deleted file mode 100644 index cdf98feab8..0000000000 --- a/keyboards/green_keys/gravity_45/readme.md +++ /dev/null @@ -1,37 +0,0 @@ -# Gravity-45 - -![green_keys/gravity_45](https://i.imgur.com/FTyC65h.jpeg) - -Gravity-45 is a 45-key integrated keyboard. -It uses the Waveshare RP2040-Zero MCU. -Keyswitch sockets are used for easy keyswitch replacement. -The tight PCB outline lines allow for easy case design. - ---- - -Gravity-45 は 45キーの一体型のキーボードだ。 -MCUにはWaveshare RP2040-Zeroを採用している。 -キースイッチソケットを使用するためキースイッチの交換が容易に行える。 -PCBの外形線がタイトなので、ケースの設計が容易だ。 - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: PCB, Waveshare RP2040-Zero -* Hardware Availability: [GreenKeys](https://green-keys.info/) - -Make example for this keyboard (after setting up your build environment): - - make green_keys/gravity_45:default - -Flashing example for this keyboard: - - make green_keys/gravity_45:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/gregandcin/teaqueen/keyboard.json b/keyboards/gregandcin/teaqueen/keyboard.json index bfdd395a7e..871c34587d 100644 --- a/keyboards/gregandcin/teaqueen/keyboard.json +++ b/keyboards/gregandcin/teaqueen/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c index c2cdf55d3c..adc3d89f39 100644 --- a/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c +++ b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAV] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_BTN2, MS_UP, MS_BTN1, MS_WHLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/grid600/press/keyboard.json b/keyboards/grid600/press/keyboard.json index e5006d99f0..74c3e7aad1 100644 --- a/keyboards/grid600/press/keyboard.json +++ b/keyboards/grid600/press/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "PRESS", "manufacturer": "Grid", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/gummykey/keyboard.json b/keyboards/gummykey/keyboard.json index a16e2e4a1f..bb7001438d 100644 --- a/keyboards/gummykey/keyboard.json +++ b/keyboards/gummykey/keyboard.json @@ -5,6 +5,8 @@ "maintainer": "Gumorr", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/gvalchca/ga150/keyboard.json b/keyboards/gvalchca/ga150/keyboard.json index fbaa777499..38028799fa 100644 --- a/keyboards/gvalchca/ga150/keyboard.json +++ b/keyboards/gvalchca/ga150/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GA15.0", "manufacturer": "Gvalchca", + "url": "", "maintainer": "Gvalchca", "usb": { "vid": "0x6776", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gvalchca/spaccboard/keyboard.json b/keyboards/gvalchca/spaccboard/keyboard.json index 783584aa85..ad03737fd5 100644 --- a/keyboards/gvalchca/spaccboard/keyboard.json +++ b/keyboards/gvalchca/spaccboard/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/h0oni/deskpad/deskpad.c b/keyboards/h0oni/deskpad/deskpad.c index 8f9c97c97d..0f22eda152 100644 --- a/keyboards/h0oni/deskpad/deskpad.c +++ b/keyboards/h0oni/deskpad/deskpad.c @@ -29,16 +29,16 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } else if(curr_layer == 1) { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } else if(curr_layer == 2) { if (clockwise) { - tap_code16(C(MS_WHLU)); + tap_code16(C(KC_WH_U)); } else { - tap_code16(C(MS_WHLD)); + tap_code16(C(KC_WH_D)); } } else { diff --git a/keyboards/h0oni/deskpad/keyboard.json b/keyboards/h0oni/deskpad/keyboard.json index ac7cb8ca67..d7ad53cd43 100644 --- a/keyboards/h0oni/deskpad/keyboard.json +++ b/keyboards/h0oni/deskpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Deskpad", "manufacturer": "Hydrogen", + "url": "", "maintainer": "Hydrogen BD", "usb": { "vid": "0x4D53", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/h0oni/deskpad/keymaps/default/keymap.c b/keyboards/h0oni/deskpad/keymaps/default/keymap.c index 4ab51b657e..eea54cf6b1 100644 --- a/keyboards/h0oni/deskpad/keymaps/default/keymap.c +++ b/keyboards/h0oni/deskpad/keymaps/default/keymap.c @@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT( - A(KC_F4), LSG(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH) + A(KC_F4), SGUI(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH) ), [3] = LAYOUT( diff --git a/keyboards/h0oni/hotduck/keyboard.json b/keyboards/h0oni/hotduck/keyboard.json index 55cd18762f..bdb2386021 100644 --- a/keyboards/h0oni/hotduck/keyboard.json +++ b/keyboards/h0oni/hotduck/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "hotDuck", "manufacturer": "h0oni", + "url": "", "maintainer": "h0oni", "usb": { "vid": "0x4D53", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hackpad/keyboard.json b/keyboards/hackpad/keyboard.json index 60a750691a..0a77c9320c 100644 --- a/keyboards/hackpad/keyboard.json +++ b/keyboards/hackpad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hadron/info.json b/keyboards/hadron/info.json index 1268c24a10..1d25e18f30 100644 --- a/keyboards/hadron/info.json +++ b/keyboards/hadron/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hadron", "manufacturer": "ishtob", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFB30", diff --git a/keyboards/hadron/rules.mk b/keyboards/hadron/rules.mk new file mode 100644 index 0000000000..8498675750 --- /dev/null +++ b/keyboards/hadron/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hadron/ver2 diff --git a/keyboards/hadron/ver2/keymaps/default/keymap.c b/keyboards/hadron/ver2/keymaps/default/keymap.c index 825ec698b2..27ed7adfa0 100644 --- a/keyboards/hadron/ver2/keymaps/default/keymap.c +++ b/keyboards/hadron/ver2/keymaps/default/keymap.c @@ -16,7 +16,10 @@ extern rgblight_config_t rgblight_config; #define _ADJUST 6 enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -39,9 +42,6 @@ enum preonic_keycodes { #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -165,11 +165,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSECURSOR] = LAYOUT( - MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, MS_WHLL, MS_UP, MS_WHLR,DEMOMACRO,_______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_END , KC_PGDN, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_BTN2, MS_BTN3, MS_BTN4, MS_BTN5, _______, _______, - _______, _______, _______, _______, _______, MS_BTN1, _______, _______, _______, MS_BTN1, _______, _______, _______, _______, _______ + KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R,DEMOMACRO,_______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, + _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______ ), /* Adjust (Lower + Raise) @@ -187,7 +187,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = 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, - QK_BOOT, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, _______, _______, KC_DEL, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -213,6 +213,18 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around @@ -270,7 +282,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released if (record->event.pressed) { rgblight_mode(RGB_current_mode); diff --git a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c index 884ca0ed62..9cc621df2f 100644 --- a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c +++ b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c @@ -16,7 +16,10 @@ extern rgblight_config_t rgblight_config; #define _ADJUST 6 enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -164,11 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSECURSOR] = LAYOUT( - _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, MS_WHLL, MS_UP, MS_WHLR, DEMOMACRO, _______, _______, _______, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END , KC_PGDN, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, MS_BTN2, MS_BTN3, MS_BTN4, MS_BTN5, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MS_BTN1, MS_BTN1, _______, _______, _______, _______, _______, _______, _______, _______ + _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, DEMOMACRO, _______, _______, _______, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______ ), /* Adjust (Lower + Raise) @@ -178,7 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. * | |RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | Del | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | | | | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | BL + |BL ST |BLSTEP| BL TG| | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| @@ -187,8 +190,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, - _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_DEL, _______, _______, _______, - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_DEL, _______, _______, _______, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -215,6 +218,12 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around @@ -289,7 +298,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released if (record->event.pressed) { rgblight_mode(RGB_current_mode); diff --git a/keyboards/hadron/ver3/keymaps/default/keymap.c b/keyboards/hadron/ver3/keymaps/default/keymap.c index df835454d3..d130745dc6 100644 --- a/keyboards/hadron/ver3/keymaps/default/keymap.c +++ b/keyboards/hadron/ver3/keymaps/default/keymap.c @@ -13,7 +13,10 @@ #define _ADJUST 6 enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -36,10 +39,6 @@ enum preonic_keycodes { #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -162,11 +161,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSECURSOR] = LAYOUT( - MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, MS_WHLL, MS_UP, MS_WHLR,DEMOMACRO,_______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_END , KC_PGDN, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_BTN2, MS_BTN3, MS_BTN4, MS_BTN5, _______, _______, - _______, _______, _______, _______, _______, MS_BTN1, _______, _______, _______, MS_BTN1, _______, _______, _______, _______, _______ + KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R,DEMOMACRO,_______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, + _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______ ), /* Adjust (Lower + Raise) @@ -201,6 +200,18 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/halfcliff/halfcliff.c b/keyboards/halfcliff/halfcliff.c index 30d1ef36e6..de636f22fe 100644 --- a/keyboards/halfcliff/halfcliff.c +++ b/keyboards/halfcliff/halfcliff.c @@ -81,15 +81,15 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { /* Left side encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 1) { /* Right side encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/halfcliff/keyboard.json b/keyboards/halfcliff/keyboard.json index 3cc2b0de33..7d780c016a 100644 --- a/keyboards/halfcliff/keyboard.json +++ b/keyboards/halfcliff/keyboard.json @@ -29,7 +29,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/halokeys/elemental75/keyboard.json b/keyboards/halokeys/elemental75/keyboard.json index a5ff54fccb..866916b69b 100644 --- a/keyboards/halokeys/elemental75/keyboard.json +++ b/keyboards/halokeys/elemental75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Elemental75", "manufacturer": "Halokeys", + "url": "", "maintainer": "shamit05", "usb": { "vid": "0xEA0B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/han60/keyboard.json b/keyboards/han60/keyboard.json index 243dd9bff2..41d33b1ba8 100644 --- a/keyboards/han60/keyboard.json +++ b/keyboards/han60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/hand88/keyboard.json b/keyboards/hand88/keyboard.json index f32eef4d62..cb8a320aaf 100755 --- a/keyboards/hand88/keyboard.json +++ b/keyboards/hand88/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/108key_trackpoint/keyboard.json b/keyboards/handwired/108key_trackpoint/keyboard.json index 0e8e1a0963..94acb1a26c 100644 --- a/keyboards/handwired/108key_trackpoint/keyboard.json +++ b/keyboards/handwired/108key_trackpoint/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "108Key-TrackPoint", "manufacturer": "QMK", + "url": "", "maintainer": "mkem114", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/108key_trackpoint/keymaps/default/keymap.c b/keyboards/handwired/108key_trackpoint/keymaps/default/keymap.c index 47e9d1d120..3dcd4b3f6c 100644 --- a/keyboards/handwired/108key_trackpoint/keymaps/default/keymap.c +++ b/keyboards/handwired/108key_trackpoint/keymaps/default/keymap.c @@ -9,6 +9,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_APP, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, - MS_BTN1, MS_BTN3, MS_BTN2 + KC_BTN1, KC_BTN3, KC_BTN2 ) }; diff --git a/keyboards/handwired/108key_trackpoint/keymaps/dvorak/keymap.c b/keyboards/handwired/108key_trackpoint/keymaps/dvorak/keymap.c index da85321a33..b22f797273 100644 --- a/keyboards/handwired/108key_trackpoint/keymaps/dvorak/keymap.c +++ b/keyboards/handwired/108key_trackpoint/keymaps/dvorak/keymap.c @@ -9,6 +9,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_APP, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, - MS_BTN1, MS_BTN3, MS_BTN2 + KC_BTN1, KC_BTN3, KC_BTN2 ) }; diff --git a/keyboards/handwired/108key_trackpoint/keymaps/dvorak_media/keymap.c b/keyboards/handwired/108key_trackpoint/keymaps/dvorak_media/keymap.c index bfb7a151d9..89e36d9fdc 100644 --- a/keyboards/handwired/108key_trackpoint/keymaps/dvorak_media/keymap.c +++ b/keyboards/handwired/108key_trackpoint/keymaps/dvorak_media/keymap.c @@ -9,6 +9,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MPLY, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_APP, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, - MS_BTN1, MS_BTN3, MS_BTN2 + KC_BTN1, KC_BTN3, KC_BTN2 ) }; diff --git a/keyboards/handwired/10k/keyboard.json b/keyboards/handwired/10k/keyboard.json index b1373f1fb3..a3293601e3 100644 --- a/keyboards/handwired/10k/keyboard.json +++ b/keyboards/handwired/10k/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/2x5keypad/keyboard.json b/keyboards/handwired/2x5keypad/keyboard.json index fbf1f478ba..0b146f165b 100644 --- a/keyboards/handwired/2x5keypad/keyboard.json +++ b/keyboards/handwired/2x5keypad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "2x5keypad", "manufacturer": "Jonathan Cameron", + "url": "", "maintainer": "jmcameron", "usb": { "vid": "0xFEED", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/3dfoxc/keyboard.json b/keyboards/handwired/3dfoxc/keyboard.json index 1475d52ab4..7675acd73b 100644 --- a/keyboards/handwired/3dfoxc/keyboard.json +++ b/keyboards/handwired/3dfoxc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "3dfoxc", "manufacturer": "dlgoodr", + "url": "", "maintainer": "dlgoodr", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/3dortho14u/rev1/keyboard.json b/keyboards/handwired/3dortho14u/rev1/keyboard.json index 5941c1792f..63773d405f 100644 --- a/keyboards/handwired/3dortho14u/rev1/keyboard.json +++ b/keyboards/handwired/3dortho14u/rev1/keyboard.json @@ -1,12 +1,14 @@ { "manufacturer": "xia0", "keyboard_name": "3dortho14u", + "url": "", "maintainer": "xia0", "processor": "atmega32u4", "bootloader": "atmel-dfu", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/3dortho14u/rev2/keyboard.json b/keyboards/handwired/3dortho14u/rev2/keyboard.json index 3c1cdde353..9e048d643d 100644 --- a/keyboards/handwired/3dortho14u/rev2/keyboard.json +++ b/keyboards/handwired/3dortho14u/rev2/keyboard.json @@ -1,12 +1,14 @@ { "manufacturer": "xia0", "keyboard_name": "3dortho14u", + "url": "", "maintainer": "xia0", "processor": "atmega32u4", "bootloader": "atmel-dfu", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/3dp660/keyboard.json b/keyboards/handwired/3dp660/keyboard.json index 5b26aaecc6..c1c4c13e7e 100644 --- a/keyboards/handwired/3dp660/keyboard.json +++ b/keyboards/handwired/3dp660/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "3dp660", "manufacturer": "gooberpsycho", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x676F", diff --git a/keyboards/handwired/3dp660_oled/keyboard.json b/keyboards/handwired/3dp660_oled/keyboard.json index cb19d2ab80..ef863b3b52 100644 --- a/keyboards/handwired/3dp660_oled/keyboard.json +++ b/keyboards/handwired/3dp660_oled/keyboard.json @@ -6,6 +6,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -21,6 +22,7 @@ "rows": ["D5", "B0", "B5", "B4", "E6", "D7", "C6", "D4", "D2", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3661", diff --git a/keyboards/handwired/412_64/keyboard.json b/keyboards/handwired/412_64/keyboard.json index f80611178e..c0f27dcb91 100644 --- a/keyboards/handwired/412_64/keyboard.json +++ b/keyboards/handwired/412_64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "412-64 Model 00", "manufacturer": "EDI/SCI", + "url": "", "maintainer": "fateeverywhere", "usb": { "vid": "0xF7E0", diff --git a/keyboards/handwired/42/keyboard.json b/keyboards/handwired/42/keyboard.json index 7dbb5827df..45801b7773 100644 --- a/keyboards/handwired/42/keyboard.json +++ b/keyboards/handwired/42/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "42", "manufacturer": "nglgzz", + "url": "", "maintainer": "nglgzz", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/42/keymaps/default/keymap.c b/keyboards/handwired/42/keymaps/default/keymap.c index 457d599b4f..3c31ef89d1 100644 --- a/keyboards/handwired/42/keymaps/default/keymap.c +++ b/keyboards/handwired/42/keymaps/default/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Mouse Layer LAYOUT( - _______, _______, KC_WREF, MS_WHLU, KC_WSCH, _______, _______, MS_BTN1, MS_UP, MS_BTN2, _______, _______, - _______, _______, MS_WHLL, MS_WHLD, MS_WHLR, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, + _______, _______, KC_WREF, KC_WH_U, KC_WSCH, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, + _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/5x6_split/rev1/config.h b/keyboards/handwired/5x6_split/rev1/config.h deleted file mode 100644 index 0797edb143..0000000000 --- a/keyboards/handwired/5x6_split/rev1/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2025 Zackarias Montell (@Wholteza) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define SERIAL_USART_FULL_DUPLEX - -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 - -#define MASTER_RIGHT diff --git a/keyboards/handwired/5x6_split/rev1/keyboard.json b/keyboards/handwired/5x6_split/rev1/keyboard.json deleted file mode 100644 index 4589b87855..0000000000 --- a/keyboards/handwired/5x6_split/rev1/keyboard.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "manufacturer": "zacke.dev", - "keyboard_name": "5x6_split", - "maintainer": "Wholteza", - "board": "GENERIC_RP_RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21"], - "rows": ["GP15", "GP14", "GP13", "GP12", "GP11"] - }, - "processor": "RP2040", - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "cols": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], - "rows": ["GP16", "GP17", "GP18", "GP19", "GP20"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "watchdog": true, - "watchdog_timeout": 3000 - } - }, - "url": "https://git.zacke.dev/wholteza/5x6-split-kb/src/branch/main/rev1", - "usb": { - "device_version": "1.0.0", - "pid": "0x0057", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [5, 0], "x": 6, "y": 0}, - {"matrix": [5, 1], "x": 7, "y": 0}, - {"matrix": [5, 2], "x": 8, "y": 0}, - {"matrix": [5, 3], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 10, "y": 0}, - {"matrix": [5, 5], "x": 11, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [6, 0], "x": 6, "y": 1}, - {"matrix": [6, 1], "x": 7, "y": 1}, - {"matrix": [6, 2], "x": 8, "y": 1}, - {"matrix": [6, 3], "x": 9, "y": 1}, - {"matrix": [6, 4], "x": 10, "y": 1}, - {"matrix": [6, 5], "x": 11, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [7, 0], "x": 6, "y": 2}, - {"matrix": [7, 1], "x": 7, "y": 2}, - {"matrix": [7, 2], "x": 8, "y": 2}, - {"matrix": [7, 3], "x": 9, "y": 2}, - {"matrix": [7, 4], "x": 10, "y": 2}, - {"matrix": [7, 5], "x": 11, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [8, 0], "x": 6, "y": 3}, - {"matrix": [8, 1], "x": 7, "y": 3}, - {"matrix": [8, 2], "x": 8, "y": 3}, - {"matrix": [8, 3], "x": 9, "y": 3}, - {"matrix": [8, 4], "x": 10, "y": 3}, - {"matrix": [8, 5], "x": 11, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [9, 0], "x": 6, "y": 4}, - {"matrix": [9, 1], "x": 7, "y": 4}, - {"matrix": [9, 2], "x": 8, "y": 4}, - {"matrix": [9, 3], "x": 9, "y": 4}, - {"matrix": [9, 4], "x": 10, "y": 4}, - {"matrix": [9, 5], "x": 11, "y": 4} - ] - } - } -} diff --git a/keyboards/handwired/5x6_split/rev1/keymaps/default/keymap.c b/keyboards/handwired/5x6_split/rev1/keymaps/default/keymap.c deleted file mode 100644 index 05f023d3c8..0000000000 --- a/keyboards/handwired/5x6_split/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2025 Zackarias Montell (@Wholteza) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _LOWER, - _RAISE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - _______, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - [_RAISE] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, QK_BOOT - ) -}; diff --git a/keyboards/handwired/5x6_split/rev1/readme.md b/keyboards/handwired/5x6_split/rev1/readme.md deleted file mode 100644 index 0e0c41fc1d..0000000000 --- a/keyboards/handwired/5x6_split/rev1/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# 5x6_split revision 1 - -![5x6_split-rev1](https://i.imgur.com/FJ3kro3.jpeg) - -**This is the first revision of the 5x6_split keyboard.** - -The 5x6_split is designed to be easily accessible, with openly and freely available hardware and firmware. It features a split layout to minimize the PCB footprint, reducing manufacturing costs. Like the Ergodox, it allows you to keep your hands at shoulder width for a more natural typing posture, but without a thumb cluster, making it a better option for users who experience discomfort or limitations in their thumbs. - -The keyboard is also designed with ergonomics in mind. Its low profile, measuring just 19.4 mm from the table to the top of the keycaps (including rubber feet), helps reduce wrist strain during extended use. - -In the repository linked below (see the Hardware Availability section), you will find KiCad schematics, PCB designs, and 3D models for a printable chassis. - -* Keyboard Maintainer: [wholteza](https://github.com/wholteza) -* Hardware Supported: Raspberry Pi Pico, 5x6_split PCB, 5x6_split Chassis -* Hardware Availability: [PCB, Chassi 3d-models](https://git.zacke.dev/wholteza/5x6-split-kb/src/branch/main/rev1) - -Make example for this keyboard (after setting up your build environment): - - make handwired/5x6_split/rev1:default - -Flashing example for this keyboard: - - make handwired/5x6_split/rev1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/6key/keyboard.json b/keyboards/handwired/6key/keyboard.json index 53a8e50193..7883c1e784 100644 --- a/keyboards/handwired/6key/keyboard.json +++ b/keyboards/handwired/6key/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/6macro/keyboard.json b/keyboards/handwired/6macro/keyboard.json index 7aa7311806..702008de34 100644 --- a/keyboards/handwired/6macro/keyboard.json +++ b/keyboards/handwired/6macro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "6macro", "manufacturer": "joaofbmaia", + "url": "", "maintainer": "joaofbmaia", "usb": { "vid": "0xFEED", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/acacia/keyboard.json b/keyboards/handwired/acacia/keyboard.json index 16f614d795..d761764727 100644 --- a/keyboards/handwired/acacia/keyboard.json +++ b/keyboards/handwired/acacia/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/acacia/keymaps/default/keymap.c b/keyboards/handwired/acacia/keymaps/default/keymap.c index 0b19c698de..a33a3880a6 100644 --- a/keyboards/handwired/acacia/keymaps/default/keymap.c +++ b/keyboards/handwired/acacia/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAVI_FN] = 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_TAB, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_TILD, KC_GRV, KC_LEFT, KC_UP, KC_RGHT, KC_WREF, KC_ENT, - KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, MS_BTN1, KC_DOWN, MS_BTN2, KC_WBAK, + KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_BTN1, KC_DOWN, KC_BTN2, KC_WBAK, KC_MPRV, _______, BS_GUI, _______, _______, _______, _______, _______, _______, KC_PWR, _______ ), [_SYM_NUM] = LAYOUT( diff --git a/keyboards/handwired/aek64/keyboard.json b/keyboards/handwired/aek64/keyboard.json index 0a57e17927..a06ed6decc 100644 --- a/keyboards/handwired/aek64/keyboard.json +++ b/keyboards/handwired/aek64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AEK64", "manufacturer": "4sStylZ and others makers", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/aim65/keyboard.json b/keyboards/handwired/aim65/keyboard.json index 393a2b9803..3f026a91fa 100644 --- a/keyboards/handwired/aim65/keyboard.json +++ b/keyboards/handwired/aim65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/alcor_dactyl/keyboard.json b/keyboards/handwired/alcor_dactyl/keyboard.json index 46f23c944b..b38d39bfcc 100644 --- a/keyboards/handwired/alcor_dactyl/keyboard.json +++ b/keyboards/handwired/alcor_dactyl/keyboard.json @@ -4,12 +4,15 @@ "maintainer": "rocketstrong", "bootloader": "rp2040", "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", "vid": "0xFEED" }, "features": { + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/amigopunk/keyboard.json b/keyboards/handwired/amigopunk/keyboard.json index 816dbb344d..e8e45d2b99 100644 --- a/keyboards/handwired/amigopunk/keyboard.json +++ b/keyboards/handwired/amigopunk/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/angel/keyboard.json b/keyboards/handwired/angel/keyboard.json index 6f2fe16589..6a4b40bb21 100644 --- a/keyboards/handwired/angel/keyboard.json +++ b/keyboards/handwired/angel/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/aplx2/keyboard.json b/keyboards/handwired/aplx2/keyboard.json index 36e00fa1bf..6a9d7130bd 100644 --- a/keyboards/handwired/aplx2/keyboard.json +++ b/keyboards/handwired/aplx2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Aplx2", "manufacturer": "Aplyard", + "url": "", "maintainer": "Aplyard", "usb": { "vid": "0xE0E0", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/aranck/keyboard.json b/keyboards/handwired/aranck/keyboard.json index ebc2203675..435d6da696 100644 --- a/keyboards/handwired/aranck/keyboard.json +++ b/keyboards/handwired/aranck/keyboard.json @@ -11,6 +11,8 @@ "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/arrow_pad/keyboard.json b/keyboards/handwired/arrow_pad/keyboard.json index a9d0c0d818..237c1f0749 100644 --- a/keyboards/handwired/arrow_pad/keyboard.json +++ b/keyboards/handwired/arrow_pad/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "GoldPad", "manufacturer": "Nobody", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x4096", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, diff --git a/keyboards/handwired/at101ish/keyboard.json b/keyboards/handwired/at101ish/keyboard.json deleted file mode 100644 index bd629f1605..0000000000 --- a/keyboards/handwired/at101ish/keyboard.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "manufacturer": "Henrik O. S\u00f8rensen", - "keyboard_name": "AT101ish", - "maintainer": "qmk", - "bootloader": "halfkay", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "D6", - "num_lock": "D4", - "scroll_lock": "E6" - }, - "matrix_pins": { - "cols": ["D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["B1", "B0", "B2", "D5", "B3", "C7", "B7", "C6", "D0", "D3", "D1", "D2"] - }, - "processor": "atmega32u4", - "tags": ["at101", "at102", "bigfoot"], - "url": "https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb", - "usb": { - "device_version": "1.1.0", - "pid": "0x0101", - "vid": "0xFEED" - }, - "community_layouts": ["fullsize_ansi", "fullsize_iso"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [1, 0], "x": 12, "y": 0}, - {"label": "F11", "matrix": [1, 1], "x": 13, "y": 0}, - {"label": "F12", "matrix": [1, 2], "x": 14, "y": 0}, - {"label": "PrtSc", "matrix": [1, 3], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [1, 4], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [1, 5], "x": 17.25, "y": 0}, - {"label": "\u00ac", "matrix": [2, 0], "x": 0, "y": 1.5}, - {"label": "!", "matrix": [2, 1], "x": 1, "y": 1.5}, - {"label": "\"", "matrix": [2, 2], "x": 2, "y": 1.5}, - {"label": "\u00a3", "matrix": [2, 3], "x": 3, "y": 1.5}, - {"label": "$", "matrix": [2, 4], "x": 4, "y": 1.5}, - {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "^", "matrix": [2, 6], "x": 6, "y": 1.5}, - {"label": "&", "matrix": [2, 7], "x": 7, "y": 1.5}, - {"label": "*", "matrix": [2, 8], "x": 8, "y": 1.5}, - {"label": "(", "matrix": [2, 9], "x": 9, "y": 1.5}, - {"label": ")", "matrix": [3, 0], "x": 10, "y": 1.5}, - {"label": "_", "matrix": [3, 1], "x": 11, "y": 1.5}, - {"label": "+", "matrix": [3, 2], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, - {"label": "Insert", "matrix": [3, 4], "x": 15.25, "y": 1.5}, - {"label": "Home", "matrix": [3, 5], "x": 16.25, "y": 1.5}, - {"label": "PgUp", "matrix": [3, 6], "x": 17.25, "y": 1.5}, - {"label": "Num Lock", "matrix": [3, 7], "x": 18.5, "y": 1.5}, - {"label": "/", "matrix": [3, 8], "x": 19.5, "y": 1.5}, - {"label": "*", "matrix": [3, 9], "x": 20.5, "y": 1.5}, - {"label": "-", "matrix": [1, 9], "x": 21.5, "y": 1.5}, - {"label": "Tab", "matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 2], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 3], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 4], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [4, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [4, 6], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [5, 0], "x": 10.5, "y": 2.5}, - {"label": "{", "matrix": [5, 1], "x": 11.5, "y": 2.5}, - {"label": "}", "matrix": [5, 2], "x": 12.5, "y": 2.5}, - {"label": "|", "matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5}, - {"label": "Delete", "matrix": [5, 4], "x": 15.25, "y": 2.5}, - {"label": "End", "matrix": [5, 5], "x": 16.25, "y": 2.5}, - {"label": "PgDn", "matrix": [5, 6], "x": 17.25, "y": 2.5}, - {"label": "7", "matrix": [5, 7], "x": 18.5, "y": 2.5}, - {"label": "8", "matrix": [5, 8], "x": 19.5, "y": 2.5}, - {"label": "9", "matrix": [5, 9], "x": 20.5, "y": 2.5}, - {"label": "+", "matrix": [1, 8], "x": 21.5, "y": 2.5}, - {"label": "Caps Lock", "matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"label": "A", "matrix": [6, 1], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [6, 2], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [6, 3], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [6, 4], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [6, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [6, 6], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [6, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [6, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [6, 9], "x": 9.75, "y": 3.5}, - {"label": ":", "matrix": [7, 0], "x": 10.75, "y": 3.5}, - {"label": "@", "matrix": [7, 1], "x": 11.75, "y": 3.5}, - {"label": "~", "matrix": [7, 2], "x": 12.75, "y": 3.5}, - {"label": "Enter", "matrix": [7, 3], "x": 13.75, "y": 3.5, "w": 1.25}, - {"label": "4", "matrix": [7, 6], "x": 18.5, "y": 3.5}, - {"label": "5", "matrix": [7, 7], "x": 19.5, "y": 3.5}, - {"label": "6", "matrix": [7, 8], "x": 20.5, "y": 3.5}, - {"label": "=", "matrix": [7, 9], "x": 21.5, "y": 3.5}, - {"label": "Shift", "matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, - {"label": "|", "matrix": [8, 1], "x": 1.25, "y": 4.5}, - {"label": "Z", "matrix": [8, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [8, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [8, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [8, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [8, 6], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [8, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [8, 8], "x": 8.25, "y": 4.5}, - {"label": "<", "matrix": [8, 9], "x": 9.25, "y": 4.5}, - {"label": ">", "matrix": [9, 0], "x": 10.25, "y": 4.5}, - {"label": "?", "matrix": [9, 1], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 1.75}, - {"label": "|", "matrix": [9, 3], "x": 14, "y": 4.5}, - {"label": "\u2191", "matrix": [9, 4], "x": 16.25, "y": 4.5}, - {"label": "1", "matrix": [9, 6], "x": 18.5, "y": 4.5}, - {"label": "2", "matrix": [9, 7], "x": 19.5, "y": 4.5}, - {"label": "3", "matrix": [9, 8], "x": 20.5, "y": 4.5}, - {"label": "Enter", "matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, - {"label": "Ctrl", "matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"label": "Win", "matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"label": "Alt", "matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"label": " ", "matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, - {"label": "AltGr ", "matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, - {"label": "Win", "matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, - {"label": "Menu", "matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, - {"label": "Ctrl", "matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, - {"label": "\u2190", "matrix": [11, 4], "x": 15.25, "y": 5.5}, - {"label": "\u2193", "matrix": [11, 5], "x": 16.25, "y": 5.5}, - {"label": "\u2192", "matrix": [11, 6], "x": 17.25, "y": 5.5}, - {"label": "0", "matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [11, 8], "x": 20.5, "y": 5.5} - ] - }, - "LAYOUT_fullsize_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [1, 0], "x": 12, "y": 0}, - {"matrix": [1, 1], "x": 13, "y": 0}, - {"matrix": [1, 2], "x": 14, "y": 0}, - {"matrix": [1, 3], "x": 15.25, "y": 0}, - {"matrix": [1, 4], "x": 16.25, "y": 0}, - {"matrix": [1, 5], "x": 17.25, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1.5}, - {"matrix": [2, 1], "x": 1, "y": 1.5}, - {"matrix": [2, 2], "x": 2, "y": 1.5}, - {"matrix": [2, 3], "x": 3, "y": 1.5}, - {"matrix": [2, 4], "x": 4, "y": 1.5}, - {"matrix": [2, 5], "x": 5, "y": 1.5}, - {"matrix": [2, 6], "x": 6, "y": 1.5}, - {"matrix": [2, 7], "x": 7, "y": 1.5}, - {"matrix": [2, 8], "x": 8, "y": 1.5}, - {"matrix": [2, 9], "x": 9, "y": 1.5}, - {"matrix": [3, 0], "x": 10, "y": 1.5}, - {"matrix": [3, 1], "x": 11, "y": 1.5}, - {"matrix": [3, 2], "x": 12, "y": 1.5}, - {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [3, 4], "x": 15.25, "y": 1.5}, - {"matrix": [3, 5], "x": 16.25, "y": 1.5}, - {"matrix": [3, 6], "x": 17.25, "y": 1.5}, - {"matrix": [3, 7], "x": 18.5, "y": 1.5}, - {"matrix": [3, 8], "x": 19.5, "y": 1.5}, - {"matrix": [3, 9], "x": 20.5, "y": 1.5}, - {"matrix": [1, 9], "x": 21.5, "y": 1.5}, - {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 2.5}, - {"matrix": [4, 2], "x": 2.5, "y": 2.5}, - {"matrix": [4, 3], "x": 3.5, "y": 2.5}, - {"matrix": [4, 4], "x": 4.5, "y": 2.5}, - {"matrix": [4, 5], "x": 5.5, "y": 2.5}, - {"matrix": [4, 6], "x": 6.5, "y": 2.5}, - {"matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"matrix": [5, 0], "x": 10.5, "y": 2.5}, - {"matrix": [5, 1], "x": 11.5, "y": 2.5}, - {"matrix": [5, 2], "x": 12.5, "y": 2.5}, - {"matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [5, 4], "x": 15.25, "y": 2.5}, - {"matrix": [5, 5], "x": 16.25, "y": 2.5}, - {"matrix": [5, 6], "x": 17.25, "y": 2.5}, - {"matrix": [5, 7], "x": 18.5, "y": 2.5}, - {"matrix": [5, 8], "x": 19.5, "y": 2.5}, - {"matrix": [5, 9], "x": 20.5, "y": 2.5}, - {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [6, 1], "x": 1.75, "y": 3.5}, - {"matrix": [6, 2], "x": 2.75, "y": 3.5}, - {"matrix": [6, 3], "x": 3.75, "y": 3.5}, - {"matrix": [6, 4], "x": 4.75, "y": 3.5}, - {"matrix": [6, 5], "x": 5.75, "y": 3.5}, - {"matrix": [6, 6], "x": 6.75, "y": 3.5}, - {"matrix": [6, 7], "x": 7.75, "y": 3.5}, - {"matrix": [6, 8], "x": 8.75, "y": 3.5}, - {"matrix": [6, 9], "x": 9.75, "y": 3.5}, - {"matrix": [7, 0], "x": 10.75, "y": 3.5}, - {"matrix": [7, 1], "x": 11.75, "y": 3.5}, - {"matrix": [7, 3], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [7, 6], "x": 18.5, "y": 3.5}, - {"matrix": [7, 7], "x": 19.5, "y": 3.5}, - {"matrix": [7, 8], "x": 20.5, "y": 3.5}, - {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [8, 2], "x": 2.25, "y": 4.5}, - {"matrix": [8, 3], "x": 3.25, "y": 4.5}, - {"matrix": [8, 4], "x": 4.25, "y": 4.5}, - {"matrix": [8, 5], "x": 5.25, "y": 4.5}, - {"matrix": [8, 6], "x": 6.25, "y": 4.5}, - {"matrix": [8, 7], "x": 7.25, "y": 4.5}, - {"matrix": [8, 8], "x": 8.25, "y": 4.5}, - {"matrix": [8, 9], "x": 9.25, "y": 4.5}, - {"matrix": [9, 0], "x": 10.25, "y": 4.5}, - {"matrix": [9, 1], "x": 11.25, "y": 4.5}, - {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [9, 4], "x": 16.25, "y": 4.5}, - {"matrix": [9, 6], "x": 18.5, "y": 4.5}, - {"matrix": [9, 7], "x": 19.5, "y": 4.5}, - {"matrix": [9, 8], "x": 20.5, "y": 4.5}, - {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, - {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [11, 4], "x": 15.25, "y": 5.5}, - {"matrix": [11, 5], "x": 16.25, "y": 5.5}, - {"matrix": [11, 6], "x": 17.25, "y": 5.5}, - {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, - {"matrix": [11, 8], "x": 20.5, "y": 5.5} - ] - }, - "LAYOUT_fullsize_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [1, 0], "x": 12, "y": 0}, - {"matrix": [1, 1], "x": 13, "y": 0}, - {"matrix": [1, 2], "x": 14, "y": 0}, - {"matrix": [1, 3], "x": 15.25, "y": 0}, - {"matrix": [1, 4], "x": 16.25, "y": 0}, - {"matrix": [1, 5], "x": 17.25, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1.5}, - {"matrix": [2, 1], "x": 1, "y": 1.5}, - {"matrix": [2, 2], "x": 2, "y": 1.5}, - {"matrix": [2, 3], "x": 3, "y": 1.5}, - {"matrix": [2, 4], "x": 4, "y": 1.5}, - {"matrix": [2, 5], "x": 5, "y": 1.5}, - {"matrix": [2, 6], "x": 6, "y": 1.5}, - {"matrix": [2, 7], "x": 7, "y": 1.5}, - {"matrix": [2, 8], "x": 8, "y": 1.5}, - {"matrix": [2, 9], "x": 9, "y": 1.5}, - {"matrix": [3, 0], "x": 10, "y": 1.5}, - {"matrix": [3, 1], "x": 11, "y": 1.5}, - {"matrix": [3, 2], "x": 12, "y": 1.5}, - {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [3, 4], "x": 15.25, "y": 1.5}, - {"matrix": [3, 5], "x": 16.25, "y": 1.5}, - {"matrix": [3, 6], "x": 17.25, "y": 1.5}, - {"matrix": [3, 7], "x": 18.5, "y": 1.5}, - {"matrix": [3, 8], "x": 19.5, "y": 1.5}, - {"matrix": [3, 9], "x": 20.5, "y": 1.5}, - {"matrix": [1, 9], "x": 21.5, "y": 1.5}, - {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 2.5}, - {"matrix": [4, 2], "x": 2.5, "y": 2.5}, - {"matrix": [4, 3], "x": 3.5, "y": 2.5}, - {"matrix": [4, 4], "x": 4.5, "y": 2.5}, - {"matrix": [4, 5], "x": 5.5, "y": 2.5}, - {"matrix": [4, 6], "x": 6.5, "y": 2.5}, - {"matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"matrix": [5, 0], "x": 10.5, "y": 2.5}, - {"matrix": [5, 1], "x": 11.5, "y": 2.5}, - {"matrix": [5, 2], "x": 12.5, "y": 2.5}, - {"matrix": [5, 4], "x": 15.25, "y": 2.5}, - {"matrix": [5, 5], "x": 16.25, "y": 2.5}, - {"matrix": [5, 6], "x": 17.25, "y": 2.5}, - {"matrix": [5, 7], "x": 18.5, "y": 2.5}, - {"matrix": [5, 8], "x": 19.5, "y": 2.5}, - {"matrix": [5, 9], "x": 20.5, "y": 2.5}, - {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [6, 1], "x": 1.75, "y": 3.5}, - {"matrix": [6, 2], "x": 2.75, "y": 3.5}, - {"matrix": [6, 3], "x": 3.75, "y": 3.5}, - {"matrix": [6, 4], "x": 4.75, "y": 3.5}, - {"matrix": [6, 5], "x": 5.75, "y": 3.5}, - {"matrix": [6, 6], "x": 6.75, "y": 3.5}, - {"matrix": [6, 7], "x": 7.75, "y": 3.5}, - {"matrix": [6, 8], "x": 8.75, "y": 3.5}, - {"matrix": [6, 9], "x": 9.75, "y": 3.5}, - {"matrix": [7, 0], "x": 10.75, "y": 3.5}, - {"matrix": [7, 1], "x": 11.75, "y": 3.5}, - {"matrix": [7, 2], "x": 12.75, "y": 3.5}, - {"matrix": [7, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, - {"matrix": [7, 6], "x": 18.5, "y": 3.5}, - {"matrix": [7, 7], "x": 19.5, "y": 3.5}, - {"matrix": [7, 8], "x": 20.5, "y": 3.5}, - {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, - {"matrix": [8, 1], "x": 1.25, "y": 4.5}, - {"matrix": [8, 2], "x": 2.25, "y": 4.5}, - {"matrix": [8, 3], "x": 3.25, "y": 4.5}, - {"matrix": [8, 4], "x": 4.25, "y": 4.5}, - {"matrix": [8, 5], "x": 5.25, "y": 4.5}, - {"matrix": [8, 6], "x": 6.25, "y": 4.5}, - {"matrix": [8, 7], "x": 7.25, "y": 4.5}, - {"matrix": [8, 8], "x": 8.25, "y": 4.5}, - {"matrix": [8, 9], "x": 9.25, "y": 4.5}, - {"matrix": [9, 0], "x": 10.25, "y": 4.5}, - {"matrix": [9, 1], "x": 11.25, "y": 4.5}, - {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [9, 4], "x": 16.25, "y": 4.5}, - {"matrix": [9, 6], "x": 18.5, "y": 4.5}, - {"matrix": [9, 7], "x": 19.5, "y": 4.5}, - {"matrix": [9, 8], "x": 20.5, "y": 4.5}, - {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, - {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [11, 4], "x": 15.25, "y": 5.5}, - {"matrix": [11, 5], "x": 16.25, "y": 5.5}, - {"matrix": [11, 6], "x": 17.25, "y": 5.5}, - {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, - {"matrix": [11, 8], "x": 20.5, "y": 5.5} - ] - } - } -} diff --git a/keyboards/handwired/at101ish/keymaps/default/keymap.c b/keyboards/handwired/at101ish/keymaps/default/keymap.c deleted file mode 100644 index 2311a24437..0000000000 --- a/keyboards/handwired/at101ish/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT) -}; diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c b/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c deleted file mode 100644 index 89b748a61b..0000000000 --- a/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum LAYER { - _PC = 0, - _MAC, - _FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_PC] = 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), - [_MAC] = LAYOUT_all( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_WSCH, KC_LPAD, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, - KC_NUBS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, - KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), - [_FN] = LAYOUT_all( - _______, 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_VOLU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_PC), _______, _______, _______, _______, KC_MUTE, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, QK_BOOT, _______, DF(_MAC),_______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_MSTP, KC_MNXT, _______, _______) -}; - -bool process_detected_host_os_user(os_variant_t detected_os) { - /* If Apple, swap to macOS layer. */ - if (detected_os == OS_MACOS || detected_os == OS_IOS) { - set_single_default_layer(_MAC); - } - else /* Else use PC layer */ { - set_single_default_layer(_PC); - } - - return true; -} diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk b/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk deleted file mode 100644 index 64ac3dcb16..0000000000 --- a/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OS_DETECTION_ENABLE = yes diff --git a/keyboards/handwired/at101ish/readme.md b/keyboards/handwired/at101ish/readme.md deleted file mode 100644 index 2bdfbb9367..0000000000 --- a/keyboards/handwired/at101ish/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# AT101(-ish) - -A replacement PCB for Dell AT101 family. (In theory) supports AT101, AT101W, AT102, AT102W, maybe other Bigfoot platform boards. - -Keyboard Maintainer: QMK Community and Henrik O. Sørensen -Hardware Supported: AT101(ish) PCB -Hardware Availability: https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb - -Make example for this keyboard (after setting up your build environment): - - make handwired/at101ish:default - -Flashing example for this keyboard: - - make handwired/at101ish: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the programming button on the teensy 2.0 PCB. - diff --git a/keyboards/handwired/atreus50/keyboard.json b/keyboards/handwired/atreus50/keyboard.json index cedc231964..961d1959b0 100644 --- a/keyboards/handwired/atreus50/keyboard.json +++ b/keyboards/handwired/atreus50/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atreus50", "manufacturer": "Hexwire", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", @@ -29,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/axon/keyboard.json b/keyboards/handwired/axon/keyboard.json index 82b97bca84..007f90fbc8 100644 --- a/keyboards/handwired/axon/keyboard.json +++ b/keyboards/handwired/axon/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/baredev/rev1/keyboard.json b/keyboards/handwired/baredev/rev1/keyboard.json index 3a753bd740..470b926bb4 100644 --- a/keyboards/handwired/baredev/rev1/keyboard.json +++ b/keyboards/handwired/baredev/rev1/keyboard.json @@ -24,6 +24,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/bdn9_ble/keyboard.json b/keyboards/handwired/bdn9_ble/keyboard.json index 27ed008f43..20f020504c 100644 --- a/keyboards/handwired/bdn9_ble/keyboard.json +++ b/keyboards/handwired/bdn9_ble/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BDN9-BLE", "manufacturer": "KeyPCB/Keebio", + "url": "", "maintainer": "merlin04", "usb": { "vid": "0xCB10", diff --git a/keyboards/handwired/bento/rules.mk b/keyboards/handwired/bento/rules.mk new file mode 100644 index 0000000000..e160faab83 --- /dev/null +++ b/keyboards/handwired/bento/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/bento/rev1 diff --git a/keyboards/handwired/bigmac/keyboard.json b/keyboards/handwired/bigmac/keyboard.json index 40592658a1..8eff62a7ea 100644 --- a/keyboards/handwired/bigmac/keyboard.json +++ b/keyboards/handwired/bigmac/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigMac", "manufacturer": "Taylore101", + "url": "", "maintainer": "Taylore101", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/bolek/keyboard.json b/keyboards/handwired/bolek/keyboard.json index 7ce99e73b7..68fe7958bf 100644 --- a/keyboards/handwired/bolek/keyboard.json +++ b/keyboards/handwired/bolek/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/boss566y/redragon_vara/keyboard.json b/keyboards/handwired/boss566y/redragon_vara/keyboard.json index bdcfb5b008..b75caa6544 100644 --- a/keyboards/handwired/boss566y/redragon_vara/keyboard.json +++ b/keyboards/handwired/boss566y/redragon_vara/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Redragon Vara", "manufacturer": "PH", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5048", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/brain/keyboard.json b/keyboards/handwired/brain/keyboard.json index 2efa27d712..c5f8c3682c 100644 --- a/keyboards/handwired/brain/keyboard.json +++ b/keyboards/handwired/brain/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Brain", "manufacturer": "Klackygears", + "url": "", "maintainer": "Klackygears", "usb": { "vid": "0x4A53", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/bstk100/keyboard.json b/keyboards/handwired/bstk100/keyboard.json index f505b75831..0fc255f9c4 100644 --- a/keyboards/handwired/bstk100/keyboard.json +++ b/keyboards/handwired/bstk100/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/cans12er/keyboard.json b/keyboards/handwired/cans12er/keyboard.json index a1ecaa9f6e..9d08706423 100644 --- a/keyboards/handwired/cans12er/keyboard.json +++ b/keyboards/handwired/cans12er/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Cans12er", "manufacturer": "Can", + "url": "", "maintainer": "canbaytok", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/cans12erv2/keyboard.json b/keyboards/handwired/cans12erv2/keyboard.json deleted file mode 100644 index ed0e78cd94..0000000000 --- a/keyboards/handwired/cans12erv2/keyboard.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "manufacturer": "Can Baytok", - "keyboard_name": "Cans12erV2", - "maintainer": "canbaytok", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP9", "GP10", "GP11", "GP12"], - "rows": ["GP13", "GP7", "GP8"] - }, - "host_language": "german", - "processor": "RP2040", - "url": "https://github.com/canbaytok/Cans12erV2", - "usb": { - "device_version": "1.0.0", - "pid": "0xABC0", - "vid": "0x4342" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0, "encoder": 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": [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} - ] - } - } -} diff --git a/keyboards/handwired/cans12erv2/keymaps/default/keymap.c b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c deleted file mode 100644 index 0619369bb2..0000000000 --- a/keyboards/handwired/cans12erv2/keymaps/default/keymap.c +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2024 Can Baytok (https://github.com/canbaytok) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_A, KC_B, KC_C, KC_D, - KC_E, KC_F, KC_G, KC_H, - KC_I, KC_J, KC_K, KC_L - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } -}; -#endif diff --git a/keyboards/handwired/cans12erv2/keymaps/default/rules.mk b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/handwired/cans12erv2/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md deleted file mode 100644 index fa08efacc7..0000000000 --- a/keyboards/handwired/cans12erv2/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Cans12erV2 -![Cans12erV2](https://i.imgur.com/3fkbydJ.png) - -New version of my 12-key orthogonal macro keypad with hot swappable keyswitch support and an encoder knob. - -* Keyboard Maintainer: [Can Baytok](https://github.com/canbaytok) -* Build Instructions: [Github](https://github.com/canbaytok/Cans12erV2) -* Hardware Supported: RP2040 Zero -* Hardware Availability: amazon, aliexpress (RP2040 Zero clones work too) - -Make example for this keyboard (after setting up your build environment): - - make handwired/cans12erv2:default - -Flashing example for this keyboard: - - make handwired/cans12erv2:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Quickly double press the reset button on the PCB to make the RP2040 boot into its uf2 mode -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/chiron/keyboard.json b/keyboards/handwired/chiron/keyboard.json index 024132396a..1685a9d477 100644 --- a/keyboards/handwired/chiron/keyboard.json +++ b/keyboards/handwired/chiron/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chiron", "manufacturer": "Mike Hix", + "url": "", "maintainer": "musl", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/chiron/keymaps/default/keymap.c b/keyboards/handwired/chiron/keymaps/default/keymap.c index dead617e31..2889bd8b05 100644 --- a/keyboards/handwired/chiron/keymaps/default/keymap.c +++ b/keyboards/handwired/chiron/keymaps/default/keymap.c @@ -24,10 +24,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_INS, KC_LCTL, /*, */KC_LALT, LGUI_T(KC_SPC), KC_HYPR, KC_HYPR, RGUI_T(KC_SPC), KC_RALT, /*, */KC_LBRC, KC_RBRC, KC_SLSH ), [1] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLU, XXXXXXX, XXXXXXX, QK_BOOT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, MS_WHLL, MS_UP, MS_WHLR, XXXXXXX, EE_CLR, - XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, _______, KC_MUTE, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN1, MS_BTN2, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLD, XXXXXXX, MS_WHLD, XXXXXXX, MS_BTN3, MS_BTN4, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, QK_BOOT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, EE_CLR, + XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, _______, KC_MUTE, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_BTN2, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLD, XXXXXXX, KC_WH_D, XXXXXXX, KC_BTN3, KC_BTN4, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX ), [2] = LAYOUT( diff --git a/keyboards/handwired/ck4x4/keyboard.json b/keyboards/handwired/ck4x4/keyboard.json index 717820f9fc..642408cc0e 100644 --- a/keyboards/handwired/ck4x4/keyboard.json +++ b/keyboards/handwired/ck4x4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CK4x4", "manufacturer": "QMK", + "url": "", "maintainer": "awkannan", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/cmd60/keyboard.json b/keyboards/handwired/cmd60/keyboard.json index 05872439c9..f9733a7582 100644 --- a/keyboards/handwired/cmd60/keyboard.json +++ b/keyboards/handwired/cmd60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CMD60", "manufacturer": "cmd", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/cmd60/keymaps/default/keymap.c b/keyboards/handwired/cmd60/keymaps/default/keymap.c index 5fe199247e..15084365fe 100644 --- a/keyboards/handwired/cmd60/keymaps/default/keymap.c +++ b/keyboards/handwired/cmd60/keymaps/default/keymap.c @@ -31,9 +31,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [4] = LAYOUT( /* CMD60 - Mouse */ KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_UP, MS_BTN2, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLU, MS_BTN3, MS_WHLD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_BTN3, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [5] = LAYOUT( /* CMD60 - Media */ diff --git a/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c b/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c index 592a6c6b97..1d49d91346 100644 --- a/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c +++ b/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L3] = LAYOUT_60_hhkb_split_625u_space( /* Function */ QK_BOOT, 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_BRTG, BL_TOGG, BL_UP, BL_DOWN,BL_ON, BL_OFF, _______, _______, _______, _______, _______, KC_PGUP, KC_INSERT, KC_DEL, - _______, UG_TOGG, UG_NEXT, UG_PREV, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_HOME, KC_END, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_HOME, KC_END, _______, _______, BL_DOWN, _______, _______, _______, _______, _______, DF(_L1), DF(_L2), _______, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/co60/rev1/keyboard.json b/keyboards/handwired/co60/rev1/keyboard.json index 250c157b90..1bf60673fb 100644 --- a/keyboards/handwired/co60/rev1/keyboard.json +++ b/keyboards/handwired/co60/rev1/keyboard.json @@ -6,6 +6,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/co60/rev6/keyboard.json b/keyboards/handwired/co60/rev6/keyboard.json index f38ae149b4..743a738ff0 100644 --- a/keyboards/handwired/co60/rev6/keyboard.json +++ b/keyboards/handwired/co60/rev6/keyboard.json @@ -6,6 +6,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/co60/rev7/keyboard.json b/keyboards/handwired/co60/rev7/keyboard.json index 493f546372..4319c9aedf 100644 --- a/keyboards/handwired/co60/rev7/keyboard.json +++ b/keyboards/handwired/co60/rev7/keyboard.json @@ -6,6 +6,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json index b2606afb89..4ccc10527c 100644 --- a/keyboards/handwired/colorlice/keyboard.json +++ b/keyboards/handwired/colorlice/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ColorLice", "manufacturer": "marhalloweenvt", + "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", @@ -72,6 +73,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/colorlice/keymaps/default/keymap.c b/keyboards/handwired/colorlice/keymaps/default/keymap.c index e1c827c746..1b17cce81a 100644 --- a/keyboards/handwired/colorlice/keymaps/default/keymap.c +++ b/keyboards/handwired/colorlice/keymaps/default/keymap.c @@ -18,15 +18,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_alice_split_bs( - RM_TOGG, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, - RM_NEXT, 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, + RGB_TOG, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, + RGB_MOD, 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_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL), [1] = LAYOUT_alice_split_bs( _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, - _______, _______, _______, KC_UP, _______, _______, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD , _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/handwired/concertina/64key/keyboard.json b/keyboards/handwired/concertina/64key/keyboard.json index c8790fa2de..dedc240d3f 100644 --- a/keyboards/handwired/concertina/64key/keyboard.json +++ b/keyboards/handwired/concertina/64key/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/concertina/64key/keymaps/default/keymap.c b/keyboards/handwired/concertina/64key/keymaps/default/keymap.c index 968e2168b5..c9f6384440 100644 --- a/keyboards/handwired/concertina/64key/keymaps/default/keymap.c +++ b/keyboards/handwired/concertina/64key/keymaps/default/keymap.c @@ -80,14 +80,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_NUMERIC] = LAYOUT( - _______, _______, _______, MS_ACL1, MS_ACL2, _______, - _______, _______, LAYER_C, _______, MS_ACL0, _______, _______, _______, + _______, _______, _______, KC_ACL1, KC_ACL2, _______, + _______, _______, LAYER_C, _______, KC_ACL0, _______, _______, _______, _______, _______, _______, KC_SLEP, _______, _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11, _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE, - KC_INS, KC_EXLM, MS_BTN1, MS_BTN3, MS_BTN2, MS_LEFT, MS_UP, MS_RGHT, KC_PSCR, QK_BOOT, - LAYER_G, MS_DOWN + KC_INS, KC_EXLM, KC_BTN1, KC_BTN3, KC_BTN2, KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, QK_BOOT, + LAYER_G, KC_MS_D ) }; diff --git a/keyboards/handwired/consolekeyboard/18key/keyboard.json b/keyboards/handwired/consolekeyboard/18key/keyboard.json index b0e4853038..c75e324cf3 100644 --- a/keyboards/handwired/consolekeyboard/18key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/18key/keyboard.json @@ -26,6 +26,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/20key/keyboard.json b/keyboards/handwired/consolekeyboard/20key/keyboard.json index 18b1da288e..87449fc21e 100644 --- a/keyboards/handwired/consolekeyboard/20key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/20key/keyboard.json @@ -26,6 +26,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/27key/keyboard.json b/keyboards/handwired/consolekeyboard/27key/keyboard.json index ecb46b9f0e..21a894d5e4 100644 --- a/keyboards/handwired/consolekeyboard/27key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/27key/keyboard.json @@ -26,6 +26,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/30key/keyboard.json b/keyboards/handwired/consolekeyboard/30key/keyboard.json index 2ecef968ac..159558e355 100644 --- a/keyboards/handwired/consolekeyboard/30key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/30key/keyboard.json @@ -26,6 +26,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/croxsplit44/keyboard.json b/keyboards/handwired/croxsplit44/keyboard.json index dbb285e115..d497942b95 100644 --- a/keyboards/handwired/croxsplit44/keyboard.json +++ b/keyboards/handwired/croxsplit44/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "splitcustom44", "manufacturer": "Samux6146", + "url": "", "maintainer": "Samux6146", "usb": { "vid": "0xB62C", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/curiosity/keyboard.json b/keyboards/handwired/curiosity/keyboard.json index f49a542bf9..e95fa25e71 100644 --- a/keyboards/handwired/curiosity/keyboard.json +++ b/keyboards/handwired/curiosity/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Curiosity", "manufacturer": "Spaceman", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/d48/keyboard.json b/keyboards/handwired/d48/keyboard.json index a0266e475e..99c8a67326 100644 --- a/keyboards/handwired/d48/keyboard.json +++ b/keyboards/handwired/d48/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "D48", "manufacturer": "Andrew Dunai", + "url": "", "maintainer": "and3rson", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl/keyboard.json b/keyboards/handwired/dactyl/keyboard.json index 6026469176..58baf228ca 100644 --- a/keyboards/handwired/dactyl/keyboard.json +++ b/keyboards/handwired/dactyl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl", "manufacturer": "Adereth", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl/keymaps/default/keymap.c b/keyboards/handwired/dactyl/keymaps/default/keymap.c index fd21b7e1e8..669f358530 100644 --- a/keyboards/handwired/dactyl/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl/keymaps/default/keymap.c @@ -118,10 +118,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/handwired/dactyl/keymaps/dvorak/keymap.c b/keyboards/handwired/dactyl/keymaps/dvorak/keymap.c index 6d90b6825f..59cb7b34f8 100644 --- a/keyboards/handwired/dactyl/keymaps/dvorak/keymap.c +++ b/keyboards/handwired/dactyl/keymaps/dvorak/keymap.c @@ -118,10 +118,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/handwired/dactyl_cc/keyboard.json b/keyboards/handwired/dactyl_cc/keyboard.json index 8c2ef8061c..e607bfad1a 100644 --- a/keyboards/handwired/dactyl_cc/keyboard.json +++ b/keyboards/handwired/dactyl_cc/keyboard.json @@ -12,6 +12,7 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, "command": true, "nkro": false }, @@ -22,9 +23,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c b/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c index bc882bca4a..6422699684 100644 --- a/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c @@ -26,12 +26,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NAV] = LAYOUT( QK_BOOT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_BRIU, KC_P7, KC_P8, KC_P9, KC_NO, QK_BOOT, - _______, KC_VOLU, KC_WBAK, MS_UP, KC_WFWD, MS_WHLU, KC_BRID, KC_P4, KC_P5, KC_P6, KC_PMNS, _______, - _______, KC_VOLD, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PSLS, _______, + _______, KC_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, KC_BRID, KC_P4, KC_P5, KC_P6, KC_PMNS, _______, + _______, KC_VOLD, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PSLS, _______, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_PAST, KC_PCMM, KC_P0, KC_PDOT, KC_PENT, _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, _______, - MS_BTN1, MS_BTN2, _______, KC_END, _______, _______, + KC_BTN1, KC_BTN2, _______, KC_END, _______, _______, _______, ALT_BSP ) }; diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json index 78abe5191d..ee68a2c515 100644 --- a/keyboards/handwired/dactyl_kinesis/keyboard.json +++ b/keyboards/handwired/dactyl_kinesis/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Kinesis", "manufacturer": "dmik", + "url": "", "maintainer": "dmik", "usb": { "vid": "0x444D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -26,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_left/keyboard.json b/keyboards/handwired/dactyl_left/keyboard.json index 2a2254f578..cfb3ad1489 100644 --- a/keyboards/handwired/dactyl_left/keyboard.json +++ b/keyboards/handwired/dactyl_left/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "dactyl_left", "manufacturer": "RedForty", + "url": "", "maintainer": "RedForty", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl_lightcycle/keyboard.json b/keyboards/handwired/dactyl_lightcycle/keyboard.json index d0ec13f09c..1b5f2dd39a 100644 --- a/keyboards/handwired/dactyl_lightcycle/keyboard.json +++ b/keyboards/handwired/dactyl_lightcycle/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "mousekey": true, "extrakey": true, "nkro": false @@ -24,9 +26,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "community_layouts": ["split_3x6_3", "split_3x5_3"], diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json index 7ef1482028..e0a1b531a5 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Manuform 4x5", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/keymap.c index 47c344eb14..630b106ca7 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/keymap.c @@ -29,12 +29,12 @@ along with this program. If not, see . #define ALT_SPC ALT_T(KC_SPC) #define SFT_ENT SFT_T(KC_ENT) -#define KC_ML MS_LEFT -#define KC_MR MS_RGHT -#define KC_MU MS_UP -#define KC_MD MS_DOWN -#define KC_MB1 MS_BTN1 -#define KC_MB2 MS_BTN2 +#define KC_ML KC_MS_LEFT +#define KC_MR KC_MS_RIGHT +#define KC_MU KC_MS_UP +#define KC_MD KC_MS_DOWN +#define KC_MB1 KC_MS_BTN1 +#define KC_MB2 KC_MS_BTN2 #define RAISE MO(_RAISE) #define LOWER MO(_LOWER) diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c index c8c087f267..d0136c4c51 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c @@ -15,12 +15,12 @@ extern keymap_config_t keymap_config; #define ALT_SPC ALT_T(KC_SPC) #define SFT_ENT SFT_T(KC_ENT) -#define KC_ML MS_LEFT -#define KC_MR MS_RGHT -#define KC_MU MS_UP -#define KC_MD MS_DOWN -#define KC_MB1 MS_BTN1 -#define KC_MB2 MS_BTN1 +#define KC_ML KC_MS_LEFT +#define KC_MR KC_MS_RIGHT +#define KC_MU KC_MS_UP +#define KC_MD KC_MS_DOWN +#define KC_MB1 KC_MS_BTN1 +#define KC_MB2 KC_MS_BTN1 #define RAISE MO(_RAISE) #define LOWER MO(_LOWER) diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 207f8c06a7..7efc4718ad 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -28,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json index 7b25b2d936..d589c532a8 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Manuform 4x6", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c index 043f118ecc..942128d3f2 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c @@ -9,12 +9,12 @@ #define ALT_SPC ALT_T(KC_SPC) #define SFT_ENT SFT_T(KC_ENT) -#define KC_ML MS_LEFT -#define KC_MR MS_RGHT -#define KC_MU MS_UP -#define KC_MD MS_DOWN -#define KC_MB1 MS_BTN1 -#define KC_MB2 MS_BTN1 +#define KC_ML KC_MS_LEFT +#define KC_MR KC_MS_RIGHT +#define KC_MU KC_MS_UP +#define KC_MD KC_MS_DOWN +#define KC_MB1 KC_MS_BTN1 +#define KC_MB2 KC_MS_BTN1 #define RAISE MO(_RAISE) #define LOWER MO(_LOWER) diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json index 14d49e2c93..c0c24a8966 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -30,9 +32,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json index b875d322da..47ad7aa920 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Manuform 4x6 5 thumb keys", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json index 2021e082e2..353b148126 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (5x6)", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json index 8f53dd7521..620ffdec06 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (5x6+2)", "manufacturer": "tshort", + "url": "", "maintainer": "jceb", "usb": { "vid": "0x444D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -26,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - }, + "soft_serial_pin": "D0", "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/keymap.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/keymap.json index 24f5be6010..a2760f42bb 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/keymap.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/keymap.json @@ -461,40 +461,40 @@ "KC_NO", "KC_TRNS", - "MS_ACL1", + "KC_ACL1", "KC_NO", "KC_NO", "KC_NO", "KC_NO", - "MS_WHLU", - "MS_WHLL", - "MS_UP", - "MS_WHLR", + "KC_WH_U", + "KC_WH_L", + "KC_MS_U", + "KC_WH_R", "KC_NO", "KC_NO", "KC_TRNS", - "MS_ACL2", - "MS_BTN2", - "MS_BTN3", - "MS_BTN1", - "MS_BTN1", - "MS_LEFT", - "MS_LEFT", - "MS_DOWN", - "MS_RGHT", + "KC_ACL2", + "KC_BTN2", + "KC_BTN3", + "KC_BTN1", + "KC_BTN1", + "KC_MS_L", + "KC_MS_L", + "KC_MS_D", + "KC_MS_R", "KC_NO", "KC_NO", "KC_TRNS", - "MS_ACL0", + "KC_ACL0", "KC_NO", "KC_NO", "KC_NO", "KC_NO", - "MS_WHLD", + "KC_WH_D", "KC_NO", - "MS_DOWN", + "KC_MS_D", "KC_NO", "KC_NO", "KC_TRNS", diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json index 4d8684bce8..fc7676aa4b 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (5x6)", "manufacturer": "tshort", + "url": "", "maintainer": "jceb", "usb": { "vid": "0x444D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -26,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - }, + "soft_serial_pin": "D0", "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/default/keymap.json b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/default/keymap.json index bd58984eef..3cb115ffd5 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/default/keymap.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/default/keymap.json @@ -447,40 +447,40 @@ "KC_NO", "KC_TRNS", - "MS_ACL1", + "KC_ACL1", "KC_NO", "KC_NO", "KC_NO", "KC_NO", - "MS_WHLU", - "MS_WHLL", - "MS_UP", - "MS_WHLR", + "KC_WH_U", + "KC_WH_L", + "KC_MS_U", + "KC_WH_R", "KC_NO", "KC_NO", "KC_TRNS", - "MS_ACL2", - "MS_BTN2", - "MS_BTN3", - "MS_BTN1", - "MS_BTN1", - "MS_LEFT", - "MS_LEFT", - "MS_DOWN", - "MS_RGHT", + "KC_ACL2", + "KC_BTN2", + "KC_BTN3", + "KC_BTN1", + "KC_BTN1", + "KC_MS_L", + "KC_MS_L", + "KC_MS_D", + "KC_MS_R", "KC_NO", "KC_NO", "KC_TRNS", - "MS_ACL0", + "KC_ACL0", "KC_NO", "KC_NO", "KC_NO", "KC_NO", - "MS_WHLD", + "KC_WH_D", "KC_NO", - "MS_DOWN", + "KC_MS_D", "KC_NO", "KC_NO", "KC_TRNS", diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json index a6122f8492..974f1b8bc3 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -28,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D3" - } + "soft_serial_pin": "D3" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json index dc53bea60b..5b6bdfb86e 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (5x6) 68 Keys", "manufacturer": "kpagratis", + "url": "", "maintainer": "kpagratis", "development_board": "promicro", "usb": { @@ -11,6 +12,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -23,9 +25,7 @@ }, "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json index bdafd60366..d40a45dfa7 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (5x7)", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x7_2_6/config.h b/keyboards/handwired/dactyl_manuform/5x7_2_6/config.h deleted file mode 100644 index ce536e2d00..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x7_2_6/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2012 Jun Wako Nikolai Grigoriev @ngrigoriev - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/5x7_2_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7_2_6/keyboard.json deleted file mode 100644 index 7e41ff0083..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x7_2_6/keyboard.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "manufacturer": "Nikolai Grigoriev", - "keyboard_name": "Dactyl Manuform 5x7 2-key last row 6-key thumb cluster", - "maintainer": "ngrigoriev", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": false, - "nkro": true - }, - "matrix_pins": { - "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "split": { - "enabled": true, - "transport": { - "protocol": "i2c" - }, - "usb_detect": { - "enabled": true - } - }, - "url": "https://github.com/ngrigoriev/dactyl-manuform-5x7_2_6", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_5x7_2_6": { - "layout": [ - {"label": "KC_GRV", "matrix": [0, 0], "x": 0, "y": 0.5, "w": 1.5}, - {"label": "KC_1", "matrix": [0, 1], "x": 1.5, "y": 0.5}, - {"label": "KC_2", "matrix": [0, 2], "x": 2.5, "y": 0}, - {"label": "KC_3", "matrix": [0, 3], "x": 3.5, "y": 0}, - {"label": "KC_4", "matrix": [0, 4], "x": 4.5, "y": 0}, - {"label": "KC_5", "matrix": [0, 5], "x": 5.5, "y": 0}, - {"label": "KC_NO", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "KC_EQL", "matrix": [6, 0], "x": 12, "y": 0}, - {"label": "KC_6", "matrix": [6, 1], "x": 13, "y": 0}, - {"label": "KC_7", "matrix": [6, 2], "x": 14, "y": 0}, - {"label": "KC_8", "matrix": [6, 3], "x": 15, "y": 0}, - {"label": "KC_9", "matrix": [6, 4], "x": 16, "y": 0}, - {"label": "KC_0", "matrix": [6, 5], "x": 17, "y": 0.5}, - {"label": "KC_BSPC", "matrix": [6, 6], "x": 18, "y": 0.5, "w": 1.5}, - {"label": "KC_TAB", "matrix": [1, 0], "x": 0, "y": 1.5, "w": 1.5}, - {"label": "KC_Q", "matrix": [1, 1], "x": 1.5, "y": 1.5}, - {"label": "KC_W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "KC_E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "KC_R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "KC_T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "KC_NO", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "KC_MINUS", "matrix": [7, 0], "x": 12, "y": 1}, - {"label": "KC_Y", "matrix": [7, 1], "x": 13, "y": 1}, - {"label": "KC_U", "matrix": [7, 2], "x": 14, "y": 1}, - {"label": "KC_I", "matrix": [7, 3], "x": 15, "y": 1}, - {"label": "KC_O", "matrix": [7, 4], "x": 16, "y": 1}, - {"label": "KC_P", "matrix": [7, 5], "x": 17, "y": 1.5}, - {"label": "KC_BSLS", "matrix": [7, 6], "x": 18, "y": 1.5, "w": 1.5}, - {"label": "KC_LCTL", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "KC_A", "matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"label": "KC_S", "matrix": [2, 2], "x": 2.5, "y": 2}, - {"label": "KC_D", "matrix": [2, 3], "x": 3.5, "y": 2}, - {"label": "KC_F", "matrix": [2, 4], "x": 4.5, "y": 2}, - {"label": "KC_G", "matrix": [2, 5], "x": 5.5, "y": 2}, - {"label": "KC_NO", "matrix": [2, 6], "x": 6.5, "y": 2}, - {"label": "KC_DEL", "matrix": [8, 0], "x": 12, "y": 2}, - {"label": "KC_H", "matrix": [8, 1], "x": 13, "y": 2}, - {"label": "KC_J", "matrix": [8, 2], "x": 14, "y": 2}, - {"label": "KC_K", "matrix": [8, 3], "x": 15, "y": 2}, - {"label": "KC_L", "matrix": [8, 4], "x": 16, "y": 2}, - {"label": "KC_SCLN", "matrix": [8, 5], "x": 17, "y": 2.5}, - {"label": "KC_RSFT", "matrix": [8, 6], "x": 18, "y": 2.5, "w": 1.5}, - {"label": "KC_LSFT", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.5}, - {"label": "KC_Z", "matrix": [3, 1], "x": 1.5, "y": 3.5}, - {"label": "KC_X", "matrix": [3, 2], "x": 2.5, "y": 3}, - {"label": "KC_C", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "KC_V", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "KC_B", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "KC_N", "matrix": [9, 1], "x": 13, "y": 3}, - {"label": "KC_M", "matrix": [9, 2], "x": 14, "y": 3}, - {"label": "KC_COMM", "matrix": [9, 3], "x": 15, "y": 3}, - {"label": "KC_DOT", "matrix": [9, 4], "x": 16, "y": 3}, - {"label": "KC_SLSH", "matrix": [9, 5], "x": 17, "y": 3.5}, - {"label": "KC_RSFT", "matrix": [9, 6], "x": 18, "y": 3.5, "w": 1.5}, - {"label": "KC_PGUP", "matrix": [4, 2], "x": 2.5, "y": 4}, - {"label": "KC_PGDN", "matrix": [4, 3], "x": 3.5, "y": 4}, - {"label": "KC_LBRC", "matrix": [10, 3], "x": 15, "y": 4}, - {"label": "KC_RBRC", "matrix": [10, 4], "x": 16, "y": 4}, - {"label": "KC_LCTL", "matrix": [4, 4], "x": 5, "y": 5, "h": 1.5, "r": 30}, - {"label": "KC_ESC", "matrix": [4, 5], "x": 6, "y": 5, "h": 1.5, "r": 30}, - {"label": "KC_ENTER", "matrix": [10, 1], "x": 12.5, "y": 5, "h": 1.5, "r": -30}, - {"label": "KC_SPC", "matrix": [10, 2], "x": 13.5, "y": 5, "h": 1.5, "r": -30}, - {"label": "KC_UP", "matrix": [5, 5], "x": 7.5, "y": 6.5, "r": 45}, - {"label": "KC_DOWN", "matrix": [5, 3], "x": 8, "y": 7.5, "r": 45}, - {"label": "KC_LEFT", "matrix": [11, 3], "x": 10.5, "y": 7.5, "r": -45}, - {"label": "KC_RIGHT", "matrix": [11, 1], "x": 11, "y": 6.5, "r": -45}, - {"label": "KC_LCMD", "matrix": [5, 4], "x": 6.5, "y": 7, "r": 45}, - {"label": "KC_LALT", "matrix": [5, 2], "x": 7, "y": 8, "r": 45}, - {"label": "KC_RCTL", "matrix": [11, 4], "x": 11.5, "y": 8, "r": -45}, - {"label": "KC_RALT", "matrix": [11, 2], "x": 12, "y": 7, "r": -45} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/5x7_2_6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x7_2_6/keymaps/default/keymap.c deleted file mode 100644 index 5ad2f77bad..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x7_2_6/keymaps/default/keymap.c +++ /dev/null @@ -1,74 +0,0 @@ -/* vim: noai:ts=4:sw=4:nowrap -*/ -/* -Copyright 2012 Jun Wako Nikolai Grigoriev @ngrigoriev - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -enum layers { - _BASE, - _MAGIC, - _NUMPAD, - _FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_5x7_2_6( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, MO(_MAGIC), 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, MO(_NUMPAD), KC_MINUS, 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_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), - KC_PGUP, KC_PGDN, KC_LBRC, KC_RBRC, - KC_LCTL, LT(_FN, KC_ESC), KC_ENTER,KC_SPC, - KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, - KC_LCMD, KC_LALT, KC_RCTL, KC_RALT - ), - - [_FN] = LAYOUT_5x7_2_6( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, MO(_MAGIC), _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_MPRV, KC_MNXT, _______, _______, - _______, _______, KC_DEL, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [_NUMPAD] = LAYOUT_5x7_2_6( - _______, _______, _______, _______, _______, _______, MO(_MAGIC), _______, _______, KC_NUM, _______, KC_PMNS, KC_PPLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_P4, KC_P5, KC_P6, KC_PAST, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PSLS, _______, - _______, _______, KC_P0, KC_PDOT, - _______, _______, _______, KC_PENT, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [_MAGIC] = LAYOUT_5x7_2_6( - _______, _______, _______, _______, _______, _______, _______, CG_SWAP, _______, _______, _______, _______, _______, QK_REBOOT, - _______, _______, _______, _______, _______, _______, _______, CG_NORM, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOTLOADER, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ) -}; - diff --git a/keyboards/handwired/dactyl_manuform/5x7_2_6/readme.md b/keyboards/handwired/dactyl_manuform/5x7_2_6/readme.md deleted file mode 100644 index e29bbeb8ce..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x7_2_6/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# handwired/dactyl_manuform/5x7_2_6 - -![keyboad_image](https://i.ibb.co/09tfjY0/kbpic-small-21.jpg) - -A standard Dactyl Manuform keyboard with 5x7 matrix, 6 thumb cluster keys. Last row has 2 keys only. Index column has 3 rows. The outer keys are 1,5u wide. [More info on https://github.com/ngrigoriev/dactyl-manuform-5x7_2_6](https://github.com/ngrigoriev/dactyl-manuform-5x7_2_6). Based on the original set of Dactyl Manuform keyboards created and maintaied by [Jack Humbert](https://github.com/jackhumbert). - -This keyboard can be generated using one of Dactyl Manuform generators, such as (https://dactyl.mbugert.de/manuform). - -* Keyboard Maintainer: [Nikolai Grigoriev](https://github.com/ngrigoriev) -* Hardware Supported: Promicro -* Hardware Availability: general DIY - -Make example for this keyboard (after setting up your build environment): - - make handwired/dactyl_manuform/5x7_2_6:default - -Flashing example for this keyboard: - - make handwired/dactyl_manuform/5x7_2_6:default:flash - -See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json deleted file mode 100644 index 2ac3010717..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "keyboard_name": "Dactyl-Manuform (5x8)", - "manufacturer": "tshort", - "maintainer": "qmk", - "usb": { - "vid": "0x444D", - "pid": "0x3537", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "matrix_pins": { - "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], - "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] - }, - "diode_direction": "COL2ROW", - "split": { - "enabled": true, - "serial": { - "pin": "D0" - } - }, - "development_board": "promicro", - "layouts": { - "LAYOUT_5x8": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.5}, - {"matrix": [0, 2], "x": 2, "y": 0.5}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - - {"matrix": [6, 7], "x": 17, "y": 0.5}, - {"matrix": [6, 6], "x": 16, "y": 0.5}, - {"matrix": [6, 5], "x": 15, "y": 0.5}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 1], "x": 11, "y": 0}, - {"matrix": [6, 0], "x": 10, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - - {"matrix": [7, 7], "x": 17, "y": 1.5}, - {"matrix": [7, 6], "x": 16, "y": 1.5}, - {"matrix": [7, 5], "x": 15, "y": 1.5}, - {"matrix": [7, 4], "x": 14, "y": 1}, - {"matrix": [7, 3], "x": 13, "y": 1}, - {"matrix": [7, 2], "x": 12, "y": 1}, - {"matrix": [7, 1], "x": 11, "y": 1}, - {"matrix": [7, 0], "x": 10, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2.5}, - {"matrix": [2, 1], "x": 1, "y": 2.5}, - {"matrix": [2, 2], "x": 2, "y": 2.5}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - - {"matrix": [8, 7], "x": 17, "y": 2.5}, - {"matrix": [8, 6], "x": 16, "y": 2.5}, - {"matrix": [8, 5], "x": 15, "y": 2.5}, - {"matrix": [8, 4], "x": 14, "y": 2}, - {"matrix": [8, 3], "x": 13, "y": 2}, - {"matrix": [8, 2], "x": 12, "y": 2}, - {"matrix": [8, 1], "x": 11, "y": 2}, - {"matrix": [8, 0], "x": 10, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3.5}, - {"matrix": [3, 1], "x": 1, "y": 3.5}, - {"matrix": [3, 2], "x": 2, "y": 3.5}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - - {"matrix": [9, 6], "x": 17, "y": 3.5}, - {"matrix": [9, 5], "x": 16, "y": 3.5}, - {"matrix": [9, 4], "x": 15, "y": 3.5}, - {"matrix": [9, 3], "x": 14, "y": 3}, - {"matrix": [9, 2], "x": 13, "y": 3}, - {"matrix": [9, 1], "x": 12, "y": 3}, - {"matrix": [9, 0], "x": 11, "y": 3}, - - {"matrix": [4, 1], "x": 1, "y": 4.5}, - {"matrix": [4, 2], "x": 2, "y": 4.5}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - - {"matrix": [10, 4], "x": 14, "y": 4}, - {"matrix": [10, 3], "x": 13, "y": 4}, - {"matrix": [10, 2], "x": 12, "y": 5}, - {"matrix": [10, 1], "x": 11, "y": 5}, - - {"matrix": [4, 5], "x": 4.5, "y": 5}, - {"matrix": [4, 6], "x": 5.5, "y": 5}, - - {"matrix": [10, 6], "x": 14.5, "y": 4.5}, - {"matrix": [10, 5], "x": 15.5, "y": 4.5}, - - {"matrix": [5, 5], "x": 5, "y": 6}, - {"matrix": [5, 6], "x": 6, "y": 6}, - - {"matrix": [11, 6], "x": 12, "y": 6}, - {"matrix": [11, 5], "x": 11, "y": 6}, - - {"matrix": [5, 3], "x": 5, "y": 7}, - {"matrix": [5, 4], "x": 6, "y": 7}, - - {"matrix": [11, 4], "x": 12, "y": 7}, - {"matrix": [11, 3], "x": 11, "y": 7} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c deleted file mode 100644 index d038173db0..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright 2024 Philip Slinkin (s.philya@gmail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY, - _RIGHT2LEFT -}; - -/* Base (qwerty) - * ,-------------------------------------------------------, ,-------------------------------------------------------, - * | Esc | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | \ | BS | - * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| - * |M_RSTP| Tab | q | w | e | r | t |QKBOOT| | F8 | y | u | i | o | p | [ | ] | - * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| - * |M_REC1| Caps | a | s | d | f | g | F7 | | F9 | h | j | k | l | ; | " |ENTER | - * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| - * |M_REC2| Shift| z | x | c | v | b | | n | m | , | . | / |Shift | Ctrl | - * '------+------+------+------+------+------+------' '------+------+------+------+------+------+------' - * | Ctrl | Wint | Alt | INS | | Up | Down | Left | Right| - * '------+------+------+------+------, ,------+------+------+------+------' - * | TT(1)|SPACE | | SPACE| BS | - * '------+------+------' ,------+------+------' - * | ESC |ENTER | | HOME | END | - * '------+------' '------+------' - * | DEL | F2 | | PGUP | PGDN | - * '------+------' '------+------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_5x8( - KC_ESC, 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_BSLS, KC_BSPC, - DM_RSTP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, QK_BOOT, KC_F8, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - DM_REC1, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F9, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - DM_REC2, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RCTL, - KC_LCTL, KC_LGUI, KC_LALT, KC_INS, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, - TT(1), KC_SPC, KC_SPC, KC_BSPC, - KC_ESC, KC_ENT, KC_HOME, KC_END, - KC_DEL, KC_F2, KC_PGUP, KC_PGDN - ), -/* Base (right to left on hold button) - * ,-------------------------------------------------------, ,-------------------------------------------------------, - * | BS | \ | = | - | 0 | 9 | 8 | 7 | | | | | | | | | | - * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| - * | [ | ] | p | o | i | u | y |QKBOOT| | | | | | | | | | - * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| - * |M_PLY1| " | ; | l | k | j | h |PRSCRN| | | | Left | Down | Up | Right| |ENTER | - * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| - * |M_PLY2|MShift| / | . | , | m | n | | | | | | | | | - * |------+------+------+------+------+------+------' '------+------+------+------+------+------+------' - * |MCtrl | MAlt | DEL | BS | | | | | | - * '------+------+------+------+------, ,------+------+------+------+------' - * | |SPACE | | SPACE| BS | - * '------+------+------' ,------+------+------' - * | END |ENTER | | HOME | END | - * '------+------' '------+------' - * | PGDN | PGUP | | PGUP | PGDN | - * '------+------' '------+------' - */ - - [_RIGHT2LEFT] = LAYOUT_5x8( - KC_BSPC, KC_BSLS, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, - KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - DM_PLY1, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_PSCR, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_NO, KC_ENT, - DM_PLY2, OSM(MOD_LSFT), KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - OSM(MOD_LCTL), OSM(MOD_LALT), KC_DEL, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_SPC, KC_SPC, KC_BSPC, - KC_ESC, KC_ENT, KC_HOME, KC_END, - KC_DEL, KC_F2, KC_PGUP, KC_PGDN - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk deleted file mode 100644 index 9e6797ed30..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x8/readme.md b/keyboards/handwired/dactyl_manuform/5x8/readme.md deleted file mode 100644 index 0ada7e92b6..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x8/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# handwired/dactyl_manuform/5x8 - -![Dactyl_manuform 5x8](https://i.imgur.com/DtawD9r.jpeg) - -* Keyboard Maintainer: [iliorik](https://github.com/iliorik) - -I made this keyboard so that the buttons on the right side of the right half would replicate the standard keyboard. -I put macros on the left buttons of the left side keyboard for rec and play keypresses - -Make example for this keyboard (after setting up your build environment): - - make handwired/dactyl_manuform/5x8:default - -Flashing example for this keyboard: - - make handwired/dactyl_manuform/5x8: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 2 ways: - -* **Keycode in layout**: Press the key mapped to `QK_BOOT` -* **Reset pro micro**: Connect RST and GND pins on plate diff --git a/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/config.h b/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/config.h index 191cd9b224..2258a17c2e 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/config.h +++ b/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/config.h @@ -25,6 +25,13 @@ #define SERIAL_USART_RX_PIN B7 // USART RX pin #define SERIAL_USART_TX_PIN B6 // USART TX pin +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: 460800 baud + // 1: 230400 baud (default) + // 2: 115200 baud + // 3: 57600 baud + // 4: 38400 baud + // 5: 19200 baud #define SERIAL_USART_DRIVER SD1 // USART driver of TX and RX pin. default: SD1 #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 diff --git a/keyboards/handwired/dactyl_manuform/6x6/info.json b/keyboards/handwired/dactyl_manuform/6x6/info.json index 3a26d38af1..080e4e1942 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/info.json +++ b/keyboards/handwired/dactyl_manuform/6x6/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (6x6)", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json index 44ae441270..213a3c29f5 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json @@ -6,9 +6,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6/rules.mk b/keyboards/handwired/dactyl_manuform/6x6/rules.mk new file mode 100644 index 0000000000..29194b429e --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/6x6/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/dactyl_manuform/6x6/promicro diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json index 8663f20eb4..98e96c9639 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (6x6+4)", "manufacturer": "tshort", + "url": "", "maintainer": "dmik", "usb": { "vid": "0x444D", @@ -16,6 +17,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -33,9 +35,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json index 2c5af325aa..153b6c75c4 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl-Manuform (6x7)", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -30,9 +32,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h deleted file mode 100644 index c622149a4a..0000000000 --- a/keyboards/handwired/dactyl_manuform_pi_pico/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 Gustaw.xyz (@Gustaw.xyz) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP9 -#define SERIAL_USART_RX_PIN GP8 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json deleted file mode 100644 index 6d5949e0bf..0000000000 --- a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "manufacturer": "GustawXYZ", - "keyboard_name": "dactyl_manuform_pi_pico", - "maintainer": "GustawXYZ", - "bootloader": "rp2040", - "processor": "RP2040", - "url": "https://github.com/GustawXYZ/dactyl_manuform_pi_pico", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP22" - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "watchdog": true - } - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], - "rows": ["GP21", "GP20", "GP19", "GP18", "GP17", "GP16"] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [6, 0], "x": 11, "y": 0}, - {"matrix": [6, 1], "x": 12, "y": 0}, - {"matrix": [6, 2], "x": 13, "y": 0}, - {"matrix": [6, 3], "x": 14, "y": 0}, - {"matrix": [6, 4], "x": 15, "y": 0}, - {"matrix": [6, 5], "x": 16, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [7, 0], "x": 11, "y": 1}, - {"matrix": [7, 1], "x": 12, "y": 1}, - {"matrix": [7, 2], "x": 13, "y": 1}, - {"matrix": [7, 3], "x": 14, "y": 1}, - {"matrix": [7, 4], "x": 15, "y": 1}, - {"matrix": [7, 5], "x": 16, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [8, 0], "x": 11, "y": 2}, - {"matrix": [8, 1], "x": 12, "y": 2}, - {"matrix": [8, 2], "x": 13, "y": 2}, - {"matrix": [8, 3], "x": 14, "y": 2}, - {"matrix": [8, 4], "x": 15, "y": 2}, - {"matrix": [8, 5], "x": 16, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [9, 0], "x": 11, "y": 3}, - {"matrix": [9, 1], "x": 12, "y": 3}, - {"matrix": [9, 2], "x": 13, "y": 3}, - {"matrix": [9, 3], "x": 14, "y": 3}, - {"matrix": [9, 4], "x": 15, "y": 3}, - {"matrix": [9, 5], "x": 16, "y": 3}, - - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - - {"matrix": [10, 2], "x": 13, "y": 4}, - {"matrix": [10, 3], "x": 14, "y": 4}, - - {"matrix": [4, 4], "x": 4, "y": 5}, - {"matrix": [4, 5], "x": 5, "y": 5}, - - {"matrix": [10, 0], "x": 11, "y": 5}, - {"matrix": [10, 1], "x": 12, "y": 5}, - - {"matrix": [5, 4], "x": 6, "y": 6}, - {"matrix": [5, 5], "x": 7, "y": 6}, - - {"matrix": [11, 0], "x": 9, "y": 6}, - {"matrix": [11, 1], "x": 10, "y": 6}, - - {"matrix": [5, 2], "x": 6, "y": 7}, - {"matrix": [5, 3], "x": 7, "y": 7}, - - {"matrix": [11, 2], "x": 9, "y": 7}, - {"matrix": [11, 3], "x": 10, "y": 7} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c deleted file mode 100644 index fed363a22d..0000000000 --- a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY, - _SYMBOLS, - _GAMING, - _ARROWS, - _WINMGR, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - LALT(KC_LSFT), LALT(KC_SPC), LALT(KC_SPC), LGUI(KC_LALT), - KC_SPC, TT(_SYMBOLS), TT(_ARROWS), LALT(KC_ENTER), - KC_LCTL, KC_LGUI, KC_LGUI, KC_RCTL, - KC_LALT, TT(_WINMGR), TT(_GAMING), KC_LALT), - - [_SYMBOLS] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_CAPS_LOCK, LSFT(KC_BSLS), KC_BSLS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LCTL(KC_EQUAL), LGUI(KC_EQUAL), - TO(_QWERTY), LSFT(KC_EQUAL), KC_MINUS, LSFT(KC_9), LSFT(KC_0), KC_GRAVE, KC_BSLS, LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LCTL(KC_MINUS), LGUI(KC_MINUS), - KC_TRNS, KC_EQUAL, LSFT(KC_MINUS), KC_LBRC, KC_RBRC, LSFT(KC_GRAVE), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), KC_COMMA, KC_CALC, - KC_TRNS, KC_TRNS, LSFT(KC_0), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_0), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS), - - [_GAMING] = LAYOUT( - KC_6, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_ESC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, - KC_8, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_9, KC_0, KC_TRNS, KC_TRNS, - KC_SPC, MO(_ARROWS), KC_TRNS, KC_ENTER, - KC_G, KC_M, KC_TRNS, KC_TRNS, - KC_LALT, TO(_QWERTY), TO(_QWERTY), KC_TRNS), - - [_ARROWS] = LAYOUT( - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_NUM, KC_KP_SLASH, KC_P7, KC_P8, KC_P9, KC_MINUS, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_TRNS, KC_DELETE, - TO(_QWERTY), KC_KP_PLUS, KC_P4, KC_P5, KC_P6, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PSCR, - KC_UNDS, KC_KP_MINUS, KC_P1, KC_P2, KC_P3, KC_COMMA, KC_HOME, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_INS, - KC_KP_DOT, KC_P0, KC_VOLD, KC_VOLU, - KC_P0, TO(_WINMGR), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, QK_RBT), - - [_WINMGR] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_F1, LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), KC_F4, KC_F7, LSG(KC_7), LSG(KC_8), LSG(KC_9), KC_F10, KC_TRNS, - TO(_QWERTY), KC_F2, LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), KC_F5, KC_F8, LSG(KC_4), LSG(KC_5), LSG(KC_6), KC_F11, KC_TRNS, - KC_TRNS, KC_F3, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), KC_F6, KC_F9, LSG(KC_1), LSG(KC_2), LSG(KC_3), KC_F12, KC_TRNS, - KC_TRNS, LGUI(KC_0), LSG(KC_0), KC_TRNS, - LGUI(KC_0), KC_TRNS, KC_TRNS, LSG(KC_0), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - LCTL(LGUI(KC_Q)), KC_TRNS, KC_TRNS, KC_TRNS) -}; - diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/readme.md b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md deleted file mode 100644 index 808f030fb0..0000000000 --- a/keyboards/handwired/dactyl_manuform_pi_pico/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# dactyl_manuform_pi_pico - -![dactyl_manuform_pi_pico](https://i.imgur.com/T9b74bI.jpg) - -This is a dactyl_manuform 5x6 running Rasrberry Pi Pico. -It's based on alcor_dactyl but with more reasonable GPIO layout for Pi Pico -and clasic dactyl_manuform layout (pinkies have only 4 rows). - -Build instructions: https://github.com/GustawXYZ/dactyl_manuform_pi_pico/ - -* Keyboard Maintainer: [Gustaw.xyz](https://github.com/Gustaw.xyz) -* Hardware Supported: Raspberry Pi Pico and other RP2040 -* Hardware Availability: https://www.raspberrypi.com/products/raspberry-pi-pico/ -* 3D Print model: https://github.com/abstracthat/dactyl-manuform - -Make example for this keyboard (after setting up your build environment): - - make handwired/dactyl_manuform_pi_pico:default - -Flashing example for this keyboard: - - make handwired/dactyl_manuform_pi_pico:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json index f53c6ed59d..081fab571a 100644 --- a/keyboards/handwired/dactyl_maximus/keyboard.json +++ b/keyboards/handwired/dactyl_maximus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Maximus", "manufacturer": "handwired", + "url": "", "maintainer": "dunk2k", "usb": { "vid": "0x444C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -23,9 +26,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D1" - } + "soft_serial_pin": "D1" }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c b/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c index efd5f1a058..cfd95db563 100644 --- a/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c @@ -41,12 +41,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT( KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, MS_ACL2, MS_ACL1, MS_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_ACL2, KC_ACL1, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, MS_BTN1, MS_BTN2, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_BTN1, KC_BTN2, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ) }; diff --git a/keyboards/handwired/dactyl_minidox/keyboard.json b/keyboards/handwired/dactyl_minidox/keyboard.json index b488bac4b0..5bd5c5c05a 100644 --- a/keyboards/handwired/dactyl_minidox/keyboard.json +++ b/keyboards/handwired/dactyl_minidox/keyboard.json @@ -67,9 +67,7 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "development_board": "promicro", "community_layouts": ["split_3x5_3"], diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json index 32511d576d..824ffe7e7e 100644 --- a/keyboards/handwired/dactyl_promicro/keyboard.json +++ b/keyboards/handwired/dactyl_promicro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Ergo(6x6)", "manufacturer": "tshort", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -27,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c b/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c index 2e5545c700..1dd2f47841 100644 --- a/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c @@ -57,10 +57,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_RAISE] = LAYOUT_6x6( _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, - _______,_______,_______,MS_UP, _______,_______, _______,_______,_______,_______,_______,_______, - _______,_______,MS_LEFT,MS_DOWN,MS_RGHT,_______, _______,_______,_______,_______,_______,KC_MPLY, + _______,_______,_______,KC_MS_U,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,KC_MS_L,KC_MS_D,KC_MS_R,_______, _______,_______,_______,_______,_______,KC_MPLY, _______,_______,_______,_______,_______,_______, _______,_______,KC_MPRV,KC_MNXT,_______,_______, - QK_BOOT ,_______,_______,MS_BTN1,MS_BTN2,_______, KC_WBAK,KC_VOLU,KC_VOLD,KC_MUTE,_______,_______, + QK_BOOT ,_______,_______,KC_BTN1,KC_BTN2,_______, KC_WBAK,KC_VOLU,KC_VOLD,KC_MUTE,_______,_______, _______,_______,_______, _______,_______,_______, _______, _______, _______, _______ diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 2cb7741cc7..3bc5dc0854 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -28,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_rah/keymaps/default/keymap.c b/keyboards/handwired/dactyl_rah/keymaps/default/keymap.c index 447ff3c0a7..6f0c25a4dd 100644 --- a/keyboards/handwired/dactyl_rah/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_rah/keymaps/default/keymap.c @@ -36,12 +36,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NAV] = LAYOUT_6x6( QK_BOOT , KC_NO ,KC_MPRV,KC_MPLY,KC_MNXT, KC_NO , KC_BRIU, KC_7 , KC_8 , KC_9 , KC_NO , QK_BOOT , - _______,KC_VOLU,KC_WBAK,MS_UP, KC_WFWD,MS_WHLU, KC_BRID, KC_4 , KC_5 , KC_6 , KC_NO , KC_F9 , - _______,KC_VOLD,MS_LEFT,MS_DOWN,MS_RGHT,MS_WHLD, KC_PPLS, KC_1 , KC_2 , KC_3 ,KC_PMNS, KC_F10, + _______,KC_VOLU,KC_WBAK,KC_MS_U,KC_WFWD,KC_WH_U, KC_BRID, KC_4 , KC_5 , KC_6 , KC_NO , KC_F9 , + _______,KC_VOLD,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D, KC_PPLS, KC_1 , KC_2 , KC_3 ,KC_PMNS, KC_F10, KC_NO , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NO , KC_PAST, KC_0 , KC_NO ,_______,KC_PSLS, KC_F11, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______,_______,_______,_______, KC_F12, _______,_______, KC_HOME,_______, _______, KC_END , - MS_BTN1,MS_BTN2,_______, ALT_BSP,_______,_______ + KC_BTN1,KC_BTN2,_______, ALT_BSP,_______,_______ ) }; diff --git a/keyboards/handwired/dactyl_rah/keymaps/right/keymap.c b/keyboards/handwired/dactyl_rah/keymaps/right/keymap.c index 447ff3c0a7..6f0c25a4dd 100644 --- a/keyboards/handwired/dactyl_rah/keymaps/right/keymap.c +++ b/keyboards/handwired/dactyl_rah/keymaps/right/keymap.c @@ -36,12 +36,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NAV] = LAYOUT_6x6( QK_BOOT , KC_NO ,KC_MPRV,KC_MPLY,KC_MNXT, KC_NO , KC_BRIU, KC_7 , KC_8 , KC_9 , KC_NO , QK_BOOT , - _______,KC_VOLU,KC_WBAK,MS_UP, KC_WFWD,MS_WHLU, KC_BRID, KC_4 , KC_5 , KC_6 , KC_NO , KC_F9 , - _______,KC_VOLD,MS_LEFT,MS_DOWN,MS_RGHT,MS_WHLD, KC_PPLS, KC_1 , KC_2 , KC_3 ,KC_PMNS, KC_F10, + _______,KC_VOLU,KC_WBAK,KC_MS_U,KC_WFWD,KC_WH_U, KC_BRID, KC_4 , KC_5 , KC_6 , KC_NO , KC_F9 , + _______,KC_VOLD,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D, KC_PPLS, KC_1 , KC_2 , KC_3 ,KC_PMNS, KC_F10, KC_NO , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NO , KC_PAST, KC_0 , KC_NO ,_______,KC_PSLS, KC_F11, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______,_______,_______,_______, KC_F12, _______,_______, KC_HOME,_______, _______, KC_END , - MS_BTN1,MS_BTN2,_______, ALT_BSP,_______,_______ + KC_BTN1,KC_BTN2,_______, ALT_BSP,_______,_______ ) }; diff --git a/keyboards/handwired/dactyl_tracer/keyboard.json b/keyboards/handwired/dactyl_tracer/keyboard.json index 43e2bef722..29e5990666 100644 --- a/keyboards/handwired/dactyl_tracer/keyboard.json +++ b/keyboards/handwired/dactyl_tracer/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "mousekey": true, "extrakey": true, "nkro": true @@ -22,9 +24,7 @@ "development_board": "promicro", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "layouts": { "LAYOUT" : { diff --git a/keyboards/handwired/dactylmacropad/keyboard.json b/keyboards/handwired/dactylmacropad/keyboard.json index fa89b9e117..5d40a240a9 100644 --- a/keyboards/handwired/dactylmacropad/keyboard.json +++ b/keyboards/handwired/dactylmacropad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/dactylmacropad/keymaps/default/keymap.c b/keyboards/handwired/dactylmacropad/keymaps/default/keymap.c index bcb4e2016a..65c7f445b7 100644 --- a/keyboards/handwired/dactylmacropad/keymaps/default/keymap.c +++ b/keyboards/handwired/dactylmacropad/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT (pvt, LCTL(KC_V), KC_UP, LCTL(KC_C), LSFT_T(KC_ESC), KC_LEFT, KC_DOWN, KC_RGHT, - TO(1), KC_LCTL, ALT_TAB, KC_APP, MS_BTN3), + TO(1), KC_LCTL, ALT_TAB, KC_APP, KC_BTN3), /* * ┌────┬────┬────┬────┐ * │mte │ BI │ up │pgu │ @@ -71,9 +71,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } return false; diff --git a/keyboards/handwired/daishi/keyboard.json b/keyboards/handwired/daishi/keyboard.json index f7dabc5992..22044faab3 100644 --- a/keyboards/handwired/daishi/keyboard.json +++ b/keyboards/handwired/daishi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Daishi", "manufacturer": "MetaMechs", + "url": "", "maintainer": "Croktopus", "usb": { "vid": "0x6D6D", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "dynamic_macro": true, "encoder": true, diff --git a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json index 7d9b60722f..8308506512 100644 --- a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json +++ b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -30,7 +32,8 @@ "indicators": { "num_lock": "C13", "caps_lock": "B14", - "scroll_lock": "B2" + "scroll_lock": "B2", + "on_state": 1 }, "encoder": { "rotary": [ @@ -40,233 +43,114 @@ "tapping": { "toggle": 2 }, - "community_layouts": ["fullsize_ansi", "fullsize_iso"], "layouts": { - "LAYOUT_fullsize_ansi": { - "layout": [ - {"matrix": [5, 16], "x": 0, "y": 0}, - {"matrix": [2, 4], "x": 2, "y": 0}, - {"matrix": [2, 5], "x": 3, "y": 0}, - {"matrix": [3, 5], "x": 4, "y": 0}, - {"matrix": [5, 5], "x": 5, "y": 0}, - {"matrix": [0, 1], "x": 6.5, "y": 0}, - {"matrix": [5, 8], "x": 7.5, "y": 0}, - {"matrix": [3, 3], "x": 8.5, "y": 0}, - {"matrix": [2, 3], "x": 9.5, "y": 0}, - {"matrix": [2, 2], "x": 11, "y": 0}, - {"matrix": [0, 2], "x": 12, "y": 0}, - {"matrix": [5, 2], "x": 13, "y": 0}, - {"matrix": [6, 2], "x": 14, "y": 0}, - {"matrix": [0, 0], "x": 15.25, "y": 0}, - {"matrix": [1, 0], "x": 16.25, "y": 0}, - {"matrix": [1, 1], "x": 17.25, "y": 0}, - - {"matrix": [2, 16], "x": 0, "y": 1.25}, - {"matrix": [0, 16], "x": 1, "y": 1.25}, - {"matrix": [0, 4], "x": 2, "y": 1.25}, - {"matrix": [0, 5], "x": 3, "y": 1.25}, - {"matrix": [0, 6], "x": 4, "y": 1.25}, - {"matrix": [2, 6], "x": 5, "y": 1.25}, - {"matrix": [2, 7], "x": 6, "y": 1.25}, - {"matrix": [0, 7], "x": 7, "y": 1.25}, - {"matrix": [0, 8], "x": 8, "y": 1.25}, - {"matrix": [0, 3], "x": 9, "y": 1.25}, - {"matrix": [0, 9], "x": 10, "y": 1.25}, - {"matrix": [2, 9], "x": 11, "y": 1.25}, - {"matrix": [2, 8], "x": 12, "y": 1.25}, - {"matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, - {"matrix": [2, 11], "x": 15.25, "y": 1.25}, - {"matrix": [2, 15], "x": 16.25, "y": 1.25}, - {"matrix": [2, 14], "x": 17.25, "y": 1.25}, - {"matrix": [4, 10], "x": 18.5, "y": 1.25}, - {"matrix": [4, 11], "x": 19.5, "y": 1.25}, - {"matrix": [4, 14], "x": 20.5, "y": 1.25}, - {"matrix": [6, 14], "x": 21.5, "y": 1.25}, - - {"matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, - {"matrix": [1, 16], "x": 1.5, "y": 2.25}, - {"matrix": [1, 4], "x": 2.5, "y": 2.25}, - {"matrix": [1, 5], "x": 3.5, "y": 2.25}, - {"matrix": [1, 6], "x": 4.5, "y": 2.25}, - {"matrix": [3, 6], "x": 5.5, "y": 2.25}, - {"matrix": [3, 7], "x": 6.5, "y": 2.25}, - {"matrix": [1, 7], "x": 7.5, "y": 2.25}, - {"matrix": [1, 8], "x": 8.5, "y": 2.25}, - {"matrix": [1, 3], "x": 9.5, "y": 2.25}, - {"matrix": [1, 9], "x": 10.5, "y": 2.25}, - {"matrix": [3, 9], "x": 11.5, "y": 2.25}, - {"matrix": [3, 8], "x": 12.5, "y": 2.25}, - {"matrix": [7, 2], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 10], "x": 15.25, "y": 2.25}, - {"matrix": [0, 15], "x": 16.25, "y": 2.25}, - {"matrix": [0, 14], "x": 17.25, "y": 2.25}, - {"matrix": [1, 10], "x": 18.5, "y": 2.25}, - {"matrix": [1, 11], "x": 19.5, "y": 2.25}, - {"matrix": [1, 14], "x": 20.5, "y": 2.25}, - {"matrix": [1, 15], "x": 21.5, "y": 2.25, "h": 2}, - - {"matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, - {"matrix": [7, 16], "x": 1.75, "y": 3.25}, - {"matrix": [7, 4], "x": 2.75, "y": 3.25}, - {"matrix": [7, 5], "x": 3.75, "y": 3.25}, - {"matrix": [7, 6], "x": 4.75, "y": 3.25}, - {"matrix": [5, 6], "x": 5.75, "y": 3.25}, - {"matrix": [5, 7], "x": 6.75, "y": 3.25}, - {"matrix": [7, 7], "x": 7.75, "y": 3.25}, - {"matrix": [7, 8], "x": 8.75, "y": 3.25}, - {"matrix": [7, 3], "x": 9.75, "y": 3.25}, - {"matrix": [7, 9], "x": 10.75, "y": 3.25}, - {"matrix": [5, 9], "x": 11.75, "y": 3.25}, - {"matrix": [4, 2], "w": 2.25, "x": 12.75, "y": 3.25}, - {"matrix": [3, 10], "x": 18.5, "y": 3.25}, - {"matrix": [3, 11], "x": 19.5, "y": 3.25}, - {"matrix": [3, 14], "x": 20.5, "y": 3.25}, - - {"matrix": [3, 13], "w": 2.25, "x": 0, "y": 4.25}, - {"matrix": [4, 16], "x": 2.25, "y": 4.25}, - {"matrix": [4, 4], "x": 3.25, "y": 4.25}, - {"matrix": [4, 5], "x": 4.25, "y": 4.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4.25}, - {"matrix": [6, 6], "x": 6.25, "y": 4.25}, - {"matrix": [6, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"matrix": [4, 3], "x": 10.25, "y": 4.25}, - {"matrix": [6, 9], "x": 11.25, "y": 4.25}, - {"matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, - {"matrix": [5, 15], "x": 16.25, "y": 4.25}, - {"matrix": [7, 10], "x": 18.5, "y": 4.25}, - {"matrix": [7, 11], "x": 19.5, "y": 4.25}, - {"matrix": [7, 14], "x": 20.5, "y": 4.25}, - {"matrix": [7, 15], "x": 21.5, "y": 4.25, "h": 2}, - - {"matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, - {"matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, - {"matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, - {"matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, - {"matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, - {"matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, - {"matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, - {"matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, - {"matrix": [6, 15], "x": 15.25, "y": 5.25}, - {"matrix": [6, 10], "x": 16.25, "y": 5.25}, - {"matrix": [6, 11], "x": 17.25, "y": 5.25}, - {"matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, - {"matrix": [5, 14], "x": 20.5, "y": 5.25} - ] - }, "LAYOUT_fullsize_iso": { "layout": [ - {"matrix": [5, 16], "x": 0, "y": 0}, - {"matrix": [2, 4], "x": 2, "y": 0}, - {"matrix": [2, 5], "x": 3, "y": 0}, - {"matrix": [3, 5], "x": 4, "y": 0}, - {"matrix": [5, 5], "x": 5, "y": 0}, - {"matrix": [0, 1], "x": 6.5, "y": 0}, - {"matrix": [5, 8], "x": 7.5, "y": 0}, - {"matrix": [3, 3], "x": 8.5, "y": 0}, - {"matrix": [2, 3], "x": 9.5, "y": 0}, - {"matrix": [2, 2], "x": 11, "y": 0}, - {"matrix": [0, 2], "x": 12, "y": 0}, - {"matrix": [5, 2], "x": 13, "y": 0}, - {"matrix": [6, 2], "x": 14, "y": 0}, - {"matrix": [0, 0], "x": 15.25, "y": 0}, - {"matrix": [1, 0], "x": 16.25, "y": 0}, - {"matrix": [1, 1], "x": 17.25, "y": 0}, - - {"matrix": [2, 16], "x": 0, "y": 1.25}, - {"matrix": [0, 16], "x": 1, "y": 1.25}, - {"matrix": [0, 4], "x": 2, "y": 1.25}, - {"matrix": [0, 5], "x": 3, "y": 1.25}, - {"matrix": [0, 6], "x": 4, "y": 1.25}, - {"matrix": [2, 6], "x": 5, "y": 1.25}, - {"matrix": [2, 7], "x": 6, "y": 1.25}, - {"matrix": [0, 7], "x": 7, "y": 1.25}, - {"matrix": [0, 8], "x": 8, "y": 1.25}, - {"matrix": [0, 3], "x": 9, "y": 1.25}, - {"matrix": [0, 9], "x": 10, "y": 1.25}, - {"matrix": [2, 9], "x": 11, "y": 1.25}, - {"matrix": [2, 8], "x": 12, "y": 1.25}, - {"matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, - {"matrix": [2, 11], "x": 15.25, "y": 1.25}, - {"matrix": [2, 15], "x": 16.25, "y": 1.25}, - {"matrix": [2, 14], "x": 17.25, "y": 1.25}, - {"matrix": [4, 10], "x": 18.5, "y": 1.25}, - {"matrix": [4, 11], "x": 19.5, "y": 1.25}, - {"matrix": [4, 14], "x": 20.5, "y": 1.25}, - {"matrix": [6, 14], "x": 21.5, "y": 1.25}, - - {"matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, - {"matrix": [1, 16], "x": 1.5, "y": 2.25}, - {"matrix": [1, 4], "x": 2.5, "y": 2.25}, - {"matrix": [1, 5], "x": 3.5, "y": 2.25}, - {"matrix": [1, 6], "x": 4.5, "y": 2.25}, - {"matrix": [3, 6], "x": 5.5, "y": 2.25}, - {"matrix": [3, 7], "x": 6.5, "y": 2.25}, - {"matrix": [1, 7], "x": 7.5, "y": 2.25}, - {"matrix": [1, 8], "x": 8.5, "y": 2.25}, - {"matrix": [1, 3], "x": 9.5, "y": 2.25}, - {"matrix": [1, 9], "x": 10.5, "y": 2.25}, - {"matrix": [3, 9], "x": 11.5, "y": 2.25}, - {"matrix": [3, 8], "x": 12.5, "y": 2.25}, - {"matrix": [2, 10], "x": 15.25, "y": 2.25}, - {"matrix": [0, 15], "x": 16.25, "y": 2.25}, - {"matrix": [0, 14], "x": 17.25, "y": 2.25}, - {"matrix": [1, 10], "x": 18.5, "y": 2.25}, - {"matrix": [1, 11], "x": 19.5, "y": 2.25}, - {"matrix": [1, 14], "x": 20.5, "y": 2.25}, - {"matrix": [1, 15], "x": 21.5, "y": 2.25, "h": 2}, - - {"matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, - {"matrix": [7, 16], "x": 1.75, "y": 3.25}, - {"matrix": [7, 4], "x": 2.75, "y": 3.25}, - {"matrix": [7, 5], "x": 3.75, "y": 3.25}, - {"matrix": [7, 6], "x": 4.75, "y": 3.25}, - {"matrix": [5, 6], "x": 5.75, "y": 3.25}, - {"matrix": [5, 7], "x": 6.75, "y": 3.25}, - {"matrix": [7, 7], "x": 7.75, "y": 3.25}, - {"matrix": [7, 8], "x": 8.75, "y": 3.25}, - {"matrix": [7, 3], "x": 9.75, "y": 3.25}, - {"matrix": [7, 9], "x": 10.75, "y": 3.25}, - {"matrix": [5, 9], "x": 11.75, "y": 3.25}, - {"matrix": [1, 2], "x": 12.75, "y": 3.25}, - {"matrix": [4, 2], "w": 1.25, "x": 13.75, "y": 2.25, "h": 2}, - {"matrix": [3, 10], "x": 18.5, "y": 3.25}, - {"matrix": [3, 11], "x": 19.5, "y": 3.25}, - {"matrix": [3, 14], "x": 20.5, "y": 3.25}, - - {"matrix": [3, 13], "w": 1.25, "x": 0, "y": 4.25}, - {"matrix": [5, 4], "x": 1.25, "y": 4.25}, - {"matrix": [4, 16], "x": 2.25, "y": 4.25}, - {"matrix": [4, 4], "x": 3.25, "y": 4.25}, - {"matrix": [4, 5], "x": 4.25, "y": 4.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4.25}, - {"matrix": [6, 6], "x": 6.25, "y": 4.25}, - {"matrix": [6, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"matrix": [4, 3], "x": 10.25, "y": 4.25}, - {"matrix": [6, 9], "x": 11.25, "y": 4.25}, - {"matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, - {"matrix": [5, 15], "x": 16.25, "y": 4.25}, - {"matrix": [7, 10], "x": 18.5, "y": 4.25}, - {"matrix": [7, 11], "x": 19.5, "y": 4.25}, - {"matrix": [7, 14], "x": 20.5, "y": 4.25}, - {"matrix": [7, 15], "x": 21.5, "y": 4.25, "h": 2}, - - {"matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, - {"matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, - {"matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, - {"matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, - {"matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, - {"matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, - {"matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, - {"matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, - {"matrix": [6, 15], "x": 15.25, "y": 5.25}, - {"matrix": [6, 10], "x": 16.25, "y": 5.25}, - {"matrix": [6, 11], "x": 17.25, "y": 5.25}, - {"matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, - {"matrix": [5, 14], "x": 20.5, "y": 5.25} + {"label": "Esc", "matrix": [5, 16], "x": 0, "y": 0}, + {"label": "F1", "matrix": [2, 4], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 5], "x": 3, "y": 0}, + {"label": "F3", "matrix": [3, 5], "x": 4, "y": 0}, + {"label": "F4", "matrix": [5, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 1], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [5, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [3, 3], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 3], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [2, 2], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 2], "x": 12, "y": 0}, + {"label": "F11", "matrix": [5, 2], "x": 13, "y": 0}, + {"label": "F12", "matrix": [6, 2], "x": 14, "y": 0}, + {"label": "Prt Sc", "matrix": [0, 0], "x": 15.25, "y": 0}, + {"label": "Scr Lk", "matrix": [1, 0], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [1, 1], "x": 17.25, "y": 0}, + {"label": "`", "matrix": [2, 16], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [0, 16], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [0, 4], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [0, 5], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [0, 6], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [2, 6], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [0, 3], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [0, 9], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [2, 9], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, + {"label": "Ins", "matrix": [2, 11], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 17.25, "y": 1.25}, + {"label": "Num Lk", "matrix": [4, 10], "x": 18.5, "y": 1.25}, + {"label": "/", "matrix": [4, 11], "x": 19.5, "y": 1.25}, + {"label": "*", "matrix": [4, 14], "x": 20.5, "y": 1.25}, + {"label": "-", "matrix": [6, 14], "x": 21.5, "y": 1.25}, + {"label": "Tab", "matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, + {"label": "Q", "matrix": [1, 16], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [3, 6], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [3, 7], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [1, 3], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [1, 9], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [3, 9], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [3, 8], "x": 12.5, "y": 2.25}, + {"label": "Del", "matrix": [2, 10], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [0, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [0, 14], "x": 17.25, "y": 2.25}, + {"label": "7", "matrix": [1, 10], "x": 18.5, "y": 2.25}, + {"label": "8", "matrix": [1, 11], "x": 19.5, "y": 2.25}, + {"label": "9", "matrix": [1, 14], "x": 20.5, "y": 2.25}, + {"label": "+", "h": 2, "matrix": [1, 15], "x": 21.5, "y": 2.25}, + {"label": "Caps Lock", "matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, + {"label": "A", "matrix": [7, 16], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [7, 4], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [7, 5], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [7, 6], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [5, 6], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [5, 7], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [7, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [7, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [7, 3], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [7, 9], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [5, 9], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [1, 2], "x": 12.75, "y": 3.25}, + {"label": "Return", "h": 2, "matrix": [4, 2], "w": 1.25, "x": 13.75, "y": 2.25}, + {"label": "4", "matrix": [3, 10], "x": 18.5, "y": 3.25}, + {"label": "5", "matrix": [3, 11], "x": 19.5, "y": 3.25}, + {"label": "6", "matrix": [3, 14], "x": 20.5, "y": 3.25}, + {"label": "Shift L", "matrix": [3, 13], "w": 1.25, "x": 0, "y": 4.25}, + {"label": "\\", "matrix": [5, 4], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 16], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 4], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 5], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 6], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [6, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [6, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 3], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [6, 9], "x": 11.25, "y": 4.25}, + {"label": "Shift R", "matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, + {"label": "Up", "matrix": [5, 15], "x": 16.25, "y": 4.25}, + {"label": "1", "matrix": [7, 10], "x": 18.5, "y": 4.25}, + {"label": "2", "matrix": [7, 11], "x": 19.5, "y": 4.25}, + {"label": "3", "matrix": [7, 14], "x": 20.5, "y": 4.25}, + {"label": "Enter", "h": 2, "matrix": [7, 15], "x": 21.5, "y": 4.25}, + {"label": "Control L", "matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, + {"label": "Super L", "matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, + {"label": "Alt L", "matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, + {"label": " ", "matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, + {"label": "Alt R", "matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, + {"label": "Super R", "matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, + {"label": "Menu", "matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, + {"label": "Control R", "matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, + {"label": "Left", "matrix": [6, 15], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [6, 10], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [6, 11], "x": 17.25, "y": 5.25}, + {"label": "0", "matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, + {"label": "Del", "matrix": [5, 14], "x": 20.5, "y": 5.25} ] } } diff --git a/keyboards/handwired/datahand/keyboard.json b/keyboards/handwired/datahand/keyboard.json index 3684dcc706..c2c7dab421 100644 --- a/keyboards/handwired/datahand/keyboard.json +++ b/keyboards/handwired/datahand/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "DataHand", "manufacturer": "DataHand", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x13BA", "pid": "0x0017", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "processor": "at90usb1286", "bootloader": "halfkay", diff --git a/keyboards/handwired/datahand/keymaps/default/keymap.c b/keyboards/handwired/datahand/keymaps/default/keymap.c index 828aed1d2e..608c45dea3 100644 --- a/keyboards/handwired/datahand/keymaps/default/keymap.c +++ b/keyboards/handwired/datahand/keymaps/default/keymap.c @@ -85,9 +85,9 @@ _______, _______, _______, _______, _______, _______, _______, _______, ______ #endif [FUNCTION_MOUSE] = LAYOUT( - KC_F2, KC_F4, KC_F6, MS_UP, MS_UP, KC_F8, KC_F10, KC_PGUP, -_______, KC_NO, KC_SCRL, _______, MS_BTN3, NLK, MS_BTN1, MS, MS_BTN2, MS_LEFT, MS_BTN1, MS_RGHT, MS_LEFT, MS_BTN2, MS_RGHT, KC_END, AR, KC_LSFT, KC_INS, KC_9, KC_ENT, KC_F11, KC_0, KC_F12, - KC_F1, KC_F3, KC_F5, MS_DOWN, MS_DOWN, KC_F7, KC_F9, KC_PGDN, + KC_F2, KC_F4, KC_F6, KC_MS_U, KC_MS_U, KC_F8, KC_F10, KC_PGUP, +_______, KC_NO, KC_SCRL, _______, KC_BTN3, NLK, KC_BTN1, MS, KC_BTN2, KC_MS_L, KC_BTN1, KC_MS_R, KC_MS_L, KC_BTN2, KC_MS_R, KC_END, AR, KC_LSFT, KC_INS, KC_9, KC_ENT, KC_F11, KC_0, KC_F12, + KC_F1, KC_F3, KC_F5, KC_MS_D, KC_MS_D, KC_F7, KC_F9, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/handwired/dc/mc/001/keyboard.json b/keyboards/handwired/dc/mc/001/keyboard.json index b9e0a7a09f..c91df1ca8b 100644 --- a/keyboards/handwired/dc/mc/001/keyboard.json +++ b/keyboards/handwired/dc/mc/001/keyboard.json @@ -21,6 +21,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/ddg_56/keyboard.json b/keyboards/handwired/ddg_56/keyboard.json index 5259a2683e..e211821dae 100644 --- a/keyboards/handwired/ddg_56/keyboard.json +++ b/keyboards/handwired/ddg_56/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DDG_56", "manufacturer": "Spaceman", + "url": "", "maintainer": "spaceman", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/dmote/keyboard.json b/keyboards/handwired/dmote/keyboard.json index 2e205e153c..e6514b17ba 100644 --- a/keyboards/handwired/dmote/keyboard.json +++ b/keyboards/handwired/dmote/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/dmote/keymaps/default/keymap.c b/keyboards/handwired/dmote/keymaps/default/keymap.c index 632ccb87dc..0c9ceb8722 100644 --- a/keyboards/handwired/dmote/keymaps/default/keymap.c +++ b/keyboards/handwired/dmote/keymaps/default/keymap.c @@ -65,9 +65,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYER_C, KC_INS, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, QK_BOOT, KC_WAKE, // * KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11, _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE, - KC_GRV, KC_EXLM, MS_BTN1, MS_WHLU, MS_BTN2, MS_LEFT, MS_UP, MS_RGHT, KC_PSCR, UG_TOGG, - MS_WHLD, UG_NEXT, _______, MS_ACL1, MS_ACL2, MS_DOWN, - _______, _______, EMDASH, MS_ACL0, _______, _______, + KC_GRV, KC_EXLM, KC_BTN1, KC_WH_U, KC_BTN2, KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, UG_TOGG, + KC_WH_D, UG_NEXT, _______, KC_ACL1, KC_ACL2, KC_MS_D, + _______, _______, EMDASH, KC_ACL0, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c index 9488bbfde6..2a4ca0c703 100644 --- a/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c +++ b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c @@ -37,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * Maltron, so just putting some "Quantum" keycodes here for testing that * the layer exists and Fun Lock LED works. */ [_FUNCTION] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,KC_TRNS,MS_BTN3,MS_UP, MS_WHLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,KC_TRNS,KC_BTN3,KC_MS_U,KC_WH_U,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_UP, AU_ON, MS_LEFT,MS_BTN1,MS_RGHT,KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_DOWN,AU_OFF, MS_BTN2,MS_DOWN,MS_WHLD,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_TOGG,KC_NO, MS_ACL0,MS_ACL1,MS_ACL2,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_UP, AU_ON, KC_MS_L,KC_BTN1,KC_MS_R,KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_DOWN,AU_OFF, KC_BTN2,KC_MS_D,KC_WH_D,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_TOGG,KC_NO, KC_ACL0,KC_ACL1,KC_ACL2,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* */ diff --git a/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c index d3bb0f3c1a..427b9ddb14 100644 --- a/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/dygma/raise/keymaps/default/keymap.c b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c index 9c70416539..c766fb7203 100644 --- a/keyboards/handwired/dygma/raise/keymaps/default/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, 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_NUHS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c index fe9651d031..2fd0b49b0b 100644 --- a/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, 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_NUHS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index 195edabcae..cd02f80200 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -7,3 +7,5 @@ CUSTOM_MATRIX = lite I2C_DRIVER_REQUIRED = yes SRC += matrix.c + +DEFAULT_FOLDER = handwired/dygma/raise/ansi diff --git a/keyboards/handwired/eagleii/keyboard.json b/keyboards/handwired/eagleii/keyboard.json index 9b5d026530..4179a4cdd6 100644 --- a/keyboards/handwired/eagleii/keyboard.json +++ b/keyboards/handwired/eagleii/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "II", "manufacturer": "Eagle", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/elrgo_s/keyboard.json b/keyboards/handwired/elrgo_s/keyboard.json index ae0054b65c..c0ae4beadb 100644 --- a/keyboards/handwired/elrgo_s/keyboard.json +++ b/keyboards/handwired/elrgo_s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Elrgo S", "manufacturer": "Eloren", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x454C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/elrgo_s/keymaps/default/keymap.c b/keyboards/handwired/elrgo_s/keymaps/default/keymap.c index d43f390586..b43c75cf2d 100644 --- a/keyboards/handwired/elrgo_s/keymaps/default/keymap.c +++ b/keyboards/handwired/elrgo_s/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_RAISE] = LAYOUT_split_3x6_5( - KC_ESC , KC_PDOT , M_BBSLS , KC_BSLS , LSFT(KC_MINS), LSFT(KC_EQL), KC_HOME , MS_WHLL , KC_UP , MS_WHLR , KC_PGUP , KC_BSPC , + KC_ESC , KC_PDOT , M_BBSLS , KC_BSLS , LSFT(KC_MINS), LSFT(KC_EQL), KC_HOME , KC_WH_L , KC_UP , KC_WH_R , KC_PGUP , KC_BSPC , KC_TAB , LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4) , LSFT(KC_5) , M_FLEFT , KC_LEFT , KC_DOWN , KC_RIGHT, M_FRIGHT, KC_DEL , LSFT(KC_TAB), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9) , LSFT(KC_0) , KC_END , KC_F22 , KC_F23 , KC_CAPS , KC_PGDN , MO(_ADJUST), KC_LGUI , KC_LCTL , KC_LSFT , KC_LALT , M_SHLL , M_SHLA , KC_TRNS , KC_SPC , KC_RALT , KC_ENT diff --git a/keyboards/handwired/ergocheap/keyboard.json b/keyboards/handwired/ergocheap/keyboard.json index 879cf8a4d1..8728b486a8 100644 --- a/keyboards/handwired/ergocheap/keyboard.json +++ b/keyboards/handwired/ergocheap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ergocheap", "manufacturer": "xSteins", + "url": "", "maintainer": "xSteins", "usb": { "vid": "0xFEDE", diff --git a/keyboards/handwired/ergocheap/keymaps/default/keymap.c b/keyboards/handwired/ergocheap/keymaps/default/keymap.c index efb7955c09..15753dabd7 100644 --- a/keyboards/handwired/ergocheap/keymaps/default/keymap.c +++ b/keyboards/handwired/ergocheap/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_UP, _______, _______, _______, KC_LCTL, _______, KC_S, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_LEFT, KC_RGHT, _______, _______, - KC_LSFT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_DOWN, TO(_BASE), MS_WHLU, _______, - _______, KC_LGUI, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR + KC_LSFT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_DOWN, TO(_BASE), KC_WH_U, _______, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R ) }; diff --git a/keyboards/handwired/ergodox_stm32/keyboard.json b/keyboards/handwired/ergodox_stm32/keyboard.json deleted file mode 100644 index 49c0a858d4..0000000000 --- a/keyboards/handwired/ergodox_stm32/keyboard.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "keyboard_name": "ErgoDox STM32", - "manufacturer": "ErgoDox", - "url": "github.com/codetector1374", - "maintainer": "codetector1374", - "usb": { - "vid": "0xFEED", - "pid": "0x1308", - "device_version": "1.0.1" - }, - "features": { - "bootmagic": false, - "mousekey": false, - "extrakey": true, - "nkro": true, - "unicode": true - }, - "processor": "STM32F103", - "bootloader": "custom", - "community_layouts": ["ergodox"], - "layouts": { - "LAYOUT_ergodox": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5}, - {"matrix": [1, 0], "x": 1.5, "y": 0.375}, - {"matrix": [2, 0], "x": 2.5, "y": 0.125}, - {"matrix": [3, 0], "x": 3.5, "y": 0}, - {"matrix": [4, 0], "x": 4.5, "y": 0.125}, - {"matrix": [5, 0], "x": 5.5, "y": 0.25}, - {"matrix": [6, 0], "x": 6.5, "y": 0.25}, - - {"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1.375}, - {"matrix": [2, 1], "x": 2.5, "y": 1.125}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [4, 1], "x": 4.5, "y": 1.125}, - {"matrix": [5, 1], "x": 5.5, "y": 1.25}, - {"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5}, - - {"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 2.375}, - {"matrix": [2, 2], "x": 2.5, "y": 2.125}, - {"matrix": [3, 2], "x": 3.5, "y": 2}, - {"matrix": [4, 2], "x": 4.5, "y": 2.125}, - {"matrix": [5, 2], "x": 5.5, "y": 2.25}, - - {"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5}, - {"matrix": [1, 3], "x": 1.5, "y": 3.375}, - {"matrix": [2, 3], "x": 2.5, "y": 3.125}, - {"matrix": [3, 3], "x": 3.5, "y": 3}, - {"matrix": [4, 3], "x": 4.5, "y": 3.125}, - {"matrix": [5, 3], "x": 5.5, "y": 3.25}, - {"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5}, - {"matrix": [0, 4], "x": 0.5, "y": 4.375}, - {"matrix": [1, 4], "x": 1.5, "y": 4.375}, - {"matrix": [2, 4], "x": 2.5, "y": 4.125}, - {"matrix": [3, 4], "x": 3.5, "y": 4}, - {"matrix": [4, 4], "x": 4.5, "y": 4.125}, - - {"matrix": [5, 5], "x": 6, "y": 5}, - {"matrix": [6, 5], "x": 7, "y": 5}, - {"matrix": [4, 5], "x": 7, "y": 6}, - - {"matrix": [3, 5], "x": 5, "y": 6, "h": 2}, - {"matrix": [2, 5], "x": 6, "y": 6, "h": 2}, - {"matrix": [1, 5], "x": 7, "y": 7}, - - {"matrix": [7, 0], "x": 9.5, "y": 0.25}, - {"matrix": [8, 0], "x": 10.5, "y": 0.25}, - {"matrix": [9, 0], "x": 11.5, "y": 0.125}, - {"matrix": [10, 0], "x": 12.5, "y": 0}, - {"matrix": [11, 0], "x": 13.5, "y": 0.125}, - {"matrix": [12, 0], "x": 14.5, "y": 0.375}, - {"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5}, - - {"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5}, - {"matrix": [8, 1], "x": 10.5, "y": 1.25}, - {"matrix": [9, 1], "x": 11.5, "y": 1.125}, - {"matrix": [10, 1], "x": 12.5, "y": 1}, - {"matrix": [11, 1], "x": 13.5, "y": 1.125}, - {"matrix": [12, 1], "x": 14.5, "y": 1.375}, - {"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5}, - - {"matrix": [8, 2], "x": 10.5, "y": 2.25}, - {"matrix": [9, 2], "x": 11.5, "y": 2.125}, - {"matrix": [10, 2], "x": 12.5, "y": 2}, - {"matrix": [11, 2], "x": 13.5, "y": 2.125}, - {"matrix": [12, 2], "x": 14.5, "y": 2.375}, - {"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5}, - - {"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5}, - {"matrix": [8, 3], "x": 10.5, "y": 3.25}, - {"matrix": [9, 3], "x": 11.5, "y": 3.125}, - {"matrix": [10, 3], "x": 12.5, "y": 3}, - {"matrix": [11, 3], "x": 13.5, "y": 3.125}, - {"matrix": [12, 3], "x": 14.5, "y": 3.375}, - {"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5}, - - {"matrix": [9, 4], "x": 11.5, "y": 4.125}, - {"matrix": [10, 4], "x": 12.5, "y": 4}, - {"matrix": [11, 4], "x": 13.5, "y": 4.125}, - {"matrix": [12, 4], "x": 14.5, "y": 4.375}, - {"matrix": [13, 4], "x": 15.5, "y": 4.375}, - - {"matrix": [7, 5], "x": 9, "y": 5}, - {"matrix": [8, 5], "x": 10, "y": 5}, - - {"matrix": [9, 5], "x": 9, "y": 6}, - - {"matrix": [12, 5], "x": 9, "y": 7}, - - {"matrix": [11, 5], "x": 10, "y": 6, "h": 2}, - {"matrix": [10, 5], "x": 11, "y": 6, "h": 2} - ] - }, - "LAYOUT_ergodox_pretty": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5}, - {"matrix": [1, 0], "x": 1.5, "y": 0.375}, - {"matrix": [2, 0], "x": 2.5, "y": 0.125}, - {"matrix": [3, 0], "x": 3.5, "y": 0}, - {"matrix": [4, 0], "x": 4.5, "y": 0.125}, - {"matrix": [5, 0], "x": 5.5, "y": 0.25}, - {"matrix": [6, 0], "x": 6.5, "y": 0.25}, - - {"matrix": [7, 0], "x": 9.5, "y": 0.25}, - {"matrix": [8, 0], "x": 10.5, "y": 0.25}, - {"matrix": [9, 0], "x": 11.5, "y": 0.125}, - {"matrix": [10, 0], "x": 12.5, "y": 0}, - {"matrix": [11, 0], "x": 13.5, "y": 0.125}, - {"matrix": [12, 0], "x": 14.5, "y": 0.375}, - {"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5}, - - {"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1.375}, - {"matrix": [2, 1], "x": 2.5, "y": 1.125}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [4, 1], "x": 4.5, "y": 1.125}, - {"matrix": [5, 1], "x": 5.5, "y": 1.25}, - {"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5}, - - {"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5}, - {"matrix": [8, 1], "x": 10.5, "y": 1.25}, - {"matrix": [9, 1], "x": 11.5, "y": 1.125}, - {"matrix": [10, 1], "x": 12.5, "y": 1}, - {"matrix": [11, 1], "x": 13.5, "y": 1.125}, - {"matrix": [12, 1], "x": 14.5, "y": 1.375}, - {"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5}, - - {"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 2.375}, - {"matrix": [2, 2], "x": 2.5, "y": 2.125}, - {"matrix": [3, 2], "x": 3.5, "y": 2}, - {"matrix": [4, 2], "x": 4.5, "y": 2.125}, - {"matrix": [5, 2], "x": 5.5, "y": 2.25}, - - {"matrix": [8, 2], "x": 10.5, "y": 2.25}, - {"matrix": [9, 2], "x": 11.5, "y": 2.125}, - {"matrix": [10, 2], "x": 12.5, "y": 2}, - {"matrix": [11, 2], "x": 13.5, "y": 2.125}, - {"matrix": [12, 2], "x": 14.5, "y": 2.375}, - {"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5}, - - {"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5}, - {"matrix": [1, 3], "x": 1.5, "y": 3.375}, - {"matrix": [2, 3], "x": 2.5, "y": 3.125}, - {"matrix": [3, 3], "x": 3.5, "y": 3}, - {"matrix": [4, 3], "x": 4.5, "y": 3.125}, - {"matrix": [5, 3], "x": 5.5, "y": 3.25}, - {"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5}, - - {"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5}, - {"matrix": [8, 3], "x": 10.5, "y": 3.25}, - {"matrix": [9, 3], "x": 11.5, "y": 3.125}, - {"matrix": [10, 3], "x": 12.5, "y": 3}, - {"matrix": [11, 3], "x": 13.5, "y": 3.125}, - {"matrix": [12, 3], "x": 14.5, "y": 3.375}, - {"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5}, - - {"matrix": [0, 4], "x": 0.5, "y": 4.375}, - {"matrix": [1, 4], "x": 1.5, "y": 4.375}, - {"matrix": [2, 4], "x": 2.5, "y": 4.125}, - {"matrix": [3, 4], "x": 3.5, "y": 4}, - {"matrix": [4, 4], "x": 4.5, "y": 4.125}, - - {"matrix": [9, 4], "x": 11.5, "y": 4.125}, - {"matrix": [10, 4], "x": 12.5, "y": 4}, - {"matrix": [11, 4], "x": 13.5, "y": 4.125}, - {"matrix": [12, 4], "x": 14.5, "y": 4.375}, - {"matrix": [13, 4], "x": 15.5, "y": 4.375}, - - {"matrix": [5, 5], "x": 6, "y": 5}, - {"matrix": [6, 5], "x": 7, "y": 5}, - - {"matrix": [7, 5], "x": 9, "y": 5}, - {"matrix": [8, 5], "x": 10, "y": 5}, - - {"matrix": [4, 5], "x": 7, "y": 6}, - - {"matrix": [9, 5], "x": 9, "y": 6}, - - {"matrix": [3, 5], "x": 5, "y": 6, "h": 2}, - {"matrix": [2, 5], "x": 6, "y": 6, "h": 2}, - - {"matrix": [1, 5], "x": 7, "y": 7}, - - {"matrix": [12, 5], "x": 9, "y": 7}, - - {"matrix": [11, 5], "x": 10, "y": 6, "h": 2}, - {"matrix": [10, 5], "x": 11, "y": 6, "h": 2} - ] - } - } -} diff --git a/keyboards/handwired/ergodox_stm32/readme.md b/keyboards/handwired/ergodox_stm32/readme.md deleted file mode 100644 index 84accbb5fe..0000000000 --- a/keyboards/handwired/ergodox_stm32/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# ergodox_stm32 - -* Keyboard Maintainer: [Codetector1374](https://github.com/Codetector1374) - -Make example for this keyboard (after setting up your build environment): - - make handwired/ergodox_stm32:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/erikpeyronson/erkbd/config.h b/keyboards/handwired/erikpeyronson/erkbd/config.h deleted file mode 100644 index acbafbfaa7..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/config.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 Erik Peyronson @erikpeyronson -// SPDX-License-Identifier: GPL-3.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define I2C_DRIVER I2CD1 -#define OLED_IC OLED_IC_SH1106 -#define OLED_COLUMN_OFFSET 2 - -#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/erikpeyronson/erkbd/erkbd.c b/keyboards/handwired/erikpeyronson/erkbd/erkbd.c deleted file mode 100644 index af236df93c..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/erkbd.c +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2025 Erik Peyronson @erikpeyronson -// SPDX-License-Identifier: GPL-3.0-or-later -#include QMK_KEYBOARD_H - -static void oled_render_logo(void) { - // clang-format off - static const char PROGMEM qmk_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - // clang-format on - - oled_write_P(qmk_logo, false); -} - -static void render_layer(void) { - oled_write_P(PSTR("Layer: "), false); - oled_write_ln(get_u8_str(get_highest_layer(layer_state), ' '), false); -} - -static void render_locks(void) { - led_t led_config = host_keyboard_led_state(); - oled_write_P(PSTR("Caps "), led_config.caps_lock); - oled_write_P(PSTR("Scrl "), led_config.scroll_lock); - oled_write_P(PSTR("Num "), led_config.num_lock); -#ifdef CAPS_WORD_ENABLE - oled_write_P(PSTR("Word "), is_caps_word_on()); -#endif - oled_advance_page(true); -} - -static void render_mods(void) { - uint8_t mod_state = get_mods(); - oled_write_P("Ctrl ", mod_state & MOD_MASK_CTRL); - oled_write_P("Shift ", mod_state & MOD_MASK_SHIFT); - oled_write_P("Alt ", mod_state & MOD_MASK_ALT); - oled_write_P("Gui", mod_state & MOD_MASK_GUI); - oled_advance_page(true); -} - -static void render_delimeter(void) { - oled_write_ln_P(PSTR("------------------"), false); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (is_keyboard_left()) { - oled_render_logo(); - } else { - render_delimeter(); - render_locks(); - render_delimeter(); - render_mods(); - render_delimeter(); - render_layer(); - render_delimeter(); - } - - return false; -} diff --git a/keyboards/handwired/erikpeyronson/erkbd/keyboard.json b/keyboards/handwired/erikpeyronson/erkbd/keyboard.json deleted file mode 100644 index d3ef5147f4..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/keyboard.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "manufacturer": "Erik Peyronson", - "keyboard_name": "erkbd", - "maintainer": "erikpeyronson", - "bootloader": "rp2040", - "bootloader_instructions": "Double tap the reset button on the controller board if accessable. If not hold down bootmagic key while powering on. Left side: row 0 column 0. (The tab key on regular keyboard). Right side: row 5 column 4 (the Backspace key on regular keyboard)", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP7", "pin_b": "GP8"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "oled": true - }, - "matrix_pins": { - "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], - "rows": ["GP4", "GP5", "GP6", "GP7"] - }, - "processor": "RP2040", - "split": { - "bootmagic": { - "matrix": [4, 5] - }, - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "GP7", "pin_b": "GP8"} - ] - } - }, - "handedness": { - "pin": "GP1" - }, - "matrix_pins": { - "right": { - "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14"], - "rows": ["GP28", "GP27", "GP26", "GP15"] - } - }, - "serial": { - "driver": "vendor", - "pin": "GP0" - } - }, - "url": "https://github.com/erikpeyronson/erkbd", - "usb": { - "device_version": "1.0.0", - "pid": "0x1234", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_split_3x6_5": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.4}, - {"matrix": [0, 1], "x": 1, "y": 0.3}, - {"matrix": [0, 2], "x": 2, "y": 0.1}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.1}, - {"matrix": [0, 5], "x": 5, "y": 0.2}, - {"matrix": [4, 0], "x": 9, "y": 0.2}, - {"matrix": [4, 1], "x": 10, "y": 0.1}, - {"matrix": [4, 2], "x": 11, "y": 0}, - {"matrix": [4, 3], "x": 12, "y": 0.1}, - {"matrix": [4, 4], "x": 13, "y": 0.3}, - {"matrix": [4, 5], "x": 14, "y": 0.4}, - {"matrix": [1, 0], "x": 0, "y": 1.4}, - {"matrix": [1, 1], "x": 1, "y": 1.3}, - {"matrix": [1, 2], "x": 2, "y": 1.1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.1}, - {"matrix": [1, 5], "x": 5, "y": 1.2}, - {"matrix": [5, 0], "x": 9, "y": 1.2}, - {"matrix": [5, 1], "x": 10, "y": 1.1}, - {"matrix": [5, 2], "x": 11, "y": 1}, - {"matrix": [5, 3], "x": 12, "y": 1.1}, - {"matrix": [5, 4], "x": 13, "y": 1.3}, - {"matrix": [5, 5], "x": 14, "y": 1.4}, - {"matrix": [2, 0], "x": 0, "y": 2.4}, - {"matrix": [2, 1], "x": 1, "y": 2.3}, - {"matrix": [2, 2], "x": 2, "y": 2.1}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.1}, - {"matrix": [2, 5], "x": 5, "y": 2.2}, - {"matrix": [6, 0], "x": 9, "y": 2.2}, - {"matrix": [6, 1], "x": 10, "y": 2.1}, - {"matrix": [6, 2], "x": 11, "y": 2}, - {"matrix": [6, 3], "x": 12, "y": 2.1}, - {"matrix": [6, 4], "x": 13, "y": 2.3}, - {"matrix": [6, 5], "x": 14, "y": 2.4}, - {"matrix": [3, 1], "x": 3, "y": 3.4}, - {"matrix": [3, 2], "x": 4, "y": 3.4}, - {"matrix": [3, 3], "x": 5, "y": 3.5}, - {"matrix": [3, 4], "x": 6, "y": 3.7}, - {"matrix": [3, 5], "x": 6, "y": 2.7}, - {"matrix": [7, 0], "x": 8, "y": 2.7}, - {"matrix": [7, 1], "x": 8, "y": 3.7}, - {"matrix": [7, 2], "x": 9, "y": 3.5}, - {"matrix": [7, 3], "x": 10, "y": 3.4}, - {"matrix": [7, 4], "x": 11, "y": 3.4} - ] - } - } -} diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c deleted file mode 100644 index 8884702c81..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2025 Qmk, Erik Peyronson @erikpeyronson -// SPDX-License-Identifier: GPL-3.0-or-later - -// NOTE: This keymap is for debugging purposes to have firmware to test the matrix when building the keyboard. If you intend to build this keyboard -// you should copy this to your fork or userspace repository and create your own. - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x6_5( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LBRC, KC_RBRC, KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT, KC_LPRN, KC_RPRN - ) -}; -// clang-format on - -void keyboard_post_init_user(void) { -#ifdef CONSOLE_ENABLE - debug_enable = true; - debug_matrix = true; -#endif -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); -#endif - return true; -} - -// This function prints which half the keyboard considers itself to be which is -// useful for verify if the handedness pin and display is correctly set up when building -#ifdef OLED_ENABLE -bool oled_task_user(void) { - if (is_keyboard_left()) { - oled_write_P(PSTR("left"), false); - } else { - oled_write_P(PSTR("right"), false); - } - return false; -} -#endif - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)} -}; -#endif diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk deleted file mode 100644 index 14094ea22c..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -ENCODER_MAP_ENABLE = yes -CONSOLE_ENABLE = yes diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json b/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json deleted file mode 100644 index 0b733d9fb6..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "keyboard": "handwired/erikpeyronson/erkbd", - "keymap": "default", - "layout": "LAYOUT_split_3x6_5", - "layers": [ - [ - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", - "KC_LBRC", "KC_RBRC", "KC_LGUI", "KC_BSPC", "KC_SPC", "KC_SPC", "KC_ENT", "KC_RALT", "KC_LPRN", "KC_RPRN" - ] - ], - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [ - { "ccw": "KC_UP", "cw": "KC_DOWN" }, - { "ccw": "KC_RIGHT", "cw": "KC_LEFT" } - ] - ] -} diff --git a/keyboards/handwired/erikpeyronson/erkbd/readme.md b/keyboards/handwired/erikpeyronson/erkbd/readme.md deleted file mode 100644 index 3f4fe0175e..0000000000 --- a/keyboards/handwired/erikpeyronson/erkbd/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# handwired/erikpeyronson/erkbd - -![Erkbd](https://i.imgur.com/VViiXIN.jpeg) - -3D printed, handwired 44 key split keyboard featuring two encoders, two 1.3" 128x64 oled displays using the waveshare rp2040zero development board. - -* Keyboard Maintainer: [Erik Peyronson](https://github.com/erikpeyronson) -* Hardware Supported: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd) -* Hardware Availability: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd) - -Make example for this keyboard (after setting up your build environment): - - make handwired/erikpeyronson/erkbd:default - -Flashing example for this keyboard: - - Enter bootloader, drag and drop .uft2 file on the removable storage - -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**: For left half hold down the key at (0,0) in the matrix (correspons with the tab key) and plug in the keyboard. -For left half half the key is (4,5) (corresponds with the backspace key) -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -Enter the bootloader in 3 ways: diff --git a/keyboards/handwired/fc200rt_qmk/keyboard.json b/keyboards/handwired/fc200rt_qmk/keyboard.json index 7e45cbdb62..aab792e7bd 100644 --- a/keyboards/handwired/fc200rt_qmk/keyboard.json +++ b/keyboards/handwired/fc200rt_qmk/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "fc200rt_qmk", "manufacturer": "NaCly", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/handwired/fc200rt_qmk/readme.md b/keyboards/handwired/fc200rt_qmk/readme.md index 2b7a0dd1ec..6490227806 100644 --- a/keyboards/handwired/fc200rt_qmk/readme.md +++ b/keyboards/handwired/fc200rt_qmk/readme.md @@ -25,6 +25,7 @@ Choose any key from the corrosponding row and column and solder it to the pin on _NOTE: Some of the keys had mislabled columns and rows, so make sure the columns are all connected without diodes to one another, and that the rows are soldered after the diode_ * Keyboard Maintainer: [NaCly](https://github.com/Na-Cly) +* Hardware Supported: The PCBs, controllers supported * Hardware Availability: Leopold FC200RT + Teensy 2.0 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/handwired/fivethirteen/keyboard.json b/keyboards/handwired/fivethirteen/keyboard.json index f6492d3e0b..9046fc53ba 100644 --- a/keyboards/handwired/fivethirteen/keyboard.json +++ b/keyboards/handwired/fivethirteen/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "fivethirteen", "manufacturer": "rdg", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/fivethirteen/keymaps/default/keymap.c b/keyboards/handwired/fivethirteen/keymaps/default/keymap.c index 63e5798e81..b68e81e81c 100644 --- a/keyboards/handwired/fivethirteen/keymaps/default/keymap.c +++ b/keyboards/handwired/fivethirteen/keymaps/default/keymap.c @@ -30,9 +30,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [MOS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_BTN2, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_WHLD, MS_WHLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/floorboard/keymaps/default/keymap.c b/keyboards/handwired/floorboard/keymaps/default/keymap.c index 2d519bee03..161dbea030 100644 --- a/keyboards/handwired/floorboard/keymaps/default/keymap.c +++ b/keyboards/handwired/floorboard/keymaps/default/keymap.c @@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_4x12(KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT, KC_LSFT, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, LT(2,KC_CAPS), MO(3), KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_BSPC, KC_RALT, KC_VOLD, KC_VOLU, LT(2,KC_MPLY)), [1] = LAYOUT_ortho_4x12(KC_PERC, KC_LBRC, KC_LCBR, KC_RCBR, KC_LPRN, KC_PEQL, KC_ASTR, KC_RPRN, KC_PLUS, KC_EXLM, KC_RBRC, KC_GRV, KC_LCTL, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_MINS, KC_LSFT, KC_LBRC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLSH, KC_NO, KC_TRNS, KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_NO, KC_DEL, KC_RALT, KC_PSCR, KC_APP, KC_NO), - [2] = LAYOUT_ortho_4x12(KC_WAKE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_SLEP, KC_LCTL, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_LGUI, KC_LALT, MS_BTN1, MS_BTN2, KC_TRNS, KC_NO, KC_RALT, KC_NO, KC_APP, KC_NO), + [2] = LAYOUT_ortho_4x12(KC_WAKE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_SLEP, KC_LCTL, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_LGUI, KC_LALT, KC_BTN1, KC_BTN2, KC_TRNS, KC_NO, KC_RALT, KC_NO, KC_APP, KC_NO), [3] = LAYOUT_ortho_4x12(KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F10, KC_F2, KC_F4, KC_F6, KC_F8, KC_NO, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_NO, KC_DEL, KC_RALT, KC_BRID, KC_BRIU, KC_NO) }; diff --git a/keyboards/handwired/footy/config.h b/keyboards/handwired/footy/config.h deleted file mode 100644 index 5a081f79d6..0000000000 --- a/keyboards/handwired/footy/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/handwired/footy/keyboard.json b/keyboards/handwired/footy/keyboard.json deleted file mode 100644 index eef8c25038..0000000000 --- a/keyboards/handwired/footy/keyboard.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "manufacturer": "CJ Pais", - "keyboard_name": "Footy", - "maintainer": "cjpais", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "bootmagic": { - "matrix": [0, 1] - }, - "matrix_pins": { - "cols": ["GP11", "GP10", "GP15"], - "rows": ["GP14"] - }, - "processor": "RP2040", - "url": "https://workshop.cjpais.com/projects/footy", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x636A" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0} - ] - } - } -} diff --git a/keyboards/handwired/footy/keymaps/default/keymap.json b/keyboards/handwired/footy/keymaps/default/keymap.json deleted file mode 100644 index 99804041d8..0000000000 --- a/keyboards/handwired/footy/keymaps/default/keymap.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "keyboard": "handwired/footy", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_A", "KC_B", "KC_C" - ] - ] -} diff --git a/keyboards/handwired/footy/keymaps/handy/keymap.json b/keyboards/handwired/footy/keymaps/handy/keymap.json deleted file mode 100644 index e2a2db6d10..0000000000 --- a/keyboards/handwired/footy/keymaps/handy/keymap.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "keyboard": "handwired/footy", - "keymap": "handy", - "layout": "LAYOUT", - "layers": [ - [ - "KC_NO", "MT(MOD_RCTL | MOD_RGUI, KC_NO)", "KC_NO" - ] - ], - "config": { - "tapping": { - "term": 50 - } - } -} diff --git a/keyboards/handwired/footy/keymaps/superwhisper/keymap.json b/keyboards/handwired/footy/keymaps/superwhisper/keymap.json deleted file mode 100644 index 0cfa41f502..0000000000 --- a/keyboards/handwired/footy/keymaps/superwhisper/keymap.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "keyboard": "handwired/footy", - "keymap": "superwhisper", - "layout": "LAYOUT", - "layers": [ - [ - "KC_NO", "LOPT(KC_SPACE)", "KC_NO" - ] - ], - "config": { - "tapping": { - "term": 50 - } - } -} diff --git a/keyboards/handwired/footy/readme.md b/keyboards/handwired/footy/readme.md deleted file mode 100644 index 6d02fad95c..0000000000 --- a/keyboards/handwired/footy/readme.md +++ /dev/null @@ -1,42 +0,0 @@ -# Footy - -![Footy Foot Pedal](https://i.imgur.com/ZdvlgRB.jpeg) - -*Footy is a foot pedal intended to be used with a speech to text application like 'handy' or superwhisper. Initially developed as an assistive technology device for those with limited typing abilities.* - -* Keyboard Maintainer: [CJ Pais](https://github.com/cjpais) -* Hardware Supported: [Keebio Stampy](https://keeb.io/products/stampy-rp2040-usb-c-controller-board-for-handwiring) -* Hardware Availability: [3D printed case](https://makerworld.com/en/models/1185240-footy) - -Make example for this keyboard (after setting up your build environment): - - make handwired/footy:default - -Flashing example for this keyboard (enter the bootloader first): - - make handwired/footy:default:flash - -or drag and drop .uf2 file on the removable storage - -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: - -* **Physical reset button**: Briefly double press the button on the back of the PCB - -## Keymaps - -Right now there are two primary keymaps, one for 'handy' and one for 'superwhisper'. - -Handy's default keymap is for the center switch to be RCTRL + RGUI. - -Superwhisper's default keymap is for the center switch to be LOPT + SPACE. - -You can build either of these firmware images by running the following commands: - -``` -make handwired/footy:handy -make handwired/footy:superwhisper -``` \ No newline at end of file diff --git a/keyboards/handwired/frankie_macropad/keyboard.json b/keyboards/handwired/frankie_macropad/keyboard.json index 278a76c7c8..f994b1fa48 100644 --- a/keyboards/handwired/frankie_macropad/keyboard.json +++ b/keyboards/handwired/frankie_macropad/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "grave_esc": false, diff --git a/keyboards/handwired/franky36/config.h b/keyboards/handwired/franky36/config.h deleted file mode 100644 index 3749ff5785..0000000000 --- a/keyboards/handwired/franky36/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024-2025 Grigory Avdyushin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define I2C_DRIVER I2CD0 -#define I2C1_SDA_PIN GP0 -#define I2C1_SCL_PIN GP1 diff --git a/keyboards/handwired/franky36/franky36.c b/keyboards/handwired/franky36/franky36.c deleted file mode 100644 index 50e4d38b52..0000000000 --- a/keyboards/handwired/franky36/franky36.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2024-2025 Grigory Avdyushin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x00, 0x0A, 0x0A - }; - - oled_write_P(qmk_logo, false); -} - -static void render_mod_status(uint8_t modifiers) { - oled_write_P(PSTR("MODS:"), false); - oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); - oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); - oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); - oled_write_ln_P(PSTR("G"), (modifiers & MOD_MASK_GUI)); - oled_write_ln_P(PSTR(" "), false); -} - -static void render_layer_state(void) { - oled_write_ln_P(PSTR(" "), false); - oled_write_P("BASE ", layer_state_is(0)); - oled_write_P("LOWER", layer_state_is(1)); - oled_write_P("RAISE", layer_state_is(2)); - oled_write_P("NAV ", layer_state_is(3)); - oled_write_ln_P(PSTR(" "), false); -} - -static void render_capsword_state(bool on) { - oled_write_ln_P("CAPSW", on); -} - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_270; -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - render_logo(); - render_layer_state(); - render_mod_status(get_mods() | get_oneshot_mods()); - render_capsword_state(is_caps_word_on()); - return false; -} - - #endif diff --git a/keyboards/handwired/franky36/halconf.h b/keyboards/handwired/franky36/halconf.h deleted file mode 100644 index 3c594066b6..0000000000 --- a/keyboards/handwired/franky36/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024-2025 Grigory Avdyushin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/handwired/franky36/keyboard.json b/keyboards/handwired/franky36/keyboard.json deleted file mode 100644 index 871e6abf9d..0000000000 --- a/keyboards/handwired/franky36/keyboard.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "manufacturer": "Grigory Avdyushin", - "keyboard_name": "franky36", - "maintainer": "Grigory Avdyushin", - "bootloader": "rp2040", - "caps_word": { - "both_shifts_turns_on": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "caps_word": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true - }, - "matrix_pins": { - "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28"], - "rows": ["GP5", "GP4", "GP3", "GP2"] - }, - "processor": "RP2040", - "url": "https://github.com/avdyushin/franky36", - "usb": { - "device_version": "0.2.0", - "pid": "0x3336", - "vid": "0x1209" - }, - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/franky36/keymaps/default/keymap.c b/keyboards/handwired/franky36/keymaps/default/keymap.c deleted file mode 100644 index 1b281124f9..0000000000 --- a/keyboards/handwired/franky36/keymaps/default/keymap.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Copyright 2024-2025 Grigory Avdyushin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum my_layers { - _BASE = 0, - _LOWER, - _RAISE, - _NAV, -}; - -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) -#define NAV MO(_NAV) - -#define OSM_LSFT OSM(MOD_LSFT) // One Shot Right Shift - -#define KC_SFT_Z SFT_T(KC_Z) // Left Shift when held, Z when tapped -#define KC_SFT_SL RSFT_T(KC_SLSH) // Right Shift when held, / when tapped - -#define KC_SFT_BSLS RSFT_T(KC_BSLS) // Right Shift when held, \ when tapped - -#define KC_LWR_SPC LT(_LOWER, KC_SPC) // Lower layer when held, Space when tapped -#define KC_RSE_BSPC LT(_RAISE, KC_BSPC) // Raise layer when held, Backspace when tapped -#define KC_NAV_A LT(_NAV,KC_A) // Navigation layer when held, A when tapped - -#define KC_CMD_TAB CMD_T(KC_TAB) // Left Command when held, Tab when tapped -#define KC_CMD_ENT RCMD_T(KC_ENT) // Right Command when held, Enter when tapped - -#define KC_CTL_ESC CTL_T(KC_ESC) // Left Control when held, Escape when tapped -#define KC_OPT_OSM_SFT ROPT_T(OSM_LSFT) // Right Option when held, One Shot Shift when tapped - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;:│ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │⇧/Z│ X │ C │ V │ B │ │ N │ M │ ,<│ .>│⇧/?│ - * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - * ┌───┬───┬───┐ ┌───┬───┬───┐ - * │CTL│CMD│SPC│ │ENT│CMD│OPT│ - * └───┴───┴───┘ └───┴───┴───┘ - */ - [_BASE] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_NAV_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL, - KC_CTL_ESC, KC_CMD_TAB, KC_LWR_SPC, KC_RSE_BSPC, KC_CMD_ENT, KC_ROPT - ), - - /* - * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - * │ 1!│ 2@│ 3#│ 4$│ 5%│ │ 6^│ 7&│ 8*│ 9(│ 0)│ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ `~│ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ '"│ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ ⇧ │ │ │ │ │ │ -_│ =+│ [{│ ]}│ \|│ - * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - * ┌───┬───┬───┐ ┌───┬───┬───┐ - * │ │ │ │ │ │ │ │ - * └───┴───┴───┘ └───┴───┴───┘ - */ - [_LOWER] = LAYOUT_split_3x5_3( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_GRV, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUOT, - KC_LSFT, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SFT_BSLS, - _______, _______, _______, _______, _______, _______ - ), - - /* - * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - * │ F1│ F2│ F3│ F4│ F5│ │ F6│ F7│ F8│ F9│F10│ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ - * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - * ┌───┬───┬───┐ ┌───┬───┬───┐ - * │ │ │ │ │ │ │ │ - * └───┴───┴───┘ └───┴───┴───┘ - */ - [_RAISE] = LAYOUT_split_3x5_3( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - - /* - * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - * │ │ │ │ │ │ │HOM│ │ │END│ │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │PUP│ │ │PDN│ │ - * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - * ┌───┬───┬───┐ ┌───┬───┬───┐ - * │ │ │ │ │ │ │ │ - * └───┴───┴───┘ └───┴───┴───┘ - */ - [_NAV] = LAYOUT_split_3x5_3( - _______, _______, _______, _______, _______, KC_HOME, _______, _______, KC_END, _______, - _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, - _______, _______, _______, _______, _______, KC_PGUP, _______, _______, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/handwired/franky36/mcuconf.h b/keyboards/handwired/franky36/mcuconf.h deleted file mode 100644 index 8d47159177..0000000000 --- a/keyboards/handwired/franky36/mcuconf.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2024-2025 Grigory Avdyushin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/handwired/franky36/readme.md b/keyboards/handwired/franky36/readme.md deleted file mode 100644 index 62d1bfd5c3..0000000000 --- a/keyboards/handwired/franky36/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# franky36 - -Franky36 is 36 key compact handwired split keyboard that uses single RP2040-Zero controller. - -* Keyboard Maintainer: [Grigory Avdyushin](https://github.com/avdyushin) -* Hardware Supported: RP2040-Zero -* Hardware Availability: Handwired [franky36](https://github.com/avdyushin/franky36) - -Make example for this keyboard (after setting up your build environment): - - make franky36:default - -Flashing example for this keyboard: - - make franky36:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold down the reset button on the controller and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/frenchdev/keymaps/default/keymap.c b/keyboards/handwired/frenchdev/keymaps/default/keymap.c index aa622c5ddb..67c0072a08 100644 --- a/keyboards/handwired/frenchdev/keymaps/default/keymap.c +++ b/keyboards/handwired/frenchdev/keymaps/default/keymap.c @@ -103,9 +103,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, M_UN, M_CUT, M_CP, M_PS, M_SE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BP_DLR, BP_EQL, KC_PGUP, BP_PIPE, BP_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, BP_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, //left pedals - KC_TRNS, MS_BTN1, KC_TRNS, + KC_TRNS, KC_BTN1, KC_TRNS, //right pedals - KC_TRNS, MS_BTN1, KC_TRNS + KC_TRNS, KC_BTN1, KC_TRNS ), /* MEDIA, mouse and numpad. @@ -130,14 +130,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MEDIA] = LAYOUT( QK_BOOT, KC_SCRL, KC_PAUS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_CALC, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MPRV, KC_MNXT, KC_MPLY, KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, KC_TRNS, KC_PMNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_WHLU, KC_TRNS, MS_BTN4, MS_BTN5, MS_BTN4, MS_BTN5, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_WHLD, MS_BTN3, MS_BTN2, MS_BTN1, MS_BTN1, MS_BTN2, KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, KC_TRNS, - KC_TRNS, M_UN, M_CUT, M_CP, M_PS, MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN3, KC_KP_1, KC_KP_2, KC_KP_3, KC_PSLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_TRNS, KC_BTN4, KC_BTN5, KC_BTN4, KC_BTN5, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_BTN3, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, KC_TRNS, + KC_TRNS, M_UN, M_CUT, M_CP, M_PS, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, KC_KP_1, KC_KP_2, KC_KP_3, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_PDOT, BP_DOT, BP_COMM, KC_TRNS, //left pedals - MS_BTN3, M_RP, KC_TRNS, + KC_BTN3, M_RP, KC_TRNS, //right pedals - MS_BTN3, M_RP, KC_TRNS + KC_BTN3, M_RP, KC_TRNS ), /* TRNS - skeleton for laters @@ -167,9 +167,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //left pedals - MS_BTN3, M_RP, KC_TRNS, + KC_BTN3, M_RP, KC_TRNS, //right pedals - MS_BTN3, M_RP, KC_TRNS + KC_BTN3, M_RP, KC_TRNS ), }; @@ -239,7 +239,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { key_timer_left_pedal = timer_read(); // if the key is being pressed, we start the timer. } else { if (timer_elapsed(key_timer_left_pedal) < KEY_DELAY) { - tap_code (MS_BTN2); + tap_code (KC_BTN2); } unregister_code (KC_SCRL); layer_off(1); @@ -251,7 +251,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { key_timer_right_pedal = timer_read(); // if the key is being pressed, we start the timer. } else { if (timer_elapsed(key_timer_right_pedal) < PEDAL_DELAY) { - tap_code (MS_BTN1); + tap_code (KC_BTN1); } layer_off(2); } diff --git a/keyboards/handwired/freoduo/keyboard.json b/keyboards/handwired/freoduo/keyboard.json index afbd763a96..d9f4ad4808 100644 --- a/keyboards/handwired/freoduo/keyboard.json +++ b/keyboards/handwired/freoduo/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/fruity60/keyboard.json b/keyboards/handwired/fruity60/keyboard.json index 7ea84bc052..728b0c63cb 100644 --- a/keyboards/handwired/fruity60/keyboard.json +++ b/keyboards/handwired/fruity60/keyboard.json @@ -31,12 +31,9 @@ "resync": true } }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/handwired/fruity60/keymaps/default/keymap.c b/keyboards/handwired/fruity60/keymaps/default/keymap.c index 34a3d8a9ad..ba748ac23b 100644 --- a/keyboards/handwired/fruity60/keymaps/default/keymap.c +++ b/keyboards/handwired/fruity60/keymaps/default/keymap.c @@ -6,7 +6,7 @@ enum layer { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [BASE] = LAYOUT_60_tsangan_hhkb( 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_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL ), - [FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [FN] = LAYOUT_60_tsangan_hhkb( _______, 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_DEL, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/handwired/gamenum/keyboard.json b/keyboards/handwired/gamenum/keyboard.json index 010f9526db..50a3962108 100644 --- a/keyboards/handwired/gamenum/keyboard.json +++ b/keyboards/handwired/gamenum/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GameNum", "manufacturer": "Seth-Senpai", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/hacked_motospeed/keyboard.json b/keyboards/handwired/hacked_motospeed/keyboard.json index 17f85a7e9d..1a38cdafdc 100644 --- a/keyboards/handwired/hacked_motospeed/keyboard.json +++ b/keyboards/handwired/hacked_motospeed/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hacked Motospeed", "manufacturer": "MMO_Corp", + "url": "", "maintainer": "Deckweiss", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/heisenberg/keyboard.json b/keyboards/handwired/heisenberg/keyboard.json index d85477fe24..460018ef1e 100644 --- a/keyboards/handwired/heisenberg/keyboard.json +++ b/keyboards/handwired/heisenberg/keyboard.json @@ -29,6 +29,8 @@ "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/hen_des/epssp75/keyboard.json b/keyboards/handwired/hen_des/epssp75/keyboard.json deleted file mode 100644 index 1917fd87cc..0000000000 --- a/keyboards/handwired/hen_des/epssp75/keyboard.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "manufacturer": "Henning Cordes", - "keyboard_name": "epssp75", - "maintainer": "hen-des", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"], - "rows": ["GP1", "GP2", "GP3", "GP4", "GP5"] - }, - "processor": "RP2040", - "url": "https://hen-des.github.io/epssp75/", - "usb": { - "device_version": "1.0.0", - "pid": "0x0075", - "vid": "0x6863" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [0, 16], "x": 16, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 8], "x": 7.25, "y": 1, "w": 2.5}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [1, 14], "x": 14, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [1, 16], "x": 16, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2, "h": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2, "h": 2}, - {"matrix": [2, 11], "x": 11, "y": 2}, - {"matrix": [2, 12], "x": 12, "y": 2}, - {"matrix": [2, 13], "x": 13, "y": 2}, - {"matrix": [2, 14], "x": 14, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [2, 16], "x": 16, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3}, - {"matrix": [3, 12], "x": 12, "y": 3}, - {"matrix": [3, 13], "x": 13, "y": 3}, - {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [3, 16], "x": 16, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 5], "x": 4, "y": 4, "w": 2}, - {"matrix": [4, 6], "x": 6, "y": 4, "h": 2}, - {"matrix": [4, 10], "x": 10, "y": 4, "h": 2}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 2}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - {"matrix": [4, 16], "x": 16, "y": 4} - ] - } - } -} diff --git a/keyboards/handwired/hen_des/epssp75/keymaps/default/keymap.c b/keyboards/handwired/hen_des/epssp75/keymaps/default/keymap.c deleted file mode 100644 index 65c6508e0a..0000000000 --- a/keyboards/handwired/hen_des/epssp75/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 QMK -// 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_F22, KC_RBRC, KC_PSCR, KC_F23, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F20, KC_ENT, KC_F21, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DEL, KC_HOME, KC_UP, KC_END, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_DOWN, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_NUBS, KC_SPC, KC_LSFT, KC_ENT, KC_SPC, KC_RALT, MO(1), RGUI_T(KC_APP), KC_RCTL - ), - [1] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F22, KC_PAUS, KC_PSCR, KC_F23, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TAB, KC_PGUP, LCTL(KC_LEFT), KC_UP, LCTL(KC_RGHT), KC_PGDN, KC_F20, KC_ENT, KC_F21, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_DEL, KC_HOME, KC_VOLU, KC_END, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_RSFT, LCA(KC_F2), KC_TAB, KC_F2, KC_F5, KC_F23, KC_MUTE, KC_VOLD, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_NUBS, KC_SPC, KC_LSFT, KC_ENT, KC_SPC, KC_RALT, _______, KC_APP, KC_RCTL - ) -}; diff --git a/keyboards/handwired/hen_des/epssp75/readme.md b/keyboards/handwired/hen_des/epssp75/readme.md deleted file mode 100644 index 5c353d215b..0000000000 --- a/keyboards/handwired/hen_des/epssp75/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# epssp75 - -Ergonomic PSeudo SPlit 75-key Keyboard. Desinged after two years of working with a [Truly Ergonomic CLEAVE Keyboard](https://trulyergonomic.com) and also inspired by the [Redox Keyboard](https://github.com/mattdibi/redox-keyboard). -I am using and the [NOTED](https://neo-layout.org/Layouts/noted/) layout and the [ReNeo](https://neo-layout.org/Einrichtung/reneo/) software which offers additional possible key functions and layers. - -* Keyboard Maintainer: [Henning Cordes](https://github.com/hen-des) -* Files: [https://github.com/hen-des/epssp75](https://github.com/hen-des/epssp75) - -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). - -Detailed [description](https://hen-des.github.io/epssp75/index.html) and expiriences of the conception and manufacturing. - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead \ No newline at end of file diff --git a/keyboards/handwired/hexon38/keyboard.json b/keyboards/handwired/hexon38/keyboard.json index 1d3595aa38..dfc11eb532 100644 --- a/keyboards/handwired/hexon38/keyboard.json +++ b/keyboards/handwired/hexon38/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "hexon38", "manufacturer": "pepaslabs", + "url": "", "maintainer": "cellularmitosis", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json index a02a70173c..3099ed8548 100644 --- a/keyboards/handwired/hnah108/keyboard.json +++ b/keyboards/handwired/hnah108/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hnah108", "manufacturer": "HnahKB", + "url": "", "maintainer": "HnahKB", "usb": { "vid": "0xFEED", @@ -56,6 +57,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/hnah108/keymaps/default/keymap.c b/keyboards/handwired/hnah108/keymaps/default/keymap.c index 530bd3d0b1..d2f86a7de9 100644 --- a/keyboards/handwired/hnah108/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah108/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT_all( - QK_BOOT, BL_STEP, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, BL_STEP, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/handwired/hnah40/keyboard.json b/keyboards/handwired/hnah40/keyboard.json index a7613c401e..e80bbdaec5 100644 --- a/keyboards/handwired/hnah40/keyboard.json +++ b/keyboards/handwired/hnah40/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index 6f13b70095..753b5dd00a 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hnah40V2", "manufacturer": "HnahKB", + "url": "", "maintainer": "HnahKB", "usb": { "vid": "0xFEED", @@ -60,11 +61,14 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "led_flush_limit": 16, "max_brightness": 200, "react_on_keyup": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c index 4a21a7bfd6..9732c74cfc 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT_ansi(/* Base */ - RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c index 6f98a272e6..7af40caae7 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT_all(/* Base */ - RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_BSLS, + RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/handwired/hwpm87/keyboard.json b/keyboards/handwired/hwpm87/keyboard.json index f239ea9ecc..0dbbb0472a 100644 --- a/keyboards/handwired/hwpm87/keyboard.json +++ b/keyboards/handwired/hwpm87/keyboard.json @@ -2,6 +2,7 @@ "manufacturer": "KD-MM2", "keyboard_name": "hwpm87", "maintainer": "KD-MM2", + "url": "", "usb": { "vid": "0xFEED", "pid": "0x0001", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/ic45_v2/keyboard.json b/keyboards/handwired/ic45_v2/keyboard.json deleted file mode 100644 index 7d8692c9af..0000000000 --- a/keyboards/handwired/ic45_v2/keyboard.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "manufacturer": "PatrickFan", - "keyboard_name": "ic45_v2", - "maintainer": "PatrickFan", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "D5", "D4", "D6", "D7", "B4"], - "rows": ["B6", "C6", "C7", "B5"] - }, - "processor": "atmega32u4", - "url": "https://github.com/lighteningAB/45keyboard_v1", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [3, 12], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 10], "x": 10.75, "y": 1}, - {"matrix": [1, 11], "x": 11.75, "y": 1}, - {"matrix": [1, 12], "x": 12.75, "y": 1, "w": 2.25}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [2, 8], "x": 8.25, "y": 2}, - {"matrix": [2, 9], "x": 9.25, "y": 2}, - {"matrix": [2, 10], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - - {"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 2.25}, - {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 12, "y": 3, "w": 1.25} - - ] - } - } -} diff --git a/keyboards/handwired/ic45_v2/keymaps/default/keymap.c b/keyboards/handwired/ic45_v2/keymaps/default/keymap.c deleted file mode 100644 index 51357bce1f..0000000000 --- a/keyboards/handwired/ic45_v2/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2025 Patrick Fan - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2), KC_BSLS - ), - [1] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_BSPC - ), - [2] = LAYOUT( - 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_DEL - ) -}; diff --git a/keyboards/handwired/ic45_v2/readme.md b/keyboards/handwired/ic45_v2/readme.md deleted file mode 100644 index b4af92ae9a..0000000000 --- a/keyboards/handwired/ic45_v2/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# ic45_v2 - -![ic45_v2](https://i.imgur.com/a/FNxxXGd) - -*A 46-key keyboard ANSI keyboard with split spacebar. Files available here [here](https://github.com/lighteningAB/45keyboard_v1)* - -* Keyboard Maintainer: [PatrickFan](https://github.com/PatrickFan) -* Hardware Supported: Integrated ATmega32U4 -* Hardware Availability: [GitHub](https://github.com/lighteningAB/45keyboard_v1) - -Make example for this keyboard (after setting up your build environment): - - make handwired/ic45_v2:default - -Flashing example for this keyboard: - - make handwired/ic45_v2: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 2 ways: - -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/iso85k/keyboard.json b/keyboards/handwired/iso85k/keyboard.json index e88c4c3688..625a356e30 100644 --- a/keyboards/handwired/iso85k/keyboard.json +++ b/keyboards/handwired/iso85k/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -15,6 +17,7 @@ "rows": ["C7", "C6", "B15", "B14", "B13", "B12"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xCAFE", diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json index 340b8a9e33..ba9de4d774 100644 --- a/keyboards/handwired/itstleo9/info.json +++ b/keyboards/handwired/itstleo9/info.json @@ -5,10 +5,13 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/jankrp2040dactyl/keyboard.json b/keyboards/handwired/jankrp2040dactyl/keyboard.json index ff49cef6a2..0d155a70bd 100644 --- a/keyboards/handwired/jankrp2040dactyl/keyboard.json +++ b/keyboards/handwired/jankrp2040dactyl/keyboard.json @@ -6,9 +6,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, + "soft_serial_pin": "GP0", "serial": { - "driver": "vendor", - "pin": "GP0" + "driver": "vendor" } }, @@ -25,6 +25,7 @@ }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/handwired/jn68m/keyboard.json b/keyboards/handwired/jn68m/keyboard.json index 818dce9805..e2c833b002 100644 --- a/keyboards/handwired/jn68m/keyboard.json +++ b/keyboards/handwired/jn68m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JN68M", "manufacturer": "MxBlue", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xC714", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/jopr/keyboard.json b/keyboards/handwired/jopr/keyboard.json index f6320f7905..36aa7276b5 100644 --- a/keyboards/handwired/jopr/keyboard.json +++ b/keyboards/handwired/jopr/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/jot50/keyboard.json b/keyboards/handwired/jot50/keyboard.json index d0108b4aa9..d272ffc6b1 100644 --- a/keyboards/handwired/jot50/keyboard.json +++ b/keyboards/handwired/jot50/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jot50", "manufacturer": "Jotix", + "url": "", "maintainer": "jotix", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/jotanck/keyboard.json b/keyboards/handwired/jotanck/keyboard.json index bddcce9fa5..94ec9c15e5 100644 --- a/keyboards/handwired/jotanck/keyboard.json +++ b/keyboards/handwired/jotanck/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/jotlily60/keyboard.json b/keyboards/handwired/jotlily60/keyboard.json index fd072d83db..7a8a2a50d9 100644 --- a/keyboards/handwired/jotlily60/keyboard.json +++ b/keyboards/handwired/jotlily60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/jotpad16/keyboard.json b/keyboards/handwired/jotpad16/keyboard.json index 5a2503aaae..6a8a5db44c 100644 --- a/keyboards/handwired/jotpad16/keyboard.json +++ b/keyboards/handwired/jotpad16/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JotPad16", "manufacturer": "Jotix", + "url": "", "maintainer": "jotix", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/jtallbean/split_65/keyboard.json b/keyboards/handwired/jtallbean/split_65/keyboard.json index 86d4de0195..b10e6c6cc0 100644 --- a/keyboards/handwired/jtallbean/split_65/keyboard.json +++ b/keyboards/handwired/jtallbean/split_65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "split_65", "manufacturer": "jtallbean", + "url": "", "maintainer": "samlli", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/juliet/keyboard.json b/keyboards/handwired/juliet/keyboard.json index bf0193432d..49c2489e66 100644 --- a/keyboards/handwired/juliet/keyboard.json +++ b/keyboards/handwired/juliet/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/k8split/keyboard.json b/keyboards/handwired/k8split/keyboard.json index 2312d43689..62ea64604a 100644 --- a/keyboards/handwired/k8split/keyboard.json +++ b/keyboards/handwired/k8split/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "k8split", "manufacturer": "Ckat", + "url": "", "maintainer": "Ckath", "usb": { "vid": "0xC81D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/k8split/keymaps/left/keymap.c b/keyboards/handwired/k8split/keymaps/left/keymap.c index c40b1c7b4f..8d7559065a 100644 --- a/keyboards/handwired/k8split/keymaps/left/keymap.c +++ b/keyboards/handwired/k8split/keymaps/left/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_AUDIO_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_AUDIO_MMUTE, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_INT5, MS_WHLU, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_COMP, MS_WHLD, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_INT5, KC_MS_WH_UP, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_COMP, KC_MS_WH_DOWN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F13, KC_F14, KC_LCTL, KC_CAPS, KC_LWIN, KC_LALT, KC_SPC, KC_F15, KC_F16, KC_F17 ) diff --git a/keyboards/handwired/k_numpad17/keyboard.json b/keyboards/handwired/k_numpad17/keyboard.json index de52ca88af..7d48cd1f3e 100644 --- a/keyboards/handwired/k_numpad17/keyboard.json +++ b/keyboards/handwired/k_numpad17/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "K-Numpad17", "manufacturer": "Handwired", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/kbod/keyboard.json b/keyboards/handwired/kbod/keyboard.json index abd8c5dad4..91926b554d 100644 --- a/keyboards/handwired/kbod/keyboard.json +++ b/keyboards/handwired/kbod/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kbod", "manufacturer": "fudanchii", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 1976769052..24fc4c20af 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -46,15 +46,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(0), KC_1, KC_2, KC_3, ALT_F4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, MS_BTN1, MS_UP, MS_BTN2, - _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN3 + _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_BTN1, KC_MS_U, KC_BTN2, + _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN3 ), LAYOUT( /* Multimedia layer */ TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_WAKE, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPRV, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_PWR, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_WHLU, MS_BTN2, - _______, _______, _______, KC_MPLY, MS_WHLL, MS_WHLD, MS_WHLR, MS_BTN3 + _______, _______, KC_PWR, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_WH_U, KC_BTN2, + _______, _______, _______, KC_MPLY, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3 ), }; diff --git a/keyboards/handwired/ks63/keyboard.json b/keyboards/handwired/ks63/keyboard.json index 8b5a6c4e4c..09e59975e8 100644 --- a/keyboards/handwired/ks63/keyboard.json +++ b/keyboards/handwired/ks63/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ks63", "manufacturer": "kleshwong", + "url": "", "maintainer": "Klesh Wong", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/leftynumpad/keyboard.json b/keyboards/handwired/leftynumpad/keyboard.json index b14191c744..bb178be5be 100644 --- a/keyboards/handwired/leftynumpad/keyboard.json +++ b/keyboards/handwired/leftynumpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/lemonpad/keyboard.json b/keyboards/handwired/lemonpad/keyboard.json index dea15dcc3c..aab7b94692 100644 --- a/keyboards/handwired/lemonpad/keyboard.json +++ b/keyboards/handwired/lemonpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "lemonpad", "manufacturer": "dari-studios", + "url": "", "maintainer": "dari-studios", "usb": { "vid": "0x6473", diff --git a/keyboards/handwired/lovelive9/keyboard.json b/keyboards/handwired/lovelive9/keyboard.json index 2b05d0cb5b..f8962bf761 100644 --- a/keyboards/handwired/lovelive9/keyboard.json +++ b/keyboards/handwired/lovelive9/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/lumawing/keyboard.json b/keyboards/handwired/lumawing/keyboard.json deleted file mode 100644 index 8af89134aa..0000000000 --- a/keyboards/handwired/lumawing/keyboard.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "keyboard_name": "LuMaWing", - "manufacturer": "Lucas Mateijsen", - "maintainer": "qmk", - "usb": { - "vid": "0xBB80", - "pid": "0x050D", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "command": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "matrix_pins": { - "cols": ["B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"], - "rows": ["F4", "F5", "F6", "F7"] - }, - "diode_direction": "COL2ROW", - "development_board": "promicro", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - {"matrix": [2, 11], "x": 11, "y": 2}, - {"matrix": [2, 12], "x": 12, "y": 2}, - {"matrix": [2, 13], "x": 13, "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}, - {"matrix": [3, 6], "x": 5, "y": 3, "w": 2}, - {"matrix": [3, 7], "x": 7, "y": 3, "w": 2}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3}, - {"matrix": [3, 12], "x": 12, "y": 3}, - {"matrix": [3, 13], "x": 13, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/lumawing/keymaps/default/keymap.c b/keyboards/handwired/lumawing/keymaps/default/keymap.c deleted file mode 100644 index c9d1367c8c..0000000000 --- a/keyboards/handwired/lumawing/keymaps/default/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright 2021 Richard Nunez - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#define KC_COPY LCTL(KC_C) -#define KC_CUT LCTL(KC_X) -#define KC_PSTE LCTL(KC_V) - -#define KC_UNDO LCTL(KC_Z) -#define KC_AGIN LCTL(KC_Y) - -enum layer_names { - _COLEMAKDH, - _QWERTY, - _NUMBERS, - _FUNCTIONAL, - _ADMIN -}; - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_COLEMAKDH] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, XXXXXXX, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, - KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, XXXXXXX, XXXXXXX, KC_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, XXXXXXX, XXXXXXX, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, MO(3), KC_SPC, KC_ENT, MO(2), KC_RALT, KC_RGUI, XXXXXXX, KC_ENT - ), - - [_QWERTY] = 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DEL, - 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_RSFT, - KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, MO(3), KC_SPC, KC_ENT, MO(2), KC_RALT, KC_RGUI, XXXXXXX, KC_ENT - ), - - [_NUMBERS] = LAYOUT( - KC_ESC, 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, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, XXXXXXX, XXXXXXX, _______, MO(4), _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX - ), - - [_FUNCTIONAL] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_AGIN, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX - ), - - [_ADMIN] = LAYOUT( - QK_BOOT, DF(0), DF(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX - ) -}; diff --git a/keyboards/handwired/lumawing/readme.md b/keyboards/handwired/lumawing/readme.md deleted file mode 100644 index aea5dab4ac..0000000000 --- a/keyboards/handwired/lumawing/readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# LuMaWing handwired - -Custom handwired LuMaWing keyboard. - -* Keyboard Maintainer: [Lucas Mateijsen](https://github.com/LucasMateijsen/) -* Hardware Supported: Handwired LuMaWing 14x4 ortho keyboard Pro-Micro -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make handwired/ortho4x14:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -To get into the Bootloader, simply hold down the top-left key (pos 0, 0) and power the board. diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index 21171b9374..ca12d2c753 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -22,3 +22,4 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 2 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +#define WS2812_PWM_TARGET_PERIOD 800000 diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index adef955b9d..5c27c96ae9 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Macroboard", "manufacturer": "QMK", + "url": "", "maintainer": "Micha\u0142 Szczepaniak", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/magicforce61/keyboard.json b/keyboards/handwired/magicforce61/keyboard.json index e66f9dfe9c..e15cc0590e 100644 --- a/keyboards/handwired/magicforce61/keyboard.json +++ b/keyboards/handwired/magicforce61/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Magicforce 61", "manufacturer": "Hexwire", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/magicforce68/keyboard.json b/keyboards/handwired/magicforce68/keyboard.json index 1101dd6001..6567c8b1cf 100644 --- a/keyboards/handwired/magicforce68/keyboard.json +++ b/keyboards/handwired/magicforce68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Magicforce 68", "manufacturer": "Hexwire", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/marauder/keyboard.json b/keyboards/handwired/marauder/keyboard.json index 29b8fba30b..aa612c1ff0 100644 --- a/keyboards/handwired/marauder/keyboard.json +++ b/keyboards/handwired/marauder/keyboard.json @@ -22,6 +22,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/marek128b/ergosplit44/keyboard.json b/keyboards/handwired/marek128b/ergosplit44/keyboard.json index b14ca53bee..f9a88576a7 100644 --- a/keyboards/handwired/marek128b/ergosplit44/keyboard.json +++ b/keyboards/handwired/marek128b/ergosplit44/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -19,6 +21,7 @@ "rows": ["GP2", "GP3", "GP4", "GP5"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/maverick0197/keydeck8/keyboard.json b/keyboards/handwired/maverick0197/keydeck8/keyboard.json index 0f11bb194b..057552e621 100644 --- a/keyboards/handwired/maverick0197/keydeck8/keyboard.json +++ b/keyboards/handwired/maverick0197/keydeck8/keyboard.json @@ -11,7 +11,7 @@ }, "encoder": { "rotary": [ - {"pin_a": "D3", "pin_b": "D2"} + {"pin_a": "D3", "pin_b": "D2", "resolution": 4} ] }, "matrix_pins": { diff --git a/keyboards/handwired/mechboards_micropad/keyboard.json b/keyboards/handwired/mechboards_micropad/keyboard.json index c9a150229d..65ef6fb5b4 100644 --- a/keyboards/handwired/mechboards_micropad/keyboard.json +++ b/keyboards/handwired/mechboards_micropad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mechboards Micropad", "manufacturer": "Yiancar", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk b/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk deleted file mode 100644 index 6e47ffcd67..0000000000 --- a/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no diff --git a/keyboards/handwired/meck_tkl/rules.mk b/keyboards/handwired/meck_tkl/rules.mk new file mode 100644 index 0000000000..cdf3900ff0 --- /dev/null +++ b/keyboards/handwired/meck_tkl/rules.mk @@ -0,0 +1,4 @@ +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no + +DEFAULT_FOLDER = handwired/meck_tkl/blackpill_f401 diff --git a/keyboards/handwired/minorca/keyboard.json b/keyboards/handwired/minorca/keyboard.json index 32e3c9f92d..9ac1f52d13 100644 --- a/keyboards/handwired/minorca/keyboard.json +++ b/keyboards/handwired/minorca/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Minorca", "manufacturer": "panc.co", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/misterdeck/keyboard.json b/keyboards/handwired/misterdeck/keyboard.json index 55032ddd80..02c4348781 100644 --- a/keyboards/handwired/misterdeck/keyboard.json +++ b/keyboards/handwired/misterdeck/keyboard.json @@ -13,6 +13,7 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/ms_sculpt_mobile/info.json b/keyboards/handwired/ms_sculpt_mobile/info.json index 33e250b682..918f166c61 100644 --- a/keyboards/handwired/ms_sculpt_mobile/info.json +++ b/keyboards/handwired/ms_sculpt_mobile/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Microsoftplus", + "url": "", "maintainer": "qmk", "features": { "bootmagic": false, diff --git a/keyboards/handwired/ms_sculpt_mobile/rules.mk b/keyboards/handwired/ms_sculpt_mobile/rules.mk new file mode 100644 index 0000000000..8a3cc6858c --- /dev/null +++ b/keyboards/handwired/ms_sculpt_mobile/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/ms_sculpt_mobile/teensy2pp diff --git a/keyboards/handwired/mutepad/keyboard.json b/keyboards/handwired/mutepad/keyboard.json index fdbfa025df..f727569c98 100644 --- a/keyboards/handwired/mutepad/keyboard.json +++ b/keyboards/handwired/mutepad/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0xFEED", "pid": "0x0000", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/myskeeb/config.h b/keyboards/handwired/myskeeb/config.h index d290d41aee..8c37524a0e 100644 --- a/keyboards/handwired/myskeeb/config.h +++ b/keyboards/handwired/myskeeb/config.h @@ -2,6 +2,7 @@ // Comunication and Split Detection +#define SELECT_SOFT_SERIAL_SPEED 1 #define SPLIT_USB_DETECT #define EE_HANDS #define SPLIT_USB_TIMEOUT 1000 diff --git a/keyboards/handwired/myskeeb/keyboard.json b/keyboards/handwired/myskeeb/keyboard.json index d6805a400c..c75f40cf46 100644 --- a/keyboards/handwired/myskeeb/keyboard.json +++ b/keyboards/handwired/myskeeb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MySKeeb", "manufacturer": "DAG3", + "url": "", "maintainer": "su8044", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/nicekey/keyboard.json b/keyboards/handwired/nicekey/keyboard.json index 5679c54432..fe7267ab84 100644 --- a/keyboards/handwired/nicekey/keyboard.json +++ b/keyboards/handwired/nicekey/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "nicekey", "manufacturer": "Lukas", + "url": "", "maintainer": "spydon", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/nortontechpad/keyboard.json b/keyboards/handwired/nortontechpad/keyboard.json index 25fceb93da..e90b6b5482 100644 --- a/keyboards/handwired/nortontechpad/keyboard.json +++ b/keyboards/handwired/nortontechpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NortonTechPad", "manufacturer": "NortonTech", + "url": "", "maintainer": "NortonTech", "usb": { "vid": "0x9879", diff --git a/keyboards/handwired/not_so_minidox/keyboard.json b/keyboards/handwired/not_so_minidox/keyboard.json index 0c10858d67..fa68a823af 100644 --- a/keyboards/handwired/not_so_minidox/keyboard.json +++ b/keyboards/handwired/not_so_minidox/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Not So MiniDox", "manufacturer": "mtdjr", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/novem/keyboard.json b/keyboards/handwired/novem/keyboard.json index 47c0a1bca6..c824f7809c 100644 --- a/keyboards/handwired/novem/keyboard.json +++ b/keyboards/handwired/novem/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "novem", "manufacturer": "Jose I. Martinez", + "url": "", "maintainer": "Jose I. Martinez", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/novem/readme.md b/keyboards/handwired/novem/readme.md index 4ccf815236..c259c2cb82 100644 --- a/keyboards/handwired/novem/readme.md +++ b/keyboards/handwired/novem/readme.md @@ -2,6 +2,8 @@ ![novem](https://i.imgur.com/nPjBE9b.jpg) +A short description of the keyboard/project + * Keyboard Maintainer: [Jose I. Martinez](https://github.com/mechanicalguy21) * Hardware Supported: This is a handwired keyboard created over a 3d printed case. STL will be shared soon. diff --git a/keyboards/handwired/nozbe_macro/keyboard.json b/keyboards/handwired/nozbe_macro/keyboard.json index a1515df7e3..584509ad18 100644 --- a/keyboards/handwired/nozbe_macro/keyboard.json +++ b/keyboards/handwired/nozbe_macro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Nozbe Reunion Pad", "manufacturer": "Leon Omelan", + "url": "", "maintainer": "Leon Omelan", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/numpad20/keyboard.json b/keyboards/handwired/numpad20/keyboard.json index 4f4254cf12..e47cfc5df5 100644 --- a/keyboards/handwired/numpad20/keyboard.json +++ b/keyboards/handwired/numpad20/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Numpad 20", "manufacturer": "Hexwire", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json index 3926b96db5..238736705d 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json +++ b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "spaget", "manufacturer": "obuwunkunubi", + "url": "", "maintainer": "obuwunkunubi", "usb": { "vid": "0x1337", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c b/keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c index 8a8cda6ea2..ccc445be42 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c +++ b/keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c @@ -391,15 +391,15 @@ bool encoder_update_user(uint8_t index, bool clockwise) { else if(IS_LAYER_ON(ONE)) { if (index == 0) { /* First encoder */ if (clockwise) { - tap_code(MS_WHLR); + tap_code(KC_WH_R); } else { - tap_code(MS_WHLL); + tap_code(KC_WH_L); } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } } diff --git a/keyboards/handwired/oem_ansi_fullsize/keyboard.json b/keyboards/handwired/oem_ansi_fullsize/keyboard.json index 3c3ebb2646..e83b2c61d3 100644 --- a/keyboards/handwired/oem_ansi_fullsize/keyboard.json +++ b/keyboards/handwired/oem_ansi_fullsize/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/onekey/at_start_f415/board.h b/keyboards/handwired/onekey/at_start_f415/board.h deleted file mode 100644 index a31d8f8e37..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/board.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023-2025 HorrorTroll -// Copyright 2023-2025 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef AT32F415KB -#define AT32F415RC diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h deleted file mode 100644 index 7e41e7da89..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2023-2025 HorrorTroll -// Copyright 2023-2025 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* ADC pin */ -#define ADC_PIN A0 - -/* Backlight configs */ -#define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 - -/* LCD configs */ -#define LCD_RST_PIN A2 -#define LCD_DC_PIN A3 -#define LCD_CS_PIN A4 - -/* SPI pins */ -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A5 -#define SPI_MOSI_PIN A7 -#define SPI_MISO_PIN A6 - -/* Haptic configs */ -#define SOLENOID_PIN B12 -#define SOLENOID_PINS { B12, B13, B14, B15 } -#define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/at_start_f415/halconf.h b/keyboards/handwired/onekey/at_start_f415/halconf.h deleted file mode 100644 index 3c3ba3812a..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/halconf.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2023-2025 HorrorTroll -// Copyright 2023-2025 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_ADC TRUE - -#define HAL_USE_I2C TRUE - -#define HAL_USE_PWM TRUE - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/handwired/onekey/at_start_f415/keyboard.json b/keyboards/handwired/onekey/at_start_f415/keyboard.json deleted file mode 100644 index 8024e776a8..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/keyboard.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "keyboard_name": "Onekey AT-START-F415", - "processor": "AT32F415", - "bootloader": "at32-dfu", - "usb": { - "shared_endpoint": { - "keyboard": true - } - }, - "matrix_pins": { - "cols": ["B3"], - "rows": ["B4"] - }, - "backlight": { - "pin": "A0" - }, - "ws2812": { - "pin": "B0" - }, - "apa102": { - "data_pin": "B0", - "clock_pin": "B1" - } -} diff --git a/keyboards/handwired/onekey/at_start_f415/mcuconf.h b/keyboards/handwired/onekey/at_start_f415/mcuconf.h deleted file mode 100644 index 8f6333ca01..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/mcuconf.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023-2025 HorrorTroll -// Copyright 2023-2025 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef AT32_ADC_USE_ADC1 -#define AT32_ADC_USE_ADC1 TRUE - -#undef AT32_I2C_USE_I2C1 -#define AT32_I2C_USE_I2C1 TRUE - -#undef AT32_PWM_USE_TMR5 -#define AT32_PWM_USE_TMR5 TRUE - -#undef AT32_SPI_USE_SPI1 -#define AT32_SPI_USE_SPI1 TRUE diff --git a/keyboards/handwired/onekey/at_start_f415/readme.md b/keyboards/handwired/onekey/at_start_f415/readme.md deleted file mode 100644 index 499ef5fb16..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Artery AT-START-F415 Board Onekey - -To trigger keypress, short together pins *B3* and *B4*. diff --git a/keyboards/handwired/onekey/at_start_f415/rules.mk b/keyboards/handwired/onekey/at_start_f415/rules.mk deleted file mode 100644 index 7f2fa62b32..0000000000 --- a/keyboards/handwired/onekey/at_start_f415/rules.mk +++ /dev/null @@ -1 +0,0 @@ -MCU_LDSCRIPT = AT32F415xC diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index d5f650f1bd..c952758265 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -1,16 +1,22 @@ { "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x6465", "device_version": "0.0.1" }, + "tapping": { + "term": 500 + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": false }, "qmk": { @@ -26,17 +32,5 @@ {"x": 0, "y": 0, "matrix": [0, 0]} ] } - }, - "led_matrix": { - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} - ] - }, - "rgb_matrix": { - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} - ] } } diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index a9508bc4cc..e0bf180056 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -3,6 +3,9 @@ #pragma once + +#define DEBUG_MATRIX_SCAN_RATE + #define QMK_WAITING_TEST_BUSY_PIN GP8 #define QMK_WAITING_TEST_YIELD_PIN GP9 @@ -15,14 +18,4 @@ #define I2C_DRIVER I2CD0 #define I2C1_SDA_PIN GP12 #define I2C1_SCL_PIN GP13 - -/* LCD configs */ -#define LCD_RST_PIN GP0 -#define LCD_DC_PIN GP1 -#define LCD_CS_PIN GP2 - -/* SPI pins */ -#define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 -#define SPI_MISO_PIN GP20 + diff --git a/keyboards/handwired/onekey/kb2040/halconf.h b/keyboards/handwired/onekey/kb2040/halconf.h deleted file mode 100644 index 96d14ae85c..0000000000 --- a/keyboards/handwired/onekey/kb2040/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/handwired/onekey/kb2040/mcuconf.h b/keyboards/handwired/onekey/kb2040/mcuconf.h index cc44ce77c3..57e58e14d7 100644 --- a/keyboards/handwired/onekey/kb2040/mcuconf.h +++ b/keyboards/handwired/onekey/kb2040/mcuconf.h @@ -22,6 +22,3 @@ #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C1 TRUE - -#undef RP_SPI_USE_SPI0 -#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/handwired/onekey/keymaps/adc/keymap.json b/keyboards/handwired/onekey/keymaps/adc/keymap.json deleted file mode 100644 index e051d1a30b..0000000000 --- a/keyboards/handwired/onekey/keymaps/adc/keymap.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "config": { - "features": { - "console": true - }, - "tapping": { - "term": 500 - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/adc/rules.mk b/keyboards/handwired/onekey/keymaps/adc/rules.mk index cc58820278..8b36baccb0 100644 --- a/keyboards/handwired/onekey/keymaps/adc/rules.mk +++ b/keyboards/handwired/onekey/keymaps/adc/rules.mk @@ -1 +1,3 @@ +CONSOLE_ENABLE = yes + ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/onekey/keymaps/apa102/config.h b/keyboards/handwired/onekey/keymaps/apa102/config.h new file mode 100644 index 0000000000..bb618d77fb --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/apa102/config.h @@ -0,0 +1,14 @@ +#pragma once + +#define RGBLIGHT_LED_COUNT 40 +#define APA102_DEFAULT_BRIGHTNESS 5 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/handwired/onekey/keymaps/apa102/keymap.json b/keyboards/handwired/onekey/keymaps/apa102/keymap.json deleted file mode 100644 index 917d39eb33..0000000000 --- a/keyboards/handwired/onekey/keymaps/apa102/keymap.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "config": { - "features": { - "rgblight": true - }, - "tapping": { - "term": 500 - }, - "rgblight": { - "driver": "apa102", - "led_count": 40, - "default": { - "val": 5 - }, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/apa102/rules.mk b/keyboards/handwired/onekey/keymaps/apa102/rules.mk new file mode 100644 index 0000000000..5f15fa9e70 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/apa102/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +RGBLIGHT_DRIVER = apa102 diff --git a/keyboards/handwired/onekey/keymaps/backlight/config.h b/keyboards/handwired/onekey/keymaps/backlight/config.h new file mode 100644 index 0000000000..af01528b43 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/backlight/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define BACKLIGHT_BREATHING diff --git a/keyboards/handwired/onekey/keymaps/backlight/keymap.json b/keyboards/handwired/onekey/keymaps/backlight/keymap.json deleted file mode 100644 index e8895520cd..0000000000 --- a/keyboards/handwired/onekey/keymaps/backlight/keymap.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "config": { - "features": { - "backlight": true, - "tap_dance": true - }, - "tapping": { - "term": 500 - }, - "backlight": { - "breathing": true - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/backlight/rules.mk b/keyboards/handwired/onekey/keymaps/backlight/rules.mk new file mode 100644 index 0000000000..176e099770 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/backlight/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/onekey/keymaps/battery/config.h b/keyboards/handwired/onekey/keymaps/battery/config.h deleted file mode 100644 index b93bfe9000..0000000000 --- a/keyboards/handwired/onekey/keymaps/battery/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BATTERY_ADC_PIN ADC_PIN diff --git a/keyboards/handwired/onekey/keymaps/battery/keymap.c b/keyboards/handwired/onekey/keymaps/battery/keymap.c deleted file mode 100644 index 793a6ed87e..0000000000 --- a/keyboards/handwired/onekey/keymaps/battery/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ortho_1x1(KC_A) -}; - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - debug_enable=true; -// debug_matrix=false; -// debug_keyboard=true; -// debug_mouse=false; -} - -void housekeeping_task_user(void) { - static uint32_t last = 0; - if (timer_elapsed32(last) > 2000) { - uprintf("Bat: %d!\n", battery_get_percent()); - - last = timer_read32(); - } -} diff --git a/keyboards/handwired/onekey/keymaps/battery/keymap.json b/keyboards/handwired/onekey/keymaps/battery/keymap.json deleted file mode 100644 index 7232d6d899..0000000000 --- a/keyboards/handwired/onekey/keymaps/battery/keymap.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "config": { - "battery": { - "driver": "adc" - }, - "features": { - "battery": true, - "console": true - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h deleted file mode 100644 index aed1e4ac6f..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#pragma once - -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c deleted file mode 100644 index 0bd835ff25..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// This keymap serves as a test for modules/qmk/flow_led_matrix_effect. - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {LAYOUT_ortho_1x1(LM_TOGG)}; - -const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { - {0, CB6_CA1}, -}; - -void keyboard_post_init_user(void) { - led_matrix_mode_noeeprom(LED_MATRIX_COMMUNITY_MODULE_FLOW); -} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json deleted file mode 100644 index 0ff6bf5a4d..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": ["qmk/flow_led_matrix_effect"] -} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h deleted file mode 100644 index aed1e4ac6f..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#pragma once - -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c deleted file mode 100644 index 72ef2d3f80..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// This keymap serves as a test for modules/qmk/flow_rgb_matrix_effect. - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {LAYOUT_ortho_1x1(RM_TOGG)}; - -const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { - {0, CB6_CA1}, -}; - -void keyboard_post_init_user(void) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_COMMUNITY_MODULE_FLOW); -} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json deleted file mode 100644 index 56d2342867..0000000000 --- a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": ["qmk/flow_rgb_matrix_effect"] -} diff --git a/keyboards/handwired/onekey/keymaps/community_module/keymap.c b/keyboards/handwired/onekey/keymaps/community_module/keymap.c deleted file mode 100644 index 5115a9fea0..0000000000 --- a/keyboards/handwired/onekey/keymaps/community_module/keymap.c +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ortho_1x1(CM_HELO) -}; diff --git a/keyboards/handwired/onekey/keymaps/community_module/keymap.json b/keyboards/handwired/onekey/keymaps/community_module/keymap.json deleted file mode 100644 index e3b4051b9e..0000000000 --- a/keyboards/handwired/onekey/keymaps/community_module/keymap.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": ["qmk/hello_world"] -} diff --git a/keyboards/handwired/onekey/keymaps/console/keymap.json b/keyboards/handwired/onekey/keymaps/console/keymap.json deleted file mode 100644 index f451f7df04..0000000000 --- a/keyboards/handwired/onekey/keymaps/console/keymap.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "config": { - "features": { - "console": true, - "debug_matrix_scan_rate": true - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/console/rules.mk b/keyboards/handwired/onekey/keymaps/console/rules.mk new file mode 100644 index 0000000000..7c83606d2d --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/console/rules.mk @@ -0,0 +1,2 @@ +CONSOLE_ENABLE = yes +DEBUG_MATRIX_SCAN_RATE_ENABLE = yes diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.json b/keyboards/handwired/onekey/keymaps/default/keymap.json deleted file mode 100644 index 5cd219693a..0000000000 --- a/keyboards/handwired/onekey/keymaps/default/keymap.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "config": { - "tapping": { - "term": 500 - } - } -} diff --git a/keyboards/handwired/onekey/keymaps/lvgl/config.h b/keyboards/handwired/onekey/keymaps/lvgl/config.h new file mode 100644 index 0000000000..38bb5d0cf3 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/lvgl/config.h @@ -0,0 +1,15 @@ +// Copyright 2022 Jose Pablo Ramirez (@jpe230) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* SPI pins */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define SPI_MISO_PIN GP20 + +/* LCD Configuration */ +#define LCD_RST_PIN GP0 +#define LCD_DC_PIN GP1 +#define LCD_CS_PIN GP2 diff --git a/keyboards/handwired/onekey/keymaps/lvgl/halconf.h b/keyboards/handwired/onekey/keymaps/lvgl/halconf.h new file mode 100644 index 0000000000..27646bb3f5 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/lvgl/halconf.h @@ -0,0 +1,12 @@ +// Copyright 2022 Jose Pablo Ramirez (@jpe230) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef HAL_USE_SPI +#define HAL_USE_SPI TRUE + +#undef SPI_USE_WAIT +#define SPI_USE_WAIT TRUE diff --git a/keyboards/handwired/onekey/keymaps/lvgl/mcuconf.h b/keyboards/handwired/onekey/keymaps/lvgl/mcuconf.h new file mode 100644 index 0000000000..bff74867ff --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/lvgl/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Jose Pablo Ramirez (@jpe230) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/handwired/onekey/keymaps/via_ci/config.h b/keyboards/handwired/onekey/keymaps/via_ci/config.h deleted file mode 100644 index ec6f1e1ec0..0000000000 --- a/keyboards/handwired/onekey/keymaps/via_ci/config.h +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#define TRANSIENT_EEPROM_SIZE 160 diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.c b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c deleted file mode 100644 index 8261fc6329..0000000000 --- a/keyboards/handwired/onekey/keymaps/via_ci/keymap.c +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -enum custom_keycodes { - KC_HELLO = SAFE_RANGE, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ortho_1x1(KC_HELLO) -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_HELLO: - if (record->event.pressed) { - send_string_P("Hello world!"); - } - return false; - } - return true; -} - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - debug_enable=true; - debug_matrix=true; - //debug_keyboard=true; - //debug_mouse=true; -} diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.json b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json deleted file mode 100644 index edb78b5742..0000000000 --- a/keyboards/handwired/onekey/keymaps/via_ci/keymap.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "config": { - "features": { - "via": true - } - } -} diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h index cebb609117..4401623e85 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/config.h +++ b/keyboards/handwired/onekey/nucleo_f446re/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define ADC_PIN A5 +#define ADC_PIN A0 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json index 7c51ca053b..26de66e198 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json +++ b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json @@ -3,17 +3,17 @@ "processor": "STM32F446", "bootloader": "stm32-dfu", "matrix_pins": { - "cols": ["A0"], + "cols": ["A2"], "rows": ["A1"] }, "backlight": { "pin": "B8" }, "ws2812": { - "pin": "A4" + "pin": "A0" }, "apa102": { - "data_pin": "A4", + "data_pin": "A0", "clock_pin": "B13" } } diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md index b0645b65fe..c7d13cb973 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/readme.md +++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md @@ -1,5 +1,5 @@ # STM32 Nucleo-L432 onekey -To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins). +To trigger keypress, short together pins *A1* and *A2*. You'll also need to connect `VIN`, `GND`, USB `D+` to `PA12`/`D2`, and USB `D-` to `PA11`/`D10`. diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index 974fc688d3..0563ebfa5f 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -3,6 +3,9 @@ #pragma once + +#define DEBUG_MATRIX_SCAN_RATE + #define QMK_WAITING_TEST_BUSY_PIN GP8 #define QMK_WAITING_TEST_YIELD_PIN GP9 @@ -17,14 +20,3 @@ #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_A #define ADC_PIN GP26 - -/* LCD configs */ -#define LCD_RST_PIN GP0 -#define LCD_DC_PIN GP1 -#define LCD_CS_PIN GP2 - -/* SPI pins */ -#define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 -#define SPI_MISO_PIN GP20 diff --git a/keyboards/handwired/onekey/rp2040/halconf.h b/keyboards/handwired/onekey/rp2040/halconf.h index 6310808d9a..ec56be2263 100644 --- a/keyboards/handwired/onekey/rp2040/halconf.h +++ b/keyboards/handwired/onekey/rp2040/halconf.h @@ -4,11 +4,7 @@ #pragma once #define HAL_USE_I2C TRUE - #define HAL_USE_PWM TRUE - #define HAL_USE_ADC TRUE -#define HAL_USE_SPI TRUE - #include_next diff --git a/keyboards/handwired/onekey/rp2040/mcuconf.h b/keyboards/handwired/onekey/rp2040/mcuconf.h index c1d22657ca..e24a0d4f24 100644 --- a/keyboards/handwired/onekey/rp2040/mcuconf.h +++ b/keyboards/handwired/onekey/rp2040/mcuconf.h @@ -10,6 +10,3 @@ #undef RP_PWM_USE_PWM4 #define RP_PWM_USE_PWM4 TRUE - -#undef RP_SPI_USE_SPI0 -#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk new file mode 100644 index 0000000000..2094801ed9 --- /dev/null +++ b/keyboards/handwired/onekey/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/onekey/promicro diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk deleted file mode 100644 index d5978ba6f5..0000000000 --- a/keyboards/handwired/onekey/teensy_32/rules.mk +++ /dev/null @@ -1 +0,0 @@ -EEPROM_DRIVER = transient diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index d1a53e95d7..abd2f7fce9 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,2 +1,2 @@ USE_CHIBIOS_CONTRIB = yes -EEPROM_DRIVER = transient + diff --git a/keyboards/handwired/onekey/weact_g0b1cb/config.h b/keyboards/handwired/onekey/weact_g0b1cb/config.h deleted file mode 100644 index b4550b15f4..0000000000 --- a/keyboards/handwired/onekey/weact_g0b1cb/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2025 Stefan Kerkmann (@karlk90) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define ADC_PIN A0 - -#define BACKLIGHT_PAL_MODE 1 -#define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PWM_DRIVER PWMD3 - -#define I2C1_SCL_PAL_MODE 6 -#define I2C1_SDA_PAL_MODE 6 - -#define LCD_RST_PIN B12 -#define LCD_DC_PIN B11 -#define LCD_CS_PIN B10 - -#define SPI_MOSI_PAL_MODE 0 -#define SPI_MISO_PAL_MODE 0 -#define SPI_SCK_PAL_MODE 0 - -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_DMA_CHANNEL 2 -#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_PAL_MODE 1 diff --git a/keyboards/handwired/onekey/weact_g0b1cb/halconf.h b/keyboards/handwired/onekey/weact_g0b1cb/halconf.h deleted file mode 100644 index 2d6f87eba2..0000000000 --- a/keyboards/handwired/onekey/weact_g0b1cb/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 Stefan Kerkmann (@karlk90) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_ADC TRUE -#define HAL_USE_I2C TRUE -#define HAL_USE_PWM TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json b/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json deleted file mode 100644 index bb1ce7d5ca..0000000000 --- a/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "keyboard_name": "Onekey WeAct G0B1CB", - "processor": "STM32G0B1", - "bootloader": "stm32-dfu", - "matrix_pins": { - "cols": ["B4"], - "rows": ["B5"] - }, - "backlight": { - "pin": "C6" - }, - "ws2812": { - "driver": "pwm", - "pin": "B0" - }, - "apa102": { - "data_pin": "B15", - "clock_pin": "B13" - } -} diff --git a/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h b/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h deleted file mode 100644 index 50f2bcf627..0000000000 --- a/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2025 Stefan Kerkmann (@karlk90) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_ADC_USE_ADC1 -#define STM32_ADC_USE_ADC1 TRUE - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/handwired/onekey/weact_g0b1cb/readme.md b/keyboards/handwired/onekey/weact_g0b1cb/readme.md deleted file mode 100644 index 4119ffa2ed..0000000000 --- a/keyboards/handwired/onekey/weact_g0b1cb/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# WeAct Studio STM32G0B1CB onekey - -Supported Hardware: - -To trigger keypress, short together pins *B4* and *B5*. diff --git a/keyboards/handwired/orbweaver/keyboard.json b/keyboards/handwired/orbweaver/keyboard.json index 73baa9a21d..5ba08dfc2d 100644 --- a/keyboards/handwired/orbweaver/keyboard.json +++ b/keyboards/handwired/orbweaver/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/ortho5x13/keyboard.json b/keyboards/handwired/ortho5x13/keyboard.json index 6dea79ab92..23591b5046 100644 --- a/keyboards/handwired/ortho5x13/keyboard.json +++ b/keyboards/handwired/ortho5x13/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho 5x13", "manufacturer": "Hexwire", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/ortho5x14/keyboard.json b/keyboards/handwired/ortho5x14/keyboard.json index f0b7e923c1..1e6828190b 100644 --- a/keyboards/handwired/ortho5x14/keyboard.json +++ b/keyboards/handwired/ortho5x14/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho5 x14", "manufacturer": "MPInc", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c index d0c8c610b1..568427e52c 100644 --- a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c @@ -48,14 +48,15 @@ enum custom_layer { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ALT, + CTRL, + LOWER, RAISE, + MOUSE, ADJUST }; -#define QWERTY PDF(_QWERTY) -#define MOUSE PDF(_MOUSE) - // TAP DANCE *********************************************************** //Tap Dance Declarations enum { @@ -539,10 +540,10 @@ KC_PAUS */ [_MOUSE] = LAYOUT( _______ , XXXXXXX , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12, - _______ , XXXXXXX , XXXXXXX , XXXXXXX , MS_UP , XXXXXXX , MS_ACL0 , XXXXXXX, XXXXXXX , MS_WHLU , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX, - _______ , XXXXXXX , XXXXXXX , MS_LEFT , MS_DOWN , MS_RGHT , MS_ACL1 , XXXXXXX, MS_WHLL , MS_WHLD , MS_WHLR , XXXXXXX , XXXXXXX , XXXXXXX, - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , MS_ACL2 , XXXXXXX, MS_BTN1 , MS_BTN2 , MS_BTN3 , XXXXXXX , XXXXXXX , XXXXXXX, - TD(CTL_OSL1), OSM(MOD_LGUI), TD(ALT_OSL1), TD(TD_LayerDn) ,TD(TD_LayerUp), TD(TD_SPC_ENT) , MS_BTN1 , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT, TD(TD_ESC_GRAVE) + _______ , XXXXXXX , XXXXXXX , XXXXXXX , KC_MS_UP , XXXXXXX , KC_MS_ACCEL0 , XXXXXXX, XXXXXXX , KC_MS_WH_UP , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX, + _______ , XXXXXXX , XXXXXXX , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT, KC_MS_ACCEL1 , XXXXXXX, KC_MS_WH_LEFT , KC_MS_WH_DOWN, KC_MS_WH_RIGHT, XXXXXXX , XXXXXXX , XXXXXXX, + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_MS_ACCEL2 , XXXXXXX, KC_MS_BTN1 , KC_MS_BTN2 , KC_MS_BTN3 , XXXXXXX , XXXXXXX , XXXXXXX, + TD(CTL_OSL1), OSM(MOD_LGUI), TD(ALT_OSL1), TD(TD_LayerDn) ,TD(TD_LayerUp), TD(TD_SPC_ENT) , KC_MS_BTN1 , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT, TD(TD_ESC_GRAVE) ) }; @@ -568,6 +569,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -577,6 +584,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; + break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -586,6 +594,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; + break; + case MOUSE: + if (record->event.pressed) { + set_single_persistent_default_layer(_MOUSE); + } + return false; + break; } return true; }; diff --git a/keyboards/handwired/ortho5x14/keymaps/default/keymap.c b/keyboards/handwired/ortho5x14/keymaps/default/keymap.c index 30e107f336..3c0720e1b0 100644 --- a/keyboards/handwired/ortho5x14/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/default/keymap.c @@ -30,7 +30,10 @@ enum custom_layer { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT }; @@ -130,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+-----------------+-------+-------+----------+------+----+----+------+----------------+---------------+----------------+----------------+----------------| KC_PGDN ,TD(TD_SHIFT_CAPS),KC_Z ,KC_X ,KC_C ,KC_V ,KC_B,KC_N,KC_M ,TD(TD_COMM_LABK),TD(TD_DOT_RABK),TD(TD_SLSH_QUES),TD(TD_BSLS_PIPE),KC_RSFT , //|---------------+-----------------+-------+-------+----------+------+----+----+------+----------------+---------------+----------------+----------------+----------------| - KC_END , KC_LCTL ,KC_LGUI,KC_LALT, KC_L1 , KC_SPACE , KC_SPACE , KC_L2 ,KC_RALT ,MS_BTN2 ,KC_RCTL ,TD(TD_ESC_GRAVE) + KC_END , KC_LCTL ,KC_LGUI,KC_LALT, KC_L1 , KC_SPACE , KC_SPACE , KC_L2 ,KC_RALT ,KC_BTN2 ,KC_RCTL ,TD(TD_ESC_GRAVE) //`---------------+-----------------+-------+-------+----------+------+----+-----------+----------------+---------------+----------------+----------------+----------------' ), @@ -186,7 +189,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | |Audoff|Aud on|AGnorm|AGswap| | | | | | + * | | | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------+------+------|------+------+------+------+------+------| * | | | |Voice-|Voice+|Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| @@ -196,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = 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, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, _______ ) @@ -206,6 +209,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c index be7940bcfd..733e3f3d4b 100644 --- a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c @@ -47,14 +47,15 @@ enum custom_layer { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ALT, + CTRL, + LOWER, RAISE, + MOUSE, ADJUST }; -#define QWERTY PDF(_QWERTY) -#define MOUSE PDF(_MOUSE) - // TAP DANCE *********************************************************** //Tap Dance Declarations enum { @@ -474,9 +475,9 @@ KC_PAUS */ [_MOUSE] = LAYOUT( _______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , XXXXXXX, XXXXXXX, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, - MS_ACL0 , XXXXXXX , MS_UP , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , MS_WHLU , XXXXXXX , XXXXXXX , KC_F12, - MS_ACL1 , MS_LEFT , MS_DOWN , MS_RGHT , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLL , MS_WHLD , MS_WHLR , XXXXXXX , XXXXXXX, - MS_ACL2 , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1 , MS_BTN2 , MS_BTN3 , XXXXXXX , XXXXXXX, + KC_MS_ACCEL0, XXXXXXX , KC_MS_UP , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , KC_MS_WH_UP , XXXXXXX , XXXXXXX , KC_F12, + KC_MS_ACCEL1, KC_MS_LEFT, KC_MS_DOWN , KC_MS_RIGHT , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, XXXXXXX , XXXXXXX, + KC_MS_ACCEL2, XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1 , KC_MS_BTN2 , KC_MS_BTN3 , XXXXXXX , XXXXXXX, TD(CTL_OSL1), KC_LGUI , TD(ALT_OSL1), TD(TD_LayerDn) , KC_L2 , TD(TD_SPC_ENT) , KC_SPACE , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT, TD(TD_ESC_GRAVE) ) @@ -498,6 +499,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -507,6 +514,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; + break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -516,6 +524,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; + break; + case MOUSE: + if (record->event.pressed) { + set_single_persistent_default_layer(_MOUSE); + } + return false; + break; } return true; }; diff --git a/keyboards/handwired/ortho_brass/keyboard.json b/keyboards/handwired/ortho_brass/keyboard.json index 2f0fe7b685..5cd01b1f6d 100644 --- a/keyboards/handwired/ortho_brass/keyboard.json +++ b/keyboards/handwired/ortho_brass/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ortho Brass", "manufacturer": "BifbofII", + "url": "", "maintainer": "BifbofII", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index 47f731c2c9..d5ab0ba398 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -27,17 +27,16 @@ enum ortho_brass_layers { }; enum ortho_brass_keycodes { - PLOVER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, EXT_PLV }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -173,6 +172,24 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_laye bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case PLOVER: if (record->event.pressed) { layer_off(_RAISE); @@ -182,9 +199,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; break; diff --git a/keyboards/handwired/osborne1/keyboard.json b/keyboards/handwired/osborne1/keyboard.json index 567d4638b5..8cbcb3cc8b 100644 --- a/keyboards/handwired/osborne1/keyboard.json +++ b/keyboards/handwired/osborne1/keyboard.json @@ -6,6 +6,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": false, "mousekey": false, @@ -20,6 +21,7 @@ "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x239A", diff --git a/keyboards/handwired/p65rgb/keyboard.json b/keyboards/handwired/p65rgb/keyboard.json index d2ee16e2c1..b80a1e7f49 100644 --- a/keyboards/handwired/p65rgb/keyboard.json +++ b/keyboards/handwired/p65rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "p65rgb", "manufacturer": "marhalloweenvt", + "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", @@ -163,6 +164,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/p65rgb/keymaps/default/keymap.c b/keyboards/handwired/p65rgb/keymaps/default/keymap.c index b9d3233379..235a919130 100644 --- a/keyboards/handwired/p65rgb/keymaps/default/keymap.c +++ b/keyboards/handwired/p65rgb/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_INS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, - CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, + CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), diff --git a/keyboards/handwired/petruziamini/keyboard.json b/keyboards/handwired/petruziamini/keyboard.json index 1d0686aaa1..1d864d5dbb 100644 --- a/keyboards/handwired/petruziamini/keyboard.json +++ b/keyboards/handwired/petruziamini/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/petruziamini/keymaps/default/keymap.c b/keyboards/handwired/petruziamini/keymaps/default/keymap.c index 5a49827379..5265bb218e 100644 --- a/keyboards/handwired/petruziamini/keymaps/default/keymap.c +++ b/keyboards/handwired/petruziamini/keymaps/default/keymap.c @@ -35,8 +35,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [3] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_MUTE, KC_VOLU, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLU, MS_BTN1, KC_UP, MS_BTN2, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLD, KC_LEFT, KC_DOWN, KC_RGHT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_BTN1, KC_UP, KC_BTN2, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_NO, KC_NO ), [4] = LAYOUT( diff --git a/keyboards/handwired/phantagom/baragon/keyboard.json b/keyboards/handwired/phantagom/baragon/keyboard.json index 3cda89fa2a..390f114dd9 100644 --- a/keyboards/handwired/phantagom/baragon/keyboard.json +++ b/keyboards/handwired/phantagom/baragon/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/phantagom/varan/keyboard.json b/keyboards/handwired/phantagom/varan/keyboard.json index b852098769..a767d45de0 100644 --- a/keyboards/handwired/phantagom/varan/keyboard.json +++ b/keyboards/handwired/phantagom/varan/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/pilcrow/keyboard.json b/keyboards/handwired/pilcrow/keyboard.json index f490ac33b6..b44a4e2d3d 100644 --- a/keyboards/handwired/pilcrow/keyboard.json +++ b/keyboards/handwired/pilcrow/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "pilcrow", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/pilcrow/keymaps/default/keymap.c b/keyboards/handwired/pilcrow/keymaps/default/keymap.c index f287754478..8882fdb3ea 100644 --- a/keyboards/handwired/pilcrow/keymaps/default/keymap.c +++ b/keyboards/handwired/pilcrow/keymaps/default/keymap.c @@ -46,9 +46,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [3] = LAYOUT( - QK_BOOT, KC_UP, _______, _______, _______, _______, _______, MS_WHLD, MS_UP, MS_WHLU, - KC_LEFT, KC_DOWN, KC_RGHT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, MS_LEFT, MS_DOWN, MS_RGHT, + QK_BOOT, KC_UP, _______, _______, _______, _______, _______, KC_WH_D, KC_MS_U, KC_WH_U, + KC_LEFT, KC_DOWN, KC_RGHT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, MS_BTN1, MS_BTN2, _______, _______, _______, _______ + _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/pill60/rules.mk b/keyboards/handwired/pill60/rules.mk new file mode 100644 index 0000000000..9299a64d61 --- /dev/null +++ b/keyboards/handwired/pill60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/pill60/bluepill diff --git a/keyboards/handwired/planck/keyboard.json b/keyboards/handwired/planck/keyboard.json deleted file mode 100644 index dde4ecb9e6..0000000000 --- a/keyboards/handwired/planck/keyboard.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "manufacturer": "OLKB", - "keyboard_name": "Planck", - "maintainer": "Wholteza ", - "bootloader": "halfkay", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["C7", "D6", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["E6", "B3", "B7", "D0"] - }, - "processor": "atmega32u4", - "url": "https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/", - "usb": { - "device_version": "1.0.0", - "pid": "0x0053", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - {"matrix": [2, 11], "x": 11, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/planck/keymaps/default/keymap.c b/keyboards/handwired/planck/keymaps/default/keymap.c deleted file mode 100644 index 3783d37f95..0000000000 --- a/keyboards/handwired/planck/keymaps/default/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2025 Zackarias Montel (@Wholteza) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _NUM, - _SYM -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - [_NUM] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - [_SYM] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, QK_BOOT - ) -}; diff --git a/keyboards/handwired/planck/readme.md b/keyboards/handwired/planck/readme.md deleted file mode 100644 index 3bdbf87270..0000000000 --- a/keyboards/handwired/planck/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Plank Handwired - -![plank handwired](https://i.imgur.com/khseWs7.jpeg) - -A compact 40% (12x4) ortholinear keyboard kit sold by OLKB before the PCB was released. - -Keyboard Maintainer: [Wholteza](https://github.com/wholteza) -Hardware Supported: [Teensy 2.0](https://www.pjrc.com/store/teensy.html) -Hardware Availability: [PJRC](https://www.pjrc.com/store/teensy.html) - -Make example for this keyboard (after setting up your build environment): - - make handwired/planck:default - -Flashing example for this keyboard: - - make handwired/planck: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 left key closest to the USB Port) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/polly40/keyboard.json b/keyboards/handwired/polly40/keyboard.json index 8eacb238c1..fde1b77aab 100644 --- a/keyboards/handwired/polly40/keyboard.json +++ b/keyboards/handwired/polly40/keyboard.json @@ -19,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "qmk": { diff --git a/keyboards/handwired/postageboard/info.json b/keyboards/handwired/postageboard/info.json index b34c2b3fbe..2f4e674d59 100644 --- a/keyboards/handwired/postageboard/info.json +++ b/keyboards/handwired/postageboard/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Postage Board", "manufacturer": "LifeIsOnTheWire", + "url": "", "maintainer": "LifeIsOnTheWire", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/postageboard/rules.mk b/keyboards/handwired/postageboard/rules.mk new file mode 100644 index 0000000000..a7fcf6bea6 --- /dev/null +++ b/keyboards/handwired/postageboard/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=handwired/postageboard/mini diff --git a/keyboards/handwired/prime_exl/keyboard.json b/keyboards/handwired/prime_exl/keyboard.json index 656abe14ec..13993a61b4 100644 --- a/keyboards/handwired/prime_exl/keyboard.json +++ b/keyboards/handwired/prime_exl/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/prime_exl_plus/keyboard.json b/keyboards/handwired/prime_exl_plus/keyboard.json index 7e59b917a7..a234bceb02 100644 --- a/keyboards/handwired/prime_exl_plus/keyboard.json +++ b/keyboards/handwired/prime_exl_plus/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index c63d3eaead..342411a6b2 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -63,6 +63,9 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT #define PS2_MOUSE_INIT_DELAY 2000 +#define BATTERY_POLL 30000 +#define MAX_VOLTAGE 4.2 +#define MIN_VOLTAGE 3.2 #ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file enum led_sequence { @@ -152,7 +155,6 @@ enum led_sequence { }; # define RGBSPS_NUM LED_TOTAL -# define WS2812_LED_COUNT RGBSPS_NUM #endif /* PS/2 mouse */ diff --git a/keyboards/handwired/promethium/keyboard.json b/keyboards/handwired/promethium/keyboard.json index 2e47bd186a..6ee1ed8ca1 100644 --- a/keyboards/handwired/promethium/keyboard.json +++ b/keyboards/handwired/promethium/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Promethium", "manufacturer": "Priyadi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x17EF", @@ -10,12 +11,6 @@ "ws2812": { "pin": "B5" }, - "battery": { - "driver": "adc", - "adc": { - "pin": "B5" - } - }, "bluetooth": { "driver": "bluefruit_le" }, @@ -28,7 +23,6 @@ "nkro": true, "ps2_mouse": true, "ps2": true, - "battery": true, "bluetooth": true }, "build": { diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c index c94a27a4de..63139ac09d 100644 --- a/keyboards/handwired/promethium/promethium.c +++ b/keyboards/handwired/promethium/promethium.c @@ -1,15 +1,16 @@ -#include "keyboard.h" +#include "promethium.h" +#include "analog.h" #include "timer.h" -#include "battery.h" +#include "matrix.h" +#include "bluefruit_le.h" -#ifndef BATTERY_POLL -# define BATTERY_POLL 30000 -#endif +// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} uint8_t battery_level(void) { - // maintain legacy behaviour and scale 0-100 percent to 0-255 - uint16_t percent = battery_get_percent(); - return (percent * 255) / 100; + float voltage = bluefruit_le_read_battery_voltage() * 2 * 3.3 / 1024; + if (voltage < MIN_VOLTAGE) return 0; + if (voltage > MAX_VOLTAGE) return 255; + return (voltage - MIN_VOLTAGE) / (MAX_VOLTAGE - MIN_VOLTAGE) * 255; } __attribute__ ((weak)) diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c index 07ece69166..7dc26f4a5e 100644 --- a/keyboards/handwired/promethium/rgbsps.c +++ b/keyboards/handwired/promethium/rgbsps.c @@ -2,6 +2,8 @@ #include "ws2812.h" #include "rgbsps.h" +rgb_led_t led[RGBSPS_NUM]; + void keyboard_pre_init_kb(void) { ws2812_init(); @@ -9,7 +11,9 @@ void keyboard_pre_init_kb(void) { } void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) { - ws2812_set_color(index, r, g, b); + led[index].r = r; + led[index].g = g; + led[index].b = b; } void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b) { @@ -23,7 +27,7 @@ void rgbsps_turnoff(void) { } void rgbsps_send(void) { - ws2812_flush(); + ws2812_setleds(led, RGBSPS_NUM); } void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val) { diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index ecadca399c..7f20880066 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -5,6 +5,7 @@ PS2_DRIVER = interrupt CUSTOM_MATRIX = yes WS2812_DRIVER_REQUIRED = yes +ANALOG_DRIVER_REQUIRED = yes SRC += rgbsps.c SRC += matrix.c diff --git a/keyboards/handwired/protype/keyboard.json b/keyboards/handwired/protype/keyboard.json deleted file mode 100644 index dbbc17ba86..0000000000 --- a/keyboards/handwired/protype/keyboard.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "manufacturer": "Cherry", - "keyboard_name": "Protype Display Typewriter", - "maintainer": "nooges", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "rows": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21"], - "cols": ["GP12", "GP9", "GP10", "GP0", "GP1", "GP5", "GP6", "GP2", "GP3", "GP4"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0xB7D7", - "vid": "0x046A" - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "F1", "matrix": [0, 0], "w": 1.5, "x": 0, "y": 0 }, - { "label": "F2", "matrix": [0, 1], "w": 1.5, "x": 1.5, "y": 0 }, - { "label": "`", "matrix": [0, 2], "x": 3.5, "y": 0 }, - { "label": "1", "matrix": [0, 3], "x": 4.5, "y": 0 }, - { "label": "2", "matrix": [0, 4], "x": 5.5, "y": 0 }, - { "label": "3", "matrix": [0, 5], "x": 6.5, "y": 0 }, - { "label": "4", "matrix": [0, 6], "x": 7.5, "y": 0 }, - { "label": "5", "matrix": [0, 7], "x": 8.5, "y": 0 }, - { "label": "6", "matrix": [0, 8], "x": 9.5, "y": 0 }, - { "label": "7", "matrix": [0, 9], "x": 10.5, "y": 0 }, - { "label": "8", "matrix": [4, 8], "x": 11.5, "y": 0 }, - { "label": "9", "matrix": [4, 7], "x": 12.5, "y": 0 }, - { "label": "0", "matrix": [4, 6], "x": 13.5, "y": 0 }, - { "label": "-", "matrix": [4, 5], "x": 14.5, "y": 0 }, - { "label": "=", "matrix": [4, 4], "x": 15.5, "y": 0 }, - { "label": "Backspace", "matrix": [4, 3], "w": 2, "x": 16.5, "y": 0 }, - { "label": "Pg Up", "matrix": [4, 2], "x": 18.5, "y": 0 }, - { "label": "F8", "matrix": [4, 1], "w": 1.5, "x": 20, "y": 0 }, - { "label": "F9", "matrix": [4, 0], "w": 1.5, "x": 21.5, "y": 0 }, - { "label": "F3", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "label": "F4", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, - { "label": "Tab", "matrix": [1, 2], "w": 1.5, "x": 3.5, "y": 1 }, - { "label": "Q", "matrix": [1, 3], "x": 5, "y": 1 }, - { "label": "W", "matrix": [1, 4], "x": 6, "y": 1 }, - { "label": "E", "matrix": [1, 5], "x": 7, "y": 1 }, - { "label": "R", "matrix": [1, 6], "x": 8, "y": 1 }, - { "label": "T", "matrix": [1, 7], "x": 9, "y": 1 }, - { "label": "Y", "matrix": [1, 8], "x": 10, "y": 1 }, - { "label": "U", "matrix": [5, 9], "x": 11, "y": 1 }, - { "label": "I", "matrix": [5, 8], "x": 12, "y": 1 }, - { "label": "O", "matrix": [5, 7], "x": 13, "y": 1 }, - { "label": "P", "matrix": [5, 6], "x": 14, "y": 1 }, - { "label": "[", "matrix": [5, 5], "x": 15, "y": 1 }, - { "label": "]", "matrix": [5, 4], "x": 16, "y": 1 }, - { "label": "\\", "matrix": [5, 3], "w": 1.5, "x": 17, "y": 1 }, - { "label": "Pg Dn", "matrix": [5, 2], "x": 18.5, "y": 1 }, - { "label": "F10", "matrix": [5, 1], "w": 1.5, "x": 20, "y": 1 }, - { "label": "F11", "matrix": [5, 0], "w": 1.5, "x": 21.5, "y": 1 }, - { "label": "F5", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2 }, - { "label": "F6", "matrix": [2, 1], "w": 1.5, "x": 1.5, "y": 2 }, - { "label": "Caps Lock", "matrix": [2, 2], "w": 1.75, "x": 3.5, "y": 2 }, - { "label": "A", "matrix": [2, 3], "x": 5.25, "y": 2 }, - { "label": "S", "matrix": [2, 4], "x": 6.25, "y": 2 }, - { "label": "D", "matrix": [2, 5], "x": 7.25, "y": 2 }, - { "label": "F", "matrix": [2, 6], "x": 8.25, "y": 2 }, - { "label": "G", "matrix": [2, 7], "x": 9.25, "y": 2 }, - { "label": "H", "matrix": [2, 8], "x": 10.25, "y": 2 }, - { "label": "J", "matrix": [2, 9], "x": 11.25, "y": 2 }, - { "label": "K", "matrix": [6, 8], "x": 12.25, "y": 2 }, - { "label": "L", "matrix": [6, 7], "x": 13.25, "y": 2 }, - { "label": ";", "matrix": [6, 6], "x": 14.25, "y": 2 }, - { "label": "'", "matrix": [6, 5], "x": 15.25, "y": 2 }, - { "label": "Enter", "matrix": [6, 4], "w": 2.25, "x": 16.25, "y": 2 }, - { "label": "Up", "matrix": [6, 2], "x": 18.5, "y": 2 }, - { "label": "F12", "matrix": [6, 1], "w": 1.5, "x": 20, "y": 2 }, - { "label": "F13", "matrix": [6, 0], "w": 1.5, "x": 21.5, "y": 2 }, - { "label": "F7", "matrix": [3, 0], "w": 3, "x": 0, "y": 3 }, - { "label": "Ctrl", "matrix": [3, 2], "x": 3.5, "y": 3 }, - { "label": "Shift", "matrix": [3, 3], "w": 1.25, "x": 4.5, "y": 3 }, - { "label": "Z", "matrix": [3, 4], "x": 5.75, "y": 3 }, - { "label": "X", "matrix": [3, 5], "x": 6.75, "y": 3 }, - { "label": "C", "matrix": [3, 6], "x": 7.75, "y": 3 }, - { "label": "V", "matrix": [3, 7], "x": 8.75, "y": 3 }, - { "label": "B", "matrix": [3, 8], "x": 9.75, "y": 3 }, - { "label": "N", "matrix": [7, 9], "x": 10.75, "y": 3 }, - { "label": "M", "matrix": [7, 8], "x": 11.75, "y": 3 }, - { "label": ",", "matrix": [7, 7], "x": 12.75, "y": 3 }, - { "label": ".", "matrix": [7, 6], "x": 13.75, "y": 3 }, - { "label": "/", "matrix": [7, 5], "x": 14.75, "y": 3 }, - { "label": "Shift", "matrix": [7, 4], "w": 2.75, "x": 15.75, "y": 3 }, - { "label": "Down", "matrix": [7, 2], "x": 18.5, "y": 3 }, - { "label": "F14", "matrix": [7, 1], "w": 1.5, "x": 20, "y": 3 }, - { "label": "F15", "matrix": [7, 0], "w": 1.5, "x": 21.5, "y": 3 }, - { "matrix": [3, 1], "w": 9, "x": 6.75, "y": 4 } - ] - } - } -} diff --git a/keyboards/handwired/protype/keymaps/default/keymap.c b/keyboards/handwired/protype/keymaps/default/keymap.c deleted file mode 100644 index a8c41d9f7d..0000000000 --- a/keyboards/handwired/protype/keymaps/default/keymap.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_F8, KC_F9, - KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_F10, KC_F11, - KC_F5, KC_F6, 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_UP, KC_F12, KC_F13, - KC_F7, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DOWN, KC_F14, KC_F15, - KC_SPC - ) -}; diff --git a/keyboards/handwired/protype/readme.md b/keyboards/handwired/protype/readme.md deleted file mode 100644 index 678ab2b888..0000000000 --- a/keyboards/handwired/protype/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Cherry Protype Display Typewriter - -![handwired/protype](https://i.imgur.com/hcFikid.jpeg) - -Handwired RP2040 Pro Micro (Community Edition) on Cherry Protype Display Typewriter PCB. - -* Keyboard Maintainer: [nooges](https://github.com/nooges) -* Hardware Supported: RP2040 Pro Micro Controller - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb handwired/protype -km default - -Flashing example for this keyboard: - - qmk flash -kb handwired/protype -km default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold the Boot button on the microcontroller and then press Reset -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c index a8204aa1bf..61d650c76b 100644 --- a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c +++ b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | % | ^ | [ | ] | ~ | | & | 1 | 2 | 3 | \ | | * |------+------+------+------+------+------' `------+------+------+------+------+------| - * |BtLdr | | | | | | | . | 0 | = | | + * |QK_BOOT | | | | | | | . | 0 | = | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -101,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [_MDIA] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.json b/keyboards/handwired/pterodactyl/keymaps/default/keymap.json new file mode 100644 index 0000000000..181b32b8c3 --- /dev/null +++ b/keyboards/handwired/pterodactyl/keymaps/default/keymap.json @@ -0,0 +1,43 @@ +{ + "version": 1, + "notes": "", + "author": "Marcus Young", + "keyboard": "handwired/pterodactyl", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_EQL", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", + "KC_DEL", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "KC_BSPC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "LT(2,KC_SCLN)", "LGUI_T(KC_QUOT)", + "KC_LSFT", "LCTL_T(KC_Z)", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LCTL_T(KC_SLSH)", "KC_RSFT", + "LT(1,KC_GRV)", "KC_QUOT", "LALT(KC_LSFT)", "KC_LEFT", "KC_RGHT", "KC_UP", "KC_DOWN", "KC_LBRC", "KC_RBRC", "TT(1)", + + "LALT_T(KC_APP)", "KC_LGUI", "KC_RALT", "LCTL_T(KC_ESC)", + "KC_HOME", "KC_PGUP", + "KC_SPC", "KC_BSPC", "KC_END", "KC_PGDN", "KC_TAB", "KC_ENT" + ], + [ + "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", + "KC_TRNS", "KC_EXLM", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_UP", "KC_7", "KC_8", "KC_9", "KC_ASTR", "KC_F12", + "KC_TRNS", "KC_HASH", "KC_DLR", "KC_LPRN", "KC_RPRN", "KC_GRV", "KC_DOWN", "KC_4", "KC_5", "KC_6", "KC_PLUS", "KC_TRNS", + "KC_TRNS", "KC_PERC", "KC_CIRC", "KC_LBRC", "KC_RBRC", "KC_TILD", "KC_AMPR", "KC_1", "KC_2", "KC_3", "KC_BSLS", "KC_TRNS", + "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DOT", "KC_0", "KC_EQL", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MS_U", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_MS_L", "KC_MS_D", "KC_MS_R", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_MNXT", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_BTN1", "KC_BTN2", "KC_VOLU", "KC_VOLD", "KC_MUTE", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_WBAK" + ] + ] +} diff --git a/keyboards/handwired/pteron/keyboard.json b/keyboards/handwired/pteron/keyboard.json index c79bd9a655..7aa2470cc1 100644 --- a/keyboards/handwired/pteron/keyboard.json +++ b/keyboards/handwired/pteron/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pteron", "manufacturer": "QMK", + "url": "", "maintainer": "FSund", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/pteron38/keyboard.json b/keyboards/handwired/pteron38/keyboard.json index 2328977ae3..266aefec1f 100644 --- a/keyboards/handwired/pteron38/keyboard.json +++ b/keyboards/handwired/pteron38/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pteron38", "manufacturer": "QMK", + "url": "", "maintainer": "fidelcoria", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/pteron44/keyboard.json b/keyboards/handwired/pteron44/keyboard.json index 0a4f8605c8..26321317eb 100644 --- a/keyboards/handwired/pteron44/keyboard.json +++ b/keyboards/handwired/pteron44/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pteron44", "manufacturer": "QMK", + "url": "", "maintainer": "fidelcoria", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/pytest/basic/keymaps/default/keymap.c b/keyboards/handwired/pytest/basic/keymaps/default/keymap.c index 264de943c9..a5782f7a13 100644 --- a/keyboards/handwired/pytest/basic/keymaps/default/keymap.c +++ b/keyboards/handwired/pytest/basic/keymaps/default/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/handwired/pytest/has_community/keymaps/default/keymap.c b/keyboards/handwired/pytest/has_community/keymaps/default/keymap.c deleted file mode 100644 index 264de943c9..0000000000 --- a/keyboards/handwired/pytest/has_community/keymaps/default/keymap.c +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ortho_1x1(KC_A) -}; diff --git a/keyboards/handwired/qc60/proto/keyboard.json b/keyboards/handwired/qc60/proto/keyboard.json index 92603c33dd..810df8b7ae 100644 --- a/keyboards/handwired/qc60/proto/keyboard.json +++ b/keyboards/handwired/qc60/proto/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "QC60", "manufacturer": "PeiorisBoards", + "url": "", "maintainer": "coarse", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/qc60/rules.mk b/keyboards/handwired/qc60/rules.mk new file mode 100644 index 0000000000..4905848cf9 --- /dev/null +++ b/keyboards/handwired/qc60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/qc60/proto diff --git a/keyboards/handwired/rabijl/rotary_numpad/keyboard.json b/keyboards/handwired/rabijl/rotary_numpad/keyboard.json index 75f178690b..dafeec0fc0 100644 --- a/keyboards/handwired/rabijl/rotary_numpad/keyboard.json +++ b/keyboards/handwired/rabijl/rotary_numpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/rd_61_qmk/keyboard.json b/keyboards/handwired/rd_61_qmk/keyboard.json index bca23af959..be07d95924 100644 --- a/keyboards/handwired/rd_61_qmk/keyboard.json +++ b/keyboards/handwired/rd_61_qmk/keyboard.json @@ -52,6 +52,7 @@ "led_count": 1, "saturation_steps": 8 }, + "url": "", "ws2812": { "pin": "C7" }, diff --git a/keyboards/handwired/retro_refit/keyboard.json b/keyboards/handwired/retro_refit/keyboard.json index cc1904cb0c..7acdb48b44 100644 --- a/keyboards/handwired/retro_refit/keyboard.json +++ b/keyboards/handwired/retro_refit/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "retro_refit", "manufacturer": "Nobody", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, diff --git a/keyboards/handwired/riblee_f401/keyboard.json b/keyboards/handwired/riblee_f401/keyboard.json index 6fc3fbe474..53fc613760 100644 --- a/keyboards/handwired/riblee_f401/keyboard.json +++ b/keyboards/handwired/riblee_f401/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Handwired F401", "manufacturer": "Riblee", + "url": "", "maintainer": "riblee", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c index bdb3180152..f39f439c50 100644 --- a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c @@ -27,16 +27,15 @@ enum preonic_layers { }; enum preonic_keycodes { - BACKLIT = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + BACKLIT }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -120,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, MS_BTN1, MS_BTN2, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R ), /* Raise @@ -173,6 +172,24 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case BACKLIT: if (record->event.pressed) { register_code(keycode_config(KC_LGUI)); @@ -183,6 +200,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(keycode_config(KC_LGUI)); } return false; + break; } return true; }; diff --git a/keyboards/handwired/riblee_f411/keyboard.json b/keyboards/handwired/riblee_f411/keyboard.json index 1688220573..47d6349ba7 100644 --- a/keyboards/handwired/riblee_f411/keyboard.json +++ b/keyboards/handwired/riblee_f411/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Handwired F411", "manufacturer": "Riblee", + "url": "", "maintainer": "riblee", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c index 98268da221..74308a1c19 100644 --- a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c @@ -27,16 +27,15 @@ enum layer_names { }; enum custom_keycodes { - BACKLIT = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + BACKLIT }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -120,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, MS_BTN1, MS_BTN2, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R ), /* Raise @@ -173,6 +172,24 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case BACKLIT: if (record->event.pressed) { register_code(keycode_config(KC_LGUI)); @@ -183,6 +200,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(keycode_config(KC_LGUI)); } return false; + break; } return true; }; diff --git a/keyboards/handwired/riblee_split/keyboard.json b/keyboards/handwired/riblee_split/keyboard.json index 2bf78f96f1..f24dbe2ce6 100644 --- a/keyboards/handwired/riblee_split/keyboard.json +++ b/keyboards/handwired/riblee_split/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["A4", "A3", "A2", "A1", "A0"] }, "development_board": "blackpill_f411", + "url": "", "usb": { "device_version": "1.0.0", "vid": "0xFEED", @@ -29,9 +32,7 @@ "driver": "usart" }, "transport": { - "sync": { - "matrix_state": true - } + "sync_matrix_state": true } }, "community_layouts": ["ortho_5x12"], diff --git a/keyboards/handwired/rs60/keyboard.json b/keyboards/handwired/rs60/keyboard.json index e2b59dc15f..1536474343 100644 --- a/keyboards/handwired/rs60/keyboard.json +++ b/keyboards/handwired/rs60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rs60", "manufacturer": "rs", + "url": "", "maintainer": "rs", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": false, "mousekey": false, diff --git a/keyboards/handwired/rs60/keymaps/default/keymap.c b/keyboards/handwired/rs60/keymaps/default/keymap.c index 7dfe43fc4c..5dae734be6 100644 --- a/keyboards/handwired/rs60/keymaps/default/keymap.c +++ b/keyboards/handwired/rs60/keymaps/default/keymap.c @@ -26,14 +26,13 @@ enum layers { }; enum keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -165,6 +164,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/scottokeebs/scotto34/keyboard.json b/keyboards/handwired/scottokeebs/scotto34/keyboard.json index 255c33f2cd..6fcce38d70 100644 --- a/keyboards/handwired/scottokeebs/scotto34/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto34/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto36/keyboard.json b/keyboards/handwired/scottokeebs/scotto36/keyboard.json index 79361b4fe8..fe8ecb6629 100644 --- a/keyboards/handwired/scottokeebs/scotto36/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto36/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto37/keyboard.json b/keyboards/handwired/scottokeebs/scotto37/keyboard.json deleted file mode 100644 index 4e7cb06af9..0000000000 --- a/keyboards/handwired/scottokeebs/scotto37/keyboard.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "manufacturer": "ScottoKeebs", - "keyboard_name": "Scotto37", - "maintainer": "joe-scotto", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP29", "GP28"], - "rows": ["GP22", "GP20", "GP23", "GP21"] - }, - "processor": "RP2040", - "url": "https://scottokeebs.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x0027", - "vid": "0x534B" - }, - "layouts": { - "LAYOUT_3x10_7": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "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, 4], "x": 4, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/config.h deleted file mode 100644 index 8ac58ca23c..0000000000 --- a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2024 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c deleted file mode 100644 index a5d489f004..0000000000 --- a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2024 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_3x10_7( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC - ), - [1] = LAYOUT_3x10_7( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_3x10_7( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_3x10_7( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto37/readme.md b/keyboards/handwired/scottokeebs/scotto37/readme.md deleted file mode 100644 index a2198e17e3..0000000000 --- a/keyboards/handwired/scottokeebs/scotto37/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Scotto37 - -![Scotto37](https://i.imgur.com/WOXAGc3h.jpg) - -A 37-key gasket-mounted 0.25u column-staggered keyboard with a 3u spacebar. - -* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -* Hardware Supported: RP2040 Pro Micro -* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/scottokeebs/scotto37:default - -Flashing example for this keyboard: - - make handwired/scottokeebs/scotto37:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -# Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto40/keyboard.json b/keyboards/handwired/scottokeebs/scotto40/keyboard.json index 722ff7f6b0..b10f677c4d 100644 --- a/keyboards/handwired/scottokeebs/scotto40/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto40/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto61/keyboard.json b/keyboards/handwired/scottokeebs/scotto61/keyboard.json index 31510f5b86..cf321a2e97 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto61/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto9/keyboard.json b/keyboards/handwired/scottokeebs/scotto9/keyboard.json index 148c26af2c..a42d206300 100644 --- a/keyboards/handwired/scottokeebs/scotto9/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto9/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json index d3473c7b22..5bce6ae62c 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json @@ -12,6 +12,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottocmd/keyboard.json b/keyboards/handwired/scottokeebs/scottocmd/keyboard.json index 3dac375a3c..a26b95c1db 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottocmd/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json index e8f4f60c21..0607918cae 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/scottokeebs/scottoergo/keyboard.json b/keyboards/handwired/scottokeebs/scottoergo/keyboard.json index 137aea987d..4f6d955271 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoergo/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottofly/keyboard.json b/keyboards/handwired/scottokeebs/scottofly/keyboard.json index 2f185fdd5c..5255a5baf4 100644 --- a/keyboards/handwired/scottokeebs/scottofly/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottofly/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottofrog/keyboard.json b/keyboards/handwired/scottokeebs/scottofrog/keyboard.json index 50842232d7..147f2d8aa7 100644 --- a/keyboards/handwired/scottokeebs/scottofrog/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottofrog/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottogame/keyboard.json b/keyboards/handwired/scottokeebs/scottogame/keyboard.json index 9464eee51d..912cfdfaaa 100644 --- a/keyboards/handwired/scottokeebs/scottogame/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottogame/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/scottokeebs/scottohazard/config.h b/keyboards/handwired/scottokeebs/scottohazard/config.h deleted file mode 100644 index 2036aaed34..0000000000 --- a/keyboards/handwired/scottokeebs/scottohazard/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2024 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define EE_HANDS \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottohazard/keyboard.json b/keyboards/handwired/scottokeebs/scottohazard/keyboard.json deleted file mode 100644 index 01178e2f24..0000000000 --- a/keyboards/handwired/scottokeebs/scottohazard/keyboard.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "manufacturer": "ScottoKeebs", - "keyboard_name": "ScottoHazard", - "maintainer": "joe-scotto", - "bootloader": "rp2040", - "bootmagic": { - "matrix": [0, 1] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], - "rows": ["GP22", "GP20", "GP23", "GP21"] - }, - "processor": "RP2040", - "split": { - "bootmagic": { - "matrix": [4, 0] - }, - "enabled": true, - "serial": { - "driver": "vendor", - "pin": "GP1" - } - }, - "url": "https://scottokeebs.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x0028", - "vid": "0x534B" - }, - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [4, 0], "x": 7, "y": 0}, - {"matrix": [4, 1], "x": 8, "y": 0}, - {"matrix": [4, 2], "x": 9, "y": 0}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 4], "x": 11, "y": 0}, - {"matrix": [4, 5], "x": 12, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [5, 0], "x": 7, "y": 1}, - {"matrix": [5, 1], "x": 8, "y": 1}, - {"matrix": [5, 2], "x": 9, "y": 1}, - {"matrix": [5, 3], "x": 10, "y": 1}, - {"matrix": [5, 4], "x": 11, "y": 1}, - {"matrix": [5, 5], "x": 12, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [6, 0], "x": 7, "y": 2}, - {"matrix": [6, 1], "x": 8, "y": 2}, - {"matrix": [6, 2], "x": 9, "y": 2}, - {"matrix": [6, 3], "x": 10, "y": 2}, - {"matrix": [6, 4], "x": 11, "y": 2}, - {"matrix": [6, 5], "x": 12, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [7, 0], "x": 7, "y": 3}, - {"matrix": [7, 1], "x": 8, "y": 3}, - {"matrix": [7, 2], "x": 9, "y": 3}, - {"matrix": [7, 3], "x": 10, "y": 3}, - {"matrix": [7, 4], "x": 11, "y": 3}, - {"matrix": [7, 5], "x": 12, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/scottokeebs/scottohazard/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottohazard/keymaps/default/keymap.c deleted file mode 100644 index e35ac91ff9..0000000000 --- a/keyboards/handwired/scottokeebs/scottohazard/keymaps/default/keymap.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2024 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_QUOT, - KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), KC_RSFT, - KC_ESC, KC_NO, KC_NO, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC, KC_NO, KC_NO, KC_NO - ), - [1] = LAYOUT_ortho_4x12( - KC_TRNS, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, KC_TRNS, - KC_TRNS, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_ortho_4x12( - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, KC_TRNS, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_ortho_4x12( - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/handwired/scottokeebs/scottohazard/readme.md b/keyboards/handwired/scottokeebs/scottohazard/readme.md deleted file mode 100644 index 3f7e7f7865..0000000000 --- a/keyboards/handwired/scottokeebs/scottohazard/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# ScottoHazard - -![ScottoHazard](https://i.imgur.com/y2j7DOxh.jpg) - -A 3x5 (40-keys) or 3x6 (48-keys) split ortholinear keyboard that uses a TRRS cable for the interconnect. - -* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -* Hardware Supported: RP2040 Pro Micro -* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com) - -Make example for this keyboard (after setting up your build environment): - - make handwired/scottokeebs/scottohazard:default - -Flashing example for this keyboard: - - make handwired/scottokeebs/scottohazard: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,1) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json b/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json index af8334e0fa..2a9054cd4f 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json index 6cf65818b6..4b5779b6d9 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottolong/keyboard.json b/keyboards/handwired/scottokeebs/scottolong/keyboard.json index 8df234640c..156772d213 100644 --- a/keyboards/handwired/scottokeebs/scottolong/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottolong/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json index c623547f67..f238564c7f 100644 --- a/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json @@ -5,6 +5,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottomouse/keyboard.json b/keyboards/handwired/scottokeebs/scottomouse/keyboard.json index 96e4c7707c..36f92f48e2 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottomouse/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c index 967526afa6..6cc4d90144 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c @@ -19,6 +19,6 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - MS_BTN1, MS_BTN2, MS_LEFT, MS_UP, MS_DOWN, MS_RGHT + KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT ) }; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottonum/keyboard.json b/keyboards/handwired/scottokeebs/scottonum/keyboard.json index 3a8d87f5a4..f71f75d62b 100644 --- a/keyboards/handwired/scottokeebs/scottonum/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottonum/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottoslant/keyboard.json b/keyboards/handwired/scottokeebs/scottoslant/keyboard.json index bb1282fe12..8c9de39cd6 100644 --- a/keyboards/handwired/scottokeebs/scottoslant/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoslant/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottosplit/keyboard.json b/keyboards/handwired/scottokeebs/scottosplit/keyboard.json index 246c563f1e..66d24db0cd 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottosplit/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottostarter/keyboard.json b/keyboards/handwired/scottokeebs/scottostarter/keyboard.json index c113efd897..5e6a70114b 100644 --- a/keyboards/handwired/scottokeebs/scottostarter/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottostarter/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottowing/keyboard.json b/keyboards/handwired/scottokeebs/scottowing/keyboard.json index 6163e4ad1d..91bfaa1f92 100644 --- a/keyboards/handwired/scottokeebs/scottowing/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottowing/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/sejin_eat1010r2/keyboard.json b/keyboards/handwired/sejin_eat1010r2/keyboard.json index 5cf17d548a..f2cfef37a8 100644 --- a/keyboards/handwired/sejin_eat1010r2/keyboard.json +++ b/keyboards/handwired/sejin_eat1010r2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "EAT-1010R2", "manufacturer": "Sejin", + "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0x515A", @@ -21,6 +22,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/sick68/keyboard.json b/keyboards/handwired/sick68/keyboard.json index 81a9577f36..339484791f 100644 --- a/keyboards/handwired/sick68/keyboard.json +++ b/keyboards/handwired/sick68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "sick68", "manufacturer": "umbynos", + "url": "", "maintainer": "umbynos", "usb": { "vid": "0x5E68", diff --git a/keyboards/handwired/sick68/keymaps/default/keymap.c b/keyboards/handwired/sick68/keymaps/default/keymap.c index faa2a67d46..121fc3956e 100644 --- a/keyboards/handwired/sick68/keymaps/default/keymap.c +++ b/keyboards/handwired/sick68/keymaps/default/keymap.c @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, MS_BTN1, MS_UP, MS_BTN2, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_BTN1, KC_MS_U, KC_BTN2, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), }; diff --git a/keyboards/handwired/sick_pad/keyboard.json b/keyboards/handwired/sick_pad/keyboard.json index 68773fea2d..ce76294a0d 100644 --- a/keyboards/handwired/sick_pad/keyboard.json +++ b/keyboards/handwired/sick_pad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json index c004c75c71..cc6f70b482 100644 --- a/keyboards/handwired/skakunm_dactyl/keyboard.json +++ b/keyboards/handwired/skakunm_dactyl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dactyl Min (3x5_5)", "manufacturer": "skakunm", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -27,9 +29,7 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/slash/keyboard.json b/keyboards/handwired/slash/keyboard.json index ea1248c48e..a682624d8e 100644 --- a/keyboards/handwired/slash/keyboard.json +++ b/keyboards/handwired/slash/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Slash", "manufacturer": "asdftemp", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/snatchpad/keyboard.json b/keyboards/handwired/snatchpad/keyboard.json index 6f6d9aafec..d06fe2c003 100644 --- a/keyboards/handwired/snatchpad/keyboard.json +++ b/keyboards/handwired/snatchpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "snatchpad", "manufacturer": "xia0", + "url": "", "maintainer": "xia0", "usb": { "vid": "0x6662", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "key_lock": true, diff --git a/keyboards/handwired/snatchpad/keymaps/default/keymap.c b/keyboards/handwired/snatchpad/keymaps/default/keymap.c index 923b0d29f1..db8305129d 100644 --- a/keyboards/handwired/snatchpad/keymaps/default/keymap.c +++ b/keyboards/handwired/snatchpad/keymaps/default/keymap.c @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_LOCK, KC_UP , _______, KC_LEFT, KC_DOWN, KC_RGHT, - MS_BTN1, MS_BTN2 + KC_BTN1, KC_BTN2 ), [2] = LAYOUT( _______, _______, _______, diff --git a/keyboards/handwired/snatchpad/snatchpad.c b/keyboards/handwired/snatchpad/snatchpad.c index cedc0357a5..89d32c036b 100644 --- a/keyboards/handwired/snatchpad/snatchpad.c +++ b/keyboards/handwired/snatchpad/snatchpad.c @@ -29,9 +29,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; default: if (clockwise) { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } else { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } break; } @@ -54,9 +54,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; default: if (clockwise) { - tap_code(MS_DOWN); + tap_code(KC_MS_D); } else { - tap_code(MS_UP); + tap_code(KC_MS_U); } break; } diff --git a/keyboards/handwired/sono1/info.json b/keyboards/handwired/sono1/info.json index bf274924f6..85e86051c3 100644 --- a/keyboards/handwired/sono1/info.json +++ b/keyboards/handwired/sono1/info.json @@ -1,9 +1,11 @@ { "keyboard_name": "Sono1", "manufacturer": "ASKeyboard", + "url": "", "maintainer": "DmNosachev", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/sono1/keymaps/default/keymap.c b/keyboards/handwired/sono1/keymaps/default/keymap.c index e12a1c44d0..cd9f9bcdb6 100644 --- a/keyboards/handwired/sono1/keymaps/default/keymap.c +++ b/keyboards/handwired/sono1/keymaps/default/keymap.c @@ -100,8 +100,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MUS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, MS_WHLU, MS_BTN1, MS_UP, MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, MS_WHLD, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/handwired/sono1/rules.mk b/keyboards/handwired/sono1/rules.mk new file mode 100644 index 0000000000..9b472f28f2 --- /dev/null +++ b/keyboards/handwired/sono1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/sono1/t2pp diff --git a/keyboards/handwired/space_oddity/keyboard.json b/keyboards/handwired/space_oddity/keyboard.json index 98600b4770..ca4e10d16b 100644 --- a/keyboards/handwired/space_oddity/keyboard.json +++ b/keyboards/handwired/space_oddity/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Space Oddity", "manufacturer": "James Taylor", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/space_oddity/keymaps/default/keymap.c b/keyboards/handwired/space_oddity/keymaps/default/keymap.c index d41eb871e4..c278953f46 100644 --- a/keyboards/handwired/space_oddity/keymaps/default/keymap.c +++ b/keyboards/handwired/space_oddity/keymaps/default/keymap.c @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, TD(SFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), - MO(2), MO(1), KC_LGUI, KC_RALT, KC_LCTL, KC_SPC, ALT_T(KC_LEFT), HYPR_T(KC_RGHT), LT(1, KC_UP), LT(2, KC_DOWN) + MO(2), MO(1), KC_LGUI, KC_RALT, KC_LCTL, KC_SPC, ALT_T(KC_LEFT), ALL_T(KC_RGHT), LT(1, KC_UP), LT(2, KC_DOWN) ), /* Function layer. @@ -135,8 +135,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, MS_UP, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, MS_BTN1, MS_BTN3, MS_BTN2, _______, _______, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(2) diff --git a/keyboards/handwired/split65/promicro/config.h b/keyboards/handwired/split65/promicro/config.h index e6a8650b9b..f5c5ee3be2 100644 --- a/keyboards/handwired/split65/promicro/config.h +++ b/keyboards/handwired/split65/promicro/config.h @@ -15,6 +15,8 @@ */ #pragma once +#define SELECT_SOFT_SERIAL_SPEED 1 + // Feature diable options //#define NO_DEBUG //#define NO_PRINT diff --git a/keyboards/handwired/split65/promicro/keyboard.json b/keyboards/handwired/split65/promicro/keyboard.json index 40d0e8f43e..8b50ea8429 100644 --- a/keyboards/handwired/split65/promicro/keyboard.json +++ b/keyboards/handwired/split65/promicro/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/split65/stm32/config.h b/keyboards/handwired/split65/stm32/config.h index bf84e29fba..3d48891e7e 100644 --- a/keyboards/handwired/split65/stm32/config.h +++ b/keyboards/handwired/split65/stm32/config.h @@ -21,6 +21,7 @@ #define AUDIO_PIN_ALT A4 #define AUDIO_PIN_ALT_AS_NEGATIVE +#define SELECT_SOFT_SERIAL_SPEED 1 #define SERIAL_USART_DRIVER SD1 #define SERIAL_USART_TX_PAL_MODE 7 #define SERIAL_USART_TIMEOUT 100 diff --git a/keyboards/handwired/split89/keyboard.json b/keyboards/handwired/split89/keyboard.json index 8635f01d35..fdd092745f 100644 --- a/keyboards/handwired/split89/keyboard.json +++ b/keyboards/handwired/split89/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/split_cloud/keyboard.json b/keyboards/handwired/split_cloud/keyboard.json index b1e716ecde..fc1d2498df 100644 --- a/keyboards/handwired/split_cloud/keyboard.json +++ b/keyboards/handwired/split_cloud/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xCC43", "pid": "0x0001", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "diode_direction": "ROW2COL", "matrix_pins": { diff --git a/keyboards/handwired/split_cloud/keymaps/default/keymap.c b/keyboards/handwired/split_cloud/keymaps/default/keymap.c index 01ffe92dda..ad7e64e6ad 100644 --- a/keyboards/handwired/split_cloud/keymaps/default/keymap.c +++ b/keyboards/handwired/split_cloud/keymaps/default/keymap.c @@ -29,14 +29,13 @@ enum layer_names { }; enum custom_keycodes { - PLOVER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, EXT_PLV }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - #define ST_BOLT QK_STENO_BOLT #define ST_GEM QK_STENO_GEMINI @@ -196,6 +195,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; case PLOVER: if (!record->event.pressed) { layer_on(_PLOVER); diff --git a/keyboards/handwired/splittest/info.json b/keyboards/handwired/splittest/info.json index bbfe538255..07cac23aad 100644 --- a/keyboards/handwired/splittest/info.json +++ b/keyboards/handwired/splittest/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Split Tester", "manufacturer": "Keebio", + "url": "", "maintainer": "nooges", "usb": { "vid": "0xCB10", diff --git a/keyboards/handwired/splittest/promicro/keyboard.json b/keyboards/handwired/splittest/promicro/keyboard.json index 93f09a47ca..8aca1c3de7 100644 --- a/keyboards/handwired/splittest/promicro/keyboard.json +++ b/keyboards/handwired/splittest/promicro/keyboard.json @@ -8,9 +8,7 @@ "handedness": { "pin": "F6" }, - "serial": { - "pin": "D1" - } + "soft_serial_pin": "D1" }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk new file mode 100644 index 0000000000..ae4d823b53 --- /dev/null +++ b/keyboards/handwired/splittest/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/splittest/promicro diff --git a/keyboards/handwired/splittest/teensy_2/keyboard.json b/keyboards/handwired/splittest/teensy_2/keyboard.json index 78d6c5f9a3..c10b20a173 100644 --- a/keyboards/handwired/splittest/teensy_2/keyboard.json +++ b/keyboards/handwired/splittest/teensy_2/keyboard.json @@ -8,9 +8,7 @@ "handedness": { "pin": "F0" }, - "serial": { - "pin": "D1" - } + "soft_serial_pin": "D1" }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/starrykeebs/dude09/keyboard.json b/keyboards/handwired/starrykeebs/dude09/keyboard.json index 3a13e66baa..6e91adeb1e 100644 --- a/keyboards/handwired/starrykeebs/dude09/keyboard.json +++ b/keyboards/handwired/starrykeebs/dude09/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true }, diff --git a/keyboards/handwired/steamvan/rev1/keyboard.json b/keyboards/handwired/steamvan/rev1/keyboard.json index 06cfd2cef6..9c4593bca7 100644 --- a/keyboards/handwired/steamvan/rev1/keyboard.json +++ b/keyboards/handwired/steamvan/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SteamVan rev1", "manufacturer": "John M Daly", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json index 45c5a057bc..5f524ea445 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json +++ b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json @@ -1,5 +1,6 @@ { "keyboard_name": "Split_5x7", + "url": "", "maintainer": "stef9998", "manufacturer": "Stef9998", "usb": { @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/stef9998/split_5x7/rules.mk b/keyboards/handwired/stef9998/split_5x7/rules.mk new file mode 100644 index 0000000000..f06c490f00 --- /dev/null +++ b/keyboards/handwired/stef9998/split_5x7/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/stef9998/split_5x7/rev1 diff --git a/keyboards/handwired/sticc14/keyboard.json b/keyboards/handwired/sticc14/keyboard.json index 4fd89780ee..b3fb4a06e5 100644 --- a/keyboards/handwired/sticc14/keyboard.json +++ b/keyboards/handwired/sticc14/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sticc14", "manufacturer": "u/ergorius", + "url": "", "maintainer": "erkhal", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/stream_cheap/2x3/keyboard.json b/keyboards/handwired/stream_cheap/2x3/keyboard.json index ff9d23b215..ff62fa8a27 100644 --- a/keyboards/handwired/stream_cheap/2x3/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x3/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/stream_cheap/2x4/keyboard.json b/keyboards/handwired/stream_cheap/2x4/keyboard.json index 5fa54354a9..3f058cfbe4 100644 --- a/keyboards/handwired/stream_cheap/2x4/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x4/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/stream_cheap/2x5/keyboard.json b/keyboards/handwired/stream_cheap/2x5/keyboard.json index b9abe2c01f..8e2de67e62 100644 --- a/keyboards/handwired/stream_cheap/2x5/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x5/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/swiftrax/astro65/keyboard.json b/keyboards/handwired/swiftrax/astro65/keyboard.json index bc33d12159..c72c0e4b3d 100644 --- a/keyboards/handwired/swiftrax/astro65/keyboard.json +++ b/keyboards/handwired/swiftrax/astro65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/bebol/keyboard.json b/keyboards/handwired/swiftrax/bebol/keyboard.json index ad3af9176d..242d1b99a9 100644 --- a/keyboards/handwired/swiftrax/bebol/keyboard.json +++ b/keyboards/handwired/swiftrax/bebol/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -251,7 +253,7 @@ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12, "y": 4, "w": 1.5}, {"label": "\u2190", "matrix": [4, 13], "x": 13, "y": 4}, {"label": "\u2193", "matrix": [4, 14], "x": 14, "y": 4}, {"label": "\u2192", "matrix": [4, 15], "x": 15, "y": 4} @@ -327,7 +329,7 @@ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12, "y": 4, "w": 1.5}, {"label": "\u2190", "matrix": [4, 13], "x": 13, "y": 4}, {"label": "\u2193", "matrix": [4, 14], "x": 14, "y": 4}, {"label": "\u2192", "matrix": [4, 15], "x": 15, "y": 4} diff --git a/keyboards/handwired/swiftrax/beegboy/keyboard.json b/keyboards/handwired/swiftrax/beegboy/keyboard.json index c81c897c96..75edd62c1e 100644 --- a/keyboards/handwired/swiftrax/beegboy/keyboard.json +++ b/keyboards/handwired/swiftrax/beegboy/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/swiftrax/bumblebee/keyboard.json b/keyboards/handwired/swiftrax/bumblebee/keyboard.json index 3a0ba874c7..6dec52b59a 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keyboard.json +++ b/keyboards/handwired/swiftrax/bumblebee/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/swiftrax/cowfish/keyboard.json b/keyboards/handwired/swiftrax/cowfish/keyboard.json index 99bb061568..efa8c39d19 100644 --- a/keyboards/handwired/swiftrax/cowfish/keyboard.json +++ b/keyboards/handwired/swiftrax/cowfish/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CowFish", "manufacturer": "Swiftrax", + "url": "", "maintainer": "swiftrax", "usb": { "vid": "0x04D8", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/swiftrax/digicarp65/keyboard.json b/keyboards/handwired/swiftrax/digicarp65/keyboard.json index 6a401c0a52..59442c33ec 100644 --- a/keyboards/handwired/swiftrax/digicarp65/keyboard.json +++ b/keyboards/handwired/swiftrax/digicarp65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/swiftrax/digicarpice/keyboard.json b/keyboards/handwired/swiftrax/digicarpice/keyboard.json index 32cd6615be..6d857f5998 100644 --- a/keyboards/handwired/swiftrax/digicarpice/keyboard.json +++ b/keyboards/handwired/swiftrax/digicarpice/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/equator/keyboard.json b/keyboards/handwired/swiftrax/equator/keyboard.json index 12434002e4..6a539c786a 100644 --- a/keyboards/handwired/swiftrax/equator/keyboard.json +++ b/keyboards/handwired/swiftrax/equator/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/glacier/keyboard.json b/keyboards/handwired/swiftrax/glacier/keyboard.json index f3d201a095..d455cbe266 100644 --- a/keyboards/handwired/swiftrax/glacier/keyboard.json +++ b/keyboards/handwired/swiftrax/glacier/keyboard.json @@ -27,6 +27,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/joypad/keyboard.json b/keyboards/handwired/swiftrax/joypad/keyboard.json index 63f8a7a92b..b894dcbe54 100644 --- a/keyboards/handwired/swiftrax/joypad/keyboard.json +++ b/keyboards/handwired/swiftrax/joypad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/swiftrax/koalafications/keyboard.json b/keyboards/handwired/swiftrax/koalafications/keyboard.json index c01c1da39a..78686a8e70 100644 --- a/keyboards/handwired/swiftrax/koalafications/keyboard.json +++ b/keyboards/handwired/swiftrax/koalafications/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/nodu/keyboard.json b/keyboards/handwired/swiftrax/nodu/keyboard.json index ce9aad54e0..47c604c35f 100644 --- a/keyboards/handwired/swiftrax/nodu/keyboard.json +++ b/keyboards/handwired/swiftrax/nodu/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/pandamic/keyboard.json b/keyboards/handwired/swiftrax/pandamic/keyboard.json index b6b4fa4d66..9fce9c80c5 100644 --- a/keyboards/handwired/swiftrax/pandamic/keyboard.json +++ b/keyboards/handwired/swiftrax/pandamic/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/swiftrax/the_galleon/keyboard.json b/keyboards/handwired/swiftrax/the_galleon/keyboard.json index 63acbf0a20..1d87ce1893 100644 --- a/keyboards/handwired/swiftrax/the_galleon/keyboard.json +++ b/keyboards/handwired/swiftrax/the_galleon/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/unsplit/keyboard.json b/keyboards/handwired/swiftrax/unsplit/keyboard.json index 9c5b7d1a63..bb18c0dea8 100644 --- a/keyboards/handwired/swiftrax/unsplit/keyboard.json +++ b/keyboards/handwired/swiftrax/unsplit/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/walter/keyboard.json b/keyboards/handwired/swiftrax/walter/keyboard.json index b766cf87d1..cbf603a4ff 100644 --- a/keyboards/handwired/swiftrax/walter/keyboard.json +++ b/keyboards/handwired/swiftrax/walter/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/symmetric70_proto/info.json b/keyboards/handwired/symmetric70_proto/info.json index e0bd2f9c91..ecd0d38c24 100644 --- a/keyboards/handwired/symmetric70_proto/info.json +++ b/keyboards/handwired/symmetric70_proto/info.json @@ -1,5 +1,6 @@ { "manufacturer": "mtei", + "url": "", "maintainer": "mtei", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/symmetric70_proto/promicro/info.json b/keyboards/handwired/symmetric70_proto/promicro/info.json index 43ecb4c1c0..f143f518eb 100644 --- a/keyboards/handwired/symmetric70_proto/promicro/info.json +++ b/keyboards/handwired/symmetric70_proto/promicro/info.json @@ -12,9 +12,7 @@ } }, "split": { - "serial": { - "pin": "D0" - } + "soft_serial_pin": "D0" }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/handwired/symmetric70_proto/promicro/rules.mk b/keyboards/handwired/symmetric70_proto/promicro/rules.mk new file mode 100644 index 0000000000..7aa985b3f1 --- /dev/null +++ b/keyboards/handwired/symmetric70_proto/promicro/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/symmetric70_proto/promicro/base diff --git a/keyboards/handwired/symmetric70_proto/proton_c/rules.mk b/keyboards/handwired/symmetric70_proto/proton_c/rules.mk new file mode 100644 index 0000000000..28c4536e4b --- /dev/null +++ b/keyboards/handwired/symmetric70_proto/proton_c/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/symmetric70_proto/proton_c/base diff --git a/keyboards/handwired/symmetry60/keyboard.json b/keyboards/handwired/symmetry60/keyboard.json index 86b7fe1d8a..40afdf88c9 100644 --- a/keyboards/handwired/symmetry60/keyboard.json +++ b/keyboards/handwired/symmetry60/keyboard.json @@ -1,6 +1,7 @@ { "Keyboard_name": "Symmetry60", "manufacturer": "Marhalloweenvt", + "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", @@ -32,6 +33,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/t111/keyboard.json b/keyboards/handwired/t111/keyboard.json index d90244c94c..f65a3f087e 100644 --- a/keyboards/handwired/t111/keyboard.json +++ b/keyboards/handwired/t111/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "T111", "manufacturer": "FUJITSU", + "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/t111/keymaps/oleg/keymap.c b/keyboards/handwired/t111/keymaps/oleg/keymap.c index 2a75376ff2..b372de027b 100644 --- a/keyboards/handwired/t111/keymaps/oleg/keymap.c +++ b/keyboards/handwired/t111/keymaps/oleg/keymap.c @@ -118,9 +118,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( VRSN, KC_SLEP, _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UM(UAT), UM(UHSH), UM(UDLR), UM(USCT), UM(UCFX), UM(UAMP), UM(UAST), _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_BTN3, _______, _______, _______, KC_SYRQ, KC_SCRL, KC_PAUS, UP(ULSB, ULCB), UP(URSB, URCB), _______, _______, _______, _______, _______, _______, _______, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN5, _______, _______, _______, _______, _______, UP(USCO, UCLN), UP(UAPO, UQOT), _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, MS_BTN4, _______, _______, _______, _______, UP(UCOM, ULTH), UP(UDOT, UGTH), UP(USLS, UQUE), KC_APP, _______, _______, _______, _______, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, _______, _______, _______, KC_SYRQ, KC_SCRL, KC_PAUS, UP(ULSB, ULCB), UP(URSB, URCB), _______, _______, _______, _______, _______, _______, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, _______, _______, _______, _______, _______, UP(USCO, UCLN), UP(UAPO, UQOT), _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BTN4, _______, _______, _______, _______, UP(UCOM, ULTH), UP(UDOT, UGTH), UP(USLS, UQUE), KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/tennie/keyboard.json b/keyboards/handwired/tennie/keyboard.json index 2b56ae379a..05143c1cb0 100644 --- a/keyboards/handwired/tennie/keyboard.json +++ b/keyboards/handwired/tennie/keyboard.json @@ -32,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/tenstad/keyboard.json b/keyboards/handwired/tenstad/keyboard.json deleted file mode 100644 index 1220d3b107..0000000000 --- a/keyboards/handwired/tenstad/keyboard.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "manufacturer": "Amund Tenstad", - "keyboard_name": "tenstad", - "maintainer": "tenstad", - "bootloader": "rp2040", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP29", "GP28", "GP27", "GP26", "GP15", "GP14"], - "rows": ["GP3", "GP4", "GP5", "GP6"] - }, - "processor": "RP2040", - "split": { - "enabled": true, - "serial": { - "driver": "vendor" - }, - "transport": { - "protocol": "serial" - } - }, - "url": "https://github.com/tenstad/keyboard", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_split_3x6_5": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 1.35}, - {"matrix": [0, 1], "x": 1, "y": 0.95}, - {"matrix": [0, 2], "x": 2.35, "y": 0.35}, - {"matrix": [0, 3], "x": 3.35, "y": 0}, - {"matrix": [0, 4], "x": 4.65, "y": 0.4}, - {"matrix": [0, 5], "x": 5.65, "y": 0.4}, - {"matrix": [4, 5], "x": 12.25, "y": 0.4}, - {"matrix": [4, 4], "x": 13.25, "y": 0.4}, - {"matrix": [4, 3], "x": 14.55, "y": 0}, - {"matrix": [4, 2], "x": 15.55, "y": 0.35}, - {"matrix": [4, 1], "x": 16.9, "y": 0.95}, - {"matrix": [4, 0], "x": 17.9, "y": 1.35}, - {"matrix": [1, 0], "x": 0.1, "y": 2.35}, - {"matrix": [1, 1], "x": 1.1, "y": 1.95}, - {"matrix": [1, 2], "x": 2.4, "y": 1.35}, - {"matrix": [1, 3], "x": 3.4, "y": 1}, - {"matrix": [1, 4], "x": 4.65, "y": 1.4}, - {"matrix": [1, 5], "x": 5.65, "y": 1.4}, - {"matrix": [5, 5], "x": 12.25, "y": 1.4}, - {"matrix": [5, 4], "x": 13.25, "y": 1.4}, - {"matrix": [5, 3], "x": 14.5, "y": 1}, - {"matrix": [5, 2], "x": 15.5, "y": 1.35}, - {"matrix": [5, 1], "x": 16.8, "y": 1.95}, - {"matrix": [5, 0], "x": 17.8, "y": 2.35}, - {"matrix": [2, 0], "x": 0.2, "y": 3.35}, - {"matrix": [2, 1], "x": 1.2, "y": 2.95}, - {"matrix": [2, 2], "x": 2.45, "y": 2.35}, - {"matrix": [2, 3], "x": 3.45, "y": 2}, - {"matrix": [2, 4], "x": 4.65, "y": 2.4}, - {"matrix": [2, 5], "x": 5.65, "y": 2.4}, - {"matrix": [6, 5], "x": 12.25, "y": 2.4}, - {"matrix": [6, 4], "x": 13.25, "y": 2.4}, - {"matrix": [6, 3], "x": 14.45, "y": 2}, - {"matrix": [6, 2], "x": 15.45, "y": 2.35}, - {"matrix": [6, 1], "x": 16.7, "y": 2.95}, - {"matrix": [6, 0], "x": 17.7, "y": 3.35}, - {"matrix": [3, 5], "x": 6.85, "y": 3}, - {"matrix": [3, 3], "x": 7.95, "y": 3.35}, - {"matrix": [3, 4], "x": 5.6, "y": 3.95}, - {"matrix": [3, 1], "x": 6.7, "y": 4.1}, - {"matrix": [3, 2], "x": 7.8, "y": 4.45}, - {"matrix": [7, 3], "x": 9.95, "y": 3.35}, - {"matrix": [7, 5], "x": 11.05, "y": 3}, - {"matrix": [7, 2], "x": 10.1, "y": 4.45}, - {"matrix": [7, 1], "x": 11.2, "y": 4.1}, - {"matrix": [7, 4], "x": 12.3, "y": 3.95} - ] - } - } -} diff --git a/keyboards/handwired/tenstad/keymaps/default/keymap.json b/keyboards/handwired/tenstad/keymaps/default/keymap.json deleted file mode 100644 index 4882e30732..0000000000 --- a/keyboards/handwired/tenstad/keymaps/default/keymap.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "keyboard": "handwired/tenstad", - "keymap": "default", - "layout": "LAYOUT_split_3x6_5", - "layers": [ - [ - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_T", - "KC_Y", - "KC_U", - "KC_I", - "KC_O", - "KC_P", - "KC_RBRC", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_G", - "KC_H", - "KC_J", - "KC_K", - "KC_L", - "KC_GRV", - "KC_QUOT", - "KC_LCTL", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_B", - "KC_N", - "KC_M", - "KC_COMM", - "KC_DOT", - "KC_MINS", - "KC_RSFT", - "KC_NO", - "KC_NO", - "KC_TAB", - "KC_NO", - "KC_NO", - "KC_DEL", - "KC_NO", - "KC_BSPC", - "KC_SPC", - "KC_ENT" - ] - ] -} diff --git a/keyboards/handwired/tenstad/readme.md b/keyboards/handwired/tenstad/readme.md deleted file mode 100644 index 8ed9751330..0000000000 --- a/keyboards/handwired/tenstad/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# tenstad - -![tenstad](https://i.imgur.com/Lh4TAUF.png) - -[tenstad/keyboard](https://github.com/tenstad/keyboard) - hand-soldered ergonomic split 3x6 keyboard with 5 thumb keys - -* Keyboard Maintainer: [Amund Tenstad](https://github.com/tenstad) -* Hardware Supported: RP2040 Zero -* Hardware Availability: [List of Parts](https://github.com/tenstad/keyboard/blob/main/README.md#parts) from [AliExpress](https://aliexpress.com) - -Make example for this keyboard (after setting up your build environment): - - make handwired/tenstad:default - -Flashing example for this keyboard: - - make handwired/tenstad: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). diff --git a/keyboards/handwired/terminus_mini/keyboard.json b/keyboards/handwired/terminus_mini/keyboard.json index 0d495bf55b..09346c81bf 100644 --- a/keyboards/handwired/terminus_mini/keyboard.json +++ b/keyboards/handwired/terminus_mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Terminus Mini", "manufacturer": "James Morgan", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -14,6 +15,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index 90fdf8796d..e6d8bb6f05 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -33,7 +33,10 @@ enum terminus_mini_layers { }; enum terminus_mini_keycodes { - LOWER = SAFE_RANGE, + COLEMAK = SAFE_RANGE, + QWERTY, + DVORAK, + LOWER, RAISE, FUNCTION, MOUSE, @@ -45,10 +48,6 @@ enum terminus_mini_keycodes { #define SPC_LW LT(_LOWER, KC_SPC) #define ENT_RS LT(_RAISE, KC_ENT) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak - * ,----------------------------------------------------------------------------------. @@ -175,10 +174,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSE] = LAYOUT( - KC_ESC, MS_WHLU, MS_WHLL, MS_UP, MS_WHLR, XXXXXXX, XXXXXXX, MS_BTN3, MS_BTN4, MS_BTN5, XXXXXXX, XXXXXXX, - KC_BSPC, MS_WHLD, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ESC, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, + KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, SC_RSPC, - _______, XXXXXXX, XXXXXXX, XXXXXXX, MS_ACL2, MS_ACL0, XXXXXXX, MO(6), XXXXXXX, KC_RCTL + _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL2, KC_ACL0, XXXXXXX, MO(6), XXXXXXX, KC_RCTL ), /* Adjust (Lower + Raise) @@ -205,6 +204,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Cases to switch default layer to QWERTY, COLEMAK or DVORAK and to access ADJUST layer bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/tkk/keyboard.json b/keyboards/handwired/tkk/keyboard.json index 5dd21ef800..91e495081f 100644 --- a/keyboards/handwired/tkk/keyboard.json +++ b/keyboards/handwired/tkk/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "halfkay", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ ] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/handwired/tkk/keymaps/default/keymap.c b/keyboards/handwired/tkk/keymaps/default/keymap.c index 94c1c771fe..220daab627 100644 --- a/keyboards/handwired/tkk/keymaps/default/keymap.c +++ b/keyboards/handwired/tkk/keymaps/default/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PGDN, KC_PGUP, KC_HOME, KC_END, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 ), [11] = LAYOUT( - MS_WHLD, MS_WHLU, MS_WHLL, MS_WHLR, MS_BTN2, MS_BTN1, MS_LEFT, MS_RGHT, MS_UP, MS_DOWN + KC_WH_D, KC_WH_U, KC_WH_L, KC_WH_R, KC_BTN2, KC_BTN1, KC_MS_L, KC_MS_R, KC_MS_U, KC_MS_D ) }; diff --git a/keyboards/handwired/trackpoint/keyboard.json b/keyboards/handwired/trackpoint/keyboard.json index 1cd10dbb47..09fadd1dc6 100644 --- a/keyboards/handwired/trackpoint/keyboard.json +++ b/keyboards/handwired/trackpoint/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Trackpoint Demo", "manufacturer": "QMK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/trackpoint/keymaps/default/keymap.c b/keyboards/handwired/trackpoint/keymaps/default/keymap.c index f23c9b7608..1792cb4271 100644 --- a/keyboards/handwired/trackpoint/keymaps/default/keymap.c +++ b/keyboards/handwired/trackpoint/keymaps/default/keymap.c @@ -2,6 +2,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - MS_BTN1, MS_BTN3, MS_BTN2 + KC_BTN1, KC_BTN3, KC_BTN2 ) }; diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index cc651bec95..e5730a4586 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -1,5 +1,6 @@ { "keyboard_name": "Tractyl Manuform (4x6)", + "url": "", "maintainer": "drashna", "usb": { "pid": "0x3537", @@ -21,9 +22,7 @@ "handedness": { "pin": "A6" }, - "serial": { - "pin": "D3" - }, + "soft_serial_pin": "D3", "bootmagic": { "matrix": [4, 5] } diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk b/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk index fab9162dc6..0f3d0657aa 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk +++ b/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk @@ -1 +1,2 @@ POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json index bd4c41e17b..df810f2881 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json @@ -6,9 +6,7 @@ }, "diode_direction": "COL2ROW", "split": { - "serial": { - "pin": "D0" - }, + "soft_serial_pin": "D0", "matrix_pins": { "right": { "cols": ["D6", "D7", "B4", "D3", "C6", "C7"], diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/config.h index 686cb30fc2..194874b5cf 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/config.h @@ -21,4 +21,13 @@ along with this program. If not, see . #define ROTATIONAL_TRANSFORM_ANGLE -25 #define POINTING_DEVICE_INVERT_X +#define DYNAMIC_KEYMAP_LAYER_COUNT 16 +#define LAYER_STATE_16BIT + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + #define POINTING_DEVICE_RIGHT diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json index 739aad07ba..e6c0e42bde 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json @@ -11,9 +11,7 @@ ] }, "split": { - "serial": { - "pin": "D2" - } + "soft_serial_pin": "D2" }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h index b06f52b7df..62f56e4d2b 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h @@ -21,5 +21,7 @@ #define HAL_USE_SPI TRUE #define HAL_USE_GPT TRUE #define HAL_USE_DAC TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h deleted file mode 100644 index 9be86942d6..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 8000000U -#undef STM32_LSECLK -#define STM32_LSECLK 32768U diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h deleted file mode 100644 index 3878d9c671..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define USER_BUTTON_PIN C13 -#define DEBUG_LED_PIN B2 -#define USB_VBUS_PIN B10 - -#ifdef USE_USB_OTG_HS_PORT -# define USB_DRIVER USBD2 -#endif - -// WS2812 RGB LED strip input and number of LEDs -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 1 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_PWM_DMA_CHANNEL 5 -#define WS2812_EXTERNAL_PULLUP - -#define BACKLIGHT_PWM_DRIVER PWMD8 -#define BACKLIGHT_PWM_CHANNEL 2 -#define BACKLIGHT_PAL_MODE 3 - -/* Audio config */ -#define AUDIO_PIN A4 -#define AUDIO_PIN_ALT A5 -#define AUDIO_PIN_ALT_AS_NEGATIVE - -/* serial.c configuration for split keyboard */ -#define SERIAL_USART_DRIVER SD1 -#define SERIAL_USART_TX_PIN A10 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PIN A9 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_TIMEOUT 10 -#define SERIAL_USART_SPEED (1 * 1024 * 1024) -#define SERIAL_USART_FULL_DUPLEX - - -/* i2c config for oleds */ -#define I2C_DRIVER I2CD1 -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 - -/* spi config for eeprom and pmw3360 sensor */ -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN B3 -#define SPI_SCK_PAL_MODE 5 -#define SPI_MOSI_PIN B5 -#define SPI_MOSI_PAL_MODE 5 -#define SPI_MISO_PIN B4 -#define SPI_MISO_PAL_MODE 5 - -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B13 -#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 4 -#define EXTERNAL_FLASH_SIZE (8 * 1024 * 1024) - -/* pmw3360 config */ -#define POINTING_DEVICE_CS_PIN B8 -#define POINTING_DEVICE_ROTATION_270 -#undef ROTATIONAL_TRANSFORM_ANGLE -#define PMW33XX_SPI_DIVISOR 16 - -// lcd -#define DISPLAY_RST_PIN NO_PIN -#define DISPLAY_DC_PIN B12 -#define DISPLAY_CS_PIN B9 -#define DISPLAY_SPI_DIVIDER 1 - -#define DRV2605L_FB_ERM_LRA 0 -#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 -#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c b/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c deleted file mode 100644 index 5aabc70dca..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "tractyl_manuform.h" - -#ifdef USB_VBUS_PIN -bool usb_vbus_state(void) { - gpio_set_pin_input_low(USB_VBUS_PIN); - wait_us(5); - return gpio_read_pin(USB_VBUS_PIN); -} -#endif - -#ifdef USER_BUTTON_PIN -void user_button_init(void) { - // Pin needs to be configured as input low - gpio_set_pin_input_low(USER_BUTTON_PIN); -} - -bool check_user_button_state(void) { - return gpio_read_pin(USER_BUTTON_PIN); -} -#endif // USER_BUTTON_PIN - -void board_init(void) { - // Board setup sets these pins as SPI, but we aren't using them as such. - // So to prevent them from misbehaving, we need to set them to a different, non-spi mode. - // This is a bit of a hack, but nothing else runs soon enough, without re-implementing spi_init(). - gpio_set_pin_input(A5); - gpio_set_pin_input(A6); - gpio_set_pin_input(A7); - - // If using USB_OTG_HS, we need to set the data pins since they're set wrong for our needs by default. - // We set it here by default, in case it's bridged with A11/A12, as to reduce the chance of issues. - palSetLineMode( - B14, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); - palSetLineMode( - B15, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); -} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h deleted file mode 100644 index 3cf07b9be0..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define HAL_USE_SERIAL TRUE -#define SERIAL_BUFFERS_SIZE 256 - -#if defined(WS2812_PWM) || defined(BACKLIGHT_PWM) -# define HAL_USE_PWM TRUE -#endif // defined(WS2812_PWM) || defined(BACKLIGHT_PWM) - -#ifdef AUDIO_DRIVER_DAC -# define HAL_USE_GPT TRUE -# define HAL_USE_DAC TRUE -#endif - -#include_next diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json deleted file mode 100644 index b56e2d31c2..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "keyboard_name": "Tractyl Manuform (5x6) WeAct STM32F405", - "audio": { - "driver": "dac_additive", - "power_control": { - "pin": "A3" - } - }, - "backlight": { - "levels": 16, - "pin": "C7" - }, - "bootloader": "stm32-dfu", - "build": { - "debounce_type": "asym_eager_defer_pk" - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "C0", "pin_b": "A15"} - ] - }, - "eeprom": { - "driver": "wear_leveling", - "wear_leveling": { - "driver": "spi_flash", - "backing_size": 16384, - "logical_size": 4096 - } - }, - "features": { - "console": true, - "haptic": true - }, - "haptic": { - "driver": "drv2605l" - }, - "matrix_pins": { - "cols": ["C1", "C2", "C3", "A0", "A1", "A2"], - "rows": ["A6", "A7", "C4", "C5", "B0", "B1"] - }, - "processor": "STM32F405", - "rgblight": { - "led_count": 24, - "split": true - }, - "split": { - "handedness": { - "pin": "B11" - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync": { - "activity": true, - "haptic": true, - "matrix_state": true - } - } - }, - "ws2812": { - "driver": "pwm", - "pin": "C6" - } -} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h deleted file mode 100644 index 46920b17b3..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_LSE_ENABLED -#define STM32_LSE_ENABLED TRUE - -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 - -#undef STM32_RTCSEL -#define STM32_RTCSEL STM32_RTCSEL_LSE - -#undef STM32_SERIAL_USE_USART1 -#define STM32_SERIAL_USE_USART1 TRUE - -#if HAL_USE_WDG == TRUE -# undef STM32_WDG_USE_IWDG -# define STM32_WDG_USE_IWDG TRUE -#endif - -#if HAL_USE_I2C == TRUE -# undef STM32_I2C_USE_I2C1 -# define STM32_I2C_USE_I2C1 TRUE - -# undef STM32_I2C_BUSY_TIMEOUT -# define STM32_I2C_BUSY_TIMEOUT 10 - -# undef STM32_I2C_I2C1_RX_DMA_STREAM -# define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -# undef STM32_I2C_I2C1_TX_DMA_STREAM -# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#endif // HAL_USE_I2C - -#ifdef WS2812_PWM -# undef STM32_PWM_USE_TIM3 -# define STM32_PWM_USE_TIM3 TRUE -#endif // WS2812_PWM - -#ifdef BACKLIGHT_PWM -# undef STM32_PWM_USE_TIM8 -# define STM32_PWM_USE_TIM8 TRUE -#endif - -#if HAL_USE_SPI == TRUE -# undef STM32_SPI_USE_SPI1 -# define STM32_SPI_USE_SPI1 TRUE -#endif - -#ifdef AUDIO_DRIVER_DAC -# undef STM32_DAC_USE_DAC1_CH1 -# define STM32_DAC_USE_DAC1_CH1 TRUE -# undef STM32_DAC_USE_DAC1_CH2 -# define STM32_DAC_USE_DAC1_CH2 TRUE - -# undef STM32_GPT_USE_TIM6 -# define STM32_GPT_USE_TIM6 TRUE -#endif // AUDIO_DRIVER_DAC - - -#ifdef USE_USB_OTG_HS_PORT -# undef STM32_USB_USE_OTG1 -# define STM32_USB_USE_OTG1 FALSE -# undef STM32_USB_USE_OTG2 -# define STM32_USB_USE_OTG2 TRUE -#endif diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index bbbc16e3ea..64169da7e5 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #pragma once // #define USB_VBUS_PIN B10 // doesn't seem to work for me on one of my controllers... */ -#define USER_BUTTON_PIN A0 // WS2812 RGB LED strip input and number of LEDs #define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 @@ -29,6 +28,7 @@ along with this program. If not, see . //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +#define WS2812_PWM_TARGET_PERIOD 800000 #define DEBUG_LED_PIN C13 @@ -71,8 +71,7 @@ along with this program. If not, see . /* eeprom config */ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 -#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 /* pmw3360 config */ #define PMW33XX_CS_PIN B0 -#define PMW33XX_SPI_DIVISOR 8 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c b/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c index cfe97d6318..dbacb1685c 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c @@ -16,6 +16,41 @@ #include "tractyl_manuform.h" +void keyboard_pre_init_sub(void) { gpio_set_pin_input_high(A0); } + +void matrix_scan_sub_kb(void) { + if (!gpio_read_pin(A0)) { + reset_keyboard(); + } +} + +__attribute__((weak)) void bootmagic_scan(void) { + // We need multiple scans because debouncing can't be turned off. + matrix_scan(); +#if defined(DEBOUNCE) && DEBOUNCE > 0 + wait_ms(DEBOUNCE * 2); +#else + wait_ms(30); +#endif + matrix_scan(); + + uint8_t row = BOOTMAGIC_ROW; + uint8_t col = BOOTMAGIC_COLUMN; + +#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_ROW_RIGHT) && defined(BOOTMAGIC_COLUMN_RIGHT) + if (!is_keyboard_left()) { + row = BOOTMAGIC_ROW_RIGHT; + col = BOOTMAGIC_COLUMN_RIGHT; + } +#endif + + if (matrix_get_row(row) & (1 << col) || !gpio_read_pin(A0)) { + eeconfig_disable(); + bootloader_jump(); + } +} + + #ifdef USB_VBUS_PIN bool usb_vbus_state(void) { gpio_set_pin_input_low(USB_VBUS_PIN); @@ -23,3 +58,9 @@ bool usb_vbus_state(void) { return gpio_read_pin(USB_VBUS_PIN); } #endif + +void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { + for (int32_t i = 0; i < 40; i++) { + __asm__ volatile("nop" ::: "memory"); + } +} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h index 296119b080..bc07c10527 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h @@ -19,5 +19,7 @@ #define HAL_USE_SERIAL TRUE #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk new file mode 100644 index 0000000000..4aa582e7a2 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk @@ -0,0 +1,2 @@ +KEYBOARD_SHARED_EP = yes +MOUSE_SHARED_EP = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/info.json index 0264000b20..b28f309fdb 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/info.json @@ -1,4 +1,5 @@ { + "url": "", "usb": { "pid": "0x3536", "device_version": "0.0.1" @@ -95,212 +96,9 @@ {"matrix": [5, 2], "x": 6, "y": 7}, {"matrix": [5, 3], "x": 7, "y": 7}, - {"matrix": [11, 2], "x": 9, "y": 7}, - {"matrix": [11, 3], "x": 10, "y": 7} - ] - }, - "LAYOUT_5x6_full_right": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [6, 0], "x": 11, "y": 0}, - {"matrix": [6, 1], "x": 12, "y": 0}, - {"matrix": [6, 2], "x": 13, "y": 0}, - {"matrix": [6, 3], "x": 14, "y": 0}, - {"matrix": [6, 4], "x": 15, "y": 0}, - {"matrix": [6, 5], "x": 16, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [7, 0], "x": 11, "y": 1}, - {"matrix": [7, 1], "x": 12, "y": 1}, - {"matrix": [7, 2], "x": 13, "y": 1}, - {"matrix": [7, 3], "x": 14, "y": 1}, - {"matrix": [7, 4], "x": 15, "y": 1}, - {"matrix": [7, 5], "x": 16, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [8, 0], "x": 11, "y": 2}, - {"matrix": [8, 1], "x": 12, "y": 2}, - {"matrix": [8, 2], "x": 13, "y": 2}, - {"matrix": [8, 3], "x": 14, "y": 2}, - {"matrix": [8, 4], "x": 15, "y": 2}, - {"matrix": [8, 5], "x": 16, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [9, 0], "x": 11, "y": 3}, - {"matrix": [9, 1], "x": 12, "y": 3}, - {"matrix": [9, 2], "x": 13, "y": 3}, - {"matrix": [9, 3], "x": 14, "y": 3}, - {"matrix": [9, 4], "x": 15, "y": 3}, - {"matrix": [9, 5], "x": 16, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - - {"matrix": [10, 2], "x": 13, "y": 4}, - {"matrix": [10, 3], "x": 14, "y": 4}, - {"matrix": [10, 4], "x": 15, "y": 4}, - {"matrix": [10, 5], "x": 16, "y": 4}, - - {"matrix": [4, 4], "x": 4, "y": 5}, - {"matrix": [4, 5], "x": 5, "y": 5}, - - {"matrix": [10, 1], "x": 12, "y": 5}, - - {"matrix": [5, 4], "x": 6, "y": 6}, - {"matrix": [5, 5], "x": 7, "y": 6}, - - {"matrix": [11, 1], "x": 10, "y": 6}, - - {"matrix": [5, 2], "x": 6, "y": 7}, - {"matrix": [5, 3], "x": 7, "y": 7}, - {"matrix": [11, 2], "x": 9, "y": 7}, {"matrix": [11, 3], "x": 10, "y": 7} ] } - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "led_count": 64, - "max_brightness": 100, - "split_count": [33, 31], - "sleep": true, - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 10, "flags": 1}, - {"matrix": [2, 0], "x": 0, "y": 20, "flags": 1}, - {"matrix": [3, 0], "x": 0, "y": 30, "flags": 1}, - {"matrix": [3, 1], "x": 12, "y": 30, "flags": 4}, - {"matrix": [2, 1], "x": 12, "y": 20, "flags": 4}, - {"matrix": [1, 1], "x": 12, "y": 10, "flags": 4}, - {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 24, "y": 10, "flags": 4}, - {"matrix": [2, 2], "x": 24, "y": 20, "flags": 4}, - {"matrix": [3, 2], "x": 24, "y": 30, "flags": 4}, - {"matrix": [4, 2], "x": 24, "y": 40, "flags": 1}, - {"matrix": [4, 3], "x": 36, "y": 40, "flags": 1}, - {"matrix": [3, 3], "x": 36, "y": 30, "flags": 4}, - {"matrix": [2, 3], "x": 36, "y": 20, "flags": 4}, - {"matrix": [1, 3], "x": 36, "y": 10, "flags": 4}, - {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 48, "y": 10, "flags": 4}, - {"matrix": [2, 4], "x": 48, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 48, "y": 30, "flags": 4}, - {"matrix": [3, 5], "x": 60, "y": 30, "flags": 4}, - {"matrix": [2, 5], "x": 60, "y": 20, "flags": 4}, - {"matrix": [1, 5], "x": 60, "y": 10, "flags": 4}, - {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, - {"matrix": [4, 4], "x": 48, "y": 50, "flags": 1}, - {"matrix": [5, 4], "x": 65, "y": 56, "flags": 1}, - {"matrix": [5, 5], "x": 70, "y": 60, "flags": 1}, - {"matrix": [5, 3], "x": 65, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 60, "y": 60, "flags": 1}, - {"matrix": [4, 1], "x": 0, "y": 40, "flags": 1}, - {"matrix": [4, 0], "x": 12, "y": 40, "flags": 1}, - {"matrix": [6, 5], "x": 224, "y": 0, "flags": 1}, - {"matrix": [7, 5], "x": 224, "y": 10, "flags": 1}, - {"matrix": [8, 5], "x": 224, "y": 20, "flags": 1}, - {"matrix": [9, 5], "x": 224, "y": 30, "flags": 1}, - {"matrix": [9, 4], "x": 212, "y": 30, "flags": 4}, - {"matrix": [8, 4], "x": 212, "y": 20, "flags": 4}, - {"matrix": [7, 4], "x": 212, "y": 10, "flags": 4}, - {"matrix": [6, 4], "x": 212, "y": 0, "flags": 4}, - {"matrix": [6, 3], "x": 200, "y": 0, "flags": 4}, - {"matrix": [7, 3], "x": 200, "y": 10, "flags": 4}, - {"matrix": [8, 3], "x": 200, "y": 20, "flags": 4}, - {"matrix": [9, 3], "x": 200, "y": 30, "flags": 4}, - {"matrix": [10, 3], "x": 200, "y": 40, "flags": 1}, - {"matrix": [10, 2], "x": 188, "y": 40, "flags": 1}, - {"matrix": [9, 2], "x": 188, "y": 30, "flags": 4}, - {"matrix": [8, 2], "x": 188, "y": 20, "flags": 4}, - {"matrix": [7, 2], "x": 188, "y": 10, "flags": 4}, - {"matrix": [6, 2], "x": 188, "y": 0, "flags": 4}, - {"matrix": [6, 1], "x": 176, "y": 0, "flags": 4}, - {"matrix": [7, 1], "x": 176, "y": 10, "flags": 4}, - {"matrix": [8, 1], "x": 176, "y": 20, "flags": 4}, - {"matrix": [9, 1], "x": 176, "y": 30, "flags": 4}, - {"matrix": [9, 0], "x": 164, "y": 30, "flags": 4}, - {"matrix": [8, 0], "x": 164, "y": 20, "flags": 4}, - {"matrix": [7, 0], "x": 164, "y": 10, "flags": 4}, - {"matrix": [6, 0], "x": 164, "y": 0, "flags": 4}, - {"matrix": [11, 1], "x": 164, "y": 60, "flags": 1}, - {"matrix": [11, 3], "x": 152, "y": 70, "flags": 1}, - {"matrix": [11, 2], "x": 140, "y": 70, "flags": 1}, - {"matrix": [10, 4], "x": 224, "y": 40, "flags": 1}, - {"matrix": [10, 5], "x": 208, "y": 40, "flags": 1} - ] } } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk deleted file mode 100644 index fab9162dc6..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk new file mode 100644 index 0000000000..b7f7c949ec --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk @@ -0,0 +1,4 @@ +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = yes + +DEFAULT_FOLDER = handwired/tractyl_manuform/5x6_right/teensy2pp diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json index 5a091996b6..a131ac085b 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json @@ -11,9 +11,7 @@ ] }, "split": { - "serial": { - "pin": "D2" - } + "soft_serial_pin": "D2" }, "ws2812": { "pin": "E7" diff --git a/keyboards/handwired/tractyl_manuform/config.h b/keyboards/handwired/tractyl_manuform/config.h index 5a8091a098..9f4dd8651b 100644 --- a/keyboards/handwired/tractyl_manuform/config.h +++ b/keyboards/handwired/tractyl_manuform/config.h @@ -18,6 +18,18 @@ along with this program. If not, see . #pragma once + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + #define SPLIT_POINTING_ENABLE #define POINTING_DEVICE_TASK_THROTTLE_MS 1 diff --git a/keyboards/handwired/tractyl_manuform/info.json b/keyboards/handwired/tractyl_manuform/info.json index fb50c8d359..c84d008e15 100644 --- a/keyboards/handwired/tractyl_manuform/info.json +++ b/keyboards/handwired/tractyl_manuform/info.json @@ -2,10 +2,6 @@ "manufacturer": "QMK Community", "maintainer": "Drashna Jael're", "usb": { - "vid": "0x44DD", - "shared_endpoint": { - "keyboard": true, - "mouse": true - } + "vid": "0x44DD" } } diff --git a/keyboards/handwired/tractyl_manuform/post_config.h b/keyboards/handwired/tractyl_manuform/post_config.h new file mode 100644 index 0000000000..b5d67132b2 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/post_config.h @@ -0,0 +1,112 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// mouse config +#ifdef MOUSEKEY_ENABLE +# ifndef MOUSEKEY_MOVE_DELTA +# ifndef MK_KINETIC_SPEED +# define MOUSEKEY_MOVE_DELTA 5 +# else +# define MOUSEKEY_MOVE_DELTA 25 +# endif +# endif +# ifndef MOUSEKEY_DELAY +# ifndef MK_KINETIC_SPEED +# define MOUSEKEY_DELAY 300 +# else +# define MOUSEKEY_DELAY 8 +# endif +# endif +# ifndef MOUSEKEY_INTERVAL +# ifndef MK_KINETIC_SPEED +# define MOUSEKEY_INTERVAL 50 +# else +# define MOUSEKEY_INTERVAL 20 +# endif +# endif +# ifndef MOUSEKEY_MAX_SPEED +# define MOUSEKEY_MAX_SPEED 7 +# endif +# ifndef MOUSEKEY_TIME_TO_MAX +# define MOUSEKEY_TIME_TO_MAX 60 +# endif +# ifndef MOUSEKEY_INITIAL_SPEED +# define MOUSEKEY_INITIAL_SPEED 100 +# endif +# ifndef MOUSEKEY_BASE_SPEED +# define MOUSEKEY_BASE_SPEED 1000 +# endif +# ifndef MOUSEKEY_DECELERATED_SPEED +# define MOUSEKEY_DECELERATED_SPEED 400 +# endif +# ifndef MOUSEKEY_ACCELERATED_SPEED +# define MOUSEKEY_ACCELERATED_SPEED 3000 +# endif + +// mouse scroll config +# ifndef MOUSEKEY_WHEEL_DELAY +# define MOUSEKEY_WHEEL_DELAY 15 +# endif +# ifndef MOUSEKEY_WHEEL_DELTA +# define MOUSEKEY_WHEEL_DELTA 1 +# endif +# ifndef MOUSEKEY_WHEEL_INTERVAL +# define MOUSEKEY_WHEEL_INTERVAL 50 +# endif +# ifndef MOUSEKEY_WHEEL_MAX_SPEED +# define MOUSEKEY_WHEEL_MAX_SPEED 8 +# endif +# ifndef MOUSEKEY_WHEEL_TIME_TO_MAX +# define MOUSEKEY_WHEEL_TIME_TO_MAX 80 +# endif + +# ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS +# define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 8 +# endif +# ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS +# define MOUSEKEY_WHEEL_BASE_MOVEMENTS 48 +# endif +# ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS +# define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 +# endif +# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS +# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 +# endif +#endif + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_LIMIT_VAL) +# if defined(OLED_ENABLE) +# define RGBLIGHT_LIMIT_VAL 100 +# else +# define RGBLIGHT_LIMIT_VAL 150 +# endif +#endif + +#if !defined(OLED_BRIGHTNESS) +# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) +# define OLED_BRIGHTNESS 80 +# else +# define OLED_BRIGHTNESS 150 +# endif +#endif diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c index 3ae74be47f..7ded835a6e 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c @@ -15,47 +15,48 @@ */ #include "tractyl_manuform.h" -#ifdef POINTING_DEVICE_ENABLE -# include "pointing_device.h" -#endif #include "transactions.h" #include #ifdef CONSOLE_ENABLE # include "print.h" -#endif // CONSOLE_ENABLE +#endif // CONSOLE_ENABLE #ifdef POINTING_DEVICE_ENABLE # ifndef CHARYBDIS_MINIMUM_DEFAULT_DPI # define CHARYBDIS_MINIMUM_DEFAULT_DPI 400 -# endif // CHARYBDIS_MINIMUM_DEFAULT_DPI +# endif // CHARYBDIS_MINIMUM_DEFAULT_DPI # ifndef CHARYBDIS_DEFAULT_DPI_CONFIG_STEP # define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 200 -# endif // CHARYBDIS_DEFAULT_DPI_CONFIG_STEP +# endif // CHARYBDIS_DEFAULT_DPI_CONFIG_STEP # ifndef CHARYBDIS_MINIMUM_SNIPING_DPI # define CHARYBDIS_MINIMUM_SNIPING_DPI 200 -# endif // CHARYBDIS_MINIMUM_SNIPER_MODE_DPI +# endif // CHARYBDIS_MINIMUM_SNIPER_MODE_DPI # ifndef CHARYBDIS_SNIPING_DPI_CONFIG_STEP # define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 -# endif // CHARYBDIS_SNIPING_DPI_CONFIG_STEP +# endif // CHARYBDIS_SNIPING_DPI_CONFIG_STEP // Fixed DPI for drag-scroll. # ifndef CHARYBDIS_DRAGSCROLL_DPI # define CHARYBDIS_DRAGSCROLL_DPI 100 -# endif // CHARYBDIS_DRAGSCROLL_DPI +# endif // CHARYBDIS_DRAGSCROLL_DPI # ifndef CHARYBDIS_DRAGSCROLL_BUFFER_SIZE # define CHARYBDIS_DRAGSCROLL_BUFFER_SIZE 6 -# endif // !CHARYBDIS_DRAGSCROLL_BUFFER_SIZE +# endif // !CHARYBDIS_DRAGSCROLL_BUFFER_SIZE + +# ifndef CHARYBDIS_POINTER_ACCELERATION_FACTOR +# define CHARYBDIS_POINTER_ACCELERATION_FACTOR 24 +# endif // !CHARYBDIS_POINTER_ACCELERATION_FACTOR typedef union { uint8_t raw; struct { - uint8_t pointer_default_dpi : 4; // 16 steps available. - uint8_t pointer_sniping_dpi : 2; // 4 steps available. + uint8_t pointer_default_dpi : 4; // 16 steps available. + uint8_t pointer_sniping_dpi : 2; // 4 steps available. bool is_dragscroll_enabled : 1; bool is_sniping_enabled : 1; } __attribute__((packed)); @@ -85,19 +86,13 @@ static void read_charybdis_config_from_eeprom(charybdis_config_t* config) { * resets these 2 values to `false` since it does not make sense to persist * these across reboots of the board. */ -static void write_charybdis_config_to_eeprom(charybdis_config_t* config) { - eeconfig_update_kb(config->raw); -} +static void write_charybdis_config_to_eeprom(charybdis_config_t* config) { eeconfig_update_kb(config->raw); } /** \brief Return the current value of the pointer's default DPI. */ -static uint16_t get_pointer_default_dpi(charybdis_config_t* config) { - return (uint16_t)config->pointer_default_dpi * CHARYBDIS_DEFAULT_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_DEFAULT_DPI; -} +static uint16_t get_pointer_default_dpi(charybdis_config_t* config) { return (uint16_t)config->pointer_default_dpi * CHARYBDIS_DEFAULT_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_DEFAULT_DPI; } /** \brief Return the current value of the pointer's sniper-mode DPI. */ -static uint16_t get_pointer_sniping_dpi(charybdis_config_t* config) { - return (uint16_t)config->pointer_sniping_dpi * CHARYBDIS_SNIPING_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_SNIPING_DPI; -} +static uint16_t get_pointer_sniping_dpi(charybdis_config_t* config) { return (uint16_t)config->pointer_sniping_dpi * CHARYBDIS_SNIPING_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_SNIPING_DPI; } /** \brief Set the appropriate DPI for the input config. */ static void maybe_update_pointing_device_cpi(charybdis_config_t* config) { @@ -132,54 +127,64 @@ static void step_pointer_sniping_dpi(charybdis_config_t* config, bool forward) { maybe_update_pointing_device_cpi(config); } -uint16_t charybdis_get_pointer_default_dpi(void) { - return get_pointer_default_dpi(&g_charybdis_config); -} +uint16_t charybdis_get_pointer_default_dpi(void) { return get_pointer_default_dpi(&g_charybdis_config); } -uint16_t charybdis_get_pointer_sniping_dpi(void) { - return get_pointer_sniping_dpi(&g_charybdis_config); -} +uint16_t charybdis_get_pointer_sniping_dpi(void) { return get_pointer_sniping_dpi(&g_charybdis_config); } -void charybdis_cycle_pointer_default_dpi_noeeprom(bool forward) { - step_pointer_default_dpi(&g_charybdis_config, forward); -} +void charybdis_cycle_pointer_default_dpi_noeeprom(bool forward) { step_pointer_default_dpi(&g_charybdis_config, forward); } void charybdis_cycle_pointer_default_dpi(bool forward) { step_pointer_default_dpi(&g_charybdis_config, forward); write_charybdis_config_to_eeprom(&g_charybdis_config); } -void charybdis_cycle_pointer_sniping_dpi_noeeprom(bool forward) { - step_pointer_sniping_dpi(&g_charybdis_config, forward); -} +void charybdis_cycle_pointer_sniping_dpi_noeeprom(bool forward) { step_pointer_sniping_dpi(&g_charybdis_config, forward); } void charybdis_cycle_pointer_sniping_dpi(bool forward) { step_pointer_sniping_dpi(&g_charybdis_config, forward); write_charybdis_config_to_eeprom(&g_charybdis_config); } -bool charybdis_get_pointer_sniping_enabled(void) { - return g_charybdis_config.is_sniping_enabled; -} +bool charybdis_get_pointer_sniping_enabled(void) { return g_charybdis_config.is_sniping_enabled; } void charybdis_set_pointer_sniping_enabled(bool enable) { g_charybdis_config.is_sniping_enabled = enable; maybe_update_pointing_device_cpi(&g_charybdis_config); } -bool charybdis_get_pointer_dragscroll_enabled(void) { - return g_charybdis_config.is_dragscroll_enabled; -} +bool charybdis_get_pointer_dragscroll_enabled(void) { return g_charybdis_config.is_dragscroll_enabled; } void charybdis_set_pointer_dragscroll_enabled(bool enable) { g_charybdis_config.is_dragscroll_enabled = enable; maybe_update_pointing_device_cpi(&g_charybdis_config); } +# ifndef CONSTRAIN_HID +# define CONSTRAIN_HID(value) ((value) < XY_REPORT_MIN ? XY_REPORT_MIN : ((value) > XY_REPORT_MAX ? XY_REPORT_MAX : (value))) +# endif // !CONSTRAIN_HID + +/** + * \brief Add optional acceleration effect. + * + * If `CHARYBDIS_ENABLE_POINTER_ACCELERATION` is defined, add a simple and naive + * acceleration effect to the provided value. Return the value unchanged + * otherwise. + */ +# ifndef DISPLACEMENT_WITH_ACCELERATION +# ifdef CHARYBDIS_POINTER_ACCELERATION_ENABLE +# define DISPLACEMENT_WITH_ACCELERATION(d) (CONSTRAIN_HID(d > 0 ? d * d / CHARYBDIS_POINTER_ACCELERATION_FACTOR + d : -d * d / CHARYBDIS_POINTER_ACCELERATION_FACTOR + d)) +# else // !CHARYBDIS_POINTER_ACCELERATION_ENABLE +# define DISPLACEMENT_WITH_ACCELERATION(d) (d) +# endif // CHARYBDIS_POINTER_ACCELERATION_ENABLE +# endif // !DISPLACEMENT_WITH_ACCELERATION + /** * \brief Augment the pointing device behavior. * - * Implement drag-scroll. + * Implement the Charybdis-specific features for pointing devices: + * - Drag-scroll + * - Sniping + * - Acceleration */ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { static int16_t scroll_buffer_x = 0; @@ -189,12 +194,12 @@ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { scroll_buffer_x -= mouse_report->x; # else scroll_buffer_x += mouse_report->x; -# endif // CHARYBDIS_DRAGSCROLL_REVERSE_X +# endif // CHARYBDIS_DRAGSCROLL_REVERSE_X # ifdef CHARYBDIS_DRAGSCROLL_REVERSE_Y scroll_buffer_y -= mouse_report->y; # else scroll_buffer_y += mouse_report->y; -# endif // CHARYBDIS_DRAGSCROLL_REVERSE_Y +# endif // CHARYBDIS_DRAGSCROLL_REVERSE_Y mouse_report->x = 0; mouse_report->y = 0; if (abs(scroll_buffer_x) > CHARYBDIS_DRAGSCROLL_BUFFER_SIZE) { @@ -205,14 +210,16 @@ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { mouse_report->v = scroll_buffer_y > 0 ? 1 : -1; scroll_buffer_y = 0; } + } else if (!g_charybdis_config.is_sniping_enabled) { + mouse_report->x = DISPLACEMENT_WITH_ACCELERATION(mouse_report->x); + mouse_report->y = DISPLACEMENT_WITH_ACCELERATION(mouse_report->y); } } report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { - if (is_keyboard_master()) { - pointing_device_task_charybdis(&mouse_report); - mouse_report = pointing_device_task_user(mouse_report); - } + pointing_device_task_charybdis(&mouse_report); + mouse_report = pointing_device_task_user(mouse_report); + return mouse_report; } @@ -223,9 +230,9 @@ static bool has_shift_mod(void) { return mod_config(get_mods()) & MOD_MASK_SHIFT; # else return mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; -# endif // NO_ACTION_ONESHOT +# endif // NO_ACTION_ONESHOT } -# endif // POINTING_DEVICE_ENABLE && !NO_CHARYBDIS_KEYCODES +# endif // POINTING_DEVICE_ENABLE && !NO_CHARYBDIS_KEYCODES /** * \brief Outputs the Charybdis configuration to console. @@ -240,16 +247,16 @@ static bool has_shift_mod(void) { */ __attribute__((unused)) static void debug_charybdis_config_to_console(charybdis_config_t* config) { # ifdef CONSOLE_ENABLE - dprintf("(charybdis) process_record_kb: config = {\n" - "\traw = 0x%X,\n" - "\t{\n" - "\t\tis_dragscroll_enabled=%u\n" - "\t\tis_sniping_enabled=%u\n" - "\t\tdefault_dpi=0x%X (%u)\n" - "\t\tsniping_dpi=0x%X (%u)\n" - "\t}\n" - "}\n", - config->raw, config->is_dragscroll_enabled, config->is_sniping_enabled, config->pointer_default_dpi, get_pointer_default_dpi(config), config->pointer_sniping_dpi, get_pointer_sniping_dpi(config)); + IGNORE_FORMAT_WARNING(dprintf("(charybdis) process_record_kb: config = {\n" + "\traw = 0x%04X,\n" + "\t{\n" + "\t\tis_dragscroll_enabled=%b\n" + "\t\tis_sniping_enabled=%b\n" + "\t\tdefault_dpi=0x%02X (%ld)\n" + "\t\tsniping_dpi=0x%01X (%ld)\n" + "\t}\n" + "}\n", + config->raw, config->is_dragscroll_enabled, config->is_sniping_enabled, config->pointer_default_dpi, get_pointer_default_dpi(config), config->pointer_sniping_dpi, get_pointer_sniping_dpi(config))); # endif // CONSOLE_ENABLE } @@ -300,7 +307,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { } break; } -# endif // !NO_CHARYBDIS_KEYCODES +# endif // !NO_CHARYBDIS_KEYCODES return true; } @@ -311,70 +318,22 @@ void eeconfig_init_kb(void) { eeconfig_init_user(); } -void matrix_power_up(void) { - pointing_device_task(); -} +void matrix_power_up(void) { pointing_device_task(); } void charybdis_config_sync_handler(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { if (initiator2target_buffer_size == sizeof(g_charybdis_config)) { memcpy(&g_charybdis_config, initiator2target_buffer, sizeof(g_charybdis_config)); } } -#endif // POINTING_DEVICE_ENABLE - -__attribute__((weak)) void user_button_init(void) { -#ifdef USER_BUTTON_PIN - gpio_set_pin_input_high(USER_BUTTON_PIN); -#endif // USER_BUTTON_PIN -} - -__attribute__((weak)) bool check_user_button_state(void) { -#ifdef USER_BUTTON_PIN - return !gpio_read_pin(USER_BUTTON_PIN); -#endif // USER_BUTTON_PIN - return false; -} void keyboard_post_init_kb(void) { -#ifdef DEBUG_LED_PIN - gpio_set_pin_output(DEBUG_LED_PIN); - gpio_write_pin_low(DEBUG_LED_PIN); -#endif // DEBUG_LED_PIN - -#ifdef POINTING_DEVICE_ENABLE maybe_update_pointing_device_cpi(&g_charybdis_config); transaction_register_rpc(RPC_ID_KB_CONFIG_SYNC, charybdis_config_sync_handler); -#endif // POINTING_DEVICE_ENABLE + keyboard_post_init_user(); } -void keyboard_pre_init_kb(void) { - user_button_init(); -#ifdef POINTING_DEVICE_ENABLE - read_charybdis_config_from_eeprom(&g_charybdis_config); -#endif // POINTING_DEVICE_ENAcBLE - keyboard_pre_init_user(); -} - -__attribute__((weak)) void execute_user_button_action(bool state) { - if (state) { - if (is_keyboard_master()) { - reset_keyboard(); - } else { - soft_reset_keyboard(); - } - } -} - void housekeeping_task_kb(void) { - static bool last_state = false; - bool state = check_user_button_state(); - if (state != last_state) { - last_state = state; - execute_user_button_action(state); - } - -#ifdef POINTING_DEVICE_ENABLE if (is_keyboard_master()) { // Keep track of the last state, so that we can tell if we need to propagate to slave static charybdis_config_t last_charybdis_config = {0}; @@ -398,50 +357,22 @@ void housekeeping_task_kb(void) { } } } -#endif // POINTING_DEVICE_ENABLE - // no need for user function, is called already + // no need for user function, is called already } -#ifdef USER_BUTTON_PIN -/** - * @brief Replace and add upon the default bootmagic reset function. - * In this case, we also check the user button. - * - * @return true if the user button is pressed, or normal bootmagic key position. - * @return false if the user button is not pressed and normal bootmagic key position is not pressed. - */ -__attribute__((weak)) bool bootmagic_should_reset(void) { - uint8_t row = BOOTMAGIC_ROW; - uint8_t col = BOOTMAGIC_COLUMN; +#endif // POINTING_DEVICE_ENABLE -# if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_ROW_RIGHT) && defined(BOOTMAGIC_COLUMN_RIGHT) - if (!is_keyboard_left()) { - row = BOOTMAGIC_ROW_RIGHT; - col = BOOTMAGIC_COLUMN_RIGHT; - } -# endif - - return matrix_get_row(row) & (1 << col) || check_user_button_state(); -} -#endif // USER_BUTTON_PIN - -bool shutdown_kb(bool jump_to_bootloader) { - if (!shutdown_user(jump_to_bootloader)) { - return false; - } -#ifdef RGB_MATRIX_ENABLE - void rgb_matrix_update_pwm_buffers(void); - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE - return true; +__attribute__((weak)) void matrix_init_sub_kb(void) {} +void matrix_init_kb(void) { +#ifdef POINTING_DEVICE_ENABLE + read_charybdis_config_from_eeprom(&g_charybdis_config); +#endif // POINTING_DEVICE_ENABLE + matrix_init_sub_kb(); + matrix_init_user(); } -#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE -bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) { - if (IS_KB_KEYCODE(keycode)) { - return true; - } - return is_mouse_record_user(keycode, record); +__attribute__((weak)) void matrix_scan_sub_kb(void) {} +void matrix_scan_kb(void) { + matrix_scan_sub_kb(); + matrix_scan_user(); } -#endif // POINTING_DEVICE_AUTO_MOUSE_ENABLE diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h index 0c473517c7..48020c89bd 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h @@ -28,15 +28,14 @@ enum charybdis_keycodes { DRAGSCROLL_MODE, DRAGSCROLL_MODE_TOGGLE, }; - -#define DPI_MOD POINTER_DEFAULT_DPI_FORWARD -#define DPI_RMOD POINTER_DEFAULT_DPI_REVERSE -#define S_D_MOD POINTER_SNIPING_DPI_FORWARD -#define S_D_RMOD POINTER_SNIPING_DPI_REVERSE -#define SNIPING SNIPING_MODE -#define SNP_TOG SNIPING_MODE_TOGGLE -#define DRGSCRL DRAGSCROLL_MODE -#define DRG_TOG DRAGSCROLL_MODE_TOGGLE +# define DPI_MOD POINTER_DEFAULT_DPI_FORWARD +# define DPI_RMOD POINTER_DEFAULT_DPI_REVERSE +# define S_D_MOD POINTER_SNIPING_DPI_FORWARD +# define S_D_RMOD POINTER_SNIPING_DPI_REVERSE +# define SNIPING SNIPING_MODE +# define SNP_TOG SNIPING_MODE_TOGGLE +# define DRGSCRL DRAGSCROLL_MODE +# define DRG_TOG DRAGSCROLL_MODE_TOGGLE #ifdef POINTING_DEVICE_ENABLE /** \brief Return the current DPI value for the pointer's default mode. */ @@ -104,4 +103,7 @@ bool charybdis_get_pointer_dragscroll_enabled(void); * are translated into horizontal and vertical scroll movements. */ void charybdis_set_pointer_dragscroll_enabled(bool enable); -#endif // POINTING_DEVICE_ENABLE +#endif // POINTING_DEVICE_ENABLE + +void matrix_init_sub_kb(void); +void matrix_scan_sub_kb(void); diff --git a/keyboards/handwired/traveller/keyboard.json b/keyboards/handwired/traveller/keyboard.json index 01919de563..e6941036f5 100644 --- a/keyboards/handwired/traveller/keyboard.json +++ b/keyboards/handwired/traveller/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Traveller", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -16,6 +17,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c index fe571c4a53..86ffee985d 100644 --- a/keyboards/handwired/traveller/keymaps/default/keymap.c +++ b/keyboards/handwired/traveller/keymaps/default/keymap.c @@ -90,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------------------------------------------------------------------------------------' */ [_NAV] = LAYOUT( - TG(_NAV), XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, RGUI(KC_RGHT), MS_WHLU, M_MUL, MS_UP, M_MUR, XXXXXXX, MS_ACL2, - _______, RGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RGHT, LCTL(KC_E), MS_BTN3, MS_LEFT, MS_UP, MS_RGHT, XXXXXXX, MS_ACL1, - _______, LCTL(KC_A), LGUI(KC_X), RGUI(KC_C), RGUI(KC_V), XXXXXXX, MS_WHLD, M_MDL, MS_DOWN, M_MDR, KC_UP, MS_ACL0, - _______, RGUI(KC_Z), _______, _______, _______, _______, KC_ENT, MS_BTN2, MS_BTN1, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + TG(_NAV), XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, RGUI(KC_RGHT), KC_WH_U, M_MUL, KC_MS_U, M_MUR, XXXXXXX, KC_ACL2, + _______, RGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RGHT, LCTL(KC_E), KC_BTN3, KC_MS_L, KC_MS_U, KC_MS_R, XXXXXXX, KC_ACL1, + _______, LCTL(KC_A), LGUI(KC_X), RGUI(KC_C), RGUI(KC_V), XXXXXXX, KC_WH_D, M_MDL, KC_MS_D, M_MDR, KC_UP, KC_ACL0, + _______, RGUI(KC_Z), _______, _______, _______, _______, KC_ENT, KC_BTN2, KC_BTN1, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT ), /* FKEYS - Funtion keys & mac stuff @@ -138,41 +138,41 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // from algernon's ErgoDox EZ layout, case M_MUL: if (record->event.pressed) { - mousekey_on(MS_UP); - mousekey_on(MS_LEFT); + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); } else { - mousekey_off(MS_UP); - mousekey_off(MS_LEFT); + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); } mousekey_send(); return false; case M_MUR: if (record->event.pressed) { - mousekey_on(MS_UP); - mousekey_on(MS_RGHT); + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); } else { - mousekey_off(MS_UP); - mousekey_off(MS_RGHT); + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); } mousekey_send(); return false; case M_MDL: if (record->event.pressed) { - mousekey_on(MS_DOWN); - mousekey_on(MS_LEFT); + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); } else { - mousekey_off(MS_DOWN); - mousekey_off(MS_LEFT); + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); } mousekey_send(); return false; case M_MDR: if (record->event.pressed) { - mousekey_on(MS_DOWN); - mousekey_on(MS_RGHT); + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); } else { - mousekey_off(MS_DOWN); - mousekey_off(MS_RGHT); + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); } mousekey_send(); return false; diff --git a/keyboards/handwired/tsubasa/keyboard.json b/keyboards/handwired/tsubasa/keyboard.json index b9ba281d06..31e6bb72cc 100644 --- a/keyboards/handwired/tsubasa/keyboard.json +++ b/keyboards/handwired/tsubasa/keyboard.json @@ -27,6 +27,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/tsubasa/keymaps/default/keymap.c b/keyboards/handwired/tsubasa/keymaps/default/keymap.c index 6d641a2b52..96b66d2a3f 100644 --- a/keyboards/handwired/tsubasa/keymaps/default/keymap.c +++ b/keyboards/handwired/tsubasa/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = 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, - _______, XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, UG_TOGG, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, - _______, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, UG_NEXT, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, UG_TOGG, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, UG_NEXT, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALU, UG_HUEU, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______ ) @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, - [_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD)} + [_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [_FN] = { ENCODER_CCW_CW( KC_VOLU, KC_VOLD)} }; #endif diff --git a/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c index 63bd0697fa..f250c3fc62 100644 --- a/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c +++ b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c @@ -23,6 +23,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LALT, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, MS_BTN1, MS_BTN3, MS_BTN2, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ) }; diff --git a/keyboards/handwired/twig/twig50/keyboard.json b/keyboards/handwired/twig/twig50/keyboard.json index 6fc90a97c1..f1cc2f5a96 100644 --- a/keyboards/handwired/twig/twig50/keyboard.json +++ b/keyboards/handwired/twig/twig50/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "twig50", "manufacturer": "Twig", + "url": "", "maintainer": "nodatk", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.2.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.2.1", + "force_nkro": true }, "tapping": { "term": 150 @@ -18,6 +15,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/twig/twig50/keymaps/default/keymap.c b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c index 25af2b6caa..954c8e5637 100644 --- a/keyboards/handwired/twig/twig50/keymaps/default/keymap.c +++ b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c @@ -42,12 +42,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSPC, KC_LCTL, KC_A, KC_S, KC_D, LT2_F, KC_G, KC_H, KC_J, KC_K, KC_L, RSF_SCL, LT3_QOT, KC_ENT, KC_LSFT, TG4, KC_Z, KC_X, KC_C, LT3_V, KC_B, LT2_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - MS_BTN1, MS_BTN2, KC_LALT, LGU_NCV, LT1_SPC, RCT_ESC, RGU_ENT, RAL_CNV, KC_INT1, KC_DEL, MU_TOGG + KC_BTN1, KC_BTN2, KC_LALT, LGU_NCV, LT1_SPC, RCT_ESC, RGU_ENT, RAL_CNV, KC_INT1, KC_DEL, MU_TOGG ), // Layer 1, Space-modifiers: Basic keys LAYOUT_diag_4x14( - QK_BOOT, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, MS_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS, + QK_BOOT, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, KC_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS, KC_TRNS, KC_AGIN, KC_FIND, KC_PGUP, KC_PGDN, KC_F19, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, SFT_7, SFT_2, KC_TRNS, KC_TRNS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_APP, KC_BSPC, KC_DEL, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCT_IN7, RGU_IN8, KC_TRNS, KC_INT2, KC_INT4, MU_NEXT @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Layer 3, V,:-modifiers: Functions and mouse keys LAYOUT_diag_4x14( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_MPLY, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, MS_BTN3, KC_TRNS, KC_TRNS, + KC_MPLY, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN2, MS_BTN1, MS_WHLD, MS_WHLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), // Layer 4, Toggles: One handed mode diff --git a/keyboards/handwired/unicomp_mini_m/keyboard.json b/keyboards/handwired/unicomp_mini_m/keyboard.json index 5fe592b79d..50ae033028 100644 --- a/keyboards/handwired/unicomp_mini_m/keyboard.json +++ b/keyboards/handwired/unicomp_mini_m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Unicomp Mini M", "manufacturer": "stevendlander", + "url": "", "maintainer": "stevendlander", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": false, "mousekey": false, diff --git a/keyboards/handwired/unk/keymaps/default/keymap.c b/keyboards/handwired/unk/keymaps/default/keymap.c index c0432dcddd..73d005983e 100644 --- a/keyboards/handwired/unk/keymaps/default/keymap.c +++ b/keyboards/handwired/unk/keymaps/default/keymap.c @@ -8,12 +8,14 @@ enum layer_names { _ADJUST, }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -63,3 +65,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + } + return true; +} diff --git a/keyboards/handwired/unk/rules.mk b/keyboards/handwired/unk/rules.mk new file mode 100644 index 0000000000..d4536e0cbb --- /dev/null +++ b/keyboards/handwired/unk/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = handwired/unk/rev1 diff --git a/keyboards/handwired/uthol/info.json b/keyboards/handwired/uthol/info.json index a5c1a0c0c9..7270e23172 100644 --- a/keyboards/handwired/uthol/info.json +++ b/keyboards/handwired/uthol/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Uthol", + "url": "", "maintainer": "uthol", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/uthol/rev1/keyboard.json b/keyboards/handwired/uthol/rev1/keyboard.json index 4c1be1de1e..dd5746e884 100644 --- a/keyboards/handwired/uthol/rev1/keyboard.json +++ b/keyboards/handwired/uthol/rev1/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/uthol/rev2/keyboard.json b/keyboards/handwired/uthol/rev2/keyboard.json index 81ec109b27..95ca5946a9 100644 --- a/keyboards/handwired/uthol/rev2/keyboard.json +++ b/keyboards/handwired/uthol/rev2/keyboard.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/videowriter/keyboard.json b/keyboards/handwired/videowriter/keyboard.json index bfac3b97ef..f82a0cd07e 100644 --- a/keyboards/handwired/videowriter/keyboard.json +++ b/keyboards/handwired/videowriter/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/videowriter/keymaps/default/keymap.c b/keyboards/handwired/videowriter/keymaps/default/keymap.c index 09cc4f6bac..d1c9e26655 100644 --- a/keyboards/handwired/videowriter/keymaps/default/keymap.c +++ b/keyboards/handwired/videowriter/keymaps/default/keymap.c @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, MS_WHLU, MS_BTN1, MS_UP, MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, MS_WHLD, MS_LEFT, MS_DOWN, MS_RGHT, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, + _______, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/videowriter/keymaps/oleg/keymap.c b/keyboards/handwired/videowriter/keymaps/oleg/keymap.c index b30ac967ea..e9adc11ad7 100644 --- a/keyboards/handwired/videowriter/keymaps/oleg/keymap.c +++ b/keyboards/handwired/videowriter/keymaps/oleg/keymap.c @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, KC_PAUS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU ,_______, _______, _______, KC_UP, _______, _______, _______, _______, KC_RCTL, - _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U ,_______, _______, _______, KC_UP, _______, _______, _______, _______, KC_RCTL, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/wakizashi40/keyboard.json b/keyboards/handwired/wakizashi40/keyboard.json index e1dc0d7648..495d9a0376 100644 --- a/keyboards/handwired/wakizashi40/keyboard.json +++ b/keyboards/handwired/wakizashi40/keyboard.json @@ -7,6 +7,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/woodpad/keyboard.json b/keyboards/handwired/woodpad/keyboard.json index baf30d0bdc..e6c07b2c42 100644 --- a/keyboards/handwired/woodpad/keyboard.json +++ b/keyboards/handwired/woodpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Woodpad", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/wulkan/keyboard.json b/keyboards/handwired/wulkan/keyboard.json index c79b71ce49..eceeb5c145 100644 --- a/keyboards/handwired/wulkan/keyboard.json +++ b/keyboards/handwired/wulkan/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "Handwired48Keys", "manufacturer": "Wulkan", + "url": "", "maintainer": "Napoleon Wulkan", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "matrix_pins": { "cols": ["B13", "B14", "B15", "B9", "B7", "B6", "B5", "B4", "B3", "B2", "B1", "B0"], diff --git a/keyboards/handwired/wulkan/keymaps/default/keymap.c b/keyboards/handwired/wulkan/keymaps/default/keymap.c index a065a94acf..e38c0322c9 100644 --- a/keyboards/handwired/wulkan/keymaps/default/keymap.c +++ b/keyboards/handwired/wulkan/keymaps/default/keymap.c @@ -95,9 +95,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, _______, _______, MS_WHLU, _______, _______, MS_UP, _______, _______, UP(SE_ARNG_LOW, SE_ARNG_HIGH), KC_DEL, - _______, _______, _______, _______, MS_WHLD, _______, MS_LEFT, MS_DOWN, MS_RGHT, UP(SE_ODIA_LOW, SE_ODIA_HIGH), UP(SE_ADIA_LOW, SE_ADIA_HIGH), _______, - _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, MS_BTN1, _______, MS_BTN2, _______, _______, _______, + _______, QK_BOOT, _______, _______, KC_WH_U, _______, _______, KC_MS_U, _______, _______, UP(SE_ARNG_LOW, SE_ARNG_HIGH), KC_DEL, + _______, _______, _______, _______, KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, UP(SE_ODIA_LOW, SE_ODIA_HIGH), UP(SE_ADIA_LOW, SE_ADIA_HIGH), _______, + _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_BTN1, _______, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/wwa/helios/keyboard.json b/keyboards/handwired/wwa/helios/keyboard.json index 8a77808e67..64b2010396 100644 --- a/keyboards/handwired/wwa/helios/keyboard.json +++ b/keyboards/handwired/wwa/helios/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP4", "GP5", "GP6"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/wwa/kepler/keyboard.json b/keyboards/handwired/wwa/kepler/keyboard.json index 843403bf89..f962d632b4 100644 --- a/keyboards/handwired/wwa/kepler/keyboard.json +++ b/keyboards/handwired/wwa/kepler/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP9", "GP10", "GP11"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/handwired/wwa/mercury/keyboard.json b/keyboards/handwired/wwa/mercury/keyboard.json index 8ed067f84d..bb89858da2 100644 --- a/keyboards/handwired/wwa/mercury/keyboard.json +++ b/keyboards/handwired/wwa/mercury/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP4", "GP5"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json index b922af10a2..9670f312a6 100644 --- a/keyboards/handwired/wwa/soyuz/keyboard.json +++ b/keyboards/handwired/wwa/soyuz/keyboard.json @@ -6,28 +6,23 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, - "nkro": true, - "encoder" : true + "nkro": true }, "matrix_pins": { "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"], "rows": ["GP7", "GP8", "GP9"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", "vid": "0x5757" }, - "encoder": { - "rotary": [ - {"pin_a": "GP16", "pin_b": "GP17"}, - {"pin_a": "GP18", "pin_b": "GP19"}, - {"pin_a": "GP20", "pin_b": "GP21"} - ] - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c index c1d75ffc54..af0eb592dc 100644 --- a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c +++ b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c @@ -3,17 +3,11 @@ #include QMK_KEYBOARD_H + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 ) -}; - - -#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 +}; \ No newline at end of file diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/wwa/soyuz/readme.md b/keyboards/handwired/wwa/soyuz/readme.md index 01a3b60dfe..69f8ef9d76 100644 --- a/keyboards/handwired/wwa/soyuz/readme.md +++ b/keyboards/handwired/wwa/soyuz/readme.md @@ -2,7 +2,7 @@ ![soyuz](https://i.imgur.com/KwwORGSh.jpeg) -21 Key, 3 Encoder +21 Key and 3 MIDI Potentiometers Macro Keyboard * Keyboard Maintainer: [spacehangover](https://github.com/spacehangover) * Hardware Supported: RP2040 Handwired diff --git a/keyboards/handwired/wwa/soyuzxl/keyboard.json b/keyboards/handwired/wwa/soyuzxl/keyboard.json index d666e798f4..9180344176 100644 --- a/keyboards/handwired/wwa/soyuzxl/keyboard.json +++ b/keyboards/handwired/wwa/soyuzxl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B5", "B2", "B3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0005", diff --git a/keyboards/handwired/xealous/config.h b/keyboards/handwired/xealous/config.h new file mode 100644 index 0000000000..6cc6b4d1de --- /dev/null +++ b/keyboards/handwired/xealous/config.h @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define USE_I2C +#define SCL_CLOCK 800000UL + +//#define DEBUG_MATRIX_SCAN_RATE //Use this to determine scan-rate. + +#ifdef AUDIO_ENABLE + #define AUDIO_PIN C6 + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define NO_MUSIC_MODE + #define TONE_QWERTY SONG(Q__NOTE(_E4)); + #define TONE_NUMPAD SONG(Q__NOTE(_D4)); +#endif diff --git a/keyboards/handwired/xealous/matrix.c b/keyboards/handwired/xealous/matrix.c new file mode 100644 index 0000000000..b8ae9fd738 --- /dev/null +++ b/keyboards/handwired/xealous/matrix.c @@ -0,0 +1,49 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "split_util.h" +#include "timer.h" + +// Copy this code to split_common/matrix.c, +// and call it instead of the unoptimized col_reader. Scan-rate jumps from 1200->1920 +// Also remove the sleep_us(30), not necessary for this keyboard. +// In usb_descriptor.c, set .PollingIntervalMS = 0x01 +#define ROW_SHIFTER ((uint8_t)1) +inline static matrix_row_t optimized_col_reader(void) { + //MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } + return (PINB & (1 << 6) ? 0 : (ROW_SHIFTER << 0)) | + (PINB & (1 << 2) ? 0 : (ROW_SHIFTER << 1)) | + (PINB & (1 << 3) ? 0 : (ROW_SHIFTER << 2)) | + (PINB & (1 << 1) ? 0 : (ROW_SHIFTER << 3)) | + (PINF & (1 << 7) ? 0 : (ROW_SHIFTER << 4)) | + (PINF & (1 << 6) ? 0 : (ROW_SHIFTER << 5)) | + (PINF & (1 << 5) ? 0 : (ROW_SHIFTER << 6)) | + (PINF & (1 << 4) ? 0 : (ROW_SHIFTER << 7)); +} + + diff --git a/keyboards/handwired/xealous/rev1/config.h b/keyboards/handwired/xealous/rev1/config.h index 2ea66a692c..49be10cce4 100644 --- a/keyboards/handwired/xealous/rev1/config.h +++ b/keyboards/handwired/xealous/rev1/config.h @@ -18,19 +18,6 @@ along with this program. If not, see . #pragma once -#define USE_I2C -#define SCL_CLOCK 800000UL - -//#define DEBUG_MATRIX_SCAN_RATE //Use this to determine scan-rate. - -#ifdef AUDIO_ENABLE - #define AUDIO_PIN C6 - #define STARTUP_SONG SONG(STARTUP_SOUND) - #define NO_MUSIC_MODE - #define TONE_QWERTY SONG(Q__NOTE(_E4)); - #define TONE_NUMPAD SONG(Q__NOTE(_D4)); -#endif - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/xealous/rev1/keyboard.json b/keyboards/handwired/xealous/rev1/keyboard.json index ac7b27208f..9f926a3602 100644 --- a/keyboards/handwired/xealous/rev1/keyboard.json +++ b/keyboards/handwired/xealous/rev1/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "XeaL60", "manufacturer": "XeaLouS", + "url": "", "maintainer": "alex-ong", "usb": { "vid": "0x4131", "pid": "0x5141", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "build": { "debounce_type": "sym_eager_pk" diff --git a/keyboards/handwired/xealous/rules.mk b/keyboards/handwired/xealous/rules.mk new file mode 100644 index 0000000000..4a97d066df --- /dev/null +++ b/keyboards/handwired/xealous/rules.mk @@ -0,0 +1,3 @@ +SRC += matrix.c + +DEFAULT_FOLDER = handwired/xealous/rev1 diff --git a/keyboards/handwired/yodadistro/macro/keyboard.json b/keyboards/handwired/yodadistro/macro/keyboard.json deleted file mode 100644 index f0a03453b4..0000000000 --- a/keyboards/handwired/yodadistro/macro/keyboard.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "manufacturer": "Raspberry Pi", - "keyboard_name": "KBP 8-Key Macro Pad", - "maintainer": "yodadistro", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "matrix_pins": { - "direct": [ - ["GP3", "GP5", "GP7", "GP9"], - ["GP2", "GP4", "GP6", "GP8"] - ] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x2044", - "vid": "0x1209" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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} - ] - } - } -} diff --git a/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json b/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json deleted file mode 100644 index 5f5ccb88b0..0000000000 --- a/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "keyboard": "handwired/yodadistro/macro", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_A", "KC_B", "KC_C", "KC_D", - "KC_E", "KC_F", "KC_G", "KC_H" - ] - ] -} diff --git a/keyboards/handwired/yodadistro/macro/readme.md b/keyboards/handwired/yodadistro/macro/readme.md deleted file mode 100644 index ceda19acba..0000000000 --- a/keyboards/handwired/yodadistro/macro/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Yoda Distro - -![YodaDistro](https://i.imgur.com/W2xnKjF.jpeg) - -Scratch made direct wire pin 8-Key (4x2) Macro Pad using a Raspberry Pi Pico (2040). - -* Keyboard Maintainer: [YodaDistro](https://github.com/YodaDistro) -* Hardware Supported: Raspberry Pi Pico (2040) -* Hardware Availability: 3D Printed Design (https://github.com/YodaDistro/MacroPad) - -Make example for this keyboard (after setting up your build environment): - - make handwired/yodadistro/macro:default - -Flashing example for this keyboard: - - make handwired/yodadistro/macro: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 - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/z150/keyboard.json b/keyboards/handwired/z150/keyboard.json index 57d460da89..38c92a6537 100644 --- a/keyboards/handwired/z150/keyboard.json +++ b/keyboards/handwired/z150/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Z150", "manufacturer": "ALPS", + "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/zergo/keyboard.json b/keyboards/handwired/zergo/keyboard.json index 44bd80c0cd..7ee2cd4774 100644 --- a/keyboards/handwired/zergo/keyboard.json +++ b/keyboards/handwired/zergo/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/zeropad/keyboard.json b/keyboards/handwired/zeropad/keyboard.json deleted file mode 100644 index 40bf6c8c2a..0000000000 --- a/keyboards/handwired/zeropad/keyboard.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "manufacturer": "Leon Sieber", - "keyboard_name": "ZeroPad", - "maintainer": "diffrentGuesser", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D1", "D0", "D4"], - "rows": ["C6", "D7", "E6"], - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0x5A50" - }, - "community_layouts": [ "ortho_3x3" ], - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/handwired/zeropad/keymaps/default/keymap.c b/keyboards/handwired/zeropad/keymaps/default/keymap.c deleted file mode 100644 index aa674bcbda..0000000000 --- a/keyboards/handwired/zeropad/keymaps/default/keymap.c +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ortho_3x3( - KC_1, KC_2, KC_3, - KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9 - ) -}; diff --git a/keyboards/handwired/zeropad/readme.md b/keyboards/handwired/zeropad/readme.md deleted file mode 100644 index c021d7dc05..0000000000 --- a/keyboards/handwired/zeropad/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# ZeroPad - -![ZeroPad](https://i.imgur.com/KBkI4q1.jpeg) - -This keyboard is inspired by the scotto9 from Joe Scotto. This keyboard is compatible with via and has 4 layers of keybinds (24 keybinds - 4x8 + 1 per layer for changing the layer). - -* Keyboard Maintainer: [Leon Sieber](https://github.com/diffrentGuesser) -* Hardware Supported: Pro Micro, 3 pin switches -* Hardware Availability: [Pro Micro](https://de.aliexpress.com/item/32846843498.html?spm=a2g0o.cart.0.0.146d4ae4kCjqDY&mp=1&gatewayAdapt=glo2deu), [switches](https://de.aliexpress.com/item/1005007135709029.html?spm=a2g0o.cart.0.0.146d4ae4kCjqDY&mp=1&gatewayAdapt=glo2deu) - -Make example for this keyboard (after setting up your build environment): - - make handwired/zeropad:default - -Flashing example for this keyboard: - - make handwired/zeropad: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 top left key) and plug in the keyboard -* **Physical reset**: Short the GND and the RST pins on the Pro Micro. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json index b21bd9af91..5d4ca7a254 100644 --- a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json +++ b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -139,5 +141,6 @@ } }, "manufacturer": "Coom", - "maintainer": "coomstoolbox" + "maintainer": "coomstoolbox", + "url": "" } diff --git a/keyboards/hardlineworks/otd_plus/keyboard.json b/keyboards/hardlineworks/otd_plus/keyboard.json index c7bb0b0223..e0afc03893 100644 --- a/keyboards/hardlineworks/otd_plus/keyboard.json +++ b/keyboards/hardlineworks/otd_plus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OTD-PLUS", "manufacturer": "Hardlineworks", + "url": "", "maintainer": "Hardlineworks", "usb": { "vid": "0x484C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/hardwareabstraction/handwire/handwire.c b/keyboards/hardwareabstraction/handwire/handwire.c index 758cfd8885..b31c0a7091 100644 --- a/keyboards/hardwareabstraction/handwire/handwire.c +++ b/keyboards/hardwareabstraction/handwire/handwire.c @@ -132,7 +132,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // Variables for display layer and haptic status on OLED static uint8_t layer = 0; -extern haptic_config_t haptic_config; +haptic_config_t haptic_config; // Variables for frames, timer, and sleep uint32_t anim_timer = 0; diff --git a/keyboards/hardwareabstraction/handwire/keyboard.json b/keyboards/hardwareabstraction/handwire/keyboard.json index 2bc112f97a..225712dcc4 100644 --- a/keyboards/hardwareabstraction/handwire/keyboard.json +++ b/keyboards/hardwareabstraction/handwire/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/haverworks/theseus75/config.h b/keyboards/haverworks/theseus75/config.h deleted file mode 100644 index 7627837e76..0000000000 --- a/keyboards/haverworks/theseus75/config.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler), Alex Havermale (@haversnail) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for configuring the serial driver for split comms (see https://docs.qmk.fm/drivers/serial) */ -#define SERIAL_USART_DRIVER SD3 // USART 3 - -/* Defines for required pins */ -#define ID_PIN A13 -#define USBSW_PIN A14 // Switches the hub input/output with the MUXes -#define PSW_PIN A15 // Turns the power routing to the USB-C port on/off -#define BUS_B_PIN C13 // Tells the hub to be bus-powered or self-powered (which in turn tells the clients to use 100 mA or 500 mA) -#define USB_VBUS_PIN C15 // Only the master side will have VBUS present at power-up (used to determine master/slave) -#define USBPD_1_PIN F0 -#define USBPD_2_PIN F1 - -/* Additional defines for managing power and state scross split */ -#define DISABLE_BUS_POWER_MODE TRUE -#define KB_STATE_SYNC_INTERVAL 500 -#define USBPD_ALLOWANCE_CHECK_INTERVAL 100 -#define SPLIT_TRANSACTION_IDS_KB RPC_ID_KB_STATE - -/* Defines for the RGB matrix */ -#define INDICATOR_MAX_BRIGHTNESS 255 -#define CAPS_LOCK_LED_INDEX 0 // LED1 on PCB -#define WS2812_EXTERNAL_PULLUP -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 4 -#define WS2812_PWM_PAL_MODE 10 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_DMA_CHANNEL 2 -#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/haverworks/theseus75/halconf.h b/keyboards/haverworks/theseus75/halconf.h deleted file mode 100644 index e7da7271bb..0000000000 --- a/keyboards/haverworks/theseus75/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/haverworks/theseus75/keyboard.json b/keyboards/haverworks/theseus75/keyboard.json deleted file mode 100644 index 60f791ae9d..0000000000 --- a/keyboards/haverworks/theseus75/keyboard.json +++ /dev/null @@ -1,456 +0,0 @@ -{ - "manufacturer": "Haverworks", - "keyboard_name": "Theseus75", - "maintainer": "ebastler", - "bootloader": "stm32-dfu", - "bootmagic": { - "matrix": [0, 1] - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A8", "pin_b": "C6", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B11", "C14", "B6", "B5", "B4", "B3", "C11", "C10", null], - "rows": ["A9", "A10", "B15", "B12", "B13", "B14"] - }, - "processor": "STM32G431", - "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, - "dual_beacon": true, - "gradient_left_right": true, - "gradient_up_down": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "jellybean_raindrops": true, - "pixel_flow": true, - "pixel_fractal": true, - "pixel_rain": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "rainbow_pinwheels": true, - "raindrops": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [3, 1], "x": 32, "y": 34, "flags": 8}, - {"x": 28, "y": 1, "flags": 2}, - {"x": 43, "y": 1, "flags": 2}, - {"x": 56, "y": 1, "flags": 2}, - {"x": 69, "y": 1, "flags": 2}, - {"x": 84, "y": 1, "flags": 2}, - {"x": 99, "y": 1, "flags": 2}, - {"x": 97, "y": 8, "flags": 2}, - {"x": 91, "y": 19, "flags": 2}, - {"x": 91, "y": 31, "flags": 2}, - {"x": 92, "y": 42, "flags": 2}, - {"x": 96, "y": 53, "flags": 2}, - {"x": 97, "y": 64, "flags": 2}, - {"x": 81, "y": 64, "flags": 2}, - {"x": 66, "y": 64, "flags": 2}, - {"x": 53, "y": 64, "flags": 2}, - {"x": 40, "y": 64, "flags": 2}, - {"x": 26, "y": 64, "flags": 2}, - {"x": 13, "y": 64, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 0, "y": 53, "flags": 2}, - {"x": 0, "y": 42, "flags": 2}, - {"x": 0, "y": 31, "flags": 2}, - {"x": 0, "y": 19, "flags": 2}, - {"x": 0, "y": 9, "flags": 2}, - {"x": 0, "y": 1, "flags": 2}, - {"x": 13, "y": 1, "flags": 2}, - {"x": 224, "y": 31, "flags": 2}, - {"x": 224, "y": 42, "flags": 2}, - {"x": 224, "y": 53, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 209, "y": 64, "flags": 2}, - {"x": 194, "y": 64, "flags": 2}, - {"x": 180, "y": 64, "flags": 2}, - {"x": 165, "y": 64, "flags": 2}, - {"x": 152, "y": 64, "flags": 2}, - {"x": 138, "y": 64, "flags": 2}, - {"x": 124, "y": 64, "flags": 2}, - {"x": 124, "y": 53, "flags": 2}, - {"x": 119, "y": 42, "flags": 2}, - {"x": 114, "y": 31, "flags": 2}, - {"x": 117, "y": 19, "flags": 2}, - {"x": 122, "y": 8, "flags": 2}, - {"x": 126, "y": 1, "flags": 2}, - {"x": 140, "y": 1, "flags": 2}, - {"x": 155, "y": 1, "flags": 2}, - {"x": 168, "y": 1, "flags": 2}, - {"x": 181, "y": 1, "flags": 2}, - {"x": 196, "y": 1, "flags": 2}, - {"x": 211, "y": 1, "flags": 2}, - {"x": 224, "y": 1, "flags": 2}, - {"x": 224, "y": 8, "flags": 2}, - {"x": 224, "y": 19, "flags": 2} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [27, 26] - }, - "split": { - "bootmagic": { - "matrix": [6, 6] - }, - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B4", "resolution": 2} - ] - } - }, - "handedness": { - "pin": "B9" - }, - "matrix_pins": { - "right": { - "cols": ["A10", "A9", "A8", "C6", "B15", "B14", "B13", "B12", "C14"], - "rows": ["B3", "C10", "C11", "A1", "A0", "B6"] - } - }, - "serial": { - "driver": "usart", - "pin": "B10" - }, - "soft_serial_speed": 0, - "transport": { - "sync": { - "indicators": true, - "layer_state": true, - "matrix_state": true - }, - "watchdog": true - } - }, - "url": "https://haver.works/theseus75", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x6877" - }, - "ws2812": { - "driver": "pwm", - "pin": "B7" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "LENC", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "ESC", "matrix": [0, 1], "x": 1.5, "y": 0}, - {"label": "F1", "matrix": [0, 2], "x": 2.75, "y": 0}, - {"label": "F2", "matrix": [0, 3], "x": 3.75, "y": 0}, - {"label": "F3", "matrix": [0, 4], "x": 4.75, "y": 0}, - {"label": "F4", "matrix": [0, 5], "x": 5.75, "y": 0}, - {"label": "F5", "matrix": [0, 6], "x": 7, "y": 0}, - {"label": "F6", "matrix": [0, 7], "x": 8, "y": 0}, - {"label": "F7", "matrix": [6, 0], "x": 10, "y": 0}, - {"label": "F8", "matrix": [6, 1], "x": 11, "y": 0}, - {"label": "F9", "matrix": [6, 2], "x": 12.25, "y": 0}, - {"label": "F10", "matrix": [6, 3], "x": 13.25, "y": 0}, - {"label": "F11", "matrix": [6, 4], "x": 14.25, "y": 0}, - {"label": "F12", "matrix": [6, 5], "x": 15.25, "y": 0}, - {"label": "F13", "matrix": [6, 6], "x": 16.5, "y": 0}, - {"label": "RENC", "matrix": [6, 8], "x": 18, "y": 0}, - {"label": "M1", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "GRAV", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "2", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "3", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "4", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "5", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "6", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "7", "matrix": [7, 0], "x": 9.5, "y": 1}, - {"label": "8", "matrix": [7, 1], "x": 10.5, "y": 1}, - {"label": "9", "matrix": [7, 2], "x": 11.5, "y": 1}, - {"label": "0", "matrix": [7, 3], "x": 12.5, "y": 1}, - {"label": "-", "matrix": [7, 4], "x": 13.5, "y": 1}, - {"label": "=", "matrix": [7, 5], "x": 14.5, "y": 1}, - {"label": "Back", "matrix": [7, 6], "x": 15.5, "y": 1}, - {"label": "Del", "matrix": [7, 7], "x": 16.5, "y": 1}, - {"label": "Home", "matrix": [7, 8], "x": 18, "y": 1}, - {"label": "M2", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Tab", "matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.5}, - {"label": "Q", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "W", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "E", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "R", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "T", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": "Y", "matrix": [8, 0], "x": 9, "y": 2}, - {"label": "U", "matrix": [8, 1], "x": 10, "y": 2}, - {"label": "I", "matrix": [8, 2], "x": 11, "y": 2}, - {"label": "O", "matrix": [8, 3], "x": 12, "y": 2}, - {"label": "P", "matrix": [8, 4], "x": 13, "y": 2}, - {"label": "[", "matrix": [8, 5], "x": 14, "y": 2}, - {"label": "]", "matrix": [8, 6], "x": 15, "y": 2}, - {"label": "BSLS", "matrix": [8, 7], "x": 16, "y": 2, "w": 1.5}, - {"label": "PgUp", "matrix": [8, 8], "x": 18, "y": 2}, - {"label": "M3", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Caps", "matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.75}, - {"label": "A", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "S", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "D", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "F", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "G", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "H", "matrix": [9, 0], "x": 9.25, "y": 3}, - {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3}, - {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3}, - {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3}, - {"label": ";", "matrix": [9, 4], "x": 13.25, "y": 3}, - {"label": "'", "matrix": [9, 5], "x": 14.25, "y": 3}, - {"label": "NUHS", "matrix": [9, 6], "x": 15.25, "y": 3}, - {"label": "Enter", "matrix": [9, 7], "x": 16.25, "y": 3, "w": 1.25}, - {"label": "PgDn", "matrix": [9, 8], "x": 18, "y": 3}, - {"label": "M4", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Shift", "matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.25}, - {"label": "NUBS", "matrix": [4, 2], "x": 2.75, "y": 4}, - {"label": "Z", "matrix": [4, 3], "x": 3.75, "y": 4}, - {"label": "X", "matrix": [4, 4], "x": 4.75, "y": 4}, - {"label": "C", "matrix": [4, 5], "x": 5.75, "y": 4}, - {"label": "V", "matrix": [4, 6], "x": 6.75, "y": 4}, - {"label": "B", "matrix": [4, 7], "x": 7.75, "y": 4}, - {"label": "N", "matrix": [10, 0], "x": 9.75, "y": 4}, - {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4}, - {"label": ",", "matrix": [10, 2], "x": 11.75, "y": 4}, - {"label": ".", "matrix": [10, 3], "x": 12.75, "y": 4}, - {"label": "/", "matrix": [10, 4], "x": 13.75, "y": 4}, - {"label": "Shift", "matrix": [10, 6], "x": 14.75, "y": 4, "w": 1.75}, - {"label": "Up", "matrix": [10, 7], "x": 16.75, "y": 4}, - {"label": "End", "matrix": [10, 8], "x": 18, "y": 4}, - {"label": "M5", "matrix": [5, 0], "x": 0, "y": 5}, - {"label": "Ctrl", "matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.25}, - {"label": "Gui", "matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.25}, - {"label": "Alt", "matrix": [5, 3], "x": 4, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [5, 4], "x": 5.25, "y": 5, "w": 2.25}, - {"label": "FN", "matrix": [5, 7], "x": 7.5, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [11, 1], "x": 9.75, "y": 5, "w": 2.75}, - {"label": "Alt", "matrix": [11, 3], "x": 12.5, "y": 5}, - {"label": "Gui", "matrix": [11, 4], "x": 13.5, "y": 5}, - {"label": "Ctrl", "matrix": [11, 5], "x": 14.5, "y": 5}, - {"label": "Left", "matrix": [11, 6], "x": 15.75, "y": 5}, - {"label": "Down", "matrix": [11, 7], "x": 16.75, "y": 5}, - {"label": "Rght", "matrix": [11, 8], "x": 17.75, "y": 5} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"label": "LENC", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "ESC", "matrix": [0, 1], "x": 1.5, "y": 0}, - {"label": "F1", "matrix": [0, 2], "x": 2.75, "y": 0}, - {"label": "F2", "matrix": [0, 3], "x": 3.75, "y": 0}, - {"label": "F3", "matrix": [0, 4], "x": 4.75, "y": 0}, - {"label": "F4", "matrix": [0, 5], "x": 5.75, "y": 0}, - {"label": "F5", "matrix": [0, 6], "x": 7, "y": 0}, - {"label": "F6", "matrix": [0, 7], "x": 8, "y": 0}, - {"label": "F7", "matrix": [6, 0], "x": 10, "y": 0}, - {"label": "F8", "matrix": [6, 1], "x": 11, "y": 0}, - {"label": "F9", "matrix": [6, 2], "x": 12.25, "y": 0}, - {"label": "F10", "matrix": [6, 3], "x": 13.25, "y": 0}, - {"label": "F11", "matrix": [6, 4], "x": 14.25, "y": 0}, - {"label": "F12", "matrix": [6, 5], "x": 15.25, "y": 0}, - {"label": "F13", "matrix": [6, 6], "x": 16.5, "y": 0}, - {"label": "RENC", "matrix": [6, 8], "x": 18, "y": 0}, - {"label": "M1", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "GRAV", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "2", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "3", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "4", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "5", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "6", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "7", "matrix": [7, 0], "x": 9.5, "y": 1}, - {"label": "8", "matrix": [7, 1], "x": 10.5, "y": 1}, - {"label": "9", "matrix": [7, 2], "x": 11.5, "y": 1}, - {"label": "0", "matrix": [7, 3], "x": 12.5, "y": 1}, - {"label": "-", "matrix": [7, 4], "x": 13.5, "y": 1}, - {"label": "=", "matrix": [7, 5], "x": 14.5, "y": 1}, - {"label": "Back", "matrix": [7, 6], "x": 15.5, "y": 1, "w": 2}, - {"label": "Home", "matrix": [7, 8], "x": 18, "y": 1}, - {"label": "M2", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Tab", "matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.5}, - {"label": "Q", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "W", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "E", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "R", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "T", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": "Y", "matrix": [8, 0], "x": 9, "y": 2}, - {"label": "U", "matrix": [8, 1], "x": 10, "y": 2}, - {"label": "I", "matrix": [8, 2], "x": 11, "y": 2}, - {"label": "O", "matrix": [8, 3], "x": 12, "y": 2}, - {"label": "P", "matrix": [8, 4], "x": 13, "y": 2}, - {"label": "[", "matrix": [8, 5], "x": 14, "y": 2}, - {"label": "]", "matrix": [8, 6], "x": 15, "y": 2}, - {"label": "BSLS", "matrix": [8, 7], "x": 16, "y": 2, "w": 1.5}, - {"label": "PgUp", "matrix": [8, 8], "x": 18, "y": 2}, - {"label": "M3", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Caps", "matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.75}, - {"label": "A", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "S", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "D", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "F", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "G", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "H", "matrix": [9, 0], "x": 9.25, "y": 3}, - {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3}, - {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3}, - {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3}, - {"label": ";", "matrix": [9, 4], "x": 13.25, "y": 3}, - {"label": "'", "matrix": [9, 5], "x": 14.25, "y": 3}, - {"label": "Enter", "matrix": [9, 7], "x": 15.25, "y": 3, "w": 2.25}, - {"label": "PgDn", "matrix": [9, 8], "x": 18, "y": 3}, - {"label": "M4", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Shift", "matrix": [4, 1], "x": 1.5, "y": 4, "w": 2.25}, - {"label": "Z", "matrix": [4, 3], "x": 3.75, "y": 4}, - {"label": "X", "matrix": [4, 4], "x": 4.75, "y": 4}, - {"label": "C", "matrix": [4, 5], "x": 5.75, "y": 4}, - {"label": "V", "matrix": [4, 6], "x": 6.75, "y": 4}, - {"label": "B", "matrix": [4, 7], "x": 7.75, "y": 4}, - {"label": "N", "matrix": [10, 0], "x": 9.75, "y": 4}, - {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4}, - {"label": ",", "matrix": [10, 2], "x": 11.75, "y": 4}, - {"label": ".", "matrix": [10, 3], "x": 12.75, "y": 4}, - {"label": "/", "matrix": [10, 4], "x": 13.75, "y": 4}, - {"label": "Shift", "matrix": [10, 6], "x": 14.75, "y": 4, "w": 1.75}, - {"label": "Up", "matrix": [10, 7], "x": 16.75, "y": 4}, - {"label": "End", "matrix": [10, 8], "x": 18, "y": 4}, - {"label": "M5", "matrix": [5, 0], "x": 0, "y": 5}, - {"label": "Ctrl", "matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.25}, - {"label": "Gui", "matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.25}, - {"label": "Alt", "matrix": [5, 3], "x": 4, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [5, 4], "x": 5.25, "y": 5, "w": 2.25}, - {"label": "FN", "matrix": [5, 7], "x": 7.5, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [11, 1], "x": 9.75, "y": 5, "w": 2.75}, - {"label": "Alt", "matrix": [11, 3], "x": 12.5, "y": 5}, - {"label": "Gui", "matrix": [11, 4], "x": 13.5, "y": 5}, - {"label": "Ctrl", "matrix": [11, 5], "x": 14.5, "y": 5}, - {"label": "Left", "matrix": [11, 6], "x": 15.75, "y": 5}, - {"label": "Down", "matrix": [11, 7], "x": 16.75, "y": 5}, - {"label": "Rght", "matrix": [11, 8], "x": 17.75, "y": 5} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"label": "LENC", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "ESC", "matrix": [0, 1], "x": 1.5, "y": 0}, - {"label": "F1", "matrix": [0, 2], "x": 2.75, "y": 0}, - {"label": "F2", "matrix": [0, 3], "x": 3.75, "y": 0}, - {"label": "F3", "matrix": [0, 4], "x": 4.75, "y": 0}, - {"label": "F4", "matrix": [0, 5], "x": 5.75, "y": 0}, - {"label": "F5", "matrix": [0, 6], "x": 7, "y": 0}, - {"label": "F6", "matrix": [0, 7], "x": 8, "y": 0}, - {"label": "F7", "matrix": [6, 0], "x": 10, "y": 0}, - {"label": "F8", "matrix": [6, 1], "x": 11, "y": 0}, - {"label": "F9", "matrix": [6, 2], "x": 12.25, "y": 0}, - {"label": "F10", "matrix": [6, 3], "x": 13.25, "y": 0}, - {"label": "F11", "matrix": [6, 4], "x": 14.25, "y": 0}, - {"label": "F12", "matrix": [6, 5], "x": 15.25, "y": 0}, - {"label": "F13", "matrix": [6, 6], "x": 16.5, "y": 0}, - {"label": "RENC", "matrix": [6, 8], "x": 18, "y": 0}, - {"label": "M1", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "GRAV", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "2", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "3", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "4", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "5", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "6", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "7", "matrix": [7, 0], "x": 9.5, "y": 1}, - {"label": "8", "matrix": [7, 1], "x": 10.5, "y": 1}, - {"label": "9", "matrix": [7, 2], "x": 11.5, "y": 1}, - {"label": "0", "matrix": [7, 3], "x": 12.5, "y": 1}, - {"label": "-", "matrix": [7, 4], "x": 13.5, "y": 1}, - {"label": "=", "matrix": [7, 5], "x": 14.5, "y": 1}, - {"label": "Back", "matrix": [7, 6], "x": 15.5, "y": 1, "w": 2}, - {"label": "Home", "matrix": [7, 8], "x": 18, "y": 1}, - {"label": "M2", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Tab", "matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.5}, - {"label": "Q", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "W", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "E", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "R", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "T", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": "Y", "matrix": [8, 0], "x": 9, "y": 2}, - {"label": "U", "matrix": [8, 1], "x": 10, "y": 2}, - {"label": "I", "matrix": [8, 2], "x": 11, "y": 2}, - {"label": "O", "matrix": [8, 3], "x": 12, "y": 2}, - {"label": "P", "matrix": [8, 4], "x": 13, "y": 2}, - {"label": "[", "matrix": [8, 5], "x": 14, "y": 2}, - {"label": "]", "matrix": [8, 6], "x": 15, "y": 2}, - {"label": "PgUp", "matrix": [8, 8], "x": 18, "y": 2}, - {"label": "M3", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Caps", "matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.75}, - {"label": "A", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "S", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "D", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "F", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "G", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "H", "matrix": [9, 0], "x": 9.25, "y": 3}, - {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3}, - {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3}, - {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3}, - {"label": ";", "matrix": [9, 4], "x": 13.25, "y": 3}, - {"label": "'", "matrix": [9, 5], "x": 14.25, "y": 3}, - {"label": "NUHS", "matrix": [9, 6], "x": 15.25, "y": 3}, - {"label": "Enter", "matrix": [9, 7], "x": 16.25, "y": 2, "w": 1.25, "h": 2}, - {"label": "PgDn", "matrix": [9, 8], "x": 18, "y": 3}, - {"label": "M4", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "Shift", "matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.25}, - {"label": "NUBS", "matrix": [4, 2], "x": 2.75, "y": 4}, - {"label": "Z", "matrix": [4, 3], "x": 3.75, "y": 4}, - {"label": "X", "matrix": [4, 4], "x": 4.75, "y": 4}, - {"label": "C", "matrix": [4, 5], "x": 5.75, "y": 4}, - {"label": "V", "matrix": [4, 6], "x": 6.75, "y": 4}, - {"label": "B", "matrix": [4, 7], "x": 7.75, "y": 4}, - {"label": "N", "matrix": [10, 0], "x": 9.75, "y": 4}, - {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4}, - {"label": ",", "matrix": [10, 2], "x": 11.75, "y": 4}, - {"label": ".", "matrix": [10, 3], "x": 12.75, "y": 4}, - {"label": "/", "matrix": [10, 4], "x": 13.75, "y": 4}, - {"label": "Shift", "matrix": [10, 6], "x": 14.75, "y": 4, "w": 1.75}, - {"label": "Up", "matrix": [10, 7], "x": 16.75, "y": 4}, - {"label": "End", "matrix": [10, 8], "x": 18, "y": 4}, - {"label": "M5", "matrix": [5, 0], "x": 0, "y": 5}, - {"label": "Ctrl", "matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.25}, - {"label": "Gui", "matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.25}, - {"label": "Alt", "matrix": [5, 3], "x": 4, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [5, 4], "x": 5.25, "y": 5, "w": 2.25}, - {"label": "FN", "matrix": [5, 7], "x": 7.5, "y": 5, "w": 1.25}, - {"label": "Space", "matrix": [11, 1], "x": 9.75, "y": 5, "w": 2.75}, - {"label": "Alt", "matrix": [11, 3], "x": 12.5, "y": 5}, - {"label": "Gui", "matrix": [11, 4], "x": 13.5, "y": 5}, - {"label": "Ctrl", "matrix": [11, 5], "x": 14.5, "y": 5}, - {"label": "Left", "matrix": [11, 6], "x": 15.75, "y": 5}, - {"label": "Down", "matrix": [11, 7], "x": 16.75, "y": 5}, - {"label": "Rght", "matrix": [11, 8], "x": 17.75, "y": 5} - ] - } - } -} diff --git a/keyboards/haverworks/theseus75/keymaps/ansi/keymap.c b/keyboards/haverworks/theseus75/keymaps/ansi/keymap.c deleted file mode 100644 index 25494f7e47..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/ansi/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler), Alex Havermale (@haversnail) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ansi( - RM_TOGG, 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_PSCR, KC_MUTE, - KC_F13, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_F14, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_F15, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_F16, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_F17, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_ansi( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, -}; -#endif diff --git a/keyboards/haverworks/theseus75/keymaps/ansi/rules.mk b/keyboards/haverworks/theseus75/keymaps/ansi/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/ansi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/haverworks/theseus75/keymaps/default/keymap.c b/keyboards/haverworks/theseus75/keymaps/default/keymap.c deleted file mode 100644 index 5e56d121eb..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/default/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler), Alex Havermale (@haversnail) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_all( - RM_TOGG, 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_PSCR, KC_MUTE, - KC_F13, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, - KC_F14, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_F15, 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_NUHS, KC_ENT, KC_PGDN, - KC_F16, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_F17, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, -}; -#endif diff --git a/keyboards/haverworks/theseus75/keymaps/default/rules.mk b/keyboards/haverworks/theseus75/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/haverworks/theseus75/keymaps/iso/keymap.c b/keyboards/haverworks/theseus75/keymaps/iso/keymap.c deleted file mode 100644 index d7487010ee..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/iso/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler), Alex Havermale (@haversnail) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_iso( - RM_TOGG, 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_PSCR, KC_MUTE, - KC_F13, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_F14, 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_PGUP, - KC_F15, 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_NUHS, KC_ENT, KC_PGDN, - KC_F16, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_F17, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_iso( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, -}; -#endif diff --git a/keyboards/haverworks/theseus75/keymaps/iso/rules.mk b/keyboards/haverworks/theseus75/keymaps/iso/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/haverworks/theseus75/keymaps/iso/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/haverworks/theseus75/mcuconf.h b/keyboards/haverworks/theseus75/mcuconf.h deleted file mode 100644 index a3dbdb4ba2..0000000000 --- a/keyboards/haverworks/theseus75/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART3, used for split comms */ -#undef STM32_SERIAL_USE_USART3 -#define STM32_SERIAL_USE_USART3 TRUE - -/* enable TIM3, used for Underglow PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/haverworks/theseus75/readme.md b/keyboards/haverworks/theseus75/readme.md deleted file mode 100644 index 7119f61a64..0000000000 --- a/keyboards/haverworks/theseus75/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Haverworks Theseus75 - -![Theseus75 v1 PCB](https://imgur.com/N81LsCO.png) - -The Theseus75 is a 75% row-staggered split keyboard with a macro column and rotary encoders on both sides. Each half features a dual-role USB-C port and integrated USB hub, allowing the unused port to act as a USB-C 2.0 High-Speed host for connecting a numpad, mouse, flash drive, security key, mobile phone, or similar device. - -> [!NOTE] -> Up to 5V at 1.5A can be supplied, depending on negotiations with the host. - -* Keyboard Maintainers: [Moritz Plattner](https://github.com/ebastler), [Alex Havermale](https://github.com/haversnail) -* Hardware Supported: Haverworks Theseus75 v1 PCBs (hot-swap and solder) -* Hardware Availability: [Group buy](https://haver.works/theseus75) - -Make example for this keyboard (after setting up your build environment): - - make haverworks/theseus75:default - -Flashing example for this keyboard: - - make haverworks/theseus75: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 two ways: - -* **Physical reset button**: Hold the Reset/Flash button on the back of the PCB for approximately one second (instructions are also included on the PCB) -* **Bootmagic reset**: - * **Left half**: Hold down the first key to the right of the encoder (Esc by default) and plug in the keyboard - * **Right half**: Hold down the first key to the left of the encoder (Print Screen by default) and plug in the keyboard diff --git a/keyboards/haverworks/theseus75/theseus75.c b/keyboards/haverworks/theseus75/theseus75.c deleted file mode 100644 index 45ead4811d..0000000000 --- a/keyboards/haverworks/theseus75/theseus75.c +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2023 Moritz Plattner (@ebastler), Alex Havermale (@haversnail) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" -#include "transactions.h" -#include -#include "print.h" -#include "split_util.h" -#include "usbpd.h" - -typedef struct _kb_state_t { - usbpd_allowance_t allowance; -} kb_state_t; - -kb_state_t kb_state; - -const char* usbpd_str(usbpd_allowance_t allowance) { - switch (allowance) { - case USBPD_500MA: - return "500mA"; - case USBPD_1500MA: - return "1500mA"; - case USBPD_3000MA: - return "3000mA"; - default: - dprintf("Encountered unknown allowance enum value: %d\n", allowance); - return "UNKNOWN"; - } -} - -void kb_state_slave_handler(uint8_t m2s_size, const void* m2s_buffer, uint8_t s2m_size, void* s2m_buffer) { - if (m2s_size == sizeof(kb_state_t)) { - memcpy(&kb_state, m2s_buffer, sizeof(kb_state_t)); - } else { - dprintf("Unexpected response in slave handler\n"); // TODO: add split debug logging - } -} - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} - -void keyboard_post_init_kb(void) { - // Register keyboard state transaction: - transaction_register_rpc(RPC_ID_KB_STATE, kb_state_slave_handler); - - // Set default state values: - kb_state.allowance = USBPD_500MA; - - // If the keyboard is master, - if (is_keyboard_master()) { - // Turn on power to the split half and to underglow LEDs: - gpio_set_pin_output(PSW_PIN); - gpio_write_pin_high(PSW_PIN); - - // Enable inputs used for current negotiation: - gpio_set_pin_input_high(USBPD_1_PIN); - gpio_set_pin_input_high(USBPD_2_PIN); - - // Not needed in this mode (always high-Z with pull-up on PCB if port controller is sink) - gpio_set_pin_input_high(ID_PIN); - } else { - // Prepare output to enable power for USB output after negotiation: - gpio_set_pin_output(PSW_PIN); - - // Switch the USB MUXes between hub and ports: - gpio_set_pin_output(USBSW_PIN); - gpio_write_pin_high(USBSW_PIN); - - // Enable outputs used for current negotiation and default to 500mA: - gpio_set_pin_output(USBPD_1_PIN); - gpio_write_pin_high(USBPD_1_PIN); - gpio_set_pin_output(USBPD_2_PIN); - gpio_write_pin_high(USBPD_2_PIN); - - // Use ID pin to check if client is detected (if low: USB source port powered): - gpio_set_pin_input_high(ID_PIN); - - // Indicate that the hub is either self-powered or bus-powered based on whether the bus-power mode flag is enabled - // (configurable for users who would rather always have their device connect, regardless of whether they meet the specs): - gpio_set_pin_output(BUS_B_PIN); - if (DISABLE_BUS_POWER_MODE == TRUE) { - gpio_write_pin_high(BUS_B_PIN); - } else { - gpio_write_pin_low(BUS_B_PIN); - } - } - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_post_init_user(); -} - -void housekeeping_task_kb(void) { - // Update any shared kb state to send to slave: - static uint32_t last_usbpd_allowance_check_time = 0; - if (timer_elapsed32(last_usbpd_allowance_check_time) > USBPD_ALLOWANCE_CHECK_INTERVAL) { - // On master side: check USBPD_1_PIN and USBPD_2_PIN to determine current negotiated with host - // (Can't use the usbpd_get_allowance() function, as this uses this uses the native CC PD interface - // of the G series MCU, while we're using dedicated port controllers instead): - if (is_keyboard_master()) { - usbpd_allowance_t allowance; - - if (gpio_read_pin(USBPD_1_PIN)) { - allowance = USBPD_500MA; - } else if (gpio_read_pin(USBPD_2_PIN)) { - allowance = USBPD_1500MA; - } else { - allowance = USBPD_3000MA; - } - - if (kb_state.allowance != allowance) { - printf("Host negotiated current: %s -> %s\n", usbpd_str(kb_state.allowance), usbpd_str(allowance)); - kb_state.allowance = allowance; - } - } else { - // On peripheral side - If ID_PIN is low: USB client negotiated 5V successfully -> enable power routing - // Check if PSW_PIN is not already high to avoid wasting time - if (!gpio_read_pin(ID_PIN) && !gpio_read_pin(PSW_PIN)) { - gpio_write_pin_high(PSW_PIN); - dprintf("USB downstream device connected\n"); // TODO: add split debug logging - } else if (gpio_read_pin(ID_PIN) && gpio_read_pin(PSW_PIN)) { - gpio_write_pin_low(PSW_PIN); - dprintf("USB downstream device disconnected\n"); // TODO: add split debug logging - } - }; - last_usbpd_allowance_check_time = timer_read32(); - }; - - // Sync state from master to slave: - if (is_keyboard_master() && is_transport_connected()) { - bool needs_sync = false; - static uint32_t last_kb_state_sync_time; - static kb_state_t last_kb_state; - - // Check if the state values are different: - if (memcmp(&kb_state, &last_kb_state, sizeof(kb_state_t))) { - needs_sync = true; - memcpy(&last_kb_state, &kb_state, sizeof(kb_state_t)); - } - - // Sync state every so often regardless: - if (timer_elapsed32(last_kb_state_sync_time) > KB_STATE_SYNC_INTERVAL) { - needs_sync = true; - } - - if (needs_sync) { - bool did_sync = transaction_rpc_send(RPC_ID_KB_STATE, sizeof(kb_state_t), &kb_state); - if (did_sync) { - dprintf("Synced to slave\n"); - last_kb_state_sync_time = timer_read32(); - } else { - dprintf("Failed to sync state\n"); - } - } - } - - // Update the USBPD output pins on slave half whenever allowance has changed: - if (!is_keyboard_master()) { - static usbpd_allowance_t last_allowance; - - if (last_allowance != kb_state.allowance) { - last_allowance = kb_state.allowance; - - printf("Setting USB-PD output to %s (%s-powered)\n", usbpd_str(kb_state.allowance), kb_state.allowance == USBPD_500MA ? "bus" : "self"); // TODO: add split debug logging - - switch (kb_state.allowance) { - default: - case USBPD_500MA: - // Set USBPD output to 500 mA: - gpio_write_pin_high(USBPD_1_PIN); - gpio_write_pin_high(USBPD_2_PIN); - if (DISABLE_BUS_POWER_MODE == TRUE) { - // Indicate hub is self-powered and devices can try to connect or fast charge: - gpio_write_pin_high(BUS_B_PIN); - } else { - // Indicate hub is bus-powered and devices should not try to connect or fast charge: - gpio_write_pin_low(BUS_B_PIN); - } - break; - case USBPD_1500MA: - // Set USBPD output to 500 mA: - gpio_write_pin_high(USBPD_1_PIN); - gpio_write_pin_high(USBPD_2_PIN); - // Indicate hub is self-powered and devices can try to connect or fast charge: - gpio_write_pin_high(BUS_B_PIN); - break; - case USBPD_3000MA: - // Set USBPD output to 1500 mA: - gpio_write_pin_low(USBPD_1_PIN); - gpio_write_pin_high(USBPD_2_PIN); - // Indicate hub is self-powered and devices can try to connect or fast charge: - gpio_write_pin_high(BUS_B_PIN); - break; - } - } - } -} - -#ifdef RGB_MATRIX_ENABLE -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, INDICATOR_MAX_BRIGHTNESS, INDICATOR_MAX_BRIGHTNESS, INDICATOR_MAX_BRIGHTNESS); - } else { - rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 0, 0, 0); - } - return true; -} -#endif diff --git a/keyboards/hazel/bad_wings/halconf.h b/keyboards/hazel/bad_wings/halconf.h index dbb40c4c27..ed9500fe75 100644 --- a/keyboards/hazel/bad_wings/halconf.h +++ b/keyboards/hazel/bad_wings/halconf.h @@ -6,5 +6,7 @@ #define HAL_USE_SPI TRUE #define HAL_USE_I2C TRUE #define HAL_USE_PWM TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next +#include_next \ No newline at end of file diff --git a/keyboards/hazel/bad_wings_v2/config.h b/keyboards/hazel/bad_wings_v2/config.h deleted file mode 100644 index 7f861f693f..0000000000 --- a/keyboards/hazel/bad_wings_v2/config.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2023 Jason Hazel (@jasonhazel) -// SPDX-License-Identifier: GPL-3.0-or-later - -#pragma once - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 0 -#define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 0 -#define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 0 -#define CIRQUE_PINNACLE_SPI_DIVISOR 8 -#define CIRQUE_PINNACLE_SPI_CS_PIN A4 - -#define POINTING_DEVICE_CS_PIN A4 -#define CIRQUE_PINNACLE_DIAMETER_MM 35 -#define POINTING_DEVICE_ROTATION_90 diff --git a/keyboards/hazel/bad_wings_v2/halconf.h b/keyboards/hazel/bad_wings_v2/halconf.h deleted file mode 100644 index fa7e45bdcd..0000000000 --- a/keyboards/hazel/bad_wings_v2/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 Jason Hazel (@jasonhazel) -// SPDX-License-Identifier: GPL-3.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/hazel/bad_wings_v2/keyboard.json b/keyboards/hazel/bad_wings_v2/keyboard.json deleted file mode 100644 index e6f9bad637..0000000000 --- a/keyboards/hazel/bad_wings_v2/keyboard.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "manufacturer": "Hazel", - "keyboard_name": "Bad Wings v2", - "maintainer": "jasonhazel", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "pointing_device": true - }, - "matrix_pins": { - "cols": ["F1", "F0", "C15", "C14", "C13"], - "rows": ["B11", "B10", "B2", "B1", "B3", "B4", "B5", "B6"] - }, - "processor": "STM32F072", - "url": "https://github.com/hazels-garage/bad-wings/tree/master/v2", - "usb": { - "device_version": "1.0.0", - "pid": "0x4258", - "vid": "0x4A48" - }, - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"label": "00", "matrix": [0, 0], "x": 0, "y": 0.75, "w": 1}, - {"label": "01", "matrix": [0, 1], "x": 1, "y": 0.5, "w": 1}, - {"label": "02", "matrix": [0, 2], "x": 2, "y": 0, "w": 1}, - {"label": "03", "matrix": [0, 3], "x": 3, "y": 0.25, "w": 1}, - {"label": "04", "matrix": [0, 4], "x": 4, "y": 0.36, "w": 1}, - {"label": "44", "matrix": [4, 4], "x": 8, "y": 0.36, "w": 1}, - {"label": "43", "matrix": [4, 3], "x": 9, "y": 0.25, "w": 1}, - {"label": "42", "matrix": [4, 2], "x": 10, "y": 0, "w": 1}, - {"label": "41", "matrix": [4, 1], "x": 11, "y": 0.5, "w": 1}, - {"label": "40", "matrix": [4, 0], "x": 12, "y": 0.75, "w": 1}, - {"label": "10", "matrix": [1, 0], "x": 0, "y": 1.75, "w": 1}, - {"label": "11", "matrix": [1, 1], "x": 1, "y": 1.5, "w": 1}, - {"label": "12", "matrix": [1, 2], "x": 2, "y": 1, "w": 1}, - {"label": "13", "matrix": [1, 3], "x": 3, "y": 1.25, "w": 1}, - {"label": "14", "matrix": [1, 4], "x": 4, "y": 1.36, "w": 1}, - {"label": "54", "matrix": [5, 4], "x": 8, "y": 1.36, "w": 1}, - {"label": "53", "matrix": [5, 3], "x": 9, "y": 1.25, "w": 1}, - {"label": "52", "matrix": [5, 2], "x": 10, "y": 1, "w": 1}, - {"label": "51", "matrix": [5, 1], "x": 11, "y": 1.5, "w": 1}, - {"label": "50", "matrix": [5, 0], "x": 12, "y": 1.75, "w": 1}, - {"label": "20", "matrix": [2, 0], "x": 0, "y": 2.75, "w": 1}, - {"label": "21", "matrix": [2, 1], "x": 1, "y": 2.5, "w": 1}, - {"label": "22", "matrix": [2, 2], "x": 2, "y": 2, "w": 1}, - {"label": "23", "matrix": [2, 3], "x": 3, "y": 2.25, "w": 1}, - {"label": "24", "matrix": [2, 4], "x": 4, "y": 2.36, "w": 1}, - {"label": "64", "matrix": [6, 4], "x": 8, "y": 2.36, "w": 1}, - {"label": "63", "matrix": [6, 3], "x": 9, "y": 2.25, "w": 1}, - {"label": "62", "matrix": [6, 2], "x": 10, "y": 2, "w": 1}, - {"label": "61", "matrix": [6, 1], "x": 11, "y": 2.5, "w": 1}, - {"label": "60", "matrix": [6, 0], "x": 12, "y": 2.75, "w": 1}, - {"label": "32", "matrix": [3, 2], "x": 3, "y": 3.25, "w": 1}, - {"label": "33", "matrix": [3, 3], "x": 4, "y": 3.36, "w": 1}, - {"label": "34", "matrix": [3, 4], "x": 5, "y": 3.47, "w": 1}, - {"label": "74", "matrix": [7, 4], "x": 7, "y": 3.47, "w": 1}, - {"label": "73", "matrix": [7, 3], "x": 8, "y": 3.36, "w": 1}, - {"label": "72", "matrix": [7, 2], "x": 9, "y": 3.25, "w": 1} - ] - } - } -} diff --git a/keyboards/hazel/bad_wings_v2/keymaps/default/config.h b/keyboards/hazel/bad_wings_v2/keymaps/default/config.h deleted file mode 100644 index 75c535cee8..0000000000 --- a/keyboards/hazel/bad_wings_v2/keymaps/default/config.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2023 Jason Hazel (@jasonhazel) -// SPDX-License-Identifier: GPL-3.0-or-later - -#pragma once - -#define PERMISSIVE_HOLD -#define ONESHOT_TAP_TOGGLE 10 -#define ONESHOT_TIMEOUT 500 -#define CIRQUE_PINNACLE_TAP_ENABLE -#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE -#define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json b/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json deleted file mode 100644 index 251be09c33..0000000000 --- a/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "keyboard": "hazel/bad_wings_v2", - "keymap": "default", - "layout": "LAYOUT_split_3x5_3", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", - "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_QUOT", - "KC_Z", "LGUI_T(KC_X)", "LALT_T(KC_C)", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", - "KC_LCTL", "OSL(1)", "OSM(MOD_LSFT)", "LT(3,KC_SPC)", "LT(2,KC_BSPC)", "KC_ENT" - ], - [ - "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_RBRC", "KC_RCBR", "KC_RPRN", "KC_GT", "KC_NO", - "KC_GRV", "KC_TILD", "KC_UNDS", "KC_EQL", "KC_NO", "KC_LBRC", "KC_LCBR", "KC_LPRN", "KC_LT", "KC_BSLS", - "KC_NO", "KC_NO", "KC_PLUS", "KC_MINS", "KC_NO", "KC_NO", "KC_NO", "KC_COLN", "KC_DOT", "KC_SCLN", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ], - [ - "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_PIPE", "KC_NO", - "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", - "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ], - [ - "KC_ESC", "KC_F1", "KC_F4", "KC_F7", "KC_F10", "KC_NO", "KC_HOME", "KC_UP", "KC_END", "KC_NO", - "KC_TAB", "KC_F2", "KC_F5", "KC_F8", "KC_F11", "KC_NO", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NO", - "KC_NO", "KC_F3", "KC_F6", "KC_F9", "KC_F12", "KC_NO", "KC_MRWD", "KC_MPLY", "KC_MFFD", "KC_DEL", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ] - ], - "author": "Jason Hazel" -} diff --git a/keyboards/hazel/bad_wings_v2/mcuconf.h b/keyboards/hazel/bad_wings_v2/mcuconf.h deleted file mode 100644 index 77c7d10e9b..0000000000 --- a/keyboards/hazel/bad_wings_v2/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 Kyle McCreery (@kylemccreery) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/hazel/bad_wings_v2/readme.md b/keyboards/hazel/bad_wings_v2/readme.md deleted file mode 100644 index 1b34057aa3..0000000000 --- a/keyboards/hazel/bad_wings_v2/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Bad Wings v2 - -![Bad Wings v2](https://i.imgur.com/8uCHotK.jpeg) - -36 key unibody split - -* Keyboard Maintainer: [Jason Hazel](https://github.com/jasonhazel) -* Hardware Supported: Bad Wings v2 -* Hardware Availability: [Hazel's Garage GitHub](https://github.com/hazels-garage/bad-wings/tree/master/v2) - -Make example for this keyboard (after setting up your build environment): - - make hazel/bad_wings_v2:default - -Flashing example for this keyboard: - - make hazel/bad_wings_v2: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 top-left key 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 diff --git a/keyboards/hazel/bad_wings_v2/rules.mk b/keyboards/hazel/bad_wings_v2/rules.mk deleted file mode 100644 index fb5d649735..0000000000 --- a/keyboards/hazel/bad_wings_v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/heliar/wm1_hotswap/keyboard.json b/keyboards/heliar/wm1_hotswap/keyboard.json index d87ce22229..789a3c7d2b 100644 --- a/keyboards/heliar/wm1_hotswap/keyboard.json +++ b/keyboards/heliar/wm1_hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "wm1 hotswap", "manufacturer": "Heliar", + "url": "", "maintainer": "heliar", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/heliotrope/keyboard.json b/keyboards/heliotrope/keyboard.json index 26416832c5..e173c785e0 100644 --- a/keyboards/heliotrope/keyboard.json +++ b/keyboards/heliotrope/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/helix/beta/keyboard.json b/keyboards/helix/beta/keyboard.json deleted file mode 100644 index c4eb48aab1..0000000000 --- a/keyboards/helix/beta/keyboard.json +++ /dev/null @@ -1,205 +0,0 @@ -{ - "keyboard_name": "Helix Beta", - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], - "rows": ["D4", "C6", "D7", "E6", "B4"] - }, - "rgb_matrix": { - "layout": [ - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, - {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, - {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, - {"matrix": [6, 2], "x": 192, "y": 16, "flags": 4}, - {"matrix": [6, 3], "x": 176, "y": 16, "flags": 4}, - {"matrix": [6, 4], "x": 160, "y": 16, "flags": 4}, - {"matrix": [6, 5], "x": 144, "y": 16, "flags": 4}, - {"matrix": [7, 5], "x": 144, "y": 32, "flags": 4}, - {"matrix": [7, 4], "x": 160, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 176, "y": 32, "flags": 4}, - {"matrix": [7, 2], "x": 192, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, - {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, - {"matrix": [8, 2], "x": 192, "y": 48, "flags": 4}, - {"matrix": [8, 3], "x": 176, "y": 48, "flags": 4}, - {"matrix": [8, 4], "x": 160, "y": 48, "flags": 4}, - {"matrix": [8, 5], "x": 144, "y": 48, "flags": 4}, - {"matrix": [8, 6], "x": 128, "y": 48, "flags": 4}, - {"matrix": [9, 6], "x": 128, "y": 64, "flags": 4}, - {"matrix": [9, 5], "x": 144, "y": 64, "flags": 4}, - {"matrix": [9, 4], "x": 160, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 176, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 192, "y": 64, "flags": 4}, - {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, - {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} - ], - "split_count": [32, 32] - }, - "url": "https://shop.yushakobo.jp/products/oss_pcb?variant=39452554231969", - "usb": { - "device_version": "0.0.1", - "pid": "0x0000" - }, - "layouts": { - "LAYOUT_4row": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [4, 5], "x": 9, "y": 0}, - {"matrix": [4, 4], "x": 10, "y": 0}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0}, - {"matrix": [4, 1], "x": 13, "y": 0}, - {"matrix": [4, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [5, 5], "x": 9, "y": 1}, - {"matrix": [5, 4], "x": 10, "y": 1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1}, - {"matrix": [5, 1], "x": 13, "y": 1}, - {"matrix": [5, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [6, 5], "x": 9, "y": 2}, - {"matrix": [6, 4], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2}, - {"matrix": [6, 1], "x": 13, "y": 2}, - {"matrix": [6, 0], "x": 14, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [7, 6], "x": 8, "y": 3}, - {"matrix": [7, 5], "x": 9, "y": 3}, - {"matrix": [7, 4], "x": 10, "y": 3}, - {"matrix": [7, 3], "x": 11, "y": 3}, - {"matrix": [7, 2], "x": 12, "y": 3}, - {"matrix": [7, 1], "x": 13, "y": 3}, - {"matrix": [7, 0], "x": 14, "y": 3} - ] - }, - "LAYOUT_5row": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [5, 5], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 10, "y": 0}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0}, - {"matrix": [5, 1], "x": 13, "y": 0}, - {"matrix": [5, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [6, 5], "x": 9, "y": 1}, - {"matrix": [6, 4], "x": 10, "y": 1}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1}, - {"matrix": [6, 1], "x": 13, "y": 1}, - {"matrix": [6, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [7, 5], "x": 9, "y": 2}, - {"matrix": [7, 4], "x": 10, "y": 2}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2}, - {"matrix": [7, 1], "x": 13, "y": 2}, - {"matrix": [7, 0], "x": 14, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [8, 6], "x": 8, "y": 3}, - {"matrix": [8, 5], "x": 9, "y": 3}, - {"matrix": [8, 4], "x": 10, "y": 3}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3}, - {"matrix": [8, 1], "x": 13, "y": 3}, - {"matrix": [8, 0], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 6], "x": 6, "y": 4}, - {"matrix": [9, 6], "x": 8, "y": 4}, - {"matrix": [9, 5], "x": 9, "y": 4}, - {"matrix": [9, 4], "x": 10, "y": 4}, - {"matrix": [9, 3], "x": 11, "y": 4}, - {"matrix": [9, 2], "x": 12, "y": 4}, - {"matrix": [9, 1], "x": 13, "y": 4}, - {"matrix": [9, 0], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/helix/beta/keymaps/default/keymap.json b/keyboards/helix/beta/keymaps/default/keymap.json deleted file mode 100644 index 1719abca5b..0000000000 --- a/keyboards/helix/beta/keymaps/default/keymap.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "keyboard": "helix/beta", - "keymap": "default", - "layout": "LAYOUT_5row", - "layers": [ - [ - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_LBRC", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT" , - "MO(3)", "KC_ESC", "KC_LALT", "KC_LGUI", "LALT(KC_GRV)", "MO(1)", "KC_SPC", "KC_SPC", "MO(2)", "LALT(KC_GRV)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", - "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", - "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "_______", "_______", "KC_F12", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "UG_TOGG", "UG_HUEU", "UG_SATU", "UG_VALU", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "UG_NEXT", "UG_HUED", "UG_SATD", "UG_VALD" - ] - ] -} diff --git a/keyboards/helix/common/glcdfont.c b/keyboards/helix/common/glcdfont.c new file mode 100644 index 0000000000..697d58886e --- /dev/null +++ b/keyboards/helix/common/glcdfont.c @@ -0,0 +1,233 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font + +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, + 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, + 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, + 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, + 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, + 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, + 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, + 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, + 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, + 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, + 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, + 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, + 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, + 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, + 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, + 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, + 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, + 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, + 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, + 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, + 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, + 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, + 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, + 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, + 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, + 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, + 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, + 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, + 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, + 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, + 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, + 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, + 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, + 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, + 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, + 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, + 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, + 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; diff --git a/keyboards/helix/config.h b/keyboards/helix/config.h deleted file mode 100644 index 01040ab49f..0000000000 --- a/keyboards/helix/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define OLED_FONT_H "keyboards/helix/glcdfont.c" diff --git a/keyboards/helix/glcdfont.c b/keyboards/helix/glcdfont.c deleted file mode 100644 index 1b81bbcbfe..0000000000 --- a/keyboards/helix/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include "progmem.h" - -static const unsigned char font[] PROGMEM = { - // clang-format off - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, - 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, - 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, - 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, - 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, - 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, - 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, - 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, - 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, - 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, - 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, - 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, - 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, - 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, - 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, - 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, - 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, - 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, - 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, - 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, - 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, - 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, - 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, - 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, - 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, - 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, - 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, - 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, - 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, - 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, - 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - // clang-format on -}; diff --git a/keyboards/helix/helix.c b/keyboards/helix/helix.c deleted file mode 100644 index b9960a11bf..0000000000 --- a/keyboards/helix/helix.c +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2020 Yushakobo -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef OLED_ENABLE -void render_status(void) { - static const char os_logo[][2][3] PROGMEM = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}}; - if (!keymap_config.swap_lalt_lgui) { - oled_write_P(os_logo[0][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[0][1], false); - } else { - oled_write_P(os_logo[1][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[1][1], false); - } - - oled_write_P(PSTR(" Layer: "), false); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_ln_P(PSTR("Default"), false); - break; - case 1: - oled_write_ln_P(PSTR("Lower"), false); - break; - case 2: - oled_write_ln_P(PSTR("Raise"), false); - break; - case 3: - oled_write_ln_P(PSTR("Adjust"), false); - break; - default: - oled_write_ln_P(PSTR("Undefined"), false); - } - oled_write_P(PSTR("\n"), false); - - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); -} - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - // clang-format off - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - // clang-format on - }; - oled_write_P(qmk_logo, false); -} - -static void render_rgb_matrix_status(void) { - oled_write_P(PSTR(" LED"), false); - oled_write(get_u8_str(rgb_matrix_get_mode(), ' '), false); - oled_write_char(':', false); - oled_write(get_u8_str(rgb_matrix_get_hue() / RGB_MATRIX_HUE_STEP, ' '), false); - oled_write_char(',', false); - oled_write(get_u8_str(rgb_matrix_get_sat() / RGB_MATRIX_SAT_STEP, ' '), false); - oled_write_char(',', false); - oled_write(get_u8_str(rgb_matrix_get_val() / RGB_MATRIX_VAL_STEP, ' '), false); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (is_keyboard_master()) { - render_status(); - } else { - render_logo(); - render_rgb_matrix_status(); - } - return false; -} -#endif diff --git a/keyboards/helix/info.json b/keyboards/helix/info.json deleted file mode 100644 index a9ad385b7d..0000000000 --- a/keyboards/helix/info.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "manufacturer": "Yushakobo", - "maintainer": "MakotoKurauchi", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "rgb_matrix": true - }, - "rgb_matrix": { - "animations": { - "breathing": true, - "cycle_left_right": true, - "cycle_pinwheel": true, - "multisplash": true, - "solid_splash": true - }, - "driver": "ws2812", - "max_brightness": 150, - "sleep": true - }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - } - }, - "usb": { - "vid": "0x3265" - }, - "ws2812": { - "pin": "D3" - } -} diff --git a/keyboards/helix/pico/back/keyboard.json b/keyboards/helix/pico/back/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/pico/back/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/pico/back/rules.mk b/keyboards/helix/pico/back/rules.mk new file mode 100644 index 0000000000..066fffb74a --- /dev/null +++ b/keyboards/helix/pico/back/rules.mk @@ -0,0 +1 @@ +LED_BACK_ENABLE = yes diff --git a/keyboards/helix/pico/base/keyboard.json b/keyboards/helix/pico/base/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/pico/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h index 13de9d5178..6ba88a559c 100644 --- a/keyboards/helix/pico/config.h +++ b/keyboards/helix/pico/config.h @@ -1,5 +1,96 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 MakotoKurauchi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + #pragma once -#define AUDIO_PIN B5 +#define QUICK_TAP_TERM 0 + +#define SERIAL_SLAVE_BUFFER_LENGTH ((MATRIX_ROWS)/2) +#define SERIAL_MASTER_BUFFER_LENGTH ((MATRIX_ROWS)/2) + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_ROW_PINS { D4, C6, D7, E6 } + +// wiring of each half +#define MATRIX_COLS 7 +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Audio */ +#ifdef AUDIO_ENABLE + #define AUDIO_PIN B5 +#endif + +// Helix keyboard RGB LED support +// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes +#ifdef RGBLED_BACK + #define RGBLIGHT_LED_COUNT 25 +#else + #define RGBLIGHT_LED_COUNT 6 +#endif + +#ifndef IOS_DEVICE_ENABLE + #if RGBLIGHT_LED_COUNT <= 6 + #define RGBLIGHT_LIMIT_VAL 255 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif + #define RGBLIGHT_VAL_STEP 17 +#else + #if RGBLIGHT_LED_COUNT <= 6 + #define RGBLIGHT_LIMIT_VAL 90 + #else + #define RGBLIGHT_LIMIT_VAL 45 + #endif + #define RGBLIGHT_VAL_STEP 4 +#endif + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json new file mode 100644 index 0000000000..d4fabc756e --- /dev/null +++ b/keyboards/helix/pico/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "HelixPico", + "manufacturer": "Yushakobo", + "url": "https://github.com/MakotoKurauchi/helix", + "maintainer": "MakotoKurauchi", + "usb": { + "vid": "0x3265", + "pid": "0x0001", + "device_version": "0.0.2" + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, + "ws2812": { + "pin": "D3" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [4, 5], "x": 9, "y": 0}, + {"matrix": [4, 4], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0}, + {"matrix": [4, 1], "x": 13, "y": 0}, + {"matrix": [4, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, + + {"matrix": [5, 5], "x": 9, "y": 1}, + {"matrix": [5, 4], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1}, + {"matrix": [5, 1], "x": 13, "y": 1}, + {"matrix": [5, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, + + {"matrix": [6, 5], "x": 9, "y": 2}, + {"matrix": [6, 4], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2}, + {"matrix": [6, 1], "x": 13, "y": 2}, + {"matrix": [6, 0], "x": 14, "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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [7, 6], "x": 8, "y": 3}, + {"matrix": [7, 5], "x": 9, "y": 3}, + {"matrix": [7, 4], "x": 10, "y": 3}, + {"matrix": [7, 3], "x": 11, "y": 3}, + {"matrix": [7, 2], "x": 12, "y": 3}, + {"matrix": [7, 1], "x": 13, "y": 3}, + {"matrix": [7, 0], "x": 14, "y": 3} + ] + } + } +} diff --git a/keyboards/helix/pico/keyboard.json b/keyboards/helix/pico/keyboard.json deleted file mode 100644 index 62b25b753b..0000000000 --- a/keyboards/helix/pico/keyboard.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "keyboard_name": "Helix Pico", - "features": { - "audio": false - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], - "rows": ["D4", "C6", "D7", "E6"] - }, - "rgb_matrix": { - "layout": [ - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 21, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 21, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 21, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 21, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 42, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 42, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 42, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 64, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 64, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 64, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 64, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 64, "flags": 4}, - {"matrix": [3, 6], "x": 96, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 144, "y": 0, "flags": 4}, - {"matrix": [4, 4], "x": 160, "y": 0, "flags": 4}, - {"matrix": [4, 3], "x": 176, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 192, "y": 0, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 0, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 21, "flags": 4}, - {"matrix": [5, 2], "x": 192, "y": 21, "flags": 4}, - {"matrix": [5, 3], "x": 176, "y": 21, "flags": 4}, - {"matrix": [5, 4], "x": 160, "y": 21, "flags": 4}, - {"matrix": [5, 5], "x": 144, "y": 21, "flags": 4}, - {"matrix": [6, 5], "x": 144, "y": 42, "flags": 4}, - {"matrix": [6, 4], "x": 160, "y": 42, "flags": 4}, - {"matrix": [6, 3], "x": 176, "y": 42, "flags": 4}, - {"matrix": [6, 2], "x": 192, "y": 42, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 64, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 64, "flags": 4}, - {"matrix": [7, 2], "x": 192, "y": 64, "flags": 4}, - {"matrix": [7, 3], "x": 176, "y": 64, "flags": 4}, - {"matrix": [7, 4], "x": 160, "y": 64, "flags": 4}, - {"matrix": [7, 5], "x": 144, "y": 64, "flags": 4}, - {"matrix": [7, 6], "x": 128, "y": 64, "flags": 4} - ], - "split_count": [25, 25] - }, - "url": "https://shop.yushakobo.jp/products/helixpico-pcb", - "usb": { - "device_version": "0.0.2", - "pid": "0x0001" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [4, 5], "x": 9, "y": 0}, - {"matrix": [4, 4], "x": 10, "y": 0}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0}, - {"matrix": [4, 1], "x": 13, "y": 0}, - {"matrix": [4, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [5, 5], "x": 9, "y": 1}, - {"matrix": [5, 4], "x": 10, "y": 1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1}, - {"matrix": [5, 1], "x": 13, "y": 1}, - {"matrix": [5, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [6, 5], "x": 9, "y": 2}, - {"matrix": [6, 4], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2}, - {"matrix": [6, 1], "x": 13, "y": 2}, - {"matrix": [6, 0], "x": 14, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [7, 6], "x": 8, "y": 3}, - {"matrix": [7, 5], "x": 9, "y": 3}, - {"matrix": [7, 4], "x": 10, "y": 3}, - {"matrix": [7, 3], "x": 11, "y": 3}, - {"matrix": [7, 2], "x": 12, "y": 3}, - {"matrix": [7, 1], "x": 13, "y": 3}, - {"matrix": [7, 0], "x": 14, "y": 3} - ] - } - } -} diff --git a/keyboards/helix/pico/keymaps/default/config.h b/keyboards/helix/pico/keymaps/default/config.h new file mode 100644 index 0000000000..0bd76a18b4 --- /dev/null +++ b/keyboards/helix/pico/keymaps/default/config.h @@ -0,0 +1,42 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// place overrides here + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define AUDIO_CLICKY +#endif + +// If you need more program area, try select and reduce rgblight modes to use. + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/helix/pico/keymaps/default/keymap.c b/keyboards/helix/pico/keymaps/default/keymap.c new file mode 100644 index 0000000000..c947c3d931 --- /dev/null +++ b/keyboards/helix/pico/keymaps/default/keymap.c @@ -0,0 +1,329 @@ +/* Copyright 2018 MakotoKurauchi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + BACKLIT, + EISU, + KANA, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + +[_QWERTY] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc | Home | End | | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc |PageDn|PageUp| | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR, KC_PGDN, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset|RGBRST| | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |Aud on|Audoff|MU TOG|MU MOD| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |CK TOG|CK RST| CK UP|CK DWN| | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, QK_BOOT, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, AU_ON, AU_OFF, MU_TOGG, MU_NEXT, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, CK_TOGG, CK_RST, CK_UP, CK_DOWN, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD + ) +}; + + + +#ifdef AUDIO_ENABLE + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); + #endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE + 1); + #endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE); + #endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + #endif + return false; + break; + case EISU: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LNG2); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LNG1); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_config.mode; + } + #endif + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_config.mode; + #endif +} diff --git a/keyboards/helix/pico/keymaps/default/keymap.json b/keyboards/helix/pico/keymaps/default/keymap.json deleted file mode 100644 index 031ca79677..0000000000 --- a/keyboards/helix/pico/keymaps/default/keymap.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "keyboard": "helix/pico", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT" , - "MO(3)", "KC_ESC", "KC_LALT", "KC_LGUI", "LALT(KC_GRV)", "MO(1)", "KC_SPC", "KC_SPC", "MO(2)", "LALT(KC_GRV)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" - ], - [ - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", - "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", - "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY" - ], - [ - "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "UG_TOGG", "UG_HUEU", "UG_SATU", "UG_VALU", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "UG_NEXT", "UG_HUED", "UG_SATD", "UG_VALD" - ] - ] -} diff --git a/keyboards/helix/pico/keymaps/default/readme.md b/keyboards/helix/pico/keymaps/default/readme.md new file mode 100644 index 0000000000..a6c81651a3 --- /dev/null +++ b/keyboards/helix/pico/keymaps/default/readme.md @@ -0,0 +1,137 @@ +# The Default HelixPico Layout +## Layout + +### Qwerty +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +### Colemak +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +### Dvorak +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | ' | , | . | P | Y | | F | G | C | R | L | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +## Layers + +|Priority|number|name|description| +| ---- | ---- | --- | --- | +|high|16|Adjust|Functions| +||4|Raise|Numeric charactors| +||3|Lower|Other charactors| +||2|Dvorak|Dvorak leyout| +||1|Colemak|Colemak leyout| +|low|0|Qwerty|QWERTY leyout(base)| + +### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc | Home | End | | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Raise +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc |PageDn|PageUp| | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Adjust (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset| | | | | | | | | | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |Aud on|Audoff|MU TOG|MU MOD| Mac | | Win |Qwerty|Colemk|Dvorak| | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |CK TOG|CK RST| CK UP|CK DWN| | | | |RGB ON| HUE+ | SAT+ | VAL+ | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + `-------------------------------------------------------------------------------------------------' +``` + +## Customize + +see `qmk_firmware/keyboards/helix/pico/keymaps/default/rules.mk` + +``` +# Helix Spacific Build Options +# you can uncomment and edit follows 4 Variables +# jp: 以下の4つの変数を必要に応じて編集し、コメントアウトをはずします。 +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` +## Compile + +go to qmk top directory. +``` +$ cd qmk_firmware +``` + +build +``` +$ make helix/pico:default +$ make helix/pico/back:default # with backlight +$ make HELIX=no-ani helix/pico/back:default # with backlight without animation +$ make helix/pico/under:default # with underglow +``` + +build (experimental use of split_common with backlight) +``` +$ make helix/pico/sc:default +``` + +flash to keyboard +``` +$ make helix/pico:default:flash +$ make helix/pico/back:default:flash # with backlight +$ make HELIX=no_ani helix/pico/back:default:flash # with backlight without animation +$ make helix/pico/under:default:flash # with underglow + +``` + +## Link +* more detail wrote in Japanese [helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md) +* [Helix top](https://github.com/MakotoKurauchi/helix) diff --git a/keyboards/helix/pico/keymaps/default/readme_jp.md b/keyboards/helix/pico/keymaps/default/readme_jp.md new file mode 100644 index 0000000000..73f97ad9a6 --- /dev/null +++ b/keyboards/helix/pico/keymaps/default/readme_jp.md @@ -0,0 +1,138 @@ +# The Default HelixPico Layout +## 配列 + +### Qwerty配列 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc | Home | End | | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Raise +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | PrSc |PageDn|PageUp| | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Adjust (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset| | | | | | | | | | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |Aud on|Audoff|MU TOG|MU MOD| Mac | | Win |Qwerty|Colemk|Dvorak| | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |CK TOG|CK RST| CK UP|CK DWN| | | | |RGB ON| HUE+ | SAT+ | VAL+ | + |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + `-------------------------------------------------------------------------------------------------' +``` + +他の配列(Colemak,Dvorak)は、[readme.md](readme.md) を参照 + +## カスタマイズ + +RGB バックライトまたは、RGB Underglow をつけた場合は、 +`qmk_firmware/keyboards/helix/pico/keymaps/default/rules.mk` の以下の部分を編集して機能を有効化してください。 + +``` +# Helix Spacific Build Options +# you can uncomment and edit follows 4 Variables +# jp: 以下の4つの変数を必要に応じて編集し、コメントアウトをはずします。 +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` + +## RGB バックライトを有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 + +``` +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +``` + +## RGB Underglow を有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) +``` + +## iPad/iPhoneサポートを有効にする。 + +rules.mk の下記の部分を編集して no を yes に変更してください。 +RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone にも接続できるようになります。 + +``` +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` + +## コンパイルの仕方 + +コンパイルは、qmk_firmware のトップディレクトリで行います。 + +``` +$ cd qmk_firmware +``` +qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。 + +``` +$ make helix/pico:default +``` + +キーボードへの書き込みまで同時に行うには下記のように`:flash`を付けます。 + +``` +$ make helix/pico:default:flash +``` + +コンパイル結果と中間生成物を消去したい場合は以下のようにします。 + +``` +$ make helix/pico:default:clean +``` + +上記の、rules.mk によるカスタマイズ項目の一部は下記のようにコマンド上で直接指定することも可能です。 + +RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make helix/pico/back:default:flash +``` + +RGB Underglow を有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make helix/pico/under:default:flash +``` + +## リンク + +* さらに詳細は、[こちら helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md)をご覧ください。 +* [Helix top](https://github.com/MakotoKurauchi/helix) diff --git a/keyboards/helix/pico/keymaps/default/rules.mk b/keyboards/helix/pico/keymaps/default/rules.mk new file mode 100644 index 0000000000..9a29406c17 --- /dev/null +++ b/keyboards/helix/pico/keymaps/default/rules.mk @@ -0,0 +1,11 @@ +EXTRAKEY_ENABLE = yes # Audio control and System control +AUDIO_ENABLE = yes # Audio output +LTO_ENABLE = no # if firmware size over limit, try this option + +# Helix Spacific Build Options +# you can uncomment and edit follows 4 Variables +# jp: 以下の4つの変数を必要に応じて編集し、コメントアウトをはずします。 +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) diff --git a/keyboards/helix/pico/override_helix_options.mk-maintenance b/keyboards/helix/pico/override_helix_options.mk-maintenance new file mode 100644 index 0000000000..0ff930957e --- /dev/null +++ b/keyboards/helix/pico/override_helix_options.mk-maintenance @@ -0,0 +1,42 @@ +# +# This file is not normally used. It is used for maintenance testing purposes. +# To use it, do the following: +# +# $ cp override_helix_options.mk-maintenance override_helix_options.mk +# +$(info -------------------------) +$(info override_helix_options.mk) +$(info -------------------------) + +define HELIX_OVERRIDE_PARSE + ifeq ($(strip $1),back) + LED_BACK_ENABLE = yes + LED_UNDERGLOW_ENABLE = no + endif + ifeq ($(strip $1),under) + LED_BACK_ENABLE = no + LED_UNDERGLOW_ENABLE = yes + endif + ifneq ($(filter noled led-off led_off,$(strip $1)),) + LED_BACK_ENABLE = no + LED_UNDERGLOW_ENABLE = no + endif + ifneq ($(filter noaudio audio-off audio_off,$(strip $1)),) + AUDIO_ENABLE = no + endif + ifneq ($(filter audio audio-on audio_on,$(strip $1)),) + AUDIO_ENABLE = yes + endif + ifneq ($(filter sc split-common split_common,$(strip $1)),) + SPLIT_KEYBOARD = yes + endif + ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),) + SPLIT_KEYBOARD = no + endif + ifeq ($(strip $1),scan) + DEBUG_MATRIX_SCAN_RATE_ENABLE = yes + endif + ifeq ($(strip $1),scan-api) + DEBUG_MATRIX_SCAN_RATE_ENABLE = api + endif +endef # end of HELIX_OVERRIDE_PARSE diff --git a/keyboards/helix/pico/pico.c b/keyboards/helix/pico/pico.c new file mode 100644 index 0000000000..cc98fe8f61 --- /dev/null +++ b/keyboards/helix/pico/pico.c @@ -0,0 +1,37 @@ +/* Copyright 2018 MakotoKurauchi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "pico.h" + +// Each keymap.c should use is_keyboard_master() instead of 'is_master'. +// But keep 'is_master' for a while for backwards compatibility +// for the old keymap.c. +uint8_t is_master = false; + +void matrix_init_kb(void) { + // Each keymap.c should use is_keyboard_master() instead of is_master. + // But keep is_master for a while for backwards compatibility + // for the old keymap.c. + is_master = is_keyboard_master(); + + matrix_init_user(); +}; + +void keyboard_post_init_kb(void) { +#if defined(DEBUG_MATRIX_SCAN_RATE) + debug_enable = true; +#endif + keyboard_post_init_user(); +} diff --git a/keyboards/helix/pico/pico.h b/keyboards/helix/pico/pico.h new file mode 100644 index 0000000000..7f2d795ca8 --- /dev/null +++ b/keyboards/helix/pico/pico.h @@ -0,0 +1,24 @@ +/* Copyright 2018 MakotoKurauchi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +// Each keymap.c should use is_keyboard_master() instead of 'is_master', 'has_usb()'. +// But keep 'is_master' for a while for backwards compatibility +// for the old keymap.c. +extern uint8_t is_master; // 'is_master' will be obsolete, it is recommended to use 'is_keyboard_master ()' instead. +#define has_usb() is_keyboard_master() diff --git a/keyboards/helix/pico/post_config.h b/keyboards/helix/pico/post_config.h new file mode 100644 index 0000000000..dda73d5d22 --- /dev/null +++ b/keyboards/helix/pico/post_config.h @@ -0,0 +1,7 @@ +#pragma once + +#if defined(SPLIT_KEYBOARD) /* if use split_common */ +# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_SPLIT) +# define RGBLIGHT_SPLIT /* helix hardware need this */ +# endif +#endif diff --git a/keyboards/helix/pico/post_rules.mk b/keyboards/helix/pico/post_rules.mk new file mode 100644 index 0000000000..88bb5482ba --- /dev/null +++ b/keyboards/helix/pico/post_rules.mk @@ -0,0 +1,77 @@ +# +# post_rules.mk contains post-processing rules for the Helix keyboard. +# +# Post-processing rules convert keyboard-specific shortcuts (that represent +# combinations of standard options) into QMK standard options. +# +-include $(strip $(HELIX_TOP_DIR)/pico/override_helix_options.mk) ## File dedicated to maintenance + +# Parse 'HELIX=xx,yy,zz' option +ifneq ($(strip $(HELIX)),) + # make HELIX=ios helix/pico:AKEYMAP + # make HELIX=no-ani helix/pico:AKEYMAP + # make HELIX=ios,no-ani helix/pico:AKEYMAP + define HELIX_OPTION_PARSE + # parce 'no-ani' 'ios' + $(if $(SHOW_PARCE),$(info parse .$1.)) #debug + $(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1)) + + ifeq ($(strip $1),ios) + IOS_DEVICE_ENABLE = yes + endif + ifneq ($(filter na no_ani no-ani,$(strip $1)),) + LED_ANIMATIONS = no + endif + endef # end of HELIX_OPTION_PARSE + + COMMA=, + $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \ + $(call HELIX_OPTION_PARSE,$(A_OPTION_NAME)))) + SHOW_HELIX_OPTIONS = yes +endif + +######## +# convert Helix-specific options (that represent combinations of standard options) +# into QMK standard options. + +ifeq ($(strip $(LED_BACK_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + OPT_DEFS += -DRGBLED_BACK + ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes') + endif +else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + RGBLIGHT_ENABLE = yes +endif + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DLED_ANIMATIONS +endif + +ifeq ($(strip $(AUDIO_ENABLE)),yes) + ifeq ($(strip $(RGBLIGHT_ENABLE)),yes) + LTO_ENABLE = yes + endif +endif + +ifneq ($(strip $(SHOW_HELIX_OPTIONS)),) + $(info Helix Spacific Build Options) + $(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE)) + $(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE)) + $(info - LED_ANIMATIONS = $(LED_ANIMATIONS)) + $(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE)) + $(info ) + $(info QMK Build Options) + $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) + $(info -- AUDIO_ENABLE = $(AUDIO_ENABLE)) + $(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE)) + $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE)) + $(info -- OPT_DEFS = $(OPT_DEFS)) + $(info -- LTO_ENABLE = $(LTO_ENABLE)) + $(info -- DEBUG_MATRIX_SCAN_RATE_ENABLE = $(DEBUG_MATRIX_SCAN_RATE_ENABLE)) + $(info ) +endif diff --git a/keyboards/helix/pico/qmk_conf/config.h b/keyboards/helix/pico/qmk_conf/config.h new file mode 100644 index 0000000000..15b3392895 --- /dev/null +++ b/keyboards/helix/pico/qmk_conf/config.h @@ -0,0 +1,28 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// place overrides here + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define AUDIO_CLICKY +#endif diff --git a/keyboards/helix/pico/qmk_conf/keyboard.json b/keyboards/helix/pico/qmk_conf/keyboard.json new file mode 100644 index 0000000000..ddb7220342 --- /dev/null +++ b/keyboards/helix/pico/qmk_conf/keyboard.json @@ -0,0 +1,6 @@ +{ + "features": { + "audio": true, + "extrakey": true + } +} diff --git a/keyboards/helix/pico/rules.mk b/keyboards/helix/pico/rules.mk new file mode 100644 index 0000000000..449df9caa6 --- /dev/null +++ b/keyboards/helix/pico/rules.mk @@ -0,0 +1,7 @@ +# Helix Spacific Build Options default values +LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +DEFAULT_FOLDER = helix/pico/base diff --git a/keyboards/helix/pico/sc/keyboard.json b/keyboards/helix/pico/sc/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/pico/sc/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/pico/sc/rules.mk b/keyboards/helix/pico/sc/rules.mk new file mode 100644 index 0000000000..066fffb74a --- /dev/null +++ b/keyboards/helix/pico/sc/rules.mk @@ -0,0 +1 @@ +LED_BACK_ENABLE = yes diff --git a/keyboards/helix/pico/under/keyboard.json b/keyboards/helix/pico/under/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/pico/under/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/pico/under/rules.mk b/keyboards/helix/pico/under/rules.mk new file mode 100644 index 0000000000..a37aa6fab3 --- /dev/null +++ b/keyboards/helix/pico/under/rules.mk @@ -0,0 +1 @@ +LED_UNDERGLOW_ENABLE = yes diff --git a/keyboards/helix/readme.md b/keyboards/helix/readme.md index 810e0c1658..0c190f7626 100644 --- a/keyboards/helix/readme.md +++ b/keyboards/helix/readme.md @@ -1,45 +1,16 @@ -# Helix +Helix +=== -![image](https://i.imgur.com/11o4MRV.jpeg) +![Helix](https://i.imgur.com/XBAmynN.jpg) -* Keyboard Maintainer: [MakotoKurauchi](https://github.com/MakotoKurauchi) -* Hardware Supported: Helix Pico, Beta, rev3 PCBs w/ Pro Micro compatible development board -* Hardware Availability: [Yushakobo](https://shop.yushakobo.jp), [GitHub](https://github.com/MakotoKurauchi/helix) +A compact split ortholinear keyboard. -## Revisions -- [Pico](https://shop.yushakobo.jp/products/helixpico-pcb) - - 4 row PCB - - per-key RGB - - support for a 128x32 OLED display - - footprint for speaker -- [Beta](https://shop.yushakobo.jp/products/oss_pcb?variant=39452554231969) - - 4 or 5 row PCB with snappable bottom row - - per-key RGB - - support for a 128x32 OLED display -- [rev3](https://shop.yushakobo.jp/products/2143) - - 4 or 5 row PCB with snappable bottom row - - per-key RGB - - support for a 128x32 OLED display - - rotary encoders +Keyboard Maintainer: [Makoto Kurauchi](https://github.com/MakotoKurauchi/) [@pluis9](https://twitter.com/pluis9) [yushakobo](https://github.com/yushakobo) +Hardware Supported: Helix PCB Alpha, Beta, Rev3, Pro Micro +Hardware Availability: [PCB & Case Data](https://github.com/MakotoKurauchi/helix), [Yushakobo Shop](https://yushakobo.jp/shop/), [Little Keyboards](https://littlekeyboards.com/collections/helix) -Make example for this keyboard (after setting up your build environment): +## How to build + * [Helix how to Customize and Compile](rev2/keymaps/default/readme.md#customize) + * [HelixPico how to Customize and Compile](pico/keymaps/default/readme.md#customize) - make helix/pico:default - make helix/beta:default - make helix/rev3:default - -Flashing example for this keyboard: - - make helix/pico:default:flash - make helix/beta:default:flash - make helix/rev3: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 and plug in the keyboard -* **Physical reset button**: Briefly tap or double-tap the button near the TRRS jack -* **Keycode in layout**: Press the key mapped to `QK_BOOT` +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/helix/rev2/back/keyboard.json b/keyboards/helix/rev2/back/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/rev2/back/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/rev2/back/rules.mk b/keyboards/helix/rev2/back/rules.mk new file mode 100644 index 0000000000..066fffb74a --- /dev/null +++ b/keyboards/helix/rev2/back/rules.mk @@ -0,0 +1 @@ +LED_BACK_ENABLE = yes diff --git a/keyboards/helix/rev2/base/keyboard.json b/keyboards/helix/rev2/base/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/rev2/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h new file mode 100644 index 0000000000..67af503882 --- /dev/null +++ b/keyboards/helix/rev2/config.h @@ -0,0 +1,78 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 MakotoKurauchi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define QUICK_TAP_TERM 0 + +#define OLED_UPDATE_INTERVAL 50 + +// Helix keyboard RGB LED support +// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes +#ifdef RGBLED_BACK + #define RGBLIGHT_LED_COUNT 32 +#else + #define RGBLIGHT_LED_COUNT 6 +#endif + +#ifndef IOS_DEVICE_ENABLE + #if RGBLIGHT_LED_COUNT <= 6 + #define RGBLIGHT_LIMIT_VAL 255 + #else + #define RGBLIGHT_LIMIT_VAL 120 + #endif + #define RGBLIGHT_VAL_STEP 17 +#else + #if RGBLIGHT_LED_COUNT <= 6 + #define RGBLIGHT_LIMIT_VAL 90 + #else + #define RGBLIGHT_LIMIT_VAL 35 + #endif + #define RGBLIGHT_VAL_STEP 4 +#endif + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json new file mode 100644 index 0000000000..fd829782c0 --- /dev/null +++ b/keyboards/helix/rev2/info.json @@ -0,0 +1,125 @@ +{ + "keyboard_name": "Helix Beta", + "manufacturer": "Yushakobo", + "url": "https://github.com/MakotoKurauchi/helix", + "maintainer": "MakotoKurauchi", + "usb": { + "vid": "0x3265", + "pid": "0x0000", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "transport": { + "sync": { + "indicators": true, + "layer_state": true + } + } + }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, + "ws2812": { + "pin": "D3" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 9, "y": 0}, + {"matrix": [5, 4], "x": 10, "y": 0}, + {"matrix": [5, 3], "x": 11, "y": 0}, + {"matrix": [5, 2], "x": 12, "y": 0}, + {"matrix": [5, 1], "x": 13, "y": 0}, + {"matrix": [5, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 9, "y": 1}, + {"matrix": [6, 4], "x": 10, "y": 1}, + {"matrix": [6, 3], "x": 11, "y": 1}, + {"matrix": [6, 2], "x": 12, "y": 1}, + {"matrix": [6, 1], "x": 13, "y": 1}, + {"matrix": [6, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 5], "x": 9, "y": 2}, + {"matrix": [7, 4], "x": 10, "y": 2}, + {"matrix": [7, 3], "x": 11, "y": 2}, + {"matrix": [7, 2], "x": 12, "y": 2}, + {"matrix": [7, 1], "x": 13, "y": 2}, + {"matrix": [7, 0], "x": 14, "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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [8, 6], "x": 8, "y": 3}, + {"matrix": [8, 5], "x": 9, "y": 3}, + {"matrix": [8, 4], "x": 10, "y": 3}, + {"matrix": [8, 3], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 1], "x": 13, "y": 3}, + {"matrix": [8, 0], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + + {"matrix": [9, 6], "x": 8, "y": 4}, + {"matrix": [9, 5], "x": 9, "y": 4}, + {"matrix": [9, 4], "x": 10, "y": 4}, + {"matrix": [9, 3], "x": 11, "y": 4}, + {"matrix": [9, 2], "x": 12, "y": 4}, + {"matrix": [9, 1], "x": 13, "y": 4}, + {"matrix": [9, 0], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/helix/rev2/keymaps/default/config.h b/keyboards/helix/rev2/keymaps/default/config.h new file mode 100644 index 0000000000..b8c1041cdc --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/config.h @@ -0,0 +1,38 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// place overrides here + +// If you need more program area, try select and reduce rgblight modes to use. + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/helix/rev2/keymaps/default/keymap.c b/keyboards/helix/rev2/keymaps/default/keymap.c new file mode 100644 index 0000000000..0074153ccf --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/keymap.c @@ -0,0 +1,341 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + BACKLIT, + EISU, + KANA, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LBRC, KC_RBRC, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = 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, + _______, QK_BOOT, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD + ) +}; + +#ifdef AUDIO_ENABLE + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); + #endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE + 1); + #endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE); + #endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + return false; + break; + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG2); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG1); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_get_mode(); + #endif +} diff --git a/keyboards/helix/rev2/keymaps/default/oled_display.c b/keyboards/helix/rev2/keymaps/default/oled_display.c new file mode 100644 index 0000000000..4eb815ce48 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/oled_display.c @@ -0,0 +1,138 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +//assign the right code to your layers for OLED display +#define L_BASE 0 +#define L_LOWER (1<<_LOWER) +#define L_RAISE (1<<_RAISE) +#define L_ADJUST (1<<_ADJUST) +#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) + +//OLED update loop +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_0; + } else { + return OLED_ROTATION_180; + } +} + +static void render_rgbled_status(bool full) { +# ifdef RGBLIGHT_ENABLE + char buf[30]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { + if (full) { + snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", + rgblight_get_mode(), + rgblight_get_hue()/RGBLIGHT_HUE_STEP, + rgblight_get_sat()/RGBLIGHT_SAT_STEP, + rgblight_get_val()/RGBLIGHT_VAL_STEP); + } else { + snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); + } + oled_write(buf, false); + } +# endif +} + +static void render_layer_status(void) { + // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below + char buf[10]; + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_P(PSTR("Default"), false); + break; + case L_RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case L_LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case L_ADJUST: + case L_ADJUST_TRI: + oled_write_P(PSTR("Adjust"), false); + break; + default: + oled_write_P(PSTR("Undef-"), false); + snprintf(buf,sizeof(buf), "%u", layer_state); + oled_write(buf, false); + } + oled_write_P(PSTR("\n"), false); +} + +void render_status(void) { + // Render to mode icon + static const char os_logo[][2][3] PROGMEM = {{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + } else { + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + + oled_write_P(PSTR(" "), false); + render_layer_status(); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false); + oled_advance_page(true); + render_rgbled_status(true); + oled_write_P(PSTR("\n"), false); +} + +bool oled_task_user(void) { + +# if DEBUG_TO_SCREEN + if (debug_enable) { + return; + } +# endif + + if (is_keyboard_master()) { + render_status(); + } else { + render_helix_logo(); + render_rgbled_status(false); + render_layer_status(); + } + return false; +} +#endif // end of OLED_ENABLE diff --git a/keyboards/helix/rev2/keymaps/default/readme.md b/keyboards/helix/rev2/keymaps/default/readme.md new file mode 100644 index 0000000000..f1917a100a --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/readme.md @@ -0,0 +1,154 @@ +# The Default Helix Layout +## Layout + +### Qwerty + +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +### Colemak +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +### Dvorak +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +## Layers + +|Priority|number|name|description| +| ---- | ---- | --- | --- | +|high|16|Adjust|Functions| +||4|Raise|Numeric charactors| +||3|Lower|Other charactors| +||2|Dvorak|Dvorak leyout| +||1|Colemak|Colemak leyout| +|low|0|Qwerty|QWERTY leyout(base)| + +### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Raise +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` + +### Adjust (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | Reset|RGBRST| | | | | | | | | | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + `-------------------------------------------------------------------------------------------------' +``` + +## Customize + +see `qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk` + +``` +# Helix Spacific Build Options +# you can uncomment and edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 +# OLED_ENABLE = yes # OLED_ENABLE +# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` +## Compile + +go to qmk top directory. +``` +$ cd qmk_firmware +``` + +build +``` +$ make helix:default # with oled +$ make helix/rev2/back:default # with oled and backlight +$ make HELIX=no-ani helix/rev2/back:default # with oled and backlight without animation +$ make helix/rev2/under:default # with oled and underglow +$ make HELIX=no-oled helix:default # without oled +``` + +build (experimental use of split_common with backlight and oled) +``` +$ make helix/rev2/sc:default +``` + +flash to keyboard +``` +$ make helix:default:flash # with oled +$ make helix/rev2/back:default:flash # with oled and backlight +$ make HELIX=no-ani helix/rev2/back:default:flash # with oled and backlight without animation +$ make helix/rev2/under:default:flash # with oled and underglow +$ make HELIX=no-oled helix:default:flash # without oled +``` + +## Link +* more detail wrote in Japanese [helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md) +* [Helix top](https://github.com/MakotoKurauchi/helix) + diff --git a/keyboards/helix/rev2/keymaps/default/readme_jp.md b/keyboards/helix/rev2/keymaps/default/readme_jp.md new file mode 100644 index 0000000000..6ecac8f25d --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/readme_jp.md @@ -0,0 +1,127 @@ +# The Default Helix Layout +## 配列 + +### Qwerty配列 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +他の配列(Colemak,Dvorak)は、[readme.md](readme.md) を参照 + +## カスタマイズ + +Helix キーボードを4行版として製作したり、オプションの OLED をつけたり、 +RGB バックライトまたは、RGB Underglow をつけた場合は、 +`qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk` の以下の部分を編集して機能を有効化してください。 + +``` +# Helix Spacific Build Options +# you can uncomment and edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 +# OLED_ENABLE = yes # OLED_ENABLE +# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` + +## RGB バックライトを有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 + +``` +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +``` + +## RGB Underglow を有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) +``` + +## OLEDを無効にする + +OLED はデフォルトで有効になっています。 +無効にしたいときは rules.mk の下記の部分を編集して yes を no に変更してください。 +``` +OLED_ENABLE = no # OLED_ENABLE +``` + +## iPad/iPhoneサポートを有効にする。 + +rules.mk の下記の部分を編集して no を yes に変更してください。 +RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone にも接続できるようになります。 + +``` +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` + +## コンパイルの仕方 + +コンパイルは、qmk_firmware のトップディレクトリで行います。 + +``` +$ cd qmk_firmware +``` +qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。 + +``` +$ make helix:default +``` + +キーボードへの書き込みまで同時に行うには下記のように`:flash`を付けます。 + +``` +$ make helix:default:flash +``` + +コンパイル結果と中間生成物を消去したい場合は以下のようにします。 + +``` +$ make helix:default:clean +``` + +上記の、rules.mk によるカスタマイズ項目の一部は下記のようにコマンド上で直接指定することも可能です。 + +OLED を無効にしてコンパイルしてキーボードへの書き込む。 +``` +$ make HELIX=no-oled helix/rev2:default:flash +``` + +RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make helix/rev2/back:default:flash +``` + +RGB Underglow を有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make helix/rev2/under:default:flash +``` + +OLED を無効にして、RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make HELIX=no-oled helix/rev2/back:default:flash +``` + +OLED を無効にして、RGB Underglowを有効にしてコンパイルしてキーボードへ書き込む。 +``` +$ make HELIX=no-oled helix/rev2/under:default:flash +``` + +## リンク + +* さらに詳細は、[こちら helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md)をご覧ください。 +* [Helix top](https://github.com/MakotoKurauchi/helix) diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk new file mode 100644 index 0000000000..83029d1e0b --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/rules.mk @@ -0,0 +1,23 @@ +LTO_ENABLE = yes # if firmware size over limit, try this option + +# Helix Spacific Build Options +# you can uncomment and edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 +# OLED_ENABLE = no # OLED_ENABLE +# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +# OLED_ENABLE が yes のとき +# OLED_SELECT が core ならば QMK 標準の oled_dirver.c を使用します。 +# OLED_SELECT が core 以外ならば従来どおり helix/local_drivers/ssd1306.c を使用します。 +# If OLED_ENABLE is 'yes' +# If OLED_SELECT is 'core', use QMK standard oled_dirver.c. +# If OLED_SELECT is other than 'core', use helix/local_drivers/ssd1306.c. +OLED_SELECT = core + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled_display.c +endif diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/config.h b/keyboards/helix/rev2/keymaps/five_rows_jis/config.h new file mode 100644 index 0000000000..97494c937f --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/config.h @@ -0,0 +1,58 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +// place overrides here + +#ifdef MOUSEKEY_ENABLE + #undef MOUSEKEY_INTERVAL + #define MOUSEKEY_INTERVAL 0 + + #undef MOUSEKEY_TIME_TO_MAX + #define MOUSEKEY_TIME_TO_MAX 150 + + #undef MOUSEKEY_MAX_SPEED + #define MOUSEKEY_MAX_SPEED 3 + + #undef MOUSEKEY_MOVE_DELTA + #define MOUSEKEY_MOVE_DELTA 5 + + #undef MOUSEKEY_DELAY + #define MOUSEKEY_DELAY 0 +#endif + +// If you need more program area, try select and reduce rgblight modes to use. + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +#endif + +#endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c new file mode 100644 index 0000000000..75e50968bc --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c @@ -0,0 +1,410 @@ +#include QMK_KEYBOARD_H +#include "keymap_japanese.h" +#include +#include + +// * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. * +// #define ADJUST_MACRO_ENABLE + +// * If you want to use the Kana key you can enable this comment out. However, the binary size may be over. * +// #define KANA_ENABLE + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _BASE = 0, + _BAS_E, + _LOWER, + _LOW_E, + _RAISE, + _RAI_E, + _ADJUST, +}; + +enum custom_keycodes { + RGBRST = SAFE_RANGE, + #ifdef KANA_ENABLE + EISU, + KANA, + #endif +}; + +// Layer Mode aliases +#define DL_BAS DF(_BASE) +#define DL_BASE DF(_BAS_E) +#define ML_LOW MO(_LOWER) +#define ML_LOWE MO(_LOW_E) +#define ML_RAI MO(_RAISE) +#define ML_RAIE MO(_RAI_E) +#define ML_ADJ MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty JIS Normal + * ,-----------------------------------------. ,-----------------------------------------. + * | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + JP_ZKHK, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + KC_LCTL, KC_LALT, KC_LGUI, ML_ADJ, ML_LOW, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, ML_RAI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Qwerty JIS Exchange L and R + * ,-----------------------------------------. ,-----------------------------------------. + * | 6& | 7' | 8( | 9) | 0 | -= | | Esc | 1! | 2" | 3# | 4$ | 5% | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Y | U | I | O | P | @` | | Tab | Q | W | E | R | T | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | H | J | K | L | ;+ | :* | | | A | S | D | F | G | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | N | M | ,< | .> | /? | Up |Enter |KANJI | Shift| Z | X | C | V | B | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Space |Raise | }] | APP | Left | Down |Right |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp | + * `-------------------------------------------------------------------------------------------------' + */ + [_BAS_E] = LAYOUT( + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, JP_ZKHK, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_SPC, ML_RAIE, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ML_ADJ, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, ML_LOWE, KC_BSPC + ), + + /* Lower JIS Normal + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | -= | ^~ | \| | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | @` | [{ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | ;+ | :* | ]} | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | ,< | .> | /? | \_ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Del | | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, + _______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Lower JIS Exchange L and R + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | -= | ^~ | \| | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | @` | [{ | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | ;+ | :* | ]} | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | ,< | .> | /? | \_ |PageUp| | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | Home |PageDn| End | | | | | | | Del | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOW_E] = LAYOUT( + _______, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL + ), + + /* Raise JIS Normal + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | |MsWhL |MsWhU | Home |PageUp| F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | |MsWhR |MsWhD | End |PageDn| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |MsBtn1|MsBtn2| MsUp | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | |MsLeft|MsDown|MsRght| + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, KC_F12, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, + _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R + ), + + /* Raise JIS Exchange L and R + * ,-----------------------------------------. ,-----------------------------------------. + * | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |MsWhL |MsWhU | F12 | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |MsWhR |MsWhD | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | |MsBtn1|MsBtn2| MsUp | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |MsLeft|MsDown|MsRght| | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAI_E] = LAYOUT( + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, + XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_F12, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX + ), + + /* Adjust (Lower + Raise) Common map for Normal and Exchange + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset|RGBRST| | | | | | Reset|RGBRST| | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | + * |------+------+------+------+------+------| |------+------+------+------+------|------+ + * | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ + * | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + XXXXXXX, QK_BOOT, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, + XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +#if defined(OLED_ENABLE) +char keylog[24] = {}; +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ', + ' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '}; + +static inline void set_keylog(uint16_t keycode, keyrecord_t *record) +{ + char name = ' '; + led_t led_state = host_keyboard_led_state(); + + if (keycode < 60) + { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog, sizeof(keylog), "\n%dx%d %2x %c %c %c %c", + record->event.key.row, + record->event.key.col, + keycode, + name, + led_state.num_lock ? 'N' : ' ', + led_state.caps_lock ? 'C' : ' ', + led_state.scroll_lock ? 'S' : ' ' + ); +} +#endif + +#ifdef RGBLIGHT_ENABLE +#define RGBLIGHT(mode) rgblight_mode(mode) +#else +#define RGBLIGHT(mode) +#endif + +// define variables for reactive RGB +int RGB_current_mode; +#ifdef ADJUST_MACRO_ENABLE +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + RGBLIGHT(RGB_current_mode); + layer_on(layer3); + } else { + layer_off(layer3); + } +} +#define ADJUST_MACRO(layer1, layer2, layer3) update_tri_layer_RGB(layer1, layer2, layer3) +#else +#define ADJUST_MACRO(layer1, layer2, layer3) +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #if defined(OLED_ENABLE) + if (record->event.pressed) { + set_keylog(keycode, record); + } + #endif + + switch (keycode) { + #ifdef RGBLIGHT_ENABLE + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + break; + #endif + #ifdef KANA_ENABLE + case EISU: + if (record->event.pressed) { + if (keymap_config.swap_lalt_lgui==false) { + register_code(KC_LNG2); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG2); + } + break; + case KANA: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LNG1); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG1); + } + break; + #endif + #ifdef RGBLIGHT_ENABLE + case RGBRST: + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + break; + #endif + default: + return true; + } + + return false; +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_get_mode(); + #endif +} + +//OLED update loop +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_0; + } else { + return OLED_ROTATION_180; + } +} + +//assign the right code to your layers for OLED display +#define L_BASE _BASE +#define L_LOWER (1<<_LOWER) +#define L_RAISE (1<<_RAISE) +#define L_ADJUST (1<<_ADJUST) +#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) +#define L_LOW_E (1<<_LOW_E) +#define L_RAI_E (1<<_RAI_E) +#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E) + +const char helix_logo[]={ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, + 0}; + +static inline void render_logo(void) { + oled_write(helix_logo, false); +} + +const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + +static inline void render_status(void) { + char buf[20]; + // Render to mode icon + if(keymap_config.swap_lalt_lgui==false){ + oled_write(mac_win_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write(mac_win_logo[0][1], false); + } else { + oled_write(mac_win_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write(mac_win_logo[1][1], false); + } + + #ifdef RGBLIGHT_ENABLE + snprintf(buf, sizeof(buf), " LED mode:%d", (short)RGB_current_mode); + oled_write(buf, false); + #endif + + // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below + oled_write_P(PSTR("\nLayer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_P(default_layer_state == (1UL<<_BAS_E) ? PSTR("BaseEx") : PSTR("Base"), false); + break; + case L_RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case L_RAI_E: + oled_write_P(PSTR("RaiseEx"), false); + break; + case L_LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case L_LOW_E: + oled_write_P(PSTR("LowerEx"), false); + break; + case L_ADJUST: + case L_ADJUST_TRI: + case L_ADJUST_TRIE: + oled_write_P(PSTR("Adjust"), false); + break; + default: + snprintf(buf, sizeof(buf), "%d", (short)layer_state); + oled_write(buf, false); + } + + oled_write(keylog, false); +} + +bool oled_task_user(void) { + +# if DEBUG_TO_SCREEN + if (debug_enable) { + return; + } +# endif + + if (is_keyboard_master()) { + render_status(); + } else { + render_logo(); + } + + return false; +} + +#endif // end of OLED_ENABLE diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/readme.md b/keyboards/helix/rev2/keymaps/five_rows_jis/readme.md new file mode 100644 index 0000000000..ca408e3913 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/readme.md @@ -0,0 +1,150 @@ +# Helix 5 rows JIS layout + +This keymap was created with the concept that users using Japanese JIS keyboard layout can operate without difficulty. It has the following features. + +* We are considering to be able to input long Japanese notes without moving the layer +* We are arranging the relation of symbols that can not fit in the Lower layer keeping the positional relationship +* The four-way key is in a convex arrangement +* Ctrl, Shift, Tab, Kanji, Esc, GUI (Win), App keys are arranged keeping positional relationship +* Lower / Raise keymap is considering easy placement so that it can be used without memorizing + +This keymap also includes a "NORMAL" keymap that uses Helix's split keyboard as usual, and an "EXCHANGE" key that exchanges left and right sides of Helix's split keyboard for key position optimization I am trying to switch maps. These have the following additional features. + +## NORMAL Keymap + +* It is possible to press the N key with the left index finger and the B key with the right index finger + +## EXCHANGE Keymap + +* By using the 2 key under Pro micro effectively add `` `[{` `` `` `]]` ``, `` `/?` `` Keys to NORMAL's base keymap And make inputs other than the `` `\ _` `` key possible with the base map +* To avoid mistakes in pressing the Kanji key and the Enter key, we are moving to the 2 key. + +## 配列 + +### NORMAL Keymap + + Adjust + ModExc key switches to the NORMAL keymap. + +Base Layer + +``` + ,-----------------------------------------. ,-----------------------------------------. + | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | + `-------------------------------------------------------------------------------------------------' +``` + +Lower Layer + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | | | | | | | | | | -= | ^~ | \| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | | @` | [{ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | ;+ | :* | ]} | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | ,< | .> | /? | \_ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | Del | | | | | | | | + `-------------------------------------------------------------------------------------------------' +``` + +Raise Layer + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | F12 | | | | Home |PageUp| + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | | End |PageDn| + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | |MsLeft|MsDown|MsRght| + `-------------------------------------------------------------------------------------------------' +``` + +### EXCHANGE Keymap + +Adjust + ModExc key switches to the EXCHANGE keymap. + +Base Layer + +``` + ,-----------------------------------------.,-----------------------------------------. + | Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= | + |------+------+------+------+------+------||------+------+------+------+------+------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | @` | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | A | S | D | F | G || H | J | K | L | ;+ | :* | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + |KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right | + `------------------------------------------------'`------------------------------------------------' +``` + +Lower Layer + +``` + ,-----------------------------------------.,-----------------------------------------. + | | | | | | || | | | -= | ^~ | \| | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | | @` | [{ | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | ;+ | :* | ]} | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + | | | | | | | || | ,< | .> | /? | \_ |PageUp| | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + | | | | | | | Del || | | | | Home |PageDn| End | + `------------------------------------------------'`------------------------------------------------' +``` + +Raise Layer + +``` + ,-----------------------------------------.,-----------------------------------------. + | | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F11 | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || F12 | | | | | | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | | | | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + | | |MsBtn1|MsBtn2| | | || | | | | | MsUp | | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + | | | | | | | || | | | |MsLeft|MsDown|MsRght| + `------------------------------------------------'`------------------------------------------------' +``` + +### NORMAL/EXCHANGE common Layer + +Adjust Layer + + NORMAL / EXCHANGE This layer is used in common. The same items are arranged in the same row on both sides so that they can be used in common. + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | + |------+------+------+------+------+------| |------+------+------+------+------|------+ + | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | + |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ + | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | | | | + `-------------------------------------------------------------------------------------------------' +``` + +## How to compile these program + + See the readme of the Default keymap. diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md b/keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md new file mode 100644 index 0000000000..442984f6ff --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md @@ -0,0 +1,173 @@ +# Helix 5 rows JIS layout + +## コンセプト + +このキーマップは日本語JISキーボード配列を利用しているユーザーが無理なく操作出来るというコンセプトで作成しました。以下の特徴があります。 + +* 日本語の長音記号をレイヤーを移動せずに入力可能なように考慮しています +* 入りきらない記号関連をLowerレイヤーに位置関係を維持して配置しています +* 十字キーを凸配置にしています +* Ctrl,Shift,Tab,漢字,Esc,GUI(Win),Appの各キーは位置関係を維持して配置しています +* Lower/Raiseキーマップは暗記しないでも使えるようにわかりやすい配置を考慮しています + + またこのキーマップにはHelixの分割されたキーボードを通常通りに使用する「NORMAL」キーマップと、キー位置の最適化のためにHelixの分割されたキーボードの左右を交換して使う「EXCHANGE」キーマップをバイナリの書き換えなしに切り替えられるようにしています。これらにはさらに以下の特徴があります。 + +### NORMALキーマップ + +* Nキーを左人差し指で、Bキーを右人差し指で押下することが可能 + +### EXCHANGEキーマップ + +* Pro micro下の2キーを有効に使うことにより、NORMALのベースキーマップに```[{```,```}]```,```/?```の各キーを追加し、```\_```キー以外の入力をベースマップで可能にしています +* 漢字キー,Enterキーの押し間違いを避けるためPro micro下の2キーに移動しています + +## カスタマイズ + +Normal/Exchangeにそれぞれ、Base,Lower,Raiseの各レイヤーを備え、2マップ3レイヤー、共通1レイヤー(Adjust)の全7種のレイヤーを備えています。 +ファームの書き換えなしにキーマップを別のものに切り替えられるので、片方は通常のキーマップ、もう片方は画像や動画編集用のキーマップや別の変態配置のキーマップにすれば、状況に応じて簡単に切り替えられます。 + +## 配列 + +### NORMAL + + Adjust + ModNrmキーでNORMALキーマップに切り替わります。 + +#### Baseレイヤー + +``` + ,-----------------------------------------. ,-----------------------------------------. + | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | + `-------------------------------------------------------------------------------------------------' +``` + +#### Lowerレイヤー + + 記号キーと、BackSpace位置にDeleteキーを配置しています。 + 例えば```|```キーを入力する場合、Lower + Shift + \キーで入力することが出来ます。 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | | | | | | | | | | -= | ^~ | \| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | | @` | [{ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | ;+ | :* | ]} | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | ,< | .> | /? | \_ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | Del | | | | | | | | + `-------------------------------------------------------------------------------------------------' +``` + +#### Raiseレイヤー + + rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。 + また、F1-F12キーをHHKBライクに使えるように横並びにしました。 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | F12 | | | | Home |PageUp| + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | | End |PageDn| + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | |MsLeft|MsDown|MsRght| + `-------------------------------------------------------------------------------------------------' +``` + +### EXCHANGEキーマップ + + Adjust + ModExcキーでEXCHANGEキーマップに切り替わります。 + HelixのUSBやフォンケーブルの接続は変更せず、分割された左右のキーボードを入れ替えて使います。 + +#### Baseレイヤー + + ちょっと無理やりですが```[{```,```}]```キーを突っ込んでいます。 + +``` + ,-----------------------------------------.,-----------------------------------------. + | Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= | + |------+------+------+------+------+------||------+------+------+------+------+------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | @` | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | A | S | D | F | G || H | J | K | L | ;+ | :* | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + |KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right | + `------------------------------------------------'`------------------------------------------------' +``` + +#### Lowerレイヤー + + 記号キーと、BackSpace位置にDeleteキーを配置しています。 + PageDown/Up, Home/EndをCtrl+十字キーの延長線上で使用できるように配置しています。 + +``` + ,-----------------------------------------.,-----------------------------------------. + | | | | | | || | | | -= | ^~ | \| | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | | @` | [{ | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | ;+ | :* | ]} | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + | | | | | | | || | ,< | .> | /? | \_ |PageUp| | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + | | | | | | | Del || | | | | Home |PageDn| End | + `------------------------------------------------'`------------------------------------------------' +``` + +#### Raiseレイヤー + + rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。 + また、F1-F12キーをHHKBライクに使えるように横並びにしました。 + マウスキーは十字キーの延長線上で使用できるように配置しています。 + +``` + ,-----------------------------------------.,-----------------------------------------. + | | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F11 | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || F12 | | | | | | + |------+------+------+------+------+------||------+------+------+------+------+------| + | | | | | | || | | | | | | + ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. + | | |MsBtn1|MsBtn2| | | || | | | | | MsUp | | + |------+------+------+------+------+------+------||------+------+------+------+------+------+------| + | | | | | | | || | | | |MsLeft|MsDown|MsRght| + `------------------------------------------------'`------------------------------------------------' +``` + +### NORMAL/EXCHANGE共通レイヤー + +Adjustレイヤー + + NORMAL/EXCHANGE共通で利用するレイヤーです。共通で使えるように両側同じ並びで同じものを配置しています。 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | + |------+------+------+------+------+------| |------+------+------+------+------|------+ + | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | + |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ + | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | | | | + `-------------------------------------------------------------------------------------------------' +``` + +## コンパイルの仕方 + + Defaultキーマップのreadmeを参照してください。 diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk b/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk new file mode 100644 index 0000000000..b4f8e27de4 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk @@ -0,0 +1,19 @@ +LTO_ENABLE = no # if firmware size over limit, try this option + +# Helix Spacific Build Options +# you can uncomment and edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 +# OLED_ENABLE = no # OLED_ENABLE +# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +# LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +# OLED_ENABLE が yes のとき +# OLED_SELECT が core ならば QMK 標準の oled_dirver.c を使用します。 +# OLED_SELECT が core 以外ならば従来どおり helix/local_drivers/ssd1306.c を使用します。 +# If OLED_ENABLE is 'yes' +# If OLED_SELECT is 'core', use QMK standard oled_dirver.c. +# If OLED_SELECT is other than 'core', use helix/local_drivers/ssd1306.c. +OLED_SELECT = core diff --git a/keyboards/helix/rev2/keymaps/led_test/README.md b/keyboards/helix/rev2/keymaps/led_test/README.md new file mode 100644 index 0000000000..2fe6706452 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/README.md @@ -0,0 +1,27 @@ +# LED test Keymap + +## Layout + +The layout is the same as default. + +## Feature + +* OLED is enabled. +* LED backlight is enabled and always lit. +* The lighting color of LED changes periodically. Red, Green and Blue. + +The user can check whether the LED is lit or not. + +## Compile + +``` +$ cd qmk_firmware +$ make helix:led_test +``` + +## Flash QMK Firmware + +Execute the 'make' command and press the reset switch on the keyboard. +``` +$ make helix:led_test:flash +``` diff --git a/keyboards/helix/rev2/keymaps/led_test/config.h b/keyboards/helix/rev2/keymaps/led_test/config.h new file mode 100644 index 0000000000..e2bdf2f329 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/config.h @@ -0,0 +1,41 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +// place overrides here + +// If you need more program area, try select and reduce rgblight modes to use. + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + //#define RGBLIGHT_EFFECT_BREATHING + //#define RGBLIGHT_EFFECT_RAINBOW_MOOD + //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + //#define RGBLIGHT_EFFECT_SNAKE + //#define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + //#define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RGB_TEST // led_test keymap need only this. + //#define RGBLIGHT_EFFECT_ALTERNATING +#endif + +#endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/led_test/keymap.c b/keyboards/helix/rev2/keymaps/led_test/keymap.c new file mode 100644 index 0000000000..0074153ccf --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/keymap.c @@ -0,0 +1,341 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + BACKLIT, + EISU, + KANA, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LBRC, KC_RBRC, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = 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, + _______, QK_BOOT, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD + ) +}; + +#ifdef AUDIO_ENABLE + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); + #endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE + 1); + #endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGBLIGHT_MODE_SNAKE); + #endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + return false; + break; + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG2); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG1); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LNG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_get_mode(); + #endif +} diff --git a/keyboards/helix/rev2/keymaps/led_test/led_test_init.c b/keyboards/helix/rev2/keymaps/led_test/led_test_init.c new file mode 100644 index 0000000000..7f8813acdd --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/led_test_init.c @@ -0,0 +1,6 @@ +#include QMK_KEYBOARD_H + +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_RGB_TEST); +} diff --git a/keyboards/helix/rev2/keymaps/led_test/oled_display.c b/keyboards/helix/rev2/keymaps/led_test/oled_display.c new file mode 100644 index 0000000000..3261b6c581 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/oled_display.c @@ -0,0 +1 @@ +#include "../default/oled_display.c" diff --git a/keyboards/helix/rev2/keymaps/led_test/rules.mk b/keyboards/helix/rev2/keymaps/led_test/rules.mk new file mode 100644 index 0000000000..5aa9439f4c --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/rules.mk @@ -0,0 +1,25 @@ +# QMK Standard Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +# See TOP/keyboards/helix/rules.mk for a list of options that can be set. +# See TOP/docs/config_options.md for more information. +# + +LTO_ENABLE = no # if firmware size over limit, try this option + +# Helix Spacific Build Options +# you can uncomment and edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 +OLED_ENABLE = yes # OLED_ENABLE +# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations +# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +OLED_SELECT = core +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled_display.c +endif +SRC += led_test_init.c diff --git a/keyboards/helix/rev2/local_features.mk b/keyboards/helix/rev2/local_features.mk new file mode 100644 index 0000000000..4bfee0411d --- /dev/null +++ b/keyboards/helix/rev2/local_features.mk @@ -0,0 +1,90 @@ +# +# local_features.mk contains post-processing rules for the Helix keyboard. +# +# Post-processing rules convert keyboard-specific shortcuts (that represent +# combinations of standard options) into QMK standard options. +# + +KEYBOARD_LOCAL_FEATURES_MK := +-include $(strip $(HELIX_TOP_DIR)/rev2/override_helix_options.mk) ## File dedicated to maintenance + +# Parse 'HELIX=xx,yy,zz' option +ifneq ($(strip $(HELIX)),) + # make HELIX=ios helix/pico:AKEYMAP + # make HELIX=no-ani helix/pico:AKEYMAP + # make HELIX=no-oled helix/pico:AKEYMAP + # make HELIX=ios,no-ani,no-oled helix/pico:AKEYMAP + define HELIX_OPTION_PARSE + # parce 'no-ani' 'ios' 'no-oled' + $(if $(SHOW_PARCE),$(info parse .$1.)) #debug + $(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1)) + + ifeq ($(strip $1),ios) + IOS_DEVICE_ENABLE = yes + endif + ifneq ($(filter na no_ani no-ani,$(strip $1)),) + LED_ANIMATIONS = no + endif + ifneq ($(filter nooled no-oled,$(strip $1)),) + OLED_ENABLE = no + endif + ifeq ($(strip $1),oled) + OLED_ENABLE = yes + endif + endef # end of HELIX_OPTION_PARSE + + COMMA=, + $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \ + $(call HELIX_OPTION_PARSE,$(A_OPTION_NAME)))) + + SHOW_HELIX_OPTIONS = yes +endif + +######## +# convert Helix-specific options (that represent combinations of standard options) +# into QMK standard options. + +ifeq ($(strip $(LED_BACK_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + OPT_DEFS += -DRGBLED_BACK + ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes') + endif +else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + RGBLIGHT_ENABLE = yes +endif + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DLED_ANIMATIONS +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + ifeq ($(strip $(LOCAL_GLCDFONT)), yes) + OPT_DEFS += -DOLED_FONT_H=\ + else + OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\" + endif +endif + +ifneq ($(strip $(SHOW_HELIX_OPTIONS)),) + $(info Helix Spacific Build Options) + $(info - OLED_ENABLE = $(OLED_ENABLE)) + $(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE)) + $(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE)) + $(info - LED_ANIMATIONS = $(LED_ANIMATIONS)) + $(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE)) + $(info ) + $(info QMK Build Options) + $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) + $(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE)) + $(info -- OLED_DRIVER = $(OLED_DRIVER)) + $(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE)) + $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE)) + $(info -- OPT_DEFS = $(OPT_DEFS)) + $(info -- LTO_ENABLE = $(LTO_ENABLE)) + $(info ) +endif diff --git a/keyboards/helix/rev2/override_helix_options.mk-maintenance b/keyboards/helix/rev2/override_helix_options.mk-maintenance new file mode 100644 index 0000000000..56dee8ce78 --- /dev/null +++ b/keyboards/helix/rev2/override_helix_options.mk-maintenance @@ -0,0 +1,46 @@ +ifneq ($(strip $(HELIX)),) + $(info -------------------------) + $(info override_helix_options.mk) + $(info -------------------------) +endif + +define HELIX_OVERRIDE_PARSE + ifeq ($(strip $1),back) + LED_BACK_ENABLE = yes + LED_UNDERGLOW_ENABLE = no + endif + ifeq ($(strip $1),under) + LED_BACK_ENABLE = no + LED_UNDERGLOW_ENABLE = yes + endif + ifneq ($(filter led-off led_off noback no-back nounder no-under,$(strip $1)),) + LED_BACK_ENABLE = no + LED_UNDERGLOW_ENABLE = no + endif + ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),) + OLED_ENABLE = yes + OLED_SELECT = core + endif + ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),) + OLED_ENABLE = yes + OLED_SELECT = local + endif + ifneq ($(filter sc split-common split_common,$(strip $1)),) + SPLIT_KEYBOARD = yes + endif + ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),) + SPLIT_KEYBOARD = no + endif + ifeq ($(strip $1),scan) + DEBUG_MATRIX_SCAN_RATE_ENABLE = yes + endif + ifeq ($(strip $1),scan-api) + DEBUG_MATRIX_SCAN_RATE_ENABLE = api + endif + ifeq ($(strip $1),lto) + LTO_ENABLE = yes + endif + ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) + LTO_ENABLE = no + endif +endef # end of HELIX_OVERRIDE_PARSE diff --git a/keyboards/helix/rev2/post_config.h b/keyboards/helix/rev2/post_config.h new file mode 100644 index 0000000000..dda73d5d22 --- /dev/null +++ b/keyboards/helix/rev2/post_config.h @@ -0,0 +1,7 @@ +#pragma once + +#if defined(SPLIT_KEYBOARD) /* if use split_common */ +# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_SPLIT) +# define RGBLIGHT_SPLIT /* helix hardware need this */ +# endif +#endif diff --git a/keyboards/helix/rev2/post_rules.mk b/keyboards/helix/rev2/post_rules.mk new file mode 100644 index 0000000000..4c671d4515 --- /dev/null +++ b/keyboards/helix/rev2/post_rules.mk @@ -0,0 +1,3 @@ +ifneq ($(strip $(KEYBOARD_LOCAL_FEATURES_MK)),) + include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) +endif diff --git a/keyboards/helix/rev2/qmk_conf/keyboard.json b/keyboards/helix/rev2/qmk_conf/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/rev2/qmk_conf/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/rev2/qmk_conf/rules.mk b/keyboards/helix/rev2/qmk_conf/rules.mk new file mode 100644 index 0000000000..67caab1ce6 --- /dev/null +++ b/keyboards/helix/rev2/qmk_conf/rules.mk @@ -0,0 +1,4 @@ +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations + +include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) diff --git a/keyboards/helix/rev2/readme.md b/keyboards/helix/rev2/readme.md new file mode 100644 index 0000000000..e6a6f2e952 --- /dev/null +++ b/keyboards/helix/rev2/readme.md @@ -0,0 +1,13 @@ +# Helix rev2 + +A compact split ortholinear keyboard. + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Helix rev2 PCBs, Pro Micro +* Hardware Availability: [PCB & Case Data](https://github.com/MakotoKurauchi/helix) + +Make example for this keyboard (after setting up your build environment): + + make helix/rev2: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). diff --git a/keyboards/helix/rev2/rev2.c b/keyboards/helix/rev2/rev2.c new file mode 100644 index 0000000000..ded22bbe93 --- /dev/null +++ b/keyboards/helix/rev2/rev2.c @@ -0,0 +1,76 @@ +/* Copyright 2018 MakotoKurauchi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "rev2.h" + +// Each keymap.c should use is_keyboard_master() instead of 'is_master'. +// But keep 'is_master' for a while for backwards compatibility +// for the old keymap.c. +uint8_t is_master = false; + +bool is_mac_mode(void) { + // This is the opposite of the QMK standard, but we'll leave it for backwards compatibility. + return keymap_config.swap_lalt_lgui == false; +} + +void set_mac_mode_kb(bool macmode) { + /* The result is the same as pressing the AG_NORM(=MAGIC_UNSWAP_ALT_GUI)/AG_SWAP(=MAGIC_SWAP_ALT_GUI) keys. + * see + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L123-L124 + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 + */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; + eeconfig_update_keymap(keymap_config.raw); +} + +void matrix_init_kb(void) { + // Each keymap.c should use is_keyboard_master() instead of is_master. + // But keep is_master for a while for backwards compatibility + // for the old keymap.c. + is_master = is_keyboard_master(); + + matrix_init_user(); +}; + +void keyboard_post_init_kb(void) { +#if defined(DEBUG_MATRIX_SCAN_RATE) + debug_enable = true; +#endif + keyboard_post_init_user(); +} + +#ifdef OLED_ENABLE +void render_helix_logo(void) { + static const char helix_logo[] PROGMEM ={ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, + 0}; + oled_write_P(helix_logo, false); +} + +bool oled_task_kb(void) { + if (oled_task_user()) { + /* keymap/user level oled_task_user() dose not exist */ + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false); + oled_advance_page(true); + render_helix_logo(); + } + return false; +} +#endif /* end of OLED_ENABLE */ diff --git a/keyboards/helix/rev2/rev2.h b/keyboards/helix/rev2/rev2.h new file mode 100644 index 0000000000..dad08c267e --- /dev/null +++ b/keyboards/helix/rev2/rev2.h @@ -0,0 +1,36 @@ +/* Copyright 2018 MakotoKurauchi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +bool is_mac_mode(void); +void set_mac_mode_kb(bool macmode); + +#ifdef OLED_ENABLE +void render_helix_logo(void); +#endif + +#ifndef SPLIT_KEYBOARD + extern bool is_helix_master(void); + #define is_keyboard_master() is_helix_master() +#endif + +// Each keymap.c should use is_keyboard_master() instead of 'is_master', 'has_usb()'. +// But keep 'is_master' for a while for backwards compatibility +// for the old keymap.c. +extern uint8_t is_master; // 'is_master' will be obsolete, it is recommended to use 'is_keyboard_master ()' instead. +#define has_usb() is_keyboard_master() diff --git a/keyboards/helix/rev2/rules.mk b/keyboards/helix/rev2/rules.mk new file mode 100644 index 0000000000..4f830403f4 --- /dev/null +++ b/keyboards/helix/rev2/rules.mk @@ -0,0 +1,11 @@ +KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk + +# Helix Spacific Build Options default values +OLED_ENABLE = yes # OLED_ENABLE +LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +DEFAULT_FOLDER = helix/rev2/base diff --git a/keyboards/helix/rev2/sc/keyboard.json b/keyboards/helix/rev2/sc/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/rev2/sc/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/rev2/sc/rules.mk b/keyboards/helix/rev2/sc/rules.mk new file mode 100644 index 0000000000..066fffb74a --- /dev/null +++ b/keyboards/helix/rev2/sc/rules.mk @@ -0,0 +1 @@ +LED_BACK_ENABLE = yes diff --git a/keyboards/helix/rev2/serial_config_simpleapi.h b/keyboards/helix/rev2/serial_config_simpleapi.h new file mode 100644 index 0000000000..b51e6f281b --- /dev/null +++ b/keyboards/helix/rev2/serial_config_simpleapi.h @@ -0,0 +1,4 @@ +#pragma once + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2 diff --git a/keyboards/helix/rev2/under/keyboard.json b/keyboards/helix/rev2/under/keyboard.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/keyboards/helix/rev2/under/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/helix/rev2/under/rules.mk b/keyboards/helix/rev2/under/rules.mk new file mode 100644 index 0000000000..a37aa6fab3 --- /dev/null +++ b/keyboards/helix/rev2/under/rules.mk @@ -0,0 +1 @@ +LED_UNDERGLOW_ENABLE = yes diff --git a/keyboards/helix/rev3/keyboard.json b/keyboards/helix/rev3/keyboard.json deleted file mode 100644 index 887a5c8024..0000000000 --- a/keyboards/helix/rev3/keyboard.json +++ /dev/null @@ -1,227 +0,0 @@ -{ - "keyboard_name": "Helix rev3", - "dip_switch": { - "matrix_grid": [ - [0, 6], - [1, 6], - [5, 6], - [6, 6] - ] - }, - "encoder": { - "rotary": [ - {"pin_a": "B6", "pin_b": "B5"} - ] - }, - "features": { - "dip_switch": false, - "encoder": true - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], - "rows": ["D4", "C6", "D7", "E6", "B4"] - }, - "rgb_matrix": { - "layout": [ - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, - {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, - {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, - {"matrix": [6, 2], "x": 192, "y": 16, "flags": 4}, - {"matrix": [6, 3], "x": 176, "y": 16, "flags": 4}, - {"matrix": [6, 4], "x": 160, "y": 16, "flags": 4}, - {"matrix": [6, 5], "x": 144, "y": 16, "flags": 4}, - {"matrix": [7, 5], "x": 144, "y": 32, "flags": 4}, - {"matrix": [7, 4], "x": 160, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 176, "y": 32, "flags": 4}, - {"matrix": [7, 2], "x": 192, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, - {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, - {"matrix": [8, 2], "x": 192, "y": 48, "flags": 4}, - {"matrix": [8, 3], "x": 176, "y": 48, "flags": 4}, - {"matrix": [8, 4], "x": 160, "y": 48, "flags": 4}, - {"matrix": [8, 5], "x": 144, "y": 48, "flags": 4}, - {"matrix": [8, 6], "x": 128, "y": 48, "flags": 4}, - {"matrix": [9, 6], "x": 128, "y": 64, "flags": 4}, - {"matrix": [9, 5], "x": 144, "y": 64, "flags": 4}, - {"matrix": [9, 4], "x": 160, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 176, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 192, "y": 64, "flags": 4}, - {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, - {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} - ], - "split_count": [32, 32] - }, - "split": { - "handedness": { - "matrix_grid": ["D7", "B2"] - } - }, - "url": "https://shop.yushakobo.jp/products/2143", - "usb": { - "device_version": "0.0.1", - "pid": "0x0003" - }, - "layouts": { - "LAYOUT_4row": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [4, 5], "x": 9, "y": 0}, - {"matrix": [4, 4], "x": 10, "y": 0}, - {"matrix": [4, 3], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0}, - {"matrix": [4, 1], "x": 13, "y": 0}, - {"matrix": [4, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [5, 5], "x": 9, "y": 1}, - {"matrix": [5, 4], "x": 10, "y": 1}, - {"matrix": [5, 3], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1}, - {"matrix": [5, 1], "x": 13, "y": 1}, - {"matrix": [5, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [6, 5], "x": 9, "y": 2}, - {"matrix": [6, 4], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2}, - {"matrix": [6, 1], "x": 13, "y": 2}, - {"matrix": [6, 0], "x": 14, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [7, 6], "x": 8, "y": 3}, - {"matrix": [7, 5], "x": 9, "y": 3}, - {"matrix": [7, 4], "x": 10, "y": 3}, - {"matrix": [7, 3], "x": 11, "y": 3}, - {"matrix": [7, 2], "x": 12, "y": 3}, - {"matrix": [7, 1], "x": 13, "y": 3}, - {"matrix": [7, 0], "x": 14, "y": 3} - ] - }, - "LAYOUT_5row": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [5, 5], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 10, "y": 0}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0}, - {"matrix": [5, 1], "x": 13, "y": 0}, - {"matrix": [5, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [6, 5], "x": 9, "y": 1}, - {"matrix": [6, 4], "x": 10, "y": 1}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1}, - {"matrix": [6, 1], "x": 13, "y": 1}, - {"matrix": [6, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [7, 5], "x": 9, "y": 2}, - {"matrix": [7, 4], "x": 10, "y": 2}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2}, - {"matrix": [7, 1], "x": 13, "y": 2}, - {"matrix": [7, 0], "x": 14, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [8, 6], "x": 8, "y": 3}, - {"matrix": [8, 5], "x": 9, "y": 3}, - {"matrix": [8, 4], "x": 10, "y": 3}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3}, - {"matrix": [8, 1], "x": 13, "y": 3}, - {"matrix": [8, 0], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 6], "x": 6, "y": 4}, - {"matrix": [9, 6], "x": 8, "y": 4}, - {"matrix": [9, 5], "x": 9, "y": 4}, - {"matrix": [9, 4], "x": 10, "y": 4}, - {"matrix": [9, 3], "x": 11, "y": 4}, - {"matrix": [9, 2], "x": 12, "y": 4}, - {"matrix": [9, 1], "x": 13, "y": 4}, - {"matrix": [9, 0], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/helix/rev3/keymaps/default/keymap.json b/keyboards/helix/rev3/keymaps/default/keymap.json deleted file mode 100644 index 429aecd714..0000000000 --- a/keyboards/helix/rev3/keymaps/default/keymap.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "keyboard": "helix/rev3", - "keymap": "default", - "layout": "LAYOUT_5row", - "config": { - "features": { - "encoder_map": true - } - }, - "layers": [ - [ - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", - "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_LBRC", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT" , - "MO(3)", "KC_ESC", "KC_LALT", "KC_LGUI", "LALT(KC_GRV)", "MO(1)", "KC_SPC", "KC_SPC", "MO(2)", "LALT(KC_GRV)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", - "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", - "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "_______", "_______", "KC_F12", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD" - ] - ], - "encoders": [ - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] - ] -} diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h new file mode 100644 index 0000000000..56d9a13feb --- /dev/null +++ b/keyboards/helix/rev3_4rows/config.h @@ -0,0 +1,60 @@ +/* +Copyright 2020 yushakobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Split hand configration */ +#define SPLIT_HAND_MATRIX_GRID D7,B2 + +/* Custom font */ +#define OLED_FONT_H "keyboards/helix/common/glcdfont.c" + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/helix/rev3_4rows/keyboard.json b/keyboards/helix/rev3_4rows/keyboard.json new file mode 100644 index 0000000000..5e9fd2dcd8 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keyboard.json @@ -0,0 +1,117 @@ +{ + "keyboard_name": "Helix rev3 4rows", + "manufacturer": "yushakobo", + "url": "", + "maintainer": "yushakobo", + "usb": { + "vid": "0x3265", + "pid": "0x0004", + "device_version": "0.0.1" + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgb_matrix": { + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10, + "max_brightness": 150, + "split_count": [25, 25], + "sleep": true + }, + "dip_switch": { + "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ] + }, + "encoder": { + "rotary": [ + {"pin_a": "B6", "pin_b": "B5"} + ] + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "ws2812": { + "pin": "D3" + }, + "rgblight": { + "led_count": 50, + "max_brightness": 120, + "split_count": [25, 25], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [4, 5], "x": 9, "y": 0}, + {"matrix": [4, 4], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0}, + {"matrix": [4, 1], "x": 13, "y": 0}, + {"matrix": [4, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, + + {"matrix": [5, 5], "x": 9, "y": 1}, + {"matrix": [5, 4], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1}, + {"matrix": [5, 1], "x": 13, "y": 1}, + {"matrix": [5, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, + + {"matrix": [6, 5], "x": 9, "y": 2}, + {"matrix": [6, 4], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2}, + {"matrix": [6, 1], "x": 13, "y": 2}, + {"matrix": [6, 0], "x": 14, "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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [7, 6], "x": 8, "y": 3}, + {"matrix": [7, 5], "x": 9, "y": 3}, + {"matrix": [7, 4], "x": 10, "y": 3}, + {"matrix": [7, 3], "x": 11, "y": 3}, + {"matrix": [7, 2], "x": 12, "y": 3}, + {"matrix": [7, 1], "x": 13, "y": 3}, + {"matrix": [7, 0], "x": 14, "y": 3} + ] + } + } +} diff --git a/keyboards/helix/rev3_4rows/keymaps/default/keymap.c b/keyboards/helix/rev3_4rows/keymaps/default/keymap.c new file mode 100644 index 0000000000..e528558ed6 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/keymap.c @@ -0,0 +1,180 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST|EEPRST| | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = 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, + _______, QK_BOOT, RGBRST, EE_CLR, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD + ) + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LNG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LNG1); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_RAISE); + } else { + layer_off(_LOWER); + layer_off(_RAISE); + } + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} diff --git a/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c b/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c new file mode 100644 index 0000000000..1158461e78 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c @@ -0,0 +1,120 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_ENABLE + +void render_status(void) { + + // Render to mode icon + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + + oled_write_P(PSTR(" "), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + oled_write_P(PSTR("\n"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +static void render_rgbled_status(bool full) { +#ifdef RGBLIGHT_ENABLE + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { + if (full) { + // " LED %d:%d,%d,%d" + oled_write_P(PSTR(" LED"), false); + oled_write(get_u8_str(rgblight_get_mode(), ' '), false); + oled_write_char(':', false); + oled_write(get_u8_str(rgblight_get_hue() / RGBLIGHT_HUE_STEP, ' '), false); + oled_write_char(',', false); + oled_write(get_u8_str(rgblight_get_sat() / RGBLIGHT_SAT_STEP, ' '), false); + oled_write_char(',', false); + oled_write(get_u8_str(rgblight_get_val() / RGBLIGHT_VAL_STEP, ' '), false); + } else { + // "[%2d]" + oled_write_char('[', false); + oled_write(get_u8_str(rgblight_get_mode(), ' '), false); + oled_write_char(']', false); + } + } +#endif +} + +bool oled_task_user(void) { + if(is_keyboard_master()){ + render_status(); + }else{ + render_logo(); + render_rgbled_status(true); + } + return false; +} +#endif diff --git a/keyboards/helix/rev3_4rows/keymaps/default/readme.md b/keyboards/helix/rev3_4rows/keymaps/default/readme.md new file mode 100644 index 0000000000..e747096851 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/readme.md @@ -0,0 +1,66 @@ +# The default keymap for Helix rev3 4rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' +``` +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST|EEPRST| | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/helix/rev3_4rows/oled_display.c b/keyboards/helix/rev3_4rows/oled_display.c new file mode 100644 index 0000000000..36bf63cb60 --- /dev/null +++ b/keyboards/helix/rev3_4rows/oled_display.c @@ -0,0 +1,9 @@ +/* + + There are several ways to create your own keymap oled code: + + * Add the oled code to your keymaps//keymap.c. + * Create a new file in your keymaps// directory, add the oled code, and add `SRC + = ` to keymaps//rules.mk. + * Copy keymaps/default/oled_display.c to your keymaps// directory and modify it. + +*/ diff --git a/keyboards/helix/rev3_4rows/readme.md b/keyboards/helix/rev3_4rows/readme.md new file mode 100644 index 0000000000..25e856badf --- /dev/null +++ b/keyboards/helix/rev3_4rows/readme.md @@ -0,0 +1,13 @@ +# Helix rev3 4rows + +A compact split ortholinear keyboard. + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Helix rev3 PCBs, Pro Micro +* Hardware Availability: (Under preparation) + +Make example for this keyboard (after setting up your build environment): + + make helix/rev3_4rows: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). diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.c b/keyboards/helix/rev3_4rows/rev3_4rows.c new file mode 100644 index 0000000000..ff61027a96 --- /dev/null +++ b/keyboards/helix/rev3_4rows/rev3_4rows.c @@ -0,0 +1,114 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rev3_4rows.h" + +bool is_mac_mode(void) { + return keymap_config.swap_lalt_lgui == false; +} + +void set_mac_mode(bool macmode) { + /* The result is the same as pressing the AG_NORM(=MAGIC_UNSWAP_ALT_GUI)/AG_SWAP(=MAGIC_SWAP_ALT_GUI) keys. + * see + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L123-L124 + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 + */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; + eeconfig_update_keymap(keymap_config.raw); +} + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + switch (index) { + case 0: + if(active) { // Left no.1 Helix rev3 common + set_mac_mode(false); + } else { + set_mac_mode(true); + } + break; + default: // Left no.2 or Right no.1 or Right no.2 for user/keymap + dip_switch_update_user(index, active); + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +static char *sprint_decimal(char *buf, int data) { + if (data > 9) { + buf = sprint_decimal(buf, data/10); + } + *buf++ = "0123456789"[data%10]; + *buf = '\0'; + return buf; +} + +char *sprints(char *buf, char *src) { + while (*src) { + *buf++ = *src++; + } + *buf = '\0'; + return buf; +} + +char *sprintd(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + buf = sprint_decimal(buf, data); + return buf; +} + +char *sprint2d(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + if (data > 99) { + return sprint_decimal(buf, data); + } + if (data < 10) { + *buf++ = ' '; + } + return sprint_decimal(buf, data); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + static const char PROGMEM helix_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, + 0x0 + }; + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + + if (is_keyboard_master()) { + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + char buf[20]; + sprint2d(buf, " Layer: ", get_highest_layer(layer_state)); + oled_write(buf, false); + } else { + oled_write_P(helix_logo, false); + } + return false; +} +#endif diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.h b/keyboards/helix/rev3_4rows/rev3_4rows.h new file mode 100644 index 0000000000..f36a5f2840 --- /dev/null +++ b/keyboards/helix/rev3_4rows/rev3_4rows.h @@ -0,0 +1,22 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +bool is_mac_mode(void); +void set_mac_mode(bool macmode); diff --git a/keyboards/helix/rev3_4rows/rules.mk b/keyboards/helix/rev3_4rows/rules.mk new file mode 100644 index 0000000000..01251cd780 --- /dev/null +++ b/keyboards/helix/rev3_4rows/rules.mk @@ -0,0 +1,9 @@ +EXTRAKEY_ENABLE = yes # Audio control and System control +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no +OLED_ENABLE = yes +ENCODER_ENABLE = yes +DIP_SWITCH_ENABLE = no +LTO_ENABLE = yes + +SRC += oled_display.c diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h new file mode 100644 index 0000000000..84173da2de --- /dev/null +++ b/keyboards/helix/rev3_5rows/config.h @@ -0,0 +1,60 @@ +/* +Copyright 2020 yushakobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Split hand configration */ +#define SPLIT_HAND_MATRIX_GRID D7,B2 + +/* Custom font */ +#define OLED_FONT_H "keyboards/helix/common/glcdfont.c" + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/helix/rev3_5rows/keyboard.json b/keyboards/helix/rev3_5rows/keyboard.json new file mode 100644 index 0000000000..b61db7df86 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keyboard.json @@ -0,0 +1,197 @@ +{ + "keyboard_name": "Helix rev3 5rows", + "manufacturer": "yushakobo", + "url": "", + "maintainer": "yushakobo", + "usb": { + "vid": "0x3265", + "pid": "0x0003", + "device_version": "0.0.1" + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgb_matrix": { + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10, + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 48, "flags": 4}, + {"matrix": [8, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [9, 6], "x": 128, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 144, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 160, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 176, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 192, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 128, + "split_count": [32, 32], + "sleep": true + }, + "dip_switch": { + "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ] + }, + "encoder": { + "rotary": [ + {"pin_a": "B6", "pin_b": "B5"} + ] + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "ws2812": { + "pin": "D3" + }, + "rgblight": { + "led_count": 64, + "max_brightness": 120, + "split_count": [32, 32], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 9, "y": 0}, + {"matrix": [5, 4], "x": 10, "y": 0}, + {"matrix": [5, 3], "x": 11, "y": 0}, + {"matrix": [5, 2], "x": 12, "y": 0}, + {"matrix": [5, 1], "x": 13, "y": 0}, + {"matrix": [5, 0], "x": 14, "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": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 9, "y": 1}, + {"matrix": [6, 4], "x": 10, "y": 1}, + {"matrix": [6, 3], "x": 11, "y": 1}, + {"matrix": [6, 2], "x": 12, "y": 1}, + {"matrix": [6, 1], "x": 13, "y": 1}, + {"matrix": [6, 0], "x": 14, "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": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 5], "x": 9, "y": 2}, + {"matrix": [7, 4], "x": 10, "y": 2}, + {"matrix": [7, 3], "x": 11, "y": 2}, + {"matrix": [7, 2], "x": 12, "y": 2}, + {"matrix": [7, 1], "x": 13, "y": 2}, + {"matrix": [7, 0], "x": 14, "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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [8, 6], "x": 8, "y": 3}, + {"matrix": [8, 5], "x": 9, "y": 3}, + {"matrix": [8, 4], "x": 10, "y": 3}, + {"matrix": [8, 3], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 1], "x": 13, "y": 3}, + {"matrix": [8, 0], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + + {"matrix": [9, 6], "x": 8, "y": 4}, + {"matrix": [9, 5], "x": 9, "y": 4}, + {"matrix": [9, 4], "x": 10, "y": 4}, + {"matrix": [9, 3], "x": 11, "y": 4}, + {"matrix": [9, 2], "x": 12, "y": 4}, + {"matrix": [9, 1], "x": 13, "y": 4}, + {"matrix": [9, 0], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/helix/rev3_5rows/keymaps/default/keymap.c b/keyboards/helix/rev3_5rows/keymaps/default/keymap.c new file mode 100644 index 0000000000..0537235c4e --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/keymap.c @@ -0,0 +1,182 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST|EEPRST| | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = 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, + _______, QK_BOOT, RGBRST, EE_CLR, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_HOME, KC_END) }, + [_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) }, + [_ADJUST] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LNG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LNG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LNG1); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_RAISE); + } else { + layer_off(_LOWER); + layer_off(_RAISE); + } + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} diff --git a/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c b/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c new file mode 100644 index 0000000000..1158461e78 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c @@ -0,0 +1,120 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_ENABLE + +void render_status(void) { + + // Render to mode icon + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + + oled_write_P(PSTR(" "), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + oled_write_P(PSTR("\n"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +static void render_rgbled_status(bool full) { +#ifdef RGBLIGHT_ENABLE + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { + if (full) { + // " LED %d:%d,%d,%d" + oled_write_P(PSTR(" LED"), false); + oled_write(get_u8_str(rgblight_get_mode(), ' '), false); + oled_write_char(':', false); + oled_write(get_u8_str(rgblight_get_hue() / RGBLIGHT_HUE_STEP, ' '), false); + oled_write_char(',', false); + oled_write(get_u8_str(rgblight_get_sat() / RGBLIGHT_SAT_STEP, ' '), false); + oled_write_char(',', false); + oled_write(get_u8_str(rgblight_get_val() / RGBLIGHT_VAL_STEP, ' '), false); + } else { + // "[%2d]" + oled_write_char('[', false); + oled_write(get_u8_str(rgblight_get_mode(), ' '), false); + oled_write_char(']', false); + } + } +#endif +} + +bool oled_task_user(void) { + if(is_keyboard_master()){ + render_status(); + }else{ + render_logo(); + render_rgbled_status(true); + } + return false; +} +#endif diff --git a/keyboards/helix/rev3_5rows/keymaps/default/readme.md b/keyboards/helix/rev3_5rows/keymaps/default/readme.md new file mode 100644 index 0000000000..423443ba71 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/readme.md @@ -0,0 +1,81 @@ +# The default keymap for Helix rev3 5rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' + +``` + +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + + +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST|EEPRST| | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/cipulot/mx65x/keymaps/65_ansi_blocker/rules.mk b/keyboards/helix/rev3_5rows/keymaps/default/rules.mk similarity index 100% rename from keyboards/cipulot/mx65x/keymaps/65_ansi_blocker/rules.mk rename to keyboards/helix/rev3_5rows/keymaps/default/rules.mk diff --git a/keyboards/helix/rev3_5rows/oled_display.c b/keyboards/helix/rev3_5rows/oled_display.c new file mode 100644 index 0000000000..36bf63cb60 --- /dev/null +++ b/keyboards/helix/rev3_5rows/oled_display.c @@ -0,0 +1,9 @@ +/* + + There are several ways to create your own keymap oled code: + + * Add the oled code to your keymaps//keymap.c. + * Create a new file in your keymaps// directory, add the oled code, and add `SRC + = ` to keymaps//rules.mk. + * Copy keymaps/default/oled_display.c to your keymaps// directory and modify it. + +*/ diff --git a/keyboards/helix/rev3_5rows/readme.md b/keyboards/helix/rev3_5rows/readme.md new file mode 100644 index 0000000000..ff7e2cd59a --- /dev/null +++ b/keyboards/helix/rev3_5rows/readme.md @@ -0,0 +1,13 @@ +# Helix rev3 5rows + +A compact split ortholinear keyboard. + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Helix rev3 PCBs, Pro Micro +* Hardware Availability: (Under preparation) + +Make example for this keyboard (after setting up your build environment): + + make helix/rev3_5rows: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). diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.c b/keyboards/helix/rev3_5rows/rev3_5rows.c new file mode 100644 index 0000000000..28fa314a7b --- /dev/null +++ b/keyboards/helix/rev3_5rows/rev3_5rows.c @@ -0,0 +1,114 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rev3_5rows.h" + +bool is_mac_mode(void) { + return keymap_config.swap_lalt_lgui == false; +} + +void set_mac_mode(bool macmode) { + /* The result is the same as pressing the AG_NORM(=MAGIC_UNSWAP_ALT_GUI)/AG_SWAP(=MAGIC_SWAP_ALT_GUI) keys. + * see + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L123-L124 + * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 + */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; + eeconfig_update_keymap(keymap_config.raw); +} + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + switch (index) { + case 0: + if(active) { // Left no.1 Helix rev3 common + set_mac_mode(false); + } else { + set_mac_mode(true); + } + break; + default: // Left no.2 or Right no.1 or Right no.2 for user/keymap + dip_switch_update_user(index, active); + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +static char *sprint_decimal(char *buf, int data) { + if (data > 9) { + buf = sprint_decimal(buf, data/10); + } + *buf++ = "0123456789"[data%10]; + *buf = '\0'; + return buf; +} + +char *sprints(char *buf, char *src) { + while (*src) { + *buf++ = *src++; + } + *buf = '\0'; + return buf; +} + +char *sprintd(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + buf = sprint_decimal(buf, data); + return buf; +} + +char *sprint2d(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + if (data > 99) { + return sprint_decimal(buf, data); + } + if (data < 10) { + *buf++ = ' '; + } + return sprint_decimal(buf, data); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + static const char PROGMEM helix_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, + 0x0 + }; + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + + if (is_keyboard_master()) { + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + char buf[20]; + sprint2d(buf, " Layer: ", get_highest_layer(layer_state)); + oled_write(buf, false); + } else { + oled_write_P(helix_logo, false); + } + return false; +} +#endif diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.h b/keyboards/helix/rev3_5rows/rev3_5rows.h new file mode 100644 index 0000000000..f36a5f2840 --- /dev/null +++ b/keyboards/helix/rev3_5rows/rev3_5rows.h @@ -0,0 +1,22 @@ +/* Copyright 2020 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +bool is_mac_mode(void); +void set_mac_mode(bool macmode); diff --git a/keyboards/helix/rev3_5rows/rules.mk b/keyboards/helix/rev3_5rows/rules.mk new file mode 100644 index 0000000000..d1972faa1b --- /dev/null +++ b/keyboards/helix/rev3_5rows/rules.mk @@ -0,0 +1,10 @@ +EXTRAKEY_ENABLE = yes # Audio control and System control +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no +OLED_ENABLE = yes +ENCODER_ENABLE = yes +DIP_SWITCH_ENABLE = no +MOUSEKEY_ENABLE = yes +LTO_ENABLE = yes + +SRC += oled_display.c diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk new file mode 100644 index 0000000000..f743d48d0e --- /dev/null +++ b/keyboards/helix/rules.mk @@ -0,0 +1,3 @@ +DEFAULT_FOLDER = helix/rev2 + +HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) diff --git a/keyboards/herevoland/buff75/keyboard.json b/keyboards/herevoland/buff75/keyboard.json deleted file mode 100644 index 32b17cff61..0000000000 --- a/keyboards/herevoland/buff75/keyboard.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "keyboard_name": "Buff75", - "processor": "STM32F103", - "bootloader": "stm32duino", - "manufacturer": "HereVoLand", - "maintainer": "Here VoLand @Vem", - "usb": { - "vid": "0xB727", - "pid": "0xB727", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true, - "rgblight": true - }, - "rgblight": { - "led_count": 1, - "brightness_steps": 8, - "saturation_steps": 8, - "sleep": true, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "B2" - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A8", "B15", "B14", "B13", "B12", "A3", "A4" ], - "rows": ["A5", "B10", "B1", "B0", "A7", "A6"] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"Esc", "matrix": [0,0], "x":0, "y":0}, - {"label":"F1", "matrix": [0,1], "x":1.5, "y":0}, - {"label":"F2", "matrix": [0,2], "x":2.5, "y":0}, - {"label":"F3", "matrix": [0,3], "x":3.5, "y":0}, - {"label":"F4", "matrix": [0,4], "x":4.5, "y":0}, - {"label":"F5", "matrix": [0,6], "x":6, "y":0}, - {"label":"F6", "matrix": [0,7], "x":7, "y":0}, - {"label":"F7", "matrix": [0,8], "x":8, "y":0}, - {"label":"F8", "matrix": [0,9], "x":9, "y":0}, - {"label":"F9", "matrix": [0,10], "x":10.5, "y":0}, - {"label":"F10", "matrix": [0,11], "x":11.5, "y":0}, - {"label":"F11", "matrix": [0,12], "x":12.5, "y":0}, - {"label":"F12", "matrix": [0,13], "x":13.5, "y":0}, - {"label":"Home", "matrix": [0,14], "x":15, "y":0}, - - {"label":"`~", "matrix": [1,0], "x":0, "y":1.25}, - {"label":"1!", "matrix": [1,1], "x":1, "y":1.25}, - {"label":"2@", "matrix": [1,2], "x":2, "y":1.25}, - {"label":"3#", "matrix": [1,3], "x":3, "y":1.25}, - {"label":"4$", "matrix": [1,4], "x":4, "y":1.25}, - {"label":"5%", "matrix": [1,5], "x":5, "y":1.25}, - {"label":"6^", "matrix": [1,6], "x":6, "y":1.25}, - {"label":"7&", "matrix": [1,7], "x":7, "y":1.25}, - {"label":"8*", "matrix": [1,8], "x":8, "y":1.25}, - {"label":"9(", "matrix": [1,9], "x":9, "y":1.25}, - {"label":"0)", "matrix": [1,10], "x":10, "y":1.25}, - {"label":"-_", "matrix": [1,11], "x":11, "y":1.25}, - {"label":"=+", "matrix": [1,12], "x":12, "y":1.25}, - {"label":"Backspace", "matrix": [1,13], "x":13, "y":1.25}, - {"label":"Page Up", "matrix": [1,14], "x":15, "y":1.25}, - - {"label":"Tab", "matrix": [2,0], "x":0, "y":2.25, "w":1.5}, - {"label":"Q", "matrix": [2,1], "x":1.5, "y":2.25}, - {"label":"W", "matrix": [2,2], "x":2.5, "y":2.25}, - {"label":"E", "matrix": [2,3], "x":3.5, "y":2.25}, - {"label":"R", "matrix": [2,4], "x":4.5, "y":2.25}, - {"label":"T", "matrix": [2,5], "x":5.5, "y":2.25}, - {"label":"Y", "matrix": [2,6], "x":6.5, "y":2.25}, - {"label":"U", "matrix": [2,7], "x":7.5, "y":2.25}, - {"label":"I", "matrix": [2,8], "x":8.5, "y":2.25}, - {"label":"O", "matrix": [2,9], "x":9.5, "y":2.25}, - {"label":"P", "matrix": [2,10], "x":10.5, "y":2.25}, - {"label":"[", "matrix": [2,11], "x":11.5, "y":2.25}, - {"label":"]", "matrix": [2,12], "x":12.5, "y":2.25}, - {"label":"\\", "matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"label":"Page Down", "matrix": [2,14], "x":15, "y":2.25}, - - {"label":"Caps Lock", "matrix": [3,0], "x":0, "y":3.25, "w":1.75}, - {"label":"A", "matrix": [3,1], "x":1.75, "y":3.25}, - {"label":"S", "matrix": [3,2], "x":2.75, "y":3.25}, - {"label":"D", "matrix": [3,3], "x":3.75, "y":3.25}, - {"label":"F", "matrix": [3,4], "x":4.75, "y":3.25}, - {"label":"G", "matrix": [3,5], "x":5.75, "y":3.25}, - {"label":"H", "matrix": [3,6], "x":6.75, "y":3.25}, - {"label":"J", "matrix": [3,7], "x":7.75, "y":3.25}, - {"label":"K", "matrix": [3,8], "x":8.75, "y":3.25}, - {"label":"L", "matrix": [3,9], "x":9.75, "y":3.25}, - {"label":";", "matrix": [3,10], "x":10.75, "y":3.25}, - {"label":"'", "matrix": [3,11], "x":11.75, "y":3.25}, - {"label":"Enter", "matrix": [3,13], "x":12.75, "y":3.25, "w":2.25}, - {"label":"End", "matrix": [3,14], "x":15, "y":3.25}, - - {"label":"Shift", "matrix": [4,0], "x":0, "y":4.25, "w":2.25}, - {"label":"Z", "matrix": [4,2], "x":2.25, "y":4.25}, - {"label":"X", "matrix": [4,3], "x":3.25, "y":4.25}, - {"label":"C", "matrix": [4,4], "x":4.25, "y":4.25}, - {"label":"V", "matrix": [4,5], "x":5.25, "y":4.25}, - {"label":"B", "matrix": [4,6], "x":6.25, "y":4.25}, - {"label":"N", "matrix": [4,7], "x":7.25, "y":4.25}, - {"label":"M", "matrix": [4,8], "x":8.25, "y":4.25}, - {"label":",", "matrix": [4,9], "x":9.25, "y":4.25}, - {"label":".", "matrix": [4,10], "x":10.25, "y":4.25}, - {"label":"/", "matrix": [4,11], "x":11.25, "y":4.25}, - {"label":"Shift", "matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"label":"Up", "matrix": [4,13], "x":14, "y":4.25}, - {"label":"End", "matrix": [4,14], "x":15, "y":4.25}, - - {"label":"Ctrl", "matrix": [5,0], "x":0, "y":5.25, "w":1.25}, - {"label":"Win", "matrix": [5,1], "x":1.25, "y":5.25, "w":1.25}, - {"label":"Alt", "matrix": [5,2], "x":2.5, "y":5.25, "w":1.25}, - {"label":"Space", "matrix": [5,6], "x":3.75, "y":5.25, "w":6.25}, - {"label":"Alt", "matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"label":"Fn", "matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"label":"Left", "matrix": [5,12], "x":13, "y":5.25}, - {"label":"Down", "matrix": [5,13], "x":14, "y":5.25}, - {"label":"Right", "matrix": [5,14], "x":15, "y":5.25} - ] - } - } -} diff --git a/keyboards/herevoland/buff75/keymaps/default/keymap.c b/keyboards/herevoland/buff75/keymaps/default/keymap.c deleted file mode 100644 index 28762b9a17..0000000000 --- a/keyboards/herevoland/buff75/keymaps/default/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2024 楽(HereVoLand @Vem) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_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_HOME, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/herevoland/buff75/matrix_diagram.md b/keyboards/herevoland/buff75/matrix_diagram.md deleted file mode 100644 index 35cca7ec06..0000000000 --- a/keyboards/herevoland/buff75/matrix_diagram.md +++ /dev/null @@ -1,18 +0,0 @@ -# Matrix Diagram for Buff75 - -``` - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ - │00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬──┼───┤ - │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D│2E │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┴──┼───┤ - │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ - ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │ - ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴───┴┬─┬───┼───┼───┤ - │50 │51 │52 │56 │5A │ 5B │ │5C │5D |5E | - └────┴────┴────┴────────────────────────┴───┴─────┘ └───┴───┘───┘ -``` diff --git a/keyboards/herevoland/buff75/readme.md b/keyboards/herevoland/buff75/readme.md deleted file mode 100644 index b5ce6407d7..0000000000 --- a/keyboards/herevoland/buff75/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Buff75 - -![Buff75](https://imgur.com/pQfzIZr.jpg) -An 75%/TenKeyLess sized keyboard with 1 RGB. - -* Keyboard Maintainer: [HereVoLand](https://github.com/Vem-596) -* Hardware Supported: buff75 -* Hardware Availability: [BUFF Customer-Keyboard](https://shop107132374.taobao.com) - -Make example for this keyboard (after setting up your build environment): - - make herevoland/buff75:default - -Flashing example for this keyboard: - - make herevoland/buff75: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 2 ways: - -- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard -- **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/hfdkb/ac001/halconf.h b/keyboards/hfdkb/ac001/halconf.h index b06fd7e719..7ad0a62d2e 100644 --- a/keyboards/hfdkb/ac001/halconf.h +++ b/keyboards/hfdkb/ac001/halconf.h @@ -16,5 +16,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json index ee9aab074b..87f6e40bc3 100644 --- a/keyboards/hfdkb/ac001/keyboard.json +++ b/keyboards/hfdkb/ac001/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "ac001", "manufacturer": "hfd", + "url": "", "maintainer": "jonylee@hfd", "usb": { "vid": "0xFFFE", "pid": "0x0001", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -26,6 +23,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/hfdkb/ac001/keymaps/default/keymap.c b/keyboards/hfdkb/ac001/keymaps/default/keymap.c index 6682e9d4d9..56c767503e 100644 --- a/keyboards/hfdkb/ac001/keymaps/default/keymap.c +++ b/keyboards/hfdkb/ac001/keymaps/default/keymap.c @@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - RM_NEXT, KC_LCTL, KC_ENT,KC_NO,KC_NO), + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), }; diff --git a/keyboards/hhkb/ansi/32u2/rules.mk b/keyboards/hhkb/ansi/32u2/rules.mk deleted file mode 100644 index 94eaaab9c0..0000000000 --- a/keyboards/hhkb/ansi/32u2/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -CUSTOM_MATRIX = yes - -# project specific files -SRC = matrix.c diff --git a/keyboards/hhkb/ansi/32u4/rules.mk b/keyboards/hhkb/ansi/32u4/rules.mk deleted file mode 100644 index 94eaaab9c0..0000000000 --- a/keyboards/hhkb/ansi/32u4/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -CUSTOM_MATRIX = yes - -# project specific files -SRC = matrix.c diff --git a/keyboards/hhkb/ansi/info.json b/keyboards/hhkb/ansi/info.json index ff2c1bba6e..16349fc6e2 100644 --- a/keyboards/hhkb/ansi/info.json +++ b/keyboards/hhkb/ansi/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "ANSI", "manufacturer": "HHKB", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", diff --git a/keyboards/hhkb/ansi/rules.mk b/keyboards/hhkb/ansi/rules.mk new file mode 100644 index 0000000000..841565b846 --- /dev/null +++ b/keyboards/hhkb/ansi/rules.mk @@ -0,0 +1,6 @@ +CUSTOM_MATRIX = yes + +# project specific files +SRC = matrix.c + +DEFAULT_FOLDER = hhkb/ansi/32u4 diff --git a/keyboards/hhkb/jp/keyboard.json b/keyboards/hhkb/jp/keyboard.json index b776b416ec..d745f21d20 100644 --- a/keyboards/hhkb/jp/keyboard.json +++ b/keyboards/hhkb/jp/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JP", "manufacturer": "HHKB", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", @@ -48,21 +49,21 @@ {"matrix": [14, 3], "x": 10.5, "y": 1}, {"matrix": [15, 3], "x": 11.5, "y": 1}, {"matrix": [13, 3], "x": 12.5, "y": 1}, + {"matrix": [0, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [0, 6], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [6, 6], "x": 1.75, "y": 2}, - {"matrix": [2, 6], "x": 2.75, "y": 2}, - {"matrix": [1, 6], "x": 3.75, "y": 2}, - {"matrix": [5, 6], "x": 4.75, "y": 2}, - {"matrix": [7, 6], "x": 5.75, "y": 2}, - {"matrix": [10, 6], "x": 6.75, "y": 2}, - {"matrix": [9, 6], "x": 7.75, "y": 2}, - {"matrix": [8, 6], "x": 8.75, "y": 2}, - {"matrix": [11, 6], "x": 9.75, "y": 2}, - {"matrix": [14, 6], "x": 10.75, "y": 2}, - {"matrix": [15, 6], "x": 11.75, "y": 2}, - {"matrix": [13, 6], "x": 12.75, "y": 2}, - {"matrix": [12, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [6, 6], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 6], "x": 1.75, "y": 2}, + {"matrix": [1, 6], "x": 2.75, "y": 2}, + {"matrix": [5, 6], "x": 3.75, "y": 2}, + {"matrix": [7, 6], "x": 4.75, "y": 2}, + {"matrix": [10, 6], "x": 5.75, "y": 2}, + {"matrix": [9, 6], "x": 6.75, "y": 2}, + {"matrix": [8, 6], "x": 7.75, "y": 2}, + {"matrix": [11, 6], "x": 8.75, "y": 2}, + {"matrix": [14, 6], "x": 9.75, "y": 2}, + {"matrix": [15, 6], "x": 10.75, "y": 2}, + {"matrix": [13, 6], "x": 11.75, "y": 2}, + {"matrix": [12, 6], "x": 12.75, "y": 2}, {"matrix": [0, 5], "x": 0, "y": 3, "w": 2}, {"matrix": [6, 5], "x": 2, "y": 3}, diff --git a/keyboards/hhkb/yang/keyboard.json b/keyboards/hhkb/yang/keyboard.json index 7af8a62934..a5725d6afa 100644 --- a/keyboards/hhkb/yang/keyboard.json +++ b/keyboards/hhkb/yang/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HHKB BLE", "manufacturer": "YANG", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", diff --git a/keyboards/hhkb/yang/keymaps/kanru/keymap.c b/keyboards/hhkb/yang/keymaps/kanru/keymap.c index 85aad22962..ea020de126 100644 --- a/keyboards/hhkb/yang/keymaps/kanru/keymap.c +++ b/keyboards/hhkb/yang/keymaps/kanru/keymap.c @@ -118,9 +118,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MOUSE] = LAYOUT_60_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_BTN1, MS_WHLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_BTN2, MS_WHLD, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN1, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN2, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; // clang-format on diff --git a/keyboards/hhkb_lite_2/keyboard.json b/keyboards/hhkb_lite_2/keyboard.json index f4d94f0ffa..3e9099f0e5 100644 --- a/keyboards/hhkb_lite_2/keyboard.json +++ b/keyboards/hhkb_lite_2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HHKB Lite 2", "manufacturer": "PFU", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x88B2", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hidtech/bastyl/keyboard.json b/keyboards/hidtech/bastyl/keyboard.json index 3bad155695..1155caa320 100644 --- a/keyboards/hidtech/bastyl/keyboard.json +++ b/keyboards/hidtech/bastyl/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hifumi/keyboard.json b/keyboards/hifumi/keyboard.json index e859ceef69..457c8a7398 100644 --- a/keyboards/hifumi/keyboard.json +++ b/keyboards/hifumi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, @@ -39,7 +41,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hillside/46/0_1/keyboard.json b/keyboards/hillside/46/0_1/keyboard.json index 7d3967c8c3..663eeb25f4 100644 --- a/keyboards/hillside/46/0_1/keyboard.json +++ b/keyboards/hillside/46/0_1/keyboard.json @@ -40,6 +40,7 @@ "rgblight": { "led_count": 4, "split": true, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/hillside/46/rules.mk b/keyboards/hillside/46/rules.mk new file mode 100644 index 0000000000..f3e926a8dc --- /dev/null +++ b/keyboards/hillside/46/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/46/0_1 \ No newline at end of file diff --git a/keyboards/hillside/48/0_1/keyboard.json b/keyboards/hillside/48/0_1/keyboard.json index acae16f347..4dd2e01361 100644 --- a/keyboards/hillside/48/0_1/keyboard.json +++ b/keyboards/hillside/48/0_1/keyboard.json @@ -40,6 +40,7 @@ "rgblight": { "led_count": 5, "split": true, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/hillside/48/rules.mk b/keyboards/hillside/48/rules.mk new file mode 100644 index 0000000000..d8d69d9ec1 --- /dev/null +++ b/keyboards/hillside/48/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/48/0_1 diff --git a/keyboards/hillside/52/0_1/keyboard.json b/keyboards/hillside/52/0_1/keyboard.json index 469e6c5844..c8db3917d6 100644 --- a/keyboards/hillside/52/0_1/keyboard.json +++ b/keyboards/hillside/52/0_1/keyboard.json @@ -40,6 +40,7 @@ "rgblight": { "led_count": 5, "split": true, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/hillside/52/rules.mk b/keyboards/hillside/52/rules.mk new file mode 100644 index 0000000000..402bc6bb95 --- /dev/null +++ b/keyboards/hillside/52/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/52/0_1 diff --git a/keyboards/hineybush/h08_ocelot/keyboard.json b/keyboards/hineybush/h08_ocelot/keyboard.json index 78fcfae311..bca579aab8 100644 --- a/keyboards/hineybush/h08_ocelot/keyboard.json +++ b/keyboards/hineybush/h08_ocelot/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h08", "manufacturer": "Hiney LLC", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hineybush/h10/keyboard.json b/keyboards/hineybush/h10/keyboard.json index b29061b51b..63a109f484 100644 --- a/keyboards/hineybush/h10/keyboard.json +++ b/keyboards/hineybush/h10/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h10", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h101/keyboard.json b/keyboards/hineybush/h101/keyboard.json index de36c40962..d1f8fa32a0 100644 --- a/keyboards/hineybush/h101/keyboard.json +++ b/keyboards/hineybush/h101/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["C13", "C14", "C15", "A0", "A1", "A2"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "0.0.1", "vid": "0x4069", diff --git a/keyboards/hineybush/h60/keyboard.json b/keyboards/hineybush/h60/keyboard.json index d3db3d4c25..ea058b6d64 100644 --- a/keyboards/hineybush/h60/keyboard.json +++ b/keyboards/hineybush/h60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h60", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -58,15 +61,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -276,7 +271,7 @@ {"matrix": [4, 11], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/hineybush/h65/keyboard.json b/keyboards/hineybush/h65/keyboard.json index b0beed6aeb..8560c7774c 100644 --- a/keyboards/hineybush/h65/keyboard.json +++ b/keyboards/hineybush/h65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h65", "manufacturer": "Hiney LLC", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h65_hotswap/keyboard.json b/keyboards/hineybush/h65_hotswap/keyboard.json index b2a3876741..510836f22f 100644 --- a/keyboards/hineybush/h65_hotswap/keyboard.json +++ b/keyboards/hineybush/h65_hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h65 hotswap", "manufacturer": "Hiney LLC", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h660s/keyboard.json b/keyboards/hineybush/h660s/keyboard.json index 26693ec1ea..44e8c8c21a 100644 --- a/keyboards/hineybush/h660s/keyboard.json +++ b/keyboards/hineybush/h660s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h660s", "manufacturer": "hineybush", + "url": "", "maintainer": "Josh Hinnebusch", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h75_singa/keyboard.json b/keyboards/hineybush/h75_singa/keyboard.json index f9545d9ea1..0c3ca31e28 100644 --- a/keyboards/hineybush/h75_singa/keyboard.json +++ b/keyboards/hineybush/h75_singa/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h75_singa", "manufacturer": "Singa Keyboards", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h75_singa/readme.md b/keyboards/hineybush/h75_singa/readme.md index b110fd5b14..815785834c 100644 --- a/keyboards/hineybush/h75_singa/readme.md +++ b/keyboards/hineybush/h75_singa/readme.md @@ -1,5 +1,7 @@ # h75_singa +![h75_singa](imgur.com image replace me!) - TBD + New 75% PCB for Singa Keyboards * Keyboard Maintainer: [hineybush](https://github.com/hineybush) diff --git a/keyboards/hineybush/h87_g2/keyboard.json b/keyboards/hineybush/h87_g2/keyboard.json index 2749b5ad4e..13c17caa98 100644 --- a/keyboards/hineybush/h87_g2/keyboard.json +++ b/keyboards/hineybush/h87_g2/keyboard.json @@ -10,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -23,6 +25,7 @@ "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/hineybush/h87a/keyboard.json b/keyboards/hineybush/h87a/keyboard.json index 2048ae6b28..42a50bf001 100644 --- a/keyboards/hineybush/h87a/keyboard.json +++ b/keyboards/hineybush/h87a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h87a", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h88/keyboard.json b/keyboards/hineybush/h88/keyboard.json index 87a47bc35b..6a9b3142e3 100644 --- a/keyboards/hineybush/h88/keyboard.json +++ b/keyboards/hineybush/h88/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "h88", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h88_g2/config.h b/keyboards/hineybush/h88_g2/config.h deleted file mode 100644 index ccde4ac624..0000000000 --- a/keyboards/hineybush/h88_g2/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/hineybush/h88_g2/halconf.h b/keyboards/hineybush/h88_g2/halconf.h deleted file mode 100644 index 976d17d891..0000000000 --- a/keyboards/hineybush/h88_g2/halconf.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2024 Josh Hinnebusch - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json deleted file mode 100644 index a436bb1bed..0000000000 --- a/keyboards/hineybush/h88_g2/keyboard.json +++ /dev/null @@ -1,1171 +0,0 @@ -{ - "manufacturer": "Hiney LLC", - "keyboard_name": "h88_g2", - "maintainer": "hineybush", - "backlight": { - "pin": "A6" - }, - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "backlight": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "B12", - "scroll_lock": "B14" - }, - "matrix_pins": { - "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A5", "A4", "A3", "F1", "C15", "C14", "F0", "C13", "B9", "B8", "B5"], - "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] - }, - "processor": "STM32F072", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "brightness_steps": 8, - "default": { - "val": 128 - }, - "led_count": 24, - "max_brightness": 200, - "saturation_steps": 8, - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0002", - "vid": "0x4069" - }, - "ws2812": { - "pin": "B15" - }, - "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift", "tkl_f13_iso_wkl", "tkl_f13_iso_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [1, 14], "x": 14, "y": 1.25}, - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - {"matrix": [1, 16], "x": 16.25, "y": 1.25}, - {"matrix": [2, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [4, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/hineybush/h88_g2/keymaps/default/keymap.c b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c deleted file mode 100644 index d9dbaf08e7..0000000000 --- a/keyboards/hineybush/h88_g2/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2023 Josh Hinnebusch -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───────┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │Ctrl│GUI │Alt │ │ Fn │ GUI│Ctrl│ │ ← │ ↓ │ → │ - * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ - */ - [0] = 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_0, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - -}; diff --git a/keyboards/hineybush/h88_g2/mcuconf.h b/keyboards/hineybush/h88_g2/mcuconf.h deleted file mode 100644 index 7e226e4371..0000000000 --- a/keyboards/hineybush/h88_g2/mcuconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Josh Hinnebusch - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/hineybush/h88_g2/readme.md b/keyboards/hineybush/h88_g2/readme.md deleted file mode 100644 index e5cd60b432..0000000000 --- a/keyboards/hineybush/h88_g2/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# h88_g2 - -[h88_g2](https://i.imgur.com/t7chDf8h.png) - -New generation of the h88 keyboard PCB platform with an STM32 microcontroller. - -* Keyboard Maintainer: [Josh Hinnebusch](https://github.com/hineybush) -* Hardware Supported: H88 G2 PCB w/ STM32F072 MCU -* Hardware Availability: [hineybush.com](https://hineybush.com) - -Make example for this keyboard (after setting up your build environment): - - make hineybush/h88_g2:default - -Flashing example for this keyboard: - - make hineybush/h88_g2: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 Escape and plug in the keyboard. -* **Physical reset button**: Press the button on the back of the PCB for a minumum of 3 seconds, then release. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/hineybush/hbcp/keyboard.json b/keyboards/hineybush/hbcp/keyboard.json index 1ad6755e42..e8771ea9a7 100644 --- a/keyboards/hineybush/hbcp/keyboard.json +++ b/keyboards/hineybush/hbcp/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "hbcp", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/hineyg80/keyboard.json b/keyboards/hineybush/hineyg80/keyboard.json index 863be1d23b..933d689225 100644 --- a/keyboards/hineybush/hineyg80/keyboard.json +++ b/keyboards/hineybush/hineyg80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "hineyG80", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0xFEED", diff --git a/keyboards/hineybush/ibis/keyboard.json b/keyboards/hineybush/ibis/keyboard.json index 1dd57647c2..8c2f6ca3fe 100644 --- a/keyboards/hineybush/ibis/keyboard.json +++ b/keyboards/hineybush/ibis/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B0", "B1", "B2", "B3", "C7", "C6", "B4", "D7", "D5", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xEAA9", diff --git a/keyboards/hineybush/physix/keyboard.json b/keyboards/hineybush/physix/keyboard.json index 695a25bb6a..79a0bea7ab 100644 --- a/keyboards/hineybush/physix/keyboard.json +++ b/keyboards/hineybush/physix/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "PhysiX", "manufacturer": "LZ", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/sm68/keyboard.json b/keyboards/hineybush/sm68/keyboard.json index 05d3505cc7..8350ca0380 100644 --- a/keyboards/hineybush/sm68/keyboard.json +++ b/keyboards/hineybush/sm68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "sm68", "manufacturer": "hineybush", + "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hnahkb/freyr/keyboard.json b/keyboards/hnahkb/freyr/keyboard.json index ff83ecb532..635c9d5989 100644 --- a/keyboards/hnahkb/freyr/keyboard.json +++ b/keyboards/hnahkb/freyr/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Freyr", "manufacturer": "HnahKB", + "url": "", "maintainer": "vuhopkep", "usb": { "vid": "0xFEED", diff --git a/keyboards/hnahkb/stella/keyboard.json b/keyboards/hnahkb/stella/keyboard.json index 0a7ac5c109..7c69ec3de2 100644 --- a/keyboards/hnahkb/stella/keyboard.json +++ b/keyboards/hnahkb/stella/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stella", "manufacturer": "HnahKB", + "url": "", "maintainer": "VGS", "usb": { "vid": "0xFEED", diff --git a/keyboards/hnahkb/vn66/keymaps/default/keymap.c b/keyboards/hnahkb/vn66/keymaps/default/keymap.c index f50050bdc5..3af2332c19 100644 --- a/keyboards/hnahkb/vn66/keymaps/default/keymap.c +++ b/keyboards/hnahkb/vn66/keymaps/default/keymap.c @@ -43,13 +43,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise == 0) { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); #else tap_code(KC_VOLD); #endif } else { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); #else tap_code(KC_VOLU); #endif diff --git a/keyboards/hnk/hnk65/keyboard.json b/keyboards/hnk/hnk65/keyboard.json deleted file mode 100644 index a72ff783ba..0000000000 --- a/keyboards/hnk/hnk65/keyboard.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "manufacturer": "hnkbd", - "keyboard_name": "hnk65", - "maintainer": "ascYAOBT", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["F4", "F5", "F1", "F0", "B7", "F6", "F7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7"], - "rows": ["C7", "C6", "B6", "B5", "B4"] - }, - "processor": "atmega32u4", - "rgb_matrix": { - "animations": { - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "typing_heatmap":true, - "solid_reactive_simple": true, - "solid_reactive_wide": true, - "solid_reactive_cross": true, - "splash": true - }, - "brightness_steps": 20, - "default": { - "val": 120, - "animation": "solid_color" - }, - "driver": "ws2812", - "hue_steps": 22, - "layout": [ - {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 189, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4}, - {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 185, "y": 16, "flags": 4}, - {"matrix": [1, 14], "x": 210, "y": 16, "flags": 4}, - {"matrix": [2, 14], "x": 210, "y": 32, "flags": 4}, - {"matrix": [2, 13], "x": 196, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 147, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 133, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 119, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 105, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 91, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 77, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 63, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 49, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 35, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 21, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 46, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 74, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 88, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 104, "y": 48, "flags": 4}, - {"matrix": [3, 7], "x": 118, "y": 48, "flags": 4}, - {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, - {"matrix": [3, 9], "x": 146, "y": 48, "flags": 4}, - {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, - {"matrix": [3, 11], "x": 173, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 196, "y": 48, "flags": 4}, - {"matrix": [3, 14], "x": 210, "y": 48, "flags": 4}, - {"matrix": [4, 14], "x": 210, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 196, "y": 64, "flags": 4}, - {"matrix": [4, 11], "x": 182, "y": 64, "flags": 4}, - {"matrix": [4, 10], "x": 168, "y": 64, "flags": 4}, - {"matrix": [4, 9], "x": 154, "y": 64, "flags": 4}, - {"matrix": [4, 8], "x": 140, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 105, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 4, "y": 64, "flags": 4} - ], - "max_brightness": 170, - "saturation_steps": 22, - "sleep": true - }, - "url": "https://hnkbd.ca/", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x484E" - }, - "ws2812": { - "pin": "B2" - }, - "community_layouts": ["65_ansi"], - "layouts": { - "LAYOUT_65_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 8], "x": 10, "y": 4}, - {"matrix": [4, 9], "x": 11, "y": 4}, - {"matrix": [4, 10], "x": 12, "y": 4}, - {"matrix": [4, 11], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/hnk/hnk65/keymaps/default/keymap.c b/keyboards/hnk/hnk65/keymaps/default/keymap.c deleted file mode 100644 index efe7cc03fe..0000000000 --- a/keyboards/hnk/hnk65/keymaps/default/keymap.c +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬────┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Home│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgUp│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgDn│ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼────┤ - * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctl│ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴────┘ - */ - - - [0] = LAYOUT_65_ansi( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT,KC_DOWN, KC_RGHT - ), - - - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┬───┬──────────┬────┐ - * │Grv│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11 │F12│ Ins │Del │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬─┴─┬─┴─┬────────┼────┤ - * │ │ │Vl+│ │ │ │ │SrL│ │ 7 │ 8 │ 9 │ \ │ SATU │HUEU│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┴┬──┴┬──┴────────┼────┤ - * │ │Mut│Vl-│Pau│ │ │ │ │ │ 4 │ 5 │ 6 │ SATD │HUED│ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬─┴─┬─┴──────┬────┼────┤ - * │ │ | │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │VALU│TOGG│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┬┴──┬┴───┬────┼────┼────┤ - * │ │ │ │ PScr │SPDD│ │SPDU│PREV│VALD│NEXT│ - * └────┴────┴────┴────────────────────────┴────┴───┴────┴────┴────┴────┘ - */ - - - [1] = LAYOUT_65_ansi( - 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, KC_INS, KC_DEL, - _______, _______, KC_VOLU, _______, _______, _______, _______, KC_SCRL, _______, KC_7, KC_8, KC_9, KC_BSLS, RM_SATU, RM_HUEU, - _______, KC_MUTE, KC_VOLD, KC_PAUS, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, RM_SATD, RM_HUED, - _______, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, RM_VALU, RM_TOGG, - _______, _______, _______, KC_PSCR, RM_SPDD, _______, RM_SPDU, RM_PREV, RM_VALD, RM_NEXT - ) -}; diff --git a/keyboards/hnk/hnk65/readme.md b/keyboards/hnk/hnk65/readme.md deleted file mode 100644 index e77dd86d1f..0000000000 --- a/keyboards/hnk/hnk65/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# hnk65 - -Our Hide Nothing Keyboard version of the traditional 65%, with or without RGB support. For more information visit https://hnkbd.ca - -* Keyboard Maintainer: [hnkbd](https://github.com/ascYAOBT) -* Hardware Supported: hnk65, either with or without per key RGB LED -* Hardware Availability: https://hnkbd.ca - -Make example for this keyboard (after setting up your build environment): - - make hnk/hnk65:default - -Flashing example for this keyboard: - - make hnk/hnk65:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB while plugged in and with QMK Toolbox opened. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/holyswitch/lightweight65/keyboard.json b/keyboards/holyswitch/lightweight65/keyboard.json index 9acefba190..16a9f73737 100644 --- a/keyboards/holyswitch/lightweight65/keyboard.json +++ b/keyboards/holyswitch/lightweight65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lightweight65", "manufacturer": "HolySwitch", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x484F", @@ -18,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "layout_aliases": { diff --git a/keyboards/holyswitch/southpaw75/keyboard.json b/keyboards/holyswitch/southpaw75/keyboard.json index 86f1e14c21..1483e1fc31 100644 --- a/keyboards/holyswitch/southpaw75/keyboard.json +++ b/keyboards/holyswitch/southpaw75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "southpaw default", "manufacturer": "drewguy", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x484F", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/horizon/keyboard.json b/keyboards/horizon/keyboard.json index cb70b74470..0fea8cb74c 100644 --- a/keyboards/horizon/keyboard.json +++ b/keyboards/horizon/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -26,7 +27,8 @@ "rows": ["D3", "D2", "D1", "F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json b/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json index 84e78251ee..ecd3c8a043 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "community_layouts": ["tkl_f13_ansi"], diff --git a/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json b/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json index 542c458c82..d14278f989 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json +++ b/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"], diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json index fd655f0c0d..cef69593d7 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json @@ -1,20 +1,19 @@ { "keyboard_name": "Black E6.5", "manufacturer": "HorrorTroll", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x7000", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json index 250cceb3e7..77eac52ebd 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "Devil68 Pro", "manufacturer": "HorrorTroll", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x7001", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -63,6 +60,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c index 4ad4bcd5cc..66a0dfb595 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c @@ -84,16 +84,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ [_FN] = LAYOUT_65_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, - _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, RM_HUEU, RM_NEXT, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, KC_HOME, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, KC_END, - _______, _______, _______, _______, _______, _______, KC_APP, RM_SPDD, RM_VALD, RM_SPDU + _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, RGB_HUI, RGB_MOD, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, KC_HOME, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, KC_END, + _______, _______, _______, _______, _______, _______, KC_APP, RGB_SPD, RGB_VAD, RGB_SPI ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -124,10 +124,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } bool rgb_matrix_indicators_user(void) { - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { if (host_keyboard_led_state().caps_lock) { diff --git a/keyboards/horrortroll/handwired_k552/halconf.h b/keyboards/horrortroll/handwired_k552/halconf.h index bc38dd1baf..a8be303915 100644 --- a/keyboards/horrortroll/handwired_k552/halconf.h +++ b/keyboards/horrortroll/handwired_k552/halconf.h @@ -22,6 +22,9 @@ #pragma once #define HAL_USE_I2C TRUE + #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/horrortroll/handwired_k552/keyboard.json b/keyboards/horrortroll/handwired_k552/keyboard.json index ecbcb4b779..213cdf8086 100644 --- a/keyboards/horrortroll/handwired_k552/keyboard.json +++ b/keyboards/horrortroll/handwired_k552/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "K552 Kumara", "manufacturer": "HorrorTroll", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x5104", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "ws2812": { "pin": "C14" diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap.c b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap.c index 140f591039..3208b56544 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap.c @@ -88,11 +88,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [_FN] = LAYOUT_tkl_ansi( - QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RM_PREV, RM_NEXT, RM_TOGG, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RGB_C_E, _______, _______, + QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______, _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_WAVE), _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______, - _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU + _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI ), }; diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h index b68f9fa634..cc93f18207 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h @@ -33,14 +33,14 @@ enum layer_names { }; // For CUSTOM_GRADIENT -hsv_t gradient_0 = {205, 250, 255}; -hsv_t gradient_100 = {140, 215, 125}; +HSV gradient_0 = {205, 250, 255}; +HSV gradient_100 = {140, 215, 125}; bool reflected_gradient = false; uint8_t gp_i = 0; typedef struct { - hsv_t gradient_0; - hsv_t gradient_1; + HSV gradient_0; + HSV gradient_1; bool reflected; } CUSTOM_PRESETS; @@ -203,7 +203,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; case G_FLIP: if (record->event.pressed) { - hsv_t temp_color = gradient_0; + HSV temp_color = gradient_0; gradient_0 = gradient_100; gradient_100 = temp_color; } @@ -229,7 +229,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -255,10 +255,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool rgb_matrix_indicators_user(void) { uint8_t side_leds_left[3] = {17, 18, 19}; uint8_t side_leds_right[3] = { 4, 5, 6}; - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if ((rgb_matrix_get_flags() & LED_FLAG_ALL)) { if (host_keyboard_led_state().caps_lock) { diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c index d1cb624570..a5bf960d45 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -static hsv_t COOL_DIAGONAL_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV COOL_DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = (g_led_config.point[i].x / 4) - g_led_config.point[i].y - time; return hsv; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c index f7e79f4c67..af6173d250 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c @@ -14,13 +14,13 @@ * along with this program. If not, see . */ -extern hsv_t gradient_0; -extern hsv_t gradient_100; +extern HSV gradient_0; +extern HSV gradient_100; extern bool reflected_gradient; -static hsv_t INTERPOLATE_HSV(float step, hsv_t gradient_0, hsv_t gradient_100) { +static HSV INTERPOLATE_HSV(float step, HSV gradient_0, HSV gradient_100) { uint8_t cw, ccw; - hsv_t color; + HSV color; cw = (gradient_0.h >= gradient_100.h) ? 255 + gradient_100.h - gradient_0.h : gradient_100.h - gradient_0.h; // Hue range is 0 to 255. ccw = (gradient_0.h >= gradient_100.h) ? gradient_0.h - gradient_100.h : 255 + gradient_0.h - gradient_100.h; @@ -33,13 +33,13 @@ static hsv_t INTERPOLATE_HSV(float step, hsv_t gradient_0, hsv_t gradient_100) { color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s); - // Scale V with global RGB Matrix's V, so users can still control overall brightness with RM_VALU & RM_VALD + // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0 color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255)); return color; } -static hsv_t CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) { +static HSV CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) { float step = (float)led_x / (max_x - min_x); float mid_gradient_pos = 0.5; @@ -64,8 +64,8 @@ static bool CUSTOM_GRADIENT(effect_params_t* params) { for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - hsv_t hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x); - rgb_t rgb = hsv_to_rgb(hsv_orig); + HSV hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x); + RGB rgb = hsv_to_rgb(hsv_orig); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.c index 33205438e8..add83149cc 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.c @@ -16,7 +16,7 @@ #include "led/flower_blooming/flower_blooming.h" -static hsv_t FLOWER_BLOOMING_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) { if (g_led_config.point[i].y > k_rgb_matrix_center.y) hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time; else diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.h b/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.h index e699011922..941dab975a 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/flower_blooming/flower_blooming.h @@ -1,6 +1,6 @@ #pragma once -typedef hsv_t (*flower_blooming_f)(hsv_t hsv, uint8_t i, uint8_t time); +typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time); bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -9,10 +9,10 @@ bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); if (g_led_config.point[i].y > k_rgb_matrix_center.y) { - rgb_t bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r); } else { - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/kitt.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/kitt.c index e4e1637005..dadbe48223 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/kitt.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/kitt.c @@ -35,7 +35,7 @@ static uint8_t time_to_led(uint8_t time, uint8_t led_behind) { return led; } -static hsv_t KITT_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV KITT_math(HSV hsv, uint8_t i, uint8_t time) { // reset base effect startup if (i == 0) { diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c index 5550f3ee3f..ba1ca55faf 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c @@ -30,10 +30,10 @@ static void doRandom_breath_rainbow(int i, effect_params_t* params) { } //float val = (((float)sin8(time + offset[i]) / 256)/2.1) + .05; - hsv_t hsv = {0, 255, 255}; + HSV hsv = {0, 255, 255}; hsv.h = scale16by8(g_rgb_timer + offset[i], rgb_matrix_config.speed / 4) + (offset[i]*2); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/keyboards/horrortroll/lemon40/keyboard.json b/keyboards/horrortroll/lemon40/keyboard.json index f2ff5be067..6303fb70bb 100644 --- a/keyboards/horrortroll/lemon40/keyboard.json +++ b/keyboards/horrortroll/lemon40/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "Lemon40", "manufacturer": "HorrorTroll", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x2434", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "led_count": 15, diff --git a/keyboards/horrortroll/nyx/rev1/keyboard.json b/keyboards/horrortroll/nyx/rev1/keyboard.json index c8a297176b..f3b859de0a 100644 --- a/keyboards/horrortroll/nyx/rev1/keyboard.json +++ b/keyboards/horrortroll/nyx/rev1/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c b/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c index 920584caf6..d678f19b46 100644 --- a/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c +++ b/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c @@ -76,10 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = LAYOUT_65_ansi_blocker( - 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, _______, RM_TOGG, - QK_BOOT, _______, MS_UP, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_SPDD, RM_SPDU, _______, RM_NEXT, - _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_CALC, _______, _______, NK_TOGG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU + 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, _______, RGB_TOG, + QK_BOOT, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, RGB_MOD, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, NK_TOGG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI ) }; diff --git a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h index 87e2e813a4..0cd0a54a8b 100644 --- a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h +++ b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h @@ -18,7 +18,6 @@ #include #include #include -#include "eeconfig.h" #define LED_TRAIL 10 @@ -83,7 +82,7 @@ static void traverse_matrix(void) { } } -static void swirl_set_color(hsv_t hsv) { +static void swirl_set_color(HSV hsv) { uint8_t index = g_led_config.matrix_co[j][i]; if(index != NO_LED){ @@ -98,25 +97,25 @@ static void swirl_set_color(hsv_t hsv) { else v_values[v] = 0; } - hsv.v = v_values[v]; - rgb_t rgb = hsv_to_rgb(hsv); + hsv.v = v_values[v]; + RGB rgb = hsv_to_rgb(hsv); rgb_matrix_set_color(v, rgb.r, rgb.g, rgb.b); } traverse_matrix(); if (!(top <= bottom && left <= right)) { - eeconfig_read_rgb_matrix(&rgb_matrix_config); + eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } } static bool STARTUP_SWIRL_ANIM(effect_params_t* params) { - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(24, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if (traverse) { swirl_set_color(hsv); diff --git a/keyboards/horrortroll/nyx/rev1/rev1.c b/keyboards/horrortroll/nyx/rev1/rev1.c index 48cbeb6680..fb4ce3183b 100644 --- a/keyboards/horrortroll/nyx/rev1/rev1.c +++ b/keyboards/horrortroll/nyx/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -35,7 +35,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } } return false; - case QK_RGB_MATRIX_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { switch (rgb_matrix_get_mode()) { case RGB_MATRIX_SOLID_MULTISPLASH: @@ -47,7 +47,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } } return false; - case QK_RGB_MATRIX_MODE_PREVIOUS: + case RGB_RMOD: if (record->event.pressed) { switch (rgb_matrix_get_mode()) { case RGB_MATRIX_SOLID_COLOR: diff --git a/keyboards/horrortroll/paws60/keyboard.json b/keyboards/horrortroll/paws60/keyboard.json index da6e3a4fa2..ac93b580a0 100644 --- a/keyboards/horrortroll/paws60/keyboard.json +++ b/keyboards/horrortroll/paws60/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0x7516", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -29,15 +27,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi_split_bs_rshift", "60_ansi", "60_ansi_tsangan", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ @@ -247,7 +237,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/hotdox/keymaps/default/keymap.c b/keyboards/hotdox/keymaps/default/keymap.c index 7de954e9ed..45e81b7fcf 100644 --- a/keyboards/hotdox/keymaps/default/keymap.c +++ b/keyboards/hotdox/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, @@ -119,10 +119,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/hotdox76v2/hotdox76v2.c b/keyboards/hotdox76v2/hotdox76v2.c index e60777703e..3ee5894107 100644 --- a/keyboards/hotdox76v2/hotdox76v2.c +++ b/keyboards/hotdox76v2/hotdox76v2.c @@ -20,12 +20,12 @@ led_config_t g_led_config = { { 13, 12, 11, 10, 9, 8, 7 }, { 0, 1, 2, 3, 4, 5, 6 }, /*right*/ - { NO_LED, 77, 76, 75, 78, 80, 79 }, - { 70, 71, 72, 73, 74, NO_LED, NO_LED }, - { 69, 68, 67, 66, 65, 64, 63 }, - { 57, 58, 59, 60, 61, 62, NO_LED }, - { 56, 55, 54, 53, 52, 51, 50 }, - { 43, 44, 45, 46, 47, 48, 49 } + { NO_LED, 72, 71, 70, 73, 75, 74 }, + { 65, 66, 67, 68, 69, NO_LED, NO_LED }, + { 64, 63, 62, 61, 60, 59, 58 }, + { 52, 53, 54, 55, 56, 57, NO_LED }, + { 51, 50, 49, 48, 47, 46, 45 }, + { 38, 39, 40, 41, 42, 43, 44 } }, { // LED Index to Physical Position @@ -60,7 +60,7 @@ led_config_t g_led_config = { #ifdef OLED_ENABLE -# define UNC (' ') +# define UNC (94 + 0x21) typedef struct _master_to_slave_t { int cur_alp_index; char current_alp[7]; @@ -115,8 +115,8 @@ void render_layer_helper_fun(uint8_t start_line, const char *data, uint8_t gap_w for (j = 0; j < l; ++j) { // font index for (k = 0; k < 12; ++k) { // font byte index // base + logo_w(32) + gap_w(12) +l*font_w(12)+current_byte_index - oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x20][k]), start_line * 2 * 128 + 32 + gap_w + j * 12 + k); - oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x20][k + 12]), start_line * 2 * 128 + 128 + 32 + gap_w + j * 12 + k); + oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k]), start_line * 2 * 128 + 32 + gap_w + j * 12 + k); + oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k + 12]), start_line * 2 * 128 + 128 + 32 + gap_w + j * 12 + k); } } for (j = 0; j < gap_w; ++j) { @@ -151,8 +151,8 @@ void render_cur_input_helper_fun(uint8_t start_line, const char *data, uint8_t g for (j = 0; j < l; ++j) { // font index for (k = 0; k < 12; ++k) { // font byte index // base + logo_w(0) + gap_w(12) +l*font_w(12)+current_byte_index - oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x20][k]), start_line * 2 * 128 + gap_w + j * 12 + k); - oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x20][12 + k]), start_line * 2 * 128 + 128 + gap_w + j * 12 + k); + oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][k]), start_line * 2 * 128 + gap_w + j * 12 + k); + oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][12 + k]), start_line * 2 * 128 + 128 + gap_w + j * 12 + k); } } for (j = 0; j < gap_w; ++j) { diff --git a/keyboards/hotdox76v2/keyboard.json b/keyboards/hotdox76v2/keyboard.json index 8881670b56..438099827e 100644 --- a/keyboards/hotdox76v2/keyboard.json +++ b/keyboards/hotdox76v2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hotdox76v2/oled_font_lib/ext_font.h b/keyboards/hotdox76v2/oled_font_lib/ext_font.h index dbcb59ed80..3d0f524025 100644 --- a/keyboards/hotdox76v2/oled_font_lib/ext_font.h +++ b/keyboards/hotdox76v2/oled_font_lib/ext_font.h @@ -7,116 +7,116 @@ #include "progmem.h" /* - (0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8) - )(9) *(10) +(11) ,(12) -(13) .(14) /(15) 0(16) - 1(17) 2(18) 3(19) 4(20) 5(21) 6(22) 7(23) 8(24) - 9(25) :(26) ;(27) <(28) =(29) >(30) ?(31) @(32) - A(33) B(34) C(35) D(36) E(37) F(38) G(39) H(40) - I(41) J(42) K(43) L(44) M(45) N(46) O(47) P(48) - Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56) - Y(57) Z(58) [(59) \(60) ](61) ^(62) _(63) `(64) - a(65) b(66) c(67) d(68) e(69) f(70) g(71) h(72) - i(73) j(74) k(75) l(76) m(77) n(78) o(79) p(80) - q(81) r(82) s(83) t(84) u(85) v(86) w(87) x(88) - y(89) z(90) {(91) |(92) }(93) ~(94) + !(0) "(1) #(2) $(3) %(4) &(5) '(6) ((7) + )(8) *(9) +(10) ,(11) -(12) .(13) /(14) 0(15) + 1(16) 2(17) 3(18) 4(19) 5(20) 6(21) 7(22) 8(23) + 9(24) :(25) ;(26) <(27) =(28) >(29) ?(30) @(31) + A(32) B(33) C(34) D(35) E(36) F(37) G(38) H(39) + I(40) J(41) K(42) L(43) M(44) N(45) O(46) P(47) + Q(48) R(49) S(50) T(51) U(52) V(53) W(54) X(55) + Y(56) Z(57) [(58) \(59) ](60) ^(61) _(62) `(63) + a(64) b(65) c(66) d(67) e(68) f(69) g(70) h(71) + i(72) j(73) k(74) l(75) m(76) n(77) o(78) p(79) + q(80) r(81) s(82) t(83) u(84) v(85) w(86) x(87) + y(88) z(89) {(90) |(91) }(92) ~(93) (94) */ static const unsigned char ext_big_font[95][24] PROGMEM = { -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ -{0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},/*"!",1*/ -{0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ -{0x00,0x00,0x60,0x60,0xFE,0xFE,0x60,0xFE,0xFE,0x60,0x00,0x00,0x00,0x00,0x06,0x7F,0x7F,0x06,0x7F,0x7F,0x06,0x06,0x00,0x00},/*"#",3*/ -{0x00,0x00,0x00,0xF0,0xF8,0x9E,0x9E,0xB8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0xF9,0xF9,0x1F,0x0F,0x00,0x00,0x00},/*"$",4*/ -{0x00,0x00,0x38,0x44,0xC4,0xC4,0xB8,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00},/*"%",5*/ -{0x00,0x00,0x60,0xE0,0xB0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x19,0x19,0x1B,0x1E,0x0E,0x0F,0x1B,0x00,0x00},/*"&",6*/ -{0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ -{0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x78,0x60,0x00,0x00,0x00},/*"(",8*/ -{0x00,0x00,0x0C,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x78,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/ -{0x00,0x00,0x30,0xB0,0xF0,0xFC,0xFC,0xF0,0xB0,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00},/*"*",10*/ -{0x00,0x80,0x80,0x80,0x80,0xF8,0xF8,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x1F,0x1F,0x01,0x01,0x01,0x01,0x00},/*"+",11*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x08,0x00,0x00,0x00,0x00,0x00},/*",",12*/ -{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00},/*"-",13*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*".",14*/ -{0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x06,0x00,0x00,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"/",15*/ -{0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x1C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1C,0x0F,0x07,0x00,0x00,0x00},/*"0",16*/ -{0x00,0x00,0x18,0x18,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"1",17*/ -{0x00,0x00,0x30,0x38,0x0C,0x0C,0x8C,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x00,0x00,0x00},/*"2",18*/ -{0x00,0x00,0x18,0x1C,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x19,0x0F,0x07,0x00,0x00,0x00},/*"3",19*/ -{0x00,0x00,0xC0,0xE0,0x78,0x1C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1B,0x1B,0x1F,0x1F,0x1B,0x00,0x00,0x00},/*"4",20*/ -{0x00,0x00,0xFC,0xFC,0xCC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"5",21*/ -{0x00,0x00,0xE0,0xF0,0xB8,0xDC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x19,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"6",22*/ -{0x00,0x00,0x1C,0x1C,0x0C,0x0C,0xCC,0xFC,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x03,0x00,0x00,0x00,0x00},/*"7",23*/ -{0x00,0x00,0x38,0xFC,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"8",24*/ -{0x00,0x00,0xF8,0xFC,0x8C,0x8C,0xCC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x19,0x1D,0x0E,0x07,0x03,0x00,0x00,0x00},/*"9",25*/ -{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*":",26*/ -{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x00,0x00},/*";",27*/ -{0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x30,0x30,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x06,0x0C,0x0C,0x18,0x18,0x00,0x00},/*"<",28*/ -{0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00},/*"=",29*/ -{0x00,0x30,0x30,0x60,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00},/*">",30*/ -{0x00,0x00,0x70,0x78,0x18,0x18,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x01,0x01,0x00,0x00,0x00,0x00},/*"?",31*/ -{0x00,0x00,0xF0,0x08,0xC4,0x24,0x24,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x21,0x22,0x22,0x13,0x00,0x00,0x00,0x00},/*"@",32*/ -{0x00,0x00,0x18,0x98,0xF8,0x38,0x38,0xF0,0x80,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1B,0x03,0x03,0x1B,0x1F,0x1C,0x18,0x00},/*"A",33*/ -{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x19,0x1F,0x0E,0x00,0x00},/*"B",34*/ -{0x00,0xE0,0xF0,0x38,0x18,0x18,0x18,0x10,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x0C,0x18,0x18,0x18,0x18,0x0C,0x0C,0x00,0x00},/*"C",35*/ -{0x00,0x18,0xF8,0xF8,0x18,0x18,0x18,0x38,0xF0,0xE0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"D",36*/ -{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x18,0x1E,0x1E,0x00,0x00},/*"E",37*/ -{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ -{0x00,0xE0,0xF0,0x38,0x18,0x18,0x10,0x38,0x38,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1B,0x1B,0x1F,0x0F,0x03,0x00,0x00},/*"G",39*/ -{0x00,0x18,0xF8,0xF8,0x98,0x80,0x98,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x19,0x1F,0x1F,0x18,0x00,0x00},/*"H",40*/ -{0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"I",41*/ -{0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x0F,0x0F,0x18,0x18,0x18,0x0F,0x0F,0x00,0x00,0x00},/*"J",42*/ -{0x00,0x18,0xF8,0xF8,0x98,0xC0,0x78,0x38,0x18,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x07,0x1E,0x18,0x18,0x00,0x00},/*"K",43*/ -{0x00,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1F,0x1F,0x00,0x00},/*"L",44*/ -{0x18,0xF8,0xF8,0x38,0xE0,0x00,0xE0,0x38,0xF8,0xF8,0x18,0x00,0x18,0x1F,0x1F,0x18,0x19,0x03,0x19,0x18,0x1F,0x1F,0x18,0x00},/*"M",45*/ -{0x00,0x18,0xF8,0xF8,0xF8,0xE0,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x03,0x1F,0x1F,0x1F,0x00,0x00,0x00},/*"N",46*/ -{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0x18,0x18,0x0C,0x0F,0x03,0x00,0x00},/*"O",47*/ -{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x01,0x00,0x00,0x00,0x00},/*"P",48*/ -{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0xCC,0xF8,0x78,0x78,0xCC,0xEF,0x63,0x00,0x00},/*"Q",49*/ -{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x07,0x0E,0x1C,0x18,0x00,0x00},/*"R",50*/ -{0x00,0x00,0x70,0xF8,0x98,0x98,0x90,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x09,0x19,0x19,0x1F,0x0E,0x00,0x00,0x00},/*"S",51*/ -{0x00,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"T",52*/ -{0x00,0x18,0xF8,0xF8,0x18,0x00,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"U",53*/ -{0x00,0x18,0x78,0xF8,0x98,0x00,0x98,0xF8,0x78,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x18,0x1F,0x03,0x00,0x00,0x00,0x00},/*"V",54*/ -{0x18,0xF8,0xF8,0x18,0xD8,0xC0,0xD8,0x18,0xF8,0xF8,0x18,0x00,0x00,0x01,0x1F,0x1C,0x1F,0x01,0x1F,0x1C,0x1F,0x01,0x00,0x00},/*"W",55*/ -{0x00,0x18,0x38,0x78,0xD8,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x01,0x1B,0x1E,0x1C,0x18,0x00,0x00},/*"X",56*/ -{0x00,0x18,0x38,0x78,0xD8,0x80,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"Y",57*/ -{0x00,0x00,0x78,0x78,0x18,0x98,0xD8,0x78,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x1E,0x1E,0x00,0x00,0x00},/*"Z",58*/ -{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x60,0x60,0x00,0x00,0x00},/*"[",59*/ -{0x00,0x00,0x06,0x1E,0x78,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1E,0x78,0x60,0x00,0x00},/*"\",60*/ -{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",61*/ -{0x00,0x00,0x00,0x60,0x70,0x18,0x0C,0x18,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ -{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"_",63*/ -{0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ -{0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1B,0x1B,0x0B,0x1F,0x1F,0x18,0x00,0x00},/*"a",65*/ -{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x18,0x1F,0x1F,0x0C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"b",66*/ -{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xC0,0xE0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0x00,0x00},/*"c",67*/ -{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xCC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"d",68*/ -{0x00,0x00,0x80,0xC0,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x00,0x00},/*"e",69*/ -{0x00,0x00,0x60,0x60,0xF8,0xFC,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"f",70*/ -{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0xDC,0xD8,0xD8,0xCC,0xFF,0x7F,0x00,0x00},/*"g",71*/ -{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"h",72*/ -{0x00,0x00,0x00,0x60,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"i",73*/ -{0x00,0x00,0x60,0x60,0x60,0x6C,0x6C,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00},/*"j",74*/ -{0x00,0x00,0x0C,0xFC,0xFC,0x80,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x03,0x06,0x1C,0x18,0x18,0x00,0x00},/*"k",75*/ -{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"l",76*/ -{0x00,0x60,0xE0,0xE0,0x60,0xE0,0xC0,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x18,0x00},/*"m",77*/ -{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"n",78*/ -{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"o",79*/ -{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xCC,0xD8,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"p",80*/ -{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0xD8,0xCC,0xFF,0xFF,0xC0,0x00},/*"q",81*/ -{0x00,0x00,0x60,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"r",82*/ -{0x00,0x00,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1B,0x1B,0x1B,0x1E,0x0E,0x00,0x00,0x00},/*"s",83*/ -{0x00,0x00,0x60,0x60,0xFC,0xFC,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x00,0x00},/*"t",84*/ -{0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"u",85*/ -{0x00,0x60,0xE0,0xE0,0x60,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x18,0x1F,0x07,0x00,0x00,0x00,0x00},/*"v",86*/ -{0x60,0xE0,0xE0,0x60,0x00,0x80,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x01,0x1F,0x1E,0x07,0x03,0x07,0x1E,0x1F,0x01,0x00,0x00},/*"w",87*/ -{0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x03,0x03,0x1F,0x1C,0x18,0x00,0x00},/*"x",88*/ -{0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0xC0,0xC0,0xC1,0xE7,0xFE,0xDC,0xC7,0x03,0x00,0x00,0x00},/*"y",89*/ -{0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x1B,0x19,0x1C,0x1C,0x00,0x00},/*"z",90*/ -{0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0x7E,0x60,0x00,0x00,0x00,0x00},/*"{",91*/ -{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ -{0x00,0x00,0x00,0x00,0x0C,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7E,0x3F,0x01,0x00,0x00,0x00,0x00},/*"}",93*/ -{0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00},/*"~",94*/ +{0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},/*"!",0*/ +{0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",1*/ +{0x00,0x00,0x60,0x60,0xFE,0xFE,0x60,0xFE,0xFE,0x60,0x00,0x00,0x00,0x00,0x06,0x7F,0x7F,0x06,0x7F,0x7F,0x06,0x06,0x00,0x00},/*"#",2*/ +{0x00,0x00,0x00,0xF0,0xF8,0x9E,0x9E,0xB8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0xF9,0xF9,0x1F,0x0F,0x00,0x00,0x00},/*"$",3*/ +{0x00,0x00,0x38,0x44,0xC4,0xC4,0xB8,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00},/*"%",4*/ +{0x00,0x00,0x60,0xE0,0xB0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x19,0x19,0x1B,0x1E,0x0E,0x0F,0x1B,0x00,0x00},/*"&",5*/ +{0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ +{0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x78,0x60,0x00,0x00,0x00},/*"(",7*/ +{0x00,0x00,0x0C,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x78,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*")",8*/ +{0x00,0x00,0x30,0xB0,0xF0,0xFC,0xFC,0xF0,0xB0,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00},/*"*",9*/ +{0x00,0x80,0x80,0x80,0x80,0xF8,0xF8,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x1F,0x1F,0x01,0x01,0x01,0x01,0x00},/*"+",10*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x08,0x00,0x00,0x00,0x00,0x00},/*",",11*/ +{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00},/*"-",12*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*".",13*/ +{0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x06,0x00,0x00,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"/",14*/ +{0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x1C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1C,0x0F,0x07,0x00,0x00,0x00},/*"0",15*/ +{0x00,0x00,0x18,0x18,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"1",16*/ +{0x00,0x00,0x30,0x38,0x0C,0x0C,0x8C,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x00,0x00,0x00},/*"2",17*/ +{0x00,0x00,0x18,0x1C,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x19,0x0F,0x07,0x00,0x00,0x00},/*"3",18*/ +{0x00,0x00,0xC0,0xE0,0x78,0x1C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1B,0x1B,0x1F,0x1F,0x1B,0x00,0x00,0x00},/*"4",19*/ +{0x00,0x00,0xFC,0xFC,0xCC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"5",20*/ +{0x00,0x00,0xE0,0xF0,0xB8,0xDC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x19,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"6",21*/ +{0x00,0x00,0x1C,0x1C,0x0C,0x0C,0xCC,0xFC,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x03,0x00,0x00,0x00,0x00},/*"7",22*/ +{0x00,0x00,0x38,0xFC,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"8",23*/ +{0x00,0x00,0xF8,0xFC,0x8C,0x8C,0xCC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x19,0x1D,0x0E,0x07,0x03,0x00,0x00,0x00},/*"9",24*/ +{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*":",25*/ +{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x00,0x00},/*";",26*/ +{0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x30,0x30,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x06,0x0C,0x0C,0x18,0x18,0x00,0x00},/*"<",27*/ +{0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00},/*"=",28*/ +{0x00,0x30,0x30,0x60,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00},/*">",29*/ +{0x00,0x00,0x70,0x78,0x18,0x18,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x01,0x01,0x00,0x00,0x00,0x00},/*"?",30*/ +{0x00,0x00,0xF0,0x08,0xC4,0x24,0x24,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x21,0x22,0x22,0x13,0x00,0x00,0x00,0x00},/*"@",31*/ +{0x00,0x00,0x18,0x98,0xF8,0x38,0x38,0xF0,0x80,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1B,0x03,0x03,0x1B,0x1F,0x1C,0x18,0x00},/*"A",32*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x19,0x1F,0x0E,0x00,0x00},/*"B",33*/ +{0x00,0xE0,0xF0,0x38,0x18,0x18,0x18,0x10,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x0C,0x18,0x18,0x18,0x18,0x0C,0x0C,0x00,0x00},/*"C",34*/ +{0x00,0x18,0xF8,0xF8,0x18,0x18,0x18,0x38,0xF0,0xE0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"D",35*/ +{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x18,0x1E,0x1E,0x00,0x00},/*"E",36*/ +{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00},/*"F",37*/ +{0x00,0xE0,0xF0,0x38,0x18,0x18,0x10,0x38,0x38,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1B,0x1B,0x1F,0x0F,0x03,0x00,0x00},/*"G",38*/ +{0x00,0x18,0xF8,0xF8,0x98,0x80,0x98,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x19,0x1F,0x1F,0x18,0x00,0x00},/*"H",39*/ +{0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"I",40*/ +{0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x0F,0x0F,0x18,0x18,0x18,0x0F,0x0F,0x00,0x00,0x00},/*"J",41*/ +{0x00,0x18,0xF8,0xF8,0x98,0xC0,0x78,0x38,0x18,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x07,0x1E,0x18,0x18,0x00,0x00},/*"K",42*/ +{0x00,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1F,0x1F,0x00,0x00},/*"L",43*/ +{0x18,0xF8,0xF8,0x38,0xE0,0x00,0xE0,0x38,0xF8,0xF8,0x18,0x00,0x18,0x1F,0x1F,0x18,0x19,0x03,0x19,0x18,0x1F,0x1F,0x18,0x00},/*"M",44*/ +{0x00,0x18,0xF8,0xF8,0xF8,0xE0,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x03,0x1F,0x1F,0x1F,0x00,0x00,0x00},/*"N",45*/ +{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0x18,0x18,0x0C,0x0F,0x03,0x00,0x00},/*"O",46*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x01,0x00,0x00,0x00,0x00},/*"P",47*/ +{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0xCC,0xF8,0x78,0x78,0xCC,0xEF,0x63,0x00,0x00},/*"Q",48*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x07,0x0E,0x1C,0x18,0x00,0x00},/*"R",49*/ +{0x00,0x00,0x70,0xF8,0x98,0x98,0x90,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x09,0x19,0x19,0x1F,0x0E,0x00,0x00,0x00},/*"S",50*/ +{0x00,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"T",51*/ +{0x00,0x18,0xF8,0xF8,0x18,0x00,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"U",52*/ +{0x00,0x18,0x78,0xF8,0x98,0x00,0x98,0xF8,0x78,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x18,0x1F,0x03,0x00,0x00,0x00,0x00},/*"V",53*/ +{0x18,0xF8,0xF8,0x18,0xD8,0xC0,0xD8,0x18,0xF8,0xF8,0x18,0x00,0x00,0x01,0x1F,0x1C,0x1F,0x01,0x1F,0x1C,0x1F,0x01,0x00,0x00},/*"W",54*/ +{0x00,0x18,0x38,0x78,0xD8,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x01,0x1B,0x1E,0x1C,0x18,0x00,0x00},/*"X",55*/ +{0x00,0x18,0x38,0x78,0xD8,0x80,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"Y",56*/ +{0x00,0x00,0x78,0x78,0x18,0x98,0xD8,0x78,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x1E,0x1E,0x00,0x00,0x00},/*"Z",57*/ +{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x60,0x60,0x00,0x00,0x00},/*"[",58*/ +{0x00,0x00,0x06,0x1E,0x78,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1E,0x78,0x60,0x00,0x00},/*"\",59*/ +{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",60*/ +{0x00,0x00,0x00,0x60,0x70,0x18,0x0C,0x18,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",61*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"_",62*/ +{0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",63*/ +{0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1B,0x1B,0x0B,0x1F,0x1F,0x18,0x00,0x00},/*"a",64*/ +{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x18,0x1F,0x1F,0x0C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"b",65*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xC0,0xE0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0x00,0x00},/*"c",66*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xCC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"d",67*/ +{0x00,0x00,0x80,0xC0,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x00,0x00},/*"e",68*/ +{0x00,0x00,0x60,0x60,0xF8,0xFC,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"f",69*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0xDC,0xD8,0xD8,0xCC,0xFF,0x7F,0x00,0x00},/*"g",70*/ +{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"h",71*/ +{0x00,0x00,0x00,0x60,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"i",72*/ +{0x00,0x00,0x60,0x60,0x60,0x6C,0x6C,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00},/*"j",73*/ +{0x00,0x00,0x0C,0xFC,0xFC,0x80,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x03,0x06,0x1C,0x18,0x18,0x00,0x00},/*"k",74*/ +{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"l",75*/ +{0x00,0x60,0xE0,0xE0,0x60,0xE0,0xC0,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x18,0x00},/*"m",76*/ +{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"n",77*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"o",78*/ +{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xCC,0xD8,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"p",79*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0xD8,0xCC,0xFF,0xFF,0xC0,0x00},/*"q",80*/ +{0x00,0x00,0x60,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"r",81*/ +{0x00,0x00,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1B,0x1B,0x1B,0x1E,0x0E,0x00,0x00,0x00},/*"s",82*/ +{0x00,0x00,0x60,0x60,0xFC,0xFC,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x00,0x00},/*"t",83*/ +{0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"u",84*/ +{0x00,0x60,0xE0,0xE0,0x60,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x18,0x1F,0x07,0x00,0x00,0x00,0x00},/*"v",85*/ +{0x60,0xE0,0xE0,0x60,0x00,0x80,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x01,0x1F,0x1E,0x07,0x03,0x07,0x1E,0x1F,0x01,0x00,0x00},/*"w",86*/ +{0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x03,0x03,0x1F,0x1C,0x18,0x00,0x00},/*"x",87*/ +{0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0xC0,0xC0,0xC1,0xE7,0xFE,0xDC,0xC7,0x03,0x00,0x00,0x00},/*"y",88*/ +{0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x1B,0x19,0x1C,0x1C,0x00,0x00},/*"z",89*/ +{0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0x7E,0x60,0x00,0x00,0x00,0x00},/*"{",90*/ +{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"|",91*/ +{0x00,0x00,0x00,0x00,0x0C,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7E,0x3F,0x01,0x00,0x00,0x00,0x00},/*"}",92*/ +{0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00},/*"~",93*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",94*/ }; static const unsigned char blank_block PROGMEM = 0x00; diff --git a/keyboards/hp69/keyboard.json b/keyboards/hp69/keyboard.json index 1ffad8894d..83ed922a27 100644 --- a/keyboards/hp69/keyboard.json +++ b/keyboards/hp69/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "hp69", "manufacturer": "Desiboards", + "url": "", "maintainer": "Ananya Kirti", "usb": { "vid": "0x416B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hs60/v1/ansi/keymaps/default/keymap.c b/keyboards/hs60/v1/ansi/keymaps/default/keymap.c index 2e2dd2d2a5..3d52fe4d52 100644 --- a/keyboards/hs60/v1/ansi/keymaps/default/keymap.c +++ b/keyboards/hs60/v1/ansi/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_ansi( /* FN */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/hs60/v1/info.json b/keyboards/hs60/v1/info.json index 4c4e7d4e47..c6ebae97ce 100644 --- a/keyboards/hs60/v1/info.json +++ b/keyboards/hs60/v1/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "HS60", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/hs60/v1/iso/keymaps/default/keymap.c b/keyboards/hs60/v1/iso/keymaps/default/keymap.c index f4e76108b2..5059aabe20 100644 --- a/keyboards/hs60/v1/iso/keymaps/default/keymap.c +++ b/keyboards/hs60/v1/iso/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_iso( /* FN */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c index 7c685f76b8..ecb78c70d0 100644 --- a/keyboards/hs60/v1/v1.c +++ b/keyboards/hs60/v1/v1.c @@ -71,7 +71,7 @@ void matrix_init_kb(void) { // Clear the LED colors stored in EEPROM for ( int row=0; row < MATRIX_ROWS; row++ ) { - hsv_t hsv; + HSV hsv; for ( int column=0; column < MATRIX_COLS; column++ ) { hsv.h = rand() & 0xFF; diff --git a/keyboards/hs60/v2/ansi/keyboard.json b/keyboards/hs60/v2/ansi/keyboard.json index d0ec52a50d..e0781ef54b 100644 --- a/keyboards/hs60/v2/ansi/keyboard.json +++ b/keyboards/hs60/v2/ansi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hs60/v2/hhkb/keyboard.json b/keyboards/hs60/v2/hhkb/keyboard.json index 327359b697..9bd4d111c2 100644 --- a/keyboards/hs60/v2/hhkb/keyboard.json +++ b/keyboards/hs60/v2/hhkb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hs60/v2/iso/keyboard.json b/keyboards/hs60/v2/iso/keyboard.json index e31ff53d7b..a51dac05fa 100644 --- a/keyboards/hs60/v2/iso/keyboard.json +++ b/keyboards/hs60/v2/iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hubble/keyboard.json b/keyboards/hubble/keyboard.json index 6f586f2edb..735cf4237d 100644 --- a/keyboards/hubble/keyboard.json +++ b/keyboards/hubble/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -35,6 +37,7 @@ "cols": ["F5", "F6", "B4", "E6", "D7", "C6", "D4", "D0"], "rows": ["D1", "F4", "F7", "B5", "B1", "B3", "B6", "B2"] }, + "url": "", "usb": { "vid": "0x4680", "pid": "0x1357", diff --git a/keyboards/huytbt/h50/keyboard.json b/keyboards/huytbt/h50/keyboard.json index 05dd812205..cd62966e58 100644 --- a/keyboards/huytbt/h50/keyboard.json +++ b/keyboards/huytbt/h50/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ianklug/grooveboard/keyboard.json b/keyboards/ianklug/grooveboard/keyboard.json index 508ed1894f..ce7ac8cc22 100644 --- a/keyboards/ianklug/grooveboard/keyboard.json +++ b/keyboards/ianklug/grooveboard/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json index 3bf1069fd1..a43e16a04c 100644 --- a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json +++ b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibm/model_m/ctrl_m/keyboard.json b/keyboards/ibm/model_m/ctrl_m/keyboard.json deleted file mode 100644 index 41801215c1..0000000000 --- a/keyboards/ibm/model_m/ctrl_m/keyboard.json +++ /dev/null @@ -1,409 +0,0 @@ -{ - "keyboard_name": "ctrl-M", - "manufacturer": "nuess0r", - "url": "https://github.com/nuess0r/ctrl-m", - "maintainer": "nuess0r", - "usb": { - "vid": "0x1D50", - "pid": "0x6180", - "device_version": "1.0.0", - "max_power": 100 - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "cols": ["A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15", "F0", "F1", "A0", "A1", "A2"], - "rows": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2"], - "ghost": true - }, - "diode_direction": "ROW2COL", - "indicators": { - "num_lock": "B10", - "caps_lock": "B12", - "scroll_lock": "B11", - "on_state": 0 - }, - "bootmagic": { - "matrix": [0, 2] - }, - "processor": "STM32F072", - "bootloader": "stm32-dfu", - "layouts": { - "LAYOUT_fullsize_ansi_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, - {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, - {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, - {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, - - {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, - - {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, - {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, - {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, - {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, - {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, - {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, - {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, - {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, - {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, - {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, - {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, - {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, - - {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, - {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, - {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, - - {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, - {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, - {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, - {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, - - {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, - {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, - {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, - {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, - {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, - {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, - - {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, - {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, - {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, - {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, - - {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, - {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, - {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, - {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, - {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, - - {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, - {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, - {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, - - {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, - {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, - {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, - {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, - {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, - - {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, - {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, - {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, - {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, - - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, - {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, - - {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, - {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, - {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, - - {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} - ] - }, - "LAYOUT_fullsize_iso_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, - {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, - {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, - {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, - - {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, - - {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, - {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, - {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, - {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, - {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, - {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, - {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, - {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, - {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, - {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, - {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, - {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, - - {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, - {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, - {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, - - {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, - {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, - {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, - {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, - - {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, - {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, - {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, - - {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, - {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, - {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, - - {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, - {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, - {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, - {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, - - {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, - {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, - {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, - {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, - {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, - {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, - - {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, - {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, - {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, - - {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, - {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, - {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, - {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, - {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, - {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, - - {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, - {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, - {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, - {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, - - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, - {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, - - {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, - {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, - {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, - - {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} - ] - }, - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, - {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, - {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, - {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, - - {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, - - {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, - {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, - {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, - {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, - {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, - {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, - {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, - {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, - {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, - {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, - {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, - {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, - - {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, - {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, - {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, - - {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, - {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, - {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, - {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, - - {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, - {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, - {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, - {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, - {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, - {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, - - {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, - {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, - {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, - {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, - - {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, - {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, - {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, - {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, - {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, - {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 3.5, "w": 1.25}, - - {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, - {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, - {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, - - {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, - {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, - {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, - {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, - {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, - {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, - - {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, - {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, - {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, - {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, - - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, - {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, - - {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, - {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, - {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, - - {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} - ] - } - } -} diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c deleted file mode 100644 index 741cb1c4ba..0000000000 --- a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 Michael Schwingen - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( /* Base layer - standard layout without any special functions */ - 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, - 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_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , - KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, - KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ) -}; diff --git a/keyboards/ibm/model_m/ctrl_m/readme.md b/keyboards/ibm/model_m/ctrl_m/readme.md deleted file mode 100644 index aab3a685f2..0000000000 --- a/keyboards/ibm/model_m/ctrl_m/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# ctrl-M - -![ctrl-M PCB](https://i.imgur.com/wUqY8N3.jpeg) - -This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M). Many thanks to iw0rm3r, ashpil, mschwingen and all QMK contributors for working on similar projects and providing the foundation for this! - -* Keyboard Maintainer: [nuess0r](https://github.com/nuess0r) -* Hardware Supported: [ctrl-M](https://github.com/nuess0r/ctrl-m) -* Hardware Availability: [tindie shop](https://www.tindie.com/products/brain4free/ctrl-m/) - -Example how to compile for this keyboard (after setting up your build environment): - - make ibm/model_m/ctrl_m:default - -Flashing example for this keyboard: - - make ibm/model_m/ctrl_m: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 Escape key and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ibm/model_m/modelh/keyboard.json b/keyboards/ibm/model_m/modelh/keyboard.json index 7fee15cd2c..513d5d9bb6 100644 --- a/keyboards/ibm/model_m/modelh/keyboard.json +++ b/keyboards/ibm/model_m/modelh/keyboard.json @@ -4,11 +4,10 @@ "maintainer": "jhawthorn", "bootloader": "stm32duino", "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 3 - }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -36,7 +35,7 @@ "device_version": "1.0.0", "max_power": 100, "pid": "0xB155", - "vid": "0xBDE0" + "vid": "0xFEED" }, "layouts": { "LAYOUT_fullsize_ansi_wkl": { @@ -285,93 +284,6 @@ {"matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, {"matrix": [0, 13], "x": 20.5, "y": 5.5} ] - }, - "LAYOUT_wheelwriter_1x_iso": { - "layout": [ - {"matrix": [2, 2], "x": 0, "y": 0}, - - {"matrix": [2, 4], "x": 1.25, "y": 0}, - {"matrix": [3, 4], "x": 2.25, "y": 0}, - {"matrix": [3, 5], "x": 3.25, "y": 0}, - {"matrix": [3, 6], "x": 4.25, "y": 0}, - {"matrix": [3, 7], "x": 5.25, "y": 0}, - {"matrix": [2, 7], "x": 6.25, "y": 0}, - {"matrix": [2, 8], "x": 7.25, "y": 0}, - {"matrix": [3, 8], "x": 8.25, "y": 0}, - {"matrix": [3, 9], "x": 9.25, "y": 0}, - {"matrix": [3, 10], "x": 10.25, "y": 0}, - {"matrix": [3, 11], "x": 11.25, "y": 0}, - {"matrix": [2, 11], "x": 12.25, "y": 0}, - {"matrix": [2, 9], "x": 13.25, "y": 0}, - {"matrix": [2, 12], "x": 14.25, "y": 0, "w": 2}, - - {"matrix": [2, 13], "x": 17.5, "y": 0}, - - {"matrix": [4, 1], "x": 0, "y": 1}, - - {"matrix": [4, 2], "x": 1.25, "y": 1, "w": 1.5}, - {"matrix": [4, 4], "x": 2.75, "y": 1}, - {"matrix": [4, 5], "x": 3.75, "y": 1}, - {"matrix": [4, 6], "x": 4.75, "y": 1}, - {"matrix": [4, 7], "x": 5.75, "y": 1}, - {"matrix": [5, 7], "x": 6.75, "y": 1}, - {"matrix": [5, 8], "x": 7.75, "y": 1}, - {"matrix": [4, 8], "x": 8.75, "y": 1}, - {"matrix": [4, 9], "x": 9.75, "y": 1}, - {"matrix": [4, 10], "x": 10.75, "y": 1}, - {"matrix": [4, 11], "x": 11.75, "y": 1}, - {"matrix": [5, 11], "x": 12.75, "y": 1}, - {"matrix": [5, 9], "x": 13.75, "y": 1}, - - {"matrix": [4, 13], "x": 17.5, "y": 1}, - - {"matrix": [5, 2], "x": 0, "y": 2}, - - {"matrix": [6, 2], "x": 1.25, "y": 2, "w": 1.5}, - {"matrix": [1, 4], "x": 3, "y": 2}, - {"matrix": [1, 5], "x": 4, "y": 2}, - {"matrix": [1, 6], "x": 5, "y": 2}, - {"matrix": [1, 7], "x": 6, "y": 2}, - {"matrix": [0, 7], "x": 7, "y": 2}, - {"matrix": [0, 8], "x": 8, "y": 2}, - {"matrix": [1, 8], "x": 9, "y": 2}, - {"matrix": [1, 9], "x": 10, "y": 2}, - {"matrix": [1, 10], "x": 11, "y": 2}, - {"matrix": [1, 11], "x": 12, "y": 2}, - {"matrix": [0, 11], "x": 13, "y": 2}, - {"matrix": [6, 11], "x": 14, "y": 2}, - {"matrix": [0, 12], "x": 15, "y": 2, "w": 1.25, "h": 2}, - - {"matrix": [1, 13], "x": 17.5, "y": 2}, - - {"matrix": [1, 2], "x": 0, "y": 3}, - - {"matrix": [7, 3], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [7, 4], "x": 2.5, "y": 3}, - {"matrix": [6, 4], "x": 3.5, "y": 3}, - {"matrix": [6, 5], "x": 4.5, "y": 3}, - {"matrix": [6, 6], "x": 5.5, "y": 3}, - {"matrix": [6, 7], "x": 6.5, "y": 3}, - {"matrix": [7, 7], "x": 7.5, "y": 3}, - {"matrix": [7, 8], "x": 8.5, "y": 3}, - {"matrix": [6, 8], "x": 9.5, "y": 3}, - {"matrix": [6, 9], "x": 10.5, "y": 3}, - {"matrix": [6, 10], "x": 11.5, "y": 3}, - {"matrix": [7, 11], "x": 12.5, "y": 3}, - {"matrix": [6, 3], "x": 13.5, "y": 3, "w": 2.75}, - - {"matrix": [6, 12], "x": 17.5, "y": 3}, - - {"matrix": [0, 1], "x": 0, "y": 4}, - - {"matrix": [7, 14], "x": 3.75, "y": 4, "w": 2.5}, - {"matrix": [7, 1], "x": 6.25, "y": 4, "w": 7.25}, - {"matrix": [7, 2], "x": 14.75, "y": 4, "w": 1.5}, - - {"matrix": [7, 12], "x": 16.5, "y": 4}, - {"matrix": [0, 13], "x": 17.5, "y": 4}, - {"matrix": [7, 13], "x": 18.5, "y": 4} - ] - } + } } } diff --git a/keyboards/ibm/model_m/modelh/keymaps/wheelwriter_1x_iso/keymap.c b/keyboards/ibm/model_m/modelh/keymaps/wheelwriter_1x_iso/keymap.c deleted file mode 100644 index e603de22df..0000000000 --- a/keyboards/ibm/model_m/modelh/keymaps/wheelwriter_1x_iso/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2024 Robin Haberkorn - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_wheelwriter_1x_iso( /* Base layer */ - KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, - KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, - KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(1), - KC_APP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_wheelwriter_1x_iso( /* Function key layer */ - KC_MUTE, KC_NO, 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_NO, KC_BRIU, - KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID, - KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, - KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END - ), -}; diff --git a/keyboards/ibm/model_m/modelh/readme.md b/keyboards/ibm/model_m/modelh/readme.md index 2a59ce99c8..bed79619ce 100644 --- a/keyboards/ibm/model_m/modelh/readme.md +++ b/keyboards/ibm/model_m/modelh/readme.md @@ -17,8 +17,4 @@ Flashing example for this keyboard: make ibm/model_m/modelh:default:flash -For IBM Wheelwriter 10/15/1000 modules (ISO), you can try the `wheelwriter_1x_iso` keymap: - - make ibm/model_m/modelh:wheelwriter_1x_iso - 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). diff --git a/keyboards/ibm/model_m/mschwingen/config.h b/keyboards/ibm/model_m/mschwingen/config.h index 19fb3fcd6f..b34d29649a 100644 --- a/keyboards/ibm/model_m/mschwingen/config.h +++ b/keyboards/ibm/model_m/mschwingen/config.h @@ -65,7 +65,6 @@ # define MODELM_LED_SCROLLOCK MODELM_LED3 # define MODELM_LED_NUMLOCK MODELM_LED1 #elif defined(KEYBOARD_ibm_model_m_mschwingen_led_ws2812) -# define WS2812_LED_COUNT 3 #else # error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set! #endif diff --git a/keyboards/ibm/model_m/mschwingen/keymaps/default/keymap.c b/keyboards/ibm/model_m/mschwingen/keymaps/default/keymap.c index 66db19400f..8e28b4e449 100644 --- a/keyboards/ibm/model_m/mschwingen/keymaps/default/keymap.c +++ b/keyboards/ibm/model_m/mschwingen/keymaps/default/keymap.c @@ -63,11 +63,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MS] = LAYOUT( /* mouse key layer */ // Cursor: mouse, INS/HOME/PgUp: Mouse Accel, Del, End, PageDn: mouse buttons TG(_MS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_BTN3, MS_BTN2, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______ ) }; diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c index 34a878c769..7c0f1b2565 100644 --- a/keyboards/ibm/model_m/mschwingen/mschwingen.c +++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c @@ -19,11 +19,8 @@ #include "uart.h" #include "print.h" #include "sendchar.h" -#include "sleep_led.h" - -#ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 #include "ws2812.h" -#endif +#include "sleep_led.h" #ifdef UART_DEBUG # undef sendchar @@ -42,10 +39,27 @@ static uint8_t isRecording = 0; # if RGBLIGHT_LED_COUNT < 3 # error we need at least 3 RGB LEDs! # endif +static rgb_led_t led[RGBLIGHT_LED_COUNT] = {{255, 255, 255}, {255, 255, 255}, {255, 255, 255}}; # define BRIGHT 32 # define DIM 6 +static const rgb_led_t black = {.r = 0, .g = 0, .b = 0}; + +static const __attribute__((unused)) rgb_led_t green = {.r = 0, .g = BRIGHT, .b = 0}; +static const __attribute__((unused)) rgb_led_t lgreen = {.r = 0, .g = DIM, .b = 0}; + +static const __attribute__((unused)) rgb_led_t red = {.r = BRIGHT, .g = 0, .b = 0}; +static const __attribute__((unused)) rgb_led_t lred = {.r = DIM, .g = 0, .b = 0}; + +static const __attribute__((unused)) rgb_led_t blue = {.r = 0, .g = 0, .b = BRIGHT}; +static const __attribute__((unused)) rgb_led_t lblue = {.r = 0, .g = 0, .b = DIM}; + +static const __attribute__((unused)) rgb_led_t turq = {.r = 0, .g = BRIGHT, .b = BRIGHT}; +static const __attribute__((unused)) rgb_led_t lturq = {.r = 0, .g = DIM, .b = DIM}; + +static const __attribute__((unused)) rgb_led_t white = {.r = BRIGHT, .g = BRIGHT, .b = BRIGHT}; + static led_t led_state; static uint8_t layer; static uint8_t default_layer; @@ -67,15 +81,17 @@ void sleep_led_enable(void) { suspend_active = true; gpio_write_pin_low(MODELM_STATUS_LED); #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 - ws2812_set_color_all(0, 0, 0); - ws2812_flush(); + led[0] = black; + led[1] = black; + led[2] = black; + ws2812_setleds(led, RGBLIGHT_LED_COUNT); #endif } void keyboard_pre_init_kb(void) { #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 ws2812_init(); - ws2812_flush(); + ws2812_setleds(led, RGBLIGHT_LED_COUNT); #else /* Set status LEDs pins to output and Low (on) */ gpio_set_pin_output(MODELM_LED_CAPSLOCK); @@ -105,59 +121,35 @@ void keyboard_pre_init_kb(void) { #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 static void led_update_rgb(void) { if (isRecording && blink_state) { - ws2812_set_color(0, BRIGHT, BRIGHT, BRIGHT); + led[0] = white; } else { switch (default_layer) { case 0: - if (led_state.num_lock) { - ws2812_set_color(0, 0, 0, BRIGHT); - } else { - ws2812_set_color(0, 0, 0, DIM); - } + led[0] = led_state.num_lock ? blue : lblue; break; case 1: - if (led_state.num_lock) { - ws2812_set_color(0, 0, BRIGHT, 0); - } else { - ws2812_set_color(0, 0, 0, 0); - } + led[0] = led_state.num_lock ? green : black; break; } } - if (led_state.caps_lock) { - ws2812_set_color(1, 0, BRIGHT, 0); - } else { - ws2812_set_color(1, 0, 0, 0); - } + led[1] = led_state.caps_lock ? green : black; switch (layer) { case 0: case 1: default: - if (led_state.scroll_lock) { - ws2812_set_color(2, 0, BRIGHT, 0); - } else { - ws2812_set_color(2, 0, 0, 0); - } + led[2] = led_state.scroll_lock ? green : black; break; case 2: - if (led_state.scroll_lock) { - ws2812_set_color(2, BRIGHT, 0, 0); - } else { - ws2812_set_color(2, DIM, 0, 0); - } + led[2] = led_state.scroll_lock ? red : lred; break; case 3: - if (led_state.scroll_lock) { - ws2812_set_color(2, 0, BRIGHT, BRIGHT); - } else { - ws2812_set_color(2, 0, DIM, DIM); - } + led[2] = led_state.scroll_lock ? turq : lturq; break; } if (!suspend_active) { - ws2812_flush(); + ws2812_setleds(led, RGBLIGHT_LED_COUNT); } } diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk index e9091cdbae..65761bcf9a 100644 --- a/keyboards/ibm/model_m/mschwingen/rules.mk +++ b/keyboards/ibm/model_m/mschwingen/rules.mk @@ -5,3 +5,5 @@ UART_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes OPT_DEFS += -DSLEEP_LED_ENABLE + +DEFAULT_FOLDER = ibm/model_m/mschwingen/led_wired diff --git a/keyboards/ibm/model_m/teensy2/keyboard.json b/keyboards/ibm/model_m/teensy2/keyboard.json index fac1d42ebe..173f9e772f 100644 --- a/keyboards/ibm/model_m/teensy2/keyboard.json +++ b/keyboards/ibm/model_m/teensy2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibm/model_m/yacobo/config.h b/keyboards/ibm/model_m/yacobo/config.h deleted file mode 100644 index f8e96c8d6e..0000000000 --- a/keyboards/ibm/model_m/yacobo/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Stephen Edwards - * - * 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 . - * - * Adapted from the Model H Project by Jonathan Hawthorn. - */ - -#pragma once - -/* The status LED on the Blue Pill. */ -#define BLUE_PILL_STATUS_LED C13 diff --git a/keyboards/ibm/model_m/yacobo/keyboard.json b/keyboards/ibm/model_m/yacobo/keyboard.json deleted file mode 100644 index dd88ac5cd4..0000000000 --- a/keyboards/ibm/model_m/yacobo/keyboard.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "manufacturer": "IBM", - "keyboard_name": "Model M (Yacobo)", - "maintainer": "sje-mse", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "indicators": { - "num_lock": "B11", - "caps_lock": "B10", - "scroll_lock": "B1", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A9", "A8", "B15", "B14", "B13", "B12", "A0"], - "rows": ["A1", "A2", "A3", "A4", "A5", "A6", "A7","B0"], - "ghost": true - }, - "development_board": "bluepill", - "url": "https://github.com/sje-mse/yacobo", - "usb": { - "device_version": "1.0.0", - "max_power": 100, - "pid": "0xB155", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_fullsize_ansi_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, - {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, - {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, - {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, - {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, - {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, - - {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, - {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, - {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, - {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, - {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, - {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, - {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, - {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, - {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, - {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, - {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, - {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, - - {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, - {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, - {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, - - {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, - {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, - {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, - {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, - - {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, - {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, - {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, - {"label": "\\", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, - {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, - {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, - - {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, - {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, - {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, - {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, - - {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, - {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, - {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, - {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, - {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, - - {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, - {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, - {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, - - {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, - {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, - {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, - {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, - {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, - - {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, - {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, - {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, - {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, - - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, - {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, - {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, - - {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, - {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, - {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, - - {"label": "0", "matrix": [0, 12], "x": 19, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} - ] - }, - "LAYOUT_fullsize_iso_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, - {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, - {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, - {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, - {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, - {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, - - {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, - {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, - {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, - {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, - {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, - {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, - {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, - {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, - {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, - {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, - {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, - {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, - {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, - {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, - - {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, - {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, - {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, - - {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, - {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, - {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, - {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, - - {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, - {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, - {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, - {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, - {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, - {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, - {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, - {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, - - {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, - {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, - {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, - - {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, - {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, - {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, - {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, - - {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, - {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, - {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, - {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, - {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, - {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, - {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, - {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, - {"label": "#", "matrix": [6, 10], "x": 12.75, "y": 3.5}, - {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, - - {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, - {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, - {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, - - {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, - {"label": "\\", "matrix": [0, 3], "x": 1.25, "y": 4.5}, - {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, - {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, - {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, - {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, - {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, - {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, - {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, - - {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, - {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, - {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, - {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, - - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, - {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, - {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, - - {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, - {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, - {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, - - {"label": "0", "matrix": [0, 12], "x": 19, "y": 5.5, "w": 2}, - {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} - ] - } - } -} diff --git a/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c deleted file mode 100644 index 27647d4ed3..0000000000 --- a/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 Stephen Edwards - * - * 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 . - * - * Adapted from the Model H Project by Jonathan Hawthorn. - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_fullsize_ansi_wkl( /* Base layer */ - 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), -}; diff --git a/keyboards/ibm/model_m/yacobo/readme.md b/keyboards/ibm/model_m/yacobo/readme.md deleted file mode 100644 index d0cafa1d44..0000000000 --- a/keyboards/ibm/model_m/yacobo/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# yacobo - -![yacobo](https://i.imgur.com/1nfuWoa.jpeg) - -*A replacement qmk-compatible control board for the 101-key Model M keyboards. -Inspired by and based on the ModelH by jhawthorn, in comparison this design uses 100% through-hole components, including the widely available STM32F103C8T6 "Blue Pill" development board, for ease of assembly.* - -* Keyboard Maintainer: [Stephen Edwards](https://github.com/sje-mse) -* Hardware Supported: IBM 101-key Model M with Yacobo replacement control boards. -* Hardware Availability: [Yacobo PCB](https://github.com/sje-mse/yacobo). - -Make example for this keyboard (after setting up your build environment): - - make yacobo:default - -Flashing example for this keyboard: - - make yacobo:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Press the "Reset" button on the Blue Pill daughterboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ibm/model_m/yacobo/yacobo.c b/keyboards/ibm/model_m/yacobo/yacobo.c deleted file mode 100644 index 7664facacc..0000000000 --- a/keyboards/ibm/model_m/yacobo/yacobo.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2024 Stephen Edwards - * - * 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 . - * - * Adapted from the Model H Project by Jonathan Hawthorn. - */ - -#include "quantum.h" - - -void keyboard_pre_init_kb(void) { - gpio_set_pin_output(BLUE_PILL_STATUS_LED); - gpio_write_pin(BLUE_PILL_STATUS_LED, 0); - keyboard_pre_init_user(); -} diff --git a/keyboards/ibm/model_m/yugo_m/keyboard.json b/keyboards/ibm/model_m/yugo_m/keyboard.json index aee2f9720a..10fe637f03 100644 --- a/keyboards/ibm/model_m/yugo_m/keyboard.json +++ b/keyboards/ibm/model_m/yugo_m/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json index 50ce403130..5994d820f4 100644 --- a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json +++ b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibnuda/alicia_cook/keyboard.json b/keyboards/ibnuda/alicia_cook/keyboard.json index d8a98f92ed..fd3b23285c 100644 --- a/keyboards/ibnuda/alicia_cook/keyboard.json +++ b/keyboards/ibnuda/alicia_cook/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false @@ -19,7 +21,8 @@ "rows": ["D2", "D3", "F4", "F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ibnuda/gurindam/keyboard.json b/keyboards/ibnuda/gurindam/keyboard.json index 72fdba4f7f..1cf74068b6 100644 --- a/keyboards/ibnuda/gurindam/keyboard.json +++ b/keyboards/ibnuda/gurindam/keyboard.json @@ -27,6 +27,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -43,7 +45,8 @@ "rows": ["B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ibnuda/squiggle/rev1/keyboard.json b/keyboards/ibnuda/squiggle/rev1/keyboard.json index e614da39bd..41061674a9 100644 --- a/keyboards/ibnuda/squiggle/rev1/keyboard.json +++ b/keyboards/ibnuda/squiggle/rev1/keyboard.json @@ -19,7 +19,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/ibnuda/squiggle/rules.mk b/keyboards/ibnuda/squiggle/rules.mk new file mode 100644 index 0000000000..0214333999 --- /dev/null +++ b/keyboards/ibnuda/squiggle/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ibnuda/squiggle/rev1 diff --git a/keyboards/icebreaker/hotswap/keyboard.json b/keyboards/icebreaker/hotswap/keyboard.json deleted file mode 100644 index b6e5c1d1ac..0000000000 --- a/keyboards/icebreaker/hotswap/keyboard.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "manufacturer": "Serene Studio", - "keyboard_name": "Icebreaker HS", - "maintainer": "Matthijs Muller", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP26", "pin_b": "GP27"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP24", "GP19", "GP18", "GP17", "GP29", "GP0", "GP12", "GP11", "GP10", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2"], - "rows": ["GP25", "GP22", "GP28", "GP23", "GP1"] - }, - "processor": "RP2040", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "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, - "fractal": 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_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 - }, - "default": { - "sat": 100, - "val": 80 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, - {"matrix": [2, 13], "x": 224, "y": 0, "flags": 4}, - {"matrix": [0, 14], "x": 240, "y": 0, "flags": 4}, - {"matrix": [1, 14], "x": 0, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 24, "y": 16, "flags": 4}, - {"matrix": [1, 12], "x": 40, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 56, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 72, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 88, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 104, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 136, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 152, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 168, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 184, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 200, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 216, "y": 16, "flags": 4}, - {"matrix": [1, 0], "x": 240, "y": 16, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 204, "y": 32, "flags": 4}, - {"matrix": [2, 14], "x": 240, "y": 32, "flags": 4}, - {"matrix": [3, 14], "x": 0, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 36, "y": 48, "flags": 4}, - {"matrix": [3, 12], "x": 52, "y": 48, "flags": 4}, - {"matrix": [3, 11], "x": 68, "y": 48, "flags": 4}, - {"matrix": [3, 10], "x": 84, "y": 48, "flags": 4}, - {"matrix": [3, 9], "x": 100, "y": 48, "flags": 4}, - {"matrix": [3, 8], "x": 116, "y": 48, "flags": 4}, - {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 148, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 164, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 180, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 196, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 0], "x": 240, "y": 48, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 24, "y": 64, "flags": 4}, - {"matrix": [4, 6], "x": 48, "y": 64, "flags": 4}, - {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, - {"matrix": [4, 11], "x": 184, "y": 64, "flags": 4}, - {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, - {"matrix": [4, 14], "x": 240, "y": 64, "flags": 4} - ], - "max_brightness": 120 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x6503", - "vid": "0x5363" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP13" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"label": "encoder", "matrix": [3, 1], "x": 16, "y": 0, "encoder": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4}, - {"matrix": [4, 11], "x": 12, "y": 4}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/icebreaker/hotswap/keymaps/default/keymap.c b/keyboards/icebreaker/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 058210fff4..0000000000 --- a/keyboards/icebreaker/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2024 Matthijs Muller - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_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_DEL, KC_GRV, KC_MUTE, - 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_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, -}; -#endif diff --git a/keyboards/icebreaker/hotswap/keymaps/default/rules.mk b/keyboards/icebreaker/hotswap/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/icebreaker/hotswap/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/icebreaker/readme.md b/keyboards/icebreaker/readme.md deleted file mode 100644 index 439756f1b3..0000000000 --- a/keyboards/icebreaker/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Icebreaker - -![Icebreaker](https://i.imgur.com/vSRfEOD.png) - - - -* Keyboard Maintainer: [Matthijs Muller](https://github.com/SmollChungus) -* Hardware Supported: Icebreaker Hotswap PCB - -Make example for this keyboard (after setting up your build environment): - - make icebreaker:default - -Flashing example for this keyboard: - - make icebreaker:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/idank/spankbd/keymaps/default/keymap.json b/keyboards/idank/spankbd/keymaps/default/keymap.json index a07be80076..10bb42e108 100644 --- a/keyboards/idank/spankbd/keymaps/default/keymap.json +++ b/keyboards/idank/spankbd/keymaps/default/keymap.json @@ -59,7 +59,7 @@ "KC_DLR", "KC_LPRN", "KC_RPRN", - "MS_BTN2", + "KC_BTN2", "KC_PPLS", "KC_MINS", "KC_SLSH", @@ -69,7 +69,7 @@ "KC_CIRC", "KC_LBRC", "KC_RBRC", - "MS_BTN1", + "KC_BTN1", "KC_AMPR", "KC_EQL", "KC_COMM", @@ -108,10 +108,10 @@ "KC_F8", "KC_F9", "KC_F10", - "MS_LEFT", - "MS_DOWN", - "MS_UP", - "MS_RGHT", + "KC_MS_L", + "KC_MS_D", + "KC_MS_U", + "KC_MS_R", "KC_VOLD", "KC_F11", "KC_F12", diff --git a/keyboards/idank/sweeq/keyboard.json b/keyboards/idank/sweeq/keyboard.json index 3bed772467..a9b8d7411e 100644 --- a/keyboards/idank/sweeq/keyboard.json +++ b/keyboards/idank/sweeq/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/idank/sweeq/keymaps/default/keymap.json b/keyboards/idank/sweeq/keymaps/default/keymap.json index d869668fdc..efd87277c7 100644 --- a/keyboards/idank/sweeq/keymaps/default/keymap.json +++ b/keyboards/idank/sweeq/keymaps/default/keymap.json @@ -19,13 +19,13 @@ "LT(7,KC_SPC)", "KC_P1" ], ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "MS_BTN1" , "MS_WHLU" , "MS_BTN2" , "KC_TRNS", + "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", - "KC_TRNS" , "MS_BTN2" , "KC_NO" , "MS_BTN1" , "KC_TRNS", - "KC_TRNS" , "MS_LEFT" , "MS_DOWN" , "MS_UP" , "MS_RGHT", + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS", + "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "MS_WHLL" , "MS_WHLD" , "MS_WHLR" , "KC_TRNS", + "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" diff --git a/keyboards/idb/idb_60/keyboard.json b/keyboards/idb/idb_60/keyboard.json index 1c4b486fb8..80bbd17a5a 100644 --- a/keyboards/idb/idb_60/keyboard.json +++ b/keyboards/idb/idb_60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,8 +31,7 @@ "bootloader": "atmel-dfu", "layout_aliases": { "LAYOUT": "LAYOUT_all", - "LAYOUT_default": "LAYOUT_60_ansi_wkl_split_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_default": "LAYOUT_60_ansi_wkl_split_rshift" }, "layouts": { "LAYOUT_all": { @@ -172,7 +173,7 @@ {"matrix": [9, 6], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/idobao/id42/keyboard.json b/keyboards/idobao/id42/keyboard.json index 0f1cecd16a..14db7641ea 100644 --- a/keyboards/idobao/id42/keyboard.json +++ b/keyboards/idobao/id42/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, @@ -69,13 +71,9 @@ "vid": "0x6964", "pid": "0x0042", "device_version": "1.0.0", + "force_nkro": true, "polling_interval": 2 - }, - "host": { - "default": { - "nkro": true - } - }, + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/idobao/id42/keymaps/default/keymap.c b/keyboards/idobao/id42/keymaps/default/keymap.c index a3ef12a91d..ffcef7a7ed 100644 --- a/keyboards/idobao/id42/keymaps/default/keymap.c +++ b/keyboards/idobao/id42/keymaps/default/keymap.c @@ -76,8 +76,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [3] = LAYOUT( _______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, - _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; diff --git a/keyboards/idobao/id61/keyboard.json b/keyboards/idobao/id61/keyboard.json index d3bf62c726..cb55f1750d 100644 --- a/keyboards/idobao/id61/keyboard.json +++ b/keyboards/idobao/id61/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id61/keymaps/default/keymap.c b/keyboards/idobao/id61/keymaps/default/keymap.c index f689f8ce76..0476f18024 100644 --- a/keyboards/idobao/id61/keymaps/default/keymap.c +++ b/keyboards/idobao/id61/keymaps/default/keymap.c @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_60_ansi( 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, _______, - _______, _______, KC_UP, _______, _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_PSCR, KC_HOME, KC_END, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_PGUP, KC_PGDN, _______, + _______, _______, KC_UP, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_PSCR, KC_HOME, KC_END, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, KC_INS, KC_DEL, KC_UP, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT ) diff --git a/keyboards/idobao/id63/keyboard.json b/keyboards/idobao/id63/keyboard.json index 141c1263d1..1969ca4cf7 100644 --- a/keyboards/idobao/id63/keyboard.json +++ b/keyboards/idobao/id63/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id63/keymaps/default/keymap.c b/keyboards/idobao/id63/keymaps/default/keymap.c index 155209eb73..c6ad7e5abf 100644 --- a/keyboards/idobao/id63/keymaps/default/keymap.c +++ b/keyboards/idobao/id63/keymaps/default/keymap.c @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_60_ansi_arrow( 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, KC_DEL, - _______, RM_TOGG, KC_UP, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) diff --git a/keyboards/idobao/id67/keyboard.json b/keyboards/idobao/id67/keyboard.json index 786ed39be0..64c3623fd6 100644 --- a/keyboards/idobao/id67/keyboard.json +++ b/keyboards/idobao/id67/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "command": false, + "console": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/idobao/id67/keymaps/default/keymap.c b/keyboards/idobao/id67/keymaps/default/keymap.c index 39d86abd7f..55e6fd88cd 100644 --- a/keyboards/idobao/id67/keymaps/default/keymap.c +++ b/keyboards/idobao/id67/keymaps/default/keymap.c @@ -40,9 +40,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RM_TOGG, KC_UP, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, - _______, QK_BOOT, RM_SPDU, RM_SPDD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/idobao/id75/keymaps/default75/keymap.c b/keyboards/idobao/id75/keymaps/default75/keymap.c index 4ef4500c42..69865b0c0a 100644 --- a/keyboards/idobao/id75/keymaps/default75/keymap.c +++ b/keyboards/idobao/id75/keymaps/default75/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NUM, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RM_HUED, RM_HUEU, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, - KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RM_SATD, RM_SATU, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______, - KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RM_VALD, RM_VALU, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, - _______, _______, RM_TOGG, MO(_FN), RM_PREV, RM_NEXT, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ + KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, + KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______, + KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ ), }; diff --git a/keyboards/idobao/id75/v1/keyboard.json b/keyboards/idobao/id75/v1/keyboard.json index d49724e1b4..f52938d0d8 100644 --- a/keyboards/idobao/id75/v1/keyboard.json +++ b/keyboards/idobao/id75/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ID75", "manufacturer": "IDOBAO", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6964", @@ -13,6 +14,7 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json index 743c7cf404..09e24dbd47 100644 --- a/keyboards/idobao/id75/v2/keyboard.json +++ b/keyboards/idobao/id75/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ID75", "manufacturer": "IDOBAO", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x6964", @@ -51,6 +52,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk new file mode 100644 index 0000000000..20283f04be --- /dev/null +++ b/keyboards/idobao/id80/v1/rules.mk @@ -0,0 +1,2 @@ +# Defalt to the ansi version +DEFAULT_FOLDER = idobao/id80/v2/ansi diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 81f895e929..4d6e0773d8 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -1,5 +1,6 @@ { "manufacturer": "IDOBAO", + "url": "", "maintainer": "IDOBAOKB", "usb": { "vid": "0x6964", @@ -49,6 +50,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "backlight": true, "rgblight": true diff --git a/keyboards/idobao/id80/v3/ansi/keyboard.json b/keyboards/idobao/id80/v3/ansi/keyboard.json index 0ab369fb5d..6200c2e88c 100644 --- a/keyboards/idobao/id80/v3/ansi/keyboard.json +++ b/keyboards/idobao/id80/v3/ansi/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c index b2aa8515e5..92248393de 100644 --- a/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_80_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, RM_TOGG, _______, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______, KC_VOLD, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_PREV, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, RGB_RMOD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) }; diff --git a/keyboards/idobao/id80/v3/rules.mk b/keyboards/idobao/id80/v3/rules.mk new file mode 100644 index 0000000000..218fc05539 --- /dev/null +++ b/keyboards/idobao/id80/v3/rules.mk @@ -0,0 +1,2 @@ +# Defalt to the ansi version +DEFAULT_FOLDER = idobao/id80/v3/ansi diff --git a/keyboards/idobao/id87/v1/keyboard.json b/keyboards/idobao/id87/v1/keyboard.json index e7ce655161..5ae86f8d5e 100644 --- a/keyboards/idobao/id87/v1/keyboard.json +++ b/keyboards/idobao/id87/v1/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id87/v2/keyboard.json b/keyboards/idobao/id87/v2/keyboard.json index ad6641f954..0ece932274 100644 --- a/keyboards/idobao/id87/v2/keyboard.json +++ b/keyboards/idobao/id87/v2/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/idobao/id87/v2/keymaps/default/keymap.c b/keyboards/idobao/id87/v2/keymaps/default/keymap.c index 8e3df79ee4..3910ac76bc 100644 --- a/keyboards/idobao/id87/v2/keymaps/default/keymap.c +++ b/keyboards/idobao/id87/v2/keymaps/default/keymap.c @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, _______, - _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU, - _______, _______, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI, + _______, _______, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ) }; diff --git a/keyboards/idobao/id96/keyboard.json b/keyboards/idobao/id96/keyboard.json index d8c446dd5d..c06dfdd454 100644 --- a/keyboards/idobao/id96/keyboard.json +++ b/keyboards/idobao/id96/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/montex/v1/keyboard.json b/keyboards/idobao/montex/v1/keyboard.json index 52a53021ba..2d9f503832 100644 --- a/keyboards/idobao/montex/v1/keyboard.json +++ b/keyboards/idobao/montex/v1/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/montex/v1rgb/keyboard.json b/keyboards/idobao/montex/v1rgb/keyboard.json index 1c5252bbea..f4c18764b1 100755 --- a/keyboards/idobao/montex/v1rgb/keyboard.json +++ b/keyboards/idobao/montex/v1rgb/keyboard.json @@ -37,6 +37,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c b/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c index bd6a7a3bb7..c5c1bf7e18 100755 --- a/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c +++ b/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c @@ -44,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───────┴───┴───┘ */ [1] = LAYOUT_numpad_6x5( - QK_BOOT, RM_TOGG, RM_NEXT, KC_PSCR, KC_SCRL, - RM_HUEU, XXXXXXX, RM_SPDD, RM_SPDU, RM_VALD, - RM_HUED, KC_HOME, KC_UP, KC_PGUP, RM_VALU, - RM_SATU, KC_LEFT, XXXXXXX, KC_RGHT, - RM_SATD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, + QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SCRL, + RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD, + RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI, + RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT, + RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, _______, KC_INS, KC_DEL ) }; diff --git a/keyboards/idobao/montex/v2/keyboard.json b/keyboards/idobao/montex/v2/keyboard.json index 319f46a459..6c00fd538d 100755 --- a/keyboards/idobao/montex/v2/keyboard.json +++ b/keyboards/idobao/montex/v2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/montex/v2/keymaps/default/keymap.c b/keyboards/idobao/montex/v2/keymaps/default/keymap.c index cd017317f5..db37bc72c7 100755 --- a/keyboards/idobao/montex/v2/keymaps/default/keymap.c +++ b/keyboards/idobao/montex/v2/keymaps/default/keymap.c @@ -44,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───────┴───┘───┘ */ [1] = LAYOUT_numpad_6x5( - QK_BOOT, RM_TOGG, RM_NEXT, KC_PSCR, KC_SCRL, - RM_HUEU, XXXXXXX, RM_SPDD, RM_SPDU, RM_VALD, - RM_HUED, KC_HOME, KC_UP, KC_PGUP, RM_VALU, - RM_SATU, KC_LEFT, XXXXXXX, KC_RGHT, - RM_SATD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, + QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SCRL, + RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD, + RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI, + RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT, + RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, _______, KC_INS, KC_DEL ) }; diff --git a/keyboards/idyllic/pizzapad/keyboard.json b/keyboards/idyllic/pizzapad/keyboard.json deleted file mode 100644 index 590d354034..0000000000 --- a/keyboards/idyllic/pizzapad/keyboard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "manufacturer": "Zykrah", - "keyboard_name": "Pizza Pad", - "maintainer": "zykrah", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 6 - }, - "matrix_pins": { - "cols": ["GP1", "GP0", "GP7"], - "rows": ["GP6", "GP29", "GP28"] - }, - "usb": { - "device_version": "0.0.2", - "pid": "0x5050", - "vid": "0x7A79" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true, - "encoder": true - }, - "encoder": { - "rotary": [ - { "pin_a": "GP2", "pin_b": "GP3" } - ] - }, - "community_layouts": ["ortho_3x3"], - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/idyllic/pizzapad/keymaps/default/keymap.c b/keyboards/idyllic/pizzapad/keymaps/default/keymap.c deleted file mode 100644 index 333b33bc0b..0000000000 --- a/keyboards/idyllic/pizzapad/keymaps/default/keymap.c +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2024 Zykrah (@zykrah) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x3( - KC_P7, KC_P8, KC_P9, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 - ) -}; diff --git a/keyboards/idyllic/pizzapad/pizzapad.c b/keyboards/idyllic/pizzapad/pizzapad.c deleted file mode 100644 index 11a35193aa..0000000000 --- a/keyboards/idyllic/pizzapad/pizzapad.c +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Zykrah -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define ENCODER_PIN_C GP27 - -void keyboard_pre_init_kb(void) { - // Set encoder pin C low - gpio_set_pin_output_push_pull(ENCODER_PIN_C); - gpio_write_pin_low(ENCODER_PIN_C); - - keyboard_pre_init_user(); -} diff --git a/keyboards/idyllic/pizzapad/readme.md b/keyboards/idyllic/pizzapad/readme.md deleted file mode 100644 index 04098cb522..0000000000 --- a/keyboards/idyllic/pizzapad/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Pizza Pad PCB - -![Pizza Pad PCB](https://i.imgur.com/eJLuaZY.jpg) - -A 3x3 PCB designed for the Idyllic Pretty Pad. - -* Keyboard Maintainer: Zykrah -* Hardware Supported: Pizza Pad PCB (using a SEEED XIAO RP2040) -* Hardware Availability: [Mechstock](https://mechstock.com.au/) - -Make example for this keyboard (after setting up your build environment): - - make idyllic/pizzapad:default - -Flashing example for this keyboard: - - make idyllic/pizzapad:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press both the `BOOT` and `RESET` buttons at the same time -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idyllic/tinny50_rgb/keyboard.json b/keyboards/idyllic/tinny50_rgb/keyboard.json index 4d3cd320dd..b3eb34a4c0 100644 --- a/keyboards/idyllic/tinny50_rgb/keyboard.json +++ b/keyboards/idyllic/tinny50_rgb/keyboard.json @@ -13,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/igloo/keyboard.json b/keyboards/igloo/keyboard.json index 546b26131d..6e0cba498b 100644 --- a/keyboards/igloo/keyboard.json +++ b/keyboards/igloo/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -17,6 +19,7 @@ "rows": ["B7", "D0", "D1", "D2", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/illuminati/is0/keyboard.json b/keyboards/illuminati/is0/keyboard.json index 33f7208a47..ee90646b19 100644 --- a/keyboards/illuminati/is0/keyboard.json +++ b/keyboards/illuminati/is0/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "iS0", "manufacturer": "Illuminati Works", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/illusion/rosa/keyboard.json b/keyboards/illusion/rosa/keyboard.json index 932b1a91d6..7fef56841d 100644 --- a/keyboards/illusion/rosa/keyboard.json +++ b/keyboards/illusion/rosa/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rosa", "manufacturer": "illusion keyboards", + "url": "", "maintainer": "illusion", "usb": { "vid": "0x694B", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -31,10 +33,10 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb"], "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb", + "LAYOUT_60_ansi_tsangan_split_bs_rshift": "LAYOUT_60_tsangan_hhkb" }, "layouts": { "LAYOUT_60_ansi_tsangan": { @@ -174,7 +176,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/ilumkb/primus75/keyboard.json b/keyboards/ilumkb/primus75/keyboard.json index 6a6a166fc4..15831ffda6 100644 --- a/keyboards/ilumkb/primus75/keyboard.json +++ b/keyboards/ilumkb/primus75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Primus75", "manufacturer": "moyi4681", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json index 10e182dac8..8e7680fb9f 100644 --- a/keyboards/ilumkb/simpler61/keyboard.json +++ b/keyboards/ilumkb/simpler61/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Simpler61", "manufacturer": "Equalz", + "url": "", "maintainer": "Equalz", "usb": { "vid": "0xC3C3", @@ -50,6 +51,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ilumkb/simpler61/keymaps/default/keymap.c b/keyboards/ilumkb/simpler61/keymaps/default/keymap.c index d6c6a7f183..bd9e605eda 100644 --- a/keyboards/ilumkb/simpler61/keymaps/default/keymap.c +++ b/keyboards/ilumkb/simpler61/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_61_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, KC_UP, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, QK_BOOT, + _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json index 240d0d67c2..65aa627b04 100644 --- a/keyboards/ilumkb/simpler64/keyboard.json +++ b/keyboards/ilumkb/simpler64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Simpler64", "manufacturer": "Equalz", + "url": "", "maintainer": "Equalz", "usb": { "vid": "0xC3C3", @@ -50,6 +51,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ilumkb/simpler64/keymaps/default/keymap.c b/keyboards/ilumkb/simpler64/keymaps/default/keymap.c index e338fe6d76..bc4b232480 100644 --- a/keyboards/ilumkb/simpler64/keymaps/default/keymap.c +++ b/keyboards/ilumkb/simpler64/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_64_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/ilumkb/volcano660/keyboard.json b/keyboards/ilumkb/volcano660/keyboard.json index 0a42910c86..fa74e46fed 100644 --- a/keyboards/ilumkb/volcano660/keyboard.json +++ b/keyboards/ilumkb/volcano660/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Volcano660", "manufacturer": "DZTech", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/inett_studio/sq80/rules.mk b/keyboards/inett_studio/sq80/rules.mk new file mode 100644 index 0000000000..d4f8260d93 --- /dev/null +++ b/keyboards/inett_studio/sq80/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = inett_studio/sq80/hotswap_layout_i diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index 22d2e739cb..0759616004 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -18,7 +18,20 @@ */ #pragma once +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) + #define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index dc12ec4f30..c04d7ef02c 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#include "quantum.h" +#include "hotswap.h" #ifdef RGB_MATRIX_ENABLE const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { @@ -163,3 +163,43 @@ bool rgb_matrix_indicators_kb(void) { } #endif //RGB_MATRIX_ENABLE + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (record->event.pressed) { + switch(keycode) { +#if defined(RGB_MATRIX_DISABLE_KEYCODES) + case RGB_MATRIX_TOGGLE: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case RGB_MATRIX_STEP: + rgb_matrix_step(); + return false; + case RGB_MATRIX_INC_HUE: + rgb_matrix_increase_hue(); + return false; + case RGB_MATRIX_DEC_HUE: + rgb_matrix_decrease_hue(); + return false; + case RGB_MATRIX_INC_SAT: + rgb_matrix_increase_sat(); + return false; + case RGB_MATRIX_DEC_SAT: + rgb_matrix_decrease_sat(); + return false; + case RGB_MATRIX_INC_VAL: + rgb_matrix_increase_val(); + return false; + case RGB_MATRIX_DEC_VAL: + rgb_matrix_decrease_val(); + return false; +#endif + default: + break; + } + } + return true; +} diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.h b/keyboards/inett_studio/sqx/hotswap/hotswap.h new file mode 100644 index 0000000000..ab0d6ec5c8 --- /dev/null +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.h @@ -0,0 +1,48 @@ +/** + * @file hotswap.h + * + Copyright 2020 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#if defined(RGB_MATRIX_DISABLE_KEYCODES) +# ifndef RGB_MATRIX_TOGGLE +# define RGB_MATRIX_TOGGLE KC_F16 +# endif +# ifndef RGB_MATRIX_STEP +# define RGB_MATRIX_STEP KC_F17 +# endif +# ifndef RGB_MATRIX_INC_HUE +# define RGB_MATRIX_INC_HUE KC_F18 +# endif +# ifndef RGB_MATRIX_DEC_HUE +# define RGB_MATRIX_DEC_HUE KC_F19 +# endif +# ifndef RGB_MATRIX_INC_SAT +# define RGB_MATRIX_INC_SAT KC_F20 +# endif +# ifndef RGB_MATRIX_DEC_SAT +# define RGB_MATRIX_DEC_SAT KC_F21 +# endif +# ifndef RGB_MATRIX_INC_VAL +# define RGB_MATRIX_INC_VAL KC_F22 +# endif +# ifndef RGB_MATRIX_DEC_VAL +# define RGB_MATRIX_DEC_VAL KC_F23 +# endif +#endif diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json index 0c28be4582..071b38d992 100644 --- a/keyboards/inett_studio/sqx/hotswap/keyboard.json +++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SQUARE.X", "manufacturer": "iNETT Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x694E", @@ -65,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -78,12 +81,9 @@ "diode_direction": "ROW2COL", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/inett_studio/sqx/hotswap/keymaps/default/keymap.c b/keyboards/inett_studio/sqx/hotswap/keymaps/default/keymap.c index 1e7be294a5..4c32519ed8 100644 --- a/keyboards/inett_studio/sqx/hotswap/keymaps/default/keymap.c +++ b/keyboards/inett_studio/sqx/hotswap/keymaps/default/keymap.c @@ -18,16 +18,16 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_DEL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTL), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( _______, 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_PSCR, - QK_BOOT,UG_TOGG,UG_NEXT,_______, RM_TOGG, RM_NEXT,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + QK_BOOT,RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______,_______,_______), diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 22d2e739cb..737addf725 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -18,7 +18,20 @@ */ #pragma once +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json index 2c2b03bd0d..d201f391fa 100644 --- a/keyboards/inett_studio/sqx/universal/keyboard.json +++ b/keyboards/inett_studio/sqx/universal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SQUARE.X", "manufacturer": "iNETT Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x694E", @@ -65,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -78,16 +81,7 @@ "diode_direction": "ROW2COL", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi_tsangan_split_rshift": { "layout": [ @@ -436,7 +430,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/inett_studio/sqx/universal/keymaps/default/keymap.c b/keyboards/inett_studio/sqx/universal/keymaps/default/keymap.c index abab8cabbe..a17f3c9b22 100644 --- a/keyboards/inett_studio/sqx/universal/keymaps/default/keymap.c +++ b/keyboards/inett_studio/sqx/universal/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_ansi_split_bs_rshift( _______, 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_PSCR, - QK_BOOT,UG_TOGG,UG_NEXT,_______, RM_TOGG, RM_NEXT,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + QK_BOOT,RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______,_______,TG(0),_______), diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index 105e89ecc5..6c2af3a3b9 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#include "quantum.h" +#include "universal.h" #ifdef RGB_MATRIX_ENABLE const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { @@ -167,3 +167,43 @@ bool rgb_matrix_indicators_kb(void) { } #endif //RGB_MATRIX_ENABLE + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (record->event.pressed) { + switch(keycode) { +#if defined(RGB_MATRIX_DISABLE_KEYCODES) + case RGB_MATRIX_TOGGLE: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case RGB_MATRIX_STEP: + rgb_matrix_step(); + return false; + case RGB_MATRIX_INC_HUE: + rgb_matrix_increase_hue(); + return false; + case RGB_MATRIX_DEC_HUE: + rgb_matrix_decrease_hue(); + return false; + case RGB_MATRIX_INC_SAT: + rgb_matrix_increase_sat(); + return false; + case RGB_MATRIX_DEC_SAT: + rgb_matrix_decrease_sat(); + return false; + case RGB_MATRIX_INC_VAL: + rgb_matrix_increase_val(); + return false; + case RGB_MATRIX_DEC_VAL: + rgb_matrix_decrease_val(); + return false; +#endif + default: + break; + } + } + return true; +} diff --git a/keyboards/inett_studio/sqx/universal/universal.h b/keyboards/inett_studio/sqx/universal/universal.h new file mode 100644 index 0000000000..5aa086ffab --- /dev/null +++ b/keyboards/inett_studio/sqx/universal/universal.h @@ -0,0 +1,48 @@ +/** + * @file universal.h + * + Copyright 2020 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#if defined(RGB_MATRIX_DISABLE_KEYCODES) +# ifndef RGB_MATRIX_TOGGLE +# define RGB_MATRIX_TOGGLE KC_F16 +# endif +# ifndef RGB_MATRIX_STEP +# define RGB_MATRIX_STEP KC_F17 +# endif +# ifndef RGB_MATRIX_INC_HUE +# define RGB_MATRIX_INC_HUE KC_F18 +# endif +# ifndef RGB_MATRIX_DEC_HUE +# define RGB_MATRIX_DEC_HUE KC_F19 +# endif +# ifndef RGB_MATRIX_INC_SAT +# define RGB_MATRIX_INC_SAT KC_F20 +# endif +# ifndef RGB_MATRIX_DEC_SAT +# define RGB_MATRIX_DEC_SAT KC_F21 +# endif +# ifndef RGB_MATRIX_INC_VAL +# define RGB_MATRIX_INC_VAL KC_F22 +# endif +# ifndef RGB_MATRIX_DEC_VAL +# define RGB_MATRIX_DEC_VAL KC_F23 +# endif +#endif diff --git a/keyboards/inland/kb83/halconf.h b/keyboards/inland/kb83/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/inland/kb83/halconf.h +++ b/keyboards/inland/kb83/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 431406d008..65093a3c38 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -128,6 +128,128 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB10_CA5, CB11_CA5, CB12_CA5}, }; +led_config_t g_led_config = { + { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED}, + { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, NO_LED, 28}, + { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43}, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57}, + { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, NO_LED, NO_LED, 69, 70, 71}, + { 72, 73, 74, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, 81} + }, + { + { 0, 0}, // 0 + { 14, 0}, // 1 + { 29, 0}, // 2 + { 44, 0}, // 3 + { 59, 0}, // 4 + { 74, 0}, // 5 + { 89, 0}, // 6 + {104, 0}, // 7 + {119, 0}, // 8 + {134, 0}, // 9 + {149, 0}, // 10 + {164, 0}, // 11 + {179, 0}, // 12 + {194, 0}, // 13 + + { 0, 12}, // 14 + { 14, 12}, // 15 + { 28, 12}, // 16 + { 42, 12}, // 17 + { 56, 12}, // 18 + { 70, 12}, // 19 + { 84, 12}, // 20 + { 98, 12}, // 21 + {112, 12}, // 22 + {126, 12}, // 23 + {140, 12}, // 24 + {154, 12}, // 25 + {168, 12}, // 26 + {182, 12}, // 27 + {224, 12}, // 28 + + { 0, 25}, // 29 + { 14, 25}, // 30 + { 28, 25}, // 31 + { 42, 25}, // 32 + { 56, 25}, // 33 + { 70, 25}, // 34 + { 84, 25}, // 35 + { 98, 25}, // 36 + {112, 25}, // 37 + {126, 25}, // 38 + {140, 25}, // 39 + {154, 25}, // 40 + {168, 25}, // 41 + {182, 25}, // 42 + {224, 25}, // 43 + + { 0, 38}, // 44 + { 28, 38}, // 45 + { 42, 38}, // 46 + { 56, 38}, // 47 + { 70, 38}, // 48 + { 84, 38}, // 49 + { 98, 38}, // 50 + {112, 38}, // 51 + {126, 38}, // 52 + {140, 38}, // 53 + {154, 38}, // 54 + {168, 38}, // 55 + {182, 38}, // 56 + {224, 38}, // 57 + + { 0, 51}, // 58 + { 18, 51}, // 59 + { 37, 51}, // 60 + { 56, 51}, // 61 + { 74, 51}, // 62 + { 93, 51}, // 63 + {112, 51}, // 64 + {130, 51}, // 65 + {149, 51}, // 66 + {168, 51}, // 67 + {186, 51}, // 68 + {200, 51}, // 69 + {214, 51}, // 70 + {224, 51}, // 71 + + { 0, 64}, // 72 + { 18, 64}, // 73 + { 37, 64}, // 74 + { 92, 64}, // 75 + {140, 64}, // 76 + {154, 64}, // 77 + {168, 64}, // 78 + {196, 64}, // 80 + {210, 64}, // 81 + {224, 64}, // 82 + + {0, 0}, // 68 LED 1 + {0, 16}, // 69 LED 2 + {0, 32}, // 70 LED 3 + {0, 48}, // 71 LED 4 + {0, 64}, // 72 LED 5 + + {224, 0 }, // 78 LED 12 + {224, 16}, // 79 LED 13 + {224, 32}, // 80 LED 14 + {224, 48}, // 81 LED 15 + {224, 64}, // 82 LED 16 + }, + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, + } +}; + bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; @@ -153,14 +275,49 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { #endif +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +enum colors { + WHITE, + RED, + GREEN, + BLUE +}; +enum colors led_color_status = WHITE; + // clang-format on +static bool fn_make_flag = false; +static bool Lkey_flag = false; +static bool reset_glint_flag = false; +static bool while_test_flag = false; +static bool alarm_flag = false; +static uint16_t current_time = 0; +static uint8_t glint_cnt = 0; +static uint16_t scancode = 0; +static uint8_t alarm_cnt = 0; +static uint8_t RGB_HSV_level; + +HSV hsv; + +void led_test(uint8_t color); +void clear_eeprom(void); +void rgb_hsv_updata_user(void); bool dip_switch_update_kb(uint8_t index, bool active) { if (!dip_switch_update_user(index, active)) { return false; } if (index == 0) { - set_single_default_layer(active ? 2 : 0); + default_layer_set(1UL << (active ? 2 : 0)); + } + if(active){ + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); } return true; } @@ -170,7 +327,164 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case MO(WIN_FN): + case MO(MAC_FN): + fn_make_flag = record->event.pressed; + return true; + case KC_ESC: + if (fn_make_flag && record->event.pressed) { + Lkey_flag = true; + current_time = timer_read(); + scancode = KC_ESC; + return false; + } else { + Lkey_flag = 0; + } + return true; + case KC_END: + if (fn_make_flag && record->event.pressed) { + if (while_test_flag) { + while_test_flag = false; + rgb_matrix_init(); + } else { + Lkey_flag = true; + current_time = timer_read(); + scancode = KC_END; + } + return false; + } else { + Lkey_flag = 0; + } + return true; + case KC_LEFT: + if (while_test_flag == true) { + if (record->event.pressed) { + if (glint_cnt == 0) + glint_cnt = 3; + else + glint_cnt--; + if ((glint_cnt % 4) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } else if ((glint_cnt % 4) == 1) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else if ((glint_cnt % 4) == 2) { + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + } else if ((glint_cnt % 4) == 3) { + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + } + } + return false; + } + return true; + case KC_RGHT: + if (while_test_flag == true) { + if (record->event.pressed) { + glint_cnt++; + if (glint_cnt >= 4) glint_cnt = 0; + + if ((glint_cnt % 4) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } else if ((glint_cnt % 4) == 1) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else if ((glint_cnt % 4) == 2) { + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + } else if ((glint_cnt % 4) == 3) { + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + } + } + return false; + } + return true; + case DF(WIN_B): + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + set_single_persistent_default_layer(WIN_B); + return false; + } + return true; + case DF(MAC_B): + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + set_single_persistent_default_layer(MAC_B); + return false; + } + return true; + + case RGB_VAI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_VAD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SAI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SAD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_HUI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) < 6) { + RGB_HSV_level++; + rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_HUD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SPI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); + } + } + return false; + case RGB_SPD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); + } + } + return false; + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -189,6 +503,102 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; default: - return true; + return process_record_user(keycode, record); } } + +void housekeeping_task_kb(void) { + if (Lkey_flag) { + if (scancode == KC_ESC) { + if (timer_elapsed(current_time) >= 3000) { + Lkey_flag = false; + clear_eeprom(); + + current_time = timer_read(); + reset_glint_flag = true; + glint_cnt = 0; + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_OFF); + } + } else if (scancode == KC_END) { + if (timer_elapsed(current_time) >= 3000) { + Lkey_flag = false; + clear_eeprom(); + + while_test_flag = true; + glint_cnt = 0; + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } + } + } else if (reset_glint_flag) { + if ((timer_elapsed(current_time)) >= 300) { + current_time = timer_read(); + if (((glint_cnt++) & 0x01) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else { + rgb_matrix_sethsv_noeeprom(HSV_OFF); + } + if (glint_cnt >= 7) { + glint_cnt = 0; + reset_glint_flag = false; + rgb_matrix_init(); + } + } + } else if (alarm_cnt != 0) { + alarm_cnt--; + if (alarm_cnt == 0) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + } + } else if (alarm_flag) { + if ((timer_elapsed(current_time)) >= 200) { + rgb_matrix_toggle_noeeprom(); + alarm_flag = 0; + } + } +} + +void led_test(uint8_t color) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + + switch (color) { + case WHITE: + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + break; + + case RED: + rgb_matrix_sethsv_noeeprom(HSV_RED); + break; + + case GREEN: + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + break; + + case BLUE: + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + break; + } +} + +void clear_eeprom(void) { + layer_state_t default_layer_temp = default_layer_state; + eeconfig_init(); + default_layer_set(default_layer_temp); + +#ifdef VIA_ENABLE + // This resets the layout options + via_set_layout_options(VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT); + // This resets the keymaps in EEPROM to what is in flash. + dynamic_keymap_reset(); + // This resets the macros in EEPROM to nothing. + dynamic_keymap_macro_reset(); +#endif + + rgb_matrix_enable_noeeprom(); +} + +void rgb_hsv_updata_user(void) { + rgb_matrix_sethsv(rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v); +} diff --git a/keyboards/inland/kb83/keyboard.json b/keyboards/inland/kb83/keyboard.json index 8686e33885..4c82a557ee 100644 --- a/keyboards/inland/kb83/keyboard.json +++ b/keyboards/inland/kb83/keyboard.json @@ -5,12 +5,8 @@ "usb": { "vid": "0xFFFE", "pid": "0x0007", - "device_version": "1.0.0" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "1.0.0", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -32,100 +28,6 @@ "multisplash": true }, "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 74, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 89, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 194, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, - {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, - {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, - {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, - {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, - {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, - {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, - {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, - {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, - {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, - {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, - {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, - {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, - {"matrix": [1, 15], "x": 224, "y": 12, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, - {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, - {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, - {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, - {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, - {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, - {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, - {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, - {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, - {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, - {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, - {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, - {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, - {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, - {"matrix": [2, 15], "x": 224, "y": 25, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, - {"matrix": [3, 1], "x": 28, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 56, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, - {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4}, - {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4}, - {"matrix": [3, 8], "x": 126, "y": 38, "flags": 4}, - {"matrix": [3, 9], "x": 140, "y": 38, "flags": 4}, - {"matrix": [3, 10], "x": 154, "y": 38, "flags": 4}, - {"matrix": [3, 11], "x": 168, "y": 38, "flags": 4}, - {"matrix": [3, 13], "x": 182, "y": 38, "flags": 4}, - {"matrix": [3, 15], "x": 224, "y": 38, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, - {"matrix": [4, 1], "x": 18, "y": 51, "flags": 4}, - {"matrix": [4, 2], "x": 37, "y": 51, "flags": 4}, - {"matrix": [4, 3], "x": 56, "y": 51, "flags": 4}, - {"matrix": [4, 4], "x": 74, "y": 51, "flags": 4}, - {"matrix": [4, 5], "x": 93, "y": 51, "flags": 4}, - {"matrix": [4, 6], "x": 112, "y": 51, "flags": 4}, - {"matrix": [4, 7], "x": 130, "y": 51, "flags": 4}, - {"matrix": [4, 8], "x": 149, "y": 51, "flags": 4}, - {"matrix": [4, 9], "x": 168, "y": 51, "flags": 4}, - {"matrix": [4, 10], "x": 186, "y": 51, "flags": 4}, - {"matrix": [4, 13], "x": 200, "y": 51, "flags": 4}, - {"matrix": [4, 14], "x": 214, "y": 51, "flags": 4}, - {"matrix": [4, 15], "x": 224, "y": 51, "flags": 4}, - {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4}, - {"matrix": [5, 2], "x": 37, "y": 64, "flags": 4}, - {"matrix": [5, 5], "x": 92, "y": 64, "flags": 4}, - {"matrix": [5, 9], "x": 140, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 154, "y": 64, "flags": 4}, - {"matrix": [5, 11], "x": 168, "y": 64, "flags": 4}, - {"matrix": [5, 13], "x": 196, "y": 64, "flags": 4}, - {"matrix": [5, 14], "x": 210, "y": 64, "flags": 4}, - {"matrix": [5, 15], "x": 224, "y": 64, "flags": 4}, - {"x": 0, "y": 0, "flags": 2}, - {"x": 0, "y": 16, "flags": 2}, - {"x": 0, "y": 32, "flags": 2}, - {"x": 0, "y": 48, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 224, "y": 0, "flags": 2}, - {"x": 224, "y": 16, "flags": 2}, - {"x": 224, "y": 32, "flags": 2}, - {"x": 224, "y": 48, "flags": 2}, - {"x": 224, "y": 64, "flags": 2} - ], "max_brightness": 200, "react_on_keyup": true, "sleep": true @@ -158,7 +60,7 @@ }, "encoder": { "rotary": [ - {"pin_a": "B13", "pin_b": "B14"} + {"pin_a": "B14", "pin_b": "B13", "resolution": 4} ] }, "qmk": { diff --git a/keyboards/inland/kb83/keymaps/default/keymap.c b/keyboards/inland/kb83/keymaps/default/keymap.c index ac2aa5e7f7..712383d48d 100644 --- a/keyboards/inland/kb83/keymaps/default/keymap.c +++ b/keyboards/inland/kb83/keymaps/default/keymap.c @@ -38,12 +38,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT( /* FN */ - _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_SIRI, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, @@ -54,25 +54,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT( /* FN */ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU) + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [MAC_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, }; #endif -#if defined(DIP_SWITCH_MAP_ENABLE) -const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = { - DIP_SWITCH_OFF_ON(DF(WIN_B), DF(MAC_B)) -}; -#endif diff --git a/keyboards/inland/kb83/keymaps/default/rules.mk b/keyboards/inland/kb83/keymaps/default/rules.mk deleted file mode 100644 index d64aefdfb8..0000000000 --- a/keyboards/inland/kb83/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -ENCODER_MAP_ENABLE = yes -DIP_SWITCH_MAP_ENABLE = yes diff --git a/keyboards/inland/kb83/readme.md b/keyboards/inland/kb83/readme.md index a56b5c5b5a..e6f1d45990 100644 --- a/keyboards/inland/kb83/readme.md +++ b/keyboards/inland/kb83/readme.md @@ -14,11 +14,6 @@ Flashing example for this keyboard: make inland/kb83:default:flash +**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. + 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 2 ways: - -* **Bootmagic reset**: Hold down the top left key, which programmed as *Esc* while plugging in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/inland/mk47/halconf.h b/keyboards/inland/mk47/halconf.h index b8ebdb3369..55bfe5c977 100644 --- a/keyboards/inland/mk47/halconf.h +++ b/keyboards/inland/mk47/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/inland/mk47/keyboard.json b/keyboards/inland/mk47/keyboard.json index c777f54d52..b6404f58b2 100644 --- a/keyboards/inland/mk47/keyboard.json +++ b/keyboards/inland/mk47/keyboard.json @@ -2,23 +2,22 @@ "keyboard_name": "MK47", "manufacturer": "Inland", "maintainer": "jonylee@hfd", + "url":"", "usb": { "vid": "0xFFFE", "pid": "0x0002", "device_version": "0.0.1", + "force_nkro": true, "suspend_wakeup_delay": 1000 }, - "host": { - "default": { - "nkro": true - } - }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", "features": { "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/inland/mk47/keymaps/default/keymap.c b/keyboards/inland/mk47/keymaps/default/keymap.c index 087ed46869..dab9c63782 100644 --- a/keyboards/inland/mk47/keymaps/default/keymap.c +++ b/keyboards/inland/mk47/keymaps/default/keymap.c @@ -27,10 +27,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_planck_mit( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RM_NEXT, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RM_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALD, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS ), [2] = LAYOUT_planck_mit( diff --git a/keyboards/inland/v83p/halconf.h b/keyboards/inland/v83p/halconf.h index f3178d93f0..fcd8b7216a 100644 --- a/keyboards/inland/v83p/halconf.h +++ b/keyboards/inland/v83p/halconf.h @@ -5,5 +5,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/inland/v83p/keyboard.json b/keyboards/inland/v83p/keyboard.json index de93c5f372..139cfb693b 100644 --- a/keyboards/inland/v83p/keyboard.json +++ b/keyboards/inland/v83p/keyboard.json @@ -8,13 +8,9 @@ "vid": "0xFFFE", "pid": "0x001B", "device_version": "1.0.3", + "force_nkro": true, "suspend_wakeup_delay": 1000 }, - "host": { - "default": { - "nkro": true - } - }, "diode_direction": "ROW2COL", "eeprom": { "driver": "wear_leveling", @@ -25,6 +21,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/inland/v83p/keymaps/default/keymap.c b/keyboards/inland/v83p/keymaps/default/keymap.c index cc4ea3a480..359939a015 100644 --- a/keyboards/inland/v83p/keymaps/default/keymap.c +++ b/keyboards/inland/v83p/keymaps/default/keymap.c @@ -20,12 +20,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi( /* FN */ - EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, + EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, RM_HUED, - _______, GU_TOGG, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), [MAC_B] = LAYOUT_ansi( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, @@ -36,20 +36,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi( /* FN */ - EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, + EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, }; #endif diff --git a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c index 03988a440a..2e8d0b9763 100644 --- a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c +++ b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c @@ -209,10 +209,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { // 71 70 69 { 0, C3_7 }, { 0, C2_7 }, { 0, C1_7 }, }; - -int led_matrix_led_index(int index) { - return index; -} #endif #ifdef ST7565_ENABLE diff --git a/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c index f6def2c8e8..8b3d110c88 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, @@ -123,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c index 69f831c2f2..550eea0d31 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c @@ -48,21 +48,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [QWERTY] = LAYOUT_ergodox( // layer 0 : default // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, MS_BTN2, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_EQL, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MINUS, KC_LCTL, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), MO(SHORTCUTS), - KC_LGUI, MS_BTN1, + KC_LGUI, KC_BTN1, MU_ON, KC_SPACE,KC_DEL,KC_END, // right hand - MS_BTN2, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_BTN2, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SLASH, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_EQL,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLASH, KC_RSFT, MO(SHORTCUTS), KC_UP,KC_DOWN,KC_RALT, KC_RCTL, - MS_BTN1, KC_RGUI, + KC_BTN1, KC_RGUI, MU_OFF, KC_PGDN,KC_TAB, LT(HALFQWERTY, KC_ENT) ), diff --git a/keyboards/input_club/infinity60/keymaps/hasu/keymap.c b/keyboards/input_club/infinity60/keymaps/hasu/keymap.c index 7837a0cd5d..4200eaf1c2 100644 --- a/keyboards/input_club/infinity60/keymaps/hasu/keymap.c +++ b/keyboards/input_club/infinity60/keymaps/hasu/keymap.c @@ -80,10 +80,10 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [3] = LAYOUT_60_ansi_split_bs_rshift( 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, KC_INS, KC_DEL, - LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLL,MS_WHLD,MS_UP, MS_WHLU, MS_WHLR, ALT_T(KC_LEFT), ALT_T(KC_RGHT),LALT(KC_TAB), - KC_LCTL, MS_ACL0,MS_ACL1,MS_ACL2,MS_ACL2,KC_NO, KC_NO, MS_LEFT,MS_DOWN, MS_RGHT, LT(3, KC_SCLN), KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, MS_BTN3,MS_BTN2,MS_BTN1,ALT_T(KC_LEFT), ALT_T(KC_RGHT), KC_NO, KC_RSFT, KC_TRNS, - KC_TRNS, KC_LGUI,KC_LALT, MS_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_MS_U, KC_WH_U, KC_WH_R, ALT_T(KC_LEFT), ALT_T(KC_RGHT),LALT(KC_TAB), + KC_LCTL, KC_ACL0,KC_ACL1,KC_ACL2,KC_ACL2,KC_NO, KC_NO, KC_MS_L,KC_MS_D, KC_MS_R, LT(3, KC_SCLN), KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN3,KC_BTN2,KC_BTN1,ALT_T(KC_LEFT), ALT_T(KC_RGHT), KC_NO, KC_RSFT, KC_TRNS, + KC_TRNS, KC_LGUI,KC_LALT, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), /* Layer 4: Mouse mode(IJKL)[Space] @@ -102,9 +102,9 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [4] = LAYOUT_60_ansi_split_bs_rshift( 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, KC_INS, KC_DEL, - LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLL, MS_WHLD, MS_UP, MS_WHLU, MS_WHLR, MS_BTN4, MS_BTN5, LALT(KC_TAB), - KC_LCTL, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN1, KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, MS_BTN3, MS_BTN2, MS_BTN1, ALT_T(KC_LEFT), ALT_T(KC_RGHT), KC_NO, KC_RSFT, KC_NO, + LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L, KC_WH_D, KC_MS_U, KC_WH_U, KC_WH_R, KC_BTN4, KC_BTN5, LALT(KC_TAB), + KC_LCTL, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN3, KC_BTN2, KC_BTN1, ALT_T(KC_LEFT), ALT_T(KC_RGHT), KC_NO, KC_RSFT, KC_NO, KC_NO, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/input_club/infinity60/rules.mk b/keyboards/input_club/infinity60/rules.mk new file mode 100644 index 0000000000..9c4b1e74c2 --- /dev/null +++ b/keyboards/input_club/infinity60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = input_club/infinity60/led diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json index ed004335c0..a4e8e2419e 100644 --- a/keyboards/input_club/k_type/keyboard.json +++ b/keyboards/input_club/k_type/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "K-Type (QMK)", "manufacturer": "Input:Club", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1C11", @@ -57,6 +58,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/input_club/k_type/keymaps/default/keymap.c b/keyboards/input_club/k_type/keymaps/default/keymap.c index 94f1080475..452791b13a 100644 --- a/keyboards/input_club/k_type/keymaps/default/keymap.c +++ b/keyboards/input_club/k_type/keymaps/default/keymap.c @@ -14,10 +14,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_NEXT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RM_HUEU, RM_SATU, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/input_club/whitefox/keyboard.json b/keyboards/input_club/whitefox/keyboard.json index 60f2dca4d0..1d3799b867 100644 --- a/keyboards/input_club/whitefox/keyboard.json +++ b/keyboards/input_club/whitefox/keyboard.json @@ -113,6 +113,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "led_matrix": true, "mousekey": true, diff --git a/keyboards/io_mini1800/keyboard.json b/keyboards/io_mini1800/keyboard.json index be8bd11d6c..884d17aa06 100644 --- a/keyboards/io_mini1800/keyboard.json +++ b/keyboards/io_mini1800/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/irene/keyboard.json b/keyboards/irene/keyboard.json index a2fcc39090..3280c34c03 100644 --- a/keyboards/irene/keyboard.json +++ b/keyboards/irene/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Irene", "manufacturer": "Andrei Collado", + "url": "", "maintainer": "Andrei Collado", "usb": { "vid": "0x1434", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/iriskeyboards/keyboard.json b/keyboards/iriskeyboards/keyboard.json index f37f2064c5..4a821b2649 100644 --- a/keyboards/iriskeyboards/keyboard.json +++ b/keyboards/iriskeyboards/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iris Rev0", "manufacturer": "SonOfAres", + "url": "", "maintainer": "SonOfAres", "usb": { "vid": "0x494B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -30,15 +33,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -320,7 +319,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/iron180/keyboard.json b/keyboards/iron180/keyboard.json index 90593faf8a..8daae1b1eb 100644 --- a/keyboards/iron180/keyboard.json +++ b/keyboards/iron180/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iron180", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/itstleo/itstleo40/keyboard.json b/keyboards/itstleo/itstleo40/keyboard.json index ff55e3b0ce..637f8e5d7e 100644 --- a/keyboards/itstleo/itstleo40/keyboard.json +++ b/keyboards/itstleo/itstleo40/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "leader": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ivndbt/late9/readme.md b/keyboards/ivndbt/late9/readme.md deleted file mode 100644 index 8f1ae628fe..0000000000 --- a/keyboards/ivndbt/late9/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# LATE-9 - - -The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '90s. LATE-9 is intended as a dev board with 18 buttons and an OLED screen, made by through-hole components only. With this, you can experiment QMK OLED capabilities with very little expense. - -![LATE-9](https://i.imgur.com/QXycTC3h.jpg "LATE-9 first proto") - -* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) -* Hardware supported: ProMicro, _Elite-C (not tested)_ -* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/ivndbt/late-9) for gerbers. - -Make example for this keyboard (after setting up your build environment): - - make ivndbt/late9/rev1:default - -Flashing example for this keyboard: - - make ivndbt/late9/rev1: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 - -When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ -After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. \ No newline at end of file diff --git a/keyboards/ivndbt/late9/rev1/config.h b/keyboards/ivndbt/late9/rev1/config.h deleted file mode 100644 index b6c0ba55b9..0000000000 --- a/keyboards/ivndbt/late9/rev1/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 ivndbt - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -/* Oneshot interval */ -#define ONESHOT_TIMEOUT 5000 diff --git a/keyboards/ivndbt/late9/rev1/keyboard.json b/keyboards/ivndbt/late9/rev1/keyboard.json deleted file mode 100644 index 523ae83492..0000000000 --- a/keyboards/ivndbt/late9/rev1/keyboard.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "keyboard_name": "LATE-9", - "manufacturer": "ivndbt", - "url": "https://github.com/ivndbt/late-9)", - "maintainer": "ivndbt", - "usb": { - "vid": "0x6961", - "pid": "0x3032", - "device_version": "0.1.0" - }, - "tapping": { - "term": 400 - }, - "build": { - "debounce_type": "sym_eager_pk" - }, - "matrix_pins": { - "cols": ["B5", "C6", "D4"], - "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] - }, - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "nkro": true, - "oled": true - }, - "development_board": "promicro", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5}, - {"matrix": [5, 1], "x": 1, "y": 5}, - {"matrix": [5, 2], "x": 2, "y": 5} - ] - } - } -} diff --git a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c deleted file mode 100644 index cf38757100..0000000000 --- a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright 2021 ivndbt - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -// Layers declarations -enum layers { - _BL, - _OL -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* BL: Base Layer - * ,-----------------------. - * |MO(OP) | ↑ | BSPC | - * | | | | - * |-------+-------+-------| - * | <- | ↓ | -> | - * | | | | - * |-------+-------+-------| - * | 1 | 2 | 3 | - * | | | | - * |-------+-------+-------| - * | 4 | 5 | 6 | - * | | | | - * |-------+-------+-------| - * | 7 | 8 | 9 | - * | | | | - * |-------+-------+-------| - * | 0 | . | = | - * | | | | - * `-----------------------' - */ - [_BL] = LAYOUT( - MO(1), KC_UP, KC_BSPC, - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_P1, KC_P2, KC_P3, - KC_P4, KC_P5, KC_P6, - KC_P7, KC_P8, KC_P9, - KC_P0, KC_PDOT, KC_PEQL - ), - -/* OP: Operators Layer - * ,-----------------------. - * |MO(OP) | ↑ | BSPC | - * | | | | - * |-------+-------+-------| - * | <- | ↓ | -> | - * | | | | - * |-------+-------+-------| - * | / | * | - | - * | | | | - * |-------+-------+-------| - * | ( | ) | + | - * | | | | - * |-------+-------+-------| - * | & | % | ^ | - * | | | | - * |-------+-------+-------| - * | | | . | = | - * | | | | - * `-----------------------' - */ - [_OL] = LAYOUT( - MO(1), KC_UP, KC_BSPC, - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_PSLS, KC_PAST, KC_PMNS, - LSFT(KC_9), LSFT(KC_0), KC_PPLS, - LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), - LSFT(KC_BSLS), KC_PDOT, KC_PEQL - ), -}; \ No newline at end of file diff --git a/keyboards/ivndbt/late9/rev1/readme.md b/keyboards/ivndbt/late9/rev1/readme.md deleted file mode 100644 index 5641e32127..0000000000 --- a/keyboards/ivndbt/late9/rev1/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# LATE-9 rev1 - -First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/ivndbt/late-9). - - diff --git a/keyboards/ivndbt/late9/rev1/rev1.c b/keyboards/ivndbt/late9/rev1/rev1.c deleted file mode 100644 index f472de2ff5..0000000000 --- a/keyboards/ivndbt/late9/rev1/rev1.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright 2021 ivndbt - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -// OLED logo -#ifdef OLED_ENABLE -bool oled_task_kb(void) { - if (!oled_task_user()) { return false; } - static const char PROGMEM rb_logo[] = { - // ivndbt 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x78, 0x78, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xe1, 0xe1, 0xf8, 0xf8, - 0x00, 0x00, 0x80, 0x80, 0x06, 0x06, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xcc, 0x00, 0x80, 0xc0, 0xe0, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0x20, 0xe0, 0xe0, 0x00, 0x00, - 0xc0, 0xe0, 0x20, 0x60, 0xc8, 0xfc, 0xfc, 0x00, 0x10, 0xf8, 0xfc, 0x80, 0x40, 0x60, 0xe0, 0xc0, - 0x00, 0x50, 0xf8, 0xfc, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x20, 0x60, 0xc0, - 0xe0, 0x00, 0x80, 0xc0, 0x20, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0xe0, - 0xe0, 0x80, 0x40, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, - 0x60, 0x60, 0x01, 0x01, 0x00, 0x00, 0x1f, 0x1f, 0x87, 0x87, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x1f, 0x08, 0x00, 0x07, 0x0f, - 0x1c, 0x18, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, - 0x07, 0x0f, 0x1c, 0x18, 0x08, 0x1f, 0x1f, 0x08, 0x00, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x0f, 0x07, - 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x04, 0x00, 0x18, 0x18, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x10, - 0x08, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x0f, 0x07, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x1f, - 0x1f, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - oled_write_raw_P(rb_logo, sizeof(rb_logo)); - return false; -} - -#endif diff --git a/keyboards/ivndbt/neopad/readme.md b/keyboards/ivndbt/neopad/readme.md deleted file mode 100644 index 4b99835449..0000000000 --- a/keyboards/ivndbt/neopad/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Neopad - -Neopad is a little macropad with four switches and two rotary encoders, made by through hole components only. -_Actually the number of switches is six, because even the encoder are allowed to click._ - -![Neopad](https://i.imgur.com/TgOkj2Fh.jpg "Neopad first proto") - -The Neopad in the photo above is the first prototype. See the project repository for revision 1 update and KiCad files. - -* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) -* Hardware supported: ProMicro, _Elite-C (not tested)_ -* Project repository: [Neopad on github](https://github.com/ivndbt/neopad) - -Make example for this keyboard (after setting up your build environment): - - make ivndbt/neopad/rev1:default - -Flashing example for this keyboard: - - make ivndbt/neopad/rev1:default:flash - -When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device. - -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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - diff --git a/keyboards/ivndbt/neopad/rev1/config.h b/keyboards/ivndbt/neopad/rev1/config.h deleted file mode 100755 index 7475224d1a..0000000000 --- a/keyboards/ivndbt/neopad/rev1/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 ivndbt - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -/* Onboard LEDs */ -#define LED_00 F6 -#define LED_01 F7 diff --git a/keyboards/ivndbt/neopad/rev1/keyboard.json b/keyboards/ivndbt/neopad/rev1/keyboard.json deleted file mode 100755 index f40f06549b..0000000000 --- a/keyboards/ivndbt/neopad/rev1/keyboard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "keyboard_name": "neopad", - "manufacturer": "ivndbt", - "url": "https://github.com/ivndbt/neopad)", - "maintainer": "ivndbt", - "usb": { - "vid": "0x6961", - "pid": "0x3031", - "device_version": "0.1.0" - }, - "features": { - "bootmagic": true, - "console": true, - "encoder": true, - "extrakey": true, - "key_lock": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "cols": ["B3", "B2", "B6"], - "rows": ["F4", "F5"] - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D1", "pin_b": "D0"}, - {"pin_a": "D4", "pin_b": "C6"} - ] - }, - "development_board": "promicro", - "tapping": { - "toggle": 2 - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1} - ] - } - } -} diff --git a/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c deleted file mode 100755 index 17c9d9db9b..0000000000 --- a/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Copyright 2021 ivndbt - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - LAYER 0 - MUSIC - /-----------------------------` - | TO(1) | stop | mute | L ENC: prev/next song - |---------|---------|---------| - | prev | play | next | R ENC: vol up/down - \-----------------------------' - */ - [0] = LAYOUT( - TO(1), KC_MSTP, KC_MUTE, - KC_MPRV, KC_MPLY, KC_MNXT - ), - - /* - LAYER 1 - MOVEMENT IN WINDOWS - /---------------------------------------` - | TO(2) | maximize | show desktop | L ENC: change desktop - |-------------|----------|--------------| - | move window | minimize | move window | R ENC: change browser tab + change explorer window - \---------------------------------------' - */ - [1] = LAYOUT( - TO(2), LGUI(KC_UP), LGUI(KC_D), - LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RIGHT) - ), - - /* - LAYER 2 - SHORTCUT - /------------------------------` - | TO(3) | esc | task man | L ENC: redo/undo - |---------|---------|----------| - | cut | copy | paste | R ENC: mouse wheel up/down - \------------------------------' - */ - [2] = LAYOUT( - TO(3), KC_ESC, LCTL(LSFT(KC_ESC)), - LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) - ), - - /* - LAYER 3 - AUDACITY - /-----------------------------` - | TO(0) | REC | canc | L ENC: pan right/left - |---------|---------|---------| - | ctrl | play | pause | R ENC: mouse wheel up/down - \-----------------------------' - */ - [3] = LAYOUT( - TO(0), LSFT(KC_R), KC_DEL, - KC_LCTL, KC_SPC, KC_P - ), - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* LEFT ENCODER */ - switch (get_highest_layer(layer_state)) { - case 0: - // layer 0 - next song (CW) and previous (CCW) - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - - case 1: - // layer 1 - change desktop right (CW) and left (CCW) - if (clockwise) { - tap_code16(LCTL(LGUI(KC_RIGHT))); - } else { - tap_code16(LCTL(LGUI(KC_LEFT))); - } - break; - - case 2: - // layer 2 - redo (CW) and undo (CCW) - if (clockwise) { - tap_code16(LCTL(KC_Y)); - } else { - tap_code16(LCTL(KC_Z)); - } - break; - - case 3: - // layer 3 - pan right (CW) and left (CCW) - if (clockwise) { - tap_code(MS_WHLR); - } else { - tap_code(MS_WHLL); - } - break; - } - - } else if (index == 1) { /* RIGHT ENCODER */ - switch (get_highest_layer(layer_state)) { - case 0: - // layer 0 - volume up (CW) and down (CCW) - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - case 1: - // layer 1 - change browser tab (CW) and change explorer window (CCW) - if (clockwise) { - tap_code16(LCTL(KC_TAB)); - } else { - tap_code16(LALT(LSFT(KC_TAB))); - } - break; - - case 2: - // layer 2 - wheel up (CW) and down (CCW) - if (clockwise) { - tap_code(MS_WHLU); - } else { - tap_code(MS_WHLD); - } - break; - - case 3: - // layer 3 - wheel up (CW) and down (CCW) - if (clockwise) { - tap_code(MS_WHLU); - } else { - tap_code(MS_WHLD); - } - break; - } - } - return true; -} diff --git a/keyboards/ivndbt/neopad/rev1/readme.md b/keyboards/ivndbt/neopad/rev1/readme.md deleted file mode 100644 index 6f8c6f1f25..0000000000 --- a/keyboards/ivndbt/neopad/rev1/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# Neopad rev1 - -Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/ivndbt/neopad). - - diff --git a/keyboards/ivndbt/neopad/rev1/rev1.c b/keyboards/ivndbt/neopad/rev1/rev1.c deleted file mode 100755 index c093c37e20..0000000000 --- a/keyboards/ivndbt/neopad/rev1/rev1.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2021 ivndbt - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Set LED IO as outputs - gpio_set_pin_output(LED_00); - gpio_set_pin_output(LED_01); - keyboard_pre_init_user(); -} - -bool shutdown_kb(bool jump_to_bootloader) { - if (!shutdown_user(jump_to_bootloader)) { - return false; - } - // Shutdown LEDs - gpio_write_pin_low(LED_00); - gpio_write_pin_low(LED_01); - return true; -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - - // Layer LEDs act as binary indication of current layer - uint8_t layer = get_highest_layer(state); - gpio_write_pin(LED_00, layer & 0b1); - gpio_write_pin(LED_01, (layer >> 1) & 0b1); - return state; -} - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - uint8_t led_delay_ms = 80; - for (int i = 0; i < 2; i++) { - gpio_write_pin_high(LED_00); - gpio_write_pin_high(LED_01); - wait_ms(led_delay_ms); - gpio_write_pin_low(LED_00); - gpio_write_pin_low(LED_01); - if (i < 1) { - wait_ms(led_delay_ms); - } - } - - matrix_init_user(); -} diff --git a/keyboards/j80/keyboard.json b/keyboards/j80/keyboard.json index 91e9683c26..72745d262f 100644 --- a/keyboards/j80/keyboard.json +++ b/keyboards/j80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "J80", "manufacturer": "JER", + "url": "", "maintainer": "oeywil", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/jacky_studio/bear_65/rules.mk b/keyboards/jacky_studio/bear_65/rules.mk new file mode 100644 index 0000000000..91bb6f74b9 --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jacky_studio/bear_65/rev1 diff --git a/keyboards/jacky_studio/piggy60/info.json b/keyboards/jacky_studio/piggy60/info.json index 39cc3fe9ee..9f85193916 100644 --- a/keyboards/jacky_studio/piggy60/info.json +++ b/keyboards/jacky_studio/piggy60/info.json @@ -139,7 +139,7 @@ {"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, @@ -205,8 +205,5 @@ {"label": "Ctrl", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4} ] } - }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" } } diff --git a/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c b/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c index 95a9e1e555..d2458a1422 100644 --- a/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c +++ b/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c @@ -23,18 +23,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │Ctrl │GUI│ Alt │ │ Alt │GUI│ Ctrl│ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_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, LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LT(1,KC_MUTE), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_INS, KC_PSCR, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_PGUP, KC_HOME, KC_TRNS, KC_VOLU, KC_BRIU, KC_TRNS, MS_WHLU, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_TRNS, KC_VOLD, KC_BRID, KC_TRNS, MS_WHLD, KC_TRNS, KC_TRNS, - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_PGUP, KC_HOME, KC_TRNS, KC_VOLU, KC_BRIU, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_TRNS, KC_VOLD, KC_BRID, KC_TRNS, KC_WH_D, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/jacky_studio/piggy60/rev1/hotswap/keyboard.json b/keyboards/jacky_studio/piggy60/rev1/hotswap/keyboard.json index 71fbbefa0a..8b10920700 100644 --- a/keyboards/jacky_studio/piggy60/rev1/hotswap/keyboard.json +++ b/keyboards/jacky_studio/piggy60/rev1/hotswap/keyboard.json @@ -1,4 +1,4 @@ { "diode_direction": "ROW2COL", - "community_layouts": ["60_hhkb", "60_ansi_tsangan_split_bs_rshift"] + "community_layouts": ["60_hhkb", "60_tsangan_hhkb"] } diff --git a/keyboards/jacky_studio/piggy60/rev1/rules.mk b/keyboards/jacky_studio/piggy60/rev1/rules.mk new file mode 100644 index 0000000000..873e9334ed --- /dev/null +++ b/keyboards/jacky_studio/piggy60/rev1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jacky_studio/piggy60/rev1/solder diff --git a/keyboards/jacky_studio/piggy60/rev1/solder/keyboard.json b/keyboards/jacky_studio/piggy60/rev1/solder/keyboard.json index 4c792f8ff9..3f4d4a2632 100644 --- a/keyboards/jacky_studio/piggy60/rev1/solder/keyboard.json +++ b/keyboards/jacky_studio/piggy60/rev1/solder/keyboard.json @@ -4,11 +4,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/jacky_studio/piggy60/rev2/keyboard.json b/keyboards/jacky_studio/piggy60/rev2/keyboard.json index 4dcc0cbab6..2a3c7e3313 100644 --- a/keyboards/jacky_studio/piggy60/rev2/keyboard.json +++ b/keyboards/jacky_studio/piggy60/rev2/keyboard.json @@ -1,6 +1,7 @@ { "bootloader": "uf2boot", "diode_direction": "ROW2COL", + "community_layouts": ["60_hhkb", "60_tsangan_hhkb"], "features": { "bootmagic": true, "extrakey": true, @@ -78,10 +79,6 @@ "device_version": "2.0.0", "pid": "0x1002" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": ["60_hhkb", "60_ansi_tsangan_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -216,7 +213,7 @@ {"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/jacky_studio/piggy60/rules.mk b/keyboards/jacky_studio/piggy60/rules.mk new file mode 100644 index 0000000000..873e9334ed --- /dev/null +++ b/keyboards/jacky_studio/piggy60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jacky_studio/piggy60/rev1/solder diff --git a/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json b/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json index 3e10d732c5..cbbb27ca04 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json +++ b/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json b/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json index b236301e38..23112f5b33 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json +++ b/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/jadookb/jkb65/info.json b/keyboards/jadookb/jkb65/info.json index ef62e8e2ea..c4a44a0d74 100644 --- a/keyboards/jadookb/jkb65/info.json +++ b/keyboards/jadookb/jkb65/info.json @@ -7,6 +7,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jadookb/jkb65/keymaps/default/keymap.c b/keyboards/jadookb/jkb65/keymaps/default/keymap.c index 8af9c97684..14055736cd 100644 --- a/keyboards/jadookb/jkb65/keymaps/default/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( 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, _______, KC_PSCR, - _______, RM_PREV, RM_HUEU, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_HUED, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - GU_ON, GU_OFF, _______, RM_TOGG, _______, MO(2), RM_SPDD, RM_VALD, RM_SPDU + _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + GU_ON, GU_OFF, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI ) }; diff --git a/keyboards/jadookb/jkb65/rules.mk b/keyboards/jadookb/jkb65/rules.mk new file mode 100644 index 0000000000..2bbb2a41ce --- /dev/null +++ b/keyboards/jadookb/jkb65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jadookb/jkb65/r1 diff --git a/keyboards/jae/j01/keyboard.json b/keyboards/jae/j01/keyboard.json index 2375122bd8..fd16f2a46e 100644 --- a/keyboards/jae/j01/keyboard.json +++ b/keyboards/jae/j01/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "J-01", "manufacturer": "Evyd13", + "url": "", "maintainer": "MechMerlin", "usb": { "vid": "0x4705", diff --git a/keyboards/jagdpietr/drakon/keyboard.json b/keyboards/jagdpietr/drakon/keyboard.json index dfb38ac200..2d2b68a41a 100644 --- a/keyboards/jagdpietr/drakon/keyboard.json +++ b/keyboards/jagdpietr/drakon/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "drakon", "manufacturer": "jagdpietr", + "url": "", "maintainer": "jagdpietr", "usb": { "vid": "0xFEED", diff --git a/keyboards/jankycaps/janky9/keyboard.json b/keyboards/jankycaps/janky9/keyboard.json deleted file mode 100644 index 73116a5cb8..0000000000 --- a/keyboards/jankycaps/janky9/keyboard.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "manufacturer": "jankycaps", - "keyboard_name": "Janky No.9", - "maintainer": "telybelly", - "development_board": "promicro", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "direct": [ - ["F4", "F5", "F6"], - ["F7", "B1", "B3"], - ["B2", "B6", "B5"] - ] - }, - "url": "https://anky.studio/", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x4E4B" - }, - "community_layouts": ["ortho_3x3"], - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/jankycaps/janky9/keymaps/default/keymap.c b/keyboards/jankycaps/janky9/keymaps/default/keymap.c deleted file mode 100644 index 2a04817a90..0000000000 --- a/keyboards/jankycaps/janky9/keymaps/default/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2025 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x3( - KC_1, KC_2, KC_3, - KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9 - ), -}; diff --git a/keyboards/jankycaps/janky9/readme.md b/keyboards/jankycaps/janky9/readme.md deleted file mode 100644 index b97fd0f078..0000000000 --- a/keyboards/jankycaps/janky9/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Janky No.9 - -![Janky No.9](https://i.imgur.com/hkEorpO.jpeg) - -*A Handmade 3x3 Macropad* - -* Keyboard Maintainer: [telybelly](https://github.com/telybelly) -* Hardware Supported: Janky No.9 -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make jankycaps/janky9:default - -Flashing example for this keyboard: - - make jankycaps/janky9:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Quickly short the RST and GND pads on the PCB twice -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/janus/config.h b/keyboards/janus/config.h index 8f28edfb91..2d9cead0e3 100644 --- a/keyboards/janus/config.h +++ b/keyboards/janus/config.h @@ -3,8 +3,8 @@ #pragma once -/* Split keyboard configuration */ -#define EE_HANDS + +/* Serial communication */ #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP0 #define SERIAL_USART_RX_PIN GP1 diff --git a/keyboards/janus/keyboard.json b/keyboards/janus/keyboard.json index 4a82149712..8c4f522b86 100644 --- a/keyboards/janus/keyboard.json +++ b/keyboards/janus/keyboard.json @@ -18,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/janus/readme.md b/keyboards/janus/readme.md index 93b3b00c6f..aa9e65cdc4 100644 --- a/keyboards/janus/readme.md +++ b/keyboards/janus/readme.md @@ -18,8 +18,6 @@ Flashing example for this keyboard: 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). -If you would like to plug in your keyboard using either half, then set the EEPROM left/right UF2 bootloader parameter when flashing each half for the first time. Refer to [QMK's handedness by EEPROM documentation](https://docs.qmk.fm/features/split_keyboard#handedness-by-eeprom). Without this bootloader parameter, the configuration assumes the left half will be plugged in. - ## Bootloader Enter the bootloader in 3 ways: diff --git a/keyboards/jaykeeb/aumz_work/info.json b/keyboards/jaykeeb/aumz_work/info.json index e6922255fc..7ca2eb32b8 100644 --- a/keyboards/jaykeeb/aumz_work/info.json +++ b/keyboards/jaykeeb/aumz_work/info.json @@ -3,9 +3,12 @@ "maintainer": "Alabahuy", "processor": "RP2040", "bootloader": "rp2040", + "url": "", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/jk60/keyboard.json b/keyboards/jaykeeb/jk60/keyboard.json index 9f94100b5f..99eb3d4a38 100644 --- a/keyboards/jaykeeb/jk60/keyboard.json +++ b/keyboards/jaykeeb/jk60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,23 +21,13 @@ "on_state": 0 }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7760", "vid": "0x414C" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -317,7 +309,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/jaykeeb/jk60rgb/jk60rgb.c b/keyboards/jaykeeb/jk60rgb/jk60rgb.c deleted file mode 100644 index 53f14b3a44..0000000000 --- a/keyboards/jaykeeb/jk60rgb/jk60rgb.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2024 Alabahuy - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - if (host_keyboard_led_state().caps_lock) { // Capslock = WHITE - rgb_matrix_set_color(36, 255, 255, 255); - } - return true; -} -#endif diff --git a/keyboards/jaykeeb/jk60rgb/keyboard.json b/keyboards/jaykeeb/jk60rgb/keyboard.json deleted file mode 100644 index 019fa5c88c..0000000000 --- a/keyboards/jaykeeb/jk60rgb/keyboard.json +++ /dev/null @@ -1,235 +0,0 @@ -{ - "manufacturer": "Jaykeeb Studio", - "keyboard_name": "JK60 RGB", - "maintainer": "Alabahuy", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP20", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP21", "GP22", "GP23", "GP24", "GP15"] - }, - "ws2812": { - "driver": "vendor", - "pin": "GP19" - }, - "rgb_matrix": { - "max_brightness": 125, - "sleep": true, - "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_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 - }, - "driver": "ws2812", - "layout": [ - {"x": 4, "y": 5, "flags": 2}, - {"matrix": [0, 0], "x": 8, "y": 7, "flags": 1}, - {"matrix": [0, 1], "x": 23, "y": 7, "flags": 4}, - {"matrix": [0, 2], "x": 37, "y": 7, "flags": 4}, - {"matrix": [0, 3], "x": 52, "y": 7, "flags": 4}, - {"x": 60, "y": 0, "flags": 2}, - {"matrix": [0, 4], "x": 67, "y": 7, "flags": 4}, - {"matrix": [0, 5], "x": 82, "y": 7, "flags": 4}, - {"matrix": [0, 6], "x": 97, "y": 7, "flags": 4}, - {"x": 105, "y": 0, "flags": 2}, - {"matrix": [0, 7], "x": 112, "y": 7, "flags": 4}, - {"matrix": [0, 8], "x": 127, "y": 7, "flags": 4}, - {"matrix": [0, 9], "x": 142, "y": 7, "flags": 4}, - {"x": 150, "y": 0, "flags": 2}, - {"matrix": [0, 10], "x": 157, "y": 7, "flags": 4}, - {"matrix": [0, 11], "x": 172, "y": 7, "flags": 4}, - {"matrix": [0, 12], "x": 187, "y": 7, "flags": 4}, - {"x": 195, "y": 0, "flags": 2}, - {"matrix": [0, 13], "x": 201, "y": 7, "flags": 4}, - {"matrix": [1, 13], "x": 216, "y": 7, "flags": 1}, - {"x": 224, "y": 13, "flags": 2}, - - {"matrix": [2, 13], "x": 213, "y": 19, "flags": 1}, - {"matrix": [1, 12], "x": 194, "y": 19, "flags": 4}, - {"matrix": [1, 11], "x": 179, "y": 19, "flags": 4}, - {"matrix": [1, 10], "x": 164, "y": 19, "flags": 4}, - {"matrix": [1, 9], "x": 149, "y": 19, "flags": 4}, - {"matrix": [1, 8], "x": 134, "y": 19, "flags": 4}, - {"matrix": [1, 7], "x": 119, "y": 19, "flags": 4}, - {"matrix": [1, 6], "x": 105, "y": 19, "flags": 4}, - {"matrix": [1, 5], "x": 90, "y": 19, "flags": 4}, - {"matrix": [1, 4], "x": 75, "y": 19, "flags": 4}, - {"matrix": [1, 3], "x": 60, "y": 19, "flags": 4}, - {"matrix": [1, 2], "x": 45, "y": 19, "flags": 4}, - {"matrix": [1, 1], "x": 30, "y": 19, "flags": 4}, - {"matrix": [1, 0], "x": 11, "y": 19, "flags": 1}, - {"x": 4, "y": 19, "flags": 2}, - - {"matrix": [2, 0], "x": 13, "y": 32, "flags": 8}, - {"matrix": [2, 1], "x": 34, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 49, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 64, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 79, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 94, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 123, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 138, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 153, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 168, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 183, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 183, "y": 32, "flags": 1}, - - {"matrix": [3, 13], "x": 216, "y": 45, "flags": 1}, - {"matrix": [3, 12], "x": 196, "y": 45, "flags": 4}, - {"matrix": [3, 11], "x": 175, "y": 45, "flags": 4}, - {"matrix": [3, 10], "x": 161, "y": 45, "flags": 4}, - {"matrix": [3, 9], "x": 146, "y": 45, "flags": 4}, - {"matrix": [3, 8], "x": 135, "y": 45, "flags": 4}, - {"matrix": [3, 7], "x": 116, "y": 45, "flags": 4}, - {"matrix": [3, 6], "x": 101, "y": 45, "flags": 4}, - {"matrix": [3, 5], "x": 86, "y": 45, "flags": 4}, - {"matrix": [3, 4], "x": 71, "y": 45, "flags": 4}, - {"matrix": [3, 3], "x": 56, "y": 45, "flags": 4}, - {"matrix": [3, 2], "x": 41, "y": 45, "flags": 4}, - {"matrix": [3, 0], "x": 17, "y": 45, "flags": 1}, - - {"x": 4, "y": 51, "flags": 2}, - {"matrix": [4, 0], "x": 11, "y": 57, "flags": 1}, - {"x": 15, "y": 57, "flags": 2}, - {"matrix": [4, 1], "x": 28, "y": 57, "flags": 1}, - {"matrix": [4, 2], "x": 50, "y": 57, "flags": 1}, - {"x": 72, "y": 57, "flags": 2}, - {"x": 92, "y": 57, "flags": 2}, - {"matrix": [4, 7], "x": 112, "y": 57, "flags": 1}, - {"x": 132, "y": 57, "flags": 2}, - {"x": 152, "y": 57, "flags": 2}, - {"matrix": [4, 11], "x": 172, "y": 57, "flags": 1}, - {"matrix": [4, 12], "x": 194, "y": 57, "flags": 1}, - {"x": 209, "y": 57, "flags": 2}, - {"matrix": [4, 13], "x": 213, "y": 57, "flags": 1}, - {"x": 220, "y": 51, "flags": 2} - ] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x7762", - "vid": "0x414C" - }, - "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift" - ], - "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/jaykeeb/jk60rgb/keymaps/default/keymap.c b/keyboards/jaykeeb/jk60rgb/keymaps/default/keymap.c deleted file mode 100644 index 809c0764b4..0000000000 --- a/keyboards/jaykeeb/jk60rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Alabahuy -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - 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, KC_DEL, _______, - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, - _______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, _______, _______, QK_BOOT, _______, _______, _______ - ) -}; diff --git a/keyboards/jaykeeb/jk60rgb/readme.md b/keyboards/jaykeeb/jk60rgb/readme.md deleted file mode 100644 index fa0616c387..0000000000 --- a/keyboards/jaykeeb/jk60rgb/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# JK60 RGB - -![jk60 RGB]( https://i.imgur.com/YP978wp.jpeg ) - -Layout 60% rgb per keys support keyboard case existing - -* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) -* Hardware Supported: JK60 RGB pcb, RP2040, led sk6812 per switch -* Hardware Availability: Private GB - -Make example for this keyboard (after setting up your build environment): - - make jaykeeb/jk60rgb:default - -Flashing example for this keyboard: - - make jaykeeb/jk60rgb:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jaykeeb/jk65/keyboard.json b/keyboards/jaykeeb/jk65/keyboard.json index 02b45e1ba7..0be07caacd 100644 --- a/keyboards/jaykeeb/jk65/keyboard.json +++ b/keyboards/jaykeeb/jk65/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,6 +21,7 @@ "on_state": 0 }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7765", diff --git a/keyboards/jaykeeb/joker/keyboard.json b/keyboards/jaykeeb/joker/keyboard.json index b35c8c5830..ed8b59d03f 100644 --- a/keyboards/jaykeeb/joker/keyboard.json +++ b/keyboards/jaykeeb/joker/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -21,6 +23,7 @@ "on_state": 0 }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0795", diff --git a/keyboards/jaykeeb/kamigakushi/keyboard.json b/keyboards/jaykeeb/kamigakushi/keyboard.json index b66c5e670d..7ab02d2c66 100644 --- a/keyboards/jaykeeb/kamigakushi/keyboard.json +++ b/keyboards/jaykeeb/kamigakushi/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -17,8 +19,10 @@ }, "rgblight": { "led_count": 2, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "animations": { "alternating": true, "breathing": true, @@ -41,6 +45,7 @@ "rows": ["GP24", "GP29", "GP6", "GP15", "GP16"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0765", diff --git a/keyboards/jaykeeb/orba/keyboard.json b/keyboards/jaykeeb/orba/keyboard.json index f803ebb7c4..b437667b14 100644 --- a/keyboards/jaykeeb/orba/keyboard.json +++ b/keyboards/jaykeeb/orba/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP11", "GP10", "GP18", "GP19", "GP0" ] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0769", diff --git a/keyboards/jaykeeb/sebelas/keyboard.json b/keyboards/jaykeeb/sebelas/keyboard.json index c31b93aeeb..e88607703e 100644 --- a/keyboards/jaykeeb/sebelas/keyboard.json +++ b/keyboards/jaykeeb/sebelas/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -39,6 +41,7 @@ } }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0767", diff --git a/keyboards/jaykeeb/skyline/keyboard.json b/keyboards/jaykeeb/skyline/keyboard.json index 9aa8d78594..068c11a874 100644 --- a/keyboards/jaykeeb/skyline/keyboard.json +++ b/keyboards/jaykeeb/skyline/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -20,6 +22,7 @@ "rows": ["GP13", "GP27", "GP26", "GP25", "GP22", "GP23"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0799", diff --git a/keyboards/jaykeeb/sriwedari70/keyboard.json b/keyboards/jaykeeb/sriwedari70/keyboard.json index efb13554dc..c9569a9724 100644 --- a/keyboards/jaykeeb/sriwedari70/keyboard.json +++ b/keyboards/jaykeeb/sriwedari70/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -28,8 +30,10 @@ }, "rgblight": { "led_count": 8, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/jaykeeb/tokki/keyboard.json b/keyboards/jaykeeb/tokki/keyboard.json index 8ff2828d9e..0ab1150017 100644 --- a/keyboards/jaykeeb/tokki/keyboard.json +++ b/keyboards/jaykeeb/tokki/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -39,6 +41,7 @@ } }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0768", diff --git a/keyboards/jc65/v32a/keyboard.json b/keyboards/jc65/v32a/keyboard.json index cfdbec8663..7fd13e0626 100644 --- a/keyboards/jc65/v32a/keyboard.json +++ b/keyboards/jc65/v32a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JC65 BMC", "manufacturer": "RAMA", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/jc65/v32u4/keyboard.json b/keyboards/jc65/v32u4/keyboard.json index c38bc4e1ff..6a8d923507 100644 --- a/keyboards/jc65/v32u4/keyboard.json +++ b/keyboards/jc65/v32u4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JC65", "manufacturer": "dou", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jcpm2/config.h b/keyboards/jcpm2/config.h deleted file mode 100644 index 0f06cd1466..0000000000 --- a/keyboards/jcpm2/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2025 Jeremy Cook Consulting LLC - * - * 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. - * - * If you did not receive a copy of the GNU General Public License - * along with this program, see . - */ - -#pragma once - -#define OLED_DISPLAY_128X64 -#define OLED_TIMEOUT 2000000 diff --git a/keyboards/jcpm2/jcpm2.c b/keyboards/jcpm2/jcpm2.c deleted file mode 100644 index 1439ffcdcd..0000000000 --- a/keyboards/jcpm2/jcpm2.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2025 Jeremy Cook Consulting LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef OLED_ENABLE -static uint32_t logo_timer = 0; - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - logo_timer = timer_read(); - return OLED_ROTATION_180; -} - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - oled_write_P(qmk_logo, false); -} - -bool oled_task_kb(void) { - if (timer_elapsed32(logo_timer) < 1000) { - render_logo(); - return false; - } - if (!oled_task_user()) { - return false; - } - return true; -} - -#endif diff --git a/keyboards/jcpm2/keyboard.json b/keyboards/jcpm2/keyboard.json deleted file mode 100644 index 17734a0ed0..0000000000 --- a/keyboards/jcpm2/keyboard.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "manufacturer": "jeremyscook", - "keyboard_name": "jcpm2", - "maintainer": "jeremyscook", - "development_board": "promicro", - "encoder": { - "rotary": [ - {"pin_a": "D2", "pin_b": "D3"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true, - "rgb_matrix": true - }, - "matrix_pins": { - "direct": [ - ["D4", null, "F4", "B3"], - ["B4", null, "F5", "B2"], - ["B1", "F7", "F6", "B6"] - ] - }, - "rgb_matrix": { - "animations": { - "digital_rain": true, - "hue_breathing": true, - "typing_heatmap": true - }, - "default": { - "animation": "typing_heatmap", - "val": 180 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [2, 1], "x": 75, "y": 64, "flags": 4}, - {"matrix": [2, 2], "x": 150, "y": 64, "flags": 4}, - {"matrix": [1, 2], "x": 150, "y": 32, "flags": 4}, - {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, - {"matrix": [1, 3], "x": 224, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 224, "y": 64, "flags": 4}, - {"x": 224, "y": 0, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 112, "y": 64, "flags": 2}, - {"x": 0, "y": 64, "flags": 2} - ], - "sleep": true - }, - "url": "https://github.com/JeremySCook/JC-Pro-Macro-2", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "ws2812": { - "pin": "C6" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "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} - ] - } - } -} diff --git a/keyboards/jcpm2/keymaps/default/keymap.c b/keyboards/jcpm2/keymaps/default/keymap.c deleted file mode 100644 index 6ea8906cec..0000000000 --- a/keyboards/jcpm2/keymaps/default/keymap.c +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Define the layers -enum layer_names { - _LAYER0, - _LAYER0_MOD, - _LAYER1, - _LAYER2 -}; - -#define UNDERGLOW 60 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┐ - * │ E │ n │ 6 │ 7 │ - * ├───┼───┼───┼───┤ - * │ B │ n │ 5 │ 8 │ - * ├───┼───┼───┼───┤ - * │ 2 │ 3 │ 4 │ 9 │ - * └───┴───┴───┴───┘ - */ - [_LAYER0] = LAYOUT( // default - KC_MUTE, LSFT(KC_COMM), LSFT(KC_DOT), - DF(_LAYER1), KC_J, KC_L, - KC_MPRV, KC_MPLY, KC_MNXT, TG(_LAYER0_MOD) // btm-right one shot mod layer - ), - [_LAYER0_MOD] = LAYOUT( // default MOD - _______, RM_VALU, RM_NEXT, // _______ transparent, goes to above layer - _______, RM_VALD, RM_TOGG, - LCTL(LGUI(KC_SPC)), _______, _______, TG(_LAYER0_MOD) - ), - [_LAYER1] = LAYOUT( // FCPX - LSFT(LGUI(KC_B)), LGUI(KC_B), LGUI(KC_EQL), - DF(_LAYER2), LALT(KC_K), LGUI(KC_MINS), - KC_J, KC_K, KC_L, KC_BSPC - ), - [_LAYER2] = LAYOUT( // KICAD - KC_E, KC_ESC, KC_M, - DF(_LAYER0), LGUI(KC_Z), KC_X, - KC_V, KC_D, KC_U, KC_BSPC - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, // default - [_LAYER0_MOD] = { ENCODER_CCW_CW(_______, _______) }, // default MOD - [_LAYER1] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // FCPX - [_LAYER2] = { ENCODER_CCW_CW(KC_R, S(KC_R)) } // KICAD -}; -#endif - -#ifdef OLED_ENABLE -// Function to display the current layer and information on the OLED -bool oled_task_user(void) { - switch (get_highest_layer(layer_state | default_layer_state)) { - case _LAYER0: - oled_write_ln_P(PSTR("(VOL- VOL+) LAYER0"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("MUTE SLOW FAST"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("LAYR RSET 10BK 10FW"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("MREV MPLA MFWD +OPT"), false); - break; - case _LAYER0_MOD: - oled_write_ln_P(PSTR("____ ____ 0-MOD"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("____ BRI+ ANIM"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("____ ____ BRI- TOGG"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("EMOJ ____ ____ -OPT"), false); - break; - case _LAYER1: - oled_write_ln_P(PSTR("(FRA- FRA+) FCPX"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("XXXX BRAK ZOM+"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("LAYR RSET KFRA ZOM-"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("BACK STOP FORW DELT"), false); - break; - case _LAYER2: - oled_write_ln_P(PSTR("(RO L RO R) KICAD"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("EDIT ESCP MOVE"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("LAYR RSET UNDO TRAK"), false); - oled_write_ln_P(PSTR(""), false); - oled_write_ln_P(PSTR("VIA DRAG SALL DELT"), false); - break; - } - return false; -} -#endif - -bool rgb_matrix_indicators_user(void) { - switch(get_highest_layer(layer_state|default_layer_state)) { - case _LAYER2: - rgb_matrix_set_color(11, 0, 0, UNDERGLOW); - rgb_matrix_set_color(10, 0, 0, UNDERGLOW); - rgb_matrix_set_color(9, 0, 0, UNDERGLOW); - rgb_matrix_set_color(8, 0, 0, UNDERGLOW); - break; - case _LAYER1: - rgb_matrix_set_color(11, 0, UNDERGLOW, 0); - rgb_matrix_set_color(10, 0, UNDERGLOW, 0); - rgb_matrix_set_color(9, 0, UNDERGLOW, 0); - rgb_matrix_set_color(8, 0, UNDERGLOW, 0); - break; - case _LAYER0_MOD: - rgb_matrix_set_color(11, UNDERGLOW/2, 0, UNDERGLOW/2); - rgb_matrix_set_color(10, UNDERGLOW/2, 0, UNDERGLOW/2); - rgb_matrix_set_color(9, UNDERGLOW/2, 0, UNDERGLOW/2); - rgb_matrix_set_color(8, UNDERGLOW/2, 0, UNDERGLOW/2); - break; - case _LAYER0: - rgb_matrix_set_color(11, UNDERGLOW, 0, 0); - rgb_matrix_set_color(10, UNDERGLOW, 0, 0); - rgb_matrix_set_color(9, UNDERGLOW, 0, 0); - rgb_matrix_set_color(8, UNDERGLOW, 0, 0); - break; - default: - break; - } - return false; -} diff --git a/keyboards/jcpm2/keymaps/default/rules.mk b/keyboards/jcpm2/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/jcpm2/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jcpm2/readme.md b/keyboards/jcpm2/readme.md deleted file mode 100644 index 9a5560dfd0..0000000000 --- a/keyboards/jcpm2/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# jcpm2 - -![jcpm2](https://i.imgur.com/EM5JoGC.jpeg) - -An 8-key macro pad with rotary encoder, RGB backlighting and underlighting. Made and sold by JCC LLC. - -* Keyboard Maintainer: [jeremyscook](https://github.com/jeremyscook) -* Hardware Supported: JCPM2 PCB, Pro Micro -* Hardware Availability: [Tindie.com](https://www.tindie.com/products/25414) - -Make example for this keyboard (after setting up your build environment): - - make jcpm2:default - -Flashing example for this keyboard: - - make jcpm2: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 rotary encoder and plug in the keyboard -* **Physical reset button**: Double-click the small inside button on top of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jd40/keyboard.json b/keyboards/jd40/keyboard.json index b8a363f298..f56602b215 100644 --- a/keyboards/jd40/keyboard.json +++ b/keyboards/jd40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "jd40", "manufacturer": "geekhack", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jd45/keyboard.json b/keyboards/jd45/keyboard.json index 559c5f1d26..6c103ec6dd 100644 --- a/keyboards/jd45/keyboard.json +++ b/keyboards/jd45/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JD45", "manufacturer": "geekhack", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/jels/boaty/keyboard.json b/keyboards/jels/boaty/keyboard.json index 4fd622d5b0..36fa9288ab 100644 --- a/keyboards/jels/boaty/keyboard.json +++ b/keyboards/jels/boaty/keyboard.json @@ -6,6 +6,7 @@ "pid": "0x000B", "device_version": "1.0.0" }, + "url": "", "maintainer": "Jels", "processor": "atmega328p", "bootloader": "usbasploader", @@ -13,7 +14,9 @@ "bootmagic": true, "nkro": false, "mousekey": false, - "extrakey": true + "extrakey": true, + "console": false, + "command": false }, "qmk": { "locking": { diff --git a/keyboards/jels/jels60/info.json b/keyboards/jels/jels60/info.json index 8f3e05e581..7194542d48 100644 --- a/keyboards/jels/jels60/info.json +++ b/keyboards/jels/jels60/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jels60", "manufacturer": "Jels", + "url": "", "maintainer": "Jels", "usb": { "vid": "0x006A", diff --git a/keyboards/jels/jels60/v1/keyboard.json b/keyboards/jels/jels60/v1/keyboard.json index aabebb36f2..1f7b45adef 100644 --- a/keyboards/jels/jels60/v1/keyboard.json +++ b/keyboards/jels/jels60/v1/keyboard.json @@ -10,6 +10,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false }, "qmk": { diff --git a/keyboards/jels/jels60/v2/keyboard.json b/keyboards/jels/jels60/v2/keyboard.json index 749f9db1d8..4ab87eff49 100644 --- a/keyboards/jels/jels60/v2/keyboard.json +++ b/keyboards/jels/jels60/v2/keyboard.json @@ -5,6 +5,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false }, "qmk": { diff --git a/keyboards/jels/jels88/keyboard.json b/keyboards/jels/jels88/keyboard.json index d9d6d10c24..e4d2c6e273 100644 --- a/keyboards/jels/jels88/keyboard.json +++ b/keyboards/jels/jels88/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jels88", "manufacturer": "Jels", + "url": "", "maintainer": "Jels", "usb": { "vid": "0x006A", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c index e3e58a0e9f..eaf57cdd78 100644 --- a/keyboards/jian/keymaps/advanced/keymap.c +++ b/keyboards/jian/keymaps/advanced/keymap.c @@ -472,9 +472,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; case EXT_PLV: diff --git a/keyboards/jian/keymaps/default/keymap.c b/keyboards/jian/keymaps/default/keymap.c index f3583e5249..a9a7cb3f54 100644 --- a/keyboards/jian/keymaps/default/keymap.c +++ b/keyboards/jian/keymaps/default/keymap.c @@ -11,14 +11,16 @@ enum jian_layers { _BCKLT_ADJ }; +enum jian_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + COLEMAK, + WORKMAN +}; + #define RAISE_T(kc) LT(_RAISE, kc) #define LOWER_T(kc) LT(_LOWER, kc) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) -#define WORKMAN PDF(_WORKMAN) - #ifdef SWAP_HANDS_ENABLE #define SW_TG SH_TOGG #else @@ -90,3 +92,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + } + return true; +} diff --git a/keyboards/jian/rules.mk b/keyboards/jian/rules.mk new file mode 100644 index 0000000000..c19fa00b5c --- /dev/null +++ b/keyboards/jian/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jian/rev2 diff --git a/keyboards/jidohun/km113/halconf.h b/keyboards/jidohun/km113/halconf.h index 7e9c966f40..6ff2f1ec67 100644 --- a/keyboards/jidohun/km113/halconf.h +++ b/keyboards/jidohun/km113/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/jidohun/km113/keymaps/default/keymap.c b/keyboards/jidohun/km113/keymaps/default/keymap.c index 31b0c64ad9..088adc8742 100644 --- a/keyboards/jidohun/km113/keymaps/default/keymap.c +++ b/keyboards/jidohun/km113/keymaps/default/keymap.c @@ -16,11 +16,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( EE_CLR, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_NEXT, _______, _______, - _______, _______, _______, _______, RM_NEXT, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGDN, KC_END, _______, _______, _______, TO(1), _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, TO(2), _______, - _______, GU_TOGG, _______, RM_TOGG, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU,TO(3), _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, TO(2), _______, + _______, GU_TOGG, _______, RGB_TOG, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI,TO(3), _______ ), [2] = LAYOUT( diff --git a/keyboards/jiran/info.json b/keyboards/jiran/info.json index 00c4239781..b06266ec8c 100644 --- a/keyboards/jiran/info.json +++ b/keyboards/jiran/info.json @@ -19,5 +19,6 @@ "pin": "D1" } }, - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/jiran/rules.mk b/keyboards/jiran/rules.mk new file mode 100644 index 0000000000..3ffe13302d --- /dev/null +++ b/keyboards/jiran/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jiran/rev1 diff --git a/keyboards/jkdlab/binary_monkey/keyboard.json b/keyboards/jkdlab/binary_monkey/keyboard.json index a9c9fabe93..c1aad15cb4 100644 --- a/keyboards/jkdlab/binary_monkey/keyboard.json +++ b/keyboards/jkdlab/binary_monkey/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/jkeys_design/gentleman65/keyboard.json b/keyboards/jkeys_design/gentleman65/keyboard.json index 6ccabe45ef..150cf4d351 100644 --- a/keyboards/jkeys_design/gentleman65/keyboard.json +++ b/keyboards/jkeys_design/gentleman65/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/jkeys_design/gentleman65_se_s/keyboard.json b/keyboards/jkeys_design/gentleman65_se_s/keyboard.json index 582ce4aad9..cd4570a765 100644 --- a/keyboards/jkeys_design/gentleman65_se_s/keyboard.json +++ b/keyboards/jkeys_design/gentleman65_se_s/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c index 0d813f808a..ae5f304eed 100644 --- a/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c @@ -7,7 +7,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_VOLU, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLD, KC_H, KC_J, KC_K, KC_L, KC_QUOT, - KC_Z, KC_X, KC_C, KC_V, KC_B, RM_TOGG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, MO(1), KC_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSPC ), @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, - [2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/jolofsor/denial75/keyboard.json b/keyboards/jolofsor/denial75/keyboard.json index 69782a93d8..df7c3157c9 100644 --- a/keyboards/jolofsor/denial75/keyboard.json +++ b/keyboards/jolofsor/denial75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "denial75", "manufacturer": "jsor-hpoli", + "url": "", "maintainer": "jolofsor", "usb": { "vid": "0x4A48", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/jones/rules.mk b/keyboards/jones/rules.mk new file mode 100644 index 0000000000..9f0da2abec --- /dev/null +++ b/keyboards/jones/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jones/v1 diff --git a/keyboards/jones/v03/keymaps/default_jp/keymap.c b/keyboards/jones/v03/keymaps/default_jp/keymap.c index b38b01c748..9b09b57bbd 100644 --- a/keyboards/jones/v03/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03/keymaps/default_jp/keymap.c @@ -63,6 +63,12 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + MAC = SAFE_RANGE, + WIN, +}; + // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -76,8 +82,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) -#define MAC PDF(_MAC) -#define WIN PDF(_WIN) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_jp( @@ -141,6 +146,26 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_jp( ); #endif +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +switch (keycode) { + case MAC: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_MAC); + } + return false; + break; + case WIN: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_WIN); + } + return false; + break; + default: + break; + } + return true; +} + //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c index b60e26d961..b4611439b3 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c @@ -62,6 +62,12 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + MAC = SAFE_RANGE, + WIN, +}; + // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -74,8 +80,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) -#define MAC PDF(_MAC) -#define WIN PDF(_WIN) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_ansi( @@ -129,6 +134,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MAC: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_MAC); + } + return false; + break; + case WIN: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_WIN); + } + return false; + break; + default: + break; + } + return true; +} + //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c index 78fb06aad1..f44b5a1330 100644 --- a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c @@ -63,6 +63,12 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + MAC = SAFE_RANGE, + WIN, +}; + // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -76,8 +82,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) -#define MAC PDF(_MAC) -#define WIN PDF(_WIN) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_jp( @@ -131,6 +136,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +switch (keycode) { + case MAC: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_MAC); + } + return false; + break; + case WIN: // Change default ayer --> Write to EEPROM + if (record->event.pressed) { + set_single_persistent_default_layer(_WIN); + } + return false; + break; + default: + break; + } + return true; +} + //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/jorne/rev1/keyboard.json b/keyboards/jorne/rev1/keyboard.json index 7fffc8be02..4e905e4bfc 100644 --- a/keyboards/jorne/rev1/keyboard.json +++ b/keyboards/jorne/rev1/keyboard.json @@ -32,7 +32,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/jorne/rules.mk b/keyboards/jorne/rules.mk new file mode 100644 index 0000000000..c43649b348 --- /dev/null +++ b/keyboards/jorne/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = jorne/rev1 diff --git a/keyboards/joshajohnson/hub20/keyboard.json b/keyboards/joshajohnson/hub20/keyboard.json index 0d557c58b5..44a3361838 100644 --- a/keyboards/joshajohnson/hub20/keyboard.json +++ b/keyboards/joshajohnson/hub20/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/joshajohnson/hub20/keymaps/default/keymap.c b/keyboards/joshajohnson/hub20/keymaps/default/keymap.c index 970d496620..fe6dd37d05 100644 --- a/keyboards/joshajohnson/hub20/keymaps/default/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/default/keymap.c @@ -28,10 +28,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( QK_BOOT, _______, - RM_TOGG, RM_PREV, RM_NEXT, _______, - _______, RM_VALD, RM_VALU, _______, - _______, RM_HUED, RM_HUEU, _______, - _______, RM_SATD, RM_SATU, _______, + RGB_TOG, RGB_RMOD, RGB_MOD, _______, + _______, RGB_VAD, RGB_VAI, _______, + _______, RGB_HUD, RGB_HUI, _______, + _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c b/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c index 6613a80963..a7853accc5 100644 --- a/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c @@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_left_handed( QK_BOOT, _______, - RM_TOGG, RM_PREV, RM_NEXT, _______, - _______, RM_VALD, RM_VALU, _______, - RM_HUED, RM_HUEU, _______, - _______, RM_SATD, RM_SATU, _______, + RGB_TOG, RGB_RMOD, RGB_MOD, _______, + _______, RGB_VAD, RGB_VAI, _______, + RGB_HUD, RGB_HUI, _______, + _______, RGB_SAD, RGB_SAI, _______, _______, _______ ) }; diff --git a/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c b/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c index f4ecf869c4..78198ab951 100644 --- a/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c @@ -35,10 +35,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_right_handed( QK_BOOT, _______, - RM_TOGG, RM_PREV, RM_NEXT, _______, - _______, RM_VALD, RM_VALU, - _______, RM_HUED, RM_HUEU, _______, - _______, RM_SATD, RM_SATU, + RGB_TOG, RGB_RMOD, RGB_MOD, _______, + _______, RGB_VAD, RGB_VAI, + _______, RGB_HUD, RGB_HUI, _______, + _______, RGB_SAD, RGB_SAI, _______, _______, _______ ) }; diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h index 41534ce6c4..d8dfb9f535 100644 --- a/keyboards/jukaie/jk01/config.h +++ b/keyboards/jukaie/jk01/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/jukaie/jk01/halconf.h b/keyboards/jukaie/jk01/halconf.h index e17fed3886..64a184eb92 100644 --- a/keyboards/jukaie/jk01/halconf.h +++ b/keyboards/jukaie/jk01/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/jukaie/jk01/keyboard.json b/keyboards/jukaie/jk01/keyboard.json index 6e103a46c9..cde0b38034 100644 --- a/keyboards/jukaie/jk01/keyboard.json +++ b/keyboards/jukaie/jk01/keyboard.json @@ -21,6 +21,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -179,6 +181,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "0.0.2", "pid": "0x0002", diff --git a/keyboards/jukaie/jk01/keymaps/default/keymap.c b/keyboards/jukaie/jk01/keymaps/default/keymap.c index 10a24c45e6..243c782fad 100644 --- a/keyboards/jukaie/jk01/keymaps/default/keymap.c +++ b/keyboards/jukaie/jk01/keymaps/default/keymap.c @@ -46,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [Winfn] = LAYOUT( - QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RM_NEXT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), [Macfn] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RM_NEXT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), }; diff --git a/keyboards/junco/keymaps/default/keymap.c b/keyboards/junco/keymaps/default/keymap.c index f1726791e3..8ff3513891 100644 --- a/keyboards/junco/keymaps/default/keymap.c +++ b/keyboards/junco/keymaps/default/keymap.c @@ -118,8 +118,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_split4x6_r1( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RM_SPDU, RM_HUEU, RM_SATU, RM_VALU, RM_NEXT, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, - RM_SPDD, RM_HUED, RM_SATD, RM_VALD, RM_PREV, RM_TOGG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -146,7 +146,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { // Base layer encoder mappings: // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right - [_QWERTY] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, // Passes through to base layers diff --git a/keyboards/junco/rules.mk b/keyboards/junco/rules.mk new file mode 100644 index 0000000000..bb94741e5a --- /dev/null +++ b/keyboards/junco/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = junco/rev1 diff --git a/keyboards/k34/keyboard.json b/keyboards/k34/keyboard.json index 84e65978b3..b9a69fb667 100644 --- a/keyboards/k34/keyboard.json +++ b/keyboards/k34/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/k34/keymaps/default/keymap.c b/keyboards/k34/keymaps/default/keymap.c index cfadf90c6b..4d09b121dd 100644 --- a/keyboards/k34/keymaps/default/keymap.c +++ b/keyboards/k34/keymaps/default/keymap.c @@ -25,8 +25,8 @@ enum layer_names { #define S_SLSH SFT_T(KC_SLSH) // combos for application shortcuts -#define SG_LBRC LSG(KC_LBRC) -#define SG_RBRC LSG(KC_RBRC) +#define SG_LBRC SGUI(KC_LBRC) +#define SG_RBRC SGUI(KC_RBRC) #define G_LBRC G(KC_LBRC) #define G_RBRC G(KC_RBRC) #define A_SLSH A(KC_SLSH) diff --git a/keyboards/kabedon/kabedon78s/keyboard.json b/keyboards/kabedon/kabedon78s/keyboard.json index 49bb57fd38..b875f9b35a 100644 --- a/keyboards/kabedon/kabedon78s/keyboard.json +++ b/keyboards/kabedon/kabedon78s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "78S", "manufacturer": "Kabe_Don", + "url": "", "maintainer": "370490639", "usb": { "vid": "0x4B44", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kabedon/kabedon980/keyboard.json b/keyboards/kabedon/kabedon980/keyboard.json index af8c2bcea2..b8e100ceac 100644 --- a/keyboards/kabedon/kabedon980/keyboard.json +++ b/keyboards/kabedon/kabedon980/keyboard.json @@ -34,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kabedon/kabedon98e/keyboard.json b/keyboards/kabedon/kabedon98e/keyboard.json index 70d0bb8ca4..beff70d5d9 100644 --- a/keyboards/kabedon/kabedon98e/keyboard.json +++ b/keyboards/kabedon/kabedon98e/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "98e", "manufacturer": "Kabe_Don", + "url": "", "maintainer": "370490639", "usb": { "vid": "0x4B44", "pid": "0x3935", - "device_version": "0.0.2" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.2", + "force_nkro": true }, "rgblight": { "led_count": 24, @@ -33,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kagizaraya/chidori/keyboard.json b/keyboards/kagizaraya/chidori/keyboard.json index 0187d55eec..2f9066149d 100644 --- a/keyboards/kagizaraya/chidori/keyboard.json +++ b/keyboards/kagizaraya/chidori/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chidori", "manufacturer": "Kagizaraya", + "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kagizaraya/chidori/keymaps/default/keymap.c b/keyboards/kagizaraya/chidori/keymaps/default/keymap.c index f02959d9f5..bd52119d96 100644 --- a/keyboards/kagizaraya/chidori/keymaps/default/keymap.c +++ b/keyboards/kagizaraya/chidori/keymaps/default/keymap.c @@ -19,14 +19,13 @@ enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK }; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -142,6 +141,27 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} + bool led_update_user(led_t led_state) { board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock); board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock); diff --git a/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c b/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c index 5e777f9074..a1f0f6d082 100644 --- a/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c +++ b/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c @@ -19,14 +19,13 @@ enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK }; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -142,6 +141,27 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} + bool led_update_user(led_t led_state) { board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock); board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock); diff --git a/keyboards/kagizaraya/halberd/keyboard.json b/keyboards/kagizaraya/halberd/keyboard.json index 3e39ab8aa1..c8c5b5e214 100644 --- a/keyboards/kagizaraya/halberd/keyboard.json +++ b/keyboards/kagizaraya/halberd/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Halberd", "manufacturer": "Kagizaraya", + "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", @@ -32,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/kagizaraya/miniaxe/keyboard.json b/keyboards/kagizaraya/miniaxe/keyboard.json index 4e2658fd37..b2e3b14d0e 100644 --- a/keyboards/kagizaraya/miniaxe/keyboard.json +++ b/keyboards/kagizaraya/miniaxe/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MiniAxe", "manufacturer": "ENDO Katsuhiro", + "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", @@ -37,6 +38,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kagizaraya/scythe/keyboard.json b/keyboards/kagizaraya/scythe/keyboard.json index eddb54315d..ed1bd99f66 100644 --- a/keyboards/kagizaraya/scythe/keyboard.json +++ b/keyboards/kagizaraya/scythe/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Scythe", "manufacturer": "Kagizaraya", + "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kakunpc/angel17/info.json b/keyboards/kakunpc/angel17/info.json index c0d7287052..a8a4f2c148 100644 --- a/keyboards/kakunpc/angel17/info.json +++ b/keyboards/kakunpc/angel17/info.json @@ -8,6 +8,7 @@ "pid": "0x0000", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["numpad_5x4"] } diff --git a/keyboards/kakunpc/angel17/rules.mk b/keyboards/kakunpc/angel17/rules.mk new file mode 100644 index 0000000000..48095d37e6 --- /dev/null +++ b/keyboards/kakunpc/angel17/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kakunpc/angel17/rev1 diff --git a/keyboards/kakunpc/angel64/alpha/rules.mk b/keyboards/kakunpc/angel64/alpha/rules.mk deleted file mode 100644 index 09c02c88b0..0000000000 --- a/keyboards/kakunpc/angel64/alpha/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CUSTOM_MATRIX = yes - -SRC += matrix.c diff --git a/keyboards/kakunpc/angel64/rev1/rules.mk b/keyboards/kakunpc/angel64/rev1/rules.mk deleted file mode 100644 index 09c02c88b0..0000000000 --- a/keyboards/kakunpc/angel64/rev1/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CUSTOM_MATRIX = yes - -SRC += matrix.c diff --git a/keyboards/kakunpc/angel64/rules.mk b/keyboards/kakunpc/angel64/rules.mk new file mode 100644 index 0000000000..c95d5297bd --- /dev/null +++ b/keyboards/kakunpc/angel64/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = yes + +SRC += matrix.c + +DEFAULT_FOLDER = kakunpc/angel64/rev1 diff --git a/keyboards/kakunpc/business_card/alpha/keyboard.json b/keyboards/kakunpc/business_card/alpha/keyboard.json index c357ae3a00..17c42ebb31 100644 --- a/keyboards/kakunpc/business_card/alpha/keyboard.json +++ b/keyboards/kakunpc/business_card/alpha/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "business_card alpha", "manufacturer": "kakunpc", + "url": "", "maintainer": "kakunpc", "usb": { "vid": "0xFEED", diff --git a/keyboards/kakunpc/business_card/beta/keyboard.json b/keyboards/kakunpc/business_card/beta/keyboard.json index 0e8fda9f58..5b6a77f358 100644 --- a/keyboards/kakunpc/business_card/beta/keyboard.json +++ b/keyboards/kakunpc/business_card/beta/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "business_card beta", "manufacturer": "kakunpc", + "url": "", "maintainer": "kakunpc", "usb": { "vid": "0xFEED", diff --git a/keyboards/kakunpc/business_card/readme.md b/keyboards/kakunpc/business_card/readme.md index 98fdf1be90..cbd05af410 100644 --- a/keyboards/kakunpc/business_card/readme.md +++ b/keyboards/kakunpc/business_card/readme.md @@ -1,6 +1,12 @@ # business_card -* Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +![business_card](imgur.com image replace me!) + +A short description of the keyboard/project + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: The PCBs, controllers supported +Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kakunpc/business_card/rules.mk b/keyboards/kakunpc/business_card/rules.mk new file mode 100644 index 0000000000..4525d52332 --- /dev/null +++ b/keyboards/kakunpc/business_card/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kakunpc/business_card/beta diff --git a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json index 357d1a1ed1..8bf5d708c9 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json +++ b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json @@ -33,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -55,7 +57,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_all": "LAYOUT_ansi_split_rshift" }, diff --git a/keyboards/kakunpc/suihankey/rules.mk b/keyboards/kakunpc/suihankey/rules.mk new file mode 100644 index 0000000000..46a0114bd5 --- /dev/null +++ b/keyboards/kakunpc/suihankey/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kakunpc/suihankey/rev1 diff --git a/keyboards/kakunpc/suihankey/split/rules.mk b/keyboards/kakunpc/suihankey/split/rules.mk new file mode 100644 index 0000000000..1dc7b014f0 --- /dev/null +++ b/keyboards/kakunpc/suihankey/split/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kakunpc/suihankey/split/rev1 diff --git a/keyboards/kalakos/bahrnob/keyboard.json b/keyboards/kalakos/bahrnob/keyboard.json index 988fae4ba4..2e127e555a 100644 --- a/keyboards/kalakos/bahrnob/keyboard.json +++ b/keyboards/kalakos/bahrnob/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "encoder": true }, diff --git a/keyboards/kaly/kaly42/keyboard.json b/keyboards/kaly/kaly42/keyboard.json index c19835b90d..3115d051df 100644 --- a/keyboards/kaly/kaly42/keyboard.json +++ b/keyboards/kaly/kaly42/keyboard.json @@ -5,6 +5,8 @@ "development_board": "blackpill_f401", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kapcave/arya/keyboard.json b/keyboards/kapcave/arya/keyboard.json index c1549dd93b..986e9eec8b 100644 --- a/keyboards/kapcave/arya/keyboard.json +++ b/keyboards/kapcave/arya/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/kapcave/gskt00/keyboard.json b/keyboards/kapcave/gskt00/keyboard.json index e48480d9c4..0d2fd292c6 100644 --- a/keyboards/kapcave/gskt00/keyboard.json +++ b/keyboards/kapcave/gskt00/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kapcave/paladin64/keyboard.json b/keyboards/kapcave/paladin64/keyboard.json index afd226fb9c..6fdd64a500 100644 --- a/keyboards/kapcave/paladin64/keyboard.json +++ b/keyboards/kapcave/paladin64/keyboard.json @@ -13,6 +13,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kapcave/paladin64/keymaps/default/keymap.c b/keyboards/kapcave/paladin64/keymaps/default/keymap.c index e69ef22288..f4f1873919 100644 --- a/keyboards/kapcave/paladin64/keymaps/default/keymap.c +++ b/keyboards/kapcave/paladin64/keymaps/default/keymap.c @@ -53,9 +53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* AutoMouse */ LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/kapcave/paladinpad/info.json b/keyboards/kapcave/paladinpad/info.json index 346f6ad730..1a639180d0 100644 --- a/keyboards/kapcave/paladinpad/info.json +++ b/keyboards/kapcave/paladinpad/info.json @@ -5,6 +5,8 @@ "maintainer": "nachie", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kapcave/paladinpad/rules.mk b/keyboards/kapcave/paladinpad/rules.mk new file mode 100644 index 0000000000..02685414e3 --- /dev/null +++ b/keyboards/kapcave/paladinpad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kapcave/paladinpad/rev2 diff --git a/keyboards/kapl/keymaps/default/keymap.c b/keyboards/kapl/keymaps/default/keymap.c index 29d72582b4..376b247218 100644 --- a/keyboards/kapl/keymaps/default/keymap.c +++ b/keyboards/kapl/keymaps/default/keymap.c @@ -37,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, RM_SATU, RM_SPDU, RM_VALU, RM_HUEU, RM_NEXT, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RGB_SAI, RGB_SPI, RGB_VAI, RGB_HUI, RGB_MOD, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, RM_SATD, RM_SPDD, RM_VALD, RM_HUED, RM_PREV, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MNXT, KC_MPRV, KC_NO, KC_NO, + KC_NO, RGB_SAD, RGB_SPD, RGB_VAD, RGB_HUD, RGB_RMOD, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MNXT, KC_MPRV, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, KC_NO, KC_NO, KC_NO, RM_TOGG, RGB_M_P, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_M_P, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼─┬──────┴─┬──────┴─┐ ┌─┴──────┬─┴──────┬─┼────────┼────────┼────────┼────────┼────────┤ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO //└────────┴────────┴────────┴────────┴────────┘ └────────┴────────┘ └────────┴────────┘ └────────┴────────┴────────┴────────┴────────┘ diff --git a/keyboards/kapl/rev1/keyboard.json b/keyboards/kapl/rev1/keyboard.json index 843847d8fe..820c647ccf 100644 --- a/keyboards/kapl/rev1/keyboard.json +++ b/keyboards/kapl/rev1/keyboard.json @@ -72,7 +72,8 @@ } } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kapl/rules.mk b/keyboards/kapl/rules.mk new file mode 100644 index 0000000000..a5dd22ce1c --- /dev/null +++ b/keyboards/kapl/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kapl/rev1 diff --git a/keyboards/karn/keyboard.json b/keyboards/karn/keyboard.json index cd680af65b..1ddd8e5a98 100644 --- a/keyboards/karn/keyboard.json +++ b/keyboards/karn/keyboard.json @@ -4,6 +4,8 @@ "maintainer": "robcmills", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kb_elmo/67mk_e/keyboard.json b/keyboards/kb_elmo/67mk_e/keyboard.json index 48e3e894f6..4e842f28e6 100644 --- a/keyboards/kb_elmo/67mk_e/keyboard.json +++ b/keyboards/kb_elmo/67mk_e/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "67mk_E", "manufacturer": "kb_elmo", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kb_elmo/gamehand/keyboard.json b/keyboards/kb_elmo/gamehand/keyboard.json index 9c2b847c1a..39795bf250 100644 --- a/keyboards/kb_elmo/gamehand/keyboard.json +++ b/keyboards/kb_elmo/gamehand/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xA68C", "pid": "0x4D90", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "processor": "atmega32u2", "bootloader": "atmel-dfu", diff --git a/keyboards/kb_elmo/isolation/keyboard.json b/keyboards/kb_elmo/isolation/keyboard.json index 1152675912..e7a40a55e6 100644 --- a/keyboards/kb_elmo/isolation/keyboard.json +++ b/keyboards/kb_elmo/isolation/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ISOlation", "manufacturer": "kb-elmo", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", diff --git a/keyboards/kb_elmo/noah_avr/keyboard.json b/keyboards/kb_elmo/noah_avr/keyboard.json index 0955a73edc..48cbb6e5e2 100644 --- a/keyboards/kb_elmo/noah_avr/keyboard.json +++ b/keyboards/kb_elmo/noah_avr/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kb_elmo/qez/keyboard.json b/keyboards/kb_elmo/qez/keyboard.json index 0b291f95a5..ab1f823043 100644 --- a/keyboards/kb_elmo/qez/keyboard.json +++ b/keyboards/kb_elmo/qez/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "QEZ", "manufacturer": "kb_elmo", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kb_elmo/vertex/keyboard.json b/keyboards/kb_elmo/vertex/keyboard.json index 5032670e3f..5585386296 100644 --- a/keyboards/kb_elmo/vertex/keyboard.json +++ b/keyboards/kb_elmo/vertex/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vertex", "manufacturer": "kb_elmo", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kbd0/curve0/60_ansi/keyboard.json b/keyboards/kbd0/curve0/60_ansi/keyboard.json deleted file mode 100644 index 64c39cd24e..0000000000 --- a/keyboards/kbd0/curve0/60_ansi/keyboard.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "manufacturer": "kbd0", - "keyboard_name": "kbd0/curve0/60_ansi", - "maintainer": "kbd0", - "bootloader": "rp2040", - "bootloader_instructions": "Hold the top left key of the keyboard while plugging in the keyboard", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP6", "GP5", "GP4", "GP7", "GP10", "GP9", "GP11", "GP12", "GP13", "GP14", "GP25", "GP20", "GP19", "GP18", "GP16"], - "rows": ["GP23", "GP22", "GP21", "GP24", "GP17"] - }, - "processor": "RP2040", - "url": "https://kbd0.com/item/curve0", - "usb": { - "device_version": "1.0.0", - "pid": "0xC000", - "vid": "0xCBD0" - }, - "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json deleted file mode 100644 index d84bfd2bf4..0000000000 --- a/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "author": "kbd0", - "keyboard": "kbd0/curve0/60_ansi", - "keymap": "default", - "layout": "LAYOUT_all", - "layers": [ - [ - "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_BSPC", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", - "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", - "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)", - "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" - ], - [ - "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", "_______", "KC_DEL", - "_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" - ] - ] -} diff --git a/keyboards/kbd0/curve0/60_ansi/readme.md b/keyboards/kbd0/curve0/60_ansi/readme.md deleted file mode 100644 index f97ec67312..0000000000 --- a/keyboards/kbd0/curve0/60_ansi/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# kbd0/curve0/60_ansi - -![Curve0](https://i.imgur.com/y5ZIbWI.jpeg) - -Curve0 - Curved stainless steel keyboard by kbd0 - -* Keyboard Maintainer: [kbd0](https://github.com/kbd0) -* Hardware Supported: Curve0 PCB -* Hardware Availability: [kbd0.com](https://kbd0.com/item/curve0) - -Make example for this keyboard (after setting up your build environment): - - make kbd0/curve0/60_ansi:default - -Flashing example for this keyboard: - - make kbd0/curve0/60_ansi: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 the top left key of the keyboard while plugging in the keyboard -* **Physical reset button**: Hold the button on the main PCB (inside the keyboard) while plugging in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c index e1674d43ff..46d68182f4 100644 --- a/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c +++ b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, MS_BTN1, MS_UP, MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/kbdcraft/adam64/keyboard.json b/keyboards/kbdcraft/adam64/keyboard.json index 489dc8f6b5..d7a96fa577 100644 --- a/keyboards/kbdcraft/adam64/keyboard.json +++ b/keyboards/kbdcraft/adam64/keyboard.json @@ -20,6 +20,8 @@ "mousekey": true, "extrakey": true, "nkro": true, + "console": false, + "command": false, "rgb_matrix": true }, "rgb_matrix": { diff --git a/keyboards/kbdcraft/adam64/keymaps/default/keymap.c b/keyboards/kbdcraft/adam64/keymaps/default/keymap.c index cdd32beedd..0396bd77d1 100644 --- a/keyboards/kbdcraft/adam64/keymaps/default/keymap.c +++ b/keyboards/kbdcraft/adam64/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( 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, KC_DEL, - KC_NO, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RM_SPDU, RM_SPDD, KC_HOME, KC_PGUP, EE_CLR, + KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EE_CLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, NK_TOGG, KC_NO, KC_NO, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RM_NEXT, KC_VOLD, RM_TOGG + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_MOD, KC_VOLD, RGB_TOG ) }; diff --git a/keyboards/kbdfans/baguette66/rgb/keyboard.json b/keyboards/kbdfans/baguette66/rgb/keyboard.json index 5955add028..61579473cd 100644 --- a/keyboards/kbdfans/baguette66/rgb/keyboard.json +++ b/keyboards/kbdfans/baguette66/rgb/keyboard.json @@ -66,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c index 201ea64563..a420edfa7b 100644 --- a/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c @@ -25,20 +25,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), [1] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [2] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [3] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/kbdfans/baguette66/soldered/keyboard.json b/keyboards/kbdfans/baguette66/soldered/keyboard.json index fb05dde2ac..f9c87dad06 100644 --- a/keyboards/kbdfans/baguette66/soldered/keyboard.json +++ b/keyboards/kbdfans/baguette66/soldered/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/kbdfans/bella/rgb/keyboard.json b/keyboards/kbdfans/bella/rgb/keyboard.json index 2ca18d2851..50310e3667 100644 --- a/keyboards/kbdfans/bella/rgb/keyboard.json +++ b/keyboards/kbdfans/bella/rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bella RGB ANSI", "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c index bde7e448d9..bc7955c1a8 100644 --- a/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) diff --git a/keyboards/kbdfans/bella/rgb_iso/keyboard.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json index c7dd6423b5..20b00283ed 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keyboard.json +++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bella RGB ISO", "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c b/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c index 927f88c47e..5391c17755 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) diff --git a/keyboards/kbdfans/bella/soldered/keyboard.json b/keyboards/kbdfans/bella/soldered/keyboard.json index d6bb586f9b..aa5d915980 100644 --- a/keyboards/kbdfans/bella/soldered/keyboard.json +++ b/keyboards/kbdfans/bella/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bella Soldered", "manufacturer": "KBDfans", + "url": "", "maintainer": "kbdfans", "usb": { "vid": "0x4B42", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json index 4a051c9112..49fa78b315 100644 --- a/keyboards/kbdfans/boop65/rgb/keyboard.json +++ b/keyboards/kbdfans/boop65/rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Boop65 RGB", "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", @@ -63,6 +64,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c index cafcd2152c..7ad5c5bf17 100644 --- a/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [2] = LAYOUT_65_ansi_blocker( diff --git a/keyboards/kbdfans/bounce/75/hotswap/keyboard.json b/keyboards/kbdfans/bounce/75/hotswap/keyboard.json index b67719cbd3..478b4bc372 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/keyboard.json +++ b/keyboards/kbdfans/bounce/75/hotswap/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/bounce/75/soldered/keyboard.json b/keyboards/kbdfans/bounce/75/soldered/keyboard.json index b6ef0a29a8..e1610872e1 100644 --- a/keyboards/kbdfans/bounce/75/soldered/keyboard.json +++ b/keyboards/kbdfans/bounce/75/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Bounce75 Soldered", "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/bounce/pad/keyboard.json b/keyboards/kbdfans/bounce/pad/keyboard.json index 96a5214551..d95010954b 100644 --- a/keyboards/kbdfans/bounce/pad/keyboard.json +++ b/keyboards/kbdfans/bounce/pad/keyboard.json @@ -10,6 +10,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/d45/rules.mk b/keyboards/kbdfans/d45/rules.mk new file mode 100644 index 0000000000..041e632f65 --- /dev/null +++ b/keyboards/kbdfans/d45/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kbdfans/d45/v2 diff --git a/keyboards/kbdfans/d45/v2/keyboard.json b/keyboards/kbdfans/d45/v2/keyboard.json index a463e19c13..6eadfa0860 100644 --- a/keyboards/kbdfans/d45/v2/keyboard.json +++ b/keyboards/kbdfans/d45/v2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/epoch80/keyboard.json b/keyboards/kbdfans/epoch80/keyboard.json index 0f0bcdb544..08ed973b92 100644 --- a/keyboards/kbdfans/epoch80/keyboard.json +++ b/keyboards/kbdfans/epoch80/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kbdfans/jm60/keyboard.json b/keyboards/kbdfans/jm60/keyboard.json index 6bc60c308c..ffa205daa0 100644 --- a/keyboards/kbdfans/jm60/keyboard.json +++ b/keyboards/kbdfans/jm60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JM60", "manufacturer": "JMWS", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd19x/keyboard.json b/keyboards/kbdfans/kbd19x/keyboard.json index b5f4673060..080cf82d80 100644 --- a/keyboards/kbdfans/kbd19x/keyboard.json +++ b/keyboards/kbdfans/kbd19x/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd4x/keyboard.json b/keyboards/kbdfans/kbd4x/keyboard.json index 1f3d5ce25e..77abf71f28 100644 --- a/keyboards/kbdfans/kbd4x/keyboard.json +++ b/keyboards/kbdfans/kbd4x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD4x", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd66/keyboard.json b/keyboards/kbdfans/kbd66/keyboard.json index 57cbab49fd..2b614442a0 100644 --- a/keyboards/kbdfans/kbd66/keyboard.json +++ b/keyboards/kbdfans/kbd66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD66", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd67/hotswap/keyboard.json b/keyboards/kbdfans/kbd67/hotswap/keyboard.json index 4620d06a16..fb0c165d14 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keyboard.json +++ b/keyboards/kbdfans/kbd67/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD67 Hotswap", "manufacturer": "KBDFans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json index 06f9238483..397f525f7a 100644 --- a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD67-MKII Soldered", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xA103", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/kbd67/mkiirgb/info.json b/keyboards/kbdfans/kbd67/mkiirgb/info.json index 1371370357..683503b4ee 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/info.json @@ -1,5 +1,6 @@ { "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42" diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c index 8d7999eaab..d00b74f7b6 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [_LAYER1] = LAYOUT_65_ansi_blocker( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json index f55a649f43..a90fd8b26b 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json @@ -44,6 +44,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json index 916ee0f33a..561c4df2ac 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json @@ -41,6 +41,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json index ed47182ae5..79853d2d0f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json @@ -60,6 +60,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json index 5000f8fb0a..b8e9fdaf1c 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD67MKIIRGB ISO", "manufacturer": "KBDfans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c index 206ed3e19d..221cccefb4 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_iso_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_PGUP, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, QK_BOOT, KC_PGDN, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_PGUP, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, QK_BOOT, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/kbdfans/kbd67/rev1/keyboard.json b/keyboards/kbdfans/kbd67/rev1/keyboard.json index 04f88cecd2..ba91317906 100644 --- a/keyboards/kbdfans/kbd67/rev1/keyboard.json +++ b/keyboards/kbdfans/kbd67/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD67 Rev1", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/rev2/keyboard.json b/keyboards/kbdfans/kbd67/rev2/keyboard.json index bbfbdd6257..1e9d87ba0d 100644 --- a/keyboards/kbdfans/kbd67/rev2/keyboard.json +++ b/keyboards/kbdfans/kbd67/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD67 Rev2", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c index f34c94523f..d4a3cad12f 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_DEL, KC_PSCR, KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, BL_UP, BL_DOWN, BL_TOGG, KC_INS, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, KC_HOME, - _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, MS_BTN1, MS_UP, KC_END, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_END, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), }; diff --git a/keyboards/kbdfans/kbd6x/keyboard.json b/keyboards/kbdfans/kbd6x/keyboard.json index ed63da9886..c2b9f28b63 100644 --- a/keyboards/kbdfans/kbd6x/keyboard.json +++ b/keyboards/kbdfans/kbd6x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD6X", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", @@ -10,6 +11,7 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/kbdfans/kbd75/rev1/keyboard.json b/keyboards/kbdfans/kbd75/rev1/keyboard.json index 900e5dbd78..01429c8ebb 100644 --- a/keyboards/kbdfans/kbd75/rev1/keyboard.json +++ b/keyboards/kbdfans/kbd75/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD75 rev1", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd75/rev2/keyboard.json b/keyboards/kbdfans/kbd75/rev2/keyboard.json index e0f862d40f..322eba661a 100644 --- a/keyboards/kbdfans/kbd75/rev2/keyboard.json +++ b/keyboards/kbdfans/kbd75/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD75 rev2", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd75/rules.mk b/keyboards/kbdfans/kbd75/rules.mk new file mode 100644 index 0000000000..5c46171316 --- /dev/null +++ b/keyboards/kbdfans/kbd75/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kbdfans/kbd75/rev1 diff --git a/keyboards/kbdfans/kbd75hs/keyboard.json b/keyboards/kbdfans/kbd75hs/keyboard.json index 45773d07aa..3545f2357d 100644 --- a/keyboards/kbdfans/kbd75hs/keyboard.json +++ b/keyboards/kbdfans/kbd75hs/keyboard.json @@ -5,15 +5,13 @@ "usb": { "vid": "0x4B42", "pid": "0x6062", - "device_version": "0.0.3" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.3", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json index 6a69d78c03..9a5f7a6908 100644 --- a/keyboards/kbdfans/kbd75rgb/keyboard.json +++ b/keyboards/kbdfans/kbd75rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD75RGB", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", @@ -69,6 +70,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd8x/keyboard.json b/keyboards/kbdfans/kbd8x/keyboard.json index 3e6aa88d4d..fe0106165d 100644 --- a/keyboards/kbdfans/kbd8x/keyboard.json +++ b/keyboards/kbdfans/kbd8x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBD8X", "manufacturer": "KBDfans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd8x_mk2/keyboard.json b/keyboards/kbdfans/kbd8x_mk2/keyboard.json index ff566fd864..b5d1ee6a25 100644 --- a/keyboards/kbdfans/kbd8x_mk2/keyboard.json +++ b/keyboards/kbdfans/kbd8x_mk2/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json index 97edf073e6..8f2dade705 100644 --- a/keyboards/kbdfans/kbdmini/keyboard.json +++ b/keyboards/kbdfans/kbdmini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KBDMINI", "manufacturer": "DZTECH", + "url": "", "maintainer": "KBDFans", "usb": { "vid": "0xFEED", @@ -41,6 +42,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdpad/mk1/keyboard.json b/keyboards/kbdfans/kbdpad/mk1/keyboard.json index ce9bf7cde5..10de0d0436 100644 --- a/keyboards/kbdfans/kbdpad/mk1/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk1/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kbdfans/kbdpad/mk2/keyboard.json b/keyboards/kbdfans/kbdpad/mk2/keyboard.json index 6c7dba1293..c4af51f034 100644 --- a/keyboards/kbdfans/kbdpad/mk2/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk2/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdpad/mk3/keyboard.json b/keyboards/kbdfans/kbdpad/mk3/keyboard.json index 2fad479bad..7c741f7633 100644 --- a/keyboards/kbdfans/kbdpad/mk3/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk3/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json index 949dd09fe2..c307f78637 100644 --- a/keyboards/kbdfans/maja/keyboard.json +++ b/keyboards/kbdfans/maja/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Maja", "manufacturer": "KBDFans", + "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x4B42", @@ -46,6 +47,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/maja/keymaps/default/keymap.c b/keyboards/kbdfans/maja/keymaps/default/keymap.c index 7f92ac593a..fbc0f59304 100755 --- a/keyboards/kbdfans/maja/keymaps/default/keymap.c +++ b/keyboards/kbdfans/maja/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_HOME, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/kbdfans/maja_soldered/keyboard.json b/keyboards/kbdfans/maja_soldered/keyboard.json index 5c6e13efef..f182ef97d1 100644 --- a/keyboards/kbdfans/maja_soldered/keyboard.json +++ b/keyboards/kbdfans/maja_soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Maja Soldered", "manufacturer": "KBDFans", + "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x4B42", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/niu_mini/keyboard.json b/keyboards/kbdfans/niu_mini/keyboard.json index 766d63d366..4c7d6f6d50 100644 --- a/keyboards/kbdfans/niu_mini/keyboard.json +++ b/keyboards/kbdfans/niu_mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NIU Mini", "manufacturer": "KBDFans", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6E6D", diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json index 1fb5a833ec..1777e2cdc0 100644 --- a/keyboards/kbdfans/odin/rgb/keyboard.json +++ b/keyboards/kbdfans/odin/rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Odin RGB", "manufacturer": "KBDFans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/odin/soldered/keyboard.json b/keyboards/kbdfans/odin/soldered/keyboard.json index 1f2fbff5d0..42a8a0e056 100644 --- a/keyboards/kbdfans/odin/soldered/keyboard.json +++ b/keyboards/kbdfans/odin/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Odin Soldered", "manufacturer": "KBDFans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/odin/v2/keyboard.json b/keyboards/kbdfans/odin/v2/keyboard.json index 88a133ce70..595a5596fe 100644 --- a/keyboards/kbdfans/odin/v2/keyboard.json +++ b/keyboards/kbdfans/odin/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Odin V2", "manufacturer": "KBDFans", + "url": "", "maintainer": "lexbrugman", "usb": { "vid": "0x4B42", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/odin75/halconf.h b/keyboards/kbdfans/odin75/halconf.h index 15cb9895ba..0218214174 100644 --- a/keyboards/kbdfans/odin75/halconf.h +++ b/keyboards/kbdfans/odin75/halconf.h @@ -16,6 +16,13 @@ #pragma once +#include_next + +#undef HAL_USE_SPI #define HAL_USE_SPI TRUE -#include_next +#undef SPI_USE_WAIT +#define SPI_USE_WAIT TRUE + +#undef SPI_SELECT_MODE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD diff --git a/keyboards/kbdfans/odin75/keyboard.json b/keyboards/kbdfans/odin75/keyboard.json index 2bc63d7561..b6fb124c93 100644 --- a/keyboards/kbdfans/odin75/keyboard.json +++ b/keyboards/kbdfans/odin75/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -13,7 +15,8 @@ "wpm": true }, "indicators": { - "caps_lock": "GP29" + "caps_lock": "GP29", + "on_state": 1 }, "matrix_pins": { "cols": ["GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP3", "GP4"], diff --git a/keyboards/kbdfans/odinmini/keyboard.json b/keyboards/kbdfans/odinmini/keyboard.json index e5d43d278a..a9cb1a798f 100644 --- a/keyboards/kbdfans/odinmini/keyboard.json +++ b/keyboards/kbdfans/odinmini/keyboard.json @@ -6,6 +6,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -34,6 +35,7 @@ "twinkle": true }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 4, "max_brightness": 180, "saturation_steps": 8, diff --git a/keyboards/kbdfans/phaseone/keyboard.json b/keyboards/kbdfans/phaseone/keyboard.json index 1c6894cc8e..fcc6bdc7b3 100644 --- a/keyboards/kbdfans/phaseone/keyboard.json +++ b/keyboards/kbdfans/phaseone/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Phase One", "manufacturer": "KBDFans", + "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/tiger80/keyboard.json b/keyboards/kbdfans/tiger80/keyboard.json index a507c5c682..9761cb892d 100644 --- a/keyboards/kbdfans/tiger80/keyboard.json +++ b/keyboards/kbdfans/tiger80/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -17,6 +19,7 @@ "diode_direction": "COL2ROW", "indicators": { "caps_lock": "C7", + "on_state": 1, "scroll_lock": "B2" }, "processor": "atmega32u4", @@ -45,6 +48,7 @@ "ws2812": { "pin": "B3" }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0011", diff --git a/keyboards/kbnordic/nordic60/rev_a/keyboard.json b/keyboards/kbnordic/nordic60/rev_a/keyboard.json index f9b0fcafba..0b1da369b3 100644 --- a/keyboards/kbnordic/nordic60/rev_a/keyboard.json +++ b/keyboards/kbnordic/nordic60/rev_a/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kbnordic/nordic65/rev_a/keyboard.json b/keyboards/kbnordic/nordic65/rev_a/keyboard.json index a8bee1f378..8cd90949ea 100644 --- a/keyboards/kbnordic/nordic65/rev_a/keyboard.json +++ b/keyboards/kbnordic/nordic65/rev_a/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "stm32-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/kc60/keyboard.json b/keyboards/kc60/keyboard.json index f7ee4e785b..2b2f9c4951 100644 --- a/keyboards/kc60/keyboard.json +++ b/keyboards/kc60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KC60", "manufacturer": "NPKC", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x530A", @@ -55,18 +56,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_abnt2", - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_hhkb", "60_abnt2", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ @@ -349,7 +339,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/kc60se/keyboard.json b/keyboards/kc60se/keyboard.json index 76a715f589..c8bdf24a4b 100644 --- a/keyboards/kc60se/keyboard.json +++ b/keyboards/kc60se/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kc60se", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/keaboard/rev1/keyboard.json b/keyboards/keaboard/rev1/keyboard.json index c8dea471f6..1b5b492075 100644 --- a/keyboards/keaboard/rev1/keyboard.json +++ b/keyboards/keaboard/rev1/keyboard.json @@ -13,7 +13,8 @@ "rows": ["D7", "E6", "B4", "B5"], "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, - "development_board": "promicro", + "bootloader": "caterina", + "processor": "atmega32u4", "split": { "enabled": true, "serial": { diff --git a/keyboards/keebart/sofle_choc_pro/config.h b/keyboards/keebart/sofle_choc_pro/config.h deleted file mode 100644 index 5c9b6ff8f1..0000000000 --- a/keyboards/keebart/sofle_choc_pro/config.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define USB_VBUS_PIN GP13 - -/* 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 diff --git a/keyboards/keebart/sofle_choc_pro/keyboard.json b/keyboards/keebart/sofle_choc_pro/keyboard.json deleted file mode 100644 index a1ba222388..0000000000 --- a/keyboards/keebart/sofle_choc_pro/keyboard.json +++ /dev/null @@ -1,235 +0,0 @@ -{ - "manufacturer": "Keebart", - "keyboard_name": "sofle_choc_pro", - "maintainer": "Keebart", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP23", "pin_b": "GP22"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP27", "GP26", "GP25", "GP24", "GP19", "GP18"], - "rows": ["GP0", "GP1", "GP2", "GP3", "GP4"] - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [4, 5], "x": 99, "y": 38, "flags": 4}, - {"matrix": [4, 4], "x": 91, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 77, "y": 60, "flags": 4}, - {"matrix": [3, 5], "x": 82, "y": 45, "flags": 4}, - {"matrix": [2, 5], "x": 82, "y": 31, "flags": 4}, - {"matrix": [1, 5], "x": 82, "y": 17, "flags": 4}, - {"matrix": [0, 5], "x": 82, "y": 3, "flags": 4}, - {"matrix": [0, 4], "x": 66, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, - {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, - {"matrix": [3, 4], "x": 66, "y": 43, "flags": 4}, - {"matrix": [4, 2], "x": 58, "y": 59, "flags": 4}, - {"matrix": [4, 1], "x": 41, "y": 59, "flags": 4}, - {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, - {"matrix": [2, 3], "x": 49, "y": 28, "flags": 4}, - {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, - {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 2, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 16, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 29, "flags": 4}, - {"matrix": [3, 2], "x": 33, "y": 43, "flags": 4}, - {"matrix": [4, 0], "x": 25, "y": 60, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 47, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 33, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 19, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 19, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 33, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 47, "flags": 4}, - {"matrix": [9, 5], "x": 125, "y": 38, "flags": 4}, - {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 147, "y": 60, "flags": 4}, - {"matrix": [8, 5], "x": 142, "y": 45, "flags": 4}, - {"matrix": [7, 5], "x": 142, "y": 31, "flags": 4}, - {"matrix": [6, 5], "x": 142, "y": 17, "flags": 4}, - {"matrix": [5, 5], "x": 142, "y": 3, "flags": 4}, - {"matrix": [5, 4], "x": 158, "y": 2, "flags": 4}, - {"matrix": [6, 4], "x": 158, "y": 16, "flags": 4}, - {"matrix": [7, 4], "x": 158, "y": 29, "flags": 4}, - {"matrix": [8, 4], "x": 158, "y": 43, "flags": 4}, - {"matrix": [9, 2], "x": 166, "y": 59, "flags": 4}, - {"matrix": [9, 1], "x": 183, "y": 59, "flags": 4}, - {"matrix": [8, 3], "x": 175, "y": 41, "flags": 4}, - {"matrix": [7, 3], "x": 175, "y": 28, "flags": 4}, - {"matrix": [6, 3], "x": 175, "y": 16, "flags": 4}, - {"matrix": [5, 3], "x": 175, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 2, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 16, "flags": 4}, - {"matrix": [7, 2], "x": 191, "y": 29, "flags": 4}, - {"matrix": [8, 2], "x": 191, "y": 43, "flags": 4}, - {"matrix": [9, 0], "x": 199, "y": 60, "flags": 4}, - {"matrix": [8, 1], "x": 208, "y": 47, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 33, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 19, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 19, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 33, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 47, "flags": 4} - ], - "max_brightness": 50, - "sleep": true, - "split_count": [30, 30] - }, - "split": { - "bootmagic": { - "matrix": [5, 0] - }, - "enabled": true, - "handedness": { - "pin": "GP21" - }, - "serial": { - "driver": "vendor", - "pin": "GP12" - }, - "transport": { - "sync": { - "indicators": true, - "layer_state": true, - "matrix_state": true - } - } - }, - "url": "https://keebart.com/products/sofle", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "suspend_wakeup_delay": 200, - "vid": "0xFEED" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP10" - }, - "layouts": { - "LAYOUT_split_4x6_5": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [5, 5], "x": 9, "y": 0.25}, - {"matrix": [5, 4], "x": 10, "y": 0.125}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0.125}, - {"matrix": [5, 1], "x": 13, "y": 0.375}, - {"matrix": [5, 0], "x": 14, "y": 0.375}, - {"matrix": [1, 0], "x": 0, "y": 1.375}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [6, 5], "x": 9, "y": 1.25}, - {"matrix": [6, 4], "x": 10, "y": 1.125}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1.125}, - {"matrix": [6, 1], "x": 13, "y": 1.375}, - {"matrix": [6, 0], "x": 14, "y": 1.375}, - {"matrix": [2, 0], "x": 0, "y": 2.375}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [7, 5], "x": 9, "y": 2.25}, - {"matrix": [7, 4], "x": 10, "y": 2.125}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2.125}, - {"matrix": [7, 1], "x": 13, "y": 2.375}, - {"matrix": [7, 0], "x": 14, "y": 2.375}, - {"matrix": [3, 0], "x": 0, "y": 3.375}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 8, "y": 2.75}, - {"matrix": [8, 5], "x": 9, "y": 3.25}, - {"matrix": [8, 4], "x": 10, "y": 3.125}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3.125}, - {"matrix": [8, 1], "x": 13, "y": 3.375}, - {"matrix": [8, 0], "x": 14, "y": 3.375}, - {"matrix": [4, 0], "x": 1.5, "y": 4.375}, - {"matrix": [4, 1], "x": 2.5, "y": 4.25}, - {"matrix": [4, 2], "x": 3.5, "y": 4.25}, - {"matrix": [4, 3], "x": 4.5, "y": 4.375}, - {"matrix": [4, 4], "x": 6, "y": 4.375, "h": 1.5}, - {"matrix": [9, 4], "x": 8, "y": 4.375, "h": 1.5}, - {"matrix": [9, 3], "x": 9.5, "y": 4.375}, - {"matrix": [9, 2], "x": 10.5, "y": 4.25}, - {"matrix": [9, 1], "x": 11.5, "y": 4.25}, - {"matrix": [9, 0], "x": 12.5, "y": 4.375} - ] - } - } -} diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c b/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c deleted file mode 100644 index c6f33d9c56..0000000000 --- a/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - BASE, // default layer - MDIA, // media keys -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | CAPS | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LCTL | LALT | LCMD | LGUI | /Enter / \Space \ | RGUI | DEL | RALT | RCTL | - * | | | | LT1 |/ / \ \ | LT1 | | | | - * `----------------------------------' '------''---------------------------' - */ - -[BASE] = LAYOUT_split_4x6_5( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LCMD, LT(MDIA,KC_LGUI), KC_ENT, KC_SPC, LT(MDIA,KC_RGUI), KC_DEL, KC_RALT, KC_RCTL -), -[MDIA] = LAYOUT_split_4x6_5( - KC_MUTE,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, - RM_TOGG,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, - RM_NEXT,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, - RM_HUEU,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, _______, _______, _______,_______,_______,_______ -) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, - [MDIA] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } -}; -#endif diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk b/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebart/sofle_choc_pro/readme.md b/keyboards/keebart/sofle_choc_pro/readme.md deleted file mode 100644 index 8f0e797be0..0000000000 --- a/keyboards/keebart/sofle_choc_pro/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Sofle Choc Pro - -![sofle_choc_pro](https://i.imgur.com/q9A2HMe.jpeg) - -A complete remake of the Sofle Choc Keyboard by Josef Adamčík. Featuring an onboard RP2040 with 128 MB flash -memory and choc-spaced keys for a more compact keyboard. - -- Keyboard Maintainer: [Keebart](https://github.com/Keebart) -- Hardware Supported: RP2040 -- Hardware Availability: [Keebart Shop](https://keebart.com/products/sofle) - -Make example for this keyboard (after setting up your build environment): - - make keebart/sofle_choc_pro:default - -Flashing example for this keyboard: - - make keebart/sofle_choc_pro: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 top left key of the left side of the keyboard while connecting the left side to the computer. Similarly, hold down the top right key of the right side of the keyboard while connecting the right side to the computer. -- **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 diff --git a/keyboards/keebformom/keyboard.json b/keyboards/keebformom/keyboard.json index bcc3a7d8b2..b1ffee0f3d 100644 --- a/keyboards/keebformom/keyboard.json +++ b/keyboards/keebformom/keyboard.json @@ -1,5 +1,6 @@ { "keyboard_name": "Keeb For Mom", + "url": "", "maintainer": "qmk", "manufacturer": "nendezkombet/sandipratama", "usb": { @@ -28,7 +29,8 @@ "rows": ["F5", "F6", "F7", "B1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebformom/keymaps/default/keymap.c b/keyboards/keebformom/keymaps/default/keymap.c index 727e429d74..f1c4b29429 100644 --- a/keyboards/keebformom/keymaps/default/keymap.c +++ b/keyboards/keebformom/keymaps/default/keymap.c @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `---------------------------------------------------------------------' */ [_THIRD] = LAYOUT_ortho_4x10( - KC_INS, KC_HOME, KC_PGUP, KC_NO, LSG(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO, + KC_INS, KC_HOME, KC_PGUP, KC_NO, SGUI(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO, KC_DEL, KC_END, KC_PGDN, KC_NO, LCTL(KC_S), LCTL(KC_C), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, LWIN(KC_E), LCTL(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, TO(0), _______, _______, _______, _______, _______, _______, KC_VOLD, _______, KC_VOLU diff --git a/keyboards/keebfront/vanguard65/config.h b/keyboards/keebfront/vanguard65/config.h deleted file mode 100644 index 71e47341d9..0000000000 --- a/keyboards/keebfront/vanguard65/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2022 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* Define MIDI */ -#define MIDI_ADVANCED -#define SLIDER_PINA D6 diff --git a/keyboards/keebfront/vanguard65/keyboard.json b/keyboards/keebfront/vanguard65/keyboard.json deleted file mode 100644 index 34d9eca4a5..0000000000 --- a/keyboards/keebfront/vanguard65/keyboard.json +++ /dev/null @@ -1,744 +0,0 @@ -{ - "manufacturer": "Keebfront", - "keyboard_name": "Vanguard65", - "maintainer": "Keebfront", - "bootloader": "atmel-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "E6", "pin_b": "D4"} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "midi": true, - "rgblight": true, - "mousekey": true, - "encoder": true - }, - "matrix_pins": { - "cols": ["F0", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "D7", "B4", "B5", "B6", "C6"], - "rows": ["F4", "F1", "F7", "F6", "F5"] - }, - "processor": "atmega32u4", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "brightness_steps": 12, - "led_count": 36 - }, - "url": "https://www.keebfront.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x1823", - "vid": "0x7074" - }, - "ws2812": { - "pin": "C7" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [2, 13], "x": 15.5, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 2.75, "y": 3}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_ansi_blocker": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_ansi_blocker_split_bs": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [2, 13], "x": 15.5, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 3, "y": 4}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [2, 13], "x": 15.5, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 3, "y": 4}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_iso_blocker": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2}, - {"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 2.75, "y": 3}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_iso_blocker_split_bs": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [2, 13], "x": 15.5, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2}, - {"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 2.75, "y": 3}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 5.25, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_iso_blocker_tsangan": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2}, - {"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 2.75, "y": 3}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 3, "y": 4}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - }, - "LAYOUT_iso_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [3, 14], "x": 0, "y": 0}, - - {"matrix": [0, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [0, 2], "x": 3.5, "y": 0}, - {"matrix": [0, 3], "x": 4.5, "y": 0}, - {"matrix": [0, 4], "x": 5.5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [2, 13], "x": 15.5, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - - {"matrix": [1, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 3, "y": 1}, - {"matrix": [1, 2], "x": 4, "y": 1}, - {"matrix": [1, 3], "x": 5, "y": 1}, - {"matrix": [1, 4], "x": 6, "y": 1}, - {"matrix": [1, 5], "x": 7, "y": 1}, - {"matrix": [1, 6], "x": 8, "y": 1}, - {"matrix": [1, 7], "x": 9, "y": 1}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1}, - {"matrix": [1, 10], "x": 12, "y": 1}, - {"matrix": [1, 11], "x": 13, "y": 1}, - {"matrix": [1, 12], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 16.75, "y": 1}, - - {"matrix": [2, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 3.25, "y": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [2, 6], "x": 8.25, "y": 2}, - {"matrix": [2, 7], "x": 9.25, "y": 2}, - {"matrix": [2, 8], "x": 10.25, "y": 2}, - {"matrix": [2, 9], "x": 11.25, "y": 2}, - {"matrix": [2, 10], "x": 12.25, "y": 2}, - {"matrix": [2, 11], "x": 13.25, "y": 2}, - {"matrix": [2, 12], "x": 14.25, "y": 2}, - {"matrix": [1, 13], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 16.75, "y": 2}, - - {"matrix": [3, 0], "x": 1.5, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 2.75, "y": 3}, - {"matrix": [3, 2], "x": 3.75, "y": 3}, - {"matrix": [3, 3], "x": 4.75, "y": 3}, - {"matrix": [3, 4], "x": 5.75, "y": 3}, - {"matrix": [3, 5], "x": 6.75, "y": 3}, - {"matrix": [3, 6], "x": 7.75, "y": 3}, - {"matrix": [3, 7], "x": 8.75, "y": 3}, - {"matrix": [3, 8], "x": 9.75, "y": 3}, - {"matrix": [3, 9], "x": 10.75, "y": 3}, - {"matrix": [3, 10], "x": 11.75, "y": 3}, - {"matrix": [3, 11], "x": 12.75, "y": 3}, - {"matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 15.5, "y": 3}, - - {"matrix": [4, 0], "x": 1.5, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 3, "y": 4}, - {"matrix": [4, 2], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 14.5, "y": 4}, - {"matrix": [4, 13], "x": 15.5, "y": 4}, - {"matrix": [4, 14], "x": 16.5, "y": 4} - ] - } - } -} diff --git a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c b/keyboards/keebfront/vanguard65/keymaps/default/keymap.c deleted file mode 100644 index 225873183e..0000000000 --- a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2022 -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "analog.h" -uint8_t last_val = 0; -extern MidiDevice midi_device; - -enum layers { - _LAYER0, - _LAYER1, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_LAYER0] = LAYOUT_all( - KC_MUTE, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_LAYER1] = LAYOUT_all( - _______, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_END, - _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, UG_SPDU, UG_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, -}; -#endif - -void slider(void) { - uint8_t current_val = analogReadPin(SLIDER_PINA) >>3; - - if ( last_val - current_val < -1 || last_val - current_val > 1 ) { - midi_send_cc(&midi_device, 0, 90, current_val ); - } - - last_val = current_val; -} - -void housekeeping_task_user(void) { - slider(); -} diff --git a/keyboards/keebfront/vanguard65/keymaps/default/rules.mk b/keyboards/keebfront/vanguard65/keymaps/default/rules.mk deleted file mode 100644 index a0aef8b6e7..0000000000 --- a/keyboards/keebfront/vanguard65/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -ENCODER_MAP_ENABLE = yes -ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/keebfront/vanguard65/readme.md b/keyboards/keebfront/vanguard65/readme.md deleted file mode 100644 index d054271bb3..0000000000 --- a/keyboards/keebfront/vanguard65/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Vanguard65 - -![Vanguard65](https://i.imgur.com/1AnyRaEh.png) - -*A 65% keyboard with knob and slider by [Keebfront](https://keebfront.com/).* - -* Keyboard Maintainer: [Keebfront](https://keebfront.com/) -* Hardware Supported: Vanguard65 -* Hardware Availability: https://www.keebfront.com/product/vanguard65 - -Make example for this keyboard (after setting up your build environment): - - make keebfront/vanguard65:default - -Flashing example for this keyboard: - - make keebfront/vanguard65: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 2 ways: - -* **Physical reset**: pressing the two reset pads on the back of the PCB with tweezers. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -## Matrix Diagram -![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg) \ No newline at end of file diff --git a/keyboards/keebfront/vanguard65/rules.mk b/keyboards/keebfront/vanguard65/rules.mk deleted file mode 100644 index 3437a35bdf..0000000000 --- a/keyboards/keebfront/vanguard65/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Processor frequency -F_CPU = 8000000 diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c index 80f296a494..8ff3f794a5 100644 --- a/keyboards/keebio/bamfk1/keymaps/default/keymap.c +++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c @@ -13,7 +13,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( - RM_NEXT, // Big Switch + RGB_MOD, // Big Switch TL_LOWR, KC_MUTE // Encoder presses ), [_FN1] = LAYOUT( diff --git a/keyboards/keebio/bamfk4/keyboard.json b/keyboards/keebio/bamfk4/keyboard.json index 08b3900766..829395d671 100644 --- a/keyboards/keebio/bamfk4/keyboard.json +++ b/keyboards/keebio/bamfk4/keyboard.json @@ -80,6 +80,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keebio/bdn9/keymaps/default/config.h b/keyboards/keebio/bdn9/keymaps/default/config.h new file mode 100644 index 0000000000..e09fba9232 --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/default/config.h @@ -0,0 +1,5 @@ +#pragma once + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/keebio/bdn9/keymaps/default/keymap.c b/keyboards/keebio/bdn9/keymaps/default/keymap.c index 4e389218f0..dae8cb6035 100644 --- a/keyboards/keebio/bdn9/keymaps/default/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [0] = LAYOUT( KC_MUTE, KC_HOME, KC_MPLY, - MO(1) , KC_UP , RM_NEXT, + MO(1) , KC_UP , RGB_MOD, KC_LEFT, KC_DOWN, KC_RGHT ), /* @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT( QK_BOOT , BL_STEP, KC_STOP, - _______, KC_HOME, RM_NEXT, + _______, KC_HOME, RGB_MOD, KC_MPRV, KC_END , KC_MNXT ), }; diff --git a/keyboards/keebio/bdn9/keymaps/test/keymap.c b/keyboards/keebio/bdn9/keymaps/test/keymap.c index 67eecf967f..ecf7338a57 100644 --- a/keyboards/keebio/bdn9/keymaps/test/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/test/keymap.c @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, - KC_G, KC_H, RM_NEXT + KC_G, KC_H, RGB_MOD ), }; diff --git a/keyboards/keebio/bdn9/rev1/keyboard.json b/keyboards/keebio/bdn9/rev1/keyboard.json index 5c677db78d..1deecf0d5b 100644 --- a/keyboards/keebio/bdn9/rev1/keyboard.json +++ b/keyboards/keebio/bdn9/rev1/keyboard.json @@ -36,7 +36,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebio/bdn9/rev3/config.h b/keyboards/keebio/bdn9/rev3/config.h deleted file mode 100644 index 3afa37bce1..0000000000 --- a/keyboards/keebio/bdn9/rev3/config.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD15 -# define WS2812_PWM_CHANNEL 2 -# define WS2812_PWM_PAL_MODE 1 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP -#endif diff --git a/keyboards/keebio/bdn9/rev3/halconf.h b/keyboards/keebio/bdn9/rev3/halconf.h deleted file mode 100644 index 969d6e5512..0000000000 --- a/keyboards/keebio/bdn9/rev3/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2025 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/bdn9/rev3/keyboard.json b/keyboards/keebio/bdn9/rev3/keyboard.json deleted file mode 100644 index e180c04e2a..0000000000 --- a/keyboards/keebio/bdn9/rev3/keyboard.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "keyboard_name": "BDN9 Rev. 3", - "bootloader": "stm32-dfu", - "encoder": { - "rotary": [ - {"pin_a": "A8", "pin_b": "A4"}, - {"pin_a": "B3", "pin_b": "A15"}, - {"pin_a": "A10", "pin_b": "A9"} - ] - }, - "features": { - "bootmagic": true, - "command": true, - "console": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "matrix_pins": { - "direct": [ - ["B12", "B5", "B6"], - ["B14", "B4", "B7"], - ["A3", "F1", "F0"] - ] - }, - "processor": "STM32G431", - "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 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, - {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, - {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4}, - {"x": 56, "y": 64, "flags": 2}, - {"x": 168, "y": 64, "flags": 2} - ] - }, - "usb": { - "device_version": "3.0.0", - "pid": "0x3133" - }, - "ws2812": { - "driver": "pwm", - "pin": "B15" - } -} diff --git a/keyboards/keebio/bdn9/rev3/mcuconf.h b/keyboards/keebio/bdn9/rev3/mcuconf.h deleted file mode 100644 index 0b109bf791..0000000000 --- a/keyboards/keebio/bdn9/rev3/mcuconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable TIM15, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM15 -#define STM32_PWM_USE_TIM15 TRUE diff --git a/keyboards/keebio/bdn9/rev3/rev3.c b/keyboards/keebio/bdn9/rev3/rev3.c deleted file mode 100644 index f15abf9d85..0000000000 --- a/keyboards/keebio/bdn9/rev3/rev3.c +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2025 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - else if (index == 1) { - if (clockwise) { - tap_code(KC_DOWN); - } else { - tap_code(KC_UP); - } - } - else if (index == 2) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} diff --git a/keyboards/keebio/bdn9/rules.mk b/keyboards/keebio/bdn9/rules.mk new file mode 100644 index 0000000000..431a8ad027 --- /dev/null +++ b/keyboards/keebio/bdn9/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/bdn9/rev1 diff --git a/keyboards/keebio/bfo9000/keyboard.json b/keyboards/keebio/bfo9000/keyboard.json index 159334cc07..2dcc6076a0 100644 --- a/keyboards/keebio/bfo9000/keyboard.json +++ b/keyboards/keebio/bfo9000/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -39,7 +40,8 @@ "ws2812": { "pin": "B4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/bigswitchseat/keyboard.json b/keyboards/keebio/bigswitchseat/keyboard.json index d6cf6b3799..3d6ce65bde 100644 --- a/keyboards/keebio/bigswitchseat/keyboard.json +++ b/keyboards/keebio/bigswitchseat/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keebio/cepstrum/info.json b/keyboards/keebio/cepstrum/info.json index cb41e89ff6..250b886d8b 100644 --- a/keyboards/keebio/cepstrum/info.json +++ b/keyboards/keebio/cepstrum/info.json @@ -7,6 +7,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebio/cepstrum/keymaps/default/keymap.c b/keyboards/keebio/cepstrum/keymaps/default/keymap.c index 5bbd5a79ec..e8fc2e29c9 100644 --- a/keyboards/keebio/cepstrum/keymaps/default/keymap.c +++ b/keyboards/keebio/cepstrum/keymaps/default/keymap.c @@ -12,9 +12,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65xt( - RM_HUEU, RM_HUED, 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, _______, _______, - RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, KC_UP, _______, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - RM_VALU, RM_VALD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_HUI, RGB_HUD, 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, _______, _______, + RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, KC_UP, _______, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + RGB_VAI, RGB_VAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/keebio/chiri_ce/keymaps/default/keymap.json b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json index 2ad48e577d..18c9e441e0 100644 --- a/keyboards/keebio/chiri_ce/keymaps/default/keymap.json +++ b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json @@ -13,13 +13,13 @@ [ "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC", "KC_ESC" , "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", - "RM_NEXT", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "RGB_MOD", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" ], [ - "RM_TOGG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", - "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_BSLS", - "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RM_HUED", "RM_SATD", "RM_VALD", "_______", + "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ], [ diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json index 9cf7f51654..f118a4dd1e 100644 --- a/keyboards/keebio/chiri_ce/rev1/keyboard.json +++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json @@ -128,9 +128,7 @@ "driver": "vendor" }, "transport": { - "sync": { - "matrix_state": true - } + "sync_matrix_state": true } }, "usb": { diff --git a/keyboards/keebio/chocopad/keymaps/default/keymap.c b/keyboards/keebio/chocopad/keymaps/default/keymap.c index 17347a1af1..8c83d72cfe 100644 --- a/keyboards/keebio/chocopad/keymaps/default/keymap.c +++ b/keyboards/keebio/chocopad/keymaps/default/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_P0, KC_P0, KC_DOT ), [_FN2] = LAYOUT_ortho_4x4( - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, QK_BOOT, BL_STEP, _______, _______, _______ ) diff --git a/keyboards/keebio/convolution/info.json b/keyboards/keebio/convolution/info.json index 5ab3a0226c..9ea761c1a9 100644 --- a/keyboards/keebio/convolution/info.json +++ b/keyboards/keebio/convolution/info.json @@ -6,6 +6,7 @@ "vid": "0xCB10" }, "features": { + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keebio/convolution/keymaps/default/keymap.c b/keyboards/keebio/convolution/keymaps/default/keymap.c index b350d2bda2..e9e8d88344 100644 --- a/keyboards/keebio/convolution/keymaps/default/keymap.c +++ b/keyboards/keebio/convolution/keymaps/default/keymap.c @@ -22,9 +22,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65xt( - RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -34,6 +34,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [1] = { ENCODER_CCW_CW(RM_NEXT, RM_PREV), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [1] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, }; #endif diff --git a/keyboards/keebio/convolution/rules.mk b/keyboards/keebio/convolution/rules.mk new file mode 100644 index 0000000000..9df8bd1c47 --- /dev/null +++ b/keyboards/keebio/convolution/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/convolution/rev1 diff --git a/keyboards/keebio/dilly/keyboard.json b/keyboards/keebio/dilly/keyboard.json index 0f7bce7d3f..83bf1eac9d 100644 --- a/keyboards/keebio/dilly/keyboard.json +++ b/keyboards/keebio/dilly/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dilly", "manufacturer": "Keebio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCB10", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -49,7 +52,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_3x10"], "layouts": { "LAYOUT_ortho_3x10": { diff --git a/keyboards/keebio/dsp40/rules.mk b/keyboards/keebio/dsp40/rules.mk new file mode 100644 index 0000000000..3e8e9be18c --- /dev/null +++ b/keyboards/keebio/dsp40/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/dsp40/rev1 diff --git a/keyboards/keebio/ergodicity/keyboard.json b/keyboards/keebio/ergodicity/keyboard.json index 6f755ba45c..f1b1649f8a 100644 --- a/keyboards/keebio/ergodicity/keyboard.json +++ b/keyboards/keebio/ergodicity/keyboard.json @@ -11,6 +11,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md index 61f4ee658c..0f841d6e3e 100644 --- a/keyboards/keebio/ergodicity/readme.md +++ b/keyboards/keebio/ergodicity/readme.md @@ -1,5 +1,9 @@ # Ergodicity +![ergodicity](imgur.com image replace me!) + +A short description of the keyboard/project + Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) Hardware Supported: Ergodicity PCB w/ATmega32u4 Hardware Availability: [Keebio](https://keeb.io) diff --git a/keyboards/keebio/foldkb/info.json b/keyboards/keebio/foldkb/info.json deleted file mode 100644 index 669038aff1..0000000000 --- a/keyboards/keebio/foldkb/info.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "manufacturer": "Keebio", - "url": "https://keeb.io", - "maintainer": "Keebio", - "usb": { - "vid": "0xCB10" - } -} diff --git a/keyboards/keebio/foldkb/keymaps/default/keymap.c b/keyboards/keebio/foldkb/keymaps/default/keymap.c new file mode 100644 index 0000000000..0c099df625 --- /dev/null +++ b/keyboards/keebio/foldkb/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_END, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT( + KC_MUTE, QK_BOOT, _______, UG_HUED, UG_HUEU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + BL_STEP, _______, UG_SATD, UG_SATU, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, + UG_NEXT, _______, UG_VALD, UG_VALU, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, + KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, + KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/keebio/foldkb/rev1/keyboard.json b/keyboards/keebio/foldkb/rev1/keyboard.json index 28594a783b..70808c2662 100644 --- a/keyboards/keebio/foldkb/rev1/keyboard.json +++ b/keyboards/keebio/foldkb/rev1/keyboard.json @@ -1,6 +1,10 @@ { "keyboard_name": "FoldKB Rev. 1", + "manufacturer": "Keebio", + "url": "https://keeb.io", + "maintainer": "nooges", "usb": { + "vid": "0xCB10", "pid": "0x1358", "device_version": "1.0.0" }, diff --git a/keyboards/keebio/foldkb/rev1/keymaps/default/keymap.c b/keyboards/keebio/foldkb/rev1/keymaps/default/keymap.c deleted file mode 100644 index ae21a1267f..0000000000 --- a/keyboards/keebio/foldkb/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MUTE, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_END, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL - ), - [1] = LAYOUT( - KC_MUTE, QK_BOOT, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_DEL, - BL_STEP, _______, UG_SATD, UG_SATU, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, - UG_NEXT, _______, UG_VALD, UG_VALU, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, - KC_VOLU, _______, UG_HUED, UG_HUEU, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, - KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/keebio/foldkb/rev2/config.h b/keyboards/keebio/foldkb/rev2/config.h deleted file mode 100644 index 06498b8b8b..0000000000 --- a/keyboards/keebio/foldkb/rev2/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the split keyboard setup */ -#define SERIAL_USART_DRIVER SD1 // USART 1 -#define SERIAL_USART_TX_PIN A9 -#define SERIAL_USART_RX_PIN A10 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_PIN_SWAP - -#define USB_VBUS_PIN A7 - -/* Defines for the RGB matrix */ -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_DMA_CHANNEL 2 -#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/foldkb/rev2/halconf.h b/keyboards/keebio/foldkb/rev2/halconf.h deleted file mode 100644 index ce1dfd06d7..0000000000 --- a/keyboards/keebio/foldkb/rev2/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/foldkb/rev2/keyboard.json b/keyboards/keebio/foldkb/rev2/keyboard.json deleted file mode 100644 index 19dd601c86..0000000000 --- a/keyboards/keebio/foldkb/rev2/keyboard.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "keyboard_name": "FoldKB Rev. 2", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A4", "pin_b": "A3"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["A6", "A15", "B3", "B4", "B5", "B6", "B7", "F0"], - "rows": ["A5", "A0", "A1", "A2", "F1"] - }, - "processor": "STM32G431", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "starlight_smooth": true, - "typing_heatmap": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 72, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 100, "y": 0, "flags": 4}, - {"matrix": [1, 7], "x": 100, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 86, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 72, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 59, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 28, "y": 16, "flags": 4}, - {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 59, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4}, - {"matrix": [3, 7], "x": 100, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 86, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 72, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 22, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 40, "y": 64, "flags": 4}, - {"matrix": [4, 4], "x": 57, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 72, "y": 64, "flags": 4}, - {"matrix": [4, 6], "x": 86, "y": 64, "flags": 4}, - {"matrix": [4, 7], "x": 100, "y": 64, "flags": 4}, - {"matrix": [5, 7], "x": 221, "y": 0, "flags": 4}, - {"matrix": [5, 6], "x": 207, "y": 0, "flags": 4}, - {"matrix": [5, 5], "x": 193, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 179, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 165, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 152, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 138, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 124, "y": 0, "flags": 4}, - {"matrix": [6, 0], "x": 124, "y": 16, "flags": 4}, - {"matrix": [6, 1], "x": 138, "y": 16, "flags": 4}, - {"matrix": [6, 2], "x": 152, "y": 16, "flags": 4}, - {"matrix": [6, 3], "x": 165, "y": 16, "flags": 4}, - {"matrix": [6, 4], "x": 179, "y": 16, "flags": 4}, - {"matrix": [6, 5], "x": 193, "y": 16, "flags": 4}, - {"matrix": [6, 6], "x": 207, "y": 16, "flags": 4}, - {"matrix": [6, 7], "x": 224, "y": 16, "flags": 4}, - {"matrix": [7, 7], "x": 215, "y": 32, "flags": 4}, - {"matrix": [7, 5], "x": 193, "y": 32, "flags": 4}, - {"matrix": [7, 4], "x": 179, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 165, "y": 32, "flags": 4}, - {"matrix": [7, 2], "x": 152, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 138, "y": 32, "flags": 4}, - {"matrix": [7, 0], "x": 124, "y": 32, "flags": 4}, - {"matrix": [8, 0], "x": 124, "y": 48, "flags": 4}, - {"matrix": [8, 1], "x": 138, "y": 48, "flags": 4}, - {"matrix": [8, 2], "x": 152, "y": 48, "flags": 4}, - {"matrix": [8, 3], "x": 165, "y": 48, "flags": 4}, - {"matrix": [8, 4], "x": 179, "y": 48, "flags": 4}, - {"matrix": [8, 5], "x": 198, "y": 48, "flags": 4}, - {"matrix": [8, 7], "x": 217, "y": 48, "flags": 4}, - {"matrix": [9, 7], "x": 215, "y": 64, "flags": 4}, - {"matrix": [9, 5], "x": 198, "y": 64, "flags": 4}, - {"matrix": [9, 4], "x": 181, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 164, "y": 64, "flags": 4}, - {"matrix": [9, 1], "x": 145, "y": 64, "flags": 4}, - {"matrix": [9, 0], "x": 136, "y": 64, "flags": 4}, - {"matrix": [9, 0], "x": 126, "y": 64, "flags": 4} - ], - "max_brightness": 120, - "sleep": true, - "split_count": [36, 37] - }, - "split": { - "bootmagic": { - "matrix": [5, 8] - }, - "enabled": true, - "handedness": { - "pin": "A8" - }, - "matrix_pins": { - "right": { - "cols": ["A6", "A5", "A4", "A3", "A2", "B5", "B6", "B7"], - "rows": ["A15", "B3", "B4", "A0", "A1"] - } - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "device_version": "2.0.0", - "pid": "0x2358" - }, - "ws2812": { - "driver": "pwm", - "pin": "B0" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [5, 0], "x": 9, "y": 0}, - {"matrix": [5, 1], "x": 10, "y": 0}, - {"matrix": [5, 2], "x": 11, "y": 0}, - {"matrix": [5, 3], "x": 12, "y": 0}, - {"matrix": [5, 4], "x": 13, "y": 0}, - {"matrix": [5, 5], "x": 14, "y": 0}, - {"matrix": [5, 6], "x": 15, "y": 0}, - {"matrix": [5, 7], "x": 16, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 2], "x": 1.75, "y": 1, "w": 1.5}, - {"matrix": [1, 3], "x": 3.25, "y": 1}, - {"matrix": [1, 4], "x": 4.25, "y": 1}, - {"matrix": [1, 5], "x": 5.25, "y": 1}, - {"matrix": [1, 6], "x": 6.25, "y": 1}, - {"matrix": [1, 7], "x": 7.25, "y": 1}, - {"matrix": [6, 0], "x": 9, "y": 1}, - {"matrix": [6, 1], "x": 10, "y": 1}, - {"matrix": [6, 2], "x": 11, "y": 1}, - {"matrix": [6, 3], "x": 12, "y": 1}, - {"matrix": [6, 4], "x": 13, "y": 1}, - {"matrix": [6, 5], "x": 14, "y": 1}, - {"matrix": [6, 6], "x": 15, "y": 1}, - {"matrix": [6, 7], "x": 16, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 2], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [7, 0], "x": 9, "y": 2}, - {"matrix": [7, 1], "x": 10, "y": 2}, - {"matrix": [7, 2], "x": 11, "y": 2}, - {"matrix": [7, 3], "x": 12, "y": 2}, - {"matrix": [7, 4], "x": 13, "y": 2}, - {"matrix": [7, 5], "x": 14, "y": 2}, - {"matrix": [7, 7], "x": 15, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 2], "x": 1, "y": 3, "w": 2.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [8, 0], "x": 9, "y": 3}, - {"matrix": [8, 1], "x": 10, "y": 3}, - {"matrix": [8, 2], "x": 11, "y": 3}, - {"matrix": [8, 3], "x": 12, "y": 3}, - {"matrix": [8, 4], "x": 13, "y": 3}, - {"matrix": [8, 5], "x": 14, "y": 3, "w": 1.75}, - {"matrix": [8, 7], "x": 15.75, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 1.25}, - {"matrix": [4, 4], "x": 4, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [9, 0], "x": 9, "y": 4, "w": 1.25}, - {"matrix": [9, 1], "x": 10.25, "y": 4, "w": 1.5}, - {"matrix": [9, 3], "x": 11.75, "y": 4, "w": 1.25}, - {"matrix": [9, 4], "x": 13, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 14.25, "y": 4, "w": 1.25}, - {"matrix": [9, 7], "x": 15.5, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/keebio/foldkb/rev2/keymaps/default/keymap.c b/keyboards/keebio/foldkb/rev2/keymaps/default/keymap.c deleted file mode 100644 index bf3f325446..0000000000 --- a/keyboards/keebio/foldkb/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MUTE, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_END, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL - ), - [1] = LAYOUT( - KC_MUTE, QK_BOOT, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_DEL, - RM_TOGG, _______, RM_SATD, RM_SATU, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, - RM_NEXT, _______, RM_VALD, RM_VALU, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, - KC_VOLU, _______, RM_HUED, RM_HUEU, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, - KC_VOLD, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/keebio/foldkb/rev2/mcuconf.h b/keyboards/keebio/foldkb/rev2/mcuconf.h deleted file mode 100644 index 77847f5b2c..0000000000 --- a/keyboards/keebio/foldkb/rev2/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART1, used for split comms */ -#undef STM32_SERIAL_USE_USART1 -#define STM32_SERIAL_USE_USART1 TRUE - -/* enable TIM3, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/foldkb/rev2/rev2.c b/keyboards/keebio/foldkb/rev2/rev2.c deleted file mode 100644 index 0fc47b1483..0000000000 --- a/keyboards/keebio/foldkb/rev2/rev2.c +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} diff --git a/keyboards/keebio/foldkb/rules.mk b/keyboards/keebio/foldkb/rules.mk new file mode 100644 index 0000000000..6a0522a902 --- /dev/null +++ b/keyboards/keebio/foldkb/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/foldkb/rev1 diff --git a/keyboards/keebio/fourier/keyboard.json b/keyboards/keebio/fourier/keyboard.json index 74620068a2..057598a259 100644 --- a/keyboards/keebio/fourier/keyboard.json +++ b/keyboards/keebio/fourier/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -61,7 +62,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/keymaps/default/keymap.json b/keyboards/keebio/iris/keymaps/default/keymap.json index 779c59d834..623c532a30 100644 --- a/keyboards/keebio/iris/keymaps/default/keymap.json +++ b/keyboards/keebio/iris/keymaps/default/keymap.json @@ -15,14 +15,14 @@ "KC_TILD", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_PGUP", "KC_GRV" , "_______", "KC_UP" , "_______", "QK_BOOT", "_______", "_______", "KC_P7" , "KC_P8" , "KC_P9" , "KC_P0" , "KC_PGDN", "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", - "RM_NEXT", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" ], [ "KC_F12" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , - "RM_TOGG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", - "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_BSLS", - "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RM_HUED", "RM_SATD", "RM_VALD", "EE_CLR" , + "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "EE_CLR" , "_______", "_______", "_______", "_______", "_______", "_______" ] ] diff --git a/keyboards/keebio/iris/rev1/keyboard.json b/keyboards/keebio/iris/rev1/keyboard.json index 74dc366413..f9c1573a15 100644 --- a/keyboards/keebio/iris/rev1/keyboard.json +++ b/keyboards/keebio/iris/rev1/keyboard.json @@ -7,6 +7,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, @@ -53,7 +54,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/rev1_led/keyboard.json b/keyboards/keebio/iris/rev1_led/keyboard.json index 4dc003f271..69f14d8494 100644 --- a/keyboards/keebio/iris/rev1_led/keyboard.json +++ b/keyboards/keebio/iris/rev1_led/keyboard.json @@ -7,6 +7,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, @@ -52,7 +53,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/rev2/keyboard.json b/keyboards/keebio/iris/rev2/keyboard.json index 9ea21851ee..37a4764c6b 100644 --- a/keyboards/keebio/iris/rev2/keyboard.json +++ b/keyboards/keebio/iris/rev2/keyboard.json @@ -38,7 +38,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebio/iris/rev5/keyboard.json b/keyboards/keebio/iris/rev5/keyboard.json index 9c7f04c786..043ecdb95e 100644 --- a/keyboards/keebio/iris/rev5/keyboard.json +++ b/keyboards/keebio/iris/rev5/keyboard.json @@ -7,6 +7,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keebio/iris_ce/keymaps/default/keymap.c b/keyboards/keebio/iris_ce/keymaps/default/keymap.c index 7a0625a36a..d5021d647d 100644 --- a/keyboards/keebio/iris_ce/keymaps/default/keymap.c +++ b/keyboards/keebio/iris_ce/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - RM_NEXT, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, KC_DEL, KC_DEL, _______, KC_P0 // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -43,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RM_TOGG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, + RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RM_NEXT, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RM_HUEU, RM_SATU, RM_VALU, KC_BSLS, + RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RM_HUED, RM_SATD, RM_VALD, EE_CLR, + KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, EE_CLR, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ diff --git a/keyboards/keebio/iris_ce/rev1/keyboard.json b/keyboards/keebio/iris_ce/rev1/keyboard.json index 5276d626b1..c5cab98778 100644 --- a/keyboards/keebio/iris_ce/rev1/keyboard.json +++ b/keyboards/keebio/iris_ce/rev1/keyboard.json @@ -148,9 +148,7 @@ "driver": "vendor" }, "transport": { - "sync":{ - "matrix_state": true - } + "sync_matrix_state": true } }, "usb": { diff --git a/keyboards/keebio/iris_lm/g1/config.h b/keyboards/keebio/iris_lm/g1/config.h deleted file mode 100644 index 952033edf1..0000000000 --- a/keyboards/keebio/iris_lm/g1/config.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the split keyboard setup */ -#define SERIAL_USART_DRIVER SD3 // USART 3 -#define SERIAL_USART_TX_PIN B10 -#define SERIAL_USART_RX_PIN B11 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_PIN_SWAP - -#define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 - -/* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif diff --git a/keyboards/keebio/iris_lm/g1/g1.c b/keyboards/keebio/iris_lm/g1/g1.c deleted file mode 100644 index 7843a900a3..0000000000 --- a/keyboards/keebio/iris_lm/g1/g1.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} diff --git a/keyboards/keebio/iris_lm/g1/halconf.h b/keyboards/keebio/iris_lm/g1/halconf.h deleted file mode 100644 index 45321a55bc..0000000000 --- a/keyboards/keebio/iris_lm/g1/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/iris_lm/g1/keyboard.json b/keyboards/keebio/iris_lm/g1/keyboard.json deleted file mode 100644 index 6aca0c9bac..0000000000 --- a/keyboards/keebio/iris_lm/g1/keyboard.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "keyboard_name": "Iris LM-G Rev. 1", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "encoder": { - "rotary": [ - {"pin_a": "A15", "pin_b": "C10"}, - {"pin_a": "B13", "pin_b": "B12"} - ] - }, - "ws2812": { - "driver": "pwm", - "pin": "B7" - }, - "matrix_pins": { - "cols": ["C4", "B2", "A5", "C11", "C13", "C14"], - "rows": ["A4", "A3", "B14", "B5", "F1"] - }, - "split": { - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "A5", "pin_b": "A6"}, - {"pin_a": "A15", "pin_b": "C10"} - ] - } - }, - "matrix_pins": { - "right": { - "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], - "rows": ["C4", "A7", "B14", "B5", "F1"] - } - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync" :{ - "matrix_state": true - } - } - }, - "processor": "STM32G431", - "usb": { - "device_version": "1.0.0", - "pid": "0x1656" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - - {"matrix": [5, 5], "x": 9, "y": 0.25}, - {"matrix": [5, 4], "x": 10, "y": 0.125}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0.125}, - {"matrix": [5, 1], "x": 13, "y": 0.375}, - {"matrix": [5, 0], "x": 14, "y": 0.375}, - - {"matrix": [1, 0], "x": 0, "y": 1.375}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - - {"matrix": [6, 5], "x": 9, "y": 1.25}, - {"matrix": [6, 4], "x": 10, "y": 1.125}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1.125}, - {"matrix": [6, 1], "x": 13, "y": 1.375}, - {"matrix": [6, 0], "x": 14, "y": 1.375}, - - {"matrix": [2, 0], "x": 0, "y": 2.375}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - - {"matrix": [7, 5], "x": 9, "y": 2.25}, - {"matrix": [7, 4], "x": 10, "y": 2.125}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2.125}, - {"matrix": [7, 1], "x": 13, "y": 2.375}, - {"matrix": [7, 0], "x": 14, "y": 2.375}, - - {"matrix": [3, 0], "x": 0, "y": 3.375}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6.15, "y": 3.75}, - - {"matrix": [9, 5], "x": 7.85, "y": 3.75}, - {"matrix": [8, 5], "x": 9, "y": 3.25}, - {"matrix": [8, 4], "x": 10, "y": 3.125}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3.125}, - {"matrix": [8, 1], "x": 13, "y": 3.375}, - {"matrix": [8, 0], "x": 14, "y": 3.375}, - - {"matrix": [4, 2], "x": 3.5, "y": 4.25}, - {"matrix": [4, 3], "x": 4.5, "y": 4.375}, - {"matrix": [4, 4], "x": 5.6, "y": 4.75}, - - {"matrix": [9, 4], "x": 8.4, "y": 4.75}, - {"matrix": [9, 3], "x": 9.5, "y": 4.375}, - {"matrix": [9, 2], "x": 10.5, "y": 4.25} - ] - } - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "split_count": [34, 34], - "max_brightness": 120, - "layout": [ - {"matrix": [0,0], "flags":4, "x":0, "y":5}, - {"flags":2, "x":8, "y":5}, - {"matrix": [0,1], "flags":4, "x":16, "y":5}, - {"matrix": [0,2], "flags":4, "x":32, "y":2}, - {"flags":2, "x":40, "y":1}, - {"matrix": [0,3], "flags":4, "x":48, "y":0}, - {"matrix": [0,4], "flags":4, "x":64, "y":5}, - {"flags":2, "x":72, "y":3}, - {"matrix": [0,5], "flags":4, "x":80, "y":3}, - - {"matrix": [1,5], "flags":4, "x":80, "y":17}, - {"matrix": [1,4], "flags":4, "x":64, "y":15}, - {"matrix": [1,3], "flags":4, "x":48, "y":13}, - {"matrix": [1,2], "flags":4, "x":32, "y":15}, - {"matrix": [1,1], "flags":4, "x":16, "y":18}, - {"matrix": [1,0], "flags":4, "x":0, "y":18}, - - {"matrix": [2,0], "flags":4, "x":0, "y":32}, - {"matrix": [2,1], "flags":4, "x":16, "y":32}, - {"matrix": [2,2], "flags":4, "x":32, "y":28}, - {"matrix": [2,3], "flags":4, "x":48, "y":27}, - {"matrix": [2,4], "flags":4, "x":64, "y":28}, - {"matrix": [2,5], "flags":4, "x":80, "y":30}, - - {"matrix": [3,5], "flags":4, "x":80, "y":43}, - {"matrix": [3,4], "flags":4, "x":64, "y":42}, - {"matrix": [3,3], "flags":4, "x":48, "y":40}, - {"flags":2, "x":40, "y":50}, - {"matrix": [3,2], "flags":4, "x":32, "y":42}, - {"matrix": [3,1], "flags":4, "x":16, "y":45}, - {"flags":2, "x":8, "y":43}, - {"matrix": [3,0], "flags":4, "x":0, "y":45}, - - {"matrix": [4,5], "flags":4, "x":98, "y":52}, - {"matrix": [4,4], "flags":4, "x":90, "y":64}, - {"flags":2, "x":80, "y":58}, - {"matrix": [4,3], "flags":4, "x":72, "y":58}, - {"matrix": [4,2], "flags":4, "x":56, "y":47}, - - {"matrix": [5,0], "flags":4, "x":224, "y":5}, - {"flags":2, "x":216, "y":5}, - {"matrix": [5,1], "flags":4, "x":208, "y":5}, - {"matrix": [5,2], "flags":4, "x":192, "y":2}, - {"flags":2, "x":184, "y":1}, - {"matrix": [5,3], "flags":4, "x":176, "y":0}, - {"matrix": [5,4], "flags":4, "x":160, "y":5}, - {"flags":2, "x":152, "y":3}, - {"matrix": [5,5], "flags":4, "x":144, "y":3}, - - {"matrix": [6,5], "flags":4, "x":144, "y":17}, - {"matrix": [6,4], "flags":4, "x":160, "y":15}, - {"matrix": [6,3], "flags":4, "x":176, "y":13}, - {"matrix": [6,2], "flags":4, "x":192, "y":15}, - {"matrix": [6,1], "flags":4, "x":208, "y":18}, - {"matrix": [6,0], "flags":4, "x":224, "y":18}, - - {"matrix": [7,0], "flags":4, "x":224, "y":32}, - {"matrix": [7,1], "flags":4, "x":208, "y":32}, - {"matrix": [7,2], "flags":4, "x":192, "y":28}, - {"matrix": [7,3], "flags":4, "x":176, "y":27}, - {"matrix": [7,4], "flags":4, "x":160, "y":28}, - {"matrix": [7,5], "flags":4, "x":144, "y":30}, - - {"matrix": [8,5], "flags":4, "x":144, "y":43}, - {"matrix": [8,4], "flags":4, "x":160, "y":42}, - {"matrix": [8,3], "flags":4, "x":176, "y":40}, - {"flags":2, "x":184, "y":50}, - {"matrix": [8,2], "flags":4, "x":192, "y":42}, - {"matrix": [8,1], "flags":4, "x":208, "y":45}, - {"flags":2, "x":216, "y":43}, - {"matrix": [8,0], "flags":4, "x":224, "y":45}, - - {"matrix": [9,2], "flags":4, "x":168, "y":47}, - {"matrix": [9,3], "flags":4, "x":152, "y":58}, - {"flags":2, "x":144, "y":58}, - {"matrix": [9,4], "flags":4, "x":134, "y":64}, - {"matrix": [9,5], "flags":4, "x":126, "y":52} - ], - "sleep": true - } -} diff --git a/keyboards/keebio/iris_lm/g1/mcuconf.h b/keyboards/keebio/iris_lm/g1/mcuconf.h deleted file mode 100644 index e1a054267d..0000000000 --- a/keyboards/keebio/iris_lm/g1/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART3, used for split comms */ -#undef STM32_SERIAL_USE_USART3 -#define STM32_SERIAL_USE_USART3 TRUE - -/* enable TIM3, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/iris_lm/g1/readme.md b/keyboards/keebio/iris_lm/g1/readme.md deleted file mode 100644 index 1483e68ff6..0000000000 --- a/keyboards/keebio/iris_lm/g1/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Iris LM-G - -A split ergo 4x6 keyboard with 4 thumb keys made and sold by Keebio that supports Gateron KS-33 low-profile switches. [More info at Keebio](https://keeb.io). - -* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -* Hardware Supported: Iris LM-G PCBs -* Hardware Availability: [Keebio](https://keeb.io) - -Make example for this keyboard (after setting up your build environment): - - make keebio/iris_lm/g1:default - -Example of flashing this keyboard: - - make keebio/iris_lm/g1: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 the top left and plug in the keyboard -* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/iris_lm/info.json b/keyboards/keebio/iris_lm/info.json deleted file mode 100644 index 64fa5a05ca..0000000000 --- a/keyboards/keebio/iris_lm/info.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "manufacturer": "Keebio", - "maintainer": "Keebio", - "url": "https://keeb.io", - "usb": { - "vid": "0xCB10" - } -} diff --git a/keyboards/keebio/iris_lm/k1/config.h b/keyboards/keebio/iris_lm/k1/config.h deleted file mode 100644 index 952033edf1..0000000000 --- a/keyboards/keebio/iris_lm/k1/config.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the split keyboard setup */ -#define SERIAL_USART_DRIVER SD3 // USART 3 -#define SERIAL_USART_TX_PIN B10 -#define SERIAL_USART_RX_PIN B11 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_PIN_SWAP - -#define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 - -/* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif diff --git a/keyboards/keebio/iris_lm/k1/halconf.h b/keyboards/keebio/iris_lm/k1/halconf.h deleted file mode 100644 index 45321a55bc..0000000000 --- a/keyboards/keebio/iris_lm/k1/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/iris_lm/k1/k1.c b/keyboards/keebio/iris_lm/k1/k1.c deleted file mode 100644 index 7843a900a3..0000000000 --- a/keyboards/keebio/iris_lm/k1/k1.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} diff --git a/keyboards/keebio/iris_lm/k1/keyboard.json b/keyboards/keebio/iris_lm/k1/keyboard.json deleted file mode 100644 index e5b0d5c655..0000000000 --- a/keyboards/keebio/iris_lm/k1/keyboard.json +++ /dev/null @@ -1,242 +0,0 @@ -{ - "keyboard_name": "Iris LM-K Rev. 1", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "ws2812": { - "driver": "pwm", - "pin": "B7" - }, - "matrix_pins": { - "cols": ["A6", "A5", "B2", "B13", "B12", "C11"], - "rows": ["B1", "B0", "B14", "A15", "F1"] - }, - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], - "rows": ["C4", "A7", "A6", "B5", "F1"] - } - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync" :{ - "matrix_state": true - } - } - }, - "processor": "STM32G431", - "usb": { - "device_version": "1.0.0", - "pid": "0x1756" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - - {"matrix": [5, 5], "x": 9, "y": 0.25}, - {"matrix": [5, 4], "x": 10, "y": 0.125}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0.125}, - {"matrix": [5, 1], "x": 13, "y": 0.375}, - {"matrix": [5, 0], "x": 14, "y": 0.375}, - - {"matrix": [1, 0], "x": 0, "y": 1.375}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - - {"matrix": [6, 5], "x": 9, "y": 1.25}, - {"matrix": [6, 4], "x": 10, "y": 1.125}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1.125}, - {"matrix": [6, 1], "x": 13, "y": 1.375}, - {"matrix": [6, 0], "x": 14, "y": 1.375}, - - {"matrix": [2, 0], "x": 0, "y": 2.375}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - - {"matrix": [7, 5], "x": 9, "y": 2.25}, - {"matrix": [7, 4], "x": 10, "y": 2.125}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2.125}, - {"matrix": [7, 1], "x": 13, "y": 2.375}, - {"matrix": [7, 0], "x": 14, "y": 2.375}, - - {"matrix": [3, 0], "x": 0, "y": 3.375}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6.15, "y": 3.75}, - - {"matrix": [9, 5], "x": 7.85, "y": 3.75}, - {"matrix": [8, 5], "x": 9, "y": 3.25}, - {"matrix": [8, 4], "x": 10, "y": 3.125}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3.125}, - {"matrix": [8, 1], "x": 13, "y": 3.375}, - {"matrix": [8, 0], "x": 14, "y": 3.375}, - - {"matrix": [4, 2], "x": 3.5, "y": 4.25}, - {"matrix": [4, 3], "x": 4.5, "y": 4.375}, - {"matrix": [4, 4], "x": 5.6, "y": 4.75}, - - {"matrix": [9, 4], "x": 8.4, "y": 4.75}, - {"matrix": [9, 3], "x": 9.5, "y": 4.375}, - {"matrix": [9, 2], "x": 10.5, "y": 4.25} - ] - } - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "split_count": [34, 34], - "max_brightness": 120, - "layout": [ - {"matrix": [0,0], "flags":4, "x":0, "y":5}, - {"flags":2, "x":8, "y":5}, - {"matrix": [0,1], "flags":4, "x":16, "y":5}, - {"matrix": [0,2], "flags":4, "x":32, "y":2}, - {"flags":2, "x":40, "y":1}, - {"matrix": [0,3], "flags":4, "x":48, "y":0}, - {"matrix": [0,4], "flags":4, "x":64, "y":5}, - {"flags":2, "x":72, "y":3}, - {"matrix": [0,5], "flags":4, "x":80, "y":3}, - - {"matrix": [1,5], "flags":4, "x":80, "y":17}, - {"matrix": [1,4], "flags":4, "x":64, "y":15}, - {"matrix": [1,3], "flags":4, "x":48, "y":13}, - {"matrix": [1,2], "flags":4, "x":32, "y":15}, - {"matrix": [1,1], "flags":4, "x":16, "y":18}, - {"matrix": [1,0], "flags":4, "x":0, "y":18}, - - {"matrix": [2,0], "flags":4, "x":0, "y":32}, - {"matrix": [2,1], "flags":4, "x":16, "y":32}, - {"matrix": [2,2], "flags":4, "x":32, "y":28}, - {"matrix": [2,3], "flags":4, "x":48, "y":27}, - {"matrix": [2,4], "flags":4, "x":64, "y":28}, - {"matrix": [2,5], "flags":4, "x":80, "y":30}, - - {"matrix": [3,5], "flags":4, "x":80, "y":43}, - {"matrix": [3,4], "flags":4, "x":64, "y":42}, - {"matrix": [3,3], "flags":4, "x":48, "y":40}, - {"flags":2, "x":40, "y":50}, - {"matrix": [3,2], "flags":4, "x":32, "y":42}, - {"matrix": [3,1], "flags":4, "x":16, "y":45}, - {"flags":2, "x":8, "y":43}, - {"matrix": [3,0], "flags":4, "x":0, "y":45}, - - {"matrix": [4,5], "flags":4, "x":98, "y":52}, - {"matrix": [4,4], "flags":4, "x":90, "y":64}, - {"flags":2, "x":80, "y":58}, - {"matrix": [4,3], "flags":4, "x":72, "y":58}, - {"matrix": [4,2], "flags":4, "x":56, "y":47}, - - {"matrix": [5,0], "flags":4, "x":224, "y":5}, - {"flags":2, "x":216, "y":5}, - {"matrix": [5,1], "flags":4, "x":208, "y":5}, - {"matrix": [5,2], "flags":4, "x":192, "y":2}, - {"flags":2, "x":184, "y":1}, - {"matrix": [5,3], "flags":4, "x":176, "y":0}, - {"matrix": [5,4], "flags":4, "x":160, "y":5}, - {"flags":2, "x":152, "y":3}, - {"matrix": [5,5], "flags":4, "x":144, "y":3}, - - {"matrix": [6,5], "flags":4, "x":144, "y":17}, - {"matrix": [6,4], "flags":4, "x":160, "y":15}, - {"matrix": [6,3], "flags":4, "x":176, "y":13}, - {"matrix": [6,2], "flags":4, "x":192, "y":15}, - {"matrix": [6,1], "flags":4, "x":208, "y":18}, - {"matrix": [6,0], "flags":4, "x":224, "y":18}, - - {"matrix": [7,0], "flags":4, "x":224, "y":32}, - {"matrix": [7,1], "flags":4, "x":208, "y":32}, - {"matrix": [7,2], "flags":4, "x":192, "y":28}, - {"matrix": [7,3], "flags":4, "x":176, "y":27}, - {"matrix": [7,4], "flags":4, "x":160, "y":28}, - {"matrix": [7,5], "flags":4, "x":144, "y":30}, - - {"matrix": [8,5], "flags":4, "x":144, "y":43}, - {"matrix": [8,4], "flags":4, "x":160, "y":42}, - {"matrix": [8,3], "flags":4, "x":176, "y":40}, - {"flags":2, "x":184, "y":50}, - {"matrix": [8,2], "flags":4, "x":192, "y":42}, - {"matrix": [8,1], "flags":4, "x":208, "y":45}, - {"flags":2, "x":216, "y":43}, - {"matrix": [8,0], "flags":4, "x":224, "y":45}, - - {"matrix": [9,2], "flags":4, "x":168, "y":47}, - {"matrix": [9,3], "flags":4, "x":152, "y":58}, - {"flags":2, "x":144, "y":58}, - {"matrix": [9,4], "flags":4, "x":134, "y":64}, - {"matrix": [9,5], "flags":4, "x":126, "y":52} - ], - "sleep": true - } -} diff --git a/keyboards/keebio/iris_lm/k1/mcuconf.h b/keyboards/keebio/iris_lm/k1/mcuconf.h deleted file mode 100644 index e1a054267d..0000000000 --- a/keyboards/keebio/iris_lm/k1/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART3, used for split comms */ -#undef STM32_SERIAL_USE_USART3 -#define STM32_SERIAL_USE_USART3 TRUE - -/* enable TIM3, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/iris_lm/k1/readme.md b/keyboards/keebio/iris_lm/k1/readme.md deleted file mode 100644 index 8b373eb32b..0000000000 --- a/keyboards/keebio/iris_lm/k1/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Iris LM-K - -A split ergo 4x6 keyboard with 4 thumb keys made and sold by Keebio that supports Kailh Choc V1 & V2 low-profile switches. [More info at Keebio](https://keeb.io). - -* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -* Hardware Supported: Iris LM-K PCBs -* Hardware Availability: [Keebio](https://keeb.io) - -Make example for this keyboard (after setting up your build environment): - - make keebio/iris_lm/k1:default - -Example of flashing this keyboard: - - make keebio/iris_lm/k1: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 the top left and plug in the keyboard -* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/iris_lm/keymaps/default/keymap.c b/keyboards/keebio/iris_lm/keymaps/default/keymap.c deleted file mode 100644 index 7a0625a36a..0000000000 --- a/keyboards/keebio/iris_lm/keymaps/default/keymap.c +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2023 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_layers { - _QWERTY, - _LOWER, - _RAISE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - KC_LGUI, TL_LOWR, KC_ENT, KC_SPC, TL_UPPR, KC_RALT - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_LOWER] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PGUP, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_GRV, _______, KC_UP, _______, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PGDN, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - RM_NEXT, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, KC_DEL, KC_DEL, _______, KC_P0 - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_RAISE] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RM_TOGG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RM_NEXT, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RM_HUEU, RM_SATU, RM_VALU, KC_BSLS, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RM_HUED, RM_SATD, RM_VALD, EE_CLR, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, _______, _______, _______, _______ - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ) -}; diff --git a/keyboards/keebio/iris_lm/keymaps/default/rules.mk b/keyboards/keebio/iris_lm/keymaps/default/rules.mk deleted file mode 100644 index 7c9bf212a6..0000000000 --- a/keyboards/keebio/iris_lm/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TRI_LAYER_ENABLE = yes diff --git a/keyboards/keebio/iris_lm/readme.md b/keyboards/keebio/iris_lm/readme.md deleted file mode 100644 index 1036d0f7cc..0000000000 --- a/keyboards/keebio/iris_lm/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Iris LM - -The Iris LM comes in two variants: - -- [Iris LM-G](g1/readme.md) - Supports Gateron KS-33 low-profile switches -- [Iris LM-K](k1/readme.md) - Supports Kailh Choc V1 & V2 low-profile switches diff --git a/keyboards/keebio/irispad/keymaps/default/keymap.json b/keyboards/keebio/irispad/keymaps/default/keymap.json index 29aa060926..e9c52fa99f 100644 --- a/keyboards/keebio/irispad/keymaps/default/keymap.json +++ b/keyboards/keebio/irispad/keymaps/default/keymap.json @@ -15,13 +15,13 @@ "KC_TILD", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_GRV" , "_______", "KC_UP" , "_______", "QK_BOOT", "_______", "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC", - "RM_NEXT", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", + "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "_______", "_______", "KC_DEL" ], [ "KC_F6" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F12", "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , - "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", + "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "_______", "_______" ] diff --git a/keyboards/keebio/kbo5000/rules.mk b/keyboards/keebio/kbo5000/rules.mk new file mode 100644 index 0000000000..06d2f2f412 --- /dev/null +++ b/keyboards/keebio/kbo5000/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/kbo5000/rev1 diff --git a/keyboards/keebio/laplace/keyboard.json b/keyboards/keebio/laplace/keyboard.json index 3ae9f6474b..22cced0ee3 100644 --- a/keyboards/keebio/laplace/keyboard.json +++ b/keyboards/keebio/laplace/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -38,7 +40,8 @@ "rows": ["D3", "F4", "D2", "F5", "D7", "B4", "C6", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/levinson/info.json b/keyboards/keebio/levinson/info.json index 1f4541a5e9..29ae8be8cb 100644 --- a/keyboards/keebio/levinson/info.json +++ b/keyboards/keebio/levinson/info.json @@ -9,6 +9,7 @@ "split": { "enabled": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x12"] } diff --git a/keyboards/keebio/levinson/rules.mk b/keyboards/keebio/levinson/rules.mk new file mode 100644 index 0000000000..44cdce9d12 --- /dev/null +++ b/keyboards/keebio/levinson/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/levinson/rev2 diff --git a/keyboards/keebio/nyquist/keymaps/default/keymap.c b/keyboards/keebio/nyquist/keymaps/default/keymap.c index 178ff47456..df399d355f 100644 --- a/keyboards/keebio/nyquist/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/default/keymap.c @@ -147,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_ortho_5x12( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, _______, KC_DEL, + _______, QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -228,7 +228,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, [_COLEMAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, [_DVORAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [_LOWER] = { ENCODER_CCW_CW(RM_NEXT, RM_PREV), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [_LOWER] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, [_RAISE] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; diff --git a/keyboards/keebio/nyquist/rev1/keyboard.json b/keyboards/keebio/nyquist/rev1/keyboard.json index b7cf0ae0d5..ef20252c53 100644 --- a/keyboards/keebio/nyquist/rev1/keyboard.json +++ b/keyboards/keebio/nyquist/rev1/keyboard.json @@ -7,6 +7,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -35,7 +36,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x12" }, diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json index 69639db6bf..d327d74599 100644 --- a/keyboards/keebio/nyquist/rev2/keyboard.json +++ b/keyboards/keebio/nyquist/rev2/keyboard.json @@ -7,6 +7,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -40,7 +42,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x12" }, diff --git a/keyboards/keebio/nyquist/rev3/keyboard.json b/keyboards/keebio/nyquist/rev3/keyboard.json index bdc7be0e4e..f1aa1522f7 100644 --- a/keyboards/keebio/nyquist/rev3/keyboard.json +++ b/keyboards/keebio/nyquist/rev3/keyboard.json @@ -7,6 +7,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keebio/nyquist/rev4/config.h b/keyboards/keebio/nyquist/rev4/config.h index 0a0f788128..e1e2d99458 100644 --- a/keyboards/keebio/nyquist/rev4/config.h +++ b/keyboards/keebio/nyquist/rev4/config.h @@ -12,3 +12,7 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +#define I2C_DRIVER I2CD0 +#define I2C0_SDA_PIN GP4 +#define I2C0_SCL_PIN GP5 diff --git a/keyboards/keebio/nyquist/rev5/config.h b/keyboards/keebio/nyquist/rev5/config.h index c4bbd6c5b2..8a88c21c89 100644 --- a/keyboards/keebio/nyquist/rev5/config.h +++ b/keyboards/keebio/nyquist/rev5/config.h @@ -14,3 +14,7 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +#define I2C_DRIVER I2CD0 +#define I2C0_SDA_PIN GP4 +#define I2C0_SCL_PIN GP5 diff --git a/keyboards/keebio/nyquist_lm/info.json b/keyboards/keebio/nyquist_lm/info.json deleted file mode 100644 index 64fa5a05ca..0000000000 --- a/keyboards/keebio/nyquist_lm/info.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "manufacturer": "Keebio", - "maintainer": "Keebio", - "url": "https://keeb.io", - "usb": { - "vid": "0xCB10" - } -} diff --git a/keyboards/keebio/nyquist_lm/keymaps/default/keymap.c b/keyboards/keebio/nyquist_lm/keymaps/default/keymap.c deleted file mode 100644 index e47cd18d4f..0000000000 --- a/keyboards/keebio/nyquist_lm/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_5x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - MO(3), KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - [1] = LAYOUT_ortho_5x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - RM_NEXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - [2] = LAYOUT_ortho_5x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - [3] = LAYOUT_ortho_5x12( - _______, QK_BOOT, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/keebio/nyquist_lm/keymaps/default/rules.mk b/keyboards/keebio/nyquist_lm/keymaps/default/rules.mk deleted file mode 100644 index 7c9bf212a6..0000000000 --- a/keyboards/keebio/nyquist_lm/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TRI_LAYER_ENABLE = yes diff --git a/keyboards/keebio/nyquist_lm/readme.md b/keyboards/keebio/nyquist_lm/readme.md deleted file mode 100644 index 84d65f7c9f..0000000000 --- a/keyboards/keebio/nyquist_lm/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# Nyquist LM - -A low-profile 60% split 5x12 ortholinear keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). - -* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -* Hardware Availability: [Keebio](https://keeb.io/) - -Make example for this keyboard (after setting up your build environment): - - make keebio/nyquist_lm/rev1:default - -Example of flashing this keyboard: - - make keebio/nyquist_lm/rev1: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 the top left of left half or top right of right half and plug in the keyboard -* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/nyquist_lm/rev1/config.h b/keyboards/keebio/nyquist_lm/rev1/config.h deleted file mode 100644 index 06498b8b8b..0000000000 --- a/keyboards/keebio/nyquist_lm/rev1/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the split keyboard setup */ -#define SERIAL_USART_DRIVER SD1 // USART 1 -#define SERIAL_USART_TX_PIN A9 -#define SERIAL_USART_RX_PIN A10 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_PIN_SWAP - -#define USB_VBUS_PIN A7 - -/* Defines for the RGB matrix */ -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_DMA_CHANNEL 2 -#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/nyquist_lm/rev1/halconf.h b/keyboards/keebio/nyquist_lm/rev1/halconf.h deleted file mode 100644 index ce1dfd06d7..0000000000 --- a/keyboards/keebio/nyquist_lm/rev1/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/nyquist_lm/rev1/keyboard.json b/keyboards/keebio/nyquist_lm/rev1/keyboard.json deleted file mode 100644 index 011bb01b5e..0000000000 --- a/keyboards/keebio/nyquist_lm/rev1/keyboard.json +++ /dev/null @@ -1,304 +0,0 @@ -{ - "keyboard_name": "Nyquist LM Rev. 1", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["A6", "A5", "A4", "A15", "B5", "B6"], - "rows": ["B3", "B4", "B7", "F0", "F1"] - }, - "processor": "STM32G431", - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "flower_blooming": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true, - "starlight": true, - "starlight_smooth": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "riverflow": true - }, - "driver": "ws2812", - "layout": [ - { "flags": 4, "matrix": [0, 0], "x": 9, "y": 6 }, - { "flags": 4, "matrix": [0, 1], "x": 28, "y": 6 }, - { "flags": 4, "matrix": [0, 2], "x": 46, "y": 6 }, - { "flags": 4, "matrix": [0, 3], "x": 65, "y": 6 }, - { "flags": 4, "matrix": [0, 4], "x": 84, "y": 6 }, - { "flags": 4, "matrix": [0, 5], "x": 102, "y": 6 }, - - { "flags": 4, "matrix": [1, 5], "x": 102, "y": 19 }, - { "flags": 4, "matrix": [1, 4], "x": 84, "y": 19 }, - { "flags": 4, "matrix": [1, 3], "x": 65, "y": 19 }, - { "flags": 4, "matrix": [1, 2], "x": 46, "y": 19 }, - { "flags": 4, "matrix": [1, 1], "x": 28, "y": 19 }, - { "flags": 4, "matrix": [1, 0], "x": 9, "y": 19 }, - - { "flags": 4, "matrix": [2, 0], "x": 9, "y": 32 }, - { "flags": 4, "matrix": [2, 1], "x": 28, "y": 32 }, - { "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 }, - { "flags": 4, "matrix": [2, 3], "x": 65, "y": 32 }, - { "flags": 4, "matrix": [2, 4], "x": 84, "y": 32 }, - { "flags": 4, "matrix": [2, 5], "x": 102, "y": 32 }, - - { "flags": 4, "matrix": [3, 5], "x": 102, "y": 44 }, - { "flags": 4, "matrix": [3, 4], "x": 84, "y": 44 }, - { "flags": 4, "matrix": [3, 3], "x": 65, "y": 44 }, - { "flags": 4, "matrix": [3, 2], "x": 46, "y": 44 }, - { "flags": 4, "matrix": [3, 1], "x": 28, "y": 44 }, - { "flags": 4, "matrix": [3, 0], "x": 9, "y": 44 }, - - { "flags": 4, "matrix": [4, 0], "x": 9, "y": 57 }, - { "flags": 4, "matrix": [4, 1], "x": 28, "y": 57 }, - { "flags": 4, "matrix": [4, 2], "x": 46, "y": 57 }, - { "flags": 4, "matrix": [4, 3], "x": 65, "y": 57 }, - { "flags": 4, "matrix": [4, 4], "x": 81, "y": 57 }, - { "flags": 4, "matrix": [4, 5], "x": 102, "y": 57 }, - - { "flags": 4, "matrix": [5, 0], "x": 121, "y": 6 }, - { "flags": 4, "matrix": [5, 1], "x": 140, "y": 6 }, - { "flags": 4, "matrix": [5, 2], "x": 158, "y": 6 }, - { "flags": 4, "matrix": [5, 3], "x": 177, "y": 6 }, - { "flags": 4, "matrix": [5, 4], "x": 196, "y": 6 }, - { "flags": 4, "matrix": [5, 5], "x": 214, "y": 6 }, - - { "flags": 4, "matrix": [6, 5], "x": 214, "y": 19 }, - { "flags": 4, "matrix": [6, 4], "x": 196, "y": 19 }, - { "flags": 4, "matrix": [6, 3], "x": 177, "y": 19 }, - { "flags": 4, "matrix": [6, 2], "x": 158, "y": 19 }, - { "flags": 4, "matrix": [6, 1], "x": 140, "y": 19 }, - { "flags": 4, "matrix": [6, 0], "x": 121, "y": 19 }, - - { "flags": 4, "matrix": [7, 0], "x": 121, "y": 32 }, - { "flags": 4, "matrix": [7, 1], "x": 140, "y": 32 }, - { "flags": 4, "matrix": [7, 2], "x": 158, "y": 32 }, - { "flags": 4, "matrix": [7, 3], "x": 177, "y": 32 }, - { "flags": 4, "matrix": [7, 4], "x": 196, "y": 32 }, - { "flags": 4, "matrix": [7, 5], "x": 214, "y": 32 }, - - { "flags": 4, "matrix": [8, 5], "x": 214, "y": 44 }, - { "flags": 4, "matrix": [8, 4], "x": 196, "y": 44 }, - { "flags": 4, "matrix": [8, 3], "x": 177, "y": 44 }, - { "flags": 4, "matrix": [8, 2], "x": 158, "y": 44 }, - { "flags": 4, "matrix": [8, 1], "x": 140, "y": 44 }, - { "flags": 4, "matrix": [8, 0], "x": 121, "y": 44 }, - - { "flags": 4, "matrix": [9, 0], "x": 121, "y": 57 }, - { "flags": 4, "matrix": [9, 1], "x": 140, "y": 57 }, - { "flags": 4, "matrix": [9, 2], "x": 158, "y": 57 }, - { "flags": 4, "matrix": [9, 3], "x": 177, "y": 57 }, - { "flags": 4, "matrix": [9, 4], "x": 196, "y": 57 }, - { "flags": 4, "matrix": [9, 5], "x": 214, "y": 57 } - ], - "max_brightness": 160, - "sleep": true, - "split_count": [30, 30] - }, - "split": { - "bootmagic": { - "matrix": [5, 5] - }, - "enabled": true, - "handedness": { - "pin": "A8" - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x1856" - }, - "ws2812": { - "driver": "pwm", - "pin": "B0" - }, - "community_layouts": ["ortho_5x12", "ortho_4x12"], - "layouts": { - "LAYOUT_ortho_5x12": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [5, 0], "x": 7, "y": 0}, - {"matrix": [5, 1], "x": 8, "y": 0}, - {"matrix": [5, 2], "x": 9, "y": 0}, - {"matrix": [5, 3], "x": 10, "y": 0}, - {"matrix": [5, 4], "x": 11, "y": 0}, - {"matrix": [5, 5], "x": 12, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [6, 0], "x": 7, "y": 1}, - {"matrix": [6, 1], "x": 8, "y": 1}, - {"matrix": [6, 2], "x": 9, "y": 1}, - {"matrix": [6, 3], "x": 10, "y": 1}, - {"matrix": [6, 4], "x": 11, "y": 1}, - {"matrix": [6, 5], "x": 12, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [7, 0], "x": 7, "y": 2}, - {"matrix": [7, 1], "x": 8, "y": 2}, - {"matrix": [7, 2], "x": 9, "y": 2}, - {"matrix": [7, 3], "x": 10, "y": 2}, - {"matrix": [7, 4], "x": 11, "y": 2}, - {"matrix": [7, 5], "x": 12, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [8, 0], "x": 7, "y": 3}, - {"matrix": [8, 1], "x": 8, "y": 3}, - {"matrix": [8, 2], "x": 9, "y": 3}, - {"matrix": [8, 3], "x": 10, "y": 3}, - {"matrix": [8, 4], "x": 11, "y": 3}, - {"matrix": [8, 5], "x": 12, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - - {"matrix": [9, 0], "x": 7, "y": 4}, - {"matrix": [9, 1], "x": 8, "y": 4}, - {"matrix": [9, 2], "x": 9, "y": 4}, - {"matrix": [9, 3], "x": 10, "y": 4}, - {"matrix": [9, 4], "x": 11, "y": 4}, - {"matrix": [9, 5], "x": 12, "y": 4} - ] - }, - "LAYOUT_ortho_4x12": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [5, 0], "x": 7, "y": 0}, - {"matrix": [5, 1], "x": 8, "y": 0}, - {"matrix": [5, 2], "x": 9, "y": 0}, - {"matrix": [5, 3], "x": 10, "y": 0}, - {"matrix": [5, 4], "x": 11, "y": 0}, - {"matrix": [5, 5], "x": 12, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [6, 0], "x": 7, "y": 1}, - {"matrix": [6, 1], "x": 8, "y": 1}, - {"matrix": [6, 2], "x": 9, "y": 1}, - {"matrix": [6, 3], "x": 10, "y": 1}, - {"matrix": [6, 4], "x": 11, "y": 1}, - {"matrix": [6, 5], "x": 12, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [7, 0], "x": 7, "y": 2}, - {"matrix": [7, 1], "x": 8, "y": 2}, - {"matrix": [7, 2], "x": 9, "y": 2}, - {"matrix": [7, 3], "x": 10, "y": 2}, - {"matrix": [7, 4], "x": 11, "y": 2}, - {"matrix": [7, 5], "x": 12, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [8, 0], "x": 7, "y": 3}, - {"matrix": [8, 1], "x": 8, "y": 3}, - {"matrix": [8, 2], "x": 9, "y": 3}, - {"matrix": [8, 3], "x": 10, "y": 3}, - {"matrix": [8, 4], "x": 11, "y": 3}, - {"matrix": [8, 5], "x": 12, "y": 3} - ] - } - } -} diff --git a/keyboards/keebio/nyquist_lm/rev1/mcuconf.h b/keyboards/keebio/nyquist_lm/rev1/mcuconf.h deleted file mode 100644 index 77847f5b2c..0000000000 --- a/keyboards/keebio/nyquist_lm/rev1/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART1, used for split comms */ -#undef STM32_SERIAL_USE_USART1 -#define STM32_SERIAL_USE_USART1 TRUE - -/* enable TIM3, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/nyquist_lm/rev1/rev1.c b/keyboards/keebio/nyquist_lm/rev1/rev1.c deleted file mode 100644 index 9acf0dc882..0000000000 --- a/keyboards/keebio/nyquist_lm/rev1/rev1.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} diff --git a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c index 5a5a8ad497..42c036556d 100644 --- a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC ), [1] = LAYOUT_ortho_5x6( - RM_NEXT, _______, _______, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keebio/quefrency/rev1/keyboard.json b/keyboards/keebio/quefrency/rev1/keyboard.json index 651e3f1362..73f6d0d660 100644 --- a/keyboards/keebio/quefrency/rev1/keyboard.json +++ b/keyboards/keebio/quefrency/rev1/keyboard.json @@ -46,7 +46,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, @@ -62,11 +63,8 @@ "build": { "lto": true }, - "layout_aliases": { - "LAYOUT": "LAYOUT_60" - }, "layouts": { - "LAYOUT_60": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keebio/quefrency/rules.mk b/keyboards/keebio/quefrency/rules.mk new file mode 100644 index 0000000000..fb40fc8a56 --- /dev/null +++ b/keyboards/keebio/quefrency/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/quefrency/rev1 diff --git a/keyboards/keebio/quefrency_lm/info.json b/keyboards/keebio/quefrency_lm/info.json deleted file mode 100644 index cb41e89ff6..0000000000 --- a/keyboards/keebio/quefrency_lm/info.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "manufacturer": "Keebio", - "url": "https://keeb.io", - "maintainer": "nooges", - "usb": { - "vid": "0xCB10" - }, - "features": { - "bootmagic": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": false - }, - "split": { - "enabled": true - }, - "build": { - "lto": true - } -} diff --git a/keyboards/keebio/quefrency_lm/keymaps/default/keymap.c b/keyboards/keebio/quefrency_lm/keymaps/default/keymap.c deleted file mode 100644 index 75bb1601de..0000000000 --- a/keyboards/keebio/quefrency_lm/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65xt( - KC_F1, KC_F2, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, - KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_65xt( - RM_HUEU, RM_HUED, 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, _______, _______, - RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, KC_UP, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - RM_VALU, RM_VALD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/keebio/quefrency_lm/readme.md b/keyboards/keebio/quefrency_lm/readme.md deleted file mode 100644 index c602f252cc..0000000000 --- a/keyboards/keebio/quefrency_lm/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Quefrency LM - -A split 65XT staggered low-profile keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). - -* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -* Hardware Availability: [Keebio](https://keeb.io/) - -Make example for this keyboard (after setting up your build environment): - - make keebio/quefrency_lm/rev1:default - -Example of flashing this keyboard: - - make keebio/quefrency_lm/rev1:default:flash - -Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. - -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 one of these ways: - -* **Physical reset button**: Press and hold the button on the back of the PCB for at least 2 seconds and let go, or double-press the button -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/quefrency_lm/rev1/config.h b/keyboards/keebio/quefrency_lm/rev1/config.h deleted file mode 100644 index 039947f539..0000000000 --- a/keyboards/keebio/quefrency_lm/rev1/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Defines for the split keyboard setup */ -#define SERIAL_USART_DRIVER SD3 // USART 3 -#define SERIAL_USART_TX_PIN B10 -#define SERIAL_USART_RX_PIN B11 -#define SERIAL_USART_TX_PAL_MODE 7 -#define SERIAL_USART_RX_PAL_MODE 7 -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_PIN_SWAP - -#define USB_VBUS_PIN C6 - -/* Defines for the RGB matrix */ -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 4 -#define WS2812_PWM_PAL_MODE 10 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -#define WS2812_DMA_CHANNEL 2 -#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/quefrency_lm/rev1/halconf.h b/keyboards/keebio/quefrency_lm/rev1/halconf.h deleted file mode 100644 index ce1dfd06d7..0000000000 --- a/keyboards/keebio/quefrency_lm/rev1/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SERIAL TRUE - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keebio/quefrency_lm/rev1/keyboard.json b/keyboards/keebio/quefrency_lm/rev1/keyboard.json deleted file mode 100644 index 1e56222de4..0000000000 --- a/keyboards/keebio/quefrency_lm/rev1/keyboard.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "manufacturer": "Keebio", - "keyboard_name": "Quefrency LM Rev. 1", - "maintainer": "nooges", - "bootloader": "stm32-dfu", - "bootmagic": { - "matrix": [0, 2] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B13", "B14", "B2", "F0", "C10", "B6", "C13", "C14", "C15"], - "rows": ["B4", "C11", "B12", "B5", "F1"] - }, - "processor": "STM32G431", - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "flower_blooming": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true, - "starlight": true, - "starlight_smooth": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "riverflow": true - }, - "driver": "ws2812", - "layout": [ - { "matrix": [0, 8], "x": 103, "y": 4, "flags": 4 }, - { "x": 97, "y": 8, "flags": 2 }, - { "matrix": [0, 7], "x": 91, "y": 4, "flags": 4 }, - { "matrix": [0, 6], "x": 79, "y": 4, "flags": 4 }, - { "x": 73, "y": 0, "flags": 2 }, - { "matrix": [0, 5], "x": 67, "y": 4, "flags": 4 }, - { "matrix": [0, 4], "x": 54, "y": 4, "flags": 4 }, - { "matrix": [0, 3], "x": 42, "y": 4, "flags": 4 }, - { "matrix": [0, 2], "x": 30, "y": 4, "flags": 4 }, - { "x": 27, "y": 19, "flags": 2 }, - - { "matrix": [1, 2], "x": 33, "y": 19, "flags": 4 }, - { "matrix": [1, 3], "x": 48, "y": 19, "flags": 4 }, - { "matrix": [1, 4], "x": 61, "y": 19, "flags": 4 }, - { "matrix": [1, 5], "x": 73, "y": 19, "flags": 4 }, - { "matrix": [1, 6], "x": 85, "y": 19, "flags": 4 }, - { "matrix": [1, 7], "x": 97, "y": 19, "flags": 4 }, - - { "matrix": [2, 7], "x": 100, "y": 34, "flags": 4 }, - { "matrix": [2, 6], "x": 88, "y": 34, "flags": 4 }, - { "matrix": [2, 5], "x": 76, "y": 34, "flags": 4 }, - { "matrix": [2, 4], "x": 64, "y": 34, "flags": 4 }, - { "matrix": [2, 3], "x": 51, "y": 34, "flags": 4 }, - { "matrix": [2, 2], "x": 35, "y": 34, "flags": 4 }, - - { "matrix": [3, 2], "x": 38, "y": 49, "flags": 4 }, - { "matrix": [3, 4], "x": 58, "y": 49, "flags": 4 }, - { "matrix": [3, 5], "x": 70, "y": 49, "flags": 4 }, - { "matrix": [3, 6], "x": 82, "y": 49, "flags": 4 }, - { "matrix": [3, 7], "x": 94, "y": 49, "flags": 4 }, - { "x": 100, "y": 45, "flags": 2 }, - { "matrix": [3, 8], "x": 106, "y": 49, "flags": 4 }, - - { "matrix": [4, 7], "x": 98, "y": 64, "flags": 4 }, - { "x": 85, "y": 64, "flags": 2 }, - { "matrix": [4, 5], "x": 77, "y": 64, "flags": 4 }, - { "matrix": [4, 4], "x": 62, "y": 64, "flags": 4 }, - { "matrix": [4, 3], "x": 47, "y": 64, "flags": 4 }, - { "x": 39, "y": 60, "flags": 4 }, - { "matrix": [4, 2], "x": 32, "y": 64, "flags": 4 }, - - { "matrix": [4, 1], "x": 12, "y": 64, "flags": 4 }, - { "x": 6, "y": 60, "flags": 2 }, - { "matrix": [4, 0], "x": 0, "y": 64, "flags": 4 }, - { "matrix": [3, 0], "x": 0, "y": 49, "flags": 4 }, - { "matrix": [3, 1], "x": 12, "y": 49, "flags": 4 }, - { "matrix": [2, 1], "x": 12, "y": 34, "flags": 4 }, - { "matrix": [2, 0], "x": 0, "y": 34, "flags": 4 }, - { "matrix": [1, 0], "x": 0, "y": 19, "flags": 4 }, - { "matrix": [1, 1], "x": 12, "y": 19, "flags": 4 }, - { "matrix": [0, 1], "x": 12, "y": 4, "flags": 4 }, - { "x": 6, "y": 0, "flags": 2 }, - { "matrix": [0, 0], "x": 0, "y": 4, "flags": 4 }, - - { "matrix": [5, 0], "x": 127, "y": 4, "flags": 4 }, - { "x": 127, "y": 11, "flags": 2 }, - { "matrix": [5, 1], "x": 139, "y": 4, "flags": 4 }, - { "matrix": [5, 2], "x": 151, "y": 4, "flags": 4 }, - { "x": 157, "y": 0, "flags": 2 }, - { "matrix": [5, 3], "x": 163, "y": 4, "flags": 4 }, - { "matrix": [5, 4], "x": 176, "y": 4, "flags": 4 }, - { "x": 182, "y": 0, "flags": 2 }, - { "matrix": [5, 5], "x": 188, "y": 4, "flags": 4 }, - { "matrix": [5, 7], "x": 206, "y": 4, "flags": 4 }, - { "x": 218, "y": 0, "flags": 2 }, - { "matrix": [5, 8], "x": 224, "y": 4, "flags": 4 }, - - { "matrix": [6, 8], "x": 224, "y": 19, "flags": 4 }, - { "matrix": [6, 7], "x": 209, "y": 19, "flags": 4 }, - { "matrix": [6, 6], "x": 194, "y": 19, "flags": 4 }, - { "matrix": [6, 5], "x": 182, "y": 19, "flags": 4 }, - { "matrix": [6, 4], "x": 170, "y": 19, "flags": 4 }, - { "matrix": [6, 3], "x": 157, "y": 19, "flags": 4 }, - { "matrix": [6, 2], "x": 145, "y": 19, "flags": 4 }, - { "matrix": [6, 1], "x": 133, "y": 19, "flags": 4 }, - { "matrix": [6, 0], "x": 121, "y": 19, "flags": 4 }, - - { "matrix": [7, 0], "x": 124, "y": 34, "flags": 4 }, - { "matrix": [7, 1], "x": 136, "y": 34, "flags": 4 }, - { "matrix": [7, 2], "x": 148, "y": 34, "flags": 4 }, - { "matrix": [7, 3], "x": 160, "y": 34, "flags": 4 }, - { "matrix": [7, 4], "x": 173, "y": 34, "flags": 4 }, - { "matrix": [7, 5], "x": 185, "y": 34, "flags": 4 }, - { "matrix": [7, 7], "x": 204, "y": 34, "flags": 4 }, - { "matrix": [7, 8], "x": 224, "y": 34, "flags": 4 }, - - { "matrix": [8, 8], "x": 224, "y": 49, "flags": 4 }, - { "matrix": [8, 7], "x": 212, "y": 49, "flags": 4 }, - { "matrix": [8, 6], "x": 195, "y": 49, "flags": 4 }, - { "matrix": [8, 4], "x": 179, "y": 49, "flags": 4 }, - { "matrix": [8, 3], "x": 166, "y": 49, "flags": 4 }, - { "matrix": [8, 2], "x": 154, "y": 49, "flags": 4 }, - { "matrix": [8, 1], "x": 142, "y": 49, "flags": 4 }, - { "matrix": [8, 0], "x": 130, "y": 49, "flags": 4 }, - - { "x": 127, "y": 64, "flags": 2 }, - { "matrix": [9, 1], "x": 141, "y": 64, "flags": 4 }, - { "x": 157, "y": 64, "flags": 2 }, - { "matrix": [9, 2], "x": 163, "y": 64, "flags": 4 }, - { "matrix": [9, 3], "x": 176, "y": 64, "flags": 4 }, - { "matrix": [9, 4], "x": 188, "y": 64, "flags": 4 }, - { "x": 194, "y": 64, "flags": 2 }, - { "matrix": [9, 6], "x": 200, "y": 64, "flags": 4 }, - { "matrix": [9, 7], "x": 212, "y": 64, "flags": 4 }, - { "x": 218, "y": 64, "flags": 2 }, - { "matrix": [9, 8], "x": 224, "y": 64, "flags": 4 } - ], - "max_brightness": 120, - "sleep": true, - "split_count": [48, 48] - }, - "split": { - "bootmagic": { - "matrix": [5, 8] - }, - "enabled": true, - "handedness": { - "pin": "A0" - }, - - "matrix_pins": { - "right": { - "cols": ["B2", "A15", "A2", "A1", "A4", "B15", "B6", "C13", "C14"], - "rows": ["B12", "B13", "B14", "B5", "F1"] - } - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "url": "https://keeb.io", - "usb": { - "device_version": "1.0.0", - "pid": "0x1657", - "vid": "0xCB10" - }, - "ws2812": { - "driver": "pwm", - "pin": "B7" - }, - "layouts": { - "LAYOUT_65xt": { - "layout": [ - {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "F2", "matrix": [0, 1], "x": 1, "y": 0}, - - {"label": "Esc", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "1", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "2", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "3", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "4", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "5", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "6", "matrix": [0, 8], "x": 8.25, "y": 0}, - - {"label": "7", "matrix": [5, 0], "x": 10.25, "y": 0}, - {"label": "8", "matrix": [5, 1], "x": 11.25, "y": 0}, - {"label": "9", "matrix": [5, 2], "x": 12.25, "y": 0}, - {"label": "0", "matrix": [5, 3], "x": 13.25, "y": 0}, - {"label": "-", "matrix": [5, 4], "x": 14.25, "y": 0}, - {"label": "=", "matrix": [5, 5], "x": 15.25, "y": 0}, - {"label": "Bksp", "matrix": [5, 7], "x": 16.25, "y": 0, "w": 2}, - {"label": "Del", "matrix": [5, 8], "x": 18.25, "y": 0}, - - {"label": "F3", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "F4", "matrix": [1, 1], "x": 1, "y": 1}, - - {"label": "Tab", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "W", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "E", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "R", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "T", "matrix": [1, 7], "x": 7.75, "y": 1}, - - {"label": "Y", "matrix": [6, 0], "x": 9.75, "y": 1}, - {"label": "U", "matrix": [6, 1], "x": 10.75, "y": 1}, - {"label": "I", "matrix": [6, 2], "x": 11.75, "y": 1}, - {"label": "O", "matrix": [6, 3], "x": 12.75, "y": 1}, - {"label": "P", "matrix": [6, 4], "x": 13.75, "y": 1}, - {"label": "{", "matrix": [6, 5], "x": 14.75, "y": 1}, - {"label": "}", "matrix": [6, 6], "x": 15.75, "y": 1}, - {"label": "|", "matrix": [6, 7], "x": 16.75, "y": 1, "w": 1.5}, - {"label": "Home", "matrix": [6, 8], "x": 18.25, "y": 1}, - - {"label": "F5", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "F6", "matrix": [2, 1], "x": 1, "y": 2}, - - {"label": "Caps Lock", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "S", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "D", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "F", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "G", "matrix": [2, 7], "x": 8, "y": 2}, - - {"label": "H", "matrix": [7, 0], "x": 10, "y": 2}, - {"label": "J", "matrix": [7, 1], "x": 11, "y": 2}, - {"label": "K", "matrix": [7, 2], "x": 12, "y": 2}, - {"label": "L", "matrix": [7, 3], "x": 13, "y": 2}, - {"label": ":", "matrix": [7, 4], "x": 14, "y": 2}, - {"label": "\"", "matrix": [7, 5], "x": 15, "y": 2}, - {"label": "Enter", "matrix": [7, 7], "x": 16, "y": 2, "w": 2.25}, - {"label": "PgUp", "matrix": [7, 8], "x": 18.25, "y": 2}, - - {"label": "F7", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "F8", "matrix": [3, 1], "x": 1, "y": 3}, - - {"label": "Shift", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "X", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "C", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "V", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "B", "matrix": [3, 8], "x": 8.5, "y": 3}, - - {"label": "N", "matrix": [8, 0], "x": 10.5, "y": 3}, - {"label": "M", "matrix": [8, 1], "x": 11.5, "y": 3}, - {"label": ",", "matrix": [8, 2], "x": 12.5, "y": 3}, - {"label": ".", "matrix": [8, 3], "x": 13.5, "y": 3}, - {"label": "/", "matrix": [8, 4], "x": 14.5, "y": 3}, - {"label": "Shift", "matrix": [8, 6], "x": 15.5, "y": 3, "w": 1.75}, - {"label": "Up", "matrix": [8, 7], "x": 17.25, "y": 3}, - {"label": "PgDn", "matrix": [8, 8], "x": 18.25, "y": 3}, - - {"label": "F9", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "F10", "matrix": [4, 1], "x": 1, "y": 4}, - - {"label": "Ctrl", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 5], "x": 6, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 7], "x": 7.25, "y": 4, "w": 2.25}, - - {"label": "Space", "matrix": [9, 1], "x": 10.5, "y": 4, "w": 2.75}, - {"label": "Alt", "matrix": [9, 2], "x": 13.25, "y": 4}, - {"label": "Fn", "matrix": [9, 3], "x": 14.25, "y": 4}, - {"label": "Ctrl", "matrix": [9, 4], "x": 15.25, "y": 4}, - {"label": "Left", "matrix": [9, 6], "x": 16.25, "y": 4}, - {"label": "Down", "matrix": [9, 7], "x": 17.25, "y": 4}, - {"label": "Right", "matrix": [9, 8], "x": 18.25, "y": 4} - ] - } - } -} diff --git a/keyboards/keebio/quefrency_lm/rev1/mcuconf.h b/keyboards/keebio/quefrency_lm/rev1/mcuconf.h deleted file mode 100644 index 81e0d04f67..0000000000 --- a/keyboards/keebio/quefrency_lm/rev1/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -/* enable USART3, used for split comms */ -#undef STM32_SERIAL_USE_USART3 -#define STM32_SERIAL_USE_USART3 TRUE - -/* enable TIM3, used for RGB LED PWM driver */ -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/quefrency_lm/rev1/rev1.c b/keyboards/keebio/quefrency_lm/rev1/rev1.c deleted file mode 100644 index 744fdd8293..0000000000 --- a/keyboards/keebio/quefrency_lm/rev1/rev1.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 Keebio (@keebio) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Disable the PD peripheral in pre-init because its pins are being used in the matrix: - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; - // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) - keyboard_pre_init_user(); -} diff --git a/keyboards/keebio/rorschach/rev1/keyboard.json b/keyboards/keebio/rorschach/rev1/keyboard.json index 6f07992f1e..63fe877246 100644 --- a/keyboards/keebio/rorschach/rev1/keyboard.json +++ b/keyboards/keebio/rorschach/rev1/keyboard.json @@ -43,7 +43,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/keebio/rorschach/rules.mk b/keyboards/keebio/rorschach/rules.mk new file mode 100644 index 0000000000..6cdac68a4e --- /dev/null +++ b/keyboards/keebio/rorschach/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/rorschach/rev1 diff --git a/keyboards/keebio/sinc/info.json b/keyboards/keebio/sinc/info.json index 87be01da9a..aa1e08f39d 100644 --- a/keyboards/keebio/sinc/info.json +++ b/keyboards/keebio/sinc/info.json @@ -7,6 +7,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/keebio/sinc/keymaps/default/keymap.c b/keyboards/keebio/sinc/keymaps/default/keymap.c index f0cf80366e..171b7a7d05 100644 --- a/keyboards/keebio/sinc/keymaps/default/keymap.c +++ b/keyboards/keebio/sinc/keymaps/default/keymap.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_80_with_macro( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/keebio/sinc/keymaps/iso/keymap.c b/keyboards/keebio/sinc/keymaps/iso/keymap.c index 205af033c6..f3eaaa5bca 100644 --- a/keyboards/keebio/sinc/keymaps/iso/keymap.c +++ b/keyboards/keebio/sinc/keymaps/iso/keymap.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_80_iso_with_macro( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/keebio/sinc/rules.mk b/keyboards/keebio/sinc/rules.mk new file mode 100644 index 0000000000..1419957479 --- /dev/null +++ b/keyboards/keebio/sinc/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/sinc/rev1 diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json index b8d1184ec1..2e2b3539ab 100644 --- a/keyboards/keebio/stick/keyboard.json +++ b/keyboards/keebio/stick/keyboard.json @@ -83,9 +83,12 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebio/tragicforce68/keyboard.json b/keyboards/keebio/tragicforce68/keyboard.json index f257cc26a8..f2f27a7194 100644 --- a/keyboards/keebio/tragicforce68/keyboard.json +++ b/keyboards/keebio/tragicforce68/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -31,7 +33,8 @@ "levels": 7, "breathing": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["68_ansi"], "layout_aliases": { "LAYOUT": "LAYOUT_68_ansi" diff --git a/keyboards/keebio/tukey/keyboard.json b/keyboards/keebio/tukey/keyboard.json index 3f4e5e947a..a030f041b7 100644 --- a/keyboards/keebio/tukey/keyboard.json +++ b/keyboards/keebio/tukey/keyboard.json @@ -28,7 +28,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/keebio/viterbi/info.json b/keyboards/keebio/viterbi/info.json index f547514cdb..8b1063ea98 100644 --- a/keyboards/keebio/viterbi/info.json +++ b/keyboards/keebio/viterbi/info.json @@ -8,6 +8,7 @@ "split": { "enabled": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x14"] } diff --git a/keyboards/keebio/viterbi/keymaps/default/keymap.c b/keyboards/keebio/viterbi/keymaps/default/keymap.c index e37fc8f790..bc7cd5d3f0 100644 --- a/keyboards/keebio/viterbi/keymaps/default/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_names { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + LOWER, RAISE, ADJUST, }; @@ -87,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_5x14( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, QK_BOOT, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, _______, KC_DEL, _______, - _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -97,6 +98,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/keebio/viterbi/rules.mk b/keyboards/keebio/viterbi/rules.mk new file mode 100644 index 0000000000..ecf6a3fa87 --- /dev/null +++ b/keyboards/keebio/viterbi/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keebio/viterbi/rev2 diff --git a/keyboards/keebio/wavelet/keyboard.json b/keyboards/keebio/wavelet/keyboard.json index fa14bfd62c..70430e0f4d 100644 --- a/keyboards/keebio/wavelet/keyboard.json +++ b/keyboards/keebio/wavelet/keyboard.json @@ -23,7 +23,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/keebio/wtf60/keyboard.json b/keyboards/keebio/wtf60/keyboard.json index 7f9dfd0dcd..2c14740eff 100644 --- a/keyboards/keebio/wtf60/keyboard.json +++ b/keyboards/keebio/wtf60/keyboard.json @@ -34,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/keebmonkey/kbmg68/keyboard.json b/keyboards/keebmonkey/kbmg68/keyboard.json index 647f0ecf95..5cb0fa0e45 100644 --- a/keyboards/keebmonkey/kbmg68/keyboard.json +++ b/keyboards/keebmonkey/kbmg68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kbmg68", "manufacturer": "KeebMonkey", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/keebsforall/freebird60/keyboard.json b/keyboards/keebsforall/freebird60/keyboard.json index a57600e884..3c4df7472a 100644 --- a/keyboards/keebsforall/freebird60/keyboard.json +++ b/keyboards/keebsforall/freebird60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Freebird60", "manufacturer": "KnoblesseOblige", + "url": "", "maintainer": "KnoblesseOblige", "usb": { "vid": "0xADAD", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebsforall/freebird75/keyboard.json b/keyboards/keebsforall/freebird75/keyboard.json index 5560d09e62..1e92ad7063 100644 --- a/keyboards/keebsforall/freebird75/keyboard.json +++ b/keyboards/keebsforall/freebird75/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["C7", "C6", "B6", "B5", "B4", "D7"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7575", diff --git a/keyboards/keebsforall/freebirdnp/lite/keyboard.json b/keyboards/keebsforall/freebirdnp/lite/keyboard.json index 1114df98b1..af98661426 100644 --- a/keyboards/keebsforall/freebirdnp/lite/keyboard.json +++ b/keyboards/keebsforall/freebirdnp/lite/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebsforall/freebirdnp/pro/keyboard.json b/keyboards/keebsforall/freebirdnp/pro/keyboard.json index c6716b315a..8eae2f89f9 100644 --- a/keyboards/keebsforall/freebirdnp/pro/keyboard.json +++ b/keyboards/keebsforall/freebirdnp/pro/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebsforall/freebirdtkl/keyboard.json b/keyboards/keebsforall/freebirdtkl/keyboard.json index a5a2f2d3c1..37a6243beb 100644 --- a/keyboards/keebsforall/freebirdtkl/keyboard.json +++ b/keyboards/keebsforall/freebirdtkl/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebwerk/mega/ansi/keyboard.json b/keyboards/keebwerk/mega/ansi/keyboard.json index 01f158da9a..e5a12585df 100755 --- a/keyboards/keebwerk/mega/ansi/keyboard.json +++ b/keyboards/keebwerk/mega/ansi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Keebwerk Mega ANSI", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "Yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/keebwerk/nano_slider/keyboard.json b/keyboards/keebwerk/nano_slider/keyboard.json index e44a2feb3e..64f59d6c10 100644 --- a/keyboards/keebwerk/nano_slider/keyboard.json +++ b/keyboards/keebwerk/nano_slider/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "nano. slider", "manufacturer": "keebwerk.", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x03A8", diff --git a/keyboards/keebzdotnet/fme/keyboard.json b/keyboards/keebzdotnet/fme/keyboard.json index 49118c32e6..d7b9ebca0c 100644 --- a/keyboards/keebzdotnet/fme/keyboard.json +++ b/keyboards/keebzdotnet/fme/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FMe", "manufacturer": "keebzdotnet", + "url": "", "maintainer": "keebzdotnet", "usb": { "vid": "0x4B5A", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keebzdotnet/wazowski/keyboard.json b/keyboards/keebzdotnet/wazowski/keyboard.json index dcf14c27f3..150fa3c790 100644 --- a/keyboards/keebzdotnet/wazowski/keyboard.json +++ b/keyboards/keebzdotnet/wazowski/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kegen/gboy/keyboard.json b/keyboards/kegen/gboy/keyboard.json index a39316328f..8c611d6664 100644 --- a/keyboards/kegen/gboy/keyboard.json +++ b/keyboards/kegen/gboy/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kelwin/utopia88/keyboard.json b/keyboards/kelwin/utopia88/keyboard.json index d73be1dd27..406642d41c 100644 --- a/keyboards/kelwin/utopia88/keyboard.json +++ b/keyboards/kelwin/utopia88/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -21,6 +23,7 @@ "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/kepler_33/proto/keyboard.json b/keyboards/kepler_33/proto/keyboard.json index 725700b787..1ac13e81f8 100644 --- a/keyboards/kepler_33/proto/keyboard.json +++ b/keyboards/kepler_33/proto/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "stm32-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keybage/radpad/keyboard.json b/keyboards/keybage/radpad/keyboard.json index d8a3c827df..84407a9310 100644 --- a/keyboards/keybage/radpad/keyboard.json +++ b/keyboards/keybage/radpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RadPad", "manufacturer": "Keybage", + "url": "", "maintainer": "Brandon Schlack", "usb": { "vid": "0x4253", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -52,7 +55,8 @@ "ws2812": { "pin": "F4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_4x4_encoders": { "layout": [ diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json index a2a4862836..7952378b15 100644 --- a/keyboards/keybee/keybee65/keyboard.json +++ b/keyboards/keybee/keybee65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KeyBee65", "manufacturer": "KeyBee", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x6265", @@ -19,6 +20,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/keybee/keybee65/keymaps/default/keymap.c b/keyboards/keybee/keybee65/keymaps/default/keymap.c index 4662a9bd45..ef56606692 100644 --- a/keyboards/keybee/keybee65/keymaps/default/keymap.c +++ b/keyboards/keybee/keybee65/keymaps/default/keymap.c @@ -31,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_65_ansi( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUSE, QK_BOOT, KC_TRNS, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUSE, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK ) @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keyboardio/atreus/keyboard.json b/keyboards/keyboardio/atreus/keyboard.json index 7fee6ec54d..5185d9ee28 100644 --- a/keyboards/keyboardio/atreus/keyboard.json +++ b/keyboards/keyboardio/atreus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atreus", "manufacturer": "Keyboardio", + "url": "", "maintainer": "keyboardio", "usb": { "vid": "0x1209", diff --git a/keyboards/keyboardio/model01/keymaps/default/keymap.c b/keyboards/keyboardio/model01/keymaps/default/keymap.c index 9540d76513..3ed72adb73 100644 --- a/keyboards/keyboardio/model01/keymaps/default/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT( QK_BOOT , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , TG(NUM), - KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RM_NEXT, _______, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , + KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_MOD, _______, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, KC_LCTL, KC_RCTL, @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT( _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , - KC_TAB , _______, MS_UP, _______, MS_BTN3, _______, RM_TOGG, KC_MPRV, KC_MNXT, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 , - KC_HOME, MS_LEFT, MS_DOWN, MS_RGHT, MS_BTN1, _______, _______, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, - KC_END , KC_PSCR, KC_INS , _______, MS_BTN2, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSLS, KC_PIPE, + KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_TOG, KC_MPRV, KC_MNXT, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 , + KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, _______, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, + KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSLS, KC_PIPE, _______, _______, KC_DEL , KC_ENT , _______, _______, diff --git a/keyboards/keycapsss/3w6_2040/keyboard.json b/keyboards/keycapsss/3w6_2040/keyboard.json index 03305c67b6..f29b3753c6 100644 --- a/keyboards/keycapsss/3w6_2040/keyboard.json +++ b/keyboards/keycapsss/3w6_2040/keyboard.json @@ -7,6 +7,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -41,6 +42,7 @@ "sat": 232, "speed": 2 }, + "hue_steps": 8, "led_count": 2, "max_brightness": 100, "saturation_steps": 8, diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c index c61fdfc03a..32b4a7d6eb 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c @@ -122,6 +122,216 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } else { + return OLED_ROTATION_270; + } +} + +void render_space(void) { + oled_write_P(PSTR(" "), false); +} + +void render_mod_status_gui_alt(uint8_t modifiers) { + static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0}; + static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0}; + static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0}; + static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0}; + + static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0}; + static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0}; + static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0}; + static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_1, false); + } else { + oled_write_P(gui_off_1, false); + } + + if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_1, false); + } else { + oled_write_P(alt_off_1, false); + } + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_2, false); + } else { + oled_write_P(gui_off_2, false); + } + + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_2, false); + } else { + oled_write_P(alt_off_2, false); + } +} + +void render_mod_status_ctrl_shift(uint8_t modifiers) { + static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0}; + static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0}; + static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0}; + static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0}; + + static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0}; + static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0}; + static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0}; + static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_1, false); + } else { + oled_write_P(ctrl_off_1, false); + } + + if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_1, false); + } else { + oled_write_P(shift_off_1, false); + } + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_2, false); + } else { + oled_write_P(ctrl_off_2, false); + } + + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_2, false); + } else { + oled_write_P(shift_off_2, false); + } +} + +void render_logo(void) { + static const char PROGMEM corne_logo[] = { + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0}; + oled_write_P(corne_logo, false); + // oled_write_P(PSTR("Kimiko"), false); +} + +void render_layer_state(void) { + static const char PROGMEM default_layer[] = { + 0x20, 0x94, 0x95, 0x96, 0x20, + 0x20, 0xb4, 0xb5, 0xb6, 0x20, + 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0}; + static const char PROGMEM raise_layer[] = { + 0x20, 0x97, 0x98, 0x99, 0x20, + 0x20, 0xb7, 0xb8, 0xb9, 0x20, + 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0}; + static const char PROGMEM lower_layer[] = { + 0x20, 0x9a, 0x9b, 0x9c, 0x20, + 0x20, 0xba, 0xbb, 0xbc, 0x20, + 0x20, 0xda, 0xdb, 0xdc, 0x20, 0}; + static const char PROGMEM adjust_layer[] = { + 0x20, 0x9d, 0x9e, 0x9f, 0x20, + 0x20, 0xbd, 0xbe, 0xbf, 0x20, + 0x20, 0xdd, 0xde, 0xdf, 0x20, 0}; + if(layer_state_is(_ADJUST)) { + oled_write_P(adjust_layer, false); + } else if(layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if(layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else { + oled_write_P(default_layer, false); + } +} + +void render_status_main(void) { + render_space(); + render_space(); + render_logo(); + render_space(); + render_layer_state(); + render_space(); + render_mod_status_gui_alt(get_mods()|get_oneshot_mods()); + render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods()); +} + +void render_status_secondary(void) { + render_space(); + render_space(); + render_logo(); + render_space(); +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_status_secondary(); + } + return false; +} + +#endif + #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, @@ -130,3 +340,5 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_ADJUST] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(UG_SATD, UG_SATU) }, }; #endif // ENCODER_MAP_ENABLE + + diff --git a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c index a569beed22..e2518afd54 100644 --- a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c @@ -103,8 +103,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -115,8 +115,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, - [_LOWER] = { ENCODER_CCW_CW(RM_HUEU, KC_TAB), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_RAISE] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, - [_ADJUST] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [_LOWER] = { ENCODER_CCW_CW(RGB_HUI, KC_TAB), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keycapsss/kimiko/rev2/rev2.c b/keyboards/keycapsss/kimiko/rev2/rev2.c index a7031b7a47..c5765812c0 100644 --- a/keyboards/keycapsss/kimiko/rev2/rev2.c +++ b/keyboards/keycapsss/kimiko/rev2/rev2.c @@ -76,7 +76,7 @@ void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if (modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -142,7 +142,7 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if (modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); diff --git a/keyboards/keycapsss/kimiko/rules.mk b/keyboards/keycapsss/kimiko/rules.mk new file mode 100644 index 0000000000..cb9f69d6bb --- /dev/null +++ b/keyboards/keycapsss/kimiko/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keycapsss/kimiko/rev2 diff --git a/keyboards/keycapsss/o4l_5x12/keyboard.json b/keyboards/keycapsss/o4l_5x12/keyboard.json index 7425dc7a0b..d83bc58795 100644 --- a/keyboards/keycapsss/o4l_5x12/keyboard.json +++ b/keyboards/keycapsss/o4l_5x12/keyboard.json @@ -32,6 +32,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -48,7 +49,8 @@ "rows": ["F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x12"], "layouts": { "LAYOUT_ortho_5x12": { diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c index 1e12efc1c1..ab5b9de62f 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c @@ -5,6 +5,11 @@ enum layer_names { _LOWER }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -24,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -48,3 +53,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_TOGG, QK_BOOT, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + return false; + } + return true; +}; diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c index e775008bd4..2833201d97 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c @@ -8,7 +8,8 @@ enum layer_names { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + LOWER, RAISE }; @@ -82,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|AudOff|AGnorm|AGswap| | | | | | + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -92,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_5x12( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, - _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -100,6 +101,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c b/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c index 3b28233ab7..944f822fb3 100644 --- a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c +++ b/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c @@ -51,8 +51,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Navigation layer */ [_NAVIGATION] = LAYOUT_ortho_4x4( - MS_BTN1, MS_UP, MS_BTN2, XXXXXXX, - MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, + KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX, + KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX ), @@ -144,7 +144,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_MEDIA] = { ENCODER_CCW_CW(KC_F18, KC_F17), ENCODER_CCW_CW(KC_F20, KC_F19) } #else [_NUMPAD] = { ENCODER_CCW_CW(KC_F18, KC_F17), ENCODER_CCW_CW(KC_F20, KC_F19), ENCODER_CCW_CW(KC_F22, KC_F21), ENCODER_CCW_CW(KC_F24, KC_F23) }, - [_NAVIGATION] = { ENCODER_CCW_CW(C(S(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NAVIGATION] = { ENCODER_CCW_CW(C(S(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_MEDIA] = { ENCODER_CCW_CW(KC_F18, KC_F17), ENCODER_CCW_CW(KC_F20, KC_F19), ENCODER_CCW_CW(KC_BRID, KC_BRIU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } #endif }; diff --git a/keyboards/keycapsss/plaid_pad/rev1/keyboard.json b/keyboards/keycapsss/plaid_pad/rev1/keyboard.json index fd85b0cff7..e4a8a8d3c8 100644 --- a/keyboards/keycapsss/plaid_pad/rev1/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev1/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rev2/keyboard.json b/keyboards/keycapsss/plaid_pad/rev2/keyboard.json index 2e00961d9b..8dc84d4ee8 100644 --- a/keyboards/keycapsss/plaid_pad/rev2/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev2/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rev3/keyboard.json b/keyboards/keycapsss/plaid_pad/rev3/keyboard.json index 49aadb2030..4e1d071287 100644 --- a/keyboards/keycapsss/plaid_pad/rev3/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev3/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rules.mk b/keyboards/keycapsss/plaid_pad/rules.mk new file mode 100644 index 0000000000..0ab7cc3141 --- /dev/null +++ b/keyboards/keycapsss/plaid_pad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keycapsss/plaid_pad/rev1 diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c index 27ff94561f..636e83b527 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c index f4f0c0af47..e4c640d6bf 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c @@ -128,7 +128,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/c1_pro/ansi/white/keyboard.json b/keyboards/keychron/c1_pro/ansi/white/keyboard.json index 806dc25bb5..466de1d6e3 100644 --- a/keyboards/keychron/c1_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c1_pro/ansi/white/keyboard.json @@ -119,7 +119,8 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true + "wave_up_down": true, + "effect_max": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, diff --git a/keyboards/keychron/c1_pro/info.json b/keyboards/keychron/c1_pro/info.json index d38a273d45..e40c2b9960 100644 --- a/keyboards/keychron/c1_pro/info.json +++ b/keyboards/keychron/c1_pro/info.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json deleted file mode 100644 index 07a0688e0a..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "keyboards_name": "Keychron C1 Pro V2 Non-Light", - "usb": { - "pid": "0x051C", - "device_version": "1.0.0" - } -} diff --git a/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c deleted file mode 100644 index 3c24214b9c..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN, -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_SLEP, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, KC_NO, KC_SLEP, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; - -// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h b/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h deleted file mode 100644 index 739eb788fd..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO -#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND - -/* Set LED driver current */ -#define SNLED27351_CURRENT_TUNE { 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 } diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json deleted file mode 100644 index e1aca75ea5..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "keyboard_name": "Keychron C1 Pro V2 RGB", - "features": { - "rgb_matrix": true - }, - "rgb_matrix": { - "animations": { - "band_spiral_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, - "jellybean_raindrops": true, - "pixel_rain": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "typing_heatmap": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, - {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, - {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, - {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, - - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 46, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 59, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 85, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 98, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 111, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 124, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 137, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 150, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 163, "y": 27, "flags": 4}, - {"matrix": [2, 13], "x": 179, "y": 27, "flags": 1}, - {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, - - {"matrix": [3, 0], "x": 5, "y": 39, "flags": 8}, - {"matrix": [3, 1], "x": 23, "y": 39, "flags": 4}, - {"matrix": [3, 2], "x": 36, "y": 39, "flags": 4}, - {"matrix": [3, 3], "x": 49, "y": 39, "flags": 4}, - {"matrix": [3, 4], "x": 62, "y": 39, "flags": 4}, - {"matrix": [3, 5], "x": 75, "y": 39, "flags": 4}, - {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, - {"matrix": [3, 7], "x": 101, "y": 39, "flags": 4}, - {"matrix": [3, 8], "x": 114, "y": 39, "flags": 4}, - {"matrix": [3, 9], "x": 127, "y": 39, "flags": 4}, - {"matrix": [3, 10], "x": 140, "y": 39, "flags": 4}, - {"matrix": [3, 11], "x": 153, "y": 39, "flags": 4}, - {"matrix": [3, 13], "x": 174, "y": 39, "flags": 1}, - - {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 82, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 95, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 108, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 121, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 134, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 147, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, - - {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 132, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 165, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 181, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0516" - } -} diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c deleted file mode 100644 index e775db45d1..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, KC_NO, RM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; - -// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c deleted file mode 100644 index 8c5b45583a..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -// clang-format off -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, CB9_CA1, CB7_CA1, CB8_CA1}, - {0, CB9_CA2, CB7_CA2, CB8_CA2}, - {0, CB9_CA3, CB7_CA3, CB8_CA3}, - {0, CB9_CA4, CB7_CA4, CB8_CA4}, - {0, CB9_CA5, CB7_CA5, CB8_CA5}, - {0, CB9_CA6, CB7_CA6, CB8_CA6}, - {0, CB9_CA7, CB7_CA7, CB8_CA7}, - {0, CB9_CA8, CB7_CA8, CB8_CA8}, - {0, CB9_CA9, CB7_CA9, CB8_CA9}, - {0, CB9_CA10, CB7_CA10, CB8_CA10}, - {0, CB9_CA11, CB7_CA11, CB8_CA11}, - {0, CB9_CA12, CB7_CA12, CB8_CA12}, - {0, CB9_CA13, CB7_CA13, CB8_CA13}, - {0, CB9_CA15, CB7_CA15, CB8_CA15}, - {0, CB9_CA16, CB7_CA16, CB8_CA16}, - {0, CB12_CA5, CB10_CA5, CB11_CA5}, - - {0, CB3_CA1, CB1_CA1, CB2_CA1}, - {0, CB3_CA2, CB1_CA2, CB2_CA2}, - {0, CB3_CA3, CB1_CA3, CB2_CA3}, - {0, CB3_CA4, CB1_CA4, CB2_CA4}, - {0, CB3_CA5, CB1_CA5, CB2_CA5}, - {0, CB3_CA6, CB1_CA6, CB2_CA6}, - {0, CB3_CA7, CB1_CA7, CB2_CA7}, - {0, CB3_CA8, CB1_CA8, CB2_CA8}, - {0, CB3_CA9, CB1_CA9, CB2_CA9}, - {0, CB3_CA10, CB1_CA10, CB2_CA10}, - {0, CB3_CA11, CB1_CA11, CB2_CA11}, - {0, CB3_CA12, CB1_CA12, CB2_CA12}, - {0, CB3_CA13, CB1_CA13, CB2_CA13}, - {0, CB3_CA14, CB1_CA14, CB2_CA14}, - {0, CB3_CA15, CB1_CA15, CB2_CA15}, - {0, CB3_CA16, CB1_CA16, CB2_CA16}, - {0, CB12_CA9, CB10_CA9, CB11_CA9}, - - {0, CB6_CA1, CB4_CA1, CB5_CA1}, - {0, CB6_CA2, CB4_CA2, CB5_CA2}, - {0, CB6_CA3, CB4_CA3, CB5_CA3}, - {0, CB6_CA4, CB4_CA4, CB5_CA4}, - {0, CB6_CA5, CB4_CA5, CB5_CA5}, - {0, CB6_CA6, CB4_CA6, CB5_CA6}, - {0, CB6_CA7, CB4_CA7, CB5_CA7}, - {0, CB6_CA8, CB4_CA8, CB5_CA8}, - {0, CB6_CA9, CB4_CA9, CB5_CA9}, - {0, CB6_CA10, CB4_CA10, CB5_CA10}, - {0, CB6_CA11, CB4_CA11, CB5_CA11}, - {0, CB6_CA12, CB4_CA12, CB5_CA12}, - {0, CB6_CA13, CB4_CA13, CB5_CA13}, - {0, CB6_CA14, CB4_CA14, CB5_CA14}, - {0, CB6_CA15, CB4_CA15, CB5_CA15}, - {0, CB6_CA16, CB4_CA16, CB5_CA16}, - {0, CB12_CA14, CB10_CA14, CB11_CA14}, - - {1, CB3_CA16, CB1_CA16, CB2_CA16}, - {1, CB3_CA15, CB1_CA15, CB2_CA15}, - {1, CB3_CA14, CB1_CA14, CB2_CA14}, - {1, CB3_CA13, CB1_CA13, CB2_CA13}, - {1, CB3_CA12, CB1_CA12, CB2_CA12}, - {1, CB3_CA11, CB1_CA11, CB2_CA11}, - {1, CB3_CA10, CB1_CA10, CB2_CA10}, - {1, CB3_CA9, CB1_CA9, CB2_CA9}, - {1, CB3_CA8, CB1_CA8, CB2_CA8}, - {1, CB3_CA7, CB1_CA7, CB2_CA7}, - {1, CB3_CA6, CB1_CA6, CB2_CA6}, - {1, CB3_CA5, CB1_CA5, CB2_CA5}, - {1, CB3_CA3, CB1_CA3, CB2_CA3}, - - {1, CB9_CA16, CB7_CA16, CB8_CA16}, - {1, CB9_CA14, CB7_CA14, CB8_CA14}, - {1, CB9_CA13, CB7_CA13, CB8_CA13}, - {1, CB9_CA12, CB7_CA12, CB8_CA12}, - {1, CB9_CA11, CB7_CA11, CB8_CA11}, - {1, CB9_CA10, CB7_CA10, CB8_CA10}, - {1, CB9_CA9, CB7_CA9, CB8_CA9}, - {1, CB9_CA8, CB7_CA8, CB8_CA8}, - {1, CB9_CA7, CB7_CA7, CB8_CA7}, - {1, CB9_CA6, CB7_CA6, CB8_CA6}, - {1, CB9_CA5, CB7_CA5, CB8_CA5}, - {1, CB9_CA3, CB7_CA3, CB8_CA3}, - {1, CB9_CA1, CB7_CA1, CB8_CA1}, - - {1, CB6_CA16, CB4_CA16, CB5_CA16}, - {1, CB6_CA15, CB4_CA15, CB5_CA15}, - {1, CB6_CA14, CB4_CA14, CB5_CA14}, - {1, CB6_CA10, CB4_CA10, CB5_CA10}, - {1, CB6_CA6, CB4_CA6, CB5_CA6}, - {1, CB6_CA5, CB4_CA5, CB5_CA5}, - {1, CB6_CA4, CB4_CA4, CB5_CA4}, - {1, CB6_CA3, CB4_CA3, CB5_CA3}, - {1, CB6_CA2, CB4_CA2, CB5_CA2}, - {1, CB6_CA1, CB4_CA1, CB5_CA1}, - {1, CB12_CA10, CB10_CA10, CB11_CA10}, -}; -#endif // RGB_MATRIX_ENABLE - -// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/config.h b/keyboards/keychron/c1_pro_v2/ansi/white/config.h deleted file mode 100644 index 4fdbf33656..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/white/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* LED Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND - -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL - -#define SNLED27351_CURRENT_TUNE { 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 } diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json deleted file mode 100644 index cd29952e62..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "features": { - "led_matrix": true - }, - "led_matrix": { - "animations": { - "band_pinwheel": true, - "band_spiral": true, - "breathing": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_up_down": true, - "dual_beacon": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "wave_left_right": true, - "wave_up_down": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, - {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, - {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, - {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, - - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 46, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 59, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 85, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 98, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 111, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 124, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 137, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 150, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 163, "y": 27, "flags": 4}, - {"matrix": [2, 13], "x": 179, "y": 27, "flags": 1}, - {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, - - {"matrix": [3, 0], "x": 5, "y": 39, "flags": 8}, - {"matrix": [3, 1], "x": 23, "y": 39, "flags": 4}, - {"matrix": [3, 2], "x": 36, "y": 39, "flags": 4}, - {"matrix": [3, 3], "x": 49, "y": 39, "flags": 4}, - {"matrix": [3, 4], "x": 62, "y": 39, "flags": 4}, - {"matrix": [3, 5], "x": 75, "y": 39, "flags": 4}, - {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, - {"matrix": [3, 7], "x": 101, "y": 39, "flags": 4}, - {"matrix": [3, 8], "x": 114, "y": 39, "flags": 4}, - {"matrix": [3, 9], "x": 127, "y": 39, "flags": 4}, - {"matrix": [3, 10], "x": 140, "y": 39, "flags": 4}, - {"matrix": [3, 11], "x": 153, "y": 39, "flags": 4}, - {"matrix": [3, 13], "x": 174, "y": 39, "flags": 1}, - - {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 82, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 95, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 108, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 121, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 134, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 147, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, - - {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 132, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 165, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 181, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0519" - } -} diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c deleted file mode 100644 index af1c54d738..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, LM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, LM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, _______, LM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, LM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; - -// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/white.c b/keyboards/keychron/c1_pro_v2/ansi/white/white.c deleted file mode 100644 index 36fa6bf1d1..0000000000 --- a/keyboards/keychron/c1_pro_v2/ansi/white/white.c +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef LED_MATRIX_ENABLE -// clang-format off -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | LED address - * | | */ - {0, CB1_CA16}, - {0, CB1_CA15}, - {0, CB1_CA14}, - {0, CB1_CA13}, - {0, CB1_CA12}, - {0, CB1_CA11}, - {0, CB1_CA10}, - {0, CB1_CA9 }, - {0, CB1_CA8 }, - {0, CB1_CA7 }, - {0, CB1_CA6 }, - {0, CB1_CA5 }, - {0, CB1_CA4 }, - {0, CB1_CA2 }, - {0, CB1_CA1 }, - {0, CB7_CA1 }, - - {0, CB2_CA16}, - {0, CB2_CA15}, - {0, CB2_CA14}, - {0, CB2_CA13}, - {0, CB2_CA12}, - {0, CB2_CA11}, - {0, CB2_CA10}, - {0, CB2_CA9 }, - {0, CB2_CA8 }, - {0, CB2_CA7 }, - {0, CB2_CA6 }, - {0, CB2_CA5 }, - {0, CB2_CA4 }, - {0, CB2_CA3 }, - {0, CB2_CA2 }, - {0, CB2_CA1 }, - {0, CB8_CA1 }, - - {0, CB3_CA16}, - {0, CB3_CA15}, - {0, CB3_CA14}, - {0, CB3_CA13}, - {0, CB3_CA12}, - {0, CB3_CA11}, - {0, CB3_CA10}, - {0, CB3_CA9 }, - {0, CB3_CA8 }, - {0, CB3_CA7 }, - {0, CB3_CA6 }, - {0, CB3_CA5 }, - {0, CB3_CA4 }, - {0, CB3_CA3 }, - {0, CB3_CA2 }, - {0, CB3_CA1 }, - {0, CB7_CA6 }, - - {0, CB4_CA16}, - {0, CB4_CA15}, - {0, CB4_CA14}, - {0, CB4_CA13}, - {0, CB4_CA12}, - {0, CB4_CA11}, - {0, CB4_CA10}, - {0, CB4_CA9 }, - {0, CB4_CA8 }, - {0, CB4_CA7 }, - {0, CB4_CA6 }, - {0, CB4_CA5 }, - {0, CB4_CA3 }, - - {0, CB5_CA16}, - {0, CB5_CA14}, - {0, CB5_CA13}, - {0, CB5_CA12}, - {0, CB5_CA11}, - {0, CB5_CA10}, - {0, CB5_CA9 }, - {0, CB5_CA8 }, - {0, CB5_CA7 }, - {0, CB5_CA6 }, - {0, CB5_CA5 }, - {0, CB5_CA3 }, - {0, CB5_CA1 }, - - {0, CB6_CA16}, - {0, CB6_CA15}, - {0, CB6_CA14}, - {0, CB6_CA10}, - {0, CB6_CA6 }, - {0, CB6_CA5 }, - {0, CB6_CA4 }, - {0, CB6_CA3 }, - {0, CB6_CA2 }, - {0, CB6_CA1 }, - {0, CB7_CA13}, -}; -#endif - -// clang-fomat on diff --git a/keyboards/keychron/c1_pro_v2/board.h b/keyboards/keychron/c1_pro_v2/board.h deleted file mode 100644 index e6cf0b2856..0000000000 --- a/keyboards/keychron/c1_pro_v2/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2025 @ Keychron (https://www.keychron.com) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c1_pro_v2/c1_pro_v2.c b/keyboards/keychron/c1_pro_v2/c1_pro_v2.c deleted file mode 100644 index d4ff5eb9dc..0000000000 --- a/keyboards/keychron/c1_pro_v2/c1_pro_v2.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef DIP_SWITCH_ENABLE -bool dip_switch_update_kb(uint8_t index, bool active) { - if (!dip_switch_update_user(index, active)) { - return false; - } - if (index == 0) { - default_layer_set(1UL << (active ? 0 : 2)); - } - return true; -} -#endif - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - default: - return true; - } -} - -void keyboard_post_init_kb(void) { - gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); - gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - - keyboard_post_init_user(); -} - -void housekeeping_task_kb(void) { - if (default_layer_state == (1U << 0)) { - gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - } - if (default_layer_state == (1U << 2)) { - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE); - } -} - -void suspend_power_down_kb(void) { - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - - suspend_power_down_user(); -} diff --git a/keyboards/keychron/c1_pro_v2/config.h b/keyboards/keychron/c1_pro_v2/config.h deleted file mode 100644 index 71c3121877..0000000000 --- a/keyboards/keychron/c1_pro_v2/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2025 @ Keychron(https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Increase I2C speed to 1000 KHz */ -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - -/* System indication led */ -#define LED_MAC_OS_PIN C10 -#define LED_WIN_OS_PIN C11 -#define LED_OS_PIN_ON_STATE 1 diff --git a/keyboards/keychron/c1_pro_v2/halconf.h b/keyboards/keychron/c1_pro_v2/halconf.h deleted file mode 100644 index d0a9933637..0000000000 --- a/keyboards/keychron/c1_pro_v2/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/keychron/c1_pro_v2/info.json b/keyboards/keychron/c1_pro_v2/info.json deleted file mode 100644 index 1e6305eb33..0000000000 --- a/keyboards/keychron/c1_pro_v2/info.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "manufacturer": "Keychron", - "maintainer": "lalalademaxiya1", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": true, - "dip_switch": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "C9" - }, - "dip_switch": { - "pins": ["D2"] - }, - "matrix_pins": { - "cols": ["A0", "A1", "A2", "A3", "C0", "C1", "C2", "C3", "A8", "C12", "B9", "C6", "C7", "C4", "C5", "A15", "B10"], - "rows": ["B0", "B1", "B8", "B3", "B4", "B5"] - }, - "processor": "STM32F401", - "url": "https://github.com/Keychron", - "usb": { - "vid": "0x3434" - }, - "community_layouts": ["tkl_ansi"], - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [0, 10], "x": 12, "y": 0}, - {"matrix": [0, 11], "x": 13, "y": 0}, - {"matrix": [0, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/c1_pro_v2/mcuconf.h b/keyboards/keychron/c1_pro_v2/mcuconf.h deleted file mode 100644 index 95966a32ce..0000000000 --- a/keyboards/keychron/c1_pro_v2/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c1_pro_v2/readme.md b/keyboards/keychron/c1_pro_v2/readme.md deleted file mode 100644 index 6cabd71b18..0000000000 --- a/keyboards/keychron/c1_pro_v2/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# Keychron C1 Pro V2 - -![Keychron C1 Pro](https://i.imgur.com/Svdm4lph.jpg) - -A customizable 80% TKL keyboard. - -v1 is based on STM32L432 and v2 is based on STM32F402. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Keychron C1 Pro -* Hardware Availability: [Keychron](https://www.keychron.com) - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1_pro_v2/ansi/rgb:default - make keychron/c1_pro_v2/ansi/white:default - make keychron/c1_pro_v2/ansi/non_light:default - -Flashing example for this keyboard: - - make keychron/c1_pro_v2/ansi/rgb:default:flash - make keychron/c1_pro_v2/ansi/white:default:flash - make keychron/c1_pro_v2/ansi/non_light:default:flash - -## bootloader - -Enter the bootloader in two ways: - -* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -* **Physical reset button**: Briefly press the RESET button under the spacebar. - -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). diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c index 2a26df5171..07f523e30a 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, 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_P4, KC_P5, KC_P6, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), [MAC_FN] = 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, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [WIN_BASE] = LAYOUT( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, 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_P4, KC_P5, KC_P6, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), [WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/keychron/c2_pro/ansi/white/keyboard.json b/keyboards/keychron/c2_pro/ansi/white/keyboard.json index d6e5c745ce..cd05e77aa2 100644 --- a/keyboards/keychron/c2_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c2_pro/ansi/white/keyboard.json @@ -136,7 +136,8 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true + "wave_up_down": true, + "effect_max": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, diff --git a/keyboards/keychron/c2_pro/c2_pro.c b/keyboards/keychron/c2_pro/c2_pro.c index bb7aba4f81..593e404997 100644 --- a/keyboards/keychron/c2_pro/c2_pro.c +++ b/keyboards/keychron/c2_pro/c2_pro.c @@ -31,7 +31,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif // DIP_SWITCH_ENABLE # ifdef RGB_MATRIX_ENABLE -# define LED_TOGGLE_KEYCODE QK_RGB_MATRIX_TOGGLE # define LED_SET_FLAGS rgb_matrix_set_flags # define LED_GET_FLAGS rgb_matrix_get_flags # define LED_SET_ALL_OFF rgb_matrix_set_color_all(COLOR_BLACK) @@ -48,7 +47,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { # endif # ifdef LED_MATRIX_ENABLE -# define LED_TOGGLE_KEYCODE QK_LED_MATRIX_TOGGLE # define LED_SET_FLAGS led_matrix_set_flags # define LED_GET_FLAGS led_matrix_get_flags # define LED_SET_ALL_OFF led_matrix_set_value_all(COLOR_BLACK) @@ -68,7 +66,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case LED_TOGGLE_KEYCODE: + case RGB_TOG: if (record->event.pressed) { switch (LED_GET_FLAGS()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json index 9c0e1ac72e..4b11fc213a 100644 --- a/keyboards/keychron/c2_pro/info.json +++ b/keyboards/keychron/c2_pro/info.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h b/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h deleted file mode 100644 index 739eb788fd..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO -#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND - -/* Set LED driver current */ -#define SNLED27351_CURRENT_TUNE { 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 } diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json b/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json deleted file mode 100644 index f619ab096c..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "keyboard_name": "Keychron C2 Pro V2 RGB", - "features": { - "rgb_matrix": true - }, - "rgb_matrix": { - "animations": { - "band_spiral_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, - "jellybean_raindrops": true, - "pixel_rain": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "typing_heatmap": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, - {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, - {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, - {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, - {"matrix": [1, 17], "x": 193, "y": 15, "flags": 4}, - {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, - {"matrix": [1, 19], "x": 214, "y": 15, "flags": 4}, - {"matrix": [1, 20], "x": 224, "y": 15, "flags": 4}, - - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, - {"matrix": [2, 13], "x": 143, "y": 27, "flags": 1}, - {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, - {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, - {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, - {"matrix": [2, 19], "x": 214, "y": 27, "flags": 4}, - {"matrix": [2, 20], "x": 224, "y": 34, "flags": 4}, - - {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, - {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, - {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, - {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, - {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, - {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, - {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, - {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, - {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, - {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, - {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, - {"matrix": [3, 19], "x": 214, "y": 40, "flags": 4}, - - {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, - {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, - {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, - {"matrix": [4, 19], "x": 214, "y": 52, "flags": 4}, - {"matrix": [4, 20], "x": 224, "y": 58, "flags": 4}, - - {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, - {"matrix": [5, 17], "x": 198, "y": 64, "flags": 4}, - {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0526" - } -} diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c deleted file mode 100644 index 4d18d2fc6e..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN, -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_104_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - - [MAC_FN] = LAYOUT_104_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - - [WIN_BASE] = LAYOUT_104_ansi( - 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_PSCR, KC_NO, RM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - - [WIN_FN] = LAYOUT_104_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALU, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; - -// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c deleted file mode 100644 index d92cf177f4..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c +++ /dev/null @@ -1,139 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, CB9_CA1, CB7_CA1, CB8_CA1}, - {0, CB9_CA2, CB7_CA2, CB8_CA2}, - {0, CB9_CA3, CB7_CA3, CB8_CA3}, - {0, CB9_CA4, CB7_CA4, CB8_CA4}, - {0, CB9_CA5, CB7_CA5, CB8_CA5}, - {0, CB9_CA6, CB7_CA6, CB8_CA6}, - {0, CB9_CA7, CB7_CA7, CB8_CA7}, - {0, CB9_CA8, CB7_CA8, CB8_CA8}, - {0, CB9_CA9, CB7_CA9, CB8_CA9}, - {0, CB9_CA10, CB7_CA10, CB8_CA10}, - {0, CB9_CA11, CB7_CA11, CB8_CA11}, - {0, CB9_CA12, CB7_CA12, CB8_CA12}, - {0, CB9_CA13, CB7_CA13, CB8_CA13}, - {0, CB9_CA15, CB7_CA15, CB8_CA15}, - {0, CB9_CA16, CB7_CA16, CB8_CA16}, - {0, CB12_CA5, CB10_CA5, CB11_CA5}, - - {0, CB3_CA1, CB1_CA1, CB2_CA1}, - {0, CB3_CA2, CB1_CA2, CB2_CA2}, - {0, CB3_CA3, CB1_CA3, CB2_CA3}, - {0, CB3_CA4, CB1_CA4, CB2_CA4}, - {0, CB3_CA5, CB1_CA5, CB2_CA5}, - {0, CB3_CA6, CB1_CA6, CB2_CA6}, - {0, CB3_CA7, CB1_CA7, CB2_CA7}, - {0, CB3_CA8, CB1_CA8, CB2_CA8}, - {0, CB3_CA9, CB1_CA9, CB2_CA9}, - {0, CB3_CA10, CB1_CA10, CB2_CA10}, - {0, CB3_CA11, CB1_CA11, CB2_CA11}, - {0, CB3_CA12, CB1_CA12, CB2_CA12}, - {0, CB3_CA13, CB1_CA13, CB2_CA13}, - {0, CB3_CA14, CB1_CA14, CB2_CA14}, - {0, CB3_CA15, CB1_CA15, CB2_CA15}, - {0, CB3_CA16, CB1_CA16, CB2_CA16}, - {0, CB12_CA9, CB10_CA9, CB11_CA9}, - {0, CB12_CA10, CB10_CA10, CB11_CA10}, - {0, CB12_CA11, CB10_CA11, CB11_CA11}, - {0, CB12_CA12, CB10_CA12, CB11_CA12}, - {0, CB12_CA13, CB10_CA13, CB11_CA13}, - - {0, CB6_CA1, CB4_CA1, CB5_CA1}, - {0, CB6_CA2, CB4_CA2, CB5_CA2}, - {0, CB6_CA3, CB4_CA3, CB5_CA3}, - {0, CB6_CA4, CB4_CA4, CB5_CA4}, - {0, CB6_CA5, CB4_CA5, CB5_CA5}, - {0, CB6_CA6, CB4_CA6, CB5_CA6}, - {0, CB6_CA7, CB4_CA7, CB5_CA7}, - {0, CB6_CA8, CB4_CA8, CB5_CA8}, - {0, CB6_CA9, CB4_CA9, CB5_CA9}, - {0, CB6_CA10, CB4_CA10, CB5_CA10}, - {0, CB6_CA11, CB4_CA11, CB5_CA11}, - {0, CB6_CA12, CB4_CA12, CB5_CA12}, - {0, CB6_CA13, CB4_CA13, CB5_CA13}, - {0, CB6_CA14, CB4_CA14, CB5_CA14}, - {0, CB6_CA15, CB4_CA15, CB5_CA15}, - {0, CB6_CA16, CB4_CA16, CB5_CA16}, - {0, CB12_CA14, CB10_CA14, CB11_CA14}, - {0, CB12_CA15, CB10_CA15, CB11_CA15}, - {0, CB12_CA16, CB10_CA16, CB11_CA16}, - {1, CB12_CA1, CB10_CA1, CB11_CA1}, - {1, CB12_CA2, CB10_CA2, CB11_CA2}, - - {1, CB3_CA16, CB1_CA16, CB2_CA16}, - {1, CB3_CA15, CB1_CA15, CB2_CA15}, - {1, CB3_CA14, CB1_CA14, CB2_CA14}, - {1, CB3_CA13, CB1_CA13, CB2_CA13}, - {1, CB3_CA12, CB1_CA12, CB2_CA12}, - {1, CB3_CA11, CB1_CA11, CB2_CA11}, - {1, CB3_CA10, CB1_CA10, CB2_CA10}, - {1, CB3_CA9, CB1_CA9, CB2_CA9}, - {1, CB3_CA8, CB1_CA8, CB2_CA8}, - {1, CB3_CA7, CB1_CA7, CB2_CA7}, - {1, CB3_CA6, CB1_CA6, CB2_CA6}, - {1, CB3_CA5, CB1_CA5, CB2_CA5}, - {1, CB3_CA3, CB1_CA3, CB2_CA3}, - {1, CB12_CA3, CB10_CA3, CB11_CA3}, - {1, CB12_CA4, CB10_CA4, CB11_CA4}, - {1, CB12_CA5, CB10_CA5, CB11_CA5}, - - {1, CB9_CA16, CB7_CA16, CB8_CA16}, - {1, CB9_CA14, CB7_CA14, CB8_CA14}, - {1, CB9_CA13, CB7_CA13, CB8_CA13}, - {1, CB9_CA12, CB7_CA12, CB8_CA12}, - {1, CB9_CA11, CB7_CA11, CB8_CA11}, - {1, CB9_CA10, CB7_CA10, CB8_CA10}, - {1, CB9_CA9, CB7_CA9, CB8_CA9}, - {1, CB9_CA8, CB7_CA8, CB8_CA8}, - {1, CB9_CA7, CB7_CA7, CB8_CA7}, - {1, CB9_CA6, CB7_CA6, CB8_CA6}, - {1, CB9_CA5, CB7_CA5, CB8_CA5}, - {1, CB9_CA3, CB7_CA3, CB8_CA3}, - {1, CB9_CA1, CB7_CA1, CB8_CA1}, - {1, CB12_CA6, CB10_CA6, CB11_CA6}, - {1, CB12_CA7, CB10_CA7, CB11_CA7}, - {1, CB12_CA8, CB10_CA8, CB11_CA8}, - {1, CB12_CA9, CB10_CA9, CB11_CA9}, - - {1, CB6_CA16, CB4_CA16, CB5_CA16}, - {1, CB6_CA15, CB4_CA15, CB5_CA15}, - {1, CB6_CA14, CB4_CA14, CB5_CA14}, - {1, CB6_CA10, CB4_CA10, CB5_CA10}, - {1, CB6_CA6, CB4_CA6, CB5_CA6}, - {1, CB6_CA5, CB4_CA5, CB5_CA5}, - {1, CB6_CA4, CB4_CA4, CB5_CA4}, - {1, CB6_CA3, CB4_CA3, CB5_CA3}, - {1, CB6_CA2, CB4_CA2, CB5_CA2}, - {1, CB6_CA1, CB4_CA1, CB5_CA1}, - {1, CB12_CA10, CB10_CA10, CB11_CA10}, - {1, CB12_CA11, CB10_CA11, CB11_CA11}, - {1, CB12_CA12, CB10_CA12, CB11_CA12}, -}; -#endif - -// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/config.h b/keyboards/keychron/c2_pro_v2/ansi/white/config.h deleted file mode 100644 index 65302c9969..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/white/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* LED Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND - -/* Use the first 8 channels of led driver */ -#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL - -/* Set LED driver current */ -#define SNLED27351_CURRENT_TUNE { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 } diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json b/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json deleted file mode 100644 index 020f6c0bd9..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "keyboard_name": "Keychron C2 Pro V2 White", - "features": { - "led_matrix": true - }, - "led_matrix": { - "animations": { - "band_pinwheel": true, - "band_spiral": true, - "breathing": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_up_down": true, - "dual_beacon": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "wave_left_right": true, - "wave_up_down": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, - {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, - {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, - {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, - {"matrix": [1, 17], "x": 193, "y": 15, "flags": 4}, - {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, - {"matrix": [1, 19], "x": 214, "y": 15, "flags": 4}, - {"matrix": [1, 20], "x": 224, "y": 15, "flags": 4}, - - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, - {"matrix": [2, 13], "x": 143, "y": 27, "flags": 1}, - {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, - {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, - {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, - {"matrix": [2, 19], "x": 214, "y": 27, "flags": 4}, - {"matrix": [2, 20], "x": 224, "y": 34, "flags": 4}, - - {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, - {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, - {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, - {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, - {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, - {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, - {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, - {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, - {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, - {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, - {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, - {"matrix": [3, 19], "x": 214, "y": 40, "flags": 4}, - - {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, - {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, - {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, - {"matrix": [4, 19], "x": 214, "y": 52, "flags": 4}, - {"matrix": [4, 20], "x": 224, "y": 58, "flags": 4}, - - {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, - {"matrix": [5, 17], "x": 198, "y": 64, "flags": 4}, - {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0529" - } -} diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c deleted file mode 100644 index da212f3d54..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN, -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_104_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, LM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - - [MAC_FN] = LAYOUT_104_ansi( - _______, 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - - [WIN_BASE] = LAYOUT_104_ansi( - 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_PSCR, KC_NO, BL_STEP, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - - [WIN_FN] = LAYOUT_104_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, LM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; - -// clang-format on - diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/white.c b/keyboards/keychron/c2_pro_v2/ansi/white/white.c deleted file mode 100644 index 3ba0274e6a..0000000000 --- a/keyboards/keychron/c2_pro_v2/ansi/white/white.c +++ /dev/null @@ -1,138 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -// clang-format off -#ifdef LED_MATRIX_ENABLE -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | LED address - * | | */ - {0, CB1_CA16}, - {0, CB1_CA15}, - {0, CB1_CA14}, - {0, CB1_CA13}, - {0, CB1_CA12}, - {0, CB1_CA11}, - {0, CB1_CA10}, - {0, CB1_CA9 }, - {0, CB1_CA8 }, - {0, CB1_CA7 }, - {0, CB1_CA6 }, - {0, CB1_CA5 }, - {0, CB1_CA4 }, - {0, CB1_CA2 }, - {0, CB1_CA1 }, - {0, CB7_CA1 }, - - {0, CB2_CA16}, - {0, CB2_CA15}, - {0, CB2_CA14}, - {0, CB2_CA13}, - {0, CB2_CA12}, - {0, CB2_CA11}, - {0, CB2_CA10}, - {0, CB2_CA9 }, - {0, CB2_CA8 }, - {0, CB2_CA7 }, - {0, CB2_CA6 }, - {0, CB2_CA5 }, - {0, CB2_CA4 }, - {0, CB2_CA3 }, - {0, CB2_CA2 }, - {0, CB2_CA1 }, - {0, CB8_CA1 }, - {0, CB8_CA2 }, - {0, CB8_CA3 }, - {0, CB8_CA4 }, - {0, CB8_CA5 }, - - {0, CB3_CA16}, - {0, CB3_CA15}, - {0, CB3_CA14}, - {0, CB3_CA13}, - {0, CB3_CA12}, - {0, CB3_CA11}, - {0, CB3_CA10}, - {0, CB3_CA9 }, - {0, CB3_CA8 }, - {0, CB3_CA7 }, - {0, CB3_CA6 }, - {0, CB3_CA5 }, - {0, CB3_CA4 }, - {0, CB3_CA3 }, - {0, CB3_CA2 }, - {0, CB3_CA1 }, - {0, CB7_CA6 }, - {0, CB7_CA7 }, - {0, CB7_CA8 }, - {0, CB7_CA9 }, - {0, CB7_CA10}, - - {0, CB4_CA16}, - {0, CB4_CA15}, - {0, CB4_CA14}, - {0, CB4_CA13}, - {0, CB4_CA12}, - {0, CB4_CA11}, - {0, CB4_CA10}, - {0, CB4_CA9 }, - {0, CB4_CA8 }, - {0, CB4_CA7 }, - {0, CB4_CA6 }, - {0, CB4_CA5 }, - {0, CB4_CA3 }, - {0, CB8_CA7 }, - {0, CB8_CA8 }, - {0, CB8_CA9 }, - - {0, CB5_CA16}, - {0, CB5_CA14}, - {0, CB5_CA13}, - {0, CB5_CA12}, - {0, CB5_CA11}, - {0, CB5_CA10}, - {0, CB5_CA9 }, - {0, CB5_CA8 }, - {0, CB5_CA7 }, - {0, CB5_CA6 }, - {0, CB5_CA5 }, - {0, CB5_CA3 }, - {0, CB5_CA1 }, - {0, CB8_CA6 }, - {0, CB8_CA11}, - {0, CB8_CA12}, - {0, CB8_CA10}, - - {0, CB6_CA16}, - {0, CB6_CA15}, - {0, CB6_CA14}, - {0, CB6_CA10}, - {0, CB6_CA6 }, - {0, CB6_CA5 }, - {0, CB6_CA4 }, - {0, CB6_CA3 }, - {0, CB6_CA2 }, - {0, CB6_CA1 }, - {0, CB7_CA13}, - {0, CB7_CA11}, - {0, CB7_CA12}, -}; -#endif - -// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/board.h b/keyboards/keychron/c2_pro_v2/board.h deleted file mode 100644 index e6cf0b2856..0000000000 --- a/keyboards/keychron/c2_pro_v2/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2025 @ Keychron (https://www.keychron.com) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c2_pro_v2/c2_pro_v2.c b/keyboards/keychron/c2_pro_v2/c2_pro_v2.c deleted file mode 100644 index d4ff5eb9dc..0000000000 --- a/keyboards/keychron/c2_pro_v2/c2_pro_v2.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef DIP_SWITCH_ENABLE -bool dip_switch_update_kb(uint8_t index, bool active) { - if (!dip_switch_update_user(index, active)) { - return false; - } - if (index == 0) { - default_layer_set(1UL << (active ? 0 : 2)); - } - return true; -} -#endif - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - default: - return true; - } -} - -void keyboard_post_init_kb(void) { - gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); - gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - - keyboard_post_init_user(); -} - -void housekeeping_task_kb(void) { - if (default_layer_state == (1U << 0)) { - gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - } - if (default_layer_state == (1U << 2)) { - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE); - } -} - -void suspend_power_down_kb(void) { - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - - suspend_power_down_user(); -} diff --git a/keyboards/keychron/c2_pro_v2/config.h b/keyboards/keychron/c2_pro_v2/config.h deleted file mode 100644 index 2c1468fa62..0000000000 --- a/keyboards/keychron/c2_pro_v2/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Indication led */ -#define LED_MAC_OS_PIN C10 -#define LED_WIN_OS_PIN C11 -#define LED_OS_PIN_ON_STATE 1 - -/* The I2C Driver Configuration */ -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/keychron/c2_pro_v2/halconf.h b/keyboards/keychron/c2_pro_v2/halconf.h deleted file mode 100644 index d0a9933637..0000000000 --- a/keyboards/keychron/c2_pro_v2/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/keychron/c2_pro_v2/info.json b/keyboards/keychron/c2_pro_v2/info.json deleted file mode 100644 index 9572c9812a..0000000000 --- a/keyboards/keychron/c2_pro_v2/info.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "usb": { - "vid": "0x3434" - }, - "features": { - "bootmagic": true, - "dip_switch": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "processor": "STM32F401", - "bootloader": "stm32-dfu", - "matrix_pins": { - "cols": ["A0", "A1", "A2", "A3", "C0", "C1", "C2", "C3", "A8", "C12", "B9", "C6", "C7", "C4", "C5","A15", "B10", "B12", "B13", "B14", "B15"], - "rows": ["B0", "B1", "B8", "B3", "B4", "B5"] - }, - "diode_direction": "COL2ROW", - "indicators": { - "caps_lock": "C9", - "num_lock": "C8" - }, - "dip_switch": { - "pins": ["D2"] - }, - "layouts": { - "LAYOUT_104_ansi": { - "layout": [ - {"matrix":[0,0], "x":0, "y":0}, - {"matrix":[0,1], "x":2, "y":0}, - {"matrix":[0,2], "x":3, "y":0}, - {"matrix":[0,3], "x":4, "y":0}, - {"matrix":[0,4], "x":5, "y":0}, - {"matrix":[0,5], "x":6.5, "y":0}, - {"matrix":[0,6], "x":7.5, "y":0}, - {"matrix":[0,7], "x":8.5, "y":0}, - {"matrix":[0,8], "x":9.5, "y":0}, - {"matrix":[0,9], "x":11, "y":0}, - {"matrix":[0,10], "x":12, "y":0}, - {"matrix":[0,11], "x":13, "y":0}, - {"matrix":[0,12], "x":14, "y":0}, - {"matrix":[0,14], "x":15.25, "y":0}, - {"matrix":[0,15], "x":16.25, "y":0}, - {"matrix":[0,16], "x":17.25, "y":0}, - - {"matrix":[1,0], "x":0, "y":1.25}, - {"matrix":[1,1], "x":1, "y":1.25}, - {"matrix":[1,2], "x":2, "y":1.25}, - {"matrix":[1,3], "x":3, "y":1.25}, - {"matrix":[1,4], "x":4, "y":1.25}, - {"matrix":[1,5], "x":5, "y":1.25}, - {"matrix":[1,6], "x":6, "y":1.25}, - {"matrix":[1,7], "x":7, "y":1.25}, - {"matrix":[1,8], "x":8, "y":1.25}, - {"matrix":[1,9], "x":9, "y":1.25}, - {"matrix":[1,10], "x":10, "y":1.25}, - {"matrix":[1,11], "x":11, "y":1.25}, - {"matrix":[1,12], "x":12, "y":1.25}, - {"matrix":[1,13], "x":13, "y":1.25, "w":2}, - {"matrix":[1,14], "x":15.25, "y":1.25}, - {"matrix":[1,15], "x":16.25, "y":1.25}, - {"matrix":[1,16], "x":17.25, "y":1.25}, - {"matrix":[1,17], "x":18.5, "y":1.25}, - {"matrix":[1,18], "x":19.5, "y":1.25}, - {"matrix":[1,19], "x":20.5, "y":1.25}, - {"matrix":[1,20], "x":21.5, "y":1.25}, - - {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, - {"matrix":[2,1], "x":1.5, "y":2.25}, - {"matrix":[2,2], "x":2.5, "y":2.25}, - {"matrix":[2,3], "x":3.5, "y":2.25}, - {"matrix":[2,4], "x":4.5, "y":2.25}, - {"matrix":[2,5], "x":5.5, "y":2.25}, - {"matrix":[2,6], "x":6.5, "y":2.25}, - {"matrix":[2,7], "x":7.5, "y":2.25}, - {"matrix":[2,8], "x":8.5, "y":2.25}, - {"matrix":[2,9], "x":9.5, "y":2.25}, - {"matrix":[2,10], "x":10.5, "y":2.25}, - {"matrix":[2,11], "x":11.5, "y":2.25}, - {"matrix":[2,12], "x":12.5, "y":2.25}, - {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix":[2,14], "x":15.25, "y":2.25}, - {"matrix":[2,15], "x":16.25, "y":2.25}, - {"matrix":[2,16], "x":17.25, "y":2.25}, - {"matrix":[2,17], "x":18.5, "y":2.25}, - {"matrix":[2,18], "x":19.5, "y":2.25}, - {"matrix":[2,19], "x":20.5, "y":2.25}, - {"matrix":[2,20], "x":21.5, "y":2.25, "h":2}, - - {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, - {"matrix":[3,1], "x":1.75, "y":3.25}, - {"matrix":[3,2], "x":2.75, "y":3.25}, - {"matrix":[3,3], "x":3.75, "y":3.25}, - {"matrix":[3,4], "x":4.75, "y":3.25}, - {"matrix":[3,5], "x":5.75, "y":3.25}, - {"matrix":[3,6], "x":6.75, "y":3.25}, - {"matrix":[3,7], "x":7.75, "y":3.25}, - {"matrix":[3,8], "x":8.75, "y":3.25}, - {"matrix":[3,9], "x":9.75, "y":3.25}, - {"matrix":[3,10], "x":10.75, "y":3.25}, - {"matrix":[3,11], "x":11.75, "y":3.25}, - {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, - {"matrix":[3,17], "x":18.5, "y":3.25}, - {"matrix":[3,18], "x":19.5, "y":3.25}, - {"matrix":[3,19], "x":20.5, "y":3.25}, - - {"matrix":[4,0], "x":0, "y":4.25, "w":2.25}, - {"matrix":[4,2], "x":2.25, "y":4.25}, - {"matrix":[4,3], "x":3.25, "y":4.25}, - {"matrix":[4,4], "x":4.25, "y":4.25}, - {"matrix":[4,5], "x":5.25, "y":4.25}, - {"matrix":[4,6], "x":6.25, "y":4.25}, - {"matrix":[4,7], "x":7.25, "y":4.25}, - {"matrix":[4,8], "x":8.25, "y":4.25}, - {"matrix":[4,9], "x":9.25, "y":4.25}, - {"matrix":[4,10], "x":10.25, "y":4.25}, - {"matrix":[4,11], "x":11.25, "y":4.25}, - {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, - {"matrix":[4,15], "x":16.25, "y":4.25}, - {"matrix":[4,17], "x":18.5, "y":4.25}, - {"matrix":[4,18], "x":19.5, "y":4.25}, - {"matrix":[4,19], "x":20.5, "y":4.25}, - {"matrix":[4,20], "x":21.5, "y":4.25, "h":2}, - - {"matrix":[5,0], "x":0, "y":5.25, "w":1.25}, - {"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix":[5,6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix":[5,14], "x":15.25, "y":5.25}, - {"matrix":[5,15], "x":16.25, "y":5.25}, - {"matrix":[5,16], "x":17.25, "y":5.25}, - {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, - {"matrix":[5,18], "x":20.5, "y":5.25} - ] - } - } -} diff --git a/keyboards/keychron/c2_pro_v2/mcuconf.h b/keyboards/keychron/c2_pro_v2/mcuconf.h deleted file mode 100644 index 95966a32ce..0000000000 --- a/keyboards/keychron/c2_pro_v2/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2025 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c2_pro_v2/readme.md b/keyboards/keychron/c2_pro_v2/readme.md deleted file mode 100644 index 4c9462260e..0000000000 --- a/keyboards/keychron/c2_pro_v2/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# Keychron C2 Pro V2 - -![Keychron C2 Pro](https://i.imgur.com/BQE1tFO.jpg) - -A customizable 100% keyboard. - -Rev1 is based on STM32L432 and rev2 is based on STM32F402. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Keychron C2 Pro -* Hardware Availability: [Keychron C2 Pro QMK/VIA Wired Mechanical Keyboard](https://www.keychron.com/products/keychron-c2-pro-qmk-via-wired-mechanical-keyboard) - -Make example for this keyboard (after setting up your build environment): - - make keychron/c2_pro_v2/ansi/rgb:default - make keychron/c2_pro_v2/ansi/white:default - -Flashing example for this keyboard: - - make keychron/c2_pro_v2/ansi/rgb:default:flash - make keychron/c2_pro_v2/ansi/white:default:flash - -## bootloader - -Enter the bootloader in two ways: - -* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -* **Physical reset button**: Briefly press the RESET button under the spacebar. - -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). diff --git a/keyboards/keychron/c3_pro/ansi/red/config.h b/keyboards/keychron/c3_pro/ansi/red/config.h deleted file mode 100644 index 5af1da7f3b..0000000000 --- a/keyboards/keychron/c3_pro/ansi/red/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Indication led */ -#define LED_MAC_OS_PIN A4 -#define LED_WIN_OS_PIN A5 -#define LED_OS_PIN_ON_STATE 1 - -/* LED Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND - -/* Use first 7 channels of LED driver */ -#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL - -/* Set LED driver current */ -#define SNLED27351_CURRENT_TUNE { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 } diff --git a/keyboards/keychron/c3_pro/ansi/red/keyboard.json b/keyboards/keychron/c3_pro/ansi/red/keyboard.json deleted file mode 100644 index a759e92928..0000000000 --- a/keyboards/keychron/c3_pro/ansi/red/keyboard.json +++ /dev/null @@ -1,242 +0,0 @@ - -{ - "keyboard_name": "Keychron C3 Pro Red", - "features": { - "led_matrix": true - }, - "indicators": { - "caps_lock": "A3" - }, - "led_matrix": { - "animations": { - "band_pinwheel": true, - "band_spiral": true, - "breathing": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_up_down": true, - "dual_beacon": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "wave_left_right": true, - "wave_up_down": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 123, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 156, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 169, "y": 0, "flags": 1}, - {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, - {"matrix": [1, 1], "x": 13, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 26, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 39, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 52, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 65, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 78, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 91, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 104, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 117, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 130, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 143, "y": 16, "flags": 4}, - {"matrix": [1, 12], "x": 156, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 175, "y": 16, "flags": 1}, - {"matrix": [1, 14], "x": 198, "y": 16, "flags": 1}, - {"matrix": [1, 15], "x": 211, "y": 16, "flags": 1}, - {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1}, - - {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, - {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, - {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, - {"matrix": [2, 4], "x": 58, "y": 28, "flags": 4}, - {"matrix": [2, 5], "x": 71, "y": 28, "flags": 4}, - {"matrix": [2, 6], "x": 84, "y": 28, "flags": 4}, - {"matrix": [2, 7], "x": 97, "y": 28, "flags": 4}, - {"matrix": [2, 8], "x": 110, "y": 28, "flags": 4}, - {"matrix": [2, 9], "x": 123, "y": 28, "flags": 4}, - {"matrix": [2, 10], "x": 136, "y": 28, "flags": 4}, - {"matrix": [2, 11], "x": 149, "y": 28, "flags": 4}, - {"matrix": [2, 12], "x": 162, "y": 28, "flags": 4}, - {"matrix": [2, 13], "x": 178, "y": 28, "flags": 1}, - {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, - {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, - {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1}, - - {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, - {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, - {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, - {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, - {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, - {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, - {"matrix": [3, 9], "x": 126, "y": 40, "flags": 4}, - {"matrix": [3, 10], "x": 139, "y": 40, "flags": 4}, - {"matrix": [3, 11], "x": 152, "y": 40, "flags": 4}, - {"matrix": [3, 13], "x": 173, "y": 40, "flags": 1}, - - {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, - - {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, - - {"x": 0, "y": 0, "flags": 1}, - {"x": 0, "y": 16, "flags": 1}, - {"x": 0, "y": 28, "flags": 1}, - {"x": 0, "y": 40, "flags": 1}, - {"x": 0, "y": 52, "flags": 1}, - {"x": 0, "y": 64, "flags": 1}, - {"x": 224, "y": 0, "flags": 1}, - {"x": 224, "y": 16, "flags": 1}, - {"x": 224, "y": 28, "flags": 1}, - {"x": 224, "y": 40, "flags": 1}, - {"x": 224, "y": 52, "flags": 1}, - {"x": 224, "y": 64, "flags": 1} - ], - "sleep": true - }, - "matrix_pins": { - "cols": ["C6", "C7", "C8", "A14", "A15", "C10", "C11", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2"], - "rows": ["C12", "D2", "B3", "B4", "B5", "B6"] - }, - "usb": { - "device_version": "1.0.1", - "pid": "0x0430" - }, - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c b/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c deleted file mode 100644 index 053ede0545..0000000000 --- a/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN, -}; - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN),KC_TRNS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT_tkl_ansi( - _______, 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_STEP, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_STEP, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; - diff --git a/keyboards/keychron/c3_pro/ansi/red/red.c b/keyboards/keychron/c3_pro/ansi/red/red.c deleted file mode 100644 index faf79e0cac..0000000000 --- a/keyboards/keychron/c3_pro/ansi/red/red.c +++ /dev/null @@ -1,132 +0,0 @@ -/* Copyright 2023 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef LED_MATRIX_ENABLE -// clang-format off -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | LED address - * | | */ - {0, CB6_CA1}, - {0, CB6_CA3}, - {0, CB6_CA4}, - {0, CB6_CA5}, - {0, CB6_CA6}, - {0, CB6_CA7}, - {0, CB6_CA8}, - {0, CB6_CA9}, - {0, CB6_CA10}, - {0, CB6_CA11}, - {0, CB6_CA12}, - {0, CB6_CA13}, - {0, CB6_CA14}, - {0, CB6_CA15}, - {0, CB6_CA16}, - {0, CB3_CA13}, - - {0, CB5_CA1}, - {0, CB5_CA2}, - {0, CB5_CA3}, - {0, CB5_CA4}, - {0, CB5_CA5}, - {0, CB5_CA6}, - {0, CB5_CA7}, - {0, CB5_CA8}, - {0, CB5_CA9}, - {0, CB5_CA10}, - {0, CB5_CA11}, - {0, CB5_CA12}, - {0, CB5_CA13}, - {0, CB5_CA14}, - {0, CB5_CA15}, - {0, CB5_CA16}, - {0, CB3_CA15}, - - {0, CB4_CA1}, - {0, CB4_CA2}, - {0, CB4_CA3}, - {0, CB4_CA4}, - {0, CB4_CA5}, - {0, CB4_CA6}, - {0, CB4_CA7}, - {0, CB4_CA8}, - {0, CB4_CA9}, - {0, CB4_CA10}, - {0, CB4_CA11}, - {0, CB4_CA12}, - {0, CB4_CA13}, - {0, CB4_CA14}, - {0, CB4_CA15}, - {0, CB4_CA16}, - {0, CB3_CA16}, - - {0, CB3_CA1}, - {0, CB3_CA2}, - {0, CB3_CA3}, - {0, CB3_CA4}, - {0, CB3_CA5}, - {0, CB3_CA6}, - {0, CB3_CA7}, - {0, CB3_CA8}, - {0, CB3_CA9}, - {0, CB3_CA10}, - {0, CB3_CA11}, - {0, CB3_CA12}, - {0, CB3_CA14}, - - {0, CB2_CA1}, - {0, CB2_CA3}, - {0, CB2_CA4}, - {0, CB2_CA5}, - {0, CB2_CA6}, - {0, CB2_CA7}, - {0, CB2_CA8}, - {0, CB2_CA9}, - {0, CB2_CA10}, - {0, CB2_CA11}, - {0, CB2_CA12}, - {0, CB2_CA14}, - {0, CB2_CA16}, - - {0, CB1_CA1}, - {0, CB1_CA2}, - {0, CB1_CA3}, - {0, CB1_CA7}, - {0, CB1_CA11}, - {0, CB1_CA12}, - {0, CB1_CA13}, - {0, CB1_CA14}, - {0, CB1_CA15}, - {0, CB1_CA16}, - {0, CB2_CA15}, - - {0, CB7_CA1}, - {0, CB7_CA2}, - {0, CB7_CA3}, - {0, CB7_CA4}, - {0, CB7_CA5}, - {0, CB7_CA6}, - {0, CB7_CA12}, - {0, CB7_CA11}, - {0, CB7_CA10}, - {0, CB7_CA9}, - {0, CB7_CA8}, - {0, CB7_CA7}, -}; -#endif diff --git a/keyboards/keychron/c3_pro/ansi/rgb/config.h b/keyboards/keychron/c3_pro/ansi/rgb/config.h deleted file mode 100644 index 19054e4773..0000000000 --- a/keyboards/keychron/c3_pro/ansi/rgb/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* Enable indicator LED*/ -#define LED_MAC_OS_PIN A6 -#define LED_WIN_OS_PIN A7 -#define LED_OS_PIN_ON_STATE 1 - -/* RGB Matrix Driver Configuration */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO -#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND - -/* Set LED driver current */ -#define SNLED27351_CURRENT_TUNE { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 } diff --git a/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json b/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json deleted file mode 100644 index ca6f1abf08..0000000000 --- a/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json +++ /dev/null @@ -1,249 +0,0 @@ -{ - "keyboard_name": "Keychron C3 Pro RGB", - "features": { - "rgb_matrix": true - }, - "indicators": { - "caps_lock": "A5" - }, - "matrix_pins": { - "cols": ["C6", "C7", "C8", "A14", "B7", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4"], - "rows": ["C12", "D2", "B3", "B4", "B5", "B6"] - }, - "rgb_matrix": { - "animations": { - "band_spiral_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, - "jellybean_raindrops": true, - "pixel_rain": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "typing_heatmap": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 20, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 30, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 40, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 50, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 65, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 75, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 85, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 95, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 110, "y": 0, "flags": 1}, - {"matrix": [0, 11], "x": 120, "y": 0, "flags": 1}, - {"matrix": [0, 12], "x": 130, "y": 0, "flags": 1}, - {"matrix": [0, 13], "x": 140, "y": 0, "flags": 1}, - {"matrix": [0, 14], "x": 155, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 165, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 175, "y": 0, "flags": 1}, - - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, - {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 20, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 30, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 40, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 50, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 60, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 70, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 80, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 90, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 100, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 110, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 120, "y": 15, "flags": 4}, - {"matrix": [1, 13], "x": 135, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 155, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 165, "y": 15, "flags": 1}, - {"matrix": [1, 16], "x": 175, "y": 15, "flags": 1}, - - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, - {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, - {"matrix": [2, 14], "x": 155, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 165, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 175, "y": 27, "flags": 1}, - - {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, - {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, - {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, - {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, - {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, - {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, - {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, - {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, - {"matrix": [3, 13], "x": 143, "y": 40, "flags": 4}, - - {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, - {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, - {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 165, "y": 52, "flags": 1}, - - {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 67, "y": 64, "flags": 4}, - {"matrix": [5, 10], "x": 104, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 116, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 128, "y": 64, "flags": 4}, - {"matrix": [5, 13], "x": 140, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 155, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 165, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 175, "y": 64, "flags": 1}, - - {"x": 0, "y": 0, "flags": 1}, - {"x": 0, "y": 16, "flags": 1}, - {"x": 0, "y": 28, "flags": 1}, - {"x": 0, "y": 40, "flags": 1}, - {"x": 0, "y": 52, "flags": 1}, - {"x": 0, "y": 64, "flags": 1}, - {"x": 224, "y": 0, "flags": 1}, - {"x": 224, "y": 16, "flags": 1}, - {"x": 224, "y": 28, "flags": 1}, - {"x": 224, "y": 40, "flags": 1}, - {"x": 224, "y": 52, "flags": 1}, - {"x": 224, "y": 64, "flags": 1} - ], - "sleep": true - }, - "usb": { - "device_version": "1.0.1", - "pid": "0x0433" - }, - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c deleted file mode 100644 index 27b5a7fb07..0000000000 --- a/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off - -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN, -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, RM_NEXT, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ), - - [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - - [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR,KC_SCROLL_LOCK,KC_PAUSE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ), - - [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; diff --git a/keyboards/keychron/c3_pro/ansi/rgb/rgb.c b/keyboards/keychron/c3_pro/ansi/rgb/rgb.c deleted file mode 100644 index 8ec1995a09..0000000000 --- a/keyboards/keychron/c3_pro/ansi/rgb/rgb.c +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, CB7_CA1, CB9_CA1, CB8_CA1}, - {0, CB7_CA3, CB9_CA3, CB8_CA3}, - {0, CB7_CA4, CB9_CA4, CB8_CA4}, - {0, CB7_CA5, CB9_CA5, CB8_CA5}, - {0, CB7_CA6, CB9_CA6, CB8_CA6}, - {0, CB7_CA7, CB9_CA7, CB8_CA7}, - {0, CB7_CA8, CB9_CA8, CB8_CA8}, - {0, CB7_CA9, CB9_CA9, CB8_CA9}, - {0, CB7_CA10, CB9_CA10, CB8_CA10}, - {0, CB7_CA11, CB9_CA11, CB8_CA11}, - {0, CB7_CA12, CB9_CA12, CB8_CA12}, - {0, CB7_CA13, CB9_CA13, CB8_CA13}, - {0, CB7_CA14, CB9_CA14, CB8_CA14}, - {0, CB7_CA15, CB9_CA15, CB8_CA15}, - {0, CB7_CA16, CB9_CA16, CB8_CA16}, - {1, CB7_CA16, CB9_CA16, CB8_CA16}, - - {0, CB4_CA1, CB6_CA1, CB5_CA1}, - {0, CB4_CA2, CB6_CA2, CB5_CA2}, - {0, CB4_CA3, CB6_CA3, CB5_CA3}, - {0, CB4_CA4, CB6_CA4, CB5_CA4}, - {0, CB4_CA5, CB6_CA5, CB5_CA5}, - {0, CB4_CA6, CB6_CA6, CB5_CA6}, - {0, CB4_CA7, CB6_CA7, CB5_CA7}, - {0, CB4_CA8, CB6_CA8, CB5_CA8}, - {0, CB4_CA9, CB6_CA9, CB5_CA9}, - {0, CB4_CA10, CB6_CA10, CB5_CA10}, - {0, CB4_CA11, CB6_CA11, CB5_CA11}, - {0, CB4_CA12, CB6_CA12, CB5_CA12}, - {0, CB4_CA13, CB6_CA13, CB5_CA13}, - {0, CB4_CA14, CB6_CA14, CB5_CA14}, - {0, CB4_CA15, CB6_CA15, CB5_CA15}, - {0, CB4_CA16, CB6_CA16, CB5_CA16}, - {1, CB7_CA13, CB9_CA13, CB8_CA13}, - - {0, CB1_CA1, CB3_CA1, CB2_CA1}, - {0, CB1_CA2, CB3_CA2, CB2_CA2}, - {0, CB1_CA3, CB3_CA3, CB2_CA3}, - {0, CB1_CA4, CB3_CA4, CB2_CA4}, - {0, CB1_CA5, CB3_CA5, CB2_CA5}, - {0, CB1_CA6, CB3_CA6, CB2_CA6}, - {0, CB1_CA7, CB3_CA7, CB2_CA7}, - {0, CB1_CA8, CB3_CA8, CB2_CA8}, - {0, CB1_CA9, CB3_CA9, CB2_CA9}, - {0, CB1_CA10, CB3_CA10, CB2_CA10}, - {0, CB1_CA11, CB3_CA11, CB2_CA11}, - {0, CB1_CA12, CB3_CA12, CB2_CA12}, - {0, CB1_CA13, CB3_CA13, CB2_CA13}, - {0, CB1_CA14, CB3_CA14, CB2_CA14}, - {0, CB1_CA15, CB3_CA15, CB2_CA15}, - {0, CB1_CA16, CB3_CA16, CB2_CA16}, - {1, CB7_CA15, CB9_CA15, CB8_CA15}, - - {1, CB7_CA1, CB9_CA1, CB8_CA1}, - {1, CB7_CA2, CB9_CA2, CB8_CA2}, - {1, CB7_CA3, CB9_CA3, CB8_CA3}, - {1, CB7_CA4, CB9_CA4, CB8_CA4}, - {1, CB7_CA5, CB9_CA5, CB8_CA5}, - {1, CB7_CA6, CB9_CA6, CB8_CA6}, - {1, CB7_CA7, CB9_CA7, CB8_CA7}, - {1, CB7_CA8, CB9_CA8, CB8_CA8}, - {1, CB7_CA9, CB9_CA9, CB8_CA9}, - {1, CB7_CA10, CB9_CA10, CB8_CA10}, - {1, CB7_CA11, CB9_CA11, CB8_CA11}, - {1, CB7_CA12, CB9_CA12, CB8_CA12}, - {1, CB7_CA14, CB9_CA14, CB8_CA14}, - - {1, CB1_CA1, CB3_CA1, CB2_CA1}, - {1, CB1_CA3, CB3_CA3, CB2_CA3}, - {1, CB1_CA4, CB3_CA4, CB2_CA4}, - {1, CB1_CA5, CB3_CA5, CB2_CA5}, - {1, CB1_CA6, CB3_CA6, CB2_CA6}, - {1, CB1_CA7, CB3_CA7, CB2_CA7}, - {1, CB1_CA8, CB3_CA8, CB2_CA8}, - {1, CB1_CA9, CB3_CA9, CB2_CA9}, - {1, CB1_CA10, CB3_CA10, CB2_CA10}, - {1, CB1_CA11, CB3_CA11, CB2_CA11}, - {1, CB1_CA12, CB3_CA12, CB2_CA12}, - {1, CB1_CA14, CB3_CA14, CB2_CA14}, - {1, CB1_CA16, CB3_CA16, CB2_CA16}, - - {1, CB4_CA1, CB6_CA1, CB5_CA1}, - {1, CB4_CA2, CB6_CA2, CB5_CA2}, - {1, CB4_CA3, CB6_CA3, CB5_CA3}, - {1, CB4_CA7, CB6_CA7, CB5_CA7}, - {1, CB4_CA11, CB6_CA11, CB5_CA11}, - {1, CB4_CA12, CB6_CA12, CB5_CA12}, - {1, CB4_CA13, CB6_CA13, CB5_CA13}, - {1, CB4_CA14, CB6_CA14, CB5_CA14}, - {1, CB4_CA15, CB6_CA15, CB5_CA15}, - {1, CB4_CA16, CB6_CA16, CB5_CA16}, - {1, CB1_CA15, CB3_CA15, CB2_CA15}, - - {0, CB10_CA1, CB12_CA1, CB11_CA1}, - {0, CB10_CA2, CB12_CA2, CB11_CA2}, - {0, CB10_CA3, CB12_CA3, CB11_CA3}, - {0, CB10_CA4, CB12_CA4, CB11_CA4}, - {0, CB10_CA5, CB12_CA5, CB11_CA5}, - {0, CB10_CA6, CB12_CA6, CB11_CA6}, - {0, CB10_CA7, CB12_CA7, CB11_CA7}, - {0, CB10_CA8, CB12_CA8, CB11_CA8}, - {0, CB10_CA9, CB12_CA9, CB11_CA9}, - {0, CB10_CA10, CB12_CA10, CB11_CA10}, - {0, CB10_CA11, CB12_CA11, CB11_CA11}, - {0, CB10_CA12, CB12_CA12, CB11_CA12}, -}; -#endif diff --git a/keyboards/keychron/c3_pro/board.h b/keyboards/keychron/c3_pro/board.h deleted file mode 100644 index 60d25b93b8..0000000000 --- a/keyboards/keychron/c3_pro/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 @ Keychron (https://www.keychron.com) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c3_pro/c3_pro.c b/keyboards/keychron/c3_pro/c3_pro.c deleted file mode 100644 index 0c584b0938..0000000000 --- a/keyboards/keychron/c3_pro/c3_pro.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "c3_pro.h" - -void keyboard_post_init_kb(void) { - gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); - gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - - keyboard_post_init_user(); -} - -void housekeeping_task_kb(void) { - if (get_highest_layer(default_layer_state) == 0) { - gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - } - if (get_highest_layer(default_layer_state) == 2) { - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE); - } -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - case KC_OSSW: - if (record->event.pressed) { - // Switches default layer between `MAC_BASE` and `WIN_BASE` (0 and 2) - if (get_highest_layer(default_layer_state) == 2 ) { - set_single_persistent_default_layer(0); - } else { - set_single_persistent_default_layer(2); - } - } - return false; - default: - return true; - } -} - -void suspend_power_down_kb(void) { - gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); - gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); - suspend_power_down_user(); -} diff --git a/keyboards/keychron/c3_pro/c3_pro.h b/keyboards/keychron/c3_pro/c3_pro.h deleted file mode 100644 index 689e061657..0000000000 --- a/keyboards/keychron/c3_pro/c3_pro.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -enum my_keycodes { - KC_OS_SWITCH = QK_KB_11, -}; - -#define KC_OSSW KC_OS_SWITCH diff --git a/keyboards/keychron/c3_pro/config.h b/keyboards/keychron/c3_pro/config.h deleted file mode 100644 index f5e7e85969..0000000000 --- a/keyboards/keychron/c3_pro/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2024 @ Keychron(https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* I2C driver Configuration */ -#define I2C1_SCL_PIN B8 -#define I2C1_SDA_PIN B9 -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - diff --git a/keyboards/keychron/c3_pro/halconf.h b/keyboards/keychron/c3_pro/halconf.h deleted file mode 100644 index 093e4254c3..0000000000 --- a/keyboards/keychron/c3_pro/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/keychron/c3_pro/info.json b/keyboards/keychron/c3_pro/info.json deleted file mode 100644 index 24a77aae07..0000000000 --- a/keyboards/keychron/c3_pro/info.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "manufacturer": "Keychron", - "maintainer": "Joe", - "bootloader": "stm32-dfu", - "community_layouts": ["tkl_ansi"], - "diode_direction": "ROW2COL", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "processor": "STM32F401", - "url": "https://github.com/Keychron", - "usb": { - "device_version": "1.0.1", - "vid": "0x3434" - } -} diff --git a/keyboards/keychron/c3_pro/mcuconf.h b/keyboards/keychron/c3_pro/mcuconf.h deleted file mode 100644 index ad75926a14..0000000000 --- a/keyboards/keychron/c3_pro/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c3_pro/readme.md b/keyboards/keychron/c3_pro/readme.md deleted file mode 100644 index ae2deb45a7..0000000000 --- a/keyboards/keychron/c3_pro/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Keychron C3 Pro - -![Keychron C3 Pro](https://i.imgur.com/b4FTJsf.jpg) - -A customizable 87% keyboard. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Keychron C3 Pro -* Hardware Availability: [Keychron](https://www.keychron.com/) - -Make example for this keyboard (after setting up your build environment): - - make keychron/c3_pro/ansi/red:default - make keychron/c3_pro/ansi/rgb:default - -Flashing example for this keyboard: - - make keychron/c3_pro/ansi/red:default:flash - make keychron/c3_pro/ansi/rgb:default:flash - -## bootloader - -Enter the bootloader in two ways: - -* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -* **Physical reset button**: Briefly press the RESET button under the spacebar. - -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). diff --git a/keyboards/keychron/q0/base/keymaps/default/keymap.c b/keyboards/keychron/q0/base/keymaps/default/keymap.c index 6afe80bb88..387ff2d686 100644 --- a/keyboards/keychron/q0/base/keymaps/default/keymap.c +++ b/keyboards/keychron/q0/base/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN1] = LAYOUT_numpad_6x4( _______, KC_MUTE, KC_VOLD, KC_VOLU, - RM_NEXT, RM_VALU, RM_HUEU, KC_DEL, - RM_PREV, RM_VALD, RM_HUED, - RM_SATU, RM_SPDU, KC_MPRV, _______, - RM_SATD, RM_SPDD, KC_MPLY, - RM_TOGG, KC_MNXT, _______) + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______) }; diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json index d7a7317e3f..a301746831 100644 --- a/keyboards/keychron/q0/info.json +++ b/keyboards/keychron/q0/info.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -45,11 +47,7 @@ }, "url": "https://github.com/Keychron", "usb": { + "force_nkro": true, "vid": "0x3434" - }, - "host": { - "default": { - "nkro": true - } } } \ No newline at end of file diff --git a/keyboards/keychron/q0/plus/keymaps/default/keymap.c b/keyboards/keychron/q0/plus/keymaps/default/keymap.c index 4082ebad6f..4e281d4d7d 100644 --- a/keyboards/keychron/q0/plus/keymaps/default/keymap.c +++ b/keyboards/keychron/q0/plus/keymaps/default/keymap.c @@ -33,17 +33,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_P0, KC_PDOT), [FUNC] = LAYOUT_numpad_6x5( - RM_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, - _______, RM_NEXT, RM_VALU, RM_HUEU, KC_DEL, - _______, RM_PREV, RM_VALD, RM_HUED, _______, - _______, RM_SATU, RM_SPDU, KC_MPRV, - _______, RM_SATD, RM_SPDD, KC_MPLY, _______, - _______, RM_TOGG, KC_MNXT), + RGB_TOG, _______, KC_MUTE, KC_VOLD, KC_VOLU, + _______, RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, _______, + _______, RGB_SAI, RGB_SPI, KC_MPRV, + _______, RGB_SAD, RGB_SPD, KC_MPLY, _______, + _______, RGB_TOG, KC_MNXT), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [FUNC] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [FUNC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c index 7b5f7a5907..cfe26a583a 100644 --- a/keyboards/keychron/q0/q0.c +++ b/keyboards/keychron/q0/q0.c @@ -24,7 +24,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q10/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q10/ansi_encoder/keymaps/default/keymap.c index 2cabbaf8df..915ad3aa2a 100644 --- a/keyboards/keychron/q10/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q10/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_89( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi_89( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_89( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q10/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q10/iso_encoder/keymaps/default/keymap.c index 907f16e976..77a26f1e99 100644 --- a/keyboards/keychron/q10/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q10/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_90( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_90( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_90( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q10/q10.c b/keyboards/keychron/q10/q10.c index 79abdacd4f..754b148175 100644 --- a/keyboards/keychron/q10/q10.c +++ b/keyboards/keychron/q10/q10.c @@ -38,7 +38,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c index 5794056bfa..49e428bc00 100755 --- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c @@ -125,8 +125,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB7_CA1, CB9_CA1, CB8_CA1}, // Down {0, CB7_CA7, CB9_CA7, CB8_CA7}, // Right }; - -int rgb_matrix_led_index(int index) { - return index; -} #endif diff --git a/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c index 7bc0cabc31..7334ad8520 100755 --- a/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c @@ -27,7 +27,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_91_ansi( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -35,10 +35,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_91_ansi( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -51,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_91_ansi( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index bb9a8f7d0d..73c4233876 100755 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -21,6 +21,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c index e750addcfa..8725598b1c 100755 --- a/keyboards/keychron/q11/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c @@ -126,8 +126,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB7_CA1, CB9_CA1, CB8_CA1}, // Down {0, CB7_CA7, CB9_CA7, CB8_CA7}, // Right }; - -int rgb_matrix_led_index(int index) { - return index; -} #endif diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c index 5234e0d3e3..2c494c08d5 100755 --- a/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c @@ -27,7 +27,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_92_iso( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -35,10 +35,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_92_iso( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -51,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_92_iso( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c index 8dd9120ca1..8d018e2a63 100755 --- a/keyboards/keychron/q11/q11.c +++ b/keyboards/keychron/q11/q11.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q12/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q12/ansi_encoder/keymaps/default/keymap.c index c09b341420..a2234c1d4f 100644 --- a/keyboards/keychron/q12/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q12/ansi_encoder/keymaps/default/keymap.c @@ -30,31 +30,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_103( - KC_MUTE, KC_F13, KC_F14, KC_F15, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, RM_NEXT, + KC_MUTE, KC_F13, KC_F14, KC_F15, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, RGB_MOD, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_P4, KC_P5, KC_P6, 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_HOME, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P0, KC_PDOT, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi_103( - RM_TOGG, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + RGB_TOG, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_103( - KC_MUTE, _______, _______, _______, 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_DEL, RM_NEXT, + KC_MUTE, _______, _______, _______, 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_DEL, RGB_MOD, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_P4, KC_P5, KC_P6, 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_HOME, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P0, KC_PDOT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_103( - RM_TOGG, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + RGB_TOG, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q12/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q12/iso_encoder/keymaps/default/keymap.c index 632de24c2e..7cad0672f2 100644 --- a/keyboards/keychron/q12/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q12/iso_encoder/keymaps/default/keymap.c @@ -30,31 +30,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_104( - KC_MUTE, KC_F13, KC_F14, KC_F15, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, RM_NEXT, + KC_MUTE, KC_F13, KC_F14, KC_F15, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, RGB_MOD, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, 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_PGDN, KC_P4, KC_P5, KC_P6, 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_NUHS, KC_ENT, KC_HOME, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P0, KC_PDOT, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_104( - RM_TOGG, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + RGB_TOG, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_104( - KC_MUTE, _______, _______, _______, 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_DEL, RM_NEXT, + KC_MUTE, _______, _______, _______, 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_DEL, RGB_MOD, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, 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_PGDN, KC_P4, KC_P5, KC_P6, 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_NUHS, KC_ENT, KC_HOME, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P0, KC_PDOT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_104( - RM_TOGG, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + RGB_TOG, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q12/q12.c b/keyboards/keychron/q12/q12.c index bc0645ab47..9a019af6ac 100644 --- a/keyboards/keychron/q12/q12.c +++ b/keyboards/keychron/q12/q12.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c index b2eafb4bc3..092d446773 100644 --- a/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c @@ -28,7 +28,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -38,8 +38,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_ansi_82( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -52,10 +52,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c index 1a6631959e..a4febc93c7 100644 --- a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_ROPT, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi_82( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, }; #endif diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json index 034bb4357f..0107c60b9c 100644 --- a/keyboards/keychron/q1v1/info.json +++ b/keyboards/keychron/q1v1/info.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, @@ -52,11 +54,7 @@ }, "url": "https://github.com/Keychron", "usb": { + "force_nkro": true, "vid": "0x3434" - }, - "host": { - "default": { - "nkro": true - } } } \ No newline at end of file diff --git a/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c index f1ad2c303c..080e2839c8 100644 --- a/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,8 +38,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_83( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -52,10 +52,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c index 43eab9318c..237d9a3f1e 100644 --- a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_83( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -50,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -61,8 +61,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, }; #endif \ No newline at end of file diff --git a/keyboards/keychron/q1v1/q1v1.c b/keyboards/keychron/q1v1/q1v1.c index 8571b33751..2ed907adb9 100644 --- a/keyboards/keychron/q1v1/q1v1.c +++ b/keyboards/keychron/q1v1/q1v1.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c b/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c index c3ecfad52e..383a43cdb2 100644 --- a/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_ansi_82( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q1v2/ansi_encoder/keyboard.json b/keyboards/keychron/q1v2/ansi_encoder/keyboard.json index a22a5f6de8..616c444891 100644 --- a/keyboards/keychron/q1v2/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q1v2/ansi_encoder/keyboard.json @@ -9,7 +9,7 @@ "encoder": { "enabled": true, "rotary": [ - {"pin_a": "A10", "pin_b": "A8"} + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} ] }, "layouts": { diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c index 8ee3bcc460..d442412524 100644 --- a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi_82( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index f0342254fa..7eb7038696 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c b/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c index d5a87e7539..f97a595ea6 100644 --- a/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_83( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q1v2/iso_encoder/keyboard.json b/keyboards/keychron/q1v2/iso_encoder/keyboard.json index 98f860ddd4..38e34176b8 100644 --- a/keyboards/keychron/q1v2/iso_encoder/keyboard.json +++ b/keyboards/keychron/q1v2/iso_encoder/keyboard.json @@ -9,7 +9,7 @@ "encoder": { "enabled": true, "rotary": [ - {"pin_a": "A10", "pin_b": "A8"} + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} ] }, "layouts": { diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c index 8bd8a12a44..74aa487f95 100644 --- a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_83( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c b/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c index 46acc05c5f..14af11a77c 100644 --- a/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, 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_INT3, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q1v2/jis_encoder/keyboard.json b/keyboards/keychron/q1v2/jis_encoder/keyboard.json index 464f952e0d..544958f24f 100644 --- a/keyboards/keychron/q1v2/jis_encoder/keyboard.json +++ b/keyboards/keychron/q1v2/jis_encoder/keyboard.json @@ -9,7 +9,7 @@ "encoder": { "enabled": true, "rotary": [ - {"pin_a": "A10", "pin_b": "A8"} + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} ] }, "layouts": { diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c index c33c4707de..def0cba27f 100644 --- a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT( - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, 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_INT3, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = 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, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/q1v2.c b/keyboards/keychron/q1v2/q1v2.c index 8211883869..1de8f205c7 100644 --- a/keyboards/keychron/q1v2/q1v2.c +++ b/keyboards/keychron/q1v2/q1v2.c @@ -36,7 +36,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q2/ansi/keymaps/default/keymap.c b/keyboards/keychron/q2/ansi/keymaps/default/keymap.c index 1aa3ae0ec2..ea386157bc 100644 --- a/keyboards/keychron/q2/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/ansi/keymaps/default/keymap.c @@ -43,23 +43,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_67( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q2/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q2/ansi_encoder/keymaps/default/keymap.c index 9afbdf287b..5c20bda031 100644 --- a/keyboards/keychron/q2/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/ansi_encoder/keymaps/default/keymap.c @@ -43,23 +43,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_67( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -68,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [_FN3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index c322a9902f..d0bb48d7cb 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q2/iso/keymaps/default/keymap.c b/keyboards/keychron/q2/iso/keymaps/default/keymap.c index 590bd21cde..3f2952f0b2 100644 --- a/keyboards/keychron/q2/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/iso/keymaps/default/keymap.c @@ -43,23 +43,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_68( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q2/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q2/iso_encoder/keymaps/default/keymap.c index 2512d198ca..5cbe605de4 100644 --- a/keyboards/keychron/q2/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/iso_encoder/keymaps/default/keymap.c @@ -43,23 +43,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_68( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q2/jis/keymaps/default/keymap.c b/keyboards/keychron/q2/jis/keymaps/default/keymap.c index bdb013db65..e11a31cda5 100644 --- a/keyboards/keychron/q2/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/jis/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_jis_71( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c index 045a8da92f..33b3698616 100644 --- a/keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_jis_71( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = { ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q2/q2.c b/keyboards/keychron/q2/q2.c index 01a23b8f3e..1dd839eccc 100644 --- a/keyboards/keychron/q2/q2.c +++ b/keyboards/keychron/q2/q2.c @@ -33,7 +33,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q3/ansi/keymaps/default/keymap.c b/keyboards/keychron/q3/ansi/keymaps/default/keymap.c index 3959db8bbb..3837a59fad 100644 --- a/keyboards/keychron/q3/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/ansi/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, _______, RM_NEXT, + 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_PSCR, _______, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q3/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q3/ansi_encoder/keymaps/default/keymap.c index a8a51e0aa6..832234c997 100644 --- a/keyboards/keychron/q3/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/ansi_encoder/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_f13_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_f13_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_f13_ansi( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_f13_ansi( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json index a08a115bb6..a07fc670d8 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -14,6 +14,8 @@ "features": { "bootmagic": true, "dip_switch": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q3/iso/keymaps/default/keymap.c b/keyboards/keychron/q3/iso/keymaps/default/keymap.c index 1a69fb1b41..e8a98f32db 100644 --- a/keyboards/keychron/q3/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/iso/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_iso( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_iso( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_iso( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_iso( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q3/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q3/iso_encoder/keymaps/default/keymap.c index c4131385f6..caf2983919 100644 --- a/keyboards/keychron/q3/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/iso_encoder/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_f13_iso( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_f13_iso( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_f13_iso( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_f13_iso( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q3/jis/keymaps/default/keymap.c b/keyboards/keychron/q3/jis/keymaps/default/keymap.c index 9c32a8f192..bd764ecdf3 100644 --- a/keyboards/keychron/q3/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/jis/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_91( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_jis_91( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_jis_91( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_91( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q3/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/q3/jis_encoder/keymaps/default/keymap.c index a7d6abdf85..30e85d79df 100644 --- a/keyboards/keychron/q3/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q3/jis_encoder/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_92( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_jis_92( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_jis_92( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_92( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q3/q3.c b/keyboards/keychron/q3/q3.c index 0cd0509df5..846b58d4a7 100644 --- a/keyboards/keychron/q3/q3.c +++ b/keyboards/keychron/q3/q3.c @@ -37,7 +37,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c index 826243be09..dd8669c3fb 100644 --- a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c @@ -42,23 +42,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), [_FN1] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_61( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json index bcbfd74217..4b9f246b4c 100644 --- a/keyboards/keychron/q4/info.json +++ b/keyboards/keychron/q4/info.json @@ -18,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q4/iso/keymaps/default/keymap.c b/keyboards/keychron/q4/iso/keymaps/default/keymap.c index 12d503d324..e7c9edb412 100644 --- a/keyboards/keychron/q4/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/iso/keymaps/default/keymap.c @@ -42,23 +42,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), [_FN1] = LAYOUT_iso_62( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_62( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_62( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q4/q4.c b/keyboards/keychron/q4/q4.c index 44c139f71c..54ad01250f 100644 --- a/keyboards/keychron/q4/q4.c +++ b/keyboards/keychron/q4/q4.c @@ -33,7 +33,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q5/ansi/keymaps/default/keymap.c b/keyboards/keychron/q5/ansi/keymaps/default/keymap.c index 373dc23576..c747bf4ae1 100644 --- a/keyboards/keychron/q5/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q5/ansi/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_100( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_100( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_100( - 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_100( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q5/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q5/ansi_encoder/keymaps/default/keymap.c index 05eba0b875..c9079b53ff 100644 --- a/keyboards/keychron/q5/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q5/ansi_encoder/keymaps/default/keymap.c @@ -27,17 +27,17 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_98( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_98( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_98( @@ -48,10 +48,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_98( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q5/info.json b/keyboards/keychron/q5/info.json index 1e7a5de703..b35996d341 100644 --- a/keyboards/keychron/q5/info.json +++ b/keyboards/keychron/q5/info.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q5/iso/keymaps/default/keymap.c b/keyboards/keychron/q5/iso/keymaps/default/keymap.c index b018818653..6b0214d4d6 100644 --- a/keyboards/keychron/q5/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q5/iso/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_101( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_101( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_101( - 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_101( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q5/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q5/iso_encoder/keymaps/default/keymap.c index 69fcfcc872..e1f3d93212 100644 --- a/keyboards/keychron/q5/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q5/iso_encoder/keymaps/default/keymap.c @@ -27,17 +27,17 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_99( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_99( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_99( @@ -48,10 +48,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_99( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q5/q5.c b/keyboards/keychron/q5/q5.c index c45eaa3cb2..4026e9dea8 100644 --- a/keyboards/keychron/q5/q5.c +++ b/keyboards/keychron/q5/q5.c @@ -38,7 +38,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q6/ansi/keymaps/default/keymap.c b/keyboards/keychron/q6/ansi/keymaps/default/keymap.c index 2a51410647..19bab1ee37 100644 --- a/keyboards/keychron/q6/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q6/ansi/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_108( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_108( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_108( - 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_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_108( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q6/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q6/ansi_encoder/keymaps/default/keymap.c index 7246377540..25f4852ef7 100644 --- a/keyboards/keychron/q6/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q6/ansi_encoder/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_109( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_109( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_109( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_109( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q6/iso/keymaps/default/keymap.c b/keyboards/keychron/q6/iso/keymaps/default/keymap.c index dd5d88e420..cf376b8904 100644 --- a/keyboards/keychron/q6/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q6/iso/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_109( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_109( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_109( - 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_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_109( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/q6/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q6/iso_encoder/keymaps/default/keymap.c index 907d015dc0..8eed8a5b76 100644 --- a/keyboards/keychron/q6/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q6/iso_encoder/keymaps/default/keymap.c @@ -27,31 +27,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_110( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD , KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_110( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_110( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_110( - _______, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/q6/q6.c b/keyboards/keychron/q6/q6.c index d5cdd37c51..c1dc38a3fc 100644 --- a/keyboards/keychron/q6/q6.c +++ b/keyboards/keychron/q6/q6.c @@ -37,7 +37,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q60/ansi/keyboard.json b/keyboards/keychron/q60/ansi/keyboard.json index 83ee57d011..4d6f680890 100644 --- a/keyboards/keychron/q60/ansi/keyboard.json +++ b/keyboards/keychron/q60/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q60/ansi/keymaps/default/keymap.c b/keyboards/keychron/q60/ansi/keymaps/default/keymap.c index 16fc41fcf5..48c38a8c85 100644 --- a/keyboards/keychron/q60/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q60/ansi/keymaps/default/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FUNC] = LAYOUT_ansi_60( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/keychron/q65/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q65/ansi_encoder/keymaps/default/keymap.c index e83bc4b6e5..dbe8c04973 100644 --- a/keyboards/keychron/q65/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q65/ansi_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_73( - RM_TOGG, KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_73( - RM_TOGG, KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_73( _______, KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = { ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q65/q65.c b/keyboards/keychron/q65/q65.c index e02e53e828..e293733bfe 100644 --- a/keyboards/keychron/q65/q65.c +++ b/keyboards/keychron/q65/q65.c @@ -35,7 +35,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q7/ansi/keymaps/default/keymap.c b/keyboards/keychron/q7/ansi/keymaps/default/keymap.c index a4e428f39a..4fb2e861ca 100644 --- a/keyboards/keychron/q7/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q7/ansi/keymaps/default/keymap.c @@ -31,37 +31,37 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_72( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 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_HOME, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_RCTL, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [WIN_BASE] = LAYOUT_ansi_72( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 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_HOME, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_72( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_72( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_72( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q7/info.json b/keyboards/keychron/q7/info.json index 663ad4b275..6b8a94ce99 100644 --- a/keyboards/keychron/q7/info.json +++ b/keyboards/keychron/q7/info.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q7/iso/keymaps/default/keymap.c b/keyboards/keychron/q7/iso/keymaps/default/keymap.c index f40f5e9f46..afb0aae445 100644 --- a/keyboards/keychron/q7/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q7/iso/keymaps/default/keymap.c @@ -31,37 +31,37 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_73( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, 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_END, 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_NUHS, KC_ENT, KC_HOME, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_RCTL, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [WIN_BASE] = LAYOUT_iso_73( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, 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_END, 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_NUHS, KC_ENT, KC_HOME, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_73( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_73( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_73( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q7/q7.c b/keyboards/keychron/q7/q7.c index a9ccdb81ba..d020f6ab43 100644 --- a/keyboards/keychron/q7/q7.c +++ b/keyboards/keychron/q7/q7.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q8/ansi/keymaps/default/keymap.c b/keyboards/keychron/q8/ansi/keymaps/default/keymap.c index d7f84c3b88..fa67e87144 100644 --- a/keyboards/keychron/q8/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q8/ansi/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_69( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q8/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q8/ansi_encoder/keymaps/default/keymap.c index cd7ee8d0c3..a86ae6d8cf 100644 --- a/keyboards/keychron/q8/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q8/ansi_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_69( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q8/info.json b/keyboards/keychron/q8/info.json index b0478e019b..da4c9c6f79 100644 --- a/keyboards/keychron/q8/info.json +++ b/keyboards/keychron/q8/info.json @@ -17,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q8/iso/keymaps/default/keymap.c b/keyboards/keychron/q8/iso/keymaps/default/keymap.c index e21ee904a1..e999d04062 100644 --- a/keyboards/keychron/q8/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q8/iso/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_70( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/q8/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q8/iso_encoder/keymaps/default/keymap.c index e6c10a64cf..7db63d4118 100644 --- a/keyboards/keychron/q8/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q8/iso_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_70( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q8/q8.c b/keyboards/keychron/q8/q8.c index b16f89115d..c28f992f8e 100644 --- a/keyboards/keychron/q8/q8.c +++ b/keyboards/keychron/q8/q8.c @@ -35,7 +35,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q9/ansi/keymaps/default/keymap.c b/keyboards/keychron/q9/ansi/keymaps/default/keymap.c index ffe26f44ff..1c2d017284 100644 --- a/keyboards/keychron/q9/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q9/ansi/keymaps/default/keymap.c @@ -43,15 +43,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_52( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_52( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_52( diff --git a/keyboards/keychron/q9/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q9/ansi_encoder/keymaps/default/keymap.c index 8ebaf6e056..eb5a5fa3b3 100644 --- a/keyboards/keychron/q9/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q9/ansi_encoder/keymaps/default/keymap.c @@ -43,15 +43,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_52( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_52( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_52( @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q9/info.json b/keyboards/keychron/q9/info.json index ff80a256d3..322fcfa1ad 100644 --- a/keyboards/keychron/q9/info.json +++ b/keyboards/keychron/q9/info.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q9/iso/keymaps/default/keymap.c b/keyboards/keychron/q9/iso/keymaps/default/keymap.c index 5cbe09c154..0724304e78 100644 --- a/keyboards/keychron/q9/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q9/iso/keymaps/default/keymap.c @@ -43,15 +43,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_53( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_53( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_53( diff --git a/keyboards/keychron/q9/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q9/iso_encoder/keymaps/default/keymap.c index 9fb8b40a9f..3541851973 100644 --- a/keyboards/keychron/q9/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q9/iso_encoder/keymaps/default/keymap.c @@ -43,15 +43,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_53( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_53( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_53( @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q9/q9.c b/keyboards/keychron/q9/q9.c index a9ccdb81ba..d020f6ab43 100644 --- a/keyboards/keychron/q9/q9.c +++ b/keyboards/keychron/q9/q9.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c index a2d9b03b63..06c43f6929 100755 --- a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c @@ -42,15 +42,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN1), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN1] = LAYOUT_54_ansi( - KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_FN1] = LAYOUT_54_ansi( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [FN2] = LAYOUT_54_ansi( @@ -64,8 +64,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [WIN_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [FN2] = {ENCODER_CCW_CW(_______, _______)} }; #endif diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json index 8d5034971f..927f5094a6 100755 --- a/keyboards/keychron/q9_plus/info.json +++ b/keyboards/keychron/q9_plus/info.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "dip_switch": true, diff --git a/keyboards/keychron/q9_plus/q9_plus.c b/keyboards/keychron/q9_plus/q9_plus.c index d155936f98..77fd5f3cb0 100755 --- a/keyboards/keychron/q9_plus/q9_plus.c +++ b/keyboards/keychron/q9_plus/q9_plus.c @@ -35,7 +35,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/s1/ansi/rgb/keyboard.json b/keyboards/keychron/s1/ansi/rgb/keyboard.json index fb52ee6423..23ea66071e 100644 --- a/keyboards/keychron/s1/ansi/rgb/keyboard.json +++ b/keyboards/keychron/s1/ansi/rgb/keyboard.json @@ -37,6 +37,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c index c70298f3f6..68a5434bed 100644 --- a/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c +++ b/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_75_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_75_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_75_ansi( - 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_PSCR, KC_DEL, RM_NEXT, + 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_PSCR, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_75_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/s1/ansi/white/keyboard.json b/keyboards/keychron/s1/ansi/white/keyboard.json index 7118ebfc44..40cc99a23f 100644 --- a/keyboards/keychron/s1/ansi/white/keyboard.json +++ b/keyboards/keychron/s1/ansi/white/keyboard.json @@ -123,6 +123,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "led_matrix": true, diff --git a/keyboards/keychron/s1/s1.c b/keyboards/keychron/s1/s1.c index 4179cb4a6f..51bc0596c4 100644 --- a/keyboards/keychron/s1/s1.c +++ b/keyboards/keychron/s1/s1.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v1/ansi/keymaps/default/keymap.c b/keyboards/keychron/v1/ansi/keymaps/default/keymap.c index f9b84c8f50..da0ffcdafb 100644 --- a/keyboards/keychron/v1/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/ansi/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_ansi_82( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v1/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v1/ansi_encoder/keymaps/default/keymap.c index 8797029544..a5eed7de19 100644 --- a/keyboards/keychron/v1/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_82( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_ansi_82( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_82( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v1/iso/keymaps/default/keymap.c b/keyboards/keychron/v1/iso/keymaps/default/keymap.c index 2f4fd712ac..e222112d2a 100644 --- a/keyboards/keychron/v1/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/iso/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_83( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v1/iso_encoder/keymaps/default/keymap.c index 60f82c2ab6..2667e16d5e 100644 --- a/keyboards/keychron/v1/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_83( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_83( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_83( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v1/jis/keymaps/default/keymap.c b/keyboards/keychron/v1/jis/keymaps/default/keymap.c index 9b5c0308e9..95784d077a 100644 --- a/keyboards/keychron/v1/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/jis/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_86( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, 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_INT3, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_jis_86( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_86( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v1/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/v1/jis_encoder/keymaps/default/keymap.c index 140f61cd72..05f0d38846 100644 --- a/keyboards/keychron/v1/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v1/jis_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_86( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, 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_INT3, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_jis_86( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_86( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v1/v1.c b/keyboards/keychron/v1/v1.c index 4d5381105a..7f93b37bcc 100644 --- a/keyboards/keychron/v1/v1.c +++ b/keyboards/keychron/v1/v1.c @@ -36,7 +36,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c index c4a00e31b8..85daf6fb52 100644 --- a/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_89( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi_89( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi_89( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c index 22ddc6944b..40046cc69d 100644 --- a/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_90( - KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, @@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_90( - RM_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_90( - RM_TOGG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/v10.c b/keyboards/keychron/v10/v10.c index f81b78284b..1bde388544 100644 --- a/keyboards/keychron/v10/v10.c +++ b/keyboards/keychron/v10/v10.c @@ -37,7 +37,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v2/ansi/keyboard.json b/keyboards/keychron/v2/ansi/keyboard.json index bc09cb8a27..015aae6e3e 100644 --- a/keyboards/keychron/v2/ansi/keyboard.json +++ b/keyboards/keychron/v2/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/ansi/keymaps/default/keymap.c b/keyboards/keychron/v2/ansi/keymaps/default/keymap.c index 80777acd60..39c169dddb 100644 --- a/keyboards/keychron/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/ansi/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_67( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v2/ansi_encoder/keyboard.json b/keyboards/keychron/v2/ansi_encoder/keyboard.json index 6752d14b15..ca62bab148 100644 --- a/keyboards/keychron/v2/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v2/ansi_encoder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v2/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v2/ansi_encoder/keymaps/default/keymap.c index c0913a25af..71da961dac 100644 --- a/keyboards/keychron/v2/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/ansi_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_67( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_67( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = { ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v2/iso/keyboard.json b/keyboards/keychron/v2/iso/keyboard.json index 89bdb51a65..827f613247 100644 --- a/keyboards/keychron/v2/iso/keyboard.json +++ b/keyboards/keychron/v2/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/iso/keymaps/default/keymap.c b/keyboards/keychron/v2/iso/keymaps/default/keymap.c index f1f51596e5..bdee4ad8fd 100644 --- a/keyboards/keychron/v2/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/iso/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_68( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v2/iso_encoder/keyboard.json b/keyboards/keychron/v2/iso_encoder/keyboard.json index 89ce2714f1..10774d6974 100644 --- a/keyboards/keychron/v2/iso_encoder/keyboard.json +++ b/keyboards/keychron/v2/iso_encoder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v2/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v2/iso_encoder/keymaps/default/keymap.c index a3ecbff90f..585b6bb6cb 100644 --- a/keyboards/keychron/v2/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/iso_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_68( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_68( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = { ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v2/jis/keyboard.json b/keyboards/keychron/v2/jis/keyboard.json index 01beaf31ac..c775944009 100644 --- a/keyboards/keychron/v2/jis/keyboard.json +++ b/keyboards/keychron/v2/jis/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/jis/keymaps/default/keymap.c b/keyboards/keychron/v2/jis/keymaps/default/keymap.c index c325d1d07b..30e83b21a6 100644 --- a/keyboards/keychron/v2/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/jis/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_jis_71( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v2/jis_encoder/keyboard.json b/keyboards/keychron/v2/jis_encoder/keyboard.json index d8a540953c..c783b3553e 100644 --- a/keyboards/keychron/v2/jis_encoder/keyboard.json +++ b/keyboards/keychron/v2/jis_encoder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v2/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/v2/jis_encoder/keymaps/default/keymap.c index 47c8112e4c..68ca97e791 100644 --- a/keyboards/keychron/v2/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v2/jis_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_jis_71( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_jis_71( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = { ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v2/v2.c b/keyboards/keychron/v2/v2.c index 127af0ed6d..f2aed82fa9 100644 --- a/keyboards/keychron/v2/v2.c +++ b/keyboards/keychron/v2/v2.c @@ -33,7 +33,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v3/ansi/keyboard.json b/keyboards/keychron/v3/ansi/keyboard.json index d388456227..b8489a43b4 100644 --- a/keyboards/keychron/v3/ansi/keyboard.json +++ b/keyboards/keychron/v3/ansi/keyboard.json @@ -5,6 +5,8 @@ "maintainer": "lalalademaxiya1", "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v3/ansi/keymaps/default/keymap.c b/keyboards/keychron/v3/ansi/keymaps/default/keymap.c index 3a5c453c9a..4a986de4df 100644 --- a/keyboards/keychron/v3/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/ansi/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_ansi( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v3/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v3/ansi_encoder/keymaps/default/keymap.c index 18ea4328b9..1d3b2a2d46 100644 --- a/keyboards/keychron/v3/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_f13_ansi( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_f13_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_f13_ansi( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 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, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_f13_ansi( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v3/iso/keyboard.json b/keyboards/keychron/v3/iso/keyboard.json index 40a8139ccc..b257deb1c0 100644 --- a/keyboards/keychron/v3/iso/keyboard.json +++ b/keyboards/keychron/v3/iso/keyboard.json @@ -5,6 +5,7 @@ "maintainer": "lalalademaxiya1", "features": { "bootmagic": true, + "command": false, "console": true, "dip_switch": true, "extrakey": true, diff --git a/keyboards/keychron/v3/iso/keymaps/default/keymap.c b/keyboards/keychron/v3/iso/keymaps/default/keymap.c index 3726f31167..e50315c1fd 100644 --- a/keyboards/keychron/v3/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_iso( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -36,15 +36,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_iso( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_iso( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -52,10 +52,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_iso( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v3/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v3/iso_encoder/keymaps/default/keymap.c index 8fe9189e11..9d92865528 100644 --- a/keyboards/keychron/v3/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_tkl_f13_iso( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_tkl_f13_iso( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_tkl_f13_iso( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_tkl_f13_iso( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v3/jis/keyboard.json b/keyboards/keychron/v3/jis/keyboard.json index 0bc3a43d0e..f00716b2db 100644 --- a/keyboards/keychron/v3/jis/keyboard.json +++ b/keyboards/keychron/v3/jis/keyboard.json @@ -5,6 +5,8 @@ "maintainer": "lalalademaxiya1", "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v3/jis/keymaps/default/keymap.c b/keyboards/keychron/v3/jis/keymaps/default/keymap.c index 6ab1a463fb..7fa980bb08 100644 --- a/keyboards/keychron/v3/jis/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/jis/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_91( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_jis_91( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_jis_91( - 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_PSCR, KC_NO, RM_NEXT, + 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_PSCR, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_91( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v3/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/v3/jis_encoder/keymaps/default/keymap.c index 4e34a34aae..18c17da4fd 100644 --- a/keyboards/keychron/v3/jis_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v3/jis_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_jis_92( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -38,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_jis_92( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_jis_92( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_jis_92( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v3/v3.c b/keyboards/keychron/v3/v3.c index f844ffe9d9..4452556ca6 100644 --- a/keyboards/keychron/v3/v3.c +++ b/keyboards/keychron/v3/v3.c @@ -36,7 +36,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v4/ansi/keyboard.json b/keyboards/keychron/v4/ansi/keyboard.json index 7184e32f27..d66eb3f956 100644 --- a/keyboards/keychron/v4/ansi/keyboard.json +++ b/keyboards/keychron/v4/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v4/ansi/keymaps/default/keymap.c b/keyboards/keychron/v4/ansi/keymaps/default/keymap.c index f3d4b8d4d4..b23029bee4 100644 --- a/keyboards/keychron/v4/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v4/ansi/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), [_FN1] = LAYOUT_60_ansi( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_60_ansi( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_60_ansi( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v4/iso/keyboard.json b/keyboards/keychron/v4/iso/keyboard.json index 8077844652..c7854307e4 100644 --- a/keyboards/keychron/v4/iso/keyboard.json +++ b/keyboards/keychron/v4/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v4/iso/keymaps/default/keymap.c b/keyboards/keychron/v4/iso/keymaps/default/keymap.c index 697bd89a9a..1569e513cf 100644 --- a/keyboards/keychron/v4/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v4/iso/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), [_FN1] = LAYOUT_60_iso( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_60_iso( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_NEXT, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_60_iso( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v4/v4.c b/keyboards/keychron/v4/v4.c index a9ccdb81ba..d020f6ab43 100644 --- a/keyboards/keychron/v4/v4.c +++ b/keyboards/keychron/v4/v4.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v5/ansi/keymaps/default/keymap.c b/keyboards/keychron/v5/ansi/keymaps/default/keymap.c index 5373b6c376..655756c2d7 100644 --- a/keyboards/keychron/v5/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v5/ansi/keymaps/default/keymap.c @@ -30,31 +30,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_100( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_100( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_100( - 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_100( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v5/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v5/ansi_encoder/keymaps/default/keymap.c index 289f7681bc..c48e7036be 100644 --- a/keyboards/keychron/v5/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v5/ansi_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_98( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_ansi_98( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_98( @@ -51,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_98( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v5/iso/keymaps/default/keymap.c b/keyboards/keychron/v5/iso/keymaps/default/keymap.c index 33d14b1a4b..0635b7d866 100644 --- a/keyboards/keychron/v5/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v5/iso/keymaps/default/keymap.c @@ -30,31 +30,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_101( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_101( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_101( - 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RM_NEXT, + 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_101( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RM_TOGG, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v5/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v5/iso_encoder/keymaps/default/keymap.c index ca3a7746c9..7defc8c79a 100644 --- a/keyboards/keychron/v5/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v5/iso_encoder/keymaps/default/keymap.c @@ -30,7 +30,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_99( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT_iso_99( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_99( @@ -51,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_99( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v5/v5.c b/keyboards/keychron/v5/v5.c index 03d1f9a743..050ea18c0c 100644 --- a/keyboards/keychron/v5/v5.c +++ b/keyboards/keychron/v5/v5.c @@ -36,7 +36,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v6/ansi/keymaps/default/keymap.c b/keyboards/keychron/v6/ansi/keymaps/default/keymap.c index 05ac05356c..8eac2214bb 100644 --- a/keyboards/keychron/v6/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v6/ansi/keymaps/default/keymap.c @@ -31,31 +31,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_108( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_108( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_108( - 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_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_108( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c index bf5024f21a..b51ea1a09c 100644 --- a/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c @@ -28,31 +28,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_109( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_ansi_109( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_ansi_109( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_ansi_109( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v6/iso/keymaps/default/keymap.c b/keyboards/keychron/v6/iso/keymaps/default/keymap.c index 54622ac252..c1463b3060 100644 --- a/keyboards/keychron/v6/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v6/iso/keymaps/default/keymap.c @@ -28,31 +28,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_109( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_109( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_109( - 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_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_109( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c index 02c0ddf9de..73b0c57786 100644 --- a/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c @@ -30,31 +30,31 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_110( - KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RM_NEXT, KC_F13, KC_F14, KC_F15, KC_F16, + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [MAC_FN] = LAYOUT_iso_110( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [WIN_BASE] = LAYOUT_iso_110( - 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_MUTE, KC_PSCR, KC_NO, RM_NEXT, _______, _______, _______, _______, + 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_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [WIN_FN] = LAYOUT_iso_110( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_TOGG, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; @@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = {ENCODER_CCW_CW(RM_VALD, RM_VALU) } + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; #endif diff --git a/keyboards/keychron/v6/v6.c b/keyboards/keychron/v6/v6.c index 2fedd20d5b..8aeab5e952 100644 --- a/keyboards/keychron/v6/v6.c +++ b/keyboards/keychron/v6/v6.c @@ -41,7 +41,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v7/ansi/keyboard.json b/keyboards/keychron/v7/ansi/keyboard.json index 503aea5ab6..a60b46dc97 100644 --- a/keyboards/keychron/v7/ansi/keyboard.json +++ b/keyboards/keychron/v7/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v7/ansi/keymaps/default/keymap.c b/keyboards/keychron/v7/ansi/keymaps/default/keymap.c index 7d2ac92644..5d5a0ea0b4 100644 --- a/keyboards/keychron/v7/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v7/ansi/keymaps/default/keymap.c @@ -31,37 +31,37 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_ansi_72( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 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_HOME, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_RCTL, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [WIN_BASE] = LAYOUT_ansi_72( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 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_HOME, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_72( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_72( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_72( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v7/iso/keyboard.json b/keyboards/keychron/v7/iso/keyboard.json index ec4cd06e6b..0022222635 100644 --- a/keyboards/keychron/v7/iso/keyboard.json +++ b/keyboards/keychron/v7/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v7/iso/keymaps/default/keymap.c b/keyboards/keychron/v7/iso/keymaps/default/keymap.c index 81a6bcc2ad..d033ca6ab1 100644 --- a/keyboards/keychron/v7/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v7/iso/keymaps/default/keymap.c @@ -31,37 +31,37 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_73( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, 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_END, 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_NUHS, KC_ENT, KC_HOME, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_RCTL, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [WIN_BASE] = LAYOUT_iso_73( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RM_NEXT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, RGB_MOD, 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_END, 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_NUHS, KC_ENT, KC_HOME, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_73( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_73( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_73( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v7/v7.c b/keyboards/keychron/v7/v7.c index 02f4ec1500..215b4922dc 100644 --- a/keyboards/keychron/v7/v7.c +++ b/keyboards/keychron/v7/v7.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/v8/ansi/keyboard.json b/keyboards/keychron/v8/ansi/keyboard.json index 392783e024..7827270228 100644 --- a/keyboards/keychron/v8/ansi/keyboard.json +++ b/keyboards/keychron/v8/ansi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v8/ansi/keymaps/default/keymap.c b/keyboards/keychron/v8/ansi/keymaps/default/keymap.c index c2bef7ca7f..2f6f1311a9 100644 --- a/keyboards/keychron/v8/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v8/ansi/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_69( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v8/ansi_encoder/keyboard.json b/keyboards/keychron/v8/ansi_encoder/keyboard.json index 6d3257feec..a5d84021d0 100644 --- a/keyboards/keychron/v8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v8/ansi_encoder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v8/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v8/ansi_encoder/keymaps/default/keymap.c index ea6538fcbf..a128a54a00 100644 --- a/keyboards/keychron/v8/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v8/ansi_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_ansi_69( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v8/iso/keyboard.json b/keyboards/keychron/v8/iso/keyboard.json index 0d10662a00..89310111f5 100644 --- a/keyboards/keychron/v8/iso/keyboard.json +++ b/keyboards/keychron/v8/iso/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v8/iso/keymaps/default/keymap.c b/keyboards/keychron/v8/iso/keymaps/default/keymap.c index 39b3577fdd..b473966178 100644 --- a/keyboards/keychron/v8/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v8/iso/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_70( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/keychron/v8/iso_encoder/keyboard.json b/keyboards/keychron/v8/iso_encoder/keyboard.json index d446d213d4..2e50de7421 100644 --- a/keyboards/keychron/v8/iso_encoder/keyboard.json +++ b/keyboards/keychron/v8/iso_encoder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v8/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v8/iso_encoder/keymaps/default/keymap.c index 719cdfee56..8d5e493e6a 100644 --- a/keyboards/keychron/v8/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/v8/iso_encoder/keymaps/default/keymap.c @@ -45,23 +45,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN2] = LAYOUT_iso_70( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [_FN3] = LAYOUT_iso_70( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, - [_FN2] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN2] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, [_FN3] = {ENCODER_CCW_CW(_______, _______)} }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v8/v8.c b/keyboards/keychron/v8/v8.c index 0e03ba34ec..5cc6c0782c 100644 --- a/keyboards/keychron/v8/v8.c +++ b/keyboards/keychron/v8/v8.c @@ -34,7 +34,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/keychron/x0/board.h b/keyboards/keychron/x0/board.h deleted file mode 100644 index 55dd9bf2d2..0000000000 --- a/keyboards/keychron/x0/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 @ Keychron(https://www.keychron.com) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/x0/config.h b/keyboards/keychron/x0/config.h deleted file mode 100644 index 1a2a4e42a3..0000000000 --- a/keyboards/keychron/x0/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2023 @ Keychron(https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* I2C Driver Configuration */ -#define I2C1_SCL_PIN B8 -#define I2C1_SDA_PIN B9 -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/keychron/x0/halconf.h b/keyboards/keychron/x0/halconf.h deleted file mode 100644 index 41bddcb279..0000000000 --- a/keyboards/keychron/x0/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/keychron/x0/info.json b/keyboards/keychron/x0/info.json deleted file mode 100644 index 7e2e512ef4..0000000000 --- a/keyboards/keychron/x0/info.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "manufacturer": "Keychron", - "keyboard_name": "Lemokey X0", - "maintainer": "lalalademaxiya1", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "A3" - }, - "matrix_pins": { - "cols": ["C6", "C7", "C8", "A14", "A15", "C10", "C11"], - "rows": ["C12", "D2", "B3", "B4", "B5", "B6"] - }, - "processor": "STM32F401", - "url": "https://www.lemokey.com/products/lemokey-x0-qmk-wired-mechanical-gaming-keypad", - "usb": { - "device_version": "1.1.0", - "pid": "0x0200", - "vid": "0x362D" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25, "w": 1.5}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25, "w": 1.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25, "w": 1.75}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 2], "x": 2.75, "y": 5.25}, - {"matrix": [5, 3], "x": 3.75, "y": 5.25}, - {"matrix": [5, 4], "x": 4.75, "y": 5.25}, - {"matrix": [5, 5], "x": 6, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/x0/mcuconf.h b/keyboards/keychron/x0/mcuconf.h deleted file mode 100644 index bb608cec27..0000000000 --- a/keyboards/keychron/x0/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/x0/readme.md b/keyboards/keychron/x0/readme.md deleted file mode 100644 index d08c3abe7e..0000000000 --- a/keyboards/keychron/x0/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Lemokey X0 - -![Lemokey X0](https://i.imgur.com/ntROq41.jpeg) - -A one-handed gaming keypad. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Lemokey X0 -* Hardware Availability: [Keychron](https://www.lemokey.com/products/lemokey-x0-qmk-wired-mechanical-gaming-keypad) - -Make example for this keyboard (after setting up your build environment): - - make keychron/x0/red:default - -Flashing example for this keyboard: - - make keychron/x0/red: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 - -To enter the bootloader, hold down the key located at **K00**, labelled and commonly programmed as **Esc**, while plugging in the keyboard. diff --git a/keyboards/keychron/x0/red/config.h b/keyboards/keychron/x0/red/config.h deleted file mode 100644 index 067266830f..0000000000 --- a/keyboards/keychron/x0/red/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2023 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#ifdef LED_MATRIX_ENABLE -# define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND - -# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL -# define SNLED27351_CURRENT_TUNE \ - { 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 } -#endif diff --git a/keyboards/keychron/x0/red/keyboard.json b/keyboards/keychron/x0/red/keyboard.json deleted file mode 100644 index f591a607eb..0000000000 --- a/keyboards/keychron/x0/red/keyboard.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "features": { - "led_matrix": true - }, - "led_matrix": { - "animations": { - "band_pinwheel": true, - "band_spiral": true, - "breathing": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_up_down": true, - "dual_beacon": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "solid_reactive_simple": true, - "solid_splash": true, - "wave_left_right": true, - "wave_up_down": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 37, "y": 0, "flags": 1}, - {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1}, - {"matrix": [0, 3], "x": 112, "y": 0, "flags": 1}, - {"matrix": [0, 4], "x": 149, "y": 0, "flags": 1}, - {"matrix": [0, 5], "x": 187, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 13, "flags": 1}, - {"matrix": [1, 1], "x": 37, "y": 13, "flags": 4}, - {"matrix": [1, 2], "x": 75, "y": 13, "flags": 4}, - {"matrix": [1, 3], "x": 112, "y": 13, "flags": 4}, - {"matrix": [1, 4], "x": 149, "y": 13, "flags": 4}, - {"matrix": [1, 5], "x": 187, "y": 13, "flags": 4}, - {"matrix": [1, 6], "x": 224, "y": 13, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 26, "flags": 1}, - {"matrix": [2, 1], "x": 37, "y": 26, "flags": 4}, - {"matrix": [2, 2], "x": 75, "y": 26, "flags": 4}, - {"matrix": [2, 3], "x": 112, "y": 26, "flags": 4}, - {"matrix": [2, 4], "x": 149, "y": 26, "flags": 4}, - {"matrix": [2, 5], "x": 187, "y": 26, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 38, "flags": 1}, - {"matrix": [3, 1], "x": 37, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 75, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 112, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 149, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 187, "y": 38, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, - {"matrix": [4, 2], "x": 75, "y": 51, "flags": 4}, - {"matrix": [4, 3], "x": 112, "y": 51, "flags": 4}, - {"matrix": [4, 4], "x": 149, "y": 51, "flags": 4}, - {"matrix": [4, 5], "x": 187, "y": 51, "flags": 4}, - {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 75, "y": 64, "flags": 1}, - {"matrix": [5, 3], "x": 112, "y": 64, "flags": 1}, - {"matrix": [5, 4], "x": 149, "y": 64, "flags": 1} - ], - "sleep": true - } -} diff --git a/keyboards/keychron/x0/red/keymaps/default/keymap.c b/keyboards/keychron/x0/red/keymaps/default/keymap.c deleted file mode 100644 index 4d04c09d9b..0000000000 --- a/keyboards/keychron/x0/red/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2023 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers { - WIN_BASE, - WIN_FN, -}; - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [WIN_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, - KC_LCTL, KC_LALT, MO(WIN_FN), MO(WIN_FN), KC_SPC), - - [WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, LGUI(KC_TAB), LGUI(KC_E), _______, - _______, _______, _______, _______, _______, _______, _______, - LM_TOGG, LM_PREV, LM_BRIU, LM_NEXT, _______, _______, - _______, LM_SPDD, LM_BRID, LM_SPDU, _______, _______, - _______, _______, _______, _______, NK_TOGG, - _______, _______, _______, _______, _______), -}; diff --git a/keyboards/keychron/x0/red/red.c b/keyboards/keychron/x0/red/red.c deleted file mode 100644 index 9499a09d8b..0000000000 --- a/keyboards/keychron/x0/red/red.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright 2023 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef LED_MATRIX_ENABLE -// clang-format off -const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to SNLED27351 manual for these locations - * driver - * | LED address - * | | */ - {0, CB6_CA1 }, - {0, CB6_CA2 }, - {0, CB6_CA3 }, - {0, CB6_CA4 }, - {0, CB6_CA5 }, - {0, CB6_CA6 }, - {0, CB5_CA1 }, - {0, CB5_CA2 }, - {0, CB5_CA3 }, - {0, CB5_CA4 }, - {0, CB5_CA5 }, - {0, CB5_CA6 }, - {0, CB5_CA7 }, - {0, CB4_CA1 }, - {0, CB4_CA2 }, - {0, CB4_CA3 }, - {0, CB4_CA4 }, - {0, CB4_CA5 }, - {0, CB4_CA6 }, - {0, CB3_CA1 }, - {0, CB3_CA2 }, - {0, CB3_CA3 }, - {0, CB3_CA4 }, - {0, CB3_CA5 }, - {0, CB3_CA6 }, - {0, CB2_CA1 }, - {0, CB2_CA3 }, - {0, CB2_CA4 }, - {0, CB2_CA5 }, - {0, CB2_CA6 }, - {0, CB1_CA1 }, - {0, CB1_CA3 }, - {0, CB1_CA4 }, - {0, CB1_CA5 }, -}; -#endif diff --git a/keyboards/keycult/keycult1800/keyboard.json b/keyboards/keycult/keycult1800/keyboard.json deleted file mode 100644 index 8ed6e6e2fa..0000000000 --- a/keyboards/keycult/keycult1800/keyboard.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "manufacturer": "Yiancar-Designs", - "keyboard_name": "Keycult 1800", - "maintainer": "Yiancar-Designs", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1", "A6"], - "rows": ["B11", "B10", "B2", "B1", "A9", "A5"] - }, - "processor": "STM32F072", - "url": "https://yiancar-designs.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x6338", - "vid": "0x8968" - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1.25, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.5, "y": 0 }, - { "matrix": [0, 15], "x": 16.5, "y": 0 }, - { "matrix": [0, 16], "x": 17.5, "y": 0 }, - { "matrix": [0, 17], "x": 18.5, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.5 }, - { "matrix": [1, 1], "x": 1, "y": 1.5 }, - { "matrix": [1, 2], "x": 2, "y": 1.5 }, - { "matrix": [1, 3], "x": 3, "y": 1.5 }, - { "matrix": [1, 4], "x": 4, "y": 1.5 }, - { "matrix": [1, 5], "x": 5, "y": 1.5 }, - { "matrix": [1, 6], "x": 6, "y": 1.5 }, - { "matrix": [1, 7], "x": 7, "y": 1.5 }, - { "matrix": [1, 8], "x": 8, "y": 1.5 }, - { "matrix": [1, 9], "x": 9, "y": 1.5 }, - { "matrix": [1, 10], "x": 10, "y": 1.5 }, - { "matrix": [1, 11], "x": 11, "y": 1.5 }, - { "matrix": [1, 12], "x": 12, "y": 1.5 }, - { "matrix": [1, 13], "x": 13, "y": 1.5 }, - { "matrix": [2, 13], "x": 14, "y": 1.5 }, - { "matrix": [1, 14], "x": 15.5, "y": 1.5 }, - { "matrix": [1, 15], "x": 16.5, "y": 1.5 }, - { "matrix": [1, 16], "x": 17.5, "y": 1.5 }, - { "matrix": [1, 17], "x": 18.5, "y": 1.5 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, - { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, - { "matrix": [3, 12], "w": 1.5, "x": 13.5, "y": 2.5 }, - { "matrix": [2, 14], "x": 15.5, "y": 2.5 }, - { "matrix": [2, 15], "x": 16.5, "y": 2.5 }, - { "matrix": [2, 16], "x": 17.5, "y": 2.5 }, - { "matrix": [2, 17], "x": 18.5, "y": 2.5 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.5 }, - { "matrix": [3, 14], "x": 15.5, "y": 3.5 }, - { "matrix": [3, 15], "x": 16.5, "y": 3.5 }, - { "matrix": [3, 16], "x": 17.5, "y": 3.5 }, - { "matrix": [3, 17], "x": 18.5, "y": 3.5 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.5 }, - { "matrix": [4, 13], "x": 14.25, "y": 4.75 }, - { "matrix": [4, 14], "x": 15.5, "y": 4.5 }, - { "matrix": [4, 15], "x": 16.5, "y": 4.5 }, - { "matrix": [4, 16], "x": 17.5, "y": 4.5 }, - { "matrix": [4, 17], "x": 18.5, "y": 4.5 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.5 }, - { "matrix": [5, 9], "x": 10, "y": 5.5 }, - { "matrix": [5, 10], "x": 11, "y": 5.5 }, - { "matrix": [5, 11], "x": 12, "y": 5.5 }, - { "matrix": [5, 12], "x": 13.25, "y": 5.75 }, - { "matrix": [5, 13], "x": 14.25, "y": 5.75 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.75 }, - { "matrix": [5, 15], "x": 16.5, "y": 5.5 }, - { "matrix": [5, 16], "x": 17.5, "y": 5.5 }, - { "matrix": [5, 17], "x": 18.5, "y": 5.5 } - ] - } - } -} diff --git a/keyboards/keycult/keycult1800/keymaps/default/keymap.c b/keyboards/keycult/keycult1800/keymaps/default/keymap.c deleted file mode 100644 index 79570b73a2..0000000000 --- a/keyboards/keycult/keycult1800/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_HOME, KC_END, KC_PGUP, KC_PGDN, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), - -[1] = LAYOUT( /* FN */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - -}; diff --git a/keyboards/keycult/keycult1800/readme.md b/keyboards/keycult/keycult1800/readme.md deleted file mode 100644 index bc8574248c..0000000000 --- a/keyboards/keycult/keycult1800/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# Keycult 1800 - -This is a 1800 layout PCB - -* Keyboard Maintainer: [Yiancar](https://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A 1800 keyboard with STM32F072CB or APM compatible -* Hardware Availability: https://keycult.com/ - -## Instructions - -### Build - -Make example for this keyboard (after setting up your build environment): - - make keycult/keycult1800:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Reset - -- Unplug -- Hold Escape -- Plug In -- Unplug -- Release Escape - -### Flash - -- Unplug -- Hold Escape -- Plug In -- Flash using QMK Toolbox or dfu-util (`make keycult/keycult1800::dfu-util`) diff --git a/keyboards/keycult/keycult1800/rules.mk b/keyboards/keycult/keycult1800/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/keycult/keycult1800/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/keycult/keycult60/keyboard.json b/keyboards/keycult/keycult60/keyboard.json deleted file mode 100755 index 349472d87b..0000000000 --- a/keyboards/keycult/keycult60/keyboard.json +++ /dev/null @@ -1,600 +0,0 @@ -{ - "keyboard_name": "Keycult 60", - "manufacturer": "Yiancar-Designs", - "url": "https://yiancar-designs.com", - "maintainer": "Yiancar-Designs", - "usb": { - "vid": "0x8968", - "pid": "0x6339", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "B6", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["A1", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B2", "B10", "B11", "B12", "B13", "B14"], - "rows": ["A2", "B9", "B8", "B5", "B4"] - }, - "diode_direction": "COL2ROW", - "processor": "STM32F072", - "bootloader": "stm32-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/keycult/keycult60/keycult60.c b/keyboards/keycult/keycult60/keycult60.c deleted file mode 100755 index 69a12503a3..0000000000 --- a/keyboards/keycult/keycult60/keycult60.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2025 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -void led_init_ports(void) { - // Set our LED pins as open drain outputs - gpio_set_pin_output_open_drain(LED_CAPS_LOCK_PIN); -} diff --git a/keyboards/keycult/keycult60/keymaps/default/keymap.c b/keyboards/keycult/keycult60/keymaps/default/keymap.c deleted file mode 100644 index 47e27e4607..0000000000 --- a/keyboards/keycult/keycult60/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2025 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL), - -[1] = LAYOUT_all( /* FN */ - 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, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; diff --git a/keyboards/keycult/keycult60/readme.md b/keyboards/keycult/keycult60/readme.md deleted file mode 100755 index 0889d7686b..0000000000 --- a/keyboards/keycult/keycult60/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# Keycult 60 - -This is a standard 60% layout PCB. - -* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A 60% keyboard with STM32F072CB -* Hardware Availability: https://novelkeys.com/ - -## Instructions - -### Build - -Make example for this keyboard (after setting up your build environment): - - make keycult/keycult60:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Reset - -- Unplug -- Hold Escape -- Plug In -- Unplug -- Release Escape - -### Flash - -- Unplug -- Hold Escape -- Plug In -- Flash using QMK Toolbox or CLI (`make keycult/keycult60::flash`) diff --git a/keyboards/keycult/keycult60/rules.mk b/keyboards/keycult/keycult60/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/keycult/keycult60/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/keycult/keycult_zero/keyboard.json b/keyboards/keycult/keycult_zero/keyboard.json deleted file mode 100755 index 4da493202f..0000000000 --- a/keyboards/keycult/keycult_zero/keyboard.json +++ /dev/null @@ -1,603 +0,0 @@ -{ - "keyboard_name": "Keycult Zero", - "manufacturer": "Yiancar-Designs", - "url": "https://yiancar-designs.com", - "maintainer": "Yiancar-Designs", - "usb": { - "vid": "0x8968", - "pid": "0x6337", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "B6", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["A1", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B2", "B10", "B11", "B12", "B13", "B14"], - "rows": ["A2", "B9", "B8", "B5", "B4"] - }, - "diode_direction": "COL2ROW", - "processor": "STM32F072", - "bootloader": "stm32-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/keycult/keycult_zero/keycult_zero.c b/keyboards/keycult/keycult_zero/keycult_zero.c deleted file mode 100755 index fdbfa8f272..0000000000 --- a/keyboards/keycult/keycult_zero/keycult_zero.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -void led_init_ports(void) { - // Set our LED pins as open drain outputs - gpio_set_pin_output_open_drain(LED_CAPS_LOCK_PIN); -} diff --git a/keyboards/keycult/keycult_zero/keymaps/default/keymap.c b/keyboards/keycult/keycult_zero/keymaps/default/keymap.c deleted file mode 100644 index 998d514e29..0000000000 --- a/keyboards/keycult/keycult_zero/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL), - -[1] = LAYOUT_all( /* FN */ - 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, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; diff --git a/keyboards/keycult/keycult_zero/readme.md b/keyboards/keycult/keycult_zero/readme.md deleted file mode 100755 index f558808b16..0000000000 --- a/keyboards/keycult/keycult_zero/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# Keycult Zero - -This is a standard 60% layout PCB. It supports VIA. - -* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A 60% keyboard with STM32F072CB -* Hardware Availability: https://novelkeys.com/ - -## Instructions - -### Build - -Make example for this keyboard (after setting up your build environment): - - make keycult/keycult_zero:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Reset - -- Unplug -- Hold Escape -- Plug In -- Unplug -- Release Escape - -### Flash - -- Unplug -- Hold Escape -- Plug In -- Flash using QMK Toolbox or CLI (`make keycult/keycult_zero::flash`) diff --git a/keyboards/keycult/keycult_zero/rules.mk b/keyboards/keycult/keycult_zero/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/keycult/keycult_zero/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/keyhive/absinthe/keyboard.json b/keyboards/keyhive/absinthe/keyboard.json index 26939e4dcc..82a5ae5631 100644 --- a/keyboards/keyhive/absinthe/keyboard.json +++ b/keyboards/keyhive/absinthe/keyboard.json @@ -25,6 +25,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keyhive/ergosaurus/keyboard.json b/keyboards/keyhive/ergosaurus/keyboard.json index 754201c2b1..9a4810a9a5 100644 --- a/keyboards/keyhive/ergosaurus/keyboard.json +++ b/keyboards/keyhive/ergosaurus/keyboard.json @@ -42,7 +42,8 @@ "rows": ["B5", "B4", "E6", "D4", "F6", "D3", "D2", "F4", "F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["alice_split_bs"], "layout_aliases": { "LAYOUT": "LAYOUT_alice_split_bs" diff --git a/keyboards/keyhive/honeycomb/keyboard.json b/keyboards/keyhive/honeycomb/keyboard.json index 69907fccc1..768f08275d 100644 --- a/keyboards/keyhive/honeycomb/keyboard.json +++ b/keyboards/keyhive/honeycomb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Honeycomb", "manufacturer": "Keyhive", + "url": "", "maintainer": "filoxo", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyhive/lattice60/keyboard.json b/keyboards/keyhive/lattice60/keyboard.json index fce9453e34..b805a73357 100644 --- a/keyboards/keyhive/lattice60/keyboard.json +++ b/keyboards/keyhive/lattice60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LATTICE60", "manufacturer": "emdarcher", + "url": "", "maintainer": "emdarcher", "usb": { "vid": "0x16C0", diff --git a/keyboards/keyhive/maypad/keyboard.json b/keyboards/keyhive/maypad/keyboard.json index adc04dc386..d0dad2b6cf 100644 --- a/keyboards/keyhive/maypad/keyboard.json +++ b/keyboards/keyhive/maypad/keyboard.json @@ -27,7 +27,8 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x4", "numpad_5x4"], "layouts": { "LAYOUT_numpad_5x4": { diff --git a/keyboards/keyhive/navi10/info.json b/keyboards/keyhive/navi10/info.json index 25c9f14f27..e5df0c68e1 100644 --- a/keyboards/keyhive/navi10/info.json +++ b/keyboards/keyhive/navi10/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Navi10", "manufacturer": "emdarcher", + "url": "", "maintainer": "emdarcher", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyhive/navi10/rev0/keyboard.json b/keyboards/keyhive/navi10/rev0/keyboard.json index 9e362651ef..ab0e63ef1e 100644 --- a/keyboards/keyhive/navi10/rev0/keyboard.json +++ b/keyboards/keyhive/navi10/rev0/keyboard.json @@ -7,7 +7,8 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/navi10/rev2/keyboard.json b/keyboards/keyhive/navi10/rev2/keyboard.json index df4d11b6e3..ac5148b787 100644 --- a/keyboards/keyhive/navi10/rev2/keyboard.json +++ b/keyboards/keyhive/navi10/rev2/keyboard.json @@ -7,7 +7,8 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/navi10/rev3/keyboard.json b/keyboards/keyhive/navi10/rev3/keyboard.json index 8fa609c52f..9f403a3513 100644 --- a/keyboards/keyhive/navi10/rev3/keyboard.json +++ b/keyboards/keyhive/navi10/rev3/keyboard.json @@ -7,7 +7,8 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/navi10/rules.mk b/keyboards/keyhive/navi10/rules.mk new file mode 100644 index 0000000000..6ebb2d0ceb --- /dev/null +++ b/keyboards/keyhive/navi10/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keyhive/navi10/rev3 diff --git a/keyboards/keyhive/opus/keyboard.json b/keyboards/keyhive/opus/keyboard.json index 58bd2238db..e92c8604ce 100644 --- a/keyboards/keyhive/opus/keyboard.json +++ b/keyboards/keyhive/opus/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -24,7 +26,8 @@ "rows": ["B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyhive/opus/keymaps/default/keymap.c b/keyboards/keyhive/opus/keymaps/default/keymap.c index 868b611a81..aaa1a899a2 100644 --- a/keyboards/keyhive/opus/keymaps/default/keymap.c +++ b/keyboards/keyhive/opus/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC ), [_NAV] = LAYOUT( - KC_NO, KC_NO, LALT(KC_RGHT), LSG(KC_LBRC), LSG(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, LALT(KC_RGHT), SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LALT, KC_LSFT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(KC_LEFT), KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC diff --git a/keyboards/keyhive/smallice/keyboard.json b/keyboards/keyhive/smallice/keyboard.json index 2b3a6994e7..f7118ed3cf 100644 --- a/keyboards/keyhive/smallice/keyboard.json +++ b/keyboards/keyhive/smallice/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keyhive/southpole/keyboard.json b/keyboards/keyhive/southpole/keyboard.json index 8c1895b45d..7136675881 100644 --- a/keyboards/keyhive/southpole/keyboard.json +++ b/keyboards/keyhive/southpole/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "southpole", "manufacturer": "u/waxpoetic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyhive/uno/rev2/keyboard.json b/keyboards/keyhive/uno/rev2/keyboard.jsono similarity index 100% rename from keyboards/keyhive/uno/rev2/keyboard.json rename to keyboards/keyhive/uno/rev2/keyboard.jsono diff --git a/keyboards/keyhive/uno/rules.mk b/keyboards/keyhive/uno/rules.mk new file mode 100644 index 0000000000..3220994593 --- /dev/null +++ b/keyboards/keyhive/uno/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = keyhive/uno/rev1 diff --git a/keyboards/keyhive/ut472/keyboard.json b/keyboards/keyhive/ut472/keyboard.json index 6050751da9..828058a955 100644 --- a/keyboards/keyhive/ut472/keyboard.json +++ b/keyboards/keyhive/ut472/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UT47.2", "manufacturer": "Keyhive", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xA103", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keyhive/ut472/keymaps/default/keymap.c b/keyboards/keyhive/ut472/keymaps/default/keymap.c index 37bd3b37b3..c31b2b7d61 100644 --- a/keyboards/keyhive/ut472/keymaps/default/keymap.c +++ b/keyboards/keyhive/ut472/keymaps/default/keymap.c @@ -95,6 +95,6 @@ LAYOUT( /* Tab */ KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R ), }; diff --git a/keyboards/keyprez/bison/keyboard.json b/keyboards/keyprez/bison/keyboard.json index 94d2049965..5fd2de1ff5 100644 --- a/keyboards/keyprez/bison/keyboard.json +++ b/keyboards/keyprez/bison/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "bison", "manufacturer": "csandven", + "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/bison/keymaps/default/keymap.c b/keyboards/keyprez/bison/keymaps/default/keymap.c index 17c5f2ecd7..fc1f346647 100644 --- a/keyboards/keyprez/bison/keymaps/default/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default/keymap.c @@ -25,6 +25,14 @@ enum layer_names { _FN, }; +enum custom_keycodes { + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, + KC_NXTWD +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define FN MO(_FN) @@ -38,13 +46,6 @@ enum layer_names { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) -#define KC_QWRTY PDF(_QWERTY) -#define KC_COLMK PDF(_COLEMAK) -#define KC_HRM PDF(_HRM) - -#define KC_PRVWD LCTL(KC_LEFT) -#define KC_NXTWD LCTL(KC_RGHT) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -184,3 +185,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______, _______, _______, _______, _______, _______, _______ ), }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + break; + case KC_NXTWD: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + break; + } + return true; +} diff --git a/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c index a51fd87c01..816cd2fda6 100644 --- a/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c @@ -26,7 +26,10 @@ enum layer_names { }; enum custom_keycodes { - KC_PRVWD = SAFE_RANGE, + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, KC_NXTWD }; @@ -43,10 +46,6 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) -#define KC_QWRTY PDF(_QWERTY) -#define KC_COLMK PDF(_COLEMAK) -#define KC_HRM PDF(_HRM) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -189,6 +188,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c index c6d4676384..c42ee631db 100644 --- a/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c @@ -26,7 +26,10 @@ enum layer_names { }; enum custom_keycodes { - KC_PRVWD = SAFE_RANGE, + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, KC_NXTWD }; @@ -43,10 +46,6 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) -#define KC_QWRTY PDF(_QWERTY) -#define KC_COLMK PDF(_COLEMAK) -#define KC_HRM PDF(_HRM) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -189,6 +188,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c index 5566539c08..173b9bc387 100644 --- a/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c @@ -26,7 +26,10 @@ enum layer_names { }; enum custom_keycodes { - KC_PRVWD = SAFE_RANGE, + KC_QWRTY = SAFE_RANGE, + KC_COLMK, + KC_HRM, + KC_PRVWD, KC_NXTWD }; @@ -43,10 +46,6 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) -#define KC_QWRTY PDF(_QWERTY) -#define KC_COLMK PDF(_COLEMAK) -#define KC_HRM PDF(_HRM) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -189,6 +188,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWRTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLMK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_HRM: + if (record->event.pressed) { + set_single_persistent_default_layer(_HRM); + } + return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/corgi/keyboard.json b/keyboards/keyprez/corgi/keyboard.json index 6883970af4..8e664de03d 100644 --- a/keyboards/keyprez/corgi/keyboard.json +++ b/keyboards/keyprez/corgi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "corgi", "manufacturer": "Christian Sandven", + "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/corgi/keymaps/default/keymap.c b/keyboards/keyprez/corgi/keymaps/default/keymap.c index 3e55671bc9..757b3fd1db 100644 --- a/keyboards/keyprez/corgi/keymaps/default/keymap.c +++ b/keyboards/keyprez/corgi/keymaps/default/keymap.c @@ -26,13 +26,15 @@ enum layer_names { _CMD, }; +enum corgi_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define CMD MO(_CMD) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -134,3 +136,21 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(clockwise ? KC_VOLU : KC_VOLD); return true; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + } + return true; +} diff --git a/keyboards/keyprez/rhino/keyboard.json b/keyboards/keyprez/rhino/keyboard.json index f7993c9020..75854f6f99 100644 --- a/keyboards/keyprez/rhino/keyboard.json +++ b/keyboards/keyprez/rhino/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rhino", "manufacturer": "Christian Sandven", + "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/unicorn/keyboard.json b/keyboards/keyprez/unicorn/keyboard.json index 9a8d39a416..7fa855e240 100644 --- a/keyboards/keyprez/unicorn/keyboard.json +++ b/keyboards/keyprez/unicorn/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Unicorn", "manufacturer": "Keyprez", + "url": "", "maintainer": "Keyprez", "usb": { "vid": "0x6B7A", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -42,7 +45,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyquest/enclave/keyboard.json b/keyboards/keyquest/enclave/keyboard.json index 57fe8eaa61..9b2dbb6519 100644 --- a/keyboards/keyquest/enclave/keyboard.json +++ b/keyboards/keyquest/enclave/keyboard.json @@ -33,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keysofkings/twokey/keyboard.json b/keyboards/keysofkings/twokey/keyboard.json index f0c46e34a6..2b75891329 100644 --- a/keyboards/keysofkings/twokey/keyboard.json +++ b/keyboards/keysofkings/twokey/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Twokey", "manufacturer": "Keys of Kings", + "url": "", "maintainer": "Keys of Kings", "usb": { "vid": "0xFEED", @@ -31,6 +32,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -53,7 +56,8 @@ {"pin_a": "D7", "pin_b": "E6", "resolution": 1} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyspensory/kp60/keyboard.json b/keyboards/keyspensory/kp60/keyboard.json index 6634b522bb..1172e14d45 100644 --- a/keyboards/keyspensory/kp60/keyboard.json +++ b/keyboards/keyspensory/kp60/keyboard.json @@ -7,12 +7,8 @@ "vid": "0x4B50", "pid": "0x0060", "device_version": "0.0.1", - "no_startup_check": true - }, - "host": { - "default": { - "nkro": true - } + "no_startup_check": true, + "force_nkro": true }, "diode_direction": "COL2ROW", "matrix_pins": { @@ -21,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -28,6 +26,7 @@ }, "rgblight": { "led_count": 8, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { diff --git a/keyboards/keystonecaps/gameroyadvance/keyboard.json b/keyboards/keystonecaps/gameroyadvance/keyboard.json index 1a7960ac25..15cce9afd5 100644 --- a/keyboards/keystonecaps/gameroyadvance/keyboard.json +++ b/keyboards/keystonecaps/gameroyadvance/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyten/aperture/keyboard.json b/keyboards/keyten/aperture/keyboard.json index 614a1e4ab7..7648e46cc0 100644 --- a/keyboards/keyten/aperture/keyboard.json +++ b/keyboards/keyten/aperture/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Aperture", "manufacturer": "Bizunow", + "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/diablo/keyboard.json b/keyboards/keyten/diablo/keyboard.json index c65ba97fae..3b3e040b08 100644 --- a/keyboards/keyten/diablo/keyboard.json +++ b/keyboards/keyten/diablo/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -20,16 +22,13 @@ "pid": "0x6003", "vid": "0xEB69" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "community_layouts": [ "60_ansi_wkl_split_bs_rshift", "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keyten/diablo/keymaps/default/keymap.c b/keyboards/keyten/diablo/keymaps/default/keymap.c index 3ea6baf7f7..658b09636a 100644 --- a/keyboards/keyten/diablo/keymaps/default/keymap.c +++ b/keyboards/keyten/diablo/keymaps/default/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/keyten/imi60/keyboard.json b/keyboards/keyten/imi60/keyboard.json index 262584442c..2ccf831411 100644 --- a/keyboards/keyten/imi60/keyboard.json +++ b/keyboards/keyten/imi60/keyboard.json @@ -20,12 +20,9 @@ "pid": "0x6005", "vid": "0xEB69" }, - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keyten/imi60/keymaps/default/keymap.c b/keyboards/keyten/imi60/keymaps/default/keymap.c index c7c051dca6..36859fad55 100644 --- a/keyboards/keyten/imi60/keymaps/default/keymap.c +++ b/keyboards/keyten/imi60/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, diff --git a/keyboards/keyten/kt3700/keyboard.json b/keyboards/keyten/kt3700/keyboard.json index 6b14c733bd..9f89ee1453 100644 --- a/keyboards/keyten/kt3700/keyboard.json +++ b/keyboards/keyten/kt3700/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kt3700", "manufacturer": "keyten", + "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/kt60_m/keyboard.json b/keyboards/keyten/kt60_m/keyboard.json index 11605a10d0..3c3061f017 100644 --- a/keyboards/keyten/kt60_m/keyboard.json +++ b/keyboards/keyten/kt60_m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kt60-M", "manufacturer": "keyten", + "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,12 +27,11 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keyten/kt60_m/keymaps/default/keymap.c b/keyboards/keyten/kt60_m/keymaps/default/keymap.c index d499b7fa05..594dceb624 100644 --- a/keyboards/keyten/kt60_m/keymaps/default/keymap.c +++ b/keyboards/keyten/kt60_m/keymaps/default/keymap.c @@ -23,14 +23,14 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_MAIN] = LAYOUT_60_tsangan_hhkb( 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_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_BSPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), - [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keyten/kt60_mu/chconf.h b/keyboards/keyten/kt60_mu/chconf.h deleted file mode 100644 index 2166f7dd9e..0000000000 --- a/keyboards/keyten/kt60_mu/chconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef CH_CFG_ST_RESOLUTION -#define CH_CFG_ST_RESOLUTION 16 diff --git a/keyboards/keyten/kt60_mu/config.h b/keyboards/keyten/kt60_mu/config.h deleted file mode 100644 index aa1736d36b..0000000000 --- a/keyboards/keyten/kt60_mu/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD2 -#define BACKLIGHT_PWM_CHANNEL 4 -#define BACKLIGHT_PAL_MODE 2 diff --git a/keyboards/keyten/kt60_mu/halconf.h b/keyboards/keyten/kt60_mu/halconf.h deleted file mode 100644 index 835310a770..0000000000 --- a/keyboards/keyten/kt60_mu/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/keyten/kt60_mu/keyboard.json b/keyboards/keyten/kt60_mu/keyboard.json deleted file mode 100644 index dcf5035b8e..0000000000 --- a/keyboards/keyten/kt60_mu/keyboard.json +++ /dev/null @@ -1,300 +0,0 @@ -{ - "manufacturer": "keyten", - "keyboard_name": "kt60-MU", - "maintainer": "key10iq", - "processor": "STM32F072", - "bootloader": "stm32-dfu", - "usb": { - "vid": "0xEB69", - "pid": "0x6006", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "backlight": true - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "rows": ["B2", "B1", "B7", "B6", "B5"], - "cols": ["A15", "A4", "F1", "A5", "F0", "A6", "C15", "A7", "C14", "B0", "C13", "B10", "B4", "B3"] - }, - "indicators": { - "caps_lock": "A14" - }, - "backlight": { - "pin": "B11", - "levels": 15 - }, - "community_layouts": [ - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/keyten/kt60_mu/keymaps/default/keymap.c b/keyboards/keyten/kt60_mu/keymaps/default/keymap.c deleted file mode 100644 index c13c720145..0000000000 --- a/keyboards/keyten/kt60_mu/keymaps/default/keymap.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - 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_GRV, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) - -}; diff --git a/keyboards/keyten/kt60_mu/mcuconf.h b/keyboards/keyten/kt60_mu/mcuconf.h deleted file mode 100644 index a3ac64bb32..0000000000 --- a/keyboards/keyten/kt60_mu/mcuconf.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM2 -#define STM32_PWM_USE_TIM2 TRUE - -#undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 3 diff --git a/keyboards/keyten/kt60_mu/readme.md b/keyboards/keyten/kt60_mu/readme.md deleted file mode 100644 index 937215ad34..0000000000 --- a/keyboards/keyten/kt60_mu/readme.md +++ /dev/null @@ -1,42 +0,0 @@ -# keyten kt60-MU - -PCB supporting multiple 60% keyboards. -Outline is compatible with: - -* All common O-Ring mount keyboards -* Polaris V2 (In theory. At the time of PCB design, this keyboard is in IC stage) - -Supports two Type-C connector position: - -* Standard left position -* Central position like Aksara 60 - -Supports three JST connector position like the following PCBs or keyboards: - -* hiney h60 -* Singa Unikorn -* Polaris V2 - -![kt60-MU](https://i.imgur.com/72uSWLx.jpg) - -* Keyboard Maintainer: [keyten](https://github.com/key10iq) -* Hardware Supported: keyten kt60-MU -* Hardware Availability: private GB - -Make example for this keyboard (after setting up your build environment): - - make keyten/kt60_mu:default - -Flashing example for this keyboard: - - make keyten/kt60_mu:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available -* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt60hs_t/info.json b/keyboards/keyten/kt60hs_t/info.json deleted file mode 100644 index 97b4f7d222..0000000000 --- a/keyboards/keyten/kt60hs_t/info.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "manufacturer": "keyten", - "keyboard_name": "kt60HS-T", - "maintainer": "key10iq", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "usb": { - "vid": "0xEB69" - } -} diff --git a/keyboards/keyten/kt60hs_t/keyboard.json b/keyboards/keyten/kt60hs_t/keyboard.json new file mode 100644 index 0000000000..819ce1bf1e --- /dev/null +++ b/keyboards/keyten/kt60hs_t/keyboard.json @@ -0,0 +1,226 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "kt60HS-T", + "maintainer": "key10iq", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A3", "A4", "A5", "A6", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], + "rows": ["B15", "B14", "B12", "B13", "B0"] + }, + "processor": "STM32F401", + "usb": { + "device_version": "0.0.1", + "pid": "0x6004", + "vid": "0xEB69" + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_tsangan_hhkb" + ], + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c index 38938bf162..ef9de98d3c 100644 --- a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c +++ b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/keyten/kt60hs_t/readme.md b/keyboards/keyten/kt60hs_t/readme.md index eb02f6bb8f..75ccbc3b69 100644 --- a/keyboards/keyten/kt60hs_t/readme.md +++ b/keyboards/keyten/kt60hs_t/readme.md @@ -2,15 +2,30 @@ 60% MX Hot-Swap Tsangan PCB -![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) +![kt60HS-T image](https://i.imgur.com/Iqrf6tHh.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60HS-T +* Hardware Availability: private GB Supports: 1. Split Backspace 2. Stepped Caps Lock -There are two versions of the PCB available. +Make example for this keyboard (after setting up your build environment): -|Version| Features | -|-------|-------------------------------------------| -|v1 |Blue/Purple PCB / ARM STM32F401 controller | -|v2 |Purple PCB / ARM STM32F072 controller | + make keyten/kt60hs_t:default + +Flashing example for this keyboard: + + make keyten/kt60hs_t:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt60hs_t/v1/keyboard.json b/keyboards/keyten/kt60hs_t/v1/keyboard.json deleted file mode 100644 index b5b90304b2..0000000000 --- a/keyboards/keyten/kt60hs_t/v1/keyboard.json +++ /dev/null @@ -1,283 +0,0 @@ -{ - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["A3", "A4", "A5", "A6", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], - "rows": ["B15", "B14", "B12", "B13", "B0"] - }, - "processor": "STM32F401", - "usb": { - "device_version": "0.0.1", - "pid": "0x6004" - }, - "community_layouts": [ - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/keyten/kt60hs_t/v1/readme.md b/keyboards/keyten/kt60hs_t/v1/readme.md deleted file mode 100644 index 2f31dbf4bf..0000000000 --- a/keyboards/keyten/kt60hs_t/v1/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# keyten kt60HS-T V1 - -60% MX Hot-Swap Tsangan PCB - -![kt60HS-T image](https://i.imgur.com/tOej7ND.jpeg) - -**Note: This firmware only supports the PCB version with STM32F401 controller** - -* Keyboard Maintainer: [keyten](https://github.com/key10iq) -* Hardware Supported: keyten kt60HS-T -* Hardware Availability: private GB - -Make example for this keyboard (after setting up your build environment): - - make keyten/kt60hs_t/v1:default - -Flashing example for this keyboard: - - make keyten/kt60hs_t/v1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available -* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt60hs_t/v2/keyboard.json b/keyboards/keyten/kt60hs_t/v2/keyboard.json deleted file mode 100644 index 728bd90fe8..0000000000 --- a/keyboards/keyten/kt60hs_t/v2/keyboard.json +++ /dev/null @@ -1,282 +0,0 @@ -{ - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["A3", "A4", "A5", "A6", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], - "rows": ["B15", "B14", "B12", "B13", "B0"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "2.0.0", - "pid": "0x6007" - }, - "community_layouts": [ - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/keyten/kt60hs_t/v2/readme.md b/keyboards/keyten/kt60hs_t/v2/readme.md deleted file mode 100644 index db2b8afccf..0000000000 --- a/keyboards/keyten/kt60hs_t/v2/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# keyten kt60HS-T V2 - -60% MX Hot-Swap Tsangan PCB - -![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) - -**Note: This firmware only supports the PCB version with STM32F072 controller** - -* Keyboard Maintainer: [keyten](https://github.com/key10iq) -* Hardware Supported: keyten kt60HS-T V2 -* Hardware Availability: private GB - -Make example for this keyboard (after setting up your build environment): - - make keyten/kt60hs_t/v2:default - -Flashing example for this keyboard: - - make keyten/kt60hs_t/v2:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available -* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/lisa/keyboard.json b/keyboards/keyten/lisa/keyboard.json index a370a7add1..deac0f3740 100644 --- a/keyboards/keyten/lisa/keyboard.json +++ b/keyboards/keyten/lisa/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/ortho_slayer/keyboard.json b/keyboards/keyten/ortho_slayer/keyboard.json deleted file mode 100644 index e023298937..0000000000 --- a/keyboards/keyten/ortho_slayer/keyboard.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "manufacturer": "keyten x La-Versa", - "keyboard_name": "Ortho Slayer", - "maintainer": "key10iq", - "processor": "STM32F072", - "bootloader": "stm32-dfu", - "usb": { - "vid": "0xEB69", - "pid": "0x9001", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "diode_direction": "ROW2COL", - "matrix_pins": { - "rows": ["B6", "B4", "A15", "B0", "B1", "A6", "B15", "B11", "A9", "B13"], - "cols": ["B7", "B14", "B5", "A8", "B3", "A10", "A14", "B12", "A7", "B2", "B10"] - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [1, 0], "x": 1, "y": 0 }, - { "matrix": [0, 1], "x": 2, "y": 0 }, - { "matrix": [1, 1], "x": 3, "y": 0 }, - { "matrix": [0, 2], "x": 4, "y": 0 }, - { "matrix": [1, 2], "x": 5, "y": 0 }, - { "matrix": [0, 3], "x": 6, "y": 0 }, - { "matrix": [1, 3], "x": 7, "y": 0 }, - { "matrix": [0, 4], "x": 8, "y": 0 }, - { "matrix": [1, 4], "x": 9, "y": 0 }, - { "matrix": [0, 5], "x": 10, "y": 0 }, - { "matrix": [1, 5], "x": 11, "y": 0 }, - { "matrix": [0, 6], "x": 12, "y": 0 }, - { "matrix": [1, 6], "x": 13, "y": 0 }, - { "matrix": [0, 7], "x": 14.25, "y": 0 }, - { "matrix": [1, 7], "x": 15.25, "y": 0 }, - { "matrix": [0, 8], "x": 16.25, "y": 0 }, - { "matrix": [1, 8], "x": 17.5, "y": 0 }, - { "matrix": [0, 9], "x": 18.5, "y": 0 }, - { "matrix": [1, 9], "x": 19.5, "y": 0 }, - { "matrix": [0, 10], "x": 20.5, "y": 0 }, - { "matrix": [2, 0], "x": 0, "y": 1 }, - { "matrix": [3, 0], "x": 1, "y": 1 }, - { "matrix": [2, 1], "x": 2, "y": 1 }, - { "matrix": [3, 1], "x": 3, "y": 1 }, - { "matrix": [2, 2], "x": 4, "y": 1 }, - { "matrix": [3, 2], "x": 5, "y": 1 }, - { "matrix": [2, 3], "x": 6, "y": 1 }, - { "matrix": [3, 3], "x": 7, "y": 1 }, - { "matrix": [2, 4], "x": 8, "y": 1 }, - { "matrix": [3, 4], "x": 9, "y": 1 }, - { "matrix": [2, 5], "x": 10, "y": 1 }, - { "matrix": [3, 5], "x": 11, "y": 1 }, - { "matrix": [2, 6], "x": 12, "y": 1 }, - { "matrix": [3, 6], "x": 13, "y": 1 }, - { "matrix": [2, 7], "x": 14.25, "y": 1 }, - { "matrix": [3, 7], "x": 15.25, "y": 1 }, - { "matrix": [2, 8], "x": 16.25, "y": 1 }, - { "matrix": [3, 8], "x": 17.5, "y": 1 }, - { "matrix": [2, 9], "x": 18.5, "y": 1 }, - { "matrix": [3, 9], "x": 19.5, "y": 1 }, - { "h": 2, "matrix": [5, 10], "x": 20.5, "y": 1 }, - { "matrix": [4, 0], "x": 0, "y": 2 }, - { "matrix": [5, 0], "x": 1, "y": 2 }, - { "matrix": [4, 1], "x": 2, "y": 2 }, - { "matrix": [5, 1], "x": 3, "y": 2 }, - { "matrix": [4, 2], "x": 4, "y": 2 }, - { "matrix": [5, 2], "x": 5, "y": 2 }, - { "matrix": [4, 3], "x": 6, "y": 2 }, - { "matrix": [5, 3], "x": 7, "y": 2 }, - { "matrix": [4, 4], "x": 8, "y": 2 }, - { "matrix": [5, 4], "x": 9, "y": 2 }, - { "matrix": [4, 5], "x": 10, "y": 2 }, - { "matrix": [5, 5], "x": 11, "y": 2 }, - { "matrix": [4, 6], "x": 12, "y": 2 }, - { "matrix": [5, 6], "x": 13, "y": 2 }, - { "matrix": [5, 9], "x": 17.5, "y": 2 }, - { "matrix": [4, 9], "x": 18.5, "y": 2 }, - { "matrix": [4, 10], "x": 19.5, "y": 2 }, - { "matrix": [6, 0], "w": 2, "x": 0, "y": 3 }, - { "matrix": [7, 0], "x": 2, "y": 3 }, - { "matrix": [6, 2], "x": 3, "y": 3 }, - { "matrix": [7, 2], "x": 4, "y": 3 }, - { "matrix": [6, 3], "x": 5, "y": 3 }, - { "matrix": [7, 3], "x": 6, "y": 3 }, - { "matrix": [6, 4], "x": 7, "y": 3 }, - { "matrix": [7, 4], "x": 8, "y": 3 }, - { "matrix": [6, 5], "x": 9, "y": 3 }, - { "matrix": [7, 5], "x": 10, "y": 3 }, - { "matrix": [7, 6], "x": 11, "y": 3 }, - { "matrix": [6, 6], "w": 2, "x": 12, "y": 3 }, - { "matrix": [6, 8], "x": 15.25, "y": 3 }, - { "matrix": [7, 8], "x": 17.5, "y": 3 }, - { "matrix": [6, 9], "x": 18.5, "y": 3 }, - { "matrix": [7, 9], "x": 19.5, "y": 3 }, - { "h": 2, "matrix": [9, 10], "x": 20.5, "y": 3 }, - { "matrix": [8, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [9, 0], "x": 1.25, "y": 4 }, - { "matrix": [8, 1], "w": 1.25, "x": 2.25, "y": 4 }, - { "matrix": [8, 4], "w": 7, "x": 3.5, "y": 4 }, - { "matrix": [9, 4], "w": 1.25, "x": 10.5, "y": 4 }, - { "matrix": [8, 6], "x": 11.75, "y": 4 }, - { "matrix": [9, 6], "w": 1.25, "x": 12.75, "y": 4 }, - { "matrix": [8, 7], "x": 14.25, "y": 4 }, - { "matrix": [9, 7], "x": 15.25, "y": 4 }, - { "matrix": [8, 8], "x": 16.25, "y": 4 }, - { "matrix": [9, 8], "w": 2, "x": 17.5, "y": 4 }, - { "matrix": [8, 10], "x": 19.5, "y": 4 } - ] - } - } -} diff --git a/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c b/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c deleted file mode 100644 index ea471d31ef..0000000000 --- a/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - MO(1), 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_GRV, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_ESC, 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_END, KC_PGDN, KC_P7, KC_P8, KC_KP_9, KC_PPLS, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [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, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; diff --git a/keyboards/keyten/ortho_slayer/readme.md b/keyboards/keyten/ortho_slayer/readme.md deleted file mode 100644 index bae4adf3b6..0000000000 --- a/keyboards/keyten/ortho_slayer/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# keyten x La-Versa Ortho Slayer - -Ortho Slayer is a full size FRL ortho keyboard inspired by Berserk - -![Ortho Slayer image](https://i.imgur.com/CGYysPM.jpeg) - -* Keyboard Maintainer: [keyten](https://github.com/key10iq) -* Hardware Supported: keyten x La-Versa Ortho Slayer -* Hardware Availability: private GB - -Make example for this keyboard (after setting up your build environment): - - make keyten/ortho_slayer:default - -Flashing example for this keyboard: - - make keyten/ortho_slayer:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available -* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/kezewa/enter67/keyboard.json b/keyboards/kezewa/enter67/keyboard.json index eca9311377..df1d7f6b5b 100644 --- a/keyboards/kezewa/enter67/keyboard.json +++ b/keyboards/kezewa/enter67/keyboard.json @@ -19,6 +19,7 @@ "rows": ["A1", "A2", "A3", "A4", "A5"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "0.0.1", "pid": "0xAA66", diff --git a/keyboards/kezewa/enter80/keyboard.json b/keyboards/kezewa/enter80/keyboard.json index 9e62163192..a4fe83b3ac 100644 --- a/keyboards/kezewa/enter80/keyboard.json +++ b/keyboards/kezewa/enter80/keyboard.json @@ -19,6 +19,7 @@ "cols": ["A1", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B11", "B12", "B13", "B14", "A8", "A9", "A10", "A15", "B3"], "rows": ["B4", "B5", "B6", "B15", "B10", "B7"] }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0xFF65", diff --git a/keyboards/kibou/fukuro/keyboard.json b/keyboards/kibou/fukuro/keyboard.json index 9588cb9ff7..fa50cca964 100644 --- a/keyboards/kibou/fukuro/keyboard.json +++ b/keyboards/kibou/fukuro/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["A9", "A10", "C13", "A0", "A6"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0003", diff --git a/keyboards/kibou/harbour/keyboard.json b/keyboards/kibou/harbour/keyboard.json index 15249a9c97..a5417e1ae5 100644 --- a/keyboards/kibou/harbour/keyboard.json +++ b/keyboards/kibou/harbour/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/suisei/keyboard.json b/keyboards/kibou/suisei/keyboard.json index 283e6f6895..f212df1bc7 100644 --- a/keyboards/kibou/suisei/keyboard.json +++ b/keyboards/kibou/suisei/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/wendy/keyboard.json b/keyboards/kibou/wendy/keyboard.json index 99e0ddb84d..1ab0ca8e7f 100644 --- a/keyboards/kibou/wendy/keyboard.json +++ b/keyboards/kibou/wendy/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/winter/keyboard.json b/keyboards/kibou/winter/keyboard.json index 14f912ceb4..47a359ec9b 100644 --- a/keyboards/kibou/winter/keyboard.json +++ b/keyboards/kibou/winter/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kikkou/keyboard.json b/keyboards/kikkou/keyboard.json index 4285d3a515..af684bbc29 100644 --- a/keyboards/kikkou/keyboard.json +++ b/keyboards/kikkou/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kikkou", "manufacturer": "Mechwerkes", + "url": "", "maintainer": "Mechwerkes", "usb": { "vid": "0x6D65", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kikoslab/ellora65/keyboard.json b/keyboards/kikoslab/ellora65/keyboard.json index 3a8ace7879..9dd8404a0b 100644 --- a/keyboards/kikoslab/ellora65/keyboard.json +++ b/keyboards/kikoslab/ellora65/keyboard.json @@ -8,11 +8,10 @@ "pid": "0xE88F", "device_version": "0.0.1" }, - "build": { - "lto": true - }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kikoslab/kl90/keyboard.json b/keyboards/kikoslab/kl90/keyboard.json index af030fb86b..0a107dfba8 100644 --- a/keyboards/kikoslab/kl90/keyboard.json +++ b/keyboards/kikoslab/kl90/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kikoslab/kl90/keymaps/default/keymap.c b/keyboards/kikoslab/kl90/keymaps/default/keymap.c index b84022f583..4dbffe8f77 100644 --- a/keyboards/kikoslab/kl90/keymaps/default/keymap.c +++ b/keyboards/kikoslab/kl90/keymaps/default/keymap.c @@ -23,9 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DEL , 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_PSCR, KC_MPLY, KC_F13 , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_F14 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , - KC_F15 , 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_NUHS, KC_ENT , KC_PGUP, - KC_F16 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, - KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F15 , 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_PIPE, KC_ENT , KC_PGUP, + KC_F16 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_BSLS, KC_UP , KC_PGDN, + KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -41,15 +41,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } else if (index == 1) { /* Second encoder */ if (clockwise) { diff --git a/keyboards/kin80/info.json b/keyboards/kin80/info.json index df58894b92..395742d88b 100644 --- a/keyboards/kin80/info.json +++ b/keyboards/kin80/info.json @@ -4,6 +4,8 @@ "maintainer": "DmNosachev", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kin80/keymaps/default/keymap.c b/keyboards/kin80/keymaps/default/keymap.c index 2e4077e60c..50bad2a974 100644 --- a/keyboards/kin80/keymaps/default/keymap.c +++ b/keyboards/kin80/keymaps/default/keymap.c @@ -85,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NM] = LAYOUT( KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, _______, _______, _______, _______, _______, _______, KC_SCRL, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, - _______, _______, MS_BTN1, MS_UP, MS_BTN2, _______, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, - _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PENT, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT, _______, - MS_WHLU, _______, - _______, _______, MS_WHLD, _______, _______, KC_P0 + KC_WH_U, _______, + _______, _______, KC_WH_D, _______, _______, KC_P0 ) }; diff --git a/keyboards/kin80/rules.mk b/keyboards/kin80/rules.mk new file mode 100644 index 0000000000..b264c9cfc5 --- /dev/null +++ b/keyboards/kin80/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kin80/blackpill401 diff --git a/keyboards/kindakeyboards/conone65/keyboard.json b/keyboards/kindakeyboards/conone65/keyboard.json index 46df385527..6786b6a3d5 100644 --- a/keyboards/kindakeyboards/conone65/keyboard.json +++ b/keyboards/kindakeyboards/conone65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kinesis/alvicstep/keyboard.json b/keyboards/kinesis/alvicstep/keyboard.json index dea99f66ef..951f01203c 100644 --- a/keyboards/kinesis/alvicstep/keyboard.json +++ b/keyboards/kinesis/alvicstep/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/info.json b/keyboards/kinesis/info.json index 066f072ebd..49025977bd 100644 --- a/keyboards/kinesis/info.json +++ b/keyboards/kinesis/info.json @@ -1,4 +1,5 @@ { + "url": "", "maintainer": "qmk", "qmk": { "locking": { diff --git a/keyboards/kinesis/keymaps/dvorak/keymap.c b/keyboards/kinesis/keymaps/dvorak/keymap.c index af68841b1c..f8a5b4ed4f 100644 --- a/keyboards/kinesis/keymaps/dvorak/keymap.c +++ b/keyboards/kinesis/keymaps/dvorak/keymap.c @@ -25,10 +25,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PWR, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, MS_UP, KC_VOLD, KC_NO, KC_NO, - KC_NO, MS_BTN4, MS_BTN3, MS_BTN2, MS_BTN1, KC_NO, KC_NO, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, KC_MS_U, KC_VOLD, KC_NO, KC_NO, + KC_NO, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, - KC_NO, KC_NO, MS_DOWN, MS_UP, MS_LEFT, MS_RGHT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_D, KC_MS_U, KC_MS_L, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/kinesis/kint2pp/keyboard.json b/keyboards/kinesis/kint2pp/keyboard.json index 3b00cfff46..48d77942db 100644 --- a/keyboards/kinesis/kint2pp/keyboard.json +++ b/keyboards/kinesis/kint2pp/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/kint32/chconf.h b/keyboards/kinesis/kint32/chconf.h deleted file mode 100644 index 5c0b6e8580..0000000000 --- a/keyboards/kinesis/kint32/chconf.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2020 QMK - * - * 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 . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/kinesis/kint32/chconf.h -r platforms/chibios/common/configs/chconf.h` - */ - -#pragma once - -#define CH_CFG_ST_TIMEDELTA 0 - -#define CH_CFG_TIME_QUANTUM 20 - -#include_next diff --git a/keyboards/kinesis/kint32/config.h b/keyboards/kinesis/kint32/config.h deleted file mode 100644 index a794b4d8b0..0000000000 --- a/keyboards/kinesis/kint32/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define EEPROM_SIZE 2048 diff --git a/keyboards/kinesis/kint32/keyboard.json b/keyboards/kinesis/kint32/keyboard.json deleted file mode 100644 index 2a46bbe12b..0000000000 --- a/keyboards/kinesis/kint32/keyboard.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "manufacturer": "https://github.com/stapelberg", - "keyboard_name": "kinT (kint32)", - "bootloader": "halfkay", - "build": { - "debounce_type": "sym_eager_pk" - }, - "debounce": 20, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "C7", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["B3", "D1", "C0", "D5", "C1", "B2", "D4"], - "rows": ["D3", "C3", "C4", "C6", "D2", "B0", "D7", "A12", "A13", "B17", "B16", "D0", "B1", "C2", "D6"] - }, - "processor": "MK20DX256", - "usb": { - "device_version": "0.0.1", - "max_power": 100, - "pid": "0x345C", - "vid": "0x1209" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - } - } -} diff --git a/keyboards/kinesis/kint32/kint32.c b/keyboards/kinesis/kint32/kint32.c deleted file mode 100644 index dd4ccbca3f..0000000000 --- a/keyboards/kinesis/kint32/kint32.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#define LED_POWER C5 - -void keyboard_pre_init_kb(void) { - // Turn on the Teensy 3.2 Power LED: - gpio_set_pin_output(LED_POWER); - gpio_write_pin_high(LED_POWER); - - keyboard_pre_init_user(); -} diff --git a/keyboards/kinesis/kint32/mcuconf.h b/keyboards/kinesis/kint32/mcuconf.h deleted file mode 100644 index 327f5c9aa3..0000000000 --- a/keyboards/kinesis/kint32/mcuconf.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define K20x_MCUCONF - -/* - * HAL driver system settings. - */ -/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ -#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE -#define KINETIS_PLLCLK_FREQUENCY 96000000UL -#define KINETIS_SYSCLK_FREQUENCY 48000000UL - -/* - * SERIAL driver system settings. - */ -#define KINETIS_SERIAL_USE_UART0 TRUE - -/* - * USB driver settings - */ -#define KINETIS_USB_USE_USB0 TRUE - -/* Need to redefine this, since the default (configured for K20x) might not apply - * 2 for Teensy LC - * 5 for Teensy 3.x */ -#define KINETIS_USB_USB0_IRQ_PRIORITY 5 - -/* - * I2C driver settings - */ -#define KINETIS_I2C_USE_I2C0 TRUE -#define KINETIS_I2C_I2C0_PRIORITY 4 - -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/kinesis/kint32/readme.md b/keyboards/kinesis/kint32/readme.md deleted file mode 100644 index fe85e3e1f4..0000000000 --- a/keyboards/kinesis/kint32/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# kinesis_kint32 keyboard firmware - -Please see https://github.com/kinx-project/kint for details. diff --git a/keyboards/kinesis/kint36/keyboard.json b/keyboards/kinesis/kint36/keyboard.json index 02df04a7c9..592fade4cb 100644 --- a/keyboards/kinesis/kint36/keyboard.json +++ b/keyboards/kinesis/kint36/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/kint41/keyboard.json b/keyboards/kinesis/kint41/keyboard.json index 25ebd64fb9..c1eb7b8465 100644 --- a/keyboards/kinesis/kint41/keyboard.json +++ b/keyboards/kinesis/kint41/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/kintlc/keyboard.json b/keyboards/kinesis/kintlc/keyboard.json index 8d12eb2fe4..07c81e1c89 100644 --- a/keyboards/kinesis/kintlc/keyboard.json +++ b/keyboards/kinesis/kintlc/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/kintwin/keyboard.json b/keyboards/kinesis/kintwin/keyboard.json index e4a42f3696..92727e9ecb 100644 --- a/keyboards/kinesis/kintwin/keyboard.json +++ b/keyboards/kinesis/kintwin/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kinesis/nguyenvietyen/keyboard.json b/keyboards/kinesis/nguyenvietyen/keyboard.json index f1765183cc..68bdd0f767 100644 --- a/keyboards/kinesis/nguyenvietyen/keyboard.json +++ b/keyboards/kinesis/nguyenvietyen/keyboard.json @@ -8,6 +8,7 @@ }, "features": { "bootmagic": true, + "console": false, "command": true, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/stapelberg/keyboard.json b/keyboards/kinesis/stapelberg/keyboard.json index fbc955ebe2..6ad972d247 100644 --- a/keyboards/kinesis/stapelberg/keyboard.json +++ b/keyboards/kinesis/stapelberg/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "console": false, + "command": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/kineticlabs/emu/hotswap/keyboard.json b/keyboards/kineticlabs/emu/hotswap/keyboard.json index 6a974fd410..ec53c2f6bf 100644 --- a/keyboards/kineticlabs/emu/hotswap/keyboard.json +++ b/keyboards/kineticlabs/emu/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Emu Hotswap", "manufacturer": "Kineticlabs", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xE015", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kineticlabs/emu/soldered/keyboard.json b/keyboards/kineticlabs/emu/soldered/keyboard.json index 5cbb524fdf..4aaf523d2a 100644 --- a/keyboards/kineticlabs/emu/soldered/keyboard.json +++ b/keyboards/kineticlabs/emu/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Emu Soldered", "manufacturer": "Kineticlabs", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xE015", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kingly_keys/ave/ortho/keyboard.json b/keyboards/kingly_keys/ave/ortho/keyboard.json index 3720ac7f5a..27fb2666a2 100644 --- a/keyboards/kingly_keys/ave/ortho/keyboard.json +++ b/keyboards/kingly_keys/ave/ortho/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The Ave. Ortholinear", "manufacturer": "Kingly-Keys", + "url": "", "maintainer": "the-royal", "usb": { "vid": "0x4B4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/ave/staggered/keyboard.json b/keyboards/kingly_keys/ave/staggered/keyboard.json index 1d05272459..5fcb1657e3 100644 --- a/keyboards/kingly_keys/ave/staggered/keyboard.json +++ b/keyboards/kingly_keys/ave/staggered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The Ave. Staggered", "manufacturer": "Kingly-Keys", + "url": "", "maintainer": "the-royal", "usb": { "vid": "0x4B4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/little_foot/keyboard.json b/keyboards/kingly_keys/little_foot/keyboard.json index 2ff3fd89cd..a511d48905 100644 --- a/keyboards/kingly_keys/little_foot/keyboard.json +++ b/keyboards/kingly_keys/little_foot/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "The Little Foot", "manufacturer": "Kingly-Keys", + "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "hue_steps": 6, @@ -35,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -51,7 +50,8 @@ "rows": ["F6", "B6", "B2", "B3", "B1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_split_space_base": { "layout": [ diff --git a/keyboards/kingly_keys/romac/keyboard.json b/keyboards/kingly_keys/romac/keyboard.json index d9993f9917..9927bdc25f 100644 --- a/keyboards/kingly_keys/romac/keyboard.json +++ b/keyboards/kingly_keys/romac/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RoMac", "manufacturer": "TheRoyalSweatshirt", + "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,7 +27,8 @@ "rows": ["D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kingly_keys/romac_plus/keyboard.json b/keyboards/kingly_keys/romac_plus/keyboard.json index db34d4b465..8b6c43333d 100644 --- a/keyboards/kingly_keys/romac_plus/keyboard.json +++ b/keyboards/kingly_keys/romac_plus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RoMac+", "manufacturer": "TheRoyalSweatshirt", + "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -53,7 +56,8 @@ "ws2812": { "pin": "F7" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kingly_keys/ropro/keyboard.json b/keyboards/kingly_keys/ropro/keyboard.json index 6a70aca089..fb22d06a7d 100644 --- a/keyboards/kingly_keys/ropro/keyboard.json +++ b/keyboards/kingly_keys/ropro/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/ropro/keymaps/default/keymap.c b/keyboards/kingly_keys/ropro/keymaps/default/keymap.c index 9a3c6a0115..3ee0b5646b 100644 --- a/keyboards/kingly_keys/ropro/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/ropro/keymaps/default/keymap.c @@ -77,9 +77,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(MS_WHLL); + tap_code(KC_WH_L); } else { - tap_code(MS_WHLR); + tap_code(KC_WH_R); } } return true; diff --git a/keyboards/kingly_keys/smd_milk/keyboard.json b/keyboards/kingly_keys/smd_milk/keyboard.json index 2da20bf978..9f8a10a5bf 100644 --- a/keyboards/kingly_keys/smd_milk/keyboard.json +++ b/keyboards/kingly_keys/smd_milk/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "SMD-2% Milk", "manufacturer": "Kingly-Keys", + "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0xFEED", "pid": "0xB195", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "hue_steps": 6, diff --git a/keyboards/kingly_keys/soap/keyboard.json b/keyboards/kingly_keys/soap/keyboard.json index 78660c4f6d..615014ffbf 100644 --- a/keyboards/kingly_keys/soap/keyboard.json +++ b/keyboards/kingly_keys/soap/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/soap/keymaps/default/keymap.c b/keyboards/kingly_keys/soap/keymaps/default/keymap.c index 309c6686f3..d8fa6a963c 100644 --- a/keyboards/kingly_keys/soap/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/soap/keymaps/default/keymap.c @@ -53,9 +53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(MS_WHLL); + tap_code(KC_WH_L); } else { - tap_code(MS_WHLR); + tap_code(KC_WH_R); } } return true; diff --git a/keyboards/kira/kira75/keyboard.json b/keyboards/kira/kira75/keyboard.json index a974b10161..fb4c90a8b5 100644 --- a/keyboards/kira/kira75/keyboard.json +++ b/keyboards/kira/kira75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kira 75", "manufacturer": "thesiscamper", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kira/kira75/readme.md b/keyboards/kira/kira75/readme.md index 237e81d06b..a30b60d179 100644 --- a/keyboards/kira/kira75/readme.md +++ b/keyboards/kira/kira75/readme.md @@ -1,5 +1,7 @@ # Kira 75 +![kira75](imgur.com image replace me!) + 75% keyboard designed by thesiscamper Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/kira/kira80/keyboard.json b/keyboards/kira/kira80/keyboard.json index c66c919a42..137e1f6565 100644 --- a/keyboards/kira/kira80/keyboard.json +++ b/keyboards/kira/kira80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kira80", "manufacturer": "EVE", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6986", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kiserdesigns/madeline/keyboard.json b/keyboards/kiserdesigns/madeline/keyboard.json index 5fdcd981f1..8a1a988a6f 100644 --- a/keyboards/kiserdesigns/madeline/keyboard.json +++ b/keyboards/kiserdesigns/madeline/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c index 984fd9e9b9..09c9d3a2ff 100644 --- a/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c +++ b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c @@ -48,6 +48,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [1] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) } }; #endif diff --git a/keyboards/kiwikeebs/macro/keyboard.json b/keyboards/kiwikeebs/macro/keyboard.json index 98d8171944..faaebe88cf 100644 --- a/keyboards/kiwikeebs/macro/keyboard.json +++ b/keyboards/kiwikeebs/macro/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kiwikeebs/macro_v2/keyboard.json b/keyboards/kiwikeebs/macro_v2/keyboard.json index 9947f48f63..3848457990 100644 --- a/keyboards/kiwikeebs/macro_v2/keyboard.json +++ b/keyboards/kiwikeebs/macro_v2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kiwikey/wanderland/keyboard.json b/keyboards/kiwikey/wanderland/keyboard.json index 1c2067942f..3dd7c668ac 100644 --- a/keyboards/kiwikey/wanderland/keyboard.json +++ b/keyboards/kiwikey/wanderland/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kj_modify/rs40/keyboard.json b/keyboards/kj_modify/rs40/keyboard.json index 44ce821d57..a869383bd7 100644 --- a/keyboards/kj_modify/rs40/keyboard.json +++ b/keyboards/kj_modify/rs40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kk/65/keyboard.json b/keyboards/kk/65/keyboard.json index 27ff4073ee..49c52eec80 100644 --- a/keyboards/kk/65/keyboard.json +++ b/keyboards/kk/65/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -21,6 +23,7 @@ "rows": ["D7", "B4", "B5", "B6", "B7"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/kkatano/bakeneko60/keyboard.json b/keyboards/kkatano/bakeneko60/keyboard.json index d4188b7c0f..fee9b9d533 100644 --- a/keyboards/kkatano/bakeneko60/keyboard.json +++ b/keyboards/kkatano/bakeneko60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -27,14 +29,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi_split_bs_rshift", - "60_ansi", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi_split_bs_rshift", "60_ansi", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ @@ -176,7 +171,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/kkatano/bakeneko65/rev2/keyboard.json b/keyboards/kkatano/bakeneko65/rev2/keyboard.json index ae13085586..93ac8a5e50 100644 --- a/keyboards/kkatano/bakeneko65/rev2/keyboard.json +++ b/keyboards/kkatano/bakeneko65/rev2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kkatano/bakeneko65/rev3/keyboard.json b/keyboards/kkatano/bakeneko65/rev3/keyboard.json index efc1697166..3892da5d04 100644 --- a/keyboards/kkatano/bakeneko65/rev3/keyboard.json +++ b/keyboards/kkatano/bakeneko65/rev3/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/knobgoblin/keyboard.json b/keyboards/knobgoblin/keyboard.json index d20191c82d..8494eea465 100644 --- a/keyboards/knobgoblin/keyboard.json +++ b/keyboards/knobgoblin/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Knob Goblin", "manufacturer": "MrT1ddl3s", + "url": "", "maintainer": "MrT1ddl3s", "usb": { "vid": "0x4B47", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, @@ -30,7 +32,8 @@ "bootmagic": { "matrix": [0, 1] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "debounce": 2, "layouts": { "LAYOUT_ortho": { diff --git a/keyboards/koca58/board.h b/keyboards/koca58/board.h deleted file mode 100644 index d9de50c2b8..0000000000 --- a/keyboards/koca58/board.h +++ /dev/null @@ -1,8 +0,0 @@ -/* Copyright 2025 oxnh */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 12000000U diff --git a/keyboards/koca58/config.h b/keyboards/koca58/config.h deleted file mode 100644 index 3256cc474f..0000000000 --- a/keyboards/koca58/config.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright 2025 oxnh */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -#pragma once - -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN C10 // USART TX pin -#define SERIAL_USART_RX_PIN C11 // USART RX pin -#define SERIAL_USART_DRIVER SD3 -#define USART3_PARTIALREMAP - diff --git a/keyboards/koca58/halconf.h b/keyboards/koca58/halconf.h deleted file mode 100644 index 79853fe70d..0000000000 --- a/keyboards/koca58/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright 2025 oxnh */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -#pragma once - -#define HAL_USE_SERIAL TRUE - -#include_next diff --git a/keyboards/koca58/keyboard.json b/keyboards/koca58/keyboard.json deleted file mode 100644 index 5a58f6c26c..0000000000 --- a/keyboards/koca58/keyboard.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "manufacturer": "oxnh", - "keyboard_name": "Koca58", - "maintainer": "oxnh", - "bootloader": "stm32duino", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [["A10", "A9", "A8", "C9", "C8", "C7", "B2", "B13", "B12", "B14", "B15", "C6", "A6", "A7", "C4", "C5", "B0", "B1", "B5", "A0", "A1", "A2", "A3", "A4", "A5", "C14", "C13", "B7", "B6"]] - }, - "processor": "STM32F103", - "split": { - "enabled": true, - "handedness": { - "pin": "C15" - }, - "matrix_pins": { - "right": { - "direct": [["A10", "A9", "A8", "C9", "C8", "C7", "B2", "B13", "B12", "B14", "B15", "C6", "A6", "A7", "C4", "C5", "B0", "B1", "C14", "A0", "A1", "A2", "A3", "A4", "A5", "C13", "B7", "B6", "B5"]] - } - }, - "serial": { - "driver": "usart" - } - }, - "url": "https://github.com/Hardware7253/Koca58", - "usb": { - "device_version": "1.0.0", - "pid": "0x5106", - "vid": "0x4C17" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.45}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [1, 0], "x": 10, "y": 0.25}, - {"matrix": [1, 1], "x": 11, "y": 0.125}, - {"matrix": [1, 2], "x": 12, "y": 0}, - {"matrix": [1, 3], "x": 13, "y": 0.125}, - {"matrix": [1, 4], "x": 14, "y": 0.375}, - {"matrix": [1, 5], "x": 15, "y": 0.45}, - {"matrix": [0, 6], "x": 0, "y": 1.45}, - {"matrix": [0, 7], "x": 1, "y": 1.375}, - {"matrix": [0, 8], "x": 2, "y": 1.125}, - {"matrix": [0, 9], "x": 3, "y": 1}, - {"matrix": [0, 10], "x": 4, "y": 1.125}, - {"matrix": [0, 11], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 10, "y": 1.25}, - {"matrix": [1, 7], "x": 11, "y": 1.125}, - {"matrix": [1, 8], "x": 12, "y": 1}, - {"matrix": [1, 9], "x": 13, "y": 1.125}, - {"matrix": [1, 10], "x": 14, "y": 1.375}, - {"matrix": [1, 11], "x": 15, "y": 1.45}, - {"matrix": [0, 12], "x": 0, "y": 2.45}, - {"matrix": [0, 13], "x": 1, "y": 2.375}, - {"matrix": [0, 14], "x": 2, "y": 2.125}, - {"matrix": [0, 15], "x": 3, "y": 2}, - {"matrix": [0, 16], "x": 4, "y": 2.125}, - {"matrix": [0, 17], "x": 5, "y": 2.25}, - {"matrix": [1, 12], "x": 10, "y": 2.25}, - {"matrix": [1, 13], "x": 11, "y": 2.125}, - {"matrix": [1, 14], "x": 12, "y": 2}, - {"matrix": [1, 15], "x": 13, "y": 2.125}, - {"matrix": [1, 16], "x": 14, "y": 2.375}, - {"matrix": [1, 17], "x": 15, "y": 2.45}, - {"matrix": [0, 19], "x": 0, "y": 3.45}, - {"matrix": [0, 20], "x": 1, "y": 3.375}, - {"matrix": [0, 21], "x": 2, "y": 3.125}, - {"matrix": [0, 22], "x": 3, "y": 3}, - {"matrix": [0, 23], "x": 4, "y": 3.125}, - {"matrix": [0, 24], "x": 5, "y": 3.25}, - {"matrix": [0, 18], "x": 6, "y": 2.75}, - {"matrix": [1, 18], "x": 9, "y": 2.75}, - {"matrix": [1, 19], "x": 10, "y": 3.25}, - {"matrix": [1, 20], "x": 11, "y": 3.125}, - {"matrix": [1, 21], "x": 12, "y": 3}, - {"matrix": [1, 22], "x": 13, "y": 3.125}, - {"matrix": [1, 23], "x": 14, "y": 3.375}, - {"matrix": [1, 24], "x": 15, "y": 3.45}, - {"matrix": [0, 25], "x": 2.5, "y": 4.15}, - {"matrix": [0, 26], "x": 3.5, "y": 4.15}, - {"matrix": [0, 27], "x": 4.5, "y": 4.25}, - {"matrix": [0, 28], "x": 6, "y": 4.25, "h": 1.5}, - {"matrix": [1, 25], "x": 9, "y": 4.25, "h": 1.5}, - {"matrix": [1, 26], "x": 10.45, "y": 4.25}, - {"matrix": [1, 27], "x": 11.5, "y": 4.15}, - {"matrix": [1, 28], "x": 12.5, "y": 4.15} - ] - } - } -} diff --git a/keyboards/koca58/keymaps/default/keymap.c b/keyboards/koca58/keymaps/default/keymap.c deleted file mode 100644 index b571cadda8..0000000000 --- a/keyboards/koca58/keymaps/default/keymap.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright 2025 oxnh */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY = 0, - _LOWER, - _RAISE, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | - * | | | |/ / \ \ | | | | - * `----------------------------' '------''--------------------' - */ - [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_ENT, MO(_RAISE), KC_BSPC, KC_RGUI - ), - /* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ | - * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | _ | + | { | } | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | - * | | | |/ / \ \ | | | | - * `----------------------------' '------''--------------------' - */ - [_LOWER] = 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_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, - _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - /* RAISE - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | - * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| - * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | - * | | | |/ / \ \ | | | | - * `----------------------------' '------''--------------------' - */ - - [_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/koca58/mcuconf.h b/keyboards/koca58/mcuconf.h deleted file mode 100644 index 3270d5f778..0000000000 --- a/keyboards/koca58/mcuconf.h +++ /dev/null @@ -1,11 +0,0 @@ -/* Copyright 2025 oxnh */ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -#pragma once - -#include_next - -#undef STM32_SERIAL_USE_USART3 -#define STM32_SERIAL_USE_USART3 TRUE - -#undef STM32_PLLMUL_VALUE -#define STM32_PLLMUL_VALUE 6 diff --git a/keyboards/koca58/readme.md b/keyboards/koca58/readme.md deleted file mode 100644 index fbf1c59954..0000000000 --- a/keyboards/koca58/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Koca58 - -![Koca58](https://i.imgur.com/loOGjGq.jpeg) - -A Lily58 variant featuring SMT components, powered by an STM32F103 MCU and utilizing direct wiring. If you have a Lily58 with a soldered dev board (e.g., pro micro), please visit the original [Lily58](/keyboards/lily58) directory. - -* Keyboard Maintainer: [oxnh](https://github.com/Hardware7253) -* Hardware Supported: All Koca58 PCBs -* Hardware Availability: [Open source design](https://github.com/Hardware7253/Koca58) - -Make example for this keyboard (after setting up your build environment): - - make koca58:default - -Flashing example for this keyboard: - - make koca58: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: - -* **Physical reset button**: Briefly press the button on the back of the PCB before or during uploading firmware diff --git a/keyboards/kona_classic/keyboard.json b/keyboards/kona_classic/keyboard.json index 716df4759f..79bef89bb6 100644 --- a/keyboards/kona_classic/keyboard.json +++ b/keyboards/kona_classic/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kona Classic", "manufacturer": "Dangerous Parts", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kopibeng/mnk60/keyboard.json b/keyboards/kopibeng/mnk60/keyboard.json index 3daec9131d..0477ac560d 100644 --- a/keyboards/kopibeng/mnk60/keyboard.json +++ b/keyboards/kopibeng/mnk60/keyboard.json @@ -14,6 +14,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/mnk60_stm32/keyboard.json b/keyboards/kopibeng/mnk60_stm32/keyboard.json index 75d7361aec..e0853d543f 100644 --- a/keyboards/kopibeng/mnk60_stm32/keyboard.json +++ b/keyboards/kopibeng/mnk60_stm32/keyboard.json @@ -7,6 +7,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -58,7 +59,6 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", @@ -67,11 +67,9 @@ "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" + "60_iso_wkl_split_bs_rshift", + "60_tsangan_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -405,7 +403,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/kopibeng/mnk65_stm32/keyboard.json b/keyboards/kopibeng/mnk65_stm32/keyboard.json index e425863d70..c71394ba84 100644 --- a/keyboards/kopibeng/mnk65_stm32/keyboard.json +++ b/keyboards/kopibeng/mnk65_stm32/keyboard.json @@ -7,6 +7,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/tgr_lena/keyboard.json b/keyboards/kopibeng/tgr_lena/keyboard.json index a526c26e52..2460b04a5a 100644 --- a/keyboards/kopibeng/tgr_lena/keyboard.json +++ b/keyboards/kopibeng/tgr_lena/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c b/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c index cec02156da..7b4fd9db81 100644 --- a/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c +++ b/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/kopibeng/typ65/keyboard.json b/keyboards/kopibeng/typ65/keyboard.json index aedb7cb7d9..57a23da4ad 100644 --- a/keyboards/kopibeng/typ65/keyboard.json +++ b/keyboards/kopibeng/typ65/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kopibeng/xt60/keyboard.json b/keyboards/kopibeng/xt60/keyboard.json index 1cb770f8df..a170d36e41 100644 --- a/keyboards/kopibeng/xt60/keyboard.json +++ b/keyboards/kopibeng/xt60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XT60", "manufacturer": "kopibeng", + "url": "", "maintainer": "Kopibeng", "usb": { "vid": "0x4B50", @@ -24,6 +25,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -49,15 +52,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -341,7 +340,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/kopibeng/xt60_singa/keyboard.json b/keyboards/kopibeng/xt60_singa/keyboard.json index 3a7726310a..280a58c07b 100644 --- a/keyboards/kopibeng/xt60_singa/keyboard.json +++ b/keyboards/kopibeng/xt60_singa/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XT60_SINGA", "manufacturer": "kopibeng", + "url": "", "maintainer": "Kopibeng", "usb": { "vid": "0x4B50", @@ -24,6 +25,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -49,15 +52,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -341,7 +340,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/kopibeng/xt65/keyboard.json b/keyboards/kopibeng/xt65/keyboard.json index 47d1fdeeed..c73ff703d5 100644 --- a/keyboards/kopibeng/xt65/keyboard.json +++ b/keyboards/kopibeng/xt65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XT65", "manufacturer": "kopibeng", + "url": "", "maintainer": "kopibeng", "usb": { "vid": "0x4B50", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/xt8x/keyboard.json b/keyboards/kopibeng/xt8x/keyboard.json index ad6c044982..7167cb1d07 100644 --- a/keyboards/kopibeng/xt8x/keyboard.json +++ b/keyboards/kopibeng/xt8x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XT8x", "manufacturer": "kopibeng", + "url": "", "maintainer": "kopibeng", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm16a/v1/keyboard.json b/keyboards/kprepublic/bm16a/v1/keyboard.json index ee31afbcf5..85173a89cc 100644 --- a/keyboards/kprepublic/bm16a/v1/keyboard.json +++ b/keyboards/kprepublic/bm16a/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "bm16a", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -13,6 +14,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "backlight": true, "rgblight": true diff --git a/keyboards/kprepublic/bm16a/v1/readme.md b/keyboards/kprepublic/bm16a/v1/readme.md index 6ad3773371..d24a879505 100644 --- a/keyboards/kprepublic/bm16a/v1/readme.md +++ b/keyboards/kprepublic/bm16a/v1/readme.md @@ -5,6 +5,7 @@ A 16 key macropad, with USB C, RGB underglow and backlight. * Keyboard Maintainer: QMK Community +* Hardware Supported: The PCBs, controllers supported * Hardware Availability: [KPrepublic](https://kprepublic.com/products/bm16a-16-keys-custom-mechanical-keyboard-pcb-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-bottom-underglow-alps-mx); [AliExpress](https://www.aliexpress.com/store/product/bm16a-16-keys-Custom-Mechanical-Keyboard-PCB-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-bottom/3034003_32970629907.html) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kprepublic/bm16a/v2/keyboard.json b/keyboards/kprepublic/bm16a/v2/keyboard.json index b4ef622f4a..e922d0b9ee 100644 --- a/keyboards/kprepublic/bm16a/v2/keyboard.json +++ b/keyboards/kprepublic/bm16a/v2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -20,6 +22,7 @@ "rows": ["A8", "A9", "B5", "B3"] }, "processor": "STM32F103", // GD32F303CCT6 + "url": "", "usb": { "device_version": "0.0.2", "pid": "0x016C", diff --git a/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c index 5ff7d3edb6..0cb2b68fb9 100644 --- a/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c @@ -12,8 +12,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( QK_BOOT, KC_PAST, KC_PSLS, _______, - RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, - RM_SATU, RM_SATD, RM_VALU, RM_VALD, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______ ) }; diff --git a/keyboards/kprepublic/bm16s/keyboard.json b/keyboards/kprepublic/bm16s/keyboard.json index fe259c2fc9..8c6ce05bb9 100644 --- a/keyboards/kprepublic/bm16s/keyboard.json +++ b/keyboards/kprepublic/bm16s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "bm16s", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm16s/readme.md b/keyboards/kprepublic/bm16s/readme.md index 5b121cdaea..6a887e553a 100644 --- a/keyboards/kprepublic/bm16s/readme.md +++ b/keyboards/kprepublic/bm16s/readme.md @@ -3,6 +3,7 @@ A 16-key macropad, with USB C and per-key RGB backlighting. This is a variant of the BM16A, but with low profile Choc switches. * Keyboard Maintainer: QMK Community +* Hardware Supported: The PCBs, controllers supported * Hardware Availability: [KPrepublic](https://kprepublic.com/collections/pcb/products/bm16s-16-keys-custom-mechanical-keyboard-pcb-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-switch-leds-choc-switch); [AliExpress](https://www.aliexpress.com/item/bm16s-16-keys-Custom-Mechanical-Keyboard-PCB-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-switch/32999247908.html); [Massdrop](https://www.massdrop.com/buy/78169) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json index 5cad0a013a..7bdeafbcad 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM40 Hotswap RGB", "manufacturer": "KPRepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -65,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c index 55892c8bf8..838561269a 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_mit( - _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json index c38be9612f..525a6088ed 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM40 Hotswap RGB", "manufacturer": "KPRepublic", + "url": "", "maintainer": "qmk", "features": { "bootmagic": true, @@ -9,6 +10,8 @@ "rgblight": true, "rgb_matrix": true, "tri_layer": true, + "console": false, + "command": false, "nkro": false }, "build": { diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c index 187bdca534..5f389e4caf 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12_1x2uC( - _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm43a/keyboard.json b/keyboards/kprepublic/bm43a/keyboard.json index 28c8f259d1..79c089c68c 100644 --- a/keyboards/kprepublic/bm43a/keyboard.json +++ b/keyboards/kprepublic/bm43a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM43A", "manufacturer": "KPRepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kprepublic/bm43hsrgb/keyboard.json b/keyboards/kprepublic/bm43hsrgb/keyboard.json index 3aeba0ef91..9fa40bdd9c 100755 --- a/keyboards/kprepublic/bm43hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm43hsrgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM43 Hotswap RGB", "manufacturer": "KPRepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json index 55ec5589d1..5fe5d21014 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB", "manufacturer": "KP Republic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -67,6 +68,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c index 8ee2387bd8..f89dd675a0 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_arrow( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 98858cd164..1d2b071fc1 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -18,12 +18,16 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 63 +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) + #define RGB_MATRIX_DISABLE_KEYCODES +#endif + // Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; // don't use those LEDs in RGB Matrix in that case. #ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 +# define WS2812_LED_TOTAL 0 #else -# define WS2812_LED_COUNT 6 +# define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json index 3783ebb8b2..a82d5159cf 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60V2", "manufacturer": "KP Republic", + "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c index 7b6d1ae693..51ac4708fc 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_arrow( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index e7ff5a9ddc..5bd23a12b8 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -110,7 +110,7 @@ led_config_t g_led_config = { { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} # endif }, { @@ -124,7 +124,7 @@ led_config_t g_led_config = { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,2, 2, 2, 2, 2, 2 # endif } @@ -147,6 +147,10 @@ bool rgb_matrix_indicators_kb(void) { // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== +# if WS2812_LED_TOTAL > 0 +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +# endif + static void rgb_matrix_driver_init(void) { i2c_init(); is31fl3733_init(0); @@ -160,25 +164,31 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 - ws2812_flush(); +# if WS2812_LED_TOTAL > 0 + ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { - ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); +# if WS2812_LED_TOTAL > 0 + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 - ws2812_set_color_all(red, green, blue); +# if WS2812_LED_TOTAL > 0 + for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { + rgb_matrix_ws2812_array[i].r = red; + rgb_matrix_ws2812_array[i].g = green; + rgb_matrix_ws2812_array[i].b = blue; + } # endif } diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json index 75e8333f7a..0a9b283131 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB_EC Rev1", "manufacturer": "KP Republic", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", @@ -58,6 +59,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c index 2cf8d792f8..680c20327b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [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, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index ddb8a2525f..5edcec6eb4 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -17,4 +17,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) + #define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json index dd43d36d71..09124e03a9 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB_EC Rev2", "manufacturer": "KP Republic", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", @@ -65,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keymaps/default/keymap.c index 5e5e0d6758..2aea24ff66 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keymaps/default/keymap.c @@ -14,6 +14,63 @@ */ #include QMK_KEYBOARD_H +enum my_keycodes { + RMT = SAFE_RANGE, + RMS, + RMIH, + RMDH, + RMIS, + RMDS, + RMIV, + RMDV +}; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RMT: + if (record->event.pressed) + {rgb_matrix_toggle(); + } + return false; + case RMS: + if (record->event.pressed) + {rgb_matrix_step(); + } + return false; + case RMIH: + if (record->event.pressed) + {rgb_matrix_increase_hue(); + } + return false; + case RMDH: + if (record->event.pressed) + {rgb_matrix_decrease_hue(); + } + return false; + case RMIS: + if (record->event.pressed) + {rgb_matrix_increase_sat(); + } + return false; + case RMDS: + if (record->event.pressed) + {rgb_matrix_decrease_sat(); + } + return false; + case RMIV: + if (record->event.pressed) + {rgb_matrix_increase_val(); + } + return false; + case RMDV: + if (record->event.pressed) + {rgb_matrix_decrease_val(); + } + return true; + default: + return true; + } +} + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PGUP, KC_PGDN, @@ -24,8 +81,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [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, QK_BOOT, _______, _______, _______, - _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RMT, RMS, RMIH, RMDH, RMIS, RMDS, RMIV, RMDV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json index b3bf6e44b2..4cd2c48440 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB_ISO Rev1", "manufacturer": "KPRepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c index b82babca7f..558f03e1f2 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_iso_arrow( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c index a7859aa8e9..4e874b26df 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ [1] = LAYOUT( 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, KC_DEL, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 710e240aa4..ea594e53cf 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -23,9 +23,9 @@ // Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; // don't use those LEDs in RGB Matrix in that case. #ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 +# define WS2812_LED_TOTAL 0 #else -# define WS2812_LED_COUNT 6 +# define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json index 3a0df3e414..e84817122e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB_ISO Rev2", "manufacturer": "KPRepublic", + "url": "", "maintainer": "kp republic", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c index f3aa8083f1..3b7ca14c98 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_iso_arrow( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 0d52d1bacb..794dea5176 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -112,7 +112,7 @@ led_config_t g_led_config = { { { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 }, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} # endif }, { @@ -126,7 +126,7 @@ led_config_t g_led_config = { { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,2, 2, 2, 2, 2, 2 # endif } }; @@ -147,6 +147,10 @@ bool rgb_matrix_indicators_kb(void) { // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== +# if WS2812_LED_TOTAL > 0 +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +# endif + static void rgb_matrix_driver_init(void) { i2c_init(); is31fl3733_init(0); @@ -160,25 +164,31 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 - ws2812_flush(); +# if WS2812_LED_TOTAL > 0 + ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { - ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); +# if WS2812_LED_TOTAL > 0 + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 - ws2812_set_color_all(red, green, blue); +# if WS2812_LED_TOTAL > 0 + for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { + rgb_matrix_ws2812_array[i].r = red; + rgb_matrix_ws2812_array[i].g = green; + rgb_matrix_ws2812_array[i].b = blue; + } # endif } diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json index 9619665e6d..d7923b8432 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB Poker Rev1", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -79,6 +80,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c index 32a8c86c02..db0ba7cd50 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 843c5b2625..b5ff897b18 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -21,9 +21,9 @@ // Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; // don't use those LEDs in RGB Matrix in that case. #ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 +# define WS2812_LED_TOTAL 0 #else -# define WS2812_LED_COUNT 6 +# define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json index f3edf59fec..62ff452a68 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM60HSRGB Poker Rev2", "manufacturer": "KPrepublic", + "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c index 637d49d467..dac3e07c7c 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 5766942b34..3586dc8e80 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -107,7 +107,7 @@ led_config_t g_led_config = { { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} # endif }, { @@ -121,7 +121,7 @@ led_config_t g_led_config = { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right 1, 1, 1, 4, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 +# if WS2812_LED_TOTAL > 0 ,2, 2, 2, 2, 2, 2 # endif } @@ -143,6 +143,10 @@ bool rgb_matrix_indicators_kb(void) { // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== +# if WS2812_LED_TOTAL > 0 +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +# endif + static void rgb_matrix_driver_init(void) { i2c_init(); is31fl3733_init(0); @@ -156,25 +160,31 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 - ws2812_flush(); +# if WS2812_LED_TOTAL > 0 + ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { - ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); +# if WS2812_LED_TOTAL > 0 + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 - ws2812_set_color_all(red, green, blue); +# if WS2812_LED_TOTAL > 0 + for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { + rgb_matrix_ws2812_array[i].r = red; + rgb_matrix_ws2812_array[i].g = green; + rgb_matrix_ws2812_array[i].b = blue; + } # endif } diff --git a/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c index daae44d099..1b3ce7a456 100644 --- a/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json index d761606a5a..dc63acfa41 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM65HSRGB", "manufacturer": "KPrepublic", + "url": "", "maintainer": "bytesapart", "usb": { "vid": "0x4B50", @@ -18,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json index 187816b660..53b132713c 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "BM65HSRGB ISO", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", "pid": "0x0653", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "saturation_steps": 8, @@ -89,6 +86,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c index ca4df9e000..4b5364fc9b 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_iso_blocker( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json index b5ca4d696d..6e2d3a9208 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM68HSRGB Rev1", "manufacturer": "KPrepublic", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c index 7b2cf7e0f4..27812c7bbe 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 026cbdcdca..df6f089922 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -18,4 +18,6 @@ #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) + #define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json index 28ad31304e..7df1af5902 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM68HSRGB Rev2", "manufacturer": "KPrepublic", + "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", @@ -71,6 +72,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm68hsrgb/rev2/keymaps/default/keymap.c index 0481046f45..1be0806771 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keymaps/default/keymap.c @@ -14,6 +14,62 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H +enum my_keycodes { + RMT = SAFE_RANGE, + RMS, + RMIH, + RMDH, + RMIS, + RMDS, + RMIV, + RMDV +}; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RMT: + if (record->event.pressed) + {rgb_matrix_toggle(); + } + return false; + case RMS: + if (record->event.pressed) + {rgb_matrix_step(); + } + return false; + case RMIH: + if (record->event.pressed) + {rgb_matrix_increase_hue(); + } + return false; + case RMDH: + if (record->event.pressed) + {rgb_matrix_decrease_hue(); + } + return false; + case RMIS: + if (record->event.pressed) + {rgb_matrix_increase_sat(); + } + return false; + case RMDS: + if (record->event.pressed) + {rgb_matrix_decrease_sat(); + } + return false; + case RMIV: + if (record->event.pressed) + {rgb_matrix_increase_val(); + } + return false; + case RMDV: + if (record->event.pressed) + {rgb_matrix_decrease_val(); + } + return true; + default: + return true; + } +} const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi( @@ -25,8 +81,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, QK_BOOT, - _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, UG_SPDU, UG_SPDD, _______, _______, _______, _______, - KC_CAPS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, _______, _______, + KC_CAPS, RMT, RMS, RMIH, RMDH, RMIS, RMDS, RMIV, RMDV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______ ), diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json index 1a1b1a6ed3..5a4d65fbcd 100644 --- a/keyboards/kprepublic/bm80hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM80HSRGB", "manufacturer": "KPRepublic", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", @@ -62,6 +63,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c index 893141eff9..69b3540a3a 100644 --- a/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json index 43de1e4933..dd985550bb 100644 --- a/keyboards/kprepublic/bm80v2/keyboard.json +++ b/keyboards/kprepublic/bm80v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM80v2", "manufacturer": "KPrepublic", + "url": "", "maintainer": "edwardslau", "usb": { "vid": "0x4B50", @@ -53,6 +54,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c index dbb11a97f3..090d61bed0 100644 --- a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json index beb90a3738..46ab7a5e8b 100644 --- a/keyboards/kprepublic/bm80v2_iso/keyboard.json +++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM80v2 ISO", "manufacturer": "KPrepublic", + "url": "", "maintainer": "edwardslau", "usb": { "vid": "0x4B50", @@ -53,6 +54,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c index c4ab980dd5..5cd13af665 100644 --- a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json index 85f8b006ae..8ee498b7b6 100644 --- a/keyboards/kprepublic/bm980hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BM980 Hotswap RGB", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c index c80fb02ae5..084ae6e11f 100644 --- a/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/cospad/keyboard.json b/keyboards/kprepublic/cospad/keyboard.json index ac5b98c83a..51a824b816 100644 --- a/keyboards/kprepublic/cospad/keyboard.json +++ b/keyboards/kprepublic/cospad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Cospad", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B5C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/cstc40/rev1/config.h b/keyboards/kprepublic/cstc40/config.h similarity index 100% rename from keyboards/kprepublic/cstc40/rev1/config.h rename to keyboards/kprepublic/cstc40/config.h diff --git a/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c b/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c new file mode 100644 index 0000000000..38fac99155 --- /dev/null +++ b/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c @@ -0,0 +1,71 @@ +/* Copyright 2022 bdtc123 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { + { 0, SW12_CS1, SW11_CS1, SW10_CS1 }, + { 0, SW12_CS2, SW11_CS2, SW10_CS2 }, + { 0, SW12_CS3, SW11_CS3, SW10_CS3 }, + { 0, SW12_CS4, SW11_CS4, SW10_CS4 }, + { 0, SW12_CS5, SW11_CS5, SW10_CS5 }, + { 0, SW12_CS6, SW11_CS6, SW10_CS6 }, + { 0, SW12_CS7, SW11_CS7, SW10_CS7 }, + { 0, SW12_CS8, SW11_CS8, SW10_CS8 }, + { 0, SW12_CS9, SW11_CS9, SW10_CS9 }, + { 0, SW12_CS10, SW11_CS10, SW10_CS10 }, + { 0, SW12_CS11, SW11_CS11, SW10_CS11 }, + { 0, SW12_CS12, SW11_CS12, SW10_CS12 }, + + { 0, SW9_CS1, SW8_CS1, SW7_CS1 }, + { 0, SW9_CS2, SW8_CS2, SW7_CS2 }, + { 0, SW9_CS3, SW8_CS3, SW7_CS3 }, + { 0, SW9_CS4, SW8_CS4, SW7_CS4 }, + { 0, SW9_CS5, SW8_CS5, SW7_CS5 }, + { 0, SW9_CS6, SW8_CS6, SW7_CS6 }, + { 0, SW9_CS7, SW8_CS7, SW7_CS7 }, + { 0, SW9_CS8, SW8_CS8, SW7_CS8 }, + { 0, SW9_CS9, SW8_CS9, SW7_CS9 }, + { 0, SW9_CS10, SW8_CS10, SW7_CS10 }, + { 0, SW9_CS11, SW8_CS11, SW7_CS11 }, + { 0, SW9_CS12, SW8_CS12, SW7_CS12 }, + + { 0, SW6_CS1, SW5_CS1, SW4_CS1 }, + { 0, SW6_CS2, SW5_CS2, SW4_CS2 }, + { 0, SW6_CS3, SW5_CS3, SW4_CS3 }, + { 0, SW6_CS4, SW5_CS4, SW4_CS4 }, + { 0, SW6_CS5, SW5_CS5, SW4_CS5 }, + { 0, SW6_CS6, SW5_CS6, SW4_CS6 }, + { 0, SW6_CS7, SW5_CS7, SW4_CS7 }, + { 0, SW6_CS8, SW5_CS8, SW4_CS8 }, + { 0, SW6_CS9, SW5_CS9, SW4_CS9 }, + { 0, SW6_CS10, SW5_CS10, SW4_CS10 }, + { 0, SW6_CS11, SW5_CS11, SW4_CS11 }, + { 0, SW6_CS12, SW5_CS12, SW4_CS12 }, + + { 0, SW3_CS1, SW2_CS1, SW1_CS1 }, + { 0, SW3_CS2, SW2_CS2, SW1_CS2 }, + { 0, SW3_CS3, SW2_CS3, SW1_CS3 }, + { 0, SW3_CS4, SW2_CS4, SW1_CS4 }, + { 0, SW3_CS5, SW2_CS5, SW1_CS5 }, + { 0, SW3_CS6, SW2_CS6, SW1_CS6 }, + { 0, SW3_CS8, SW2_CS8, SW1_CS8 }, + { 0, SW3_CS9, SW2_CS9, SW1_CS9 }, + { 0, SW3_CS10, SW2_CS10, SW1_CS10 }, + { 0, SW3_CS11, SW2_CS11, SW1_CS11 }, + { 0, SW3_CS12, SW2_CS12, SW1_CS12 } +}; +#endif \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/daughterboard/keyboard.json b/keyboards/kprepublic/cstc40/daughterboard/keyboard.json new file mode 100644 index 0000000000..cdba7942df --- /dev/null +++ b/keyboards/kprepublic/cstc40/daughterboard/keyboard.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["B15", "B14", "B13", "B10", "B12", "A5", "C4", "A7", "A15", "C10", "C11", "C0"], + "rows": ["B1", "B0", "C5", "A6"] + } +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/halconf.h b/keyboards/kprepublic/cstc40/halconf.h new file mode 100644 index 0000000000..0f279040aa --- /dev/null +++ b/keyboards/kprepublic/cstc40/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/info.json b/keyboards/kprepublic/cstc40/info.json index 83a653cc1c..44d12fc22f 100644 --- a/keyboards/kprepublic/cstc40/info.json +++ b/keyboards/kprepublic/cstc40/info.json @@ -2,19 +2,78 @@ "manufacturer": "kprepublic", "keyboard_name": "cstc40", "maintainer": "itsvar8", + "bootloader": "stm32-dfu", "diode_direction": "ROW2COL", + "debounce": 2, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, "rgb_matrix": true }, "processor": "STM32F401", + "url": "", "usb": { + "device_version": "1.0.0", "pid": "0x0040", "vid": "0x586A" }, + "layouts": { + "LAYOUT_planck_mit": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "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": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "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": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "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 }, + { "matrix": [3, 5], "w": 2, "x": 5, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + }, "rgb_matrix": { "animations": { "alphas_mods": true, @@ -38,7 +97,6 @@ "dual_beacon": true, "rainbow_beacon": true, "rainbow_pinwheels": true, - "flower_blooming": true, "raindrops": true, "jellybean_raindrops": true, "hue_breathing": true, @@ -60,66 +118,59 @@ "splash": true, "multisplash": true, "solid_splash": true, - "solid_multisplash": true, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "riverflow": true + "solid_multisplash": true }, + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1} + ], + "max_brightness": 200, "sleep": true - }, - "community_layouts": ["planck_mit"], - "layouts": { - "LAYOUT_planck_mit": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - {"matrix": [2, 11], "x": 11, "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}, - {"matrix": [3, 5], "x": 5, "y": 3, "w": 2}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3} - ] - } } -} +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/keymaps/default/keymap.c b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c index 4d1be333ce..e47ff226a9 100644 --- a/keyboards/kprepublic/cstc40/keymaps/default/keymap.c +++ b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [3] = LAYOUT_planck_mit( - _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL, + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/cstc40/mcuconf.h b/keyboards/kprepublic/cstc40/mcuconf.h new file mode 100644 index 0000000000..a56e52fb8d --- /dev/null +++ b/keyboards/kprepublic/cstc40/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/readme.md b/keyboards/kprepublic/cstc40/readme.md index e6493b28a0..211c078cc2 100644 --- a/keyboards/kprepublic/cstc40/readme.md +++ b/keyboards/kprepublic/cstc40/readme.md @@ -1,25 +1,26 @@ -# CSTC40 +# cstc40 -## This keyboard has 3 known hardware revisions, please be sure to flash the correct firmware for your PCB +A 40% hotswap ortholinear RGB keyboard from KP Republic. -A 40% hotswap ortholinear RGB keyboard from KP Republic +* Keyboard Maintainer: [Var](https://github.com/itsvar8) +* Hardware Supported: CSTC40 +* Hardware Availability: kprepublic.com -### Revision 1: "daughterboard" +The differences between the two versions are just the rows and columns pins and the additional small pcb for the daughterboard version. -* STM32F402RCT6 MCU with IS31FL3733 LED driver, using `stm32-dfu` bootloader. Uses a separate daughterboard for USB connection. +Make example for this keyboard (after setting up your build environment): -* Upon entering bootloader mode QMK Toolbox will display this message: -`STM32 DFU device connected (WinUSB): STMicroelectronics STM32 BOOTLOADER (0483:DF11:2200)` + for daughterboard version: make kprepublic/cstc40/daughterboard:default + for single pcb version: make kprepublic/cstc40/single_pcb:default -### Revision 2: "single pcb" +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). -* STM32F402RCT6 MCU with IS31FL3733 LED driver, using `stm32-dfu` bootloader. Integrated USB connection. +## Bootloader -* Upon entering bootloader mode QMK Toolbox will display this message: -`STM32 DFU device connected (WinUSB): STMicroelectronics STM32 BOOTLOADER (0483:DF11:2200)` +Enter the bootloader in 3 ways: -### Revision 3: "FXTwink single pcb" +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* STM32F402RCT6 MCU without separate LED driver, using `tinyuf2` bootloader. Integrated USB connection. - -* Upon entering bootloader mode the board will appear in your computer's file system as a new USB mass storage device. +The single_pcb uses pin A10, which apparently is a design flaw that prevent the bootloader to start every time - https://docs.qmk.fm/#/platformdev_blackpill_f4x1?id=pins-to-be-avoided. There is a simple workaround that works most of the time - press the pin key (generally the letter R) during the boot. diff --git a/keyboards/kprepublic/cstc40/rev1/halconf.h b/keyboards/kprepublic/cstc40/rev1/halconf.h deleted file mode 100644 index 049b29a046..0000000000 --- a/keyboards/kprepublic/cstc40/rev1/halconf.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/kprepublic/cstc40/rev1/keyboard.json b/keyboards/kprepublic/cstc40/rev1/keyboard.json deleted file mode 100644 index 9574e0bd22..0000000000 --- a/keyboards/kprepublic/cstc40/rev1/keyboard.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "bootloader": "stm32-dfu", - "matrix_pins": { - "cols": ["B15", "B14", "B13", "B10", "B12", "A5", "C4", "A7", "A15", "C10", "C11", "C0"], - "rows": ["B1", "B0", "C5", "A6"] - }, - "rgb_matrix": { - "driver": "is31fl3733", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, - {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, - {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, - {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, - {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, - {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, - {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, - {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, - {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, - {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, - {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, - {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, - {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, - {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, - {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, - {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, - {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, - {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, - {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, - {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, - {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, - {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, - {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, - {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, - {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, - {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, - {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, - {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, - {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1} - ], - "max_brightness": 200 - }, - "usb": { - "device_version": "1.0.0" - } -} diff --git a/keyboards/kprepublic/cstc40/rev1/mcuconf.h b/keyboards/kprepublic/cstc40/rev1/mcuconf.h deleted file mode 100644 index 563b86d26d..0000000000 --- a/keyboards/kprepublic/cstc40/rev1/mcuconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/kprepublic/cstc40/rev1/readme.md b/keyboards/kprepublic/cstc40/rev1/readme.md deleted file mode 100644 index 1d688bc977..0000000000 --- a/keyboards/kprepublic/cstc40/rev1/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Rev 1 - -A 40% hotswap ortholinear RGB keyboard from KP Republic. - -* **Revision 1: "daughterboard"** -* Keyboard Maintainer: [Var](https://github.com/itsvar8) -* Hardware Supported: CSTC40 rev1 -* STM32F402RCT6 MCU with IS31FL3733 LED driver and using `stm32-dfu` bootloader. Uses a separate daughterboard for USB connection. -* Hardware Availability: kprepublic.com - -Make example for this keyboard (after setting up your build environment): - - make kprepublic/cstc40/rev1:default - -Flashing example for this keyboard: - - make kprepublic/cstc40/rev1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kprepublic/cstc40/rev1/rev1.c b/keyboards/kprepublic/cstc40/rev1/rev1.c deleted file mode 100644 index db063d3eba..0000000000 --- a/keyboards/kprepublic/cstc40/rev1/rev1.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright 2022 bdtc123 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { - { 0, SW12_CS1, SW11_CS1, SW10_CS1 }, - { 0, SW12_CS2, SW11_CS2, SW10_CS2 }, - { 0, SW12_CS3, SW11_CS3, SW10_CS3 }, - { 0, SW12_CS4, SW11_CS4, SW10_CS4 }, - { 0, SW12_CS5, SW11_CS5, SW10_CS5 }, - { 0, SW12_CS6, SW11_CS6, SW10_CS6 }, - { 0, SW12_CS7, SW11_CS7, SW10_CS7 }, - { 0, SW12_CS8, SW11_CS8, SW10_CS8 }, - { 0, SW12_CS9, SW11_CS9, SW10_CS9 }, - { 0, SW12_CS10, SW11_CS10, SW10_CS10 }, - { 0, SW12_CS11, SW11_CS11, SW10_CS11 }, - { 0, SW12_CS12, SW11_CS12, SW10_CS12 }, - - { 0, SW9_CS1, SW8_CS1, SW7_CS1 }, - { 0, SW9_CS2, SW8_CS2, SW7_CS2 }, - { 0, SW9_CS3, SW8_CS3, SW7_CS3 }, - { 0, SW9_CS4, SW8_CS4, SW7_CS4 }, - { 0, SW9_CS5, SW8_CS5, SW7_CS5 }, - { 0, SW9_CS6, SW8_CS6, SW7_CS6 }, - { 0, SW9_CS7, SW8_CS7, SW7_CS7 }, - { 0, SW9_CS8, SW8_CS8, SW7_CS8 }, - { 0, SW9_CS9, SW8_CS9, SW7_CS9 }, - { 0, SW9_CS10, SW8_CS10, SW7_CS10 }, - { 0, SW9_CS11, SW8_CS11, SW7_CS11 }, - { 0, SW9_CS12, SW8_CS12, SW7_CS12 }, - - { 0, SW6_CS1, SW5_CS1, SW4_CS1 }, - { 0, SW6_CS2, SW5_CS2, SW4_CS2 }, - { 0, SW6_CS3, SW5_CS3, SW4_CS3 }, - { 0, SW6_CS4, SW5_CS4, SW4_CS4 }, - { 0, SW6_CS5, SW5_CS5, SW4_CS5 }, - { 0, SW6_CS6, SW5_CS6, SW4_CS6 }, - { 0, SW6_CS7, SW5_CS7, SW4_CS7 }, - { 0, SW6_CS8, SW5_CS8, SW4_CS8 }, - { 0, SW6_CS9, SW5_CS9, SW4_CS9 }, - { 0, SW6_CS10, SW5_CS10, SW4_CS10 }, - { 0, SW6_CS11, SW5_CS11, SW4_CS11 }, - { 0, SW6_CS12, SW5_CS12, SW4_CS12 }, - - { 0, SW3_CS1, SW2_CS1, SW1_CS1 }, - { 0, SW3_CS2, SW2_CS2, SW1_CS2 }, - { 0, SW3_CS3, SW2_CS3, SW1_CS3 }, - { 0, SW3_CS4, SW2_CS4, SW1_CS4 }, - { 0, SW3_CS5, SW2_CS5, SW1_CS5 }, - { 0, SW3_CS6, SW2_CS6, SW1_CS6 }, - { 0, SW3_CS8, SW2_CS8, SW1_CS8 }, - { 0, SW3_CS9, SW2_CS9, SW1_CS9 }, - { 0, SW3_CS10, SW2_CS10, SW1_CS10 }, - { 0, SW3_CS11, SW2_CS11, SW1_CS11 }, - { 0, SW3_CS12, SW2_CS12, SW1_CS12 } -}; -#endif diff --git a/keyboards/kprepublic/cstc40/rev2/config.h b/keyboards/kprepublic/cstc40/rev2/config.h deleted file mode 100644 index 4f845a84af..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 Var (@itsvar8) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define I2C1_SDA_PIN B9 -#define I2C1_SCL_PIN B8 - -#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND diff --git a/keyboards/kprepublic/cstc40/rev2/halconf.h b/keyboards/kprepublic/cstc40/rev2/halconf.h deleted file mode 100644 index 049b29a046..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/halconf.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/kprepublic/cstc40/rev2/keyboard.json b/keyboards/kprepublic/cstc40/rev2/keyboard.json deleted file mode 100644 index 7516bfc205..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/keyboard.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "bootloader": "stm32-dfu", - "matrix_pins": { - "cols": ["C7", "C8", "C9", "A8", "A10", "B10", "A15", "C13", "B6", "B5", "B4", "B3"], - "rows": ["C12", "C10", "C11", "B0"] - }, - "rgb_matrix": { - "driver": "is31fl3733", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, - {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, - {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, - {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, - {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, - {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, - {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, - {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, - {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, - {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, - {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, - {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, - {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, - {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, - {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, - {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, - {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, - {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, - {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, - {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, - {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, - {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, - {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, - {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, - {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, - {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, - {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, - {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, - {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, - {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, - {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, - {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1} - ], - "max_brightness": 200 - }, - "usb": { - "device_version": "2.0.0" - } -} diff --git a/keyboards/kprepublic/cstc40/rev2/mcuconf.h b/keyboards/kprepublic/cstc40/rev2/mcuconf.h deleted file mode 100644 index 563b86d26d..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/mcuconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/kprepublic/cstc40/rev2/readme.md b/keyboards/kprepublic/cstc40/rev2/readme.md deleted file mode 100644 index 8f6b27ed8e..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Rev 2 - -A 40% hotswap ortholinear RGB keyboard from KP Republic. - -* **Revision 2: "single pcb"** -* Keyboard Maintainer: [Var](https://github.com/itsvar8) -* Hardware Supported: CSTC40 rev2 -* STM32F402RCT6 MCU with IS31FL3733 LED driver and using `stm32-dfu` bootloader. Integrated USB connection. -* Hardware Availability: kprepublic.com - -Make example for this keyboard (after setting up your build environment): - - make kprepublic/cstc40/rev2:default - -Flashing example for this keyboard: - - make kprepublic/cstc40/rev2:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -The rev 2 uses pin `A10` in the key matrix, which apparently is a design flaw that may prevent the bootloader from entering the proper mode for DFU flashing - . There is a simple workaround that works most of the time - press the pin key (generally the letter R) during the boot. diff --git a/keyboards/kprepublic/cstc40/rev2/rev2.c b/keyboards/kprepublic/cstc40/rev2/rev2.c deleted file mode 100644 index db063d3eba..0000000000 --- a/keyboards/kprepublic/cstc40/rev2/rev2.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright 2022 bdtc123 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { - { 0, SW12_CS1, SW11_CS1, SW10_CS1 }, - { 0, SW12_CS2, SW11_CS2, SW10_CS2 }, - { 0, SW12_CS3, SW11_CS3, SW10_CS3 }, - { 0, SW12_CS4, SW11_CS4, SW10_CS4 }, - { 0, SW12_CS5, SW11_CS5, SW10_CS5 }, - { 0, SW12_CS6, SW11_CS6, SW10_CS6 }, - { 0, SW12_CS7, SW11_CS7, SW10_CS7 }, - { 0, SW12_CS8, SW11_CS8, SW10_CS8 }, - { 0, SW12_CS9, SW11_CS9, SW10_CS9 }, - { 0, SW12_CS10, SW11_CS10, SW10_CS10 }, - { 0, SW12_CS11, SW11_CS11, SW10_CS11 }, - { 0, SW12_CS12, SW11_CS12, SW10_CS12 }, - - { 0, SW9_CS1, SW8_CS1, SW7_CS1 }, - { 0, SW9_CS2, SW8_CS2, SW7_CS2 }, - { 0, SW9_CS3, SW8_CS3, SW7_CS3 }, - { 0, SW9_CS4, SW8_CS4, SW7_CS4 }, - { 0, SW9_CS5, SW8_CS5, SW7_CS5 }, - { 0, SW9_CS6, SW8_CS6, SW7_CS6 }, - { 0, SW9_CS7, SW8_CS7, SW7_CS7 }, - { 0, SW9_CS8, SW8_CS8, SW7_CS8 }, - { 0, SW9_CS9, SW8_CS9, SW7_CS9 }, - { 0, SW9_CS10, SW8_CS10, SW7_CS10 }, - { 0, SW9_CS11, SW8_CS11, SW7_CS11 }, - { 0, SW9_CS12, SW8_CS12, SW7_CS12 }, - - { 0, SW6_CS1, SW5_CS1, SW4_CS1 }, - { 0, SW6_CS2, SW5_CS2, SW4_CS2 }, - { 0, SW6_CS3, SW5_CS3, SW4_CS3 }, - { 0, SW6_CS4, SW5_CS4, SW4_CS4 }, - { 0, SW6_CS5, SW5_CS5, SW4_CS5 }, - { 0, SW6_CS6, SW5_CS6, SW4_CS6 }, - { 0, SW6_CS7, SW5_CS7, SW4_CS7 }, - { 0, SW6_CS8, SW5_CS8, SW4_CS8 }, - { 0, SW6_CS9, SW5_CS9, SW4_CS9 }, - { 0, SW6_CS10, SW5_CS10, SW4_CS10 }, - { 0, SW6_CS11, SW5_CS11, SW4_CS11 }, - { 0, SW6_CS12, SW5_CS12, SW4_CS12 }, - - { 0, SW3_CS1, SW2_CS1, SW1_CS1 }, - { 0, SW3_CS2, SW2_CS2, SW1_CS2 }, - { 0, SW3_CS3, SW2_CS3, SW1_CS3 }, - { 0, SW3_CS4, SW2_CS4, SW1_CS4 }, - { 0, SW3_CS5, SW2_CS5, SW1_CS5 }, - { 0, SW3_CS6, SW2_CS6, SW1_CS6 }, - { 0, SW3_CS8, SW2_CS8, SW1_CS8 }, - { 0, SW3_CS9, SW2_CS9, SW1_CS9 }, - { 0, SW3_CS10, SW2_CS10, SW1_CS10 }, - { 0, SW3_CS11, SW2_CS11, SW1_CS11 }, - { 0, SW3_CS12, SW2_CS12, SW1_CS12 } -}; -#endif diff --git a/keyboards/kprepublic/cstc40/rev3/keyboard.json b/keyboards/kprepublic/cstc40/rev3/keyboard.json deleted file mode 100644 index 2748a6f1fc..0000000000 --- a/keyboards/kprepublic/cstc40/rev3/keyboard.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "maintainer": "ClownFish", - "bootloader": "tinyuf2", - "matrix_pins": { - "cols": ["A4", "A5", "A6", "A7", "C4", "C5", "A8", "A15", "C10", "C11", "C12", "D2"], - "rows": ["B12", "B1", "B0", "C13"] - }, - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, - {"matrix": [3, 2], "x": 41, "y": 64, "flags": 1}, - {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, - {"matrix": [3, 4], "x": 82, "y": 64, "flags": 1}, - {"matrix": [3, 5], "x": 112, "y": 64, "flags": 1}, - {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, - {"matrix": [3, 8], "x": 163, "y": 64, "flags": 1}, - {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, - {"matrix": [3, 10], "x": 204, "y": 64, "flags": 1}, - {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}, - {"matrix": [2, 11], "x": 224, "y": 43, "flags": 1}, - {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4}, - {"matrix": [2, 9], "x": 183, "y": 43, "flags": 4}, - {"matrix": [2, 8], "x": 163, "y": 43, "flags": 4}, - {"matrix": [2, 7], "x": 142, "y": 43, "flags": 4}, - {"matrix": [2, 6], "x": 122, "y": 43, "flags": 4}, - {"matrix": [2, 5], "x": 102, "y": 43, "flags": 4}, - {"matrix": [2, 4], "x": 82, "y": 43, "flags": 4}, - {"matrix": [2, 3], "x": 61, "y": 43, "flags": 4}, - {"matrix": [2, 2], "x": 41, "y": 43, "flags": 4}, - {"matrix": [2, 1], "x": 20, "y": 43, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, - {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 41, "y": 21, "flags": 4}, - {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, - {"matrix": [1, 4], "x": 82, "y": 21, "flags": 4}, - {"matrix": [1, 5], "x": 102, "y": 21, "flags": 4}, - {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, - {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, - {"matrix": [1, 8], "x": 163, "y": 21, "flags": 4}, - {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, - {"matrix": [1, 10], "x": 204, "y": 21, "flags": 4}, - {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, - {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, - {"matrix": [0, 10], "x": 204, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} - ], - "max_brightness": 180 - }, - "usb": { - "device_version": "3.0.0" - }, - "ws2812": { - "pin": "B13" - } -} diff --git a/keyboards/kprepublic/cstc40/rev3/readme.md b/keyboards/kprepublic/cstc40/rev3/readme.md deleted file mode 100644 index b372c63579..0000000000 --- a/keyboards/kprepublic/cstc40/rev3/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Rev 3 - -A 40% hotswap ortholinear RGB keyboard from KP Republic. - -* **Revision 3: "FXTwink single pcb"** -* Keyboard Maintainer: [ClownFish](https://github.com/clownfish-og) -* Hardware Supported: CSTC40 rev3 -* STM32F402RCT6 MCU without separate LED driver and using `tinyuf2` bootloader. Integrated USB connection. -* Hardware Availability: kprepublic.com - -Make example for this keyboard (after setting up your build environment): - - make kprepublic/cstc40/rev3:default - -Flashing example for this keyboard: - - make kprepublic/cstc40/rev3:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kprepublic/cstc40/single_pcb/keyboard.json b/keyboards/kprepublic/cstc40/single_pcb/keyboard.json new file mode 100644 index 0000000000..330ada7bac --- /dev/null +++ b/keyboards/kprepublic/cstc40/single_pcb/keyboard.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["C7", "C8", "C9", "A8", "A10", "B10", "A15", "C13", "B6", "B5", "B4", "B3"], + "rows": ["C12", "C10", "C11", "B0"] + } +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c b/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c new file mode 100644 index 0000000000..38fac99155 --- /dev/null +++ b/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c @@ -0,0 +1,71 @@ +/* Copyright 2022 bdtc123 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { + { 0, SW12_CS1, SW11_CS1, SW10_CS1 }, + { 0, SW12_CS2, SW11_CS2, SW10_CS2 }, + { 0, SW12_CS3, SW11_CS3, SW10_CS3 }, + { 0, SW12_CS4, SW11_CS4, SW10_CS4 }, + { 0, SW12_CS5, SW11_CS5, SW10_CS5 }, + { 0, SW12_CS6, SW11_CS6, SW10_CS6 }, + { 0, SW12_CS7, SW11_CS7, SW10_CS7 }, + { 0, SW12_CS8, SW11_CS8, SW10_CS8 }, + { 0, SW12_CS9, SW11_CS9, SW10_CS9 }, + { 0, SW12_CS10, SW11_CS10, SW10_CS10 }, + { 0, SW12_CS11, SW11_CS11, SW10_CS11 }, + { 0, SW12_CS12, SW11_CS12, SW10_CS12 }, + + { 0, SW9_CS1, SW8_CS1, SW7_CS1 }, + { 0, SW9_CS2, SW8_CS2, SW7_CS2 }, + { 0, SW9_CS3, SW8_CS3, SW7_CS3 }, + { 0, SW9_CS4, SW8_CS4, SW7_CS4 }, + { 0, SW9_CS5, SW8_CS5, SW7_CS5 }, + { 0, SW9_CS6, SW8_CS6, SW7_CS6 }, + { 0, SW9_CS7, SW8_CS7, SW7_CS7 }, + { 0, SW9_CS8, SW8_CS8, SW7_CS8 }, + { 0, SW9_CS9, SW8_CS9, SW7_CS9 }, + { 0, SW9_CS10, SW8_CS10, SW7_CS10 }, + { 0, SW9_CS11, SW8_CS11, SW7_CS11 }, + { 0, SW9_CS12, SW8_CS12, SW7_CS12 }, + + { 0, SW6_CS1, SW5_CS1, SW4_CS1 }, + { 0, SW6_CS2, SW5_CS2, SW4_CS2 }, + { 0, SW6_CS3, SW5_CS3, SW4_CS3 }, + { 0, SW6_CS4, SW5_CS4, SW4_CS4 }, + { 0, SW6_CS5, SW5_CS5, SW4_CS5 }, + { 0, SW6_CS6, SW5_CS6, SW4_CS6 }, + { 0, SW6_CS7, SW5_CS7, SW4_CS7 }, + { 0, SW6_CS8, SW5_CS8, SW4_CS8 }, + { 0, SW6_CS9, SW5_CS9, SW4_CS9 }, + { 0, SW6_CS10, SW5_CS10, SW4_CS10 }, + { 0, SW6_CS11, SW5_CS11, SW4_CS11 }, + { 0, SW6_CS12, SW5_CS12, SW4_CS12 }, + + { 0, SW3_CS1, SW2_CS1, SW1_CS1 }, + { 0, SW3_CS2, SW2_CS2, SW1_CS2 }, + { 0, SW3_CS3, SW2_CS3, SW1_CS3 }, + { 0, SW3_CS4, SW2_CS4, SW1_CS4 }, + { 0, SW3_CS5, SW2_CS5, SW1_CS5 }, + { 0, SW3_CS6, SW2_CS6, SW1_CS6 }, + { 0, SW3_CS8, SW2_CS8, SW1_CS8 }, + { 0, SW3_CS9, SW2_CS9, SW1_CS9 }, + { 0, SW3_CS10, SW2_CS10, SW1_CS10 }, + { 0, SW3_CS11, SW2_CS11, SW1_CS11 }, + { 0, SW3_CS12, SW2_CS12, SW1_CS12 } +}; +#endif \ No newline at end of file diff --git a/keyboards/kprepublic/jj40/rev1/keyboard.json b/keyboards/kprepublic/jj40/rev1/keyboard.json index 201f916ee3..3ac3e2f02c 100644 --- a/keyboards/kprepublic/jj40/rev1/keyboard.json +++ b/keyboards/kprepublic/jj40/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JJ40 rev1", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/jj40/rules.mk b/keyboards/kprepublic/jj40/rules.mk new file mode 100644 index 0000000000..fa09523958 --- /dev/null +++ b/keyboards/kprepublic/jj40/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kprepublic/jj40/rev1 diff --git a/keyboards/kprepublic/jj4x4/keyboard.json b/keyboards/kprepublic/jj4x4/keyboard.json index 872ee1ac55..2f53db2e88 100644 --- a/keyboards/kprepublic/jj4x4/keyboard.json +++ b/keyboards/kprepublic/jj4x4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JJ4x4", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -11,6 +12,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/kprepublic/jj50/keymaps/default/keymap.c b/keyboards/kprepublic/jj50/keymaps/default/keymap.c index 7bc5663600..f6df7b92f6 100644 --- a/keyboards/kprepublic/jj50/keymaps/default/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/default/keymap.c @@ -28,15 +28,17 @@ enum layers { _FN }; +enum keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + COLEMAK, + DVORAK +}; + #define FN MO(_FN) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define WORKMAN PDF(_WORKMAN) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -211,3 +213,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +}; diff --git a/keyboards/kprepublic/jj50/rev1/keyboard.json b/keyboards/kprepublic/jj50/rev1/keyboard.json index 7eed1349e0..c9f191ef9c 100644 --- a/keyboards/kprepublic/jj50/rev1/keyboard.json +++ b/keyboards/kprepublic/jj50/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JJ50 rev1", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/jj50/rev2/keyboard.json b/keyboards/kprepublic/jj50/rev2/keyboard.json index 4327c4be97..b739c20713 100644 --- a/keyboards/kprepublic/jj50/rev2/keyboard.json +++ b/keyboards/kprepublic/jj50/rev2/keyboard.json @@ -39,9 +39,11 @@ "twinkle": true }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 6, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "2.0.0", "pid": "0x0050", diff --git a/keyboards/kprepublic/jj50/rules.mk b/keyboards/kprepublic/jj50/rules.mk new file mode 100644 index 0000000000..8f77c68db2 --- /dev/null +++ b/keyboards/kprepublic/jj50/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kprepublic/jj50/rev1 diff --git a/keyboards/kradoindustries/kousa/keyboard.json b/keyboards/kradoindustries/kousa/keyboard.json index 2730bf5d50..196e863bf5 100644 --- a/keyboards/kradoindustries/kousa/keyboard.json +++ b/keyboards/kradoindustries/kousa/keyboard.json @@ -14,6 +14,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "encoder": true, "rgblight": true diff --git a/keyboards/kradoindustries/kousa/keymaps/default/keymap.c b/keyboards/kradoindustries/kousa/keymaps/default/keymap.c index 0262113397..68cbcea1e2 100644 --- a/keyboards/kradoindustries/kousa/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/kousa/keymaps/default/keymap.c @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } diff --git a/keyboards/kradoindustries/krado66/keyboard.json b/keyboards/kradoindustries/krado66/keyboard.json index 6964f3f80f..aefadf12de 100644 --- a/keyboards/kradoindustries/krado66/keyboard.json +++ b/keyboards/kradoindustries/krado66/keyboard.json @@ -14,6 +14,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "encoder": true, "rgblight": true diff --git a/keyboards/kradoindustries/krado66/keymaps/default/keymap.c b/keyboards/kradoindustries/krado66/keymaps/default/keymap.c index 4048c6743c..51306a2111 100644 --- a/keyboards/kradoindustries/krado66/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/krado66/keymaps/default/keymap.c @@ -148,10 +148,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_QWERTYX] = { ENCODER_CCW_CW(C(KC_TAB), C(S(KC_TAB))), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(UG_SATD, UG_SATU) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_QWERTYX] = { ENCODER_CCW_CW(C(KC_TAB), C(S(KC_TAB))), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(UG_SATD, UG_SATU) }, [_FUNCTION] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) }, - [_EXTRA] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, + [_EXTRA] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, }; #endif diff --git a/keyboards/kradoindustries/promenade/keyboard.json b/keyboards/kradoindustries/promenade/keyboard.json index f8b1197ff1..86330dbc2e 100644 --- a/keyboards/kradoindustries/promenade/keyboard.json +++ b/keyboards/kradoindustries/promenade/keyboard.json @@ -15,6 +15,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true }, @@ -71,8 +73,8 @@ {"matrix": [1, 3], "x":3.5, "y":1}, {"matrix": [1, 4], "x":4.5, "y":1}, {"matrix": [1, 5], "x":5.5, "y":1}, - {"matrix": [1, 6], "x":6.5, "y":1}, - {"matrix": [1, 7], "x":7.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, {"matrix": [1, 8], "x":8.5, "y":1}, {"matrix": [1, 9], "x":9.5, "y":1}, {"matrix": [1, 10], "x":10.5, "y":1}, @@ -86,8 +88,6 @@ {"matrix": [2, 3], "x":3.5, "y":2}, {"matrix": [2, 4], "x":4.5, "y":2}, {"matrix": [2, 5], "x":5.5, "y":2}, - {"matrix": [2, 6], "x":6.5, "y":2}, - {"matrix": [2, 7], "x":7.5, "y":2}, {"matrix": [2, 8], "x":8.5, "y":2}, {"matrix": [2, 9], "x":9.5, "y":2}, {"matrix": [2, 10], "x":10.5, "y":2}, @@ -101,8 +101,8 @@ {"matrix": [3, 3], "x":3.5, "y":3}, {"matrix": [3, 4], "x":4.5, "y":3}, {"matrix": [3, 5], "x":5.5, "y":3}, - {"matrix": [3, 6], "x":6.5, "y":3}, - {"matrix": [3, 7], "x":7.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, {"matrix": [3, 8], "x":8.5, "y":3}, {"matrix": [3, 9], "x":9.5, "y":3}, {"matrix": [3, 10], "x":10.5, "y":3}, @@ -199,81 +199,6 @@ {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} ] }, - "LAYOUT_1x2u": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, - {"matrix": [0, 1], "x":1.5, "y":0}, - {"matrix": [0, 2], "x":2.5, "y":0}, - {"matrix": [0, 3], "x":3.5, "y":0}, - {"matrix": [0, 4], "x":4.5, "y":0}, - {"matrix": [0, 5], "x":5.5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0, 10], "x":10.5, "y":0}, - {"matrix": [0, 11], "x":11.5, "y":0}, - {"matrix": [0, 12], "x":12.5, "y":0}, - {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, - - {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, - {"matrix": [1, 1], "x":1.5, "y":1}, - {"matrix": [1, 2], "x":2.5, "y":1}, - {"matrix": [1, 3], "x":3.5, "y":1}, - {"matrix": [1, 4], "x":4.5, "y":1}, - {"matrix": [1, 5], "x":5.5, "y":1}, - {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, - {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, - {"matrix": [1, 8], "x":8.5, "y":1}, - {"matrix": [1, 9], "x":9.5, "y":1}, - {"matrix": [1, 10], "x":10.5, "y":1}, - {"matrix": [1, 11], "x":11.5, "y":1}, - {"matrix": [1, 12], "x":12.5, "y":1}, - {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, - - {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2}, - {"matrix": [2, 2], "x":2.5, "y":2}, - {"matrix": [2, 3], "x":3.5, "y":2}, - {"matrix": [2, 4], "x":4.5, "y":2}, - {"matrix": [2, 5], "x":5.5, "y":2}, - {"matrix": [2, 8], "x":8.5, "y":2}, - {"matrix": [2, 9], "x":9.5, "y":2}, - {"matrix": [2, 10], "x":10.5, "y":2}, - {"matrix": [2, 11], "x":11.5, "y":2}, - {"matrix": [2, 12], "x":12.5, "y":2}, - {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, - - {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, - {"matrix": [3, 1], "x":1.5, "y":3}, - {"matrix": [3, 2], "x":2.5, "y":3}, - {"matrix": [3, 3], "x":3.5, "y":3}, - {"matrix": [3, 4], "x":4.5, "y":3}, - {"matrix": [3, 5], "x":5.5, "y":3}, - {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, - {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, - {"matrix": [3, 8], "x":8.5, "y":3}, - {"matrix": [3, 9], "x":9.5, "y":3}, - {"matrix": [3, 10], "x":10.5, "y":3}, - {"matrix": [3, 11], "x":11.5, "y":3}, - {"matrix": [3, 12], "x":12.5, "y":3}, - {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, - - {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"matrix": [4, 1], "x":1.5, "y":4}, - {"matrix": [4, 2], "x":2.5, "y":4}, - {"matrix": [4, 3], "x":3.5, "y":4}, - {"matrix": [4, 4], "x":4.5, "y":4}, - {"matrix": [4, 5], "x":5.5, "y":4}, - {"matrix": [4, 6], "x":6.5, "y":4, "w":2}, - {"matrix": [4, 8], "x":8.5, "y":4}, - {"matrix": [4, 9], "x":9.5, "y":4}, - {"matrix": [4, 10], "x":10.5, "y":4}, - {"matrix": [4, 11], "x":11.5, "y":4}, - {"matrix": [4, 12], "x":12.5, "y":4}, - {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} - ] - }, "LAYOUT_2x3u": { "layout": [ {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, diff --git a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c index be8401e608..aef0f28161 100644 --- a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c @@ -26,19 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .-----------------------------------------------------------------------------------------------------------------------------. * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | \ | + * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | CAP LK | A | S | D | F | G | HOME | PG UP | H | J | K | L | ; | ENTER | + * | CAP LK | A | S | D | F | G | | | H | J | K | L | ; | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | RSHIFT | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | + * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | * '-----------------------------------------------------------------------------------------------------------------------------' */ [_BASE] = LAYOUT_all( 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_CAPS, 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_ENT, + 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_QUOT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL ), @@ -47,20 +47,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .-----------------------------------------------------------------------------------------------------------------------------. * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | HOME | UP | END | PG UP | | | | | | | | PRT SC | | + * | | Home | Up | End | PgUp | | | | | | | | PRT SC | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | | LEFT | DOWN | RIGHT | PG DN | | | | | | | | ' | RGB Off| + * | | Left | Down | Right | PgDn | | | | | | | | | Reset | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | | | | | | | | | | MUTE | VOL DN | VOL UP | \ | | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| - * | | | | | | ENTER | ENTER | BACKSP | | | | | Reset | + * | | | | | | | | | | | | | | Reset | * '-----------------------------------------------------------------------------------------------------------------------------' */ [_FN] = 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, KC_DEL, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, UG_TOGG, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______, - _______, _______, _______, _______, _______, KC_ENT, KC_ENT, KC_BSPC, _______, _______, _______, _______, QK_BOOT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ) }; diff --git a/keyboards/kradoindustries/promenade/matrix_diagram.md b/keyboards/kradoindustries/promenade/matrix_diagram.md index 3c205c9a99..086471b8b9 100644 --- a/keyboards/kradoindustries/promenade/matrix_diagram.md +++ b/keyboards/kradoindustries/promenade/matrix_diagram.md @@ -5,10 +5,10 @@ │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │ ├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ -├─────┼───┼───┼───┼───┼───├───┼───┼───┼───┼───┼───┼───┼─────┤ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ -├─────┼───┼───┼───┼───┼───├───┼───┼───┼───┼───┼───┼───┼─────┤ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├─────┼───┼───┼───┼───┼───┤ │ ├───┼───┼───┼───┼───┼─────┤ +│20 │21 │22 │23 │24 │25 ├───┼───┤28 │29 │2A │2B │2C │2D │ +├─────┼───┼───┼───┼───┼───┤36 │37 ├───┼───┼───┼───┼───┼─────┤ +│30 │31 │32 │33 │34 │35 │ │ │38 │39 │3A │3B │3C │3D │ ├─────┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┼─────┤ │40 │41 │42 │43 │44 │45 │46 │48 │49 │4A │4B │4C │4D │ └─────┴───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┴─────┘ diff --git a/keyboards/kradoindustries/promenade_rp24s/keyboard.json b/keyboards/kradoindustries/promenade_rp24s/keyboard.json deleted file mode 100644 index 5fb3dbfec8..0000000000 --- a/keyboards/kradoindustries/promenade_rp24s/keyboard.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "keyboard_name": "Promenade RP24S", - "manufacturer": "Krado Industries", - "url": "https://www.kradoindustries.com/", - "maintainer": "Krado Industries", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0x4B72", - "pid": "0x4B6D", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true, - "encoder": true, - "rgblight": true - }, - - "encoder": { - "rotary": [ - { "pin_a": "GP12", "pin_b": "GP15" }, - { "pin_a": "GP12", "pin_b": "GP16" }, - { "pin_a": "GP15", "pin_b": "GP18" }, - { "pin_a": "GP16", "pin_b": "GP18" }, - { "pin_a": "GP11", "pin_b": "GP15" }, - { "pin_a": "GP16", "pin_b": "GP11" }, - { "pin_a": "GP16", "pin_b": "GP15" }, - { "pin_a": "GP18", "pin_b": "GP12" } - ] - }, - - "ws2812": { - "pin": "GP26", - "driver": "vendor" - }, - "rgblight": { - "led_count": 14, - "sleep": true, - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - } - }, - - - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["GP20", "GP10", "GP9", "GP8", "GP7", "GP6", "GP14", "GP13", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP29", "GP28", "GP27", "GP19", "GP17"] - }, - - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, - {"matrix": [0, 1], "x":1.5, "y":0}, - {"matrix": [0, 2], "x":2.5, "y":0}, - {"matrix": [0, 3], "x":3.5, "y":0}, - {"matrix": [0, 4], "x":4.5, "y":0}, - {"matrix": [0, 5], "x":5.5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0, 10], "x":10.5, "y":0}, - {"matrix": [0, 11], "x":11.5, "y":0}, - {"matrix": [0, 12], "x":12.5, "y":0}, - {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, - {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, - {"matrix": [1, 1], "x":1.5, "y":1}, - {"matrix": [1, 2], "x":2.5, "y":1}, - {"matrix": [1, 3], "x":3.5, "y":1}, - {"matrix": [1, 4], "x":4.5, "y":1}, - {"matrix": [1, 5], "x":5.5, "y":1}, - {"matrix": [1, 6], "x":6.5, "y":1}, - {"matrix": [1, 7], "x":7.5, "y":1}, - {"matrix": [1, 8], "x":8.5, "y":1}, - {"matrix": [1, 9], "x":9.5, "y":1}, - {"matrix": [1, 10], "x":10.5, "y":1}, - {"matrix": [1, 11], "x":11.5, "y":1}, - {"matrix": [1, 12], "x":12.5, "y":1}, - {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, - {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2}, - {"matrix": [2, 2], "x":2.5, "y":2}, - {"matrix": [2, 3], "x":3.5, "y":2}, - {"matrix": [2, 4], "x":4.5, "y":2}, - {"matrix": [2, 5], "x":5.5, "y":2}, - {"matrix": [2, 6], "x":6.5, "y":2}, - {"matrix": [2, 7], "x":7.5, "y":2}, - {"matrix": [2, 8], "x":8.5, "y":2}, - {"matrix": [2, 9], "x":9.5, "y":2}, - {"matrix": [2, 10], "x":10.5, "y":2}, - {"matrix": [2, 11], "x":11.5, "y":2}, - {"matrix": [2, 12], "x":12.5, "y":2}, - {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, - {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, - {"matrix": [3, 1], "x":1.5, "y":3}, - {"matrix": [3, 2], "x":2.5, "y":3}, - {"matrix": [3, 3], "x":3.5, "y":3}, - {"matrix": [3, 4], "x":4.5, "y":3}, - {"matrix": [3, 5], "x":5.5, "y":3}, - {"matrix": [3, 6], "x":6.5, "y":3}, - {"matrix": [3, 7], "x":7.5, "y":3}, - {"matrix": [3, 8], "x":8.5, "y":3}, - {"matrix": [3, 9], "x":9.5, "y":3}, - {"matrix": [3, 10], "x":10.5, "y":3}, - {"matrix": [3, 11], "x":11.5, "y":3}, - {"matrix": [3, 12], "x":12.5, "y":3}, - {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, - {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"matrix": [4, 1], "x":1.5, "y":4}, - {"matrix": [4, 2], "x":2.5, "y":4}, - {"matrix": [4, 3], "x":3.5, "y":4}, - {"matrix": [4, 4], "x":4.5, "y":4}, - {"matrix": [4, 5], "x":5.5, "y":4}, - {"matrix": [4, 6], "x":6.5, "y":4}, - {"matrix": [4, 7], "x":7.5, "y":4}, - {"matrix": [4, 8], "x":8.5, "y":4}, - {"matrix": [4, 9], "x":9.5, "y":4}, - {"matrix": [4, 10], "x":10.5, "y":4}, - {"matrix": [4, 11], "x":11.5, "y":4}, - {"matrix": [4, 12], "x":12.5, "y":4}, - {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5}] - } - } -} diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c deleted file mode 100644 index f08f27216a..0000000000 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2024 Matt F - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - - -#define _FN MO(3) -#define FN_BACK LT(3, KC_BSPC) -#define ZOOMIN C(KC_EQL) -#define ZOOMOUT C(KC_MINS) -#define NTAB C(KC_TAB) -#define BTAB C(S(KC_TAB)) - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - - /* Base Layer - - - * .-----------------------------------------------------------------------------------------------------------------------------------. - * | Grave | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | Backspace | - * | | | | | | | | | | | | | | | - * |-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------| - * | Tab | Q | W | E | R | T | [ | ] | Y | U | I | O | P | Del | - * | | | | | | | | | | | | | | | - * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------+-----------------+-----------| - * | FN_BACK | A | S | D | F | G | [ | ] | H | J | K | L | " | Enter | - * | | | | | | | | | | | | | ' | | - * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------------------------+-----------| - * | LShift | Z | X | C | V | B | BTab | NTab | N | M | < | > | ? | RShift | - * | | | | | | | | | | | , | . | / | | - * |-----------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+-----------| - * | LCTRL | LGUI | LALT | FN | Space | Space |Space |Space | Space | Space | Space | RALT | FN | RCTRL | - * | | | | | | | | | | | | | | | - * '-----------------------------------------------------------------------------------------------------------------------------------' - */ - - 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_DEL, - FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, BTAB, NTAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL - ), - - [1] = LAYOUT( /* Layer One */ - - 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_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL - ), - - - [2] = LAYOUT( /* Layer Two */ - - 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, ZOOMIN, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ZOOMOUT, KC_LBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL - ), - - [3] = LAYOUT( /* Layer Three */ - - 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, KC_DEL, - _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, DF(0) , DF(1) , _______, _______, _______, _______, KC_PSCR, KC_BSLS, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, - _______, _______, _______, _______, _______, _______, DF(2) , _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, - _______, _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, _______, _______, _______, QK_BOOT - ) - -}; - -#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(UG_NEXT, UG_PREV), - ENCODER_CCW_CW(KC_LBRC, KC_RBRC), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), - ENCODER_CCW_CW(C(KC_Z), C(S(KC_Z))), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), - ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_UP, KC_DOWN)}, - [1 ... 3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), - ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), - ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), - ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)} -}; -#endif \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk deleted file mode 100644 index a40474b4d5..0000000000 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/readme.md b/keyboards/kradoindustries/promenade_rp24s/readme.md deleted file mode 100644 index 9685cb8296..0000000000 --- a/keyboards/kradoindustries/promenade_rp24s/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Promenade RP24S - -![Promenade RP24S](https://i.imgur.com/uQOhmmJ.jpeg) - -The Promenade RP24S is the solder version of the [Promenade](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kradoindustries/promenade) pcb which is based on the [Boardwalk](https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardwalk), a 60% ortholinear keyboard that uses 1.5u Ergodoxian modifier keys. The original Boardwalk's split hand and 65% layouts are supported, and a new 50% extended layout similar to [RGBKB's Pan](https://github.com/qmk/qmk_firmware/tree/master/keyboards/rgbkb/pan) with two right-side macro columns was also added. In addition to Pok3r-style 60% tray mounting points, the pcb also has edge cuts for use in gummy o-ring mount boards like the Bakeneko60. Some additional spacebar options including 3u, 6u, and triple 2u were added. The pcb has two footprint locations for a JST connector, many breakout pins, and 19 rotary encoder locations. The MCU has been upgraded to a RP2040 with 32M-bit of flash memory. - - -* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) -* Hardware Supported: Promenade pcb. Many 60% cases. -* Hardware Availability: [Krado Industries](https://kradoindustries.com/) - -Make example for this keyboard (after setting up your build environment): - - make kradoindustries/promenade_rp24s:default - -Flashing example for this keyboard: - - make kradoindustries/promenade_rp24s:default:flash - - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/kraken_jones/pteron56/keyboard.json b/keyboards/kraken_jones/pteron56/keyboard.json index d298a1220f..0af1f6b735 100644 --- a/keyboards/kraken_jones/pteron56/keyboard.json +++ b/keyboards/kraken_jones/pteron56/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "layouts": { diff --git a/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c b/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c index 0f57f316bd..e9e7e0dd90 100644 --- a/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c +++ b/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c @@ -21,8 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, 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_VOLU, KC_HOME, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, KC_PGUP, KC_UP, KC_PGDN, KC_MENU, KC_RBRC, KC_TRNS, - KC_VOLD, KC_END, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_BSLS, KC_TRNS, + KC_VOLU, KC_HOME, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_PGUP, KC_UP, KC_PGDN, KC_MENU, KC_RBRC, KC_TRNS, + KC_VOLD, KC_END, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_BSLS, KC_TRNS, KC_TRNS, KC_LCTL, KC_LSFT, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/ktec/daisy/keyboard.json b/keyboards/ktec/daisy/keyboard.json index 9d8a7f2de5..d0a24f5b0d 100644 --- a/keyboards/ktec/daisy/keyboard.json +++ b/keyboards/ktec/daisy/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Daisy", "manufacturer": "KTEC", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ktec/ergodone/keyboard.json b/keyboards/ktec/ergodone/keyboard.json index d88d0f2090..3c9b0208bb 100644 --- a/keyboards/ktec/ergodone/keyboard.json +++ b/keyboards/ktec/ergodone/keyboard.json @@ -2,7 +2,8 @@ "keyboard_name": "Ergodone", "manufacturer": "K.T.E.C.", "maintainer": "Yu He", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "usb": { "vid": "0x1209", "pid": "0x2328", diff --git a/keyboards/ktec/ergodone/keymaps/default/keymap.c b/keyboards/ktec/ergodone/keymaps/default/keymap.c index 1ee2041501..41d5da8dee 100644 --- a/keyboards/ktec/ergodone/keymaps/default/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, @@ -119,10 +119,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/ktec/staryu/keyboard.json b/keyboards/ktec/staryu/keyboard.json index 2fa35a7913..a2799703be 100644 --- a/keyboards/ktec/staryu/keyboard.json +++ b/keyboards/ktec/staryu/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Staryu", "manufacturer": "K.T.E.C.", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1209", @@ -39,6 +40,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ktec/staryu/keymaps/default/keymap.c b/keyboards/ktec/staryu/keymaps/default/keymap.c index 3fa481e86d..68c1b85b19 100755 --- a/keyboards/ktec/staryu/keymaps/default/keymap.c +++ b/keyboards/ktec/staryu/keymaps/default/keymap.c @@ -52,9 +52,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER3] = LAYOUT( /* ┌─────────┬─────────┬─────────┐ */ - MS_UP, TO(_LAYER4), + KC_MS_U, TO(_LAYER4), /* ├─────────┼─────────┼─────────┤ */ - MS_LEFT, MS_DOWN, MS_RGHT + KC_MS_L, KC_MS_D, KC_MS_R /* └─────────┴─────────┴─────────┘ */ ), diff --git a/keyboards/kumaokobo/kudox/columner/keyboard.json b/keyboards/kumaokobo/kudox/columner/keyboard.json index ac3125abc7..4345866382 100644 --- a/keyboards/kumaokobo/kudox/columner/keyboard.json +++ b/keyboards/kumaokobo/kudox/columner/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev1/keyboard.json b/keyboards/kumaokobo/kudox/rev1/keyboard.json index f056514c52..65c01a798e 100644 --- a/keyboards/kumaokobo/kudox/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev1/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev2/keyboard.json b/keyboards/kumaokobo/kudox/rev2/keyboard.json index 64940bfcdd..9df232c641 100644 --- a/keyboards/kumaokobo/kudox/rev2/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev2/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev3/keyboard.json b/keyboards/kumaokobo/kudox/rev3/keyboard.json index 8c935a80da..cfd1511123 100644 --- a/keyboards/kumaokobo/kudox/rev3/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev3/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rules.mk b/keyboards/kumaokobo/kudox/rules.mk new file mode 100644 index 0000000000..16c27e7c3b --- /dev/null +++ b/keyboards/kumaokobo/kudox/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kumaokobo/kudox/rev3 diff --git a/keyboards/kumaokobo/kudox_full/rev1/keyboard.json b/keyboards/kumaokobo/kudox_full/rev1/keyboard.json index 81a3d5c4dd..b79deec7dc 100644 --- a/keyboards/kumaokobo/kudox_full/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox_full/rev1/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox_full/rules.mk b/keyboards/kumaokobo/kudox_full/rules.mk new file mode 100644 index 0000000000..c912dcd2e5 --- /dev/null +++ b/keyboards/kumaokobo/kudox_full/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kumaokobo/kudox_full/rev1 diff --git a/keyboards/kumaokobo/kudox_game/info.json b/keyboards/kumaokobo/kudox_game/info.json index 498f2c581d..6968b5e427 100644 --- a/keyboards/kumaokobo/kudox_game/info.json +++ b/keyboards/kumaokobo/kudox_game/info.json @@ -1,10 +1,12 @@ { "keyboard_name": "The Kudox Game Keyboard", "manufacturer": "Kumao Kobo", + "url": "", "maintainer": "Kumao Kobo", "usb": { "vid": "0xABBA", "pid": "0x9696" }, - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/kumaokobo/kudox_game/rev1/keyboard.json b/keyboards/kumaokobo/kudox_game/rev1/keyboard.json index bd3d8053ff..975fbcd546 100644 --- a/keyboards/kumaokobo/kudox_game/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox_game/rev1/keyboard.json @@ -30,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kumaokobo/kudox_game/rev2/keyboard.json b/keyboards/kumaokobo/kudox_game/rev2/keyboard.json index 84f272d712..ac13e1b216 100644 --- a/keyboards/kumaokobo/kudox_game/rev2/keyboard.json +++ b/keyboards/kumaokobo/kudox_game/rev2/keyboard.json @@ -30,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kumaokobo/kudox_game/rules.mk b/keyboards/kumaokobo/kudox_game/rules.mk new file mode 100644 index 0000000000..28918ca489 --- /dev/null +++ b/keyboards/kumaokobo/kudox_game/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kumaokobo/kudox_game/rev2 diff --git a/keyboards/kumaokobo/pico/65keys/keyboard.json b/keyboards/kumaokobo/pico/65keys/keyboard.json index 2e8db34b38..db2ca9fdca 100644 --- a/keyboards/kumaokobo/pico/65keys/keyboard.json +++ b/keyboards/kumaokobo/pico/65keys/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/pico/70keys/keyboard.json b/keyboards/kumaokobo/pico/70keys/keyboard.json index 3a8e41ecba..00add13874 100644 --- a/keyboards/kumaokobo/pico/70keys/keyboard.json +++ b/keyboards/kumaokobo/pico/70keys/keyboard.json @@ -39,7 +39,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/pico/rules.mk b/keyboards/kumaokobo/pico/rules.mk new file mode 100644 index 0000000000..df859afa0f --- /dev/null +++ b/keyboards/kumaokobo/pico/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kumaokobo/pico/65keys diff --git a/keyboards/kuro/kuro65/keyboard.json b/keyboards/kuro/kuro65/keyboard.json index 631120ae79..72549735d9 100644 --- a/keyboards/kuro/kuro65/keyboard.json +++ b/keyboards/kuro/kuro65/keyboard.json @@ -2,6 +2,7 @@ "keyboard_name": "Kuro65", "manufacturer": "Kuro", "maintainer": "0x544D", + "url": "", "processor": "atmega32u4", "bootloader": "atmel-dfu", "diode_direction": "COL2ROW", @@ -21,6 +22,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/kuro/kuro65/keymaps/default/keymap.c b/keyboards/kuro/kuro65/keymaps/default/keymap.c index 4224bb8a3e..cb8d125a8f 100644 --- a/keyboards/kuro/kuro65/keymaps/default/keymap.c +++ b/keyboards/kuro/kuro65/keymaps/default/keymap.c @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [FN1] = LAYOUT_65_iso( 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, KC_DEL, KC_HOME, - KC_NO, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_NO, KC_NO, KC_NO, KC_HOME, + KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/kv/revt/keyboard.json b/keyboards/kv/revt/keyboard.json index 20d9c38fbe..8553dcdd35 100644 --- a/keyboards/kv/revt/keyboard.json +++ b/keyboards/kv/revt/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KVT", "manufacturer": "Hybrid", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6565", diff --git a/keyboards/kv/revt/keymaps/default/keymap.c b/keyboards/kv/revt/keymaps/default/keymap.c index 56921c9821..2b4867add5 100644 --- a/keyboards/kv/revt/keymaps/default/keymap.c +++ b/keyboards/kv/revt/keymaps/default/keymap.c @@ -56,8 +56,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_default( _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLU, -_______, _______, _______, _______, _______, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPRV, KC_VOLD, -_______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, +_______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPRV, KC_VOLD, +_______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/kwstudio/pisces/keyboard.json b/keyboards/kwstudio/pisces/keyboard.json index 25936beb85..48f4e6a4f6 100644 --- a/keyboards/kwstudio/pisces/keyboard.json +++ b/keyboards/kwstudio/pisces/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,6 +20,7 @@ "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/kwstudio/scorpio/keyboard.json b/keyboards/kwstudio/scorpio/keyboard.json index 4d94b3a6b9..82262afb1b 100644 --- a/keyboards/kwstudio/scorpio/keyboard.json +++ b/keyboards/kwstudio/scorpio/keyboard.json @@ -35,6 +35,7 @@ "led_count": 9, "sleep": true }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0002", diff --git a/keyboards/kwstudio/scorpio_rev2/keyboard.json b/keyboards/kwstudio/scorpio_rev2/keyboard.json index b4cf901d1f..d1b41b1d4f 100644 --- a/keyboards/kwstudio/scorpio_rev2/keyboard.json +++ b/keyboards/kwstudio/scorpio_rev2/keyboard.json @@ -38,6 +38,7 @@ "led_count": 9, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/kwub/bloop/keyboard.json b/keyboards/kwub/bloop/keyboard.json index a5486926b3..2889ef1598 100644 --- a/keyboards/kwub/bloop/keyboard.json +++ b/keyboards/kwub/bloop/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json index e1b94dfa4e..da53de3da5 100644 --- a/keyboards/labbe/labbeminiv1/keyboard.json +++ b/keyboards/labbe/labbeminiv1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Labbe Mini V1", "manufacturer": "Labbe", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xABBE", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/labyrinth75/keyboard.json b/keyboards/labyrinth75/keyboard.json index 8e7326fa35..1e70a8318d 100644 --- a/keyboards/labyrinth75/keyboard.json +++ b/keyboards/labyrinth75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "labyrinth75", "manufacturer": "Livi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4F53", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/laneware/lpad/keyboard.json b/keyboards/laneware/lpad/keyboard.json index cf1b297fd8..464205846b 100644 --- a/keyboards/laneware/lpad/keyboard.json +++ b/keyboards/laneware/lpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "L-PAD", "manufacturer": "Laneware Peripherals", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", @@ -11,6 +12,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/lw67/keyboard.json b/keyboards/laneware/lw67/keyboard.json index 6e3f09e500..e48506f58e 100644 --- a/keyboards/laneware/lw67/keyboard.json +++ b/keyboards/laneware/lw67/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LW-67", "manufacturer": "Laneware Peripherals", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/lw75/keyboard.json b/keyboards/laneware/lw75/keyboard.json index a61e4396cd..27601d1e28 100644 --- a/keyboards/laneware/lw75/keyboard.json +++ b/keyboards/laneware/lw75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LW-75", "manufacturer": "Laneware Peripherals", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/macro1/keyboard.json b/keyboards/laneware/macro1/keyboard.json index ded25130a0..a432db5915 100644 --- a/keyboards/laneware/macro1/keyboard.json +++ b/keyboards/laneware/macro1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MACRO-1", "manufacturer": "Laneware Peripherals", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/raindrop/keyboard.json b/keyboards/laneware/raindrop/keyboard.json index 115bf2fc56..4e5d674b2b 100644 --- a/keyboards/laneware/raindrop/keyboard.json +++ b/keyboards/laneware/raindrop/keyboard.json @@ -19,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "qmk": { diff --git a/keyboards/large_lad/keyboard.json b/keyboards/large_lad/keyboard.json deleted file mode 100644 index e983d53939..0000000000 --- a/keyboards/large_lad/keyboard.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "manufacturer": "DIY (open source)", - "keyboard_name": "Large Lad", - "maintainer": "Hyphen-ated", - "bootmagic": { - "matrix": [11, 12] - }, - "development_board": "blackpill_f411", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B7", "pin_b": "A0"} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "encoder": true - }, - "matrix_pins": { - "cols": ["A2", "A1", "C13", "C14", "C15", "A5", "A6", "B0", "B3", "B8", "A15", "A8", "B15"], - "rows": ["B5", "B6", "B4", "B9", "A4", "A3", "A7", "B1", "B10", "B12", "B13", "B14"] - }, - "url": "https://github.com/Hyphen-ated/large-lad-keyboard", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "L1", "matrix": [11, 12], "x": 0, "y": 0}, - {"label": "L2", "matrix": [11, 11], "x": 1, "y": 0}, - {"label": "L3", "matrix": [11, 6], "x": 2, "y": 0}, - {"label": "F13", "matrix": [11, 5], "x": 5.25, "y": 0}, - {"label": "F14", "matrix": [11, 4], "x": 6.25, "y": 0}, - {"label": "F15", "matrix": [11, 3], "x": 7.25, "y": 0}, - {"label": "F16", "matrix": [11, 2], "x": 8.25, "y": 0}, - {"label": "F17", "matrix": [11, 1], "x": 9.75, "y": 0}, - {"label": "F18", "matrix": [11, 0], "x": 10.75, "y": 0}, - {"label": "F19", "matrix": [0, 12], "x": 11.75, "y": 0}, - {"label": "F20", "matrix": [0, 11], "x": 12.75, "y": 0}, - {"label": "F21", "matrix": [0, 10], "x": 14.25, "y": 0}, - {"label": "F22", "matrix": [0, 9], "x": 15.25, "y": 0}, - {"label": "F23", "matrix": [0, 8], "x": 16.25, "y": 0}, - {"label": "F24", "matrix": [0, 7], "x": 17.25, "y": 0}, - {"label": "R1", "matrix": [0, 6], "x": 18.5, "y": 0}, - {"label": "R2", "matrix": [0, 5], "x": 19.5, "y": 0}, - {"label": "R3", "matrix": [0, 4], "x": 20.5, "y": 0}, - {"label": "R4", "matrix": [0, 3], "x": 21.75, "y": 0}, - {"label": "R5", "matrix": [0, 2], "x": 22.75, "y": 0}, - {"label": "R6", "matrix": [0, 1], "x": 23.75, "y": 0}, - {"label": "R7", "matrix": [0, 0], "x": 24.75, "y": 0}, - {"label": "L4", "matrix": [11, 7], "x": 0, "y": 1}, - {"label": "L5", "matrix": [10, 12], "x": 1, "y": 1}, - {"label": "L6", "matrix": [10, 11], "x": 2, "y": 1}, - {"label": "Esc", "matrix": [10, 6], "x": 3.25, "y": 1}, - {"label": "F1", "matrix": [10, 5], "x": 5.25, "y": 1}, - {"label": "F2", "matrix": [10, 4], "x": 6.25, "y": 1}, - {"label": "F3", "matrix": [10, 3], "x": 7.25, "y": 1}, - {"label": "F4", "matrix": [10, 2], "x": 8.25, "y": 1}, - {"label": "F5", "matrix": [10, 1], "x": 9.75, "y": 1}, - {"label": "F6", "matrix": [10, 0], "x": 10.75, "y": 1}, - {"label": "F7", "matrix": [1, 12], "x": 11.75, "y": 1}, - {"label": "F8", "matrix": [1, 11], "x": 12.75, "y": 1}, - {"label": "F9", "matrix": [1, 10], "x": 14.25, "y": 1}, - {"label": "F10", "matrix": [1, 9], "x": 15.25, "y": 1}, - {"label": "F11", "matrix": [1, 8], "x": 16.25, "y": 1}, - {"label": "F12", "matrix": [1, 7], "x": 17.25, "y": 1}, - {"label": "PrtSc", "matrix": [1, 6], "x": 18.5, "y": 1}, - {"label": "Scroll Lock", "matrix": [1, 5], "x": 19.5, "y": 1}, - {"label": "Pause", "matrix": [1, 4], "x": 20.5, "y": 1}, - {"label": "R8", "matrix": [1, 3], "x": 21.75, "y": 1}, - {"label": "R9", "matrix": [1, 2], "x": 22.75, "y": 1}, - {"label": "R10", "matrix": [1, 1], "x": 23.75, "y": 1}, - {"label": "R11", "matrix": [1, 0], "x": 24.75, "y": 1}, - {"label": "L7", "matrix": [11, 8], "x": 0, "y": 2.25}, - {"label": "L8", "matrix": [10, 7], "x": 1, "y": 2.25}, - {"label": "L9", "matrix": [9, 12], "x": 2, "y": 2.25}, - {"label": "~", "matrix": [9, 11], "x": 3.25, "y": 2.5}, - {"label": "!", "matrix": [9, 6], "x": 4.25, "y": 2.5}, - {"label": "@", "matrix": [9, 5], "x": 5.25, "y": 2.5}, - {"label": "#", "matrix": [9, 4], "x": 6.25, "y": 2.5}, - {"label": "$", "matrix": [9, 3], "x": 7.25, "y": 2.5}, - {"label": "%", "matrix": [9, 2], "x": 8.25, "y": 2.5}, - {"label": "^", "matrix": [9, 1], "x": 9.25, "y": 2.5}, - {"label": "&", "matrix": [9, 0], "x": 10.25, "y": 2.5}, - {"label": "*", "matrix": [2, 12], "x": 11.25, "y": 2.5}, - {"label": "(", "matrix": [2, 11], "x": 12.25, "y": 2.5}, - {"label": ")", "matrix": [2, 10], "x": 13.25, "y": 2.5}, - {"label": "_", "matrix": [2, 9], "x": 14.25, "y": 2.5}, - {"label": "+", "matrix": [2, 8], "x": 15.25, "y": 2.5}, - {"label": "Backspace", "matrix": [2, 7], "x": 16.25, "y": 2.5, "w": 2}, - {"label": "Insert", "matrix": [2, 6], "x": 18.5, "y": 2.5}, - {"label": "Home", "matrix": [2, 5], "x": 19.5, "y": 2.5}, - {"label": "PgUp", "matrix": [2, 4], "x": 20.5, "y": 2.5}, - {"label": "Num Lock", "matrix": [2, 3], "x": 21.75, "y": 2.5}, - {"label": "/", "matrix": [2, 2], "x": 22.75, "y": 2.5}, - {"label": "*", "matrix": [2, 1], "x": 23.75, "y": 2.5}, - {"label": "-", "matrix": [2, 0], "x": 24.75, "y": 2.5}, - {"label": "L10", "matrix": [10, 8], "x": 0, "y": 3.25}, - {"label": "L11", "matrix": [9, 7], "x": 1, "y": 3.25}, - {"label": "L12", "matrix": [8, 12], "x": 2, "y": 3.25}, - {"label": "Tab", "matrix": [8, 11], "x": 3.25, "y": 3.5, "w": 1.5}, - {"label": "Q", "matrix": [8, 6], "x": 4.75, "y": 3.5}, - {"label": "W", "matrix": [8, 5], "x": 5.75, "y": 3.5}, - {"label": "E", "matrix": [8, 4], "x": 6.75, "y": 3.5}, - {"label": "R", "matrix": [8, 3], "x": 7.75, "y": 3.5}, - {"label": "T", "matrix": [8, 2], "x": 8.75, "y": 3.5}, - {"label": "Y", "matrix": [8, 1], "x": 9.75, "y": 3.5}, - {"label": "U", "matrix": [8, 0], "x": 10.75, "y": 3.5}, - {"label": "I", "matrix": [3, 12], "x": 11.75, "y": 3.5}, - {"label": "O", "matrix": [3, 11], "x": 12.75, "y": 3.5}, - {"label": "P", "matrix": [3, 10], "x": 13.75, "y": 3.5}, - {"label": "{", "matrix": [3, 9], "x": 14.75, "y": 3.5}, - {"label": "}", "matrix": [3, 8], "x": 15.75, "y": 3.5}, - {"label": "|", "matrix": [3, 7], "x": 16.75, "y": 3.5, "w": 1.5}, - {"label": "Delete", "matrix": [3, 6], "x": 18.5, "y": 3.5}, - {"label": "End", "matrix": [3, 5], "x": 19.5, "y": 3.5}, - {"label": "PgDn", "matrix": [3, 4], "x": 20.5, "y": 3.5}, - {"label": "7", "matrix": [3, 3], "x": 21.75, "y": 3.5}, - {"label": "8", "matrix": [3, 2], "x": 22.75, "y": 3.5}, - {"label": "9", "matrix": [3, 1], "x": 23.75, "y": 3.5}, - {"label": "+", "matrix": [3, 0], "x": 24.75, "y": 3.5, "h": 2}, - {"label": "L13", "matrix": [9, 8], "x": 0, "y": 4.25}, - {"label": "L14", "matrix": [8, 7], "x": 1, "y": 4.25}, - {"label": "L15", "matrix": [7, 12], "x": 2, "y": 4.25}, - {"label": "Caps Lock", "matrix": [7, 6], "x": 3.25, "y": 4.5, "w": 1.75}, - {"label": "A", "matrix": [7, 5], "x": 5, "y": 4.5}, - {"label": "S", "matrix": [7, 4], "x": 6, "y": 4.5}, - {"label": "D", "matrix": [7, 3], "x": 7, "y": 4.5}, - {"label": "F", "matrix": [7, 2], "x": 8, "y": 4.5}, - {"label": "G", "matrix": [7, 1], "x": 9, "y": 4.5}, - {"label": "H", "matrix": [7, 0], "x": 10, "y": 4.5}, - {"label": "J", "matrix": [4, 12], "x": 11, "y": 4.5}, - {"label": "K", "matrix": [4, 11], "x": 12, "y": 4.5}, - {"label": "L", "matrix": [4, 10], "x": 13, "y": 4.5}, - {"label": ":", "matrix": [4, 9], "x": 14, "y": 4.5}, - {"label": "\"", "matrix": [4, 8], "x": 15, "y": 4.5}, - {"label": "Enter", "matrix": [4, 7], "x": 16, "y": 4.5, "w": 2.25}, - {"label": "4", "matrix": [4, 3], "x": 21.75, "y": 4.5}, - {"label": "5", "matrix": [4, 2], "x": 22.75, "y": 4.5}, - {"label": "6", "matrix": [4, 1], "x": 23.75, "y": 4.5}, - {"label": "L16", "matrix": [8, 8], "x": 0, "y": 5.5}, - {"label": "L17", "matrix": [7, 7], "x": 1, "y": 5.5}, - {"label": "L18", "matrix": [6, 12], "x": 2, "y": 5.5}, - {"label": "Shift", "matrix": [7, 11], "x": 3.25, "y": 5.5, "w": 2.25}, - {"label": "Z", "matrix": [6, 5], "x": 5.5, "y": 5.5}, - {"label": "X", "matrix": [6, 3], "x": 6.5, "y": 5.5}, - {"label": "C", "matrix": [6, 2], "x": 7.5, "y": 5.5}, - {"label": "V", "matrix": [6, 1], "x": 8.5, "y": 5.5}, - {"label": "B", "matrix": [6, 0], "x": 9.5, "y": 5.5}, - {"label": "N", "matrix": [5, 12], "x": 10.5, "y": 5.5}, - {"label": "M", "matrix": [5, 11], "x": 11.5, "y": 5.5}, - {"label": "<", "matrix": [5, 10], "x": 12.5, "y": 5.5}, - {"label": ">", "matrix": [5, 9], "x": 13.5, "y": 5.5}, - {"label": "?", "matrix": [5, 8], "x": 14.5, "y": 5.5}, - {"label": "Shift", "matrix": [5, 7], "x": 15.5, "y": 5.5, "w": 2.75}, - {"label": "Up", "matrix": [4, 5], "x": 19.5, "y": 5.5}, - {"label": "1", "matrix": [5, 3], "x": 21.75, "y": 5.5}, - {"label": "2", "matrix": [5, 2], "x": 22.75, "y": 5.5}, - {"label": "3", "matrix": [5, 1], "x": 23.75, "y": 5.5}, - {"label": "Enter", "matrix": [4, 0], "x": 24.75, "y": 5.5, "h": 2}, - {"label": "L19", "matrix": [7, 8], "x": 0, "y": 6.5}, - {"label": "L20", "matrix": [8, 9], "x": 1, "y": 6.5}, - {"label": "L21", "matrix": [7, 9], "x": 2, "y": 6.5}, - {"label": "Ctrl", "matrix": [6, 11], "x": 3.25, "y": 6.5, "w": 1.25}, - {"label": "Win", "matrix": [6, 6], "x": 4.5, "y": 6.5, "w": 1.25}, - {"label": "Alt", "matrix": [6, 4], "x": 5.75, "y": 6.5, "w": 1.25}, - {"label": "Space", "matrix": [6, 10], "x": 7, "y": 6.5, "w": 6.25}, - {"label": "Alt", "matrix": [6, 9], "x": 13.25, "y": 6.5, "w": 1.25}, - {"label": "Win", "matrix": [6, 8], "x": 14.5, "y": 6.5, "w": 1.25}, - {"label": "Menu", "matrix": [6, 7], "x": 15.75, "y": 6.5, "w": 1.25}, - {"label": "Ctrl", "matrix": [5, 6], "x": 17, "y": 6.5, "w": 1.25}, - {"label": "Left", "matrix": [4, 6], "x": 18.5, "y": 6.5}, - {"label": "Down", "matrix": [5, 5], "x": 19.5, "y": 6.5}, - {"label": "Right", "matrix": [4, 4], "x": 20.5, "y": 6.5}, - {"label": "0", "matrix": [5, 4], "x": 21.75, "y": 6.5, "w": 2}, - {"label": ".", "matrix": [5, 0], "x": 23.75, "y": 6.5} - ] - } - } -} diff --git a/keyboards/large_lad/keymaps/default/keymap.c b/keyboards/large_lad/keymaps/default/keymap.c deleted file mode 100644 index 68c368360f..0000000000 --- a/keyboards/large_lad/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2024 Hyphen-ated (@Hyphen-ated) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ - * │ │ │ │ │F13│F14│F15│F16│ │F17│F18│F19│F20│ │F21│F22│F23│F24│ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┤ ┌───┐ ├───┼───┼───┤───┤ ├───┼───┼───┤───┤ ├───┼───┼───┤───┤ ├───┼───┼───┤ ├───┼───┼───┤───┤ - * │ │ │ │ │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │ │ │ │ │ - * └───┴───┴───┘ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ - * ┌───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ - * │ │ │ │ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ - * ├───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ - * │ │ │ │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ - * ├───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ - * │ │ │ │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ - * ├───┼───┼───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ - * │ │ │ │ │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ - * ├───┼───┼───┤ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ - * │ │ │ │ │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ - * └───┴───┴───┘ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ - */ - [0] = LAYOUT( - KC_NO,KC_NO,KC_NO, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO,KC_NO,KC_NO, 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_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, - - KC_NO,KC_NO,KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_NO,KC_NO,KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_NO,KC_NO,KC_NO, 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_P4, KC_P5, KC_P6, - KC_NO,KC_NO,KC_NO, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_NO,KC_NO,KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ) -}; - -// encoder controls volume by default -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } -}; -#endif diff --git a/keyboards/large_lad/keymaps/default/rules.mk b/keyboards/large_lad/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/large_lad/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/large_lad/readme.md b/keyboards/large_lad/readme.md deleted file mode 100644 index ac9f5a0646..0000000000 --- a/keyboards/large_lad/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# large_lad - -![large_lad](https://i.imgur.com/CQWAD2X.jpg) - -Starts with the standard US 104 key layout and adds more keys on top and on the left. Total of 148 keys, one of which is a rotary encoder. Includes two rows of function keys and a 3x7 grid of keys on the left. No LEDs. - -* Keyboard Maintainer: [Hyphen-ated](https://github.com/Hyphen-ated) -* Hardware Supported: Custom open source PCB. -* Hardware Availability: DIY. PCB and plate design files available at https://github.com/Hyphen-ated/large-lad-keyboard - -Make example for this keyboard (after setting up your build environment): - - make large_lad:default - -Flashing example for this keyboard: - - make large_lad: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 - -To enter the bootloader, there's two buttons to press on the blackpill board. Press and hold BOOT, press and release NRST, then release BOOT. Sometimes this randomly fails and you have to try again. diff --git a/keyboards/laser_ninja/pumpkinpad/keyboard.json b/keyboards/laser_ninja/pumpkinpad/keyboard.json index 9004a411a2..64e62911a6 100644 --- a/keyboards/laser_ninja/pumpkinpad/keyboard.json +++ b/keyboards/laser_ninja/pumpkinpad/keyboard.json @@ -1,11 +1,14 @@ { "keyboard_name": "Pumpkinpad", "manufacturer": "Laser Ninja", + "url": "", "maintainer": "Jels", "processor": "STM32F072", "bootloader": "stm32-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c b/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c index 9250d0d6b8..8b60519b90 100644 --- a/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c +++ b/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c @@ -24,8 +24,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F8, MO(1), KC_F10 ), [1] = LAYOUT( - RM_TOGG, RM_NEXT, RM_PREV, - RM_HUEU, RM_HUED, RM_SATU, RM_SATD, - RM_VALU, RM_VALD, _______ + RGB_TOG, RGB_MOD, RGB_RMOD, + RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, + RGB_VAI, RGB_VAD, _______ ) }; diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json index 6dab2faf68..161672aea4 100644 --- a/keyboards/latincompass/latin17rgb/keyboard.json +++ b/keyboards/latincompass/latin17rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Latin17RGB", "manufacturer": "18438880", + "url": "", "maintainer": "18438880", "usb": { "vid": "0x7C88", @@ -65,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c index 9a421e209d..237f4a6d65 100644 --- a/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_5x4( - RM_TOGG, RM_NEXT, KC_PMNS, _______, + RGB_TOG, RGB_MOD, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, diff --git a/keyboards/latincompass/latin47ble/keyboard.json b/keyboards/latincompass/latin47ble/keyboard.json index f5d53dbbe8..ac07f68152 100644 --- a/keyboards/latincompass/latin47ble/keyboard.json +++ b/keyboards/latincompass/latin47ble/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Latin47BLE", "manufacturer": "latincompass", + "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", diff --git a/keyboards/latincompass/latin60rgb/keyboard.json b/keyboards/latincompass/latin60rgb/keyboard.json index bc28bdf08e..764a7c882a 100644 --- a/keyboards/latincompass/latin60rgb/keyboard.json +++ b/keyboards/latincompass/latin60rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Latin60RGB", "manufacturer": "latincompass", + "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", @@ -109,6 +110,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c index 95654d6feb..763f54c00a 100644 --- a/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c @@ -24,16 +24,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_SPC, KC_PGUP, KC_PGDN ), [1] = LAYOUT_60_latin_hhkb( - RM_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RGB_TOG, 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_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_UP, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,_______, KC_LALT, _______, _______, _______, _______ ), [2] = LAYOUT_60_latin_hhkb( - RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, RM_SPDU, RM_SPDD, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, RGB_SPI, RGB_SPD, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/latincompass/latin64ble/keyboard.json b/keyboards/latincompass/latin64ble/keyboard.json index 3a7a93c4a3..b2563569d3 100644 --- a/keyboards/latincompass/latin64ble/keyboard.json +++ b/keyboards/latincompass/latin64ble/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Latin64BLE", "manufacturer": "latincompass", + "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", diff --git a/keyboards/latincompass/latin6rgb/keyboard.json b/keyboards/latincompass/latin6rgb/keyboard.json index d2708df399..42aa82a030 100644 --- a/keyboards/latincompass/latin6rgb/keyboard.json +++ b/keyboards/latincompass/latin6rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Latin6rgb", "manufacturer": "18438880", + "url": "", "maintainer": "18438880", "usb": { "vid": "0x7C88", diff --git a/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c index efcff4f56a..90b96751ef 100644 --- a/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P4, KC_P5, MO(1), KC_P1, KC_P2, KC_P3), [1] = LAYOUT_numpad_2x3( - RM_TOGG, RM_NEXT, MO(1), + RGB_TOG, RGB_MOD, MO(1), AU_ON, AU_OFF, MI_ON), [2] = LAYOUT_numpad_2x3( KC_P4, KC_P5, MO(1), diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json index 3b4563b1ca..1e2c8ca90c 100644 --- a/keyboards/latincompass/latinpad/keyboard.json +++ b/keyboards/latincompass/latinpad/keyboard.json @@ -44,6 +44,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -65,7 +67,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/latincompass/latinpad/keymaps/default/keymap.c b/keyboards/latincompass/latinpad/keymaps/default/keymap.c index 6d2af556ed..cf966d6826 100644 --- a/keyboards/latincompass/latinpad/keymaps/default/keymap.c +++ b/keyboards/latincompass/latinpad/keymaps/default/keymap.c @@ -17,13 +17,13 @@ * .---------------. * |NUMLOCK|Calc. | * |--------------------------------. - * |RM_TOGG|RM_NEXT|RGB_M_K|RGB_M_X | + * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X | * |-------|-------|-------|--------| - * |RM_SATU|RM_SATD|RM_HUEU|RM_HUED | + * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD | * |-------|-------|-------|--------| - * |RM_VALU|RM_VALD|RM_SPDU|RM_SPDD | + * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD | * |-------|-------|-------|--------| - * |RM_SPDU|RM_SPDD|RM_TOGG|KC_TRNS | + * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS | * .--------------------------------. */ @@ -37,10 +37,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER), [1] = LAYOUT( KC_NUM, KC_CALCULATOR, - RM_TOGG, RM_NEXT, RGB_M_K, RGB_M_X, - RM_SATU, RM_SATD, RM_HUEU, RM_HUED, - RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, - RM_SPDU, RM_SPDD, RM_TOGG, KC_TRNS), + RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X, + RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, + RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, + RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS), }; static void render_logo(void) { diff --git a/keyboards/latincompass/latinpadble/keyboard.json b/keyboards/latincompass/latinpadble/keyboard.json index f99fee5bad..fe35f74e79 100644 --- a/keyboards/latincompass/latinpadble/keyboard.json +++ b/keyboards/latincompass/latinpadble/keyboard.json @@ -11,6 +11,8 @@ "features": { "bluetooth": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/lazydesigners/bolt/keyboard.json b/keyboards/lazydesigners/bolt/keyboard.json index e1254e0de5..c155c852df 100644 --- a/keyboards/lazydesigners/bolt/keyboard.json +++ b/keyboards/lazydesigners/bolt/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/cassette8/keyboard.json b/keyboards/lazydesigners/cassette8/keyboard.json index 55044bd108..623b804efe 100755 --- a/keyboards/lazydesigners/cassette8/keyboard.json +++ b/keyboards/lazydesigners/cassette8/keyboard.json @@ -29,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk new file mode 100644 index 0000000000..cd05623d84 --- /dev/null +++ b/keyboards/lazydesigners/dimple/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lazydesigners/dimple/staggered/rev1 diff --git a/keyboards/lazydesigners/dimpleplus/keyboard.json b/keyboards/lazydesigners/dimpleplus/keyboard.json index 474be8352c..afae905c7b 100644 --- a/keyboards/lazydesigners/dimpleplus/keyboard.json +++ b/keyboards/lazydesigners/dimpleplus/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/the30/keyboard.json b/keyboards/lazydesigners/the30/keyboard.json index 494105db18..64562ada66 100644 --- a/keyboards/lazydesigners/the30/keyboard.json +++ b/keyboards/lazydesigners/the30/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the40/keyboard.json b/keyboards/lazydesigners/the40/keyboard.json index dfefd92593..0e06e16ea8 100644 --- a/keyboards/lazydesigners/the40/keyboard.json +++ b/keyboards/lazydesigners/the40/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/the50/keyboard.json b/keyboards/lazydesigners/the50/keyboard.json index de4ad88219..1039625f06 100644 --- a/keyboards/lazydesigners/the50/keyboard.json +++ b/keyboards/lazydesigners/the50/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the60/rev1/keyboard.json b/keyboards/lazydesigners/the60/rev1/keyboard.json index 8fd9df1559..815cf8e04d 100755 --- a/keyboards/lazydesigners/the60/rev1/keyboard.json +++ b/keyboards/lazydesigners/the60/rev1/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the60/rev2/keyboard.json b/keyboards/lazydesigners/the60/rev2/keyboard.json index 1b2c32b737..f9a0fd95b5 100755 --- a/keyboards/lazydesigners/the60/rev2/keyboard.json +++ b/keyboards/lazydesigners/the60/rev2/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/leafcutterlabs/bigknob/keyboard.json b/keyboards/leafcutterlabs/bigknob/keyboard.json index c1f3e12f03..8250f7eb61 100644 --- a/keyboards/leafcutterlabs/bigknob/keyboard.json +++ b/keyboards/leafcutterlabs/bigknob/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "bigKNOB", "manufacturer": "leafcutterlabs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", @@ -34,6 +35,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/leeku/finger65/keyboard.json b/keyboards/leeku/finger65/keyboard.json index cba7adea66..c9b7338856 100644 --- a/keyboards/leeku/finger65/keyboard.json +++ b/keyboards/leeku/finger65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Finger65", "manufacturer": "LeeKu", + "url": "", "maintainer": "sidcarter", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/leftpaw/keyboard.json b/keyboards/leftpaw/keyboard.json deleted file mode 100644 index 34fea17b37..0000000000 --- a/keyboards/leftpaw/keyboard.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "manufacturer": "Ryan Chomistek", - "keyboard_name": "leftpaw", - "maintainer": "Ryan Chomistek", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP21", "GP22", "GP26", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], - "rows": ["GP20", "GP19", "GP18", "GP17", "GP16"] - }, - "processor": "RP2040", - "url": "https://github.com/RyanChomistek/lefty", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Num Lock", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "/", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "*", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "-", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "esc", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "!", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "@", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "#", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "$", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "%", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "^", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "&", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "*", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "(", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": ")", "matrix": [0, 14], "x": 14.25, "y": 0}, - {"label": "_", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "+", "matrix": [0, 16], "x": 16.25, "y": 0}, - {"label": "Backspace", "matrix": [0, 17], "x": 17.25, "y": 0, "w": 2}, - {"label": "Pg Up", "matrix": [0, 18], "x": 19.5, "y": 0}, - {"label": "7", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "8", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "9", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "+", "matrix": [1, 3], "x": 3, "y": 1, "h": 2}, - {"label": "Tab", "matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "W", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "E", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "R", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "T", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "Y", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "U", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "I", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "O", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "P", "matrix": [1, 14], "x": 14.75, "y": 1}, - {"label": "{", "matrix": [1, 15], "x": 15.75, "y": 1}, - {"label": "}", "matrix": [1, 16], "x": 16.75, "y": 1}, - {"label": "|", "matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5}, - {"label": "Pg Dn", "matrix": [1, 18], "x": 19.5, "y": 1}, - {"label": "4", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "5", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "6", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "S", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "D", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "F", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "G", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "H", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": "J", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "K", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "L", "matrix": [2, 13], "x": 14, "y": 2}, - {"label": ":", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "\"", "matrix": [2, 15], "x": 16, "y": 2}, - {"label": "Enter", "matrix": [2, 17], "x": 17, "y": 2, "w": 2.25}, - {"label": "Delete", "matrix": [2, 18], "x": 19.5, "y": 2}, - {"label": "1", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "2", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "3", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "Enter", "matrix": [3, 3], "x": 3, "y": 3, "h": 2}, - {"label": "Shift", "matrix": [3, 4], "x": 4.25, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 5], "x": 6.5, "y": 3}, - {"label": "X", "matrix": [3, 6], "x": 7.5, "y": 3}, - {"label": "C", "matrix": [3, 7], "x": 8.5, "y": 3}, - {"label": "V", "matrix": [3, 8], "x": 9.5, "y": 3}, - {"label": "B", "matrix": [3, 9], "x": 10.5, "y": 3}, - {"label": "N", "matrix": [3, 10], "x": 11.5, "y": 3}, - {"label": "M", "matrix": [3, 11], "x": 12.5, "y": 3}, - {"label": "<", "matrix": [3, 12], "x": 13.5, "y": 3}, - {"label": ">", "matrix": [3, 13], "x": 14.5, "y": 3}, - {"label": "?", "matrix": [3, 14], "x": 15.5, "y": 3}, - {"label": "Shift", "matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.5}, - {"label": "\u2191", "matrix": [3, 17], "x": 18.5, "y": 3.25}, - {"label": "0", "matrix": [4, 0], "x": 0, "y": 4, "w": 2}, - {"label": ".", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "Ctrl", "matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25}, - {"matrix": [4, 9], "x": 8, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 13], "x": 14.25, "y": 4}, - {"label": "Win", "matrix": [4, 14], "x": 15.25, "y": 4}, - {"label": "Ctrl", "matrix": [4, 15], "x": 16.25, "y": 4}, - {"label": "\u2190", "matrix": [4, 16], "x": 17.5, "y": 4.25}, - {"label": "\u2193", "matrix": [4, 17], "x": 18.5, "y": 4.25}, - {"label": "\u2192", "matrix": [4, 18], "x": 19.5, "y": 4.25} - ] - } - } -} diff --git a/keyboards/leftpaw/keymaps/default/keymap.c b/keyboards/leftpaw/keymaps/default/keymap.c deleted file mode 100644 index 197e87ea94..0000000000 --- a/keyboards/leftpaw/keymaps/default/keymap.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2025 Ryan Chomistek - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - KC_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_GRAVE, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, - KC_KP_4, KC_KP_5, KC_KP_6, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENTER, KC_DELETE, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, - KC_KP_0, KC_KP_DOT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - [1] = LAYOUT( - // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_KB_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - -}; diff --git a/keyboards/leftpaw/readme.md b/keyboards/leftpaw/readme.md deleted file mode 100644 index 9a58aafab9..0000000000 --- a/keyboards/leftpaw/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# leftpaw - -A 76% keyboard with a numpad on the left hand side - -* Keyboard Maintainer: [Ryan Chomistek](https://github.com/RyanChomistek) -* Hardware Supported: RP2040 -* Hardware Availability: [PCB Files](https://github.com/RyanChomistek/lefty) and [Case Files](https://www.printables.com/model/1310397-leftpaw-keyboard) - -Make example for this keyboard (after setting up your build environment): - - make leftpaw:default - -Flashing example for this keyboard: - - make leftpaw:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/lendunistus/rpneko65/rev1/config.h b/keyboards/lendunistus/rpneko65/rev1/config.h new file mode 100644 index 0000000000..6786155fbf --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 lendunistus +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define CAPS_LOCK_ENABLE true diff --git a/keyboards/lendunistus/rpneko65/rev1/keyboard.json b/keyboards/lendunistus/rpneko65/rev1/keyboard.json index 20fed0a14b..29682cf2a7 100644 --- a/keyboards/lendunistus/rpneko65/rev1/keyboard.json +++ b/keyboards/lendunistus/rpneko65/rev1/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -22,14 +24,10 @@ "url": "https://github.com/lendunistus/rpneko65", "usb": { "device_version": "1.0.0", + "force_nkro": true, "pid": "0x0001", "vid": "0x6C75" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "driver": "vendor", "pin": "GP18" diff --git a/keyboards/lendunistus/rpneko65/rev1/rev1.c b/keyboards/lendunistus/rpneko65/rev1/rev1.c index a542dc6b31..2cb9cf07f8 100644 --- a/keyboards/lendunistus/rpneko65/rev1/rev1.c +++ b/keyboards/lendunistus/rpneko65/rev1/rev1.c @@ -16,10 +16,6 @@ along with this program. If not, see . */ #include "quantum.h" -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif - bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if (CAPS_LOCK_ENABLE && res) { diff --git a/keyboards/lets_split/info.json b/keyboards/lets_split/info.json index dc46a7eb66..a92a948abd 100644 --- a/keyboards/lets_split/info.json +++ b/keyboards/lets_split/info.json @@ -1,5 +1,7 @@ { + "url": "", "maintainer": "qmk", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x12"] } diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 1c7405f2ac..4eec2e02ac 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -13,14 +13,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -136,3 +138,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk new file mode 100644 index 0000000000..0fb6d36204 --- /dev/null +++ b/keyboards/lets_split/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lets_split/rev2 diff --git a/keyboards/lfkeyboards/lfk78/revb/keyboard.json b/keyboards/lfkeyboards/lfk78/revb/keyboard.json index d5c4656928..a4c0d83902 100644 --- a/keyboards/lfkeyboards/lfk78/revb/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LFK78 Rev B", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk78/revc/keyboard.json b/keyboards/lfkeyboards/lfk78/revc/keyboard.json index 0906307fe7..56ab9b49be 100644 --- a/keyboards/lfkeyboards/lfk78/revc/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LFK7 Rev C-H", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk78/revj/keyboard.json b/keyboards/lfkeyboards/lfk78/revj/keyboard.json index 2657a21b8c..df8ac8d0f6 100644 --- a/keyboards/lfkeyboards/lfk78/revj/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revj/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LFK78 Rev J", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk new file mode 100644 index 0000000000..5ebd387c83 --- /dev/null +++ b/keyboards/lfkeyboards/lfk78/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lfkeyboards/lfk78/revj diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index a0c0b2bcc0..9b10936df8 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -1,10 +1,13 @@ { "keyboard_name": "LFK87", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk new file mode 100644 index 0000000000..05b80ac74a --- /dev/null +++ b/keyboards/lfkeyboards/lfk87/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lfkeyboards/lfk78/revc diff --git a/keyboards/lfkeyboards/lfkpad/keyboard.json b/keyboards/lfkeyboards/lfkpad/keyboard.json index dc638cbfa9..6de415b8e0 100644 --- a/keyboards/lfkeyboards/lfkpad/keyboard.json +++ b/keyboards/lfkeyboards/lfkpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LFKPad", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c index 6a5eae6b26..05f42b8b98 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c @@ -13,11 +13,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB */ [1] = LAYOUT_numpad_6x4( - RM_SATU, RM_VALU, RM_HUEU, _______, - RM_SATD, RM_VALD, RM_HUED, _______, - RGB_M_X, RGB_M_G, RM_NEXT, - RGB_M_SW,RGB_M_SN,RGB_M_K, RM_PREV, + RGB_SAI, RGB_VAI, RGB_HUI, _______, + RGB_SAD, RGB_VAD, RGB_HUD, _______, + RGB_M_X, RGB_M_G, RGB_MOD, + RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_RMOD, RGB_M_P, RGB_M_B, RGB_M_R, - XXXXXXX, XXXXXXX, RM_TOGG + XXXXXXX, XXXXXXX, RGB_TOG ) }; diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index a7ee5324b6..35bb1c15a8 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mini1800", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "lfkeyboards", "usb": { "vid": "0xFEED", diff --git a/keyboards/lfkeyboards/smk65/info.json b/keyboards/lfkeyboards/smk65/info.json index d1ce471242..0ecbf2ab95 100644 --- a/keyboards/lfkeyboards/smk65/info.json +++ b/keyboards/lfkeyboards/smk65/info.json @@ -1,9 +1,11 @@ { "keyboard_name": "SMK65v2", "manufacturer": "LFKeyboards", + "url": "", "maintainer": "qmk", "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/lfkeyboards/smk65/revf/keyboard.json b/keyboards/lfkeyboards/smk65/revf/keyboard.json index 1dd58441fc..4e8a44d3bc 100644 --- a/keyboards/lfkeyboards/smk65/revf/keyboard.json +++ b/keyboards/lfkeyboards/smk65/revf/keyboard.json @@ -133,7 +133,7 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, diff --git a/keyboards/lfkeyboards/smk65/rules.mk b/keyboards/lfkeyboards/smk65/rules.mk new file mode 100644 index 0000000000..b2d7497663 --- /dev/null +++ b/keyboards/lfkeyboards/smk65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lfkeyboards/smk65/revb diff --git a/keyboards/lgbtkl/keyboard.json b/keyboards/lgbtkl/keyboard.json index 51411f2b2a..a3f126e862 100644 --- a/keyboards/lgbtkl/keyboard.json +++ b/keyboards/lgbtkl/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lily58/glow_enc/keyboard.json b/keyboards/lily58/glow_enc/keyboard.json index 63ee5b6a99..9f7a2760aa 100644 --- a/keyboards/lily58/glow_enc/keyboard.json +++ b/keyboards/lily58/glow_enc/keyboard.json @@ -44,7 +44,8 @@ "max_brightness": 120, "split_count": [36, 36] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "build": { "lto": true }, diff --git a/keyboards/lily58/keymaps/default/keymap.c b/keyboards/lily58/keymaps/default/keymap.c index 7e34752f2d..44288d39d0 100644 --- a/keyboards/lily58/keymaps/default/keymap.c +++ b/keyboards/lily58/keymaps/default/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ | + * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | | | | | | |-------| |-------| | _ | + | { | } | | | * `-----------------------------------------/ / \ \-----------------------------------------' diff --git a/keyboards/lily58/light/keyboard.json b/keyboards/lily58/light/keyboard.json index 738a9418a6..0eadf11eb6 100644 --- a/keyboards/lily58/light/keyboard.json +++ b/keyboards/lily58/light/keyboard.json @@ -45,7 +45,8 @@ "max_brightness": 120, "split_count": [35, 35] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "build": { "lto": true }, diff --git a/keyboards/lily58/lite_rev3/config.h b/keyboards/lily58/lite_rev3/config.h deleted file mode 100644 index 9d2d289f5b..0000000000 --- a/keyboards/lily58/lite_rev3/config.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2023 yuchi -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 - -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP14 -#define I2C1_SCL_PIN GP15 diff --git a/keyboards/lily58/lite_rev3/halconf.h b/keyboards/lily58/lite_rev3/halconf.h deleted file mode 100644 index 4639740d44..0000000000 --- a/keyboards/lily58/lite_rev3/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next \ No newline at end of file diff --git a/keyboards/lily58/lite_rev3/keyboard.json b/keyboards/lily58/lite_rev3/keyboard.json deleted file mode 100644 index 839cf4fe78..0000000000 --- a/keyboards/lily58/lite_rev3/keyboard.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "keyboard_name": "Lily58 Lite Rev3", - "manufacturer": "Liliums", - "maintainer": "yuchi", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "usb": { - "vid": "0x1209", - "pid": "0x5801", - "device_version": "1.0.0" - }, - "split": { - "enabled": true, - "serial": { - "driver": "vendor" - } - }, - "matrix_pins": { - "cols": ["GP3", "GP4", "GP5", "GP6", "GP7", "GP8"], - "rows": ["GP13", "GP12", "GP11", "GP10", "GP9"] - }, - "features": { - "oled": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - - {"matrix": [5, 5], "x": 10.5, "y": 0.25}, - {"matrix": [5, 4], "x": 11.5, "y": 0.125}, - {"matrix": [5, 3], "x": 12.5, "y": 0}, - {"matrix": [5, 2], "x": 13.5, "y": 0.125}, - {"matrix": [5, 1], "x": 14.5, "y": 0.375}, - {"matrix": [5, 0], "x": 15.5, "y": 0.5}, - - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - - {"matrix": [6, 5], "x": 10.5, "y": 1.25}, - {"matrix": [6, 4], "x": 11.5, "y": 1.125}, - {"matrix": [6, 3], "x": 12.5, "y": 1}, - {"matrix": [6, 2], "x": 13.5, "y": 1.125}, - {"matrix": [6, 1], "x": 14.5, "y": 1.375}, - {"matrix": [6, 0], "x": 15.5, "y": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2.5}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - - {"matrix": [7, 5], "x": 10.5, "y": 2.25}, - {"matrix": [7, 4], "x": 11.5, "y": 2.125}, - {"matrix": [7, 3], "x": 12.5, "y": 2}, - {"matrix": [7, 2], "x": 13.5, "y": 2.125}, - {"matrix": [7, 1], "x": 14.5, "y": 2.375}, - {"matrix": [7, 0], "x": 15.5, "y": 2.5}, - - {"matrix": [3, 0], "x": 0, "y": 3.5}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6, "y": 2.75}, - - {"matrix": [9, 5], "x": 9.5, "y": 2.75}, - {"matrix": [8, 5], "x": 10.5, "y": 3.25}, - {"matrix": [8, 4], "x": 11.5, "y": 3.125}, - {"matrix": [8, 3], "x": 12.5, "y": 3}, - {"matrix": [8, 2], "x": 13.5, "y": 3.125}, - {"matrix": [8, 1], "x": 14.5, "y": 3.375}, - {"matrix": [8, 0], "x": 15.5, "y": 3.5}, - - {"matrix": [4, 1], "x": 2.5, "y": 4.125}, - {"matrix": [4, 2], "x": 3.5, "y": 4.15}, - {"matrix": [4, 3], "x": 4.5, "y": 4.25}, - {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, - - {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, - {"matrix": [9, 3], "x": 11, "y": 4.25}, - {"matrix": [9, 2], "x": 12, "y": 4.15}, - {"matrix": [9, 1], "x": 13, "y": 4.15} - ] - } - } -} diff --git a/keyboards/lily58/lite_rev3/mcuconf.h b/keyboards/lily58/lite_rev3/mcuconf.h deleted file mode 100644 index 432c72853a..0000000000 --- a/keyboards/lily58/lite_rev3/mcuconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 FALSE - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/lily58/lite_rev3/readme.md b/keyboards/lily58/lite_rev3/readme.md deleted file mode 100644 index 54ce6229d1..0000000000 --- a/keyboards/lily58/lite_rev3/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Lily58 Lite Rev3 - -![lily58_lite](https://i.imgur.com/RCx5Xym.jpeg) -![lily58_lite_rev3_pcb](https://i.imgur.com/rIjVjCE.png) - - -* Keyboard Maintainer: [yuchi](https://github.com/kata0510) -* Hardware Supported: RP2040-Zero -* Hardware Availability: [PCB Link](https://github.com/kata0510/Lily58/tree/master/Lite_Rev3) -* Other Information(ja) [Link](https://docs.liliums.net/lily58-lite-rev3/about/) - -Make example for this keyboard (after setting up your build environment): - - make lily58/lite_rev3:default - -Flashing example for this keyboard: - - make lily58/lite_rev3:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/lily58/r2g/keyboard.json b/keyboards/lily58/r2g/keyboard.json index 6bd8f7b916..bb825b1d9e 100644 --- a/keyboards/lily58/r2g/keyboard.json +++ b/keyboards/lily58/r2g/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lily58 R2G", "manufacturer": "Mechboards UK", + "url": "", "maintainer": "Elliot Powell", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/lily58/rev1/keyboard.json b/keyboards/lily58/rev1/keyboard.json index f23d4dbaa1..9ee51b8ba3 100644 --- a/keyboards/lily58/rev1/keyboard.json +++ b/keyboards/lily58/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lily58", "manufacturer": "liliums", + "url": "", "maintainer": "liliums", "usb": { "vid": "0x04D8", @@ -27,7 +28,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk new file mode 100644 index 0000000000..a63bd42ad3 --- /dev/null +++ b/keyboards/lily58/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lily58/rev1 diff --git a/keyboards/lime/keymaps/default/keymap.c b/keyboards/lime/keymaps/default/keymap.c index 8f4e6eb8a4..e3e5d5a323 100644 --- a/keyboards/lime/keymaps/default/keymap.c +++ b/keyboards/lime/keymaps/default/keymap.c @@ -30,7 +30,9 @@ enum lime_layers { }; enum custom_keycodes { - KC_LOWER = SAFE_RANGE, + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -45,9 +47,6 @@ enum custom_keycodes { KC_JOYSTICK_DEBUG, }; -#define KC_QWERTY PDF(_QWERTY) -#define KC_COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -481,6 +480,16 @@ bool showedJump = true; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/lime/rev1/keyboard.json b/keyboards/lime/rev1/keyboard.json index b61a91a0da..50fc82ae19 100644 --- a/keyboards/lime/rev1/keyboard.json +++ b/keyboards/lime/rev1/keyboard.json @@ -42,7 +42,8 @@ "qmk": { "tap_keycode_delay": 10 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/lime/rules.mk b/keyboards/lime/rules.mk new file mode 100644 index 0000000000..4643abab93 --- /dev/null +++ b/keyboards/lime/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = lime/rev1 diff --git a/keyboards/linworks/dolice/keyboard.json b/keyboards/linworks/dolice/keyboard.json index ade3b37d0a..6a556db654 100644 --- a/keyboards/linworks/dolice/keyboard.json +++ b/keyboards/linworks/dolice/keyboard.json @@ -5,16 +5,14 @@ "usb": { "vid": "0x4C58", "pid": "0x0005", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/em8/keyboard.json b/keyboards/linworks/em8/keyboard.json index 12b8e8e0a9..cf17b94a4d 100644 --- a/keyboards/linworks/em8/keyboard.json +++ b/keyboards/linworks/em8/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/fave104/keyboard.json b/keyboards/linworks/fave104/keyboard.json index 561293c329..c71fdd5661 100644 --- a/keyboards/linworks/fave104/keyboard.json +++ b/keyboards/linworks/fave104/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FAVE-104", "manufacturer": "Lx3", + "url": "", "maintainer": "keydler", "usb": { "vid": "0x4C58", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/fave10xs/keyboard.json b/keyboards/linworks/fave10xs/keyboard.json deleted file mode 100644 index 9a52638448..0000000000 --- a/keyboards/linworks/fave10xs/keyboard.json +++ /dev/null @@ -1,273 +0,0 @@ -{ - "manufacturer": "Lx3", - "keyboard_name": "Fave10xS", - "maintainer": "Freather", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B10", "A6", "A7", "B0", "B1", "B2", "A13", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "A15", "B3", "B4", "C13", "C14", "C15", "F0"], - "rows": ["A14", "B5", "B7", "B8", "F1", "A0"] - }, - "indicators": { - "caps_lock": "B11", - "scroll_lock": "B9", - "num_lock": "B6" - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "pid": "0x0100", - "vid": "0x4C58" - }, - "community_layouts": ["fullsize_extended_ansi"], - "layouts": { - "LAYOUT_fullsize_extended_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [0, 17], "x": 18.5, "y": 0}, - {"matrix": [0, 18], "x": 19.5, "y": 0}, - {"matrix": [0, 19], "x": 20.5, "y": 0}, - {"matrix": [0, 20], "x": 21.5, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [1, 17], "x": 18.5, "y": 1.25}, - {"matrix": [1, 18], "x": 19.5, "y": 1.25}, - {"matrix": [1, 19], "x": 20.5, "y": 1.25}, - {"matrix": [1, 20], "x": 21.5, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [2, 17], "x": 18.5, "y": 2.25}, - {"matrix": [2, 18], "x": 19.5, "y": 2.25}, - {"matrix": [2, 19], "x": 20.5, "y": 2.25}, - {"matrix": [2, 20], "x": 21.5, "y": 2.25, "h": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 17], "x": 18.5, "y": 3.25}, - {"matrix": [3, 18], "x": 19.5, "y": 3.25}, - {"matrix": [3, 19], "x": 20.5, "y": 3.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [4, 17], "x": 18.5, "y": 4.25}, - {"matrix": [4, 18], "x": 19.5, "y": 4.25}, - {"matrix": [4, 19], "x": 20.5, "y": 4.25}, - {"matrix": [4, 20], "x": 21.5, "y": 4.25, "h": 2}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25}, - {"matrix": [5, 17], "x": 18.5, "y": 5.25, "w": 2}, - {"matrix": [5, 19], "x": 20.5, "y": 5.25} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [0, 17], "x": 18.5, "y": 0}, - {"matrix": [0, 18], "x": 19.5, "y": 0}, - {"matrix": [0, 19], "x": 20.5, "y": 0}, - {"matrix": [0, 20], "x": 21.5, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [2, 13], "x": 14, "y": 1.25}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [1, 17], "x": 18.5, "y": 1.25}, - {"matrix": [1, 18], "x": 19.5, "y": 1.25}, - {"matrix": [1, 19], "x": 20.5, "y": 1.25}, - {"matrix": [1, 20], "x": 21.5, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [2, 17], "x": 18.5, "y": 2.25}, - {"matrix": [2, 18], "x": 19.5, "y": 2.25}, - {"matrix": [2, 19], "x": 20.5, "y": 2.25}, - {"matrix": [2, 20], "x": 21.5, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 17], "x": 18.5, "y": 3.25}, - {"matrix": [3, 18], "x": 19.5, "y": 3.25}, - {"matrix": [3, 19], "x": 20.5, "y": 3.25}, - {"matrix": [3, 20], "x": 21.5, "y": 3.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [4, 17], "x": 18.5, "y": 4.25}, - {"matrix": [4, 18], "x": 19.5, "y": 4.25}, - {"matrix": [4, 19], "x": 20.5, "y": 4.25}, - {"matrix": [4, 20], "x": 21.5, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 4], "x": 3.75, "y": 5.25, "w": 2.25}, - {"matrix": [5, 6], "x": 6, "y": 5.25, "w": 1.25}, - {"matrix": [5, 8], "x": 7.25, "y": 5.25, "w": 2.75}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25}, - {"matrix": [5, 17], "x": 18.5, "y": 5.25}, - {"matrix": [5, 18], "x": 19.5, "y": 5.25}, - {"matrix": [5, 19], "x": 20.5, "y": 5.25}, - {"matrix": [5, 20], "x": 21.5, "y": 5.25} - ] - } - } -} diff --git a/keyboards/linworks/fave10xs/keymaps/default/keymap.c b/keyboards/linworks/fave10xs/keymaps/default/keymap.c deleted file mode 100644 index f55ae86ed0..0000000000 --- a/keyboards/linworks/fave10xs/keymaps/default/keymap.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MNXT, KC_MPRV, KC_VOLU, KC_VOLD, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, KC_PENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_P0, KC_PDOT, KC_PCMM - ) -}; diff --git a/keyboards/linworks/fave10xs/readme.md b/keyboards/linworks/fave10xs/readme.md deleted file mode 100644 index 9a823a9118..0000000000 --- a/keyboards/linworks/fave10xs/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# fave10xs - -![fave10xs](https://i.imgur.com/o4pq0mV.png) - -Dolphin max PCB solder version Fave10xs - -* Keyboard Maintainer: [Freather](https://github.com/Freather) -* Hardware Supported: STM32F072 Linworks Fave10xs PCB -* Hardware Availability: small gb ran in Asia - -Make example for this keyboard (after setting up your build environment): - - make linworks/fave10xs:default - -Flashing example for this keyboard: - - make linworks/fave10xs:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Hold the button on the back of the PCB then plug in the PCB with USB cable -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/linworks/fave60/keyboard.json b/keyboards/linworks/fave60/keyboard.json index ab0f72c3ef..5b9a14b43f 100644 --- a/keyboards/linworks/fave60/keyboard.json +++ b/keyboards/linworks/fave60/keyboard.json @@ -26,6 +26,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -41,20 +43,20 @@ "cols": ["D6", "D4", "B5", "B4", "B6", "C6", "C7", "F4", "F0", "E6", "D1", "D2", "D3", "D5", "B0"], "rows": ["F6", "F7", "D7", "F1", "D0"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000D", "vid": "0x4C58" }, "Layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, "community_layouts": [ "60_ansi", "60_ansi_tsangan", "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi": { @@ -253,7 +255,7 @@ { "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/linworks/fave60a/keyboard.json b/keyboards/linworks/fave60a/keyboard.json index 8a505aaae2..6d59949b23 100644 --- a/keyboards/linworks/fave60a/keyboard.json +++ b/keyboards/linworks/fave60a/keyboard.json @@ -161,21 +161,21 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000C", "vid": "0x4C58" }, "layout_aliases": { - "LAYOUT": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_ansi_tsangan" ], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/linworks/fave60a/keymaps/default/keymap.c b/keyboards/linworks/fave60a/keymaps/default/keymap.c index e683f0c8a6..c77f1b4143 100644 --- a/keyboards/linworks/fave60a/keymaps/default/keymap.c +++ b/keyboards/linworks/fave60a/keymaps/default/keymap.c @@ -16,18 +16,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/linworks/fave65h/keyboard.json b/keyboards/linworks/fave65h/keyboard.json index 212bd0a37b..6e35f55a4b 100644 --- a/keyboards/linworks/fave65h/keyboard.json +++ b/keyboards/linworks/fave65h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FAve 65H", "manufacturer": "Lx3", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x4C58", diff --git a/keyboards/linworks/fave84h/keyboard.json b/keyboards/linworks/fave84h/keyboard.json index 1b6d5516bf..1ca6cb911a 100644 --- a/keyboards/linworks/fave84h/keyboard.json +++ b/keyboards/linworks/fave84h/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -196,6 +198,7 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/linworks/fave84h/keymaps/default/keymap.c b/keyboards/linworks/fave84h/keymaps/default/keymap.c index 3c95786d15..64e5dc07d3 100644 --- a/keyboards/linworks/fave84h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/linworks/fave87/keyboard.json b/keyboards/linworks/fave87/keyboard.json index 132d3b5cbf..9083b8c8ec 100644 --- a/keyboards/linworks/fave87/keyboard.json +++ b/keyboards/linworks/fave87/keyboard.json @@ -5,16 +5,14 @@ "usb": { "vid": "0x4C58", "pid": "0x0002", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/linworks/fave87h/keyboard.json b/keyboards/linworks/fave87h/keyboard.json index 4bb6e42de4..5fb1d4d42a 100644 --- a/keyboards/linworks/fave87h/keyboard.json +++ b/keyboards/linworks/fave87h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "FAve 87H", "manufacturer": "Lx3", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x4C58", diff --git a/keyboards/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c index d3c53b2a0b..f669452b2e 100644 --- a/keyboards/linworks/fave87h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/linworks/favepada/keyboard.json b/keyboards/linworks/favepada/keyboard.json index e468f88779..2b5adcf0a6 100644 --- a/keyboards/linworks/favepada/keyboard.json +++ b/keyboards/linworks/favepada/keyboard.json @@ -107,6 +107,7 @@ "ws2812": { "pin": "B1" }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000B", diff --git a/keyboards/linworks/favepada/keymaps/default/keymap.c b/keyboards/linworks/favepada/keymaps/default/keymap.c index ddeafbb71e..e17d76109a 100644 --- a/keyboards/linworks/favepada/keymaps/default/keymap.c +++ b/keyboards/linworks/favepada/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_6x4( - KC_TRNS, RM_TOGG, RM_NEXT, KC_D, + KC_TRNS, RGB_TOG, RGB_MOD, KC_D, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, diff --git a/keyboards/linworks/whale75/keyboard.json b/keyboards/linworks/whale75/keyboard.json index 19a6ce320d..88598d8e8c 100644 --- a/keyboards/linworks/whale75/keyboard.json +++ b/keyboards/linworks/whale75/keyboard.json @@ -5,12 +5,8 @@ "usb": { "vid": "0x4C58", "pid": "0x0001", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "led_count": 18, @@ -28,6 +24,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/littlealby/mute/keyboard.json b/keyboards/littlealby/mute/keyboard.json index 3ca52491bb..96c2e26a74 100644 --- a/keyboards/littlealby/mute/keyboard.json +++ b/keyboards/littlealby/mute/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mute", "manufacturer": "Little Alby", + "url": "", "maintainer": "albybarber", "usb": { "vid": "0x4142", @@ -18,6 +19,8 @@ "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/littlealby/mute/keymaps/default/keymap.c b/keyboards/littlealby/mute/keymaps/default/keymap.c index 729a6179a2..c6cf9836e3 100644 --- a/keyboards/littlealby/mute/keymaps/default/keymap.c +++ b/keyboards/littlealby/mute/keymaps/default/keymap.c @@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - LSG(KC_A) + SGUI(KC_A) ) }; diff --git a/keyboards/littlealby/mute/keymaps/ms_teams/keymap.c b/keyboards/littlealby/mute/keymaps/ms_teams/keymap.c index 223ccacaf0..bb2cf1147c 100644 --- a/keyboards/littlealby/mute/keymaps/ms_teams/keymap.c +++ b/keyboards/littlealby/mute/keymaps/ms_teams/keymap.c @@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - LSG(KC_M) + SGUI(KC_M) ) }; diff --git a/keyboards/lizard_trick/tenkey_plusplus/keyboard.json b/keyboards/lizard_trick/tenkey_plusplus/keyboard.json index e3828e0674..0877d99885 100644 --- a/keyboards/lizard_trick/tenkey_plusplus/keyboard.json +++ b/keyboards/lizard_trick/tenkey_plusplus/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ll3ma/bongopad/config.h b/keyboards/ll3ma/bongopad/config.h deleted file mode 100644 index c9f7f102de..0000000000 --- a/keyboards/ll3ma/bongopad/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 Ll3ma (@ll3ma) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -/* misc */ -#define LAYER_STATE_8BIT -#define NO_ACTION_TAPPING diff --git a/keyboards/ll3ma/bongopad/keyboard.json b/keyboards/ll3ma/bongopad/keyboard.json deleted file mode 100644 index c3abc03fc9..0000000000 --- a/keyboards/ll3ma/bongopad/keyboard.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "keyboard_name": "BongoPad", - "manufacturer": "Ll3ma", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3ma/bongopad", - "maintainer": "Ll3ma", - "usb": { - "vid": "0x3728", - "pid": "0x2949", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": false, - "nkro": true, - "oled": true, - "wpm": true - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6"], - "rows": ["F7", "D7", "C6", "D4"] - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B1", "pin_b": "B3"} - ] - }, - "bootmagic": { - "matrix": [1, 0] - }, - "rgblight": { - "led_count": 6 - }, - "ws2812": { - "pin": "E6" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_default": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3} - ] - } - } -} diff --git a/keyboards/ll3ma/bongopad/keymaps/default/keymap.c b/keyboards/ll3ma/bongopad/keymaps/default/keymap.c deleted file mode 100644 index 1afcc87cfe..0000000000 --- a/keyboards/ll3ma/bongopad/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2025 Ll3ma (@ll3ma) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -enum layers { - Layer1, - Layer2, - Layer3, - Layer4 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [Layer1] = LAYOUT_default( - KC_MUTE, - KC_7, KC_8, KC_9, - KC_4, KC_5, KC_6, - KC_1, KC_2, KC_3), - - [Layer2] = LAYOUT_default( - KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC), - - [Layer3] = LAYOUT_default( - KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC), - - [Layer4] = LAYOUT_default( - KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC, - KC_SPC, KC_SPC, KC_SPC) - -}; - -// clang-format on - diff --git a/keyboards/ll3ma/bongopad/readme.md b/keyboards/ll3ma/bongopad/readme.md deleted file mode 100644 index 0751ac4fc8..0000000000 --- a/keyboards/ll3ma/bongopad/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# BongoPad - -* Keyboard Maintainer: [Ll3ma](https://github.com/Ll3ma) -* Hardware Supported: Pro micro - -Make example for this keyboard (after setting up your build environment): - - make ll3ma/bongopad:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ll3ma/bongopad/bongopad.c b/keyboards/ll3macorn/bongopad/bongopad.c similarity index 99% rename from keyboards/ll3ma/bongopad/bongopad.c rename to keyboards/ll3macorn/bongopad/bongopad.c index 910e5a4d70..f6d03ded6c 100644 --- a/keyboards/ll3ma/bongopad/bongopad.c +++ b/keyboards/ll3macorn/bongopad/bongopad.c @@ -1,4 +1,4 @@ -// Copyright 2025 Ll3ma (@ll3ma) +// Copyright 2021 Ll3macorn (@ll3macorn) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" diff --git a/keyboards/ll3macorn/bongopad/config.h b/keyboards/ll3macorn/bongopad/config.h new file mode 100644 index 0000000000..4ee4b5a997 --- /dev/null +++ b/keyboards/ll3macorn/bongopad/config.h @@ -0,0 +1,7 @@ +// Copyright 2021 Ll3macorn (@ll3macorn) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +/* misc */ +#define LAYER_STATE_8BIT +#define NO_ACTION_TAPPING diff --git a/keyboards/ll3macorn/bongopad/keyboard.json b/keyboards/ll3macorn/bongopad/keyboard.json new file mode 100644 index 0000000000..7a6f0ff043 --- /dev/null +++ b/keyboards/ll3macorn/bongopad/keyboard.json @@ -0,0 +1,62 @@ +{ + "keyboard_name": "BongoPad", + "manufacturer": "Ll3macorn", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3macorn/bongopad", + "maintainer": "Ll3macorn", + "usb": { + "vid": "0x3728", + "pid": "0x2949", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": false, + "nkro": true, + "oled": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6"], + "rows": ["F7", "D7", "C6", "D4"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B1", "pin_b": "B3"} + ] + }, + "bootmagic": { + "matrix": [1, 0] + }, + "rgblight": { + "led_count": 6 + }, + "ws2812": { + "pin": "E6" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT_default": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3} + ] + } + } +} diff --git a/keyboards/ll3macorn/bongopad/keymaps/default/keymap.c b/keyboards/ll3macorn/bongopad/keymaps/default/keymap.c new file mode 100644 index 0000000000..d91a949dee --- /dev/null +++ b/keyboards/ll3macorn/bongopad/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2021 Ll3macorn (@ll3macorn) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + Layer1, + Layer2, + Layer3, + Layer4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [Layer1] = LAYOUT_default( + KC_MUTE, + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3), + + [Layer2] = LAYOUT_default( + KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC), + + [Layer3] = LAYOUT_default( + KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC), + + [Layer4] = LAYOUT_default( + KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC, + KC_SPC, KC_SPC, KC_SPC) + +}; + +// clang-format on + diff --git a/keyboards/ll3ma/bongopad/keymaps/default/rules.mk b/keyboards/ll3macorn/bongopad/keymaps/default/rules.mk similarity index 100% rename from keyboards/ll3ma/bongopad/keymaps/default/rules.mk rename to keyboards/ll3macorn/bongopad/keymaps/default/rules.mk diff --git a/keyboards/ll3macorn/bongopad/readme.md b/keyboards/ll3macorn/bongopad/readme.md new file mode 100644 index 0000000000..d2902aae6a --- /dev/null +++ b/keyboards/ll3macorn/bongopad/readme.md @@ -0,0 +1,10 @@ +# BongoPad + +* Keyboard Maintainer: [Ll3macorn](https://github.com/Ll3macorn) +* Hardware Supported: Pro micro + +Make example for this keyboard (after setting up your build environment): + + make ll3macorn/bongopad:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/lm_keyboard/lm60n/keyboard.json b/keyboards/lm_keyboard/lm60n/keyboard.json index 0b901ee2ea..f12bdec031 100644 --- a/keyboards/lm_keyboard/lm60n/keyboard.json +++ b/keyboards/lm_keyboard/lm60n/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "L+M 60N", "manufacturer": "L+M Keyboard", + "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x4C4D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/longnald/corin/keyboard.json b/keyboards/longnald/corin/keyboard.json index 0eb2726507..a423348b78 100644 --- a/keyboards/longnald/corin/keyboard.json +++ b/keyboards/longnald/corin/keyboard.json @@ -27,6 +27,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/lostdotfish/rp2040_orbweaver/config.h b/keyboards/lostdotfish/rp2040_orbweaver/config.h deleted file mode 100644 index da2709dc5b..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 lostdotfish -* -* 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 I2C_DRIVER I2CD0 -#define I2C1_SDA_PIN GP12 -#define I2C1_SCL_PIN GP13 -#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json deleted file mode 100644 index b1f867760a..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json +++ /dev/null @@ -1,139 +0,0 @@ - -{ - "manufacturer": "Lostdotfish", - "keyboard_name": "rp2040_orbweaver", - "maintainer": "Lostdotfish", - "url": "https://geekhack.org/index.php?topic=124092.0", - "bootloader": "rp2040", - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "rgb_matrix": { - "driver": "is31fl3731", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"x": 20, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 40, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4}, - {"matrix": [1, 0], "x": 20, "y": 20, "flags": 4}, - {"matrix": [1, 1], "x": 40, "y": 20, "flags": 4}, - {"matrix": [1, 2], "x": 60, "y": 20, "flags": 4}, - {"matrix": [1, 3], "x": 80, "y": 20, "flags": 4}, - {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4}, - {"matrix": [2, 0], "x": 20, "y": 40, "flags": 4}, - {"matrix": [2, 1], "x": 40, "y": 40, "flags": 4}, - {"matrix": [2, 2], "x": 60, "y": 40, "flags": 4}, - {"matrix": [2, 3], "x": 80, "y": 40, "flags": 4}, - {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4}, - {"matrix": [3, 0], "x": 20, "y": 60, "flags": 4}, - {"matrix": [3, 1], "x": 40, "y": 60, "flags": 4}, - {"matrix": [3, 2], "x": 60, "y": 60, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 60, "flags": 4} - ], - "led_flush_limit": 26, - "led_process_limit": 5, - "max_brightness": 220, - "sleep": true, - "center_point": [40, 30], - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "flower_blooming": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true, - "starlight": true, - "starlight_dual_sat": true, - "starlight_dual_hue": true, - "riverflow": true - } -}, - "matrix_pins": { - "rows": ["GP0", "GP1", "GP2", "GP3", "GP10", "GP9"], - "cols": ["GP4", "GP5", "GP8", "GP7", "GP6"] - }, - - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "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}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5}, - ] - } - } -} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c deleted file mode 100644 index df59752ce0..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright 2024 lostdotfish -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include QMK_KEYBOARD_H - - -enum orbweaver_layers { - _DEFAULT, - _LETTERS, - _CONTROL -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -//generic default keymap with Razor defaults (+ 20 shifts layer) - - [_DEFAULT] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, - KC_LSFT, KC_Z, KC_X, KC_C, TO(1), - KC_LALT, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, - KC_SPACE - ), - -//Second example keymap with all modifier keys replaced with numbers or letters - - [_LETTERS] = LAYOUT( - KC_0, KC_1, KC_2, KC_3, KC_4, - KC_I, KC_Q, KC_W, KC_E, KC_R, - KC_J, KC_A, KC_S, KC_D, KC_F, - KC_K, KC_Z, KC_X, KC_C, TO(2), - KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, - KC_SPACE - ), - -//, RGB Contol Keymap - [_CONTROL] = LAYOUT( - RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, - RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, - RM_TOGG, KC_A, KC_S, KC_D, KC_F, - KC_K, KC_Z, KC_X, KC_C, TO(0), - KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, - KC_SPACE - ) - -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - gpio_write_pin_high(GP23); - gpio_write_pin_high(GP24); - gpio_write_pin_high(GP25); - switch (get_highest_layer(state)) { - case _DEFAULT: - gpio_write_pin_low(GP23); - break; - case _LETTERS: - gpio_write_pin_low(GP25); - break; - case _CONTROL: - gpio_write_pin_low(GP24); - break; - } - return state; -} -void suspend_power_down_kb(void) { - // code will run multiple times while keyboard is suspended - gpio_write_pin_high(GP23); - gpio_write_pin_high(GP24); - gpio_write_pin_high(GP25); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - layer_state_set_kb(layer_state); - suspend_wakeup_init_user(); -} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h b/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h deleted file mode 100644 index f9b642b1f4..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 zzeneg (@zzeneg) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/lostdotfish/rp2040_orbweaver/readme.md b/keyboards/lostdotfish/rp2040_orbweaver/readme.md deleted file mode 100644 index 0a4a64d7d6..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# rp2040_orbweaver -QMK firmware for RP2040 based MCU replacement PCB for the Razer Orbweaver gaming keypad - -![RP2040 Orbweaver](https://i.imgur.com/GCPRUbs.png) - - -This firmware is for the Razer Orbweaver Chroma keypad with a custom, plug and play, RP2040 MCU PCB. For installation instructions and board availability see [geekhack](https://geekhack.org/index.php?topic=124092.0). - -The firmware controls a 6x5 key matrix (4x5 keypad + 6 additional keys on the thumb pad and up to 4 additional keys added by user). It also controls a IS31FL3731 RGB Matrix controller (on the Chroma model) via I2C interface. This requires a single I2C Driver with 20 common anode RGB LEDs. - -Key 20 (bottom right) is used to switch layers. - -The default key map provides 3 preset layers. - -(layer 0) is a generic layer based on the original Razer defaults. -(layer 1) replaces modifier keys with letter keys. -(layer 2) replaces the 2 top rows with RGB control keys. - -The three LEDs on the thumb pad indicate the active layer. - -Blue = layer 0 -Green = layer 1 -Yellow = layer 3 - -All LEDs will be off when any other (user added) layout is activated - -A set of RGB animations are included in confg.h. These are controlled by activating the Yellow layer and using keys 01 - 11 (11 toggles the lighting on and off - see /keymaps/default/keymap.c for more information) - -Many thanks to a_marmot. Without his original handwired project, this board would not have been possible. His original work can be found here. [geekhack](https://geekhack.org/index.php?topic=119396.0). - -* Keyboard Maintainer: [Lostdotfish](https://github.com/Lostdotfish) -* Hardware Supported: RP2040 + IS31FL3731 -* Hardware Availability: [https://geekhack.org/index.php?topic=124092.0](https://geekhack.org/index.php?topic=124092.0) - -Make example for this keyboard (after setting up your build environment): - - make lostdotfish/rp2040_orbweaver:default - -Flashing example for this keyboard: - - make lostdotfish/rp2040_orbweaver: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 2 ways: - -* Press and hold the upper left hand key on the main keyboard while you plug in the USB. -* Press and release the boot button on the top of the RP2040_Orbweaver v2.0 inside the modded unit. diff --git a/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c b/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c deleted file mode 100644 index a1ba7c8d1f..0000000000 --- a/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2024 lostdotfish -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "rgb_matrix.h" -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Initialize Reset pins - - gpio_set_pin_output(GP23); - gpio_set_pin_output(GP24); - gpio_set_pin_output(GP25); - - gpio_write_pin_high(GP23); - gpio_write_pin_high(GP24); - gpio_write_pin_high(GP25); - - keyboard_pre_init_user(); -} - - - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C9_1, C8_1, C7_1}, //top left key. - {0, C9_2, C8_2, C7_2}, - {0, C9_3, C8_3, C7_3}, - {0, C9_4, C8_4, C7_4}, - {0, C9_5, C8_5, C7_5}, //top right key. - {0, C9_6, C8_6, C7_6}, - {0, C9_7, C8_7, C6_6}, - {0, C9_8, C7_7, C6_7}, - {0, C1_8, C2_8, C3_8}, - {0, C1_7, C2_7, C3_7}, - {0, C1_6, C2_6, C3_6}, - {0, C1_5, C2_5, C3_5}, - {0, C1_4, C2_4, C3_4}, - {0, C1_3, C2_3, C3_3}, - {0, C1_2, C2_2, C4_3}, - {0, C1_1, C3_2, C4_2}, //lower left key - {0, C9_9, C8_9, C7_9}, - {0, C9_10, C8_10, C7_10}, - {0, C9_11, C8_11, C7_11}, - {0, C9_12, C8_12, C7_12} //lower right key - -}; diff --git a/keyboards/lxxt/keyboard.json b/keyboards/lxxt/keyboard.json index a4bc328a71..3a2700883d 100644 --- a/keyboards/lxxt/keyboard.json +++ b/keyboards/lxxt/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LXXT", "manufacturer": "DeskDaily", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5003", @@ -25,8 +26,10 @@ }, "rgblight": { "led_count": 16, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "sleep": true, "animations": { "alternating": true, @@ -46,6 +49,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true diff --git a/keyboards/lyso1/lefishe/keyboard.json b/keyboards/lyso1/lefishe/keyboard.json index be92e9930f..6104f47e47 100644 --- a/keyboards/lyso1/lefishe/keyboard.json +++ b/keyboards/lyso1/lefishe/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Le_Fishe", "manufacturer": "Lyso1", + "url": "", "maintainer": "Lyso1", "usb": { "vid": "0x7856", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/lz/erghost/keyboard.json b/keyboards/lz/erghost/keyboard.json index 7722e4fc62..ac5ce2edf2 100644 --- a/keyboards/lz/erghost/keyboard.json +++ b/keyboards/lz/erghost/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "erGhost", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x6C7A", diff --git a/keyboards/m10a/keyboard.json b/keyboards/m10a/keyboard.json index d6f1be0bbb..544d2535ed 100644 --- a/keyboards/m10a/keyboard.json +++ b/keyboards/m10a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "M10-A", "manufacturer": "RAMA WORKS", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5241", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/machine_industries/m4_a/keyboard.json b/keyboards/machine_industries/m4_a/keyboard.json index 147b85018a..04510f92e1 100644 --- a/keyboards/machine_industries/m4_a/keyboard.json +++ b/keyboards/machine_industries/m4_a/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/machkeyboards/mach3/keyboard.json b/keyboards/machkeyboards/mach3/keyboard.json index 383f4a738e..9f9d492bcc 100644 --- a/keyboards/machkeyboards/mach3/keyboard.json +++ b/keyboards/machkeyboards/mach3/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -26,7 +28,8 @@ "levels": 5, "breathing": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_3x3": { "layout": [ diff --git a/keyboards/macrocat/keyboard.json b/keyboards/macrocat/keyboard.json index d9d3be105a..470ce8973a 100644 --- a/keyboards/macrocat/keyboard.json +++ b/keyboards/macrocat/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/macroflow_original/keyboard.json b/keyboards/macroflow_original/keyboard.json deleted file mode 100644 index 58cabba08e..0000000000 --- a/keyboards/macroflow_original/keyboard.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "manufacturer": "Customacros", - "keyboard_name": "Macroflow Original", - "maintainer": "Patrickemm", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "encoder": true, - "oled": true - }, - "matrix_pins": { - "cols": ["B1", "B3", "B2", "F7"], - "rows": ["E6", "B4", "B5"] - }, - "development_board": "promicro", - "url": "https://github.com/Patrickemm", - "usb": { - "device_version": "1.0.0", - "pid": "0x0002", - "vid": "0x504D" - }, - "dynamic_keymap": { - "layer_count": 8 - }, - "layouts": { - "LAYOUT": { - "layout": [ - - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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} - ] - } - }, - "encoder": { - "rotary": [ - {"pin_b": "F5", "pin_a": "F4"} - ] - } -} diff --git a/keyboards/macroflow_original/keymaps/default/keymap.c b/keyboards/macroflow_original/keymaps/default/keymap.c deleted file mode 100644 index 22ea8c0ce9..0000000000 --- a/keyboards/macroflow_original/keymaps/default/keymap.c +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2024 Patrick Mathern (@Patrickemm) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Define the keycode, `QK_USER` avoids collisions with existing keycodes -enum keycodes { - KC_CYCLE_LAYERS = QK_USER, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_0, KC_CYCLE_LAYERS, - KC_1, KC_2, KC_3, KC_4, - KC_5, KC_6, KC_7, KC_8 - ), - [1] = LAYOUT( - KC_9, KC_CYCLE_LAYERS, - KC_A, KC_B, KC_C, KC_D, - KC_E, KC_F, KC_G, KC_H - ), - [2] = LAYOUT( - KC_I, KC_CYCLE_LAYERS, - KC_J, KC_K, KC_L, KC_M, - KC_N, KC_O, KC_P, KC_Q - ), - [3] = LAYOUT( - KC_R, KC_CYCLE_LAYERS, - KC_S, KC_T, KC_U, KC_V, - KC_W, KC_X, KC_Y, KC_Z - ), - [4] = LAYOUT( - KC_TRNS, KC_CYCLE_LAYERS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [5] = LAYOUT( - KC_TRNS, KC_CYCLE_LAYERS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [6] = LAYOUT( - KC_TRNS, KC_CYCLE_LAYERS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [7] = LAYOUT( - KC_TRNS, KC_CYCLE_LAYERS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -// 1st layer on the cycle -#define LAYER_CYCLE_START 0 -// Last layer on the cycle -#define LAYER_CYCLE_END 7 - -// Add the behaviour of this new keycode -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_CYCLE_LAYERS: - // Our logic will happen on presses, nothing is done on releases - if (!record->event.pressed) { - // We've already handled the keycode (doing nothing), let QMK know so no further code is run unnecessarily - return false; - } - - uint8_t current_layer = get_highest_layer(layer_state); - - // Check if we are within the range, if not quit - if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { - return false; - } - - uint8_t next_layer = current_layer + 1; - if (next_layer > LAYER_CYCLE_END) { - next_layer = LAYER_CYCLE_START; - } - layer_move(next_layer); - return false; - - // Process other keycodes normally - default: - return true; - } -} - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) }, - [4] = { ENCODER_CCW_CW(_______, _______) }, - [5] = { ENCODER_CCW_CW(_______, _______) }, - [6] = { ENCODER_CCW_CW(_______, _______) }, - [7] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif diff --git a/keyboards/macroflow_original/keymaps/default/rules.mk b/keyboards/macroflow_original/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/macroflow_original/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/macroflow_original/macroflow_original.c b/keyboards/macroflow_original/macroflow_original.c deleted file mode 100644 index fd91fd510e..0000000000 --- a/keyboards/macroflow_original/macroflow_original.c +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2024 Patrick Mathern (@Patrickemm) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -static uint16_t oled_logo_timer = 0; -static bool has_startup_ran = false; - -#ifndef SHOW_LOGO -# define SHOW_LOGO 2500 -#endif - -enum layer_names { - one, - two, - three, - four, - five, - six, - seven, - eight -}; - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (!has_startup_ran) { - static const char startUp [] PROGMEM = { - // 'startUp', 128x32px - 0, 0, 0,128,192,192,128,128, 0, 0,192,192, 0, 0, 0,192,192, 0, 0,128,128,192,192,128, 0, 0,192,192,192,192,192,192,192, 0, 0,128,128,192,192,128, 0, 0, 0,192,192,128, 0, 0, 0, 0,192,192,128, 0, 0, 0,128,192,192, 0, 0, 0, 0, 0,128,128,192,192,128, 0, 0,128,192,192,192,192,128,128, 0, 0, 0,128,192,192,192,128, 0, 0, 0,128,128,192,192,128, 0, 0, 0, 0, 0, 0, 0,128,192,192,128, 0, 0, 0, 0,128,192,192,128,128, 0, 0,192,192,192, 0, 0, 0, 0,128,192,192, 0,0, - 0, 0,255,255, 1, 1, 1, 31, 30, 0,255,255, 0, 0, 0,255,255, 0, 30,127,241,193,129, 7, 15, 0, 1, 1, 1,255,255, 1, 1, 0,254,255, 1, 1, 1,255,255, 0, 0,255, 63,255,224, 0,128,254, 63,255,255, 0, 0,224,255, 15,127,255,192, 0, 0,254,255, 1, 1, 1, 31, 31, 0,255,255,129,129,129,255,127, 0, 0,255,255, 1, 1, 1,255,255, 0, 30,127,241,193,129, 7, 15, 0, 0, 0, 0,252,255, 3, 1, 1, 3, 31, 30, 0,255,255, 1, 1, 1,255,254, 0,255,255,127,252, 0, 0,240,255,255,255, 0, 0, 0, 0,255,255,128,128,192,252, 60, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0, 0, 0, 0,255,255, 0, 0, 0,127,255,128,128,128,255,255, 0, 0,255, 0, 3,255,248,255, 15, 0,255,255, 0,248,255, 27, 24, 24, 63,255,224, 0,127,255,128,128,128,252,124, 0,255,255, 3, 1, 3,127,254,240, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0,128,128, 0, 63,255,192,128,128,224,252, 60, 0,255,255,128,128,128,255,127, 0,255,255, 0, 31,255,252,127, 1,255,255, 0, 0,0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 - }; - oled_write_raw_P(startUp, sizeof(startUp)); - if (timer_elapsed(oled_logo_timer) >= SHOW_LOGO) { - has_startup_ran = true; - oled_clear(); - } - } else { - static const char PROGMEM layerImage[4][67+1] = { - { 224,224,224,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,224,224,224,224, 0, 0, 0, 0, 0,224,224,224,128, 0, 0, 0, 0,128,224,224,224, 0, 0, 0,224,224,224,224,224,224,224,224,224,224,224, 0, 0,224,224,224,224,224,224,224,224,224,192,128, 0 }, - { 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,255,127, 15,127,255,255,240, 0, 0, 0, 0, 3, 15,127,252,240,240,252,127, 15, 3, 0, 0, 0, 0,255,255,255,255,192,192,192,192,192, 0, 0, 0, 0,255,255,255,255,192,192,192,225,255,255,255,127 }, - { 255,255,255,255,192,192,192,192,192,192,192, 0, 0,192,254,255,255,127, 28, 28, 28,127,255,255,254,192, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,129,129,129,129,129,128,128, 0, 0,255,255,255,255, 1, 1, 7,127,255,255,248,192 }, - { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 3 }, - }; - - static const char PROGMEM layer1[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,248,120,120, 56, 56, 24, 24, 24,248,248,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,255,252,252,252, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer2[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,248,248,248,254,255, 63, 6, 0,128,224,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255, 63, 15, 7, 1, 64,112,120,126,127,127,255,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer3[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,248,248,248, 62, 63, 63, 30, 0,128,192,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255, 31, 31, 31,126,254,254,124, 0, 0, 1,255,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 30, 28, 24, 24, 24, 24, 24, 24, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer4[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,248,248,248,248,120, 24, 24, 24, 24,248,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,255, 63, 7, 1,192,240, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,192,192,192,194,195,195, 0, 0, 0,195,195,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer5[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,143,143,143, 15, 15, 31,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,142, 14, 14, 30,127,127,127, 0, 0, 0,224,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer6[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 31, 31, 31, 24, 24, 56,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,128, 0, 0, 0,127,127,127, 0, 0, 0,128,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer7[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 31, 3, 0,128,248,255,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,255,255,127, 15, 1, 0,192,252,255,255,255,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - static const char PROGMEM layer8[4][30+1] = { - { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, - { 255,255,255,255,255,255,255,255,255,255,224,128, 0, 0, 31, 31, 31, 0, 0,128,224,255,255,255,255,255,255,255,255,255 }, - { 255,255,255,255,255,255,255,255,255,255,129, 0, 0, 0,126,126,126, 0, 0, 0,129,255,255,255,255,255,255,255,255,255 }, - { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } - }; - - oled_set_cursor(1, 0); // start pos - oled_write_raw_P(layerImage[0], sizeof(layerImage[0])); - oled_set_cursor(1, 1); // move to next line - oled_write_raw_P(layerImage[1], sizeof(layerImage[1])); - oled_set_cursor(1, 2); // move to next line - oled_write_raw_P(layerImage[2], sizeof(layerImage[2])); - oled_set_cursor(1, 3); // move to next line - oled_write_raw_P(layerImage[3], sizeof(layerImage[3])); - - switch (get_highest_layer(layer_state)) { - case one : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer1[0], sizeof(layer1[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer1[1], sizeof(layer1[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer1[2], sizeof(layer1[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer1[3], sizeof(layer1[3])); - break; - case two : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer2[0], sizeof(layer2[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer2[1], sizeof(layer2[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer2[2], sizeof(layer2[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer2[3], sizeof(layer2[3])); - break; - case three : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer3[0], sizeof(layer3[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer3[1], sizeof(layer3[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer3[2], sizeof(layer3[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer3[3], sizeof(layer3[3])); - break; - case four : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer4[0], sizeof(layer4[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer4[1], sizeof(layer4[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer4[2], sizeof(layer4[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer4[3], sizeof(layer4[3])); - break; - case five : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer5[0], sizeof(layer5[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer5[1], sizeof(layer5[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer5[2], sizeof(layer5[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer5[3], sizeof(layer5[3])); - break; - case six : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer6[0], sizeof(layer6[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer6[1], sizeof(layer6[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer6[2], sizeof(layer6[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer6[3], sizeof(layer6[3])); - break; - case seven : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer7[0], sizeof(layer7[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer7[1], sizeof(layer7[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer7[2], sizeof(layer7[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer7[3], sizeof(layer7[3])); - break; - case eight : - oled_set_cursor(16, 0); // move 20 columns out - oled_write_raw_P(layer8[0], sizeof(layer8[0])); - oled_set_cursor(16, 1); // move 20 columns out - oled_write_raw_P(layer8[1], sizeof(layer8[1])); - oled_set_cursor(16, 2); // move 20 columns out - oled_write_raw_P(layer8[2], sizeof(layer8[2])); - oled_set_cursor(16, 3); // move 20 columns out - oled_write_raw_P(layer8[3], sizeof(layer8[3])); - break; - } - } - return false; -} diff --git a/keyboards/macroflow_original/readme.md b/keyboards/macroflow_original/readme.md deleted file mode 100644 index a38fefa866..0000000000 --- a/keyboards/macroflow_original/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# macroflow_original - -![Imgur](https://i.imgur.com/hIytJTl.png) - -*A 2x4 macropad with a built in encoder and OLED screen* - -* Keyboard Maintainer: [Patrickemm](https://github.com/Patrickemm) -* Hardware Supported: *Pro Micro compatible development board* -* Hardware Availability: *https://www.ebay.com/usr/handycache* - -Make example for this keyboard (after setting up your build environment): - - make macroflow_original:default - -Flashing example for this keyboard: - - make macroflow_original:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/madjax_macropad/keyboard.json b/keyboards/madjax_macropad/keyboard.json deleted file mode 100644 index 63c1383ac1..0000000000 --- a/keyboards/madjax_macropad/keyboard.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "manufacturer": "MadJax", - "keyboard_name": "madjax_macropad", - "maintainer": "guidoism", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP26", "GP27", "GP28", "GP29"], - "rows": ["GP6", "GP7", "GP0", "GP4", "GP3"] - }, - "encoder": { - "rotary": [ - {"pin_a": "GP1", "pin_b": "GP2"} - ] - }, - "processor": "RP2040", - "url": "https://github.com/guidoism/madjax_macropad", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 3], "x": 3, "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": [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": [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": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4} - ] - } - } -} diff --git a/keyboards/madjax_macropad/keymaps/default/keymap.c b/keyboards/madjax_macropad/keymaps/default/keymap.c deleted file mode 100644 index 693438c1f3..0000000000 --- a/keyboards/madjax_macropad/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_keycodes { - KC_P00 = SAFE_RANGE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ - * │ - │ - * ┌───┬───┬───┼───┤ - * │ 7 │ 8 │ 9 │ + │ - * ├───┼───┼───┼───┤ - * │ 4 │ 5 │ 6 │ % │ - * ├───┼───┼───┼───┤ - * │ 1 │ 2 │ 3 │ = │ - * ├───┼───┼───┼───┤ - * │ 0 │00 │ . │Ent│ - * └───┴───┴───┴───┘ - */ - [0] = LAYOUT( - KC_PMNS, - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, KC_PERC, - KC_P1, KC_P2, KC_P3, KC_EQL, - KC_P0, KC_P00, KC_PDOT, KC_PENT - ) -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case KC_P00: - tap_code(KC_P0); - tap_code(KC_P0); - return false; - } - } - return true; -} - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) } -}; -#endif diff --git a/keyboards/madjax_macropad/keymaps/default/rules.mk b/keyboards/madjax_macropad/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/madjax_macropad/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/madjax_macropad/readme.md b/keyboards/madjax_macropad/readme.md deleted file mode 100644 index 1abe17ecca..0000000000 --- a/keyboards/madjax_macropad/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# MadJax Macropad - -* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) -* Hardware Supported: Seeed Studio XIAO RP2040 -* Hardware Availability: https://github.com/guidoism/madjax_macropad - -Make example for this keyboard (after setting up your build environment): - - make madjax_macropad:default - -Flashing example for this keyboard: - - make madjax_macropad:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - diff --git a/keyboards/magic_force/mf17/keyboard.json b/keyboards/magic_force/mf17/keyboard.json index c0f0e6bd57..705318e71e 100644 --- a/keyboards/magic_force/mf17/keyboard.json +++ b/keyboards/magic_force/mf17/keyboard.json @@ -12,14 +12,10 @@ }, "usb": { "device_version": "1.0.0", + "force_nkro": true, "vid": "0x3A54", "pid": "0x4F5D" }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, "extrakey": true, @@ -100,7 +96,7 @@ "sleep": true }, "indicators": { - "num_lock": "B15", + "caps_lock": "B15", "on_state": 0 }, "community_layouts": ["numpad_5x4"], diff --git a/keyboards/magic_force/mf17/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c index c845d80f13..1ebe11b6d9 100755 --- a/keyboards/magic_force/mf17/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT), [1] = LAYOUT_numpad_5x4( KC_TRNS, KC_CALCULATOR, KC_BSPC, KC_TRNS, - RM_NEXT, RM_VALU, RM_HUEU, - RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOTLOADER, - RM_PREV, RM_VALD, RM_HUED, + RGB_MOD, RGB_VAI, RGB_HUI, + RGB_SPD, RGB_TOG, RGB_SPI, QK_BOOTLOADER, + RGB_RMOD, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), }; \ No newline at end of file diff --git a/keyboards/magic_force/mf34/keyboard.json b/keyboards/magic_force/mf34/keyboard.json index 9acae04b27..7178d0405e 100644 --- a/keyboards/magic_force/mf34/keyboard.json +++ b/keyboards/magic_force/mf34/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "MagicForce", + "url": "", "maintainer": "MagicForce", "manufacturer": "MagicForce", "usb": { "vid": "0x1A53", "pid": "0x4F51", - "device_version": "1.0.2" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "1.0.2", + "force_nkro": true }, "indicators": { "num_lock": "B15" diff --git a/keyboards/magic_force/mf34/keymaps/default/keymap.c b/keyboards/magic_force/mf34/keymaps/default/keymap.c index 0ee4db2985..03135be226 100755 --- a/keyboards/magic_force/mf34/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf34/keymaps/default/keymap.c @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [_FN] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOTLOADER, - RM_TOGG, RM_HUEU, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_HUED, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_HUI, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_HUD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RM_VALU, KC_TRNS, KC_TRNS, KC_TRNS, - RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), + RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), }; diff --git a/keyboards/makeymakey/keyboard.json b/keyboards/makeymakey/keyboard.json index 4bd463fa3d..8f04535032 100644 --- a/keyboards/makeymakey/keyboard.json +++ b/keyboards/makeymakey/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": true, "nkro": true diff --git a/keyboards/makeymakey/keymaps/default/keymap.c b/keyboards/makeymakey/keymaps/default/keymap.c index 0216e2cd14..1c3e6399fb 100644 --- a/keyboards/makeymakey/keymaps/default/keymap.c +++ b/keyboards/makeymakey/keymaps/default/keymap.c @@ -33,9 +33,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, KC_SPC, MS_BTN1, + KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, KC_SPC, KC_BTN1, KC_W, KC_A, KC_S, KC_D, KC_F, KC_G, - MS_UP, MS_DOWN, MS_LEFT, MS_RGHT, MS_BTN1, MS_BTN2 + KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R, KC_BTN1, KC_BTN2 ) }; diff --git a/keyboards/makrosu/keyboard.json b/keyboards/makrosu/keyboard.json index 1e83c20aa7..ec6b8a3bfd 100644 --- a/keyboards/makrosu/keyboard.json +++ b/keyboards/makrosu/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MakrOSU", "manufacturer": "Valdydesu_", + "url": "", "maintainer": "Valdydesu_", "usb": { "vid": "0xAB69", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, @@ -34,7 +37,8 @@ "bootmagic": { "matrix": [0, 5] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/makrosu/keymaps/default/keymap.c b/keyboards/makrosu/keymaps/default/keymap.c index 1e60e357ba..3de4f71df3 100644 --- a/keyboards/makrosu/keymaps/default/keymap.c +++ b/keyboards/makrosu/keymaps/default/keymap.c @@ -24,11 +24,15 @@ enum planck_layers { }; -#define L1 PDF(_1) -#define L2 PDF(_2) -#define L3 PDF(_3) -#define LOWER MO(_4) +enum planck_keycodes { + L1 = SAFE_RANGE, + L2, + L3 + +}; + +#define LOWER MO(_4) #define IND_1 D4 #define IND_2 C6 #define IND_3 D7 @@ -62,6 +66,27 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case L1: + if (record->event.pressed) { + set_single_persistent_default_layer(_1); + } + return false; + case L2: + if (record->event.pressed) { + set_single_persistent_default_layer(_2); + } + return false; + case L3: + if (record->event.pressed) { + set_single_persistent_default_layer(_3); + } + return false; + } + return true; +} + void matrix_init_user(void) { //init the Pro Micro on-board LEDs gpio_set_pin_output(IND_1); diff --git a/keyboards/malevolti/lyra/rev1/keyboard.json b/keyboards/malevolti/lyra/rev1/keyboard.json index 6a4a993d76..cce0ad7bb7 100644 --- a/keyboards/malevolti/lyra/rev1/keyboard.json +++ b/keyboards/malevolti/lyra/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lyra", "manufacturer": "Dom", + "url": "", "maintainer": "malevolti", "usb": { "vid": "0x4443", diff --git a/keyboards/malevolti/superlyra/rev1/keyboard.json b/keyboards/malevolti/superlyra/rev1/keyboard.json index 52745a94f7..61ef7c605d 100644 --- a/keyboards/malevolti/superlyra/rev1/keyboard.json +++ b/keyboards/malevolti/superlyra/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SuperLyra", "manufacturer": "Dom", + "url": "", "maintainer": "malevolti", "usb": { "vid": "0x4443", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h index 01a48cb684..3f0a8cf4e1 100644 --- a/keyboards/manta60/config.h +++ b/keyboards/manta60/config.h @@ -17,6 +17,8 @@ along with this program. If not, see . #pragma once +#define SELECT_SOFT_SERIAL_SPEED 1 + # ifndef IOS_DEVICE_ENABLE # define RGBLIGHT_VAL_STEP 16 # define RGBLIGHT_LIMIT_VAL 128 /* The maximum brightness level */ diff --git a/keyboards/manta60/keyboard.json b/keyboards/manta60/keyboard.json index 84af2a2752..d2f308e89c 100644 --- a/keyboards/manta60/keyboard.json +++ b/keyboards/manta60/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": false, "mousekey": true, "nkro": false, @@ -53,7 +54,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/manyboard/macro/keyboard.json b/keyboards/manyboard/macro/keyboard.json index d0c278b781..b40861414f 100644 --- a/keyboards/manyboard/macro/keyboard.json +++ b/keyboards/manyboard/macro/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/maple_computing/6ball/keyboard.json b/keyboards/maple_computing/6ball/keyboard.json index f68f2ec8ba..3f125c75c4 100644 --- a/keyboards/maple_computing/6ball/keyboard.json +++ b/keyboards/maple_computing/6ball/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "6-Ball", "manufacturer": "That-Canadian", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -38,7 +41,8 @@ "rows": ["F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/maple_computing/c39/keyboard.json b/keyboards/maple_computing/c39/keyboard.json index f2f396ccd7..de4cbc6aeb 100755 --- a/keyboards/maple_computing/c39/keyboard.json +++ b/keyboards/maple_computing/c39/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "C39", "manufacturer": "Maple Computing", + "url": "", "maintainer": "Space Cat", "usb": { "vid": "0xCA17", diff --git a/keyboards/maple_computing/christmas_tree/rules.mk b/keyboards/maple_computing/christmas_tree/rules.mk new file mode 100644 index 0000000000..3a6633cf56 --- /dev/null +++ b/keyboards/maple_computing/christmas_tree/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = maple_computing/christmas_tree/v2017 diff --git a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json index 6682c574c9..604b1b382a 100644 --- a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json +++ b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json @@ -8,10 +8,12 @@ "pid": "0x3070", "device_version": "20.1.7" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/maple_computing/ivy/rev1/keyboard.json b/keyboards/maple_computing/ivy/rev1/keyboard.json index e5bc6beae7..aac35a5dcc 100644 --- a/keyboards/maple_computing/ivy/rev1/keyboard.json +++ b/keyboards/maple_computing/ivy/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ivy", "manufacturer": "Maple Computing", + "url": "", "maintainer": "That-Canadian", "usb": { "vid": "0x1337", diff --git a/keyboards/maple_computing/ivy/rules.mk b/keyboards/maple_computing/ivy/rules.mk new file mode 100644 index 0000000000..2665d44abd --- /dev/null +++ b/keyboards/maple_computing/ivy/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = maple_computing/ivy/rev1 diff --git a/keyboards/maple_computing/jnao/keyboard.json b/keyboards/maple_computing/jnao/keyboard.json index 012d51f8f5..97b51a7680 100644 --- a/keyboards/maple_computing/jnao/keyboard.json +++ b/keyboards/maple_computing/jnao/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JNAO", "manufacturer": "Maple Computing", + "url": "", "maintainer": "That-Canadian", "usb": { "vid": "0x1337", diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h new file mode 100644 index 0000000000..c50e010375 --- /dev/null +++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h @@ -0,0 +1,18 @@ +#pragma once + +/* Underlight Configuration */ +#define WS2812_DI_PIN F4 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_LED_COUNT 2 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c new file mode 100644 index 0000000000..0b2335af98 --- /dev/null +++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c @@ -0,0 +1,76 @@ +// Below layout is based upon /u/That-Canadian's planck layout +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _QWERTY, + _RGB, + _FUNC +}; + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-------------. + * | 1 | 2 | + * |------+------| + * | 3 | 4 | + * |------+------| + * | 5 | 6 | + * |------+------| + * | FUNC | RGB | + * `-------------' + */ + [_QWERTY] = LAYOUT( + KC_1, KC_2, + KC_3, KC_4, + KC_5, KC_6, + MO(_FUNC), TG(_RGB) + ), + + /* RGB + * ,-------------. + * | Mode-| Mode+| + * |------+------| + * | HUE- | HUE+ | + * |------+------| + * | SAT- | SAT+ | + * |------+------| + * |RGBTOG| | + * `-------------' + */ + [_RGB] = LAYOUT( + UG_PREV, UG_NEXT, + UG_HUED, UG_HUEU, + UG_SATD, UG_SATU, + UG_TOGG, KC_TRNS + ), + + /* Function + * ,-------------. + * | Q |CALDEL| + * |------+------| + * | A |TSKMGR| + * |------+------| + * | Z | X | + * |------+------| + * | | C | + * `-------------' + */ + [_FUNC] = LAYOUT( + KC_Q, CALTDEL, + KC_A, TSKMGR, + KC_Z, KC_X, + _______, KC_C + ) + +}; diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md new file mode 100644 index 0000000000..3f15ff9bc3 --- /dev/null +++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md @@ -0,0 +1,41 @@ +# Launch Pad + +![Launch Pad](https://i.imgur.com/WVTe0Ku.png) + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +A budget-minded, 4-8 key macro-pad with built in legs, plate & case. + +Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row. + +Supports 2u PCB-Mount stabilizers. + +Runs off of 1x Pro Micro & 8x diodes (1n4148). + +Optional "Reset" switch can be used on the PCB. + +A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between. + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +Make example for this keyboard (after setting up your build environment): + + make launchpad/rev1:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +# Under Glow + +![Underglow](https://i.imgur.com/3zFIOmu.jpg) + +SpaceCat now provides an underglow add-on kit. Please refer to the picture above for wiring. + +Make example for this keyboard (after setting up your build environment): + + make launchpad/rev1:default_rgb + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad. + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/maple_computing/launchpad/rev1/keyboard.json b/keyboards/maple_computing/launchpad/rev1/keyboard.json index 9f7a23c7c8..8c75561179 100644 --- a/keyboards/maple_computing/launchpad/rev1/keyboard.json +++ b/keyboards/maple_computing/launchpad/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Launch Pad", "manufacturer": "Maple Computing", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", @@ -30,7 +31,8 @@ "rows": ["C6", "B1", "B3", "D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/maple_computing/launchpad/rules.mk b/keyboards/maple_computing/launchpad/rules.mk new file mode 100644 index 0000000000..8c35a608a6 --- /dev/null +++ b/keyboards/maple_computing/launchpad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = maple_computing/launchpad/rev1 diff --git a/keyboards/maple_computing/lets_split_eh/keyboard.json b/keyboards/maple_computing/lets_split_eh/keyboard.json index 90965090b1..42a1cf3e77 100644 --- a/keyboards/maple_computing/lets_split_eh/keyboard.json +++ b/keyboards/maple_computing/lets_split_eh/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lets Split Eh?", "manufacturer": "That-Canadian", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c b/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c index 587cd02c35..699822ffc0 100644 --- a/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c +++ b/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c @@ -52,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------' `------' */ [_LOWER] = LAYOUT( - ALGR(BP_B), BP_EACU, ALGR(BP_P), ALGR(BP_O), BP_EGRV, KC_PGUP, KC_HOME, KC_UP, KC_END, MS_WHLU, - ALGR(BP_A), ALGR(BP_U), ALGR(BP_I), ALGR(BP_E), BP_DLR, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, MS_WHLD, + ALGR(BP_B), BP_EACU, ALGR(BP_P), ALGR(BP_O), BP_EGRV, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_MS_WH_UP, + ALGR(BP_A), ALGR(BP_U), ALGR(BP_I), ALGR(BP_E), BP_DLR, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_DOWN, BP_AGRV, KC_LALT, KC_LCTL, KC_LSFT, BP_CCED, _______, KC_LSFT, KC_LCTL, KC_LALT, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/maple_computing/minidox/rev1/keyboard.json b/keyboards/maple_computing/minidox/rev1/keyboard.json index a11c2d94e6..b64f26e834 100644 --- a/keyboards/maple_computing/minidox/rev1/keyboard.json +++ b/keyboards/maple_computing/minidox/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MiniDox", "manufacturer": "That-Canadian", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -18,7 +19,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/maple_computing/minidox/rules.mk b/keyboards/maple_computing/minidox/rules.mk new file mode 100644 index 0000000000..d5a7f49e40 --- /dev/null +++ b/keyboards/maple_computing/minidox/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = maple_computing/minidox/rev1 diff --git a/keyboards/maple_computing/the_ruler/keyboard.json b/keyboards/maple_computing/the_ruler/keyboard.json index 3cca7e577a..7d15bb9bb8 100644 --- a/keyboards/maple_computing/the_ruler/keyboard.json +++ b/keyboards/maple_computing/the_ruler/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "The Ruler", "manufacturer": "Maple Computing", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", @@ -29,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/marcopad/keyboard.json b/keyboards/marcopad/keyboard.json deleted file mode 100644 index 50dc3c1ed0..0000000000 --- a/keyboards/marcopad/keyboard.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "manufacturer": "pelegrini.ca", - "keyboard_name": "MarcoPad", - "maintainer": "Marco Pelegrini", - "bootloader": "rp2040", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP4", "GP26", "GP27"], - "rows": ["GP15", "GP14", "GP29"] - }, - "processor": "RP2040", - "rgb_matrix": { - "animations": { - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "dual_beacon": true, - "pixel_rain": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "solid_reactive": true, - "solid_reactive_multicross": true, - "solid_reactive_multinexus": true, - "solid_reactive_multiwide": true, - "splash": true, - "typing_heatmap": true - }, - "default": { - "animation": "splash", - "hue": 132, - "sat": 102, - "speed": 80 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 0, "y": 32, "flags": 4}, - {"matrix": [0, 2], "x": 0, "y": 64, "flags": 4}, - {"matrix": [1, 0], "x": 112, "y": 0, "flags": 4}, - {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, - {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, - {"matrix": [2, 0], "x": 224, "y": 0, "flags": 4}, - {"matrix": [2, 1], "x": 224, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4} - ], - "sleep": true - }, - "url": "https://pelegrini.ca/marcopad", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP28" - }, - "community_layouts": ["ortho_3x3"], - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [0, 2], "x": 0, "y": 2}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 1, "y": 2}, - {"matrix": [2, 0], "x": 2, "y": 0}, - {"matrix": [2, 1], "x": 2, "y": 1}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/marcopad/keymaps/backlit/keymap.c b/keyboards/marcopad/keymaps/backlit/keymap.c deleted file mode 100644 index 8166cf67b6..0000000000 --- a/keyboards/marcopad/keymaps/backlit/keymap.c +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2022 Marco Pelegrini -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┐ - * │ 7 │ 8 │ 9 │ - * ├───┼───┼───┤ - * │ 4 │ 5 │ 6 │ - * ├───┼───┼───┤ - * │ 1 │ 2 │ 3 │ - * └───┴───┴───┘ - */ - [0] = LAYOUT_ortho_3x3( - KC_P7, KC_P8, KC_P9, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 - ) -}; - -const uint16_t PROGMEM backlight_next[] = {KC_P7, KC_P8, COMBO_END}; -const uint16_t PROGMEM backlight_toggle[] = {KC_P7, KC_P9, COMBO_END}; -const uint16_t PROGMEM hue_up[] = {KC_P7, KC_P4, COMBO_END}; -const uint16_t PROGMEM hue_down[] = {KC_P7, KC_P1, COMBO_END}; -const uint16_t PROGMEM sat_up[] = {KC_P7, KC_P5, COMBO_END}; -const uint16_t PROGMEM sat_down[] = {KC_P7, KC_P2, COMBO_END}; -const uint16_t PROGMEM value_up[] = {KC_P7, KC_P6, COMBO_END}; -const uint16_t PROGMEM value_down[] = {KC_P7, KC_P3, COMBO_END}; -const uint16_t PROGMEM speed_up[] = {KC_P8, KC_P4, COMBO_END}; -const uint16_t PROGMEM speed_down[] = {KC_P8, KC_P1, COMBO_END}; -combo_t key_combos[] = { - COMBO(backlight_next, RM_NEXT), - COMBO(backlight_toggle, RM_TOGG), - COMBO(hue_up, RM_HUEU), - COMBO(hue_down, RM_HUED), - COMBO(sat_up, RM_SATU), - COMBO(sat_down, RM_SATD), - COMBO(value_up, RM_VALU), - COMBO(value_down, RM_VALD), - COMBO(speed_up, RM_SPDU), - COMBO(speed_down, RM_SPDD) -}; diff --git a/keyboards/marcopad/keymaps/backlit/rules.mk b/keyboards/marcopad/keymaps/backlit/rules.mk deleted file mode 100644 index c358f54605..0000000000 --- a/keyboards/marcopad/keymaps/backlit/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright (c) 2022 Marco Pelegrini -# SPDX-License-Identifier: GPL-2.0-or-later - -COMBO_ENABLE = yes diff --git a/keyboards/marcopad/keymaps/default/keymap.c b/keyboards/marcopad/keymaps/default/keymap.c deleted file mode 100644 index b892c0e80c..0000000000 --- a/keyboards/marcopad/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2022 Marco Pelegrini -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┐ - * │ 7 │ 8 │ 9 │ - * ├───┼───┼───┤ - * │ 4 │ 5 │ 6 │ - * ├───┼───┼───┤ - * │ 1 │ 2 │ 3 │ - * └───┴───┴───┘ - */ - [0] = LAYOUT_ortho_3x3( - KC_P7, KC_P8, KC_P9, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 - ) -}; diff --git a/keyboards/marcopad/readme.md b/keyboards/marcopad/readme.md deleted file mode 100644 index 6bc1733f30..0000000000 --- a/keyboards/marcopad/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# MarcoPad - -![marcopad](https://i.imgur.com/AnC9SeW.png) - -*A compact 3x3 keys macropad built with RP-2040 Zero* - -* Keyboard Maintainer: [pelegrini.ca](https://pelegrini.ca/marcopad) -* Hardware Supported: [MarcoPad](https://pelegrini.ca/marcopad) -* Hardware Availability: [MarcoPad](https://pelegrini.ca/marcopad) - -Make example for this keyboard (after setting up your build environment): - - make marcopad:default - -Flashing example for this keyboard: - - make marcopad: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 (top left key) and plug in the keyboard -* **Physical reset button**: Using 2 paperclips, press and hold the BOOT button, then short press the RESET button on the back of the MarcoPad -* **Physical reset button + plug in**: Using a paperclip, press and hold the BOOT button, then plug in the MarcoPad diff --git a/keyboards/mariorion_v25/prod/keyboard.json b/keyboards/mariorion_v25/prod/keyboard.json index 4ffccca63e..dd014be03a 100644 --- a/keyboards/mariorion_v25/prod/keyboard.json +++ b/keyboards/mariorion_v25/prod/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -42,6 +44,7 @@ "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/mariorion_v25/proto/keyboard.json b/keyboards/mariorion_v25/proto/keyboard.json index 404b845c00..be00d447d2 100644 --- a/keyboards/mariorion_v25/proto/keyboard.json +++ b/keyboards/mariorion_v25/proto/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -42,6 +44,7 @@ "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/mariorion_v25/rules.mk b/keyboards/mariorion_v25/rules.mk new file mode 100644 index 0000000000..f0bfa47284 --- /dev/null +++ b/keyboards/mariorion_v25/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mariorion_v25/prod diff --git a/keyboards/marksard/leftover30/keyboard.json b/keyboards/marksard/leftover30/keyboard.json index 9983935f66..ae2250a5f2 100644 --- a/keyboards/marksard/leftover30/keyboard.json +++ b/keyboards/marksard/leftover30/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -56,7 +58,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/marksard/leftover30/keymaps/default/keymap.c b/keyboards/marksard/leftover30/keymaps/default/keymap.c index 08ee136e81..dcad144ebb 100644 --- a/keyboards/marksard/leftover30/keymaps/default/keymap.c +++ b/keyboards/marksard/leftover30/keymaps/default/keymap.c @@ -90,9 +90,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_PSCR, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_NUM, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NUM, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, KC_CAPS, + UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, KC_CAPS, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| _______, _______, _______, _______, KC_CAPS //`-----------------------------------------------------------------------------------------------------------' @@ -148,7 +148,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else if (IS_LAYER_ON(_RAISE)) { tap_code16((clockwise == true) ? S(KC_DOWN) : S(KC_UP)); } else { - tap_code((clockwise == true) ? MS_WHLD : MS_WHLU); + tap_code((clockwise == true) ? KC_WH_D : KC_WH_U); } } return true; diff --git a/keyboards/marksard/leftover30/keymaps/default_isoenter/keymap.c b/keyboards/marksard/leftover30/keymaps/default_isoenter/keymap.c index 2c15b3664f..e340ba5e3e 100644 --- a/keyboards/marksard/leftover30/keymaps/default_isoenter/keymap.c +++ b/keyboards/marksard/leftover30/keymaps/default_isoenter/keymap.c @@ -90,9 +90,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_PSCR, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_NUM, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NUM, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, + UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| _______, _______, _______, _______, KC_CAPS //`-----------------------------------------------------------------------------------------------------------' @@ -148,7 +148,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else if (IS_LAYER_ON(_RAISE)) { tap_code16((clockwise == true) ? S(KC_DOWN) : S(KC_UP)); } else { - tap_code((clockwise == true) ? MS_WHLD : MS_WHLU); + tap_code((clockwise == true) ? KC_WH_D : KC_WH_U); } } return true; diff --git a/keyboards/marksard/rhymestone/keymaps/default/keymap.c b/keyboards/marksard/rhymestone/keymaps/default/keymap.c index fb78a5049d..f566ab99eb 100644 --- a/keyboards/marksard/rhymestone/keymaps/default/keymap.c +++ b/keyboards/marksard/rhymestone/keymaps/default/keymap.c @@ -80,9 +80,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,---------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_NUM, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NUM, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, + UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ //,---------------------------------------------------------------------------------------------------. diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json index aaff1515e0..3fe23d6d94 100644 --- a/keyboards/marksard/rhymestone/rev1/keyboard.json +++ b/keyboards/marksard/rhymestone/rev1/keyboard.json @@ -44,7 +44,8 @@ "static_gradient": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/marksard/rhymestone/rules.mk b/keyboards/marksard/rhymestone/rules.mk new file mode 100644 index 0000000000..1833888708 --- /dev/null +++ b/keyboards/marksard/rhymestone/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = marksard/rhymestone/rev1 diff --git a/keyboards/marksard/treadstone32/info.json b/keyboards/marksard/treadstone32/info.json index 2de31ac08d..d93277472c 100644 --- a/keyboards/marksard/treadstone32/info.json +++ b/keyboards/marksard/treadstone32/info.json @@ -4,6 +4,8 @@ "maintainer": "marksard", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": true, "nkro": false diff --git a/keyboards/marksard/treadstone32/keymaps/default/keymap.c b/keyboards/marksard/treadstone32/keymaps/default/keymap.c index 93f2eaa91d..7e6aaf2009 100644 --- a/keyboards/marksard/treadstone32/keymaps/default/keymap.c +++ b/keyboards/marksard/treadstone32/keymaps/default/keymap.c @@ -101,9 +101,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,---------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_NUM, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NUM, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' _______, _______ // `---------|---------' @@ -139,7 +139,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; #ifdef RGBLIGHT_ENABLE //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/marksard/treadstone32/readme.md b/keyboards/marksard/treadstone32/readme.md index 4e3d544698..170c6bc761 100644 --- a/keyboards/marksard/treadstone32/readme.md +++ b/keyboards/marksard/treadstone32/readme.md @@ -4,7 +4,9 @@ A 32-key Symmetric staggered keyboard. -* Keyboard Maintainer: [marksard](https://github.com/marksard) +Keyboard Maintainer: [marksard](https://github.com/marksard) +Hardware Supported: The PCBs, controllers supported +Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/marksard/treadstone32/rules.mk b/keyboards/marksard/treadstone32/rules.mk new file mode 100644 index 0000000000..2d7ca16d86 --- /dev/null +++ b/keyboards/marksard/treadstone32/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = marksard/treadstone32/rev1 diff --git a/keyboards/marksard/treadstone48/keymaps/default/keymap.c b/keyboards/marksard/treadstone48/keymaps/default/keymap.c index 625894203e..276c8446cb 100644 --- a/keyboards/marksard/treadstone48/keymaps/default/keymap.c +++ b/keyboards/marksard/treadstone48/keymaps/default/keymap.c @@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_base( //,--------------------------------------------------------------------------------------------------------------------. - XXXXXXX, QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLU, KC_HOME, KC_PGUP, XXXXXXX, + XXXXXXX, QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| - XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, MS_WHLR, MS_WHLD, KC_END, KC_PGDN, XXXXXXX, + XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| - _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, MS_UP, + _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, KC_MS_U, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, + _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, //`-------------------------------------------------------------------------------------------------------------------' _______ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key. diff --git a/keyboards/marksard/treadstone48/readme.md b/keyboards/marksard/treadstone48/readme.md index 692891447c..c5f6f8f73f 100644 --- a/keyboards/marksard/treadstone48/readme.md +++ b/keyboards/marksard/treadstone48/readme.md @@ -4,7 +4,9 @@ A 47 (or 48) keys Symmetric Staggered keyboard. -* Keyboard Maintainer: [marksard](https://github.com/marksard) +Keyboard Maintainer: [marksard](https://github.com/marksard) +Hardware Supported: The PCBs, controllers supported +Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/keymap.c b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/keymap.c index 469cb94ee9..f7e5a068b5 100644 --- a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/keymap.c +++ b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/keymap.c @@ -132,13 +132,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_rs( // Treadstone48 Rhymestone //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------. - XXXXXXX, QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLU, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------| - XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, MS_WHLR, MS_WHLD, KC_END, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------| - _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, MS_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------| - _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------' _______ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key. diff --git a/keyboards/marksard/treadstone48/rules.mk b/keyboards/marksard/treadstone48/rules.mk new file mode 100644 index 0000000000..23865d27e6 --- /dev/null +++ b/keyboards/marksard/treadstone48/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = marksard/treadstone48/rev1 diff --git a/keyboards/massdrop/alt/alt.c b/keyboards/massdrop/alt/alt.c new file mode 100644 index 0000000000..c3ed246a4f --- /dev/null +++ b/keyboards/massdrop/alt/alt.c @@ -0,0 +1,21 @@ +/* +Copyright 2021 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "alt.h" + +/* Temporary solution for matrix delay */ +void matrix_output_select_delay(void) { matrix_io_delay(); } +void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {} diff --git a/keyboards/massdrop/alt/alt.h b/keyboards/massdrop/alt/alt.h new file mode 100644 index 0000000000..9fc6eac15e --- /dev/null +++ b/keyboards/massdrop/alt/alt.h @@ -0,0 +1,20 @@ +#pragma once + +#include "quantum.h" +#include "config_led.h" +#include "matrix.h" + +#include "i2c_master.h" +#include "md_rgb_matrix.h" //For led keycodes +#include "usb/udi_cdc.h" +#include "usb/usb_hub.h" + +#define TOGGLE_FLAG_AND_PRINT(var, name) { \ + if (var) { \ + dprintf(name " disabled\r\n"); \ + var = !var; \ + } else { \ + var = !var; \ + dprintf(name " enabled\r\n"); \ + } \ + } diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h new file mode 100644 index 0000000000..33991d4c8f --- /dev/null +++ b/keyboards/massdrop/alt/config.h @@ -0,0 +1,154 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + + +/* USB Device descriptor parameter */ +#define SERIAL_NUM "Unavailable" + +/* Temporary solution for matrix delay */ +#define IGNORE_ATOMIC_BLOCK + +/* Avoid out-of-bounds errors when SmartEEPROM is not enabled */ +#define EEPROM_SIZE 1024 + +/* MCU Port name definitions */ +#define PA 0 +#define PB 1 + +/* This Shift Register expands available hardware output lines to control additional peripherals */ +/* It uses four lines from the MCU to provide 16 output lines */ +/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ +#define SR_EXP_RCLK_PIN B14 +/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ +#define SR_EXP_OE_PIN B15 +/* SERCOM port to use for Shift Register SPI */ +/* DATAOUT and SCLK must be configured to use hardware pins of this port */ +#define SPI_SERCOM SERCOM2 +/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ +#define SPI_DATAOUT_PIN A12 +#define SPI_DATAOUT_MUX 2 +/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ +#define SPI_SCLK_PIN A13 +#define SPI_SCLK_MUX 2 + +/* Debug LED (Small LED Located near MCU) */ +#define DEBUG_LED_ENABLE 1 +#define DEBUG_LED_PORT PA +#define DEBUG_LED_PIN 27 + +/* Additional debugging ports */ +/* PCB M21 */ +#define DEBUG_PORT1_ENABLE 1 +#define DEBUG_PORT1_PORT PB +#define DEBUG_PORT1_PIN 3 +/* PCB M23 */ +#define DEBUG_PORT2_ENABLE 1 +#define DEBUG_PORT2_PORT PB +#define DEBUG_PORT2_PIN 17 +/* PCB M25 */ +#define DEBUG_PORT3_ENABLE 1 +#define DEBUG_PORT3_PORT PA +#define DEBUG_PORT3_PIN 20 + +/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ +/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ +/* Feature is automatically disabled after successful boot */ +/* PCB M27 */ +#define DEBUG_BOOT_TRACING_ENABLE 1 +#define DEBUG_BOOT_TRACING_PORT PB +#define DEBUG_BOOT_TRACING_PIN 23 + +/* USB2422 config */ +#define USB2422_ADDRESS 0x58 +#define USB2422_VENDOR_ID 0x04D8 +#define USB2422_PRODUCT_ID 0xEEC5 +#define USB2422_DEVICE_VER 0x0101 +#define USB2422_MANUFACTURER "Massdrop Inc." +#define USB2422_PRODUCT "Massdrop Hub" +#define USB2422_ACTIVE_PIN A18 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_LED_PROCESS_LIMIT 15 +#define RGB_MATRIX_LED_FLUSH_LIMIT 10 +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#include "config_led.h" diff --git a/keyboards/massdrop/alt/config_led.c b/keyboards/massdrop/alt/config_led.c new file mode 100644 index 0000000000..963282db1e --- /dev/null +++ b/keyboards/massdrop/alt/config_led.c @@ -0,0 +1,62 @@ +#ifdef RGB_MATRIX_ENABLE +#include "alt.h" + +#include "md_rgb_matrix.h" +#include "rgb_matrix.h" +#include "config_led.h" + +// This table can be almost-automatically derived from ISSI3733_LED_MAP that is +// defined in config_led.h + +// You can calculate the (0-244, 0-64) x/y values from the x/y values defined in +// ISSI3733_LED_MAP with the following formula: +// uint8_t rgb_x = ((ISSI3733_LED_MAP[i].x - MIN_X) / (MAX_X - MIN_X)) * 224; +// uint8_t rgb_y = ((ISSI3733_LED_MAP[i].y - MIN_Y) / (MAX_Y - MIN_Y)) * 64; +// Where the min/max vars are the minimum and maximum "bounds" of x/y values +// present in ISSI3733_LED_MAP +// +// The row/col values need to be manually tweaked though, compensating for the +// "empty" cells that are a product of larger keys +// +// There is a quick-and-dirty implementation of this under ledvis.html + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, + { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } +}, { + { 8, 56 }, { 22, 56 }, { 35, 56 }, { 49, 56 }, { 63, 56 }, { 77, 56 }, { 91, 56 }, { 105, 56 }, { 118, 56 }, { 132, 56 }, { 146, 56 }, { 160, 56 }, { 174, 56 }, { 195, 56 }, { 215, 56 }, + { 11, 44 }, { 28, 44 }, { 42, 44 }, { 56, 44 }, { 70, 44 }, { 84, 44 }, { 98, 44 }, { 112, 44 }, { 125, 44 }, { 139, 44 }, { 153, 44 }, { 167, 44 }, { 181, 44 }, { 198, 44 }, { 215, 44 }, + { 13, 32 }, { 32, 32 }, { 46, 32 }, { 60, 32 }, { 73, 32 }, { 87, 32 }, { 101, 32 }, { 115, 32 }, { 129, 32 }, { 143, 32 }, { 156, 32 }, { 170, 32 }, { 193, 32 }, { 215, 32 }, { 16, 19 }, + { 39, 19 }, { 53, 19 }, { 67, 19 }, { 80, 19 }, { 94, 19 }, { 108, 19 }, { 122, 19 }, { 136, 19 }, { 150, 19 }, { 163, 19 }, { 182, 19 }, { 201, 19 }, { 215, 19 }, { 9, 7 }, { 27, 7 }, + { 44, 7 }, { 96, 7 }, { 148, 7 }, { 165, 7 }, { 188, 7 }, { 201, 7 }, { 215, 7 }, + // Underglow LEDs + { 1, 1 }, { 15, 0 }, { 31, 0 }, { 47, 0 }, { 63, 0 }, { 79, 0 }, { 95, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 222, 1 }, + { 224, 13 }, { 224, 25 }, { 224, 38 }, { 224, 50 }, { 222, 62 }, { 191, 64 }, { 179, 64 }, { 167, 64 }, { 153, 64 }, { 139, 64 }, { 125, 64 }, { 112, 64 }, { 98, 64 }, { 84, 64 }, { 70, 64 }, + { 56, 64 }, { 42, 64 }, { 28, 64 }, { 1, 62 }, { 0, 50 }, { 0, 38 }, { 0, 25 }, { 0, 13 } +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, + // Underglow LEDs + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2 +} }; + + +#ifdef USB_LED_INDICATOR_ENABLE +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + md_rgb_matrix_indicators_advanced(led_min, led_max); + return true; +} +#endif // USB_LED_INDICATOR_ENABLE + +#endif diff --git a/keyboards/massdrop/alt/config_led.h b/keyboards/massdrop/alt/config_led.h new file mode 100644 index 0000000000..770a430d3c --- /dev/null +++ b/keyboards/massdrop/alt/config_led.h @@ -0,0 +1,178 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//Define number of ISSI3733 drivers being used (1...16) +#define ISSI3733_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT + +//Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic) +#define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE } + +//LED I2C bus speed +#define I2C_HZ 580000 + +//Count of LED bodies +#define ISSI3733_LED_COUNT 105 + +#define LED_GCR_MAX 165 //Max GCR value (0 - 255) WARNING: Raising this value may overload the LED drivers and USB bus +#define LED_GCR_STEP 10 //GCR increment/decrement value + +#ifdef USE_MASSDROP_CONFIGURATOR +#define ANIMATION_SPEED_STEP 1 + +#define BREATHE_STEP 1 +#define BREATHE_MIN_STEP 0 +#define BREATHE_MAX_STEP 255 +#endif + +//Default Global Current Register value (Default brightness 0 - 255) +#define ISSI3733_GCR_DEFAULT LED_GCR_MAX + +//Automatic power rollback and recovery +#define V5_HIGH 2540 //5V high level (After low power detect, point at which LEDs are allowed to use more power ) +#define V5_LOW 2480 //5V low level (LED power rolled back to stay above this limit) +#define V5_CAT 2200 //5V catastrophic level (Host USB port potential to shut down) + +//LED Mapping - More practically generated from a spreadsheet program +//id: ID of the LED (Sync with PCB callouts) +//x: Physical X coordinate of LED (units do not matter) +//y: Physical Y coordinate of LED (units do not matter) +//drv: 1-Based index of ISSI3773_DRIVER_ADDRESSES +//cs: Matrix wiring CS col (1-16) +//swr: Matrix wiring SW Red row (1-12) +//swg: Matrix wiring SW Green row (1-12) +//swb: Matrix wiring SW Blue row (1-12) +//scan: Associated key matrix scancode (set 255 if none or 254 for LED to turn off in alternating mode) +//Note: Origin 0,0 may be located anywhere as the software will do the final layout +#define ISSI3733_LED_MAP { \ + { .id = 1, .x = 0, .y = 0, .adr = { .drv = 2, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 0 }, \ + { .id = 2, .x = 0.75, .y = 0, .adr = { .drv = 2, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 1 }, \ + { .id = 3, .x = 1.5, .y = 0, .adr = { .drv = 2, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 2 }, \ + { .id = 4, .x = 2.25, .y = 0, .adr = { .drv = 2, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 3 }, \ + { .id = 5, .x = 3, .y = 0, .adr = { .drv = 2, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 4 }, \ + { .id = 6, .x = 3.75, .y = 0, .adr = { .drv = 2, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 5 }, \ + { .id = 7, .x = 4.5, .y = 0, .adr = { .drv = 2, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 6 }, \ + { .id = 8, .x = 5.25, .y = 0, .adr = { .drv = 2, .cs = 13, .swr = 2, .swg = 1, .swb = 3 }, .scan = 7 }, \ + { .id = 9, .x = 6, .y = 0, .adr = { .drv = 1, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 8 }, \ + { .id = 10, .x = 6.75, .y = 0, .adr = { .drv = 1, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 9 }, \ + { .id = 11, .x = 7.5, .y = 0, .adr = { .drv = 1, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 10 }, \ + { .id = 12, .x = 8.25, .y = 0, .adr = { .drv = 1, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 11 }, \ + { .id = 13, .x = 9, .y = 0, .adr = { .drv = 1, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 12 }, \ + { .id = 14, .x = 10.125, .y = 0, .adr = { .drv = 1, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 13 }, \ + { .id = 15, .x = 11.25, .y = 0, .adr = { .drv = 1, .cs = 7, .swr = 2, .swg = 1, .swb = 3 }, .scan = 14 }, \ + { .id = 16, .x = 0.188, .y = -0.75, .adr = { .drv = 2, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 15 }, \ + { .id = 17, .x = 1.125, .y = -0.75, .adr = { .drv = 2, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 16 }, \ + { .id = 18, .x = 1.875, .y = -0.75, .adr = { .drv = 2, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 17 }, \ + { .id = 19, .x = 2.625, .y = -0.75, .adr = { .drv = 2, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 18 }, \ + { .id = 20, .x = 3.375, .y = -0.75, .adr = { .drv = 2, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 19 }, \ + { .id = 21, .x = 4.125, .y = -0.75, .adr = { .drv = 2, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 20 }, \ + { .id = 22, .x = 4.875, .y = -0.75, .adr = { .drv = 2, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 21 }, \ + { .id = 23, .x = 5.625, .y = -0.75, .adr = { .drv = 1, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 22 }, \ + { .id = 24, .x = 6.375, .y = -0.75, .adr = { .drv = 1, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 23 }, \ + { .id = 25, .x = 7.125, .y = -0.75, .adr = { .drv = 1, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 24 }, \ + { .id = 26, .x = 7.875, .y = -0.75, .adr = { .drv = 1, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 25 }, \ + { .id = 27, .x = 8.625, .y = -0.75, .adr = { .drv = 1, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 26 }, \ + { .id = 28, .x = 9.375, .y = -0.75, .adr = { .drv = 1, .cs = 11, .swr = 11, .swg = 10, .swb = 12 }, .scan = 27 }, \ + { .id = 29, .x = 10.313, .y = -0.75, .adr = { .drv = 1, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 28 }, \ + { .id = 30, .x = 11.25, .y = -0.75, .adr = { .drv = 1, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 29 }, \ + { .id = 31, .x = 0.281, .y = -1.5, .adr = { .drv = 2, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 30 }, \ + { .id = 32, .x = 1.313, .y = -1.5, .adr = { .drv = 2, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 31 }, \ + { .id = 33, .x = 2.063, .y = -1.5, .adr = { .drv = 2, .cs = 4, .swr = 11, .swg = 10, .swb = 12 }, .scan = 32 }, \ + { .id = 34, .x = 2.813, .y = -1.5, .adr = { .drv = 2, .cs = 5, .swr = 11, .swg = 10, .swb = 12 }, .scan = 33 }, \ + { .id = 35, .x = 3.563, .y = -1.5, .adr = { .drv = 2, .cs = 6, .swr = 11, .swg = 10, .swb = 12 }, .scan = 34 }, \ + { .id = 36, .x = 4.313, .y = -1.5, .adr = { .drv = 2, .cs = 7, .swr = 11, .swg = 10, .swb = 12 }, .scan = 35 }, \ + { .id = 37, .x = 5.063, .y = -1.5, .adr = { .drv = 2, .cs = 8, .swr = 11, .swg = 10, .swb = 12 }, .scan = 36 }, \ + { .id = 38, .x = 5.813, .y = -1.5, .adr = { .drv = 1, .cs = 1, .swr = 11, .swg = 10, .swb = 12 }, .scan = 37 }, \ + { .id = 39, .x = 6.563, .y = -1.5, .adr = { .drv = 1, .cs = 2, .swr = 11, .swg = 10, .swb = 12 }, .scan = 38 }, \ + { .id = 40, .x = 7.313, .y = -1.5, .adr = { .drv = 1, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 39 }, \ + { .id = 41, .x = 8.063, .y = -1.5, .adr = { .drv = 1, .cs = 4, .swr = 11, .swg = 10, .swb = 12 }, .scan = 40 }, \ + { .id = 42, .x = 8.813, .y = -1.5, .adr = { .drv = 1, .cs = 5, .swr = 11, .swg = 10, .swb = 12 }, .scan = 41 }, \ + { .id = 43, .x = 10.031, .y = -1.5, .adr = { .drv = 1, .cs = 6, .swr = 11, .swg = 10, .swb = 12 }, .scan = 43 }, \ + { .id = 44, .x = 11.25, .y = -1.5, .adr = { .drv = 1, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 44 }, \ + { .id = 45, .x = 0.469, .y = -2.25, .adr = { .drv = 2, .cs = 2, .swr = 11, .swg = 10, .swb = 12 }, .scan = 45 }, \ + { .id = 46, .x = 1.688, .y = -2.25, .adr = { .drv = 2, .cs = 9, .swr = 5, .swg = 4, .swb = 6 }, .scan = 47 }, \ + { .id = 47, .x = 2.438, .y = -2.25, .adr = { .drv = 2, .cs = 9, .swr = 2, .swg = 1, .swb = 3 }, .scan = 48 }, \ + { .id = 48, .x = 3.188, .y = -2.25, .adr = { .drv = 2, .cs = 9, .swr = 11, .swg = 10, .swb = 12 }, .scan = 49 }, \ + { .id = 49, .x = 3.938, .y = -2.25, .adr = { .drv = 2, .cs = 9, .swr = 8, .swg = 7, .swb = 9 }, .scan = 50 }, \ + { .id = 50, .x = 4.688, .y = -2.25, .adr = { .drv = 2, .cs = 12, .swr = 11, .swg = 10, .swb = 12 }, .scan = 51 }, \ + { .id = 51, .x = 5.438, .y = -2.25, .adr = { .drv = 2, .cs = 13, .swr = 11, .swg = 10, .swb = 12 }, .scan = 52 }, \ + { .id = 52, .x = 6.188, .y = -2.25, .adr = { .drv = 1, .cs = 9, .swr = 11, .swg = 10, .swb = 12 }, .scan = 53 }, \ + { .id = 53, .x = 6.938, .y = -2.25, .adr = { .drv = 1, .cs = 10, .swr = 11, .swg = 10, .swb = 12 }, .scan = 54 }, \ + { .id = 54, .x = 7.688, .y = -2.25, .adr = { .drv = 1, .cs = 10, .swr = 8, .swg = 7, .swb = 9 }, .scan = 55 }, \ + { .id = 55, .x = 8.438, .y = -2.25, .adr = { .drv = 1, .cs = 11, .swr = 8, .swg = 7, .swb = 9 }, .scan = 56 }, \ + { .id = 56, .x = 9.469, .y = -2.25, .adr = { .drv = 1, .cs = 11, .swr = 2, .swg = 1, .swb = 3 }, .scan = 57 }, \ + { .id = 57, .x = 10.5, .y = -2.25, .adr = { .drv = 1, .cs = 11, .swr = 5, .swg = 4, .swb = 6 }, .scan = 58 }, \ + { .id = 58, .x = 11.25, .y = -2.25, .adr = { .drv = 1, .cs = 7, .swr = 11, .swg = 10, .swb = 12 }, .scan = 59 }, \ + { .id = 59, .x = 0.094, .y = -3, .adr = { .drv = 2, .cs = 10, .swr = 8, .swg = 7, .swb = 9 }, .scan = 60 }, \ + { .id = 60, .x = 1.031, .y = -3, .adr = { .drv = 2, .cs = 10, .swr = 5, .swg = 4, .swb = 6 }, .scan = 61 }, \ + { .id = 61, .x = 1.969, .y = -3, .adr = { .drv = 2, .cs = 10, .swr = 2, .swg = 1, .swb = 3 }, .scan = 62 }, \ + { .id = 62, .x = 4.781, .y = -3, .adr = { .drv = 2, .cs = 12, .swr = 8, .swg = 7, .swb = 9 }, .scan = 66 }, \ + { .id = 63, .x = 7.594, .y = -3, .adr = { .drv = 1, .cs = 10, .swr = 5, .swg = 4, .swb = 6 }, .scan = 70 }, \ + { .id = 64, .x = 8.531, .y = -3, .adr = { .drv = 1, .cs = 10, .swr = 2, .swg = 1, .swb = 3 }, .scan = 71 }, \ + { .id = 65, .x = 9.75, .y = -3, .adr = { .drv = 1, .cs = 12, .swr = 2, .swg = 1, .swb = 3 }, .scan = 72 }, \ + { .id = 66, .x = 10.5, .y = -3, .adr = { .drv = 1, .cs = 12, .swr = 8, .swg = 7, .swb = 9 }, .scan = 73 }, \ + { .id = 67, .x = 11.25, .y = -3, .adr = { .drv = 1, .cs = 12, .swr = 5, .swg = 4, .swb = 6 }, .scan = 74 }, \ + { .id = 68, .x = -0.338, .y = -3.338, .adr = { .drv = 2, .cs = 11, .swr = 11, .swg = 10, .swb = 12 }, .scan = 255 }, \ + { .id = 69, .x = 0.39, .y = -3.443, .adr = { .drv = 2, .cs = 11, .swr = 8, .swg = 7, .swb = 9 }, .scan = 254 }, \ + { .id = 70, .x = 1.263, .y = -3.443, .adr = { .drv = 2, .cs = 11, .swr = 5, .swg = 4, .swb = 6 }, .scan = 255 }, \ + { .id = 71, .x = 2.135, .y = -3.443, .adr = { .drv = 2, .cs = 11, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 72, .x = 3.008, .y = -3.443, .adr = { .drv = 2, .cs = 12, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 73, .x = 3.88, .y = -3.443, .adr = { .drv = 2, .cs = 12, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ + { .id = 74, .x = 4.753, .y = -3.443, .adr = { .drv = 2, .cs = 13, .swr = 5, .swg = 4, .swb = 6 }, .scan = 255 }, \ + { .id = 75, .x = 5.625, .y = -3.443, .adr = { .drv = 2, .cs = 13, .swr = 8, .swg = 7, .swb = 9 }, .scan = 254 }, \ + { .id = 76, .x = 6.497, .y = -3.443, .adr = { .drv = 1, .cs = 9, .swr = 8, .swg = 7, .swb = 9 }, .scan = 255 }, \ + { .id = 77, .x = 7.37, .y = -3.443, .adr = { .drv = 1, .cs = 9, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ + { .id = 78, .x = 8.242, .y = -3.443, .adr = { .drv = 1, .cs = 9, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 79, .x = 9.115, .y = -3.443, .adr = { .drv = 1, .cs = 13, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 80, .x = 9.987, .y = -3.443, .adr = { .drv = 1, .cs = 13, .swr = 8, .swg = 7, .swb = 9 }, .scan = 255 }, \ + { .id = 81, .x = 10.86, .y = -3.443, .adr = { .drv = 1, .cs = 13, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ + { .id = 82, .x = 11.588, .y = -3.338, .adr = { .drv = 1, .cs = 13, .swr = 11, .swg = 10, .swb = 12 }, .scan = 255 }, \ + { .id = 83, .x = 11.693, .y = -2.623, .adr = { .drv = 1, .cs = 12, .swr = 11, .swg = 10, .swb = 12 }, .scan = 254 }, \ + { .id = 84, .x = 11.693, .y = -1.873, .adr = { .drv = 1, .cs = 8, .swr = 11, .swg = 10, .swb = 12 }, .scan = 255 }, \ + { .id = 85, .x = 11.693, .y = -1.123, .adr = { .drv = 1, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 255 }, \ + { .id = 86, .x = 11.693, .y = -0.373, .adr = { .drv = 1, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ + { .id = 87, .x = 11.588, .y = 0.338, .adr = { .drv = 1, .cs = 8, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 88, .x = 9.908, .y = 0.443, .adr = { .drv = 1, .cs = 6, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 89, .x = 9.288, .y = 0.443, .adr = { .drv = 1, .cs = 5, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 90, .x = 8.625, .y = 0.443, .adr = { .drv = 1, .cs = 4, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 91, .x = 7.875, .y = 0.443, .adr = { .drv = 1, .cs = 3, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 92, .x = 7.125, .y = 0.443, .adr = { .drv = 1, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 93, .x = 6.375, .y = 0.443, .adr = { .drv = 1, .cs = 1, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 94, .x = 5.625, .y = 0.443, .adr = { .drv = 1, .cs = 14, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 95, .x = 4.875, .y = 0.443, .adr = { .drv = 2, .cs = 8, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 96, .x = 4.125, .y = 0.443, .adr = { .drv = 2, .cs = 7, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 97, .x = 3.375, .y = 0.443, .adr = { .drv = 2, .cs = 6, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 98, .x = 2.625, .y = 0.443, .adr = { .drv = 2, .cs = 5, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 99, .x = 1.875, .y = 0.443, .adr = { .drv = 2, .cs = 4, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 100, .x = 1.125, .y = 0.443, .adr = { .drv = 2, .cs = 3, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 101, .x = -0.338, .y = 0.338, .adr = { .drv = 2, .cs = 1, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 102, .x = -0.443, .y = -0.373, .adr = { .drv = 2, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ + { .id = 103, .x = -0.443, .y = -1.123, .adr = { .drv = 2, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 255 }, \ + { .id = 104, .x = -0.443, .y = -1.873, .adr = { .drv = 2, .cs = 1, .swr = 11, .swg = 10, .swb = 12 }, .scan = 255 }, \ + { .id = 105, .x = -0.443, .y = -2.623, .adr = { .drv = 2, .cs = 10, .swr = 11, .swg = 10, .swb = 12 }, .scan = 254 }, \ +}; + +#define USB_LED_INDICATOR_ENABLE //Comment out to disable indicator functionality +#ifdef USB_LED_INDICATOR_ENABLE //Scan codes refer to actual key matrix codes, not KC_* (255 to disable) + #define USB_LED_NUM_LOCK_SCANCODE 255 + #define USB_LED_CAPS_LOCK_SCANCODE 30 + #define USB_LED_SCROLL_LOCK_SCANCODE 255 + #define USB_LED_COMPOSE_SCANCODE 255 + #define USB_LED_KANA_SCANCODE 255 +#endif //USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/alt/keyboard.json b/keyboards/massdrop/alt/keyboard.json new file mode 100644 index 0000000000..7598a43b7d --- /dev/null +++ b/keyboards/massdrop/alt/keyboard.json @@ -0,0 +1,107 @@ +{ + "keyboard_name": "ALT Keyboard", + "manufacturer": "Massdrop Inc.", + "url": "https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard", + "maintainer": "Massdrop", + "usb": { + "vid": "0x04D8", + "pid": "0xEED3", + "device_version": "1.0.1" + }, + "rgb_matrix": { + "driver": "custom" + }, + "matrix_pins": { + "cols": ["B04", "B05", "B06", "B07", "B08", "B09", "B10", "B11", "B12", "B13", "A05", "A06", "A07", "A10", "A11"], + "rows": ["A00", "A01", "A02", "A03", "A04"] + }, + "diode_direction": "COL2ROW", + "community_layouts": ["65_ansi_blocker"], + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/massdrop/alt/keymaps/default/keymap.c b/keyboards/massdrop/alt/keymaps/default/keymap.c new file mode 100644 index 0000000000..91882e04da --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/default/keymap.c @@ -0,0 +1,115 @@ +#include QMK_KEYBOARD_H + +enum alt_keycodes { + U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active + U_T_AGCR, //USB Toggle Automatic GCR control + DBG_TOG, //DEBUG Toggle On / Off + DBG_MTRX, //DEBUG Toggle Matrix Prints + DBG_KBD, //DEBUG Toggle Keyboard Prints + DBG_MOU, //DEBUG Toggle Mouse Prints + MD_BOOT, //Restart into bootloader after hold timeout +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + 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, _______, KC_MUTE, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + /* + [X] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + */ +}; + +#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT)) +#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL)) +#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + + switch (keycode) { + case U_T_AUTO: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; //Process all other keycodes normally + } +} diff --git a/keyboards/massdrop/alt/keymaps/default_md/keymap.c b/keyboards/massdrop/alt/keymaps/default_md/keymap.c new file mode 100644 index 0000000000..2c468ff918 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/default_md/keymap.c @@ -0,0 +1,296 @@ +#include QMK_KEYBOARD_H + +enum alt_keycodes { + L_BRI = SAFE_RANGE, //LED Brightness Increase //Working + L_BRD, //LED Brightness Decrease //Working + L_EDG_I, //LED Edge Brightness Increase + L_EDG_D, //LED Edge Brightness Decrease + L_EDG_M, //LED Edge lighting mode + L_PTN, //LED Pattern Select Next //Working + L_PTP, //LED Pattern Select Previous //Working + L_PSI, //LED Pattern Speed Increase //Working + L_PSD, //LED Pattern Speed Decrease //Working + L_RATIOD, + L_RATIOI, + L_T_MD, //LED Toggle Mode //Working + L_T_ONF, //LED Toggle On / Off //Broken + L_ON, //LED On //Broken + L_OFF, //LED Off //Broken + L_T_BR, //LED Toggle Breath Effect //Working + L_T_PTD, //LED Toggle Scrolling Pattern Direction //Working + U_T_AGCR, //USB Toggle Automatic GCR control //Working + DBG_TOG, //DEBUG Toggle On / Off // + DBG_MTRX, //DEBUG Toggle Matrix Prints // + DBG_KBD, //DEBUG Toggle Keyboard Prints // + DBG_MOU, //DEBUG Toggle Mouse Prints // + DBG_FAC, //DEBUG Factory light testing (All on white) + MD_BOOT //Restart into bootloader after hold timeout //Working +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + 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, _______, KC_MUTE, + L_T_BR, L_PSD, L_BRI, L_PSI, L_EDG_I, _______, _______, _______, U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + L_T_PTD, L_PTP, L_BRD, L_PTN, L_EDG_D, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, L_T_MD, L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, DBG_FAC, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + /* + [X] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + */ +}; + +#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT)) +#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL)) +#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + static uint8_t scroll_effect = 0; + + switch (keycode) { + case L_BRI ... U_T_AGCR: + if (record->event.pressed) { + md_led_changed(); + } + break; + } + + switch (keycode) { + case L_BRI: + if (record->event.pressed) { + if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX; + else gcr_desired += LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_BRD: + if (record->event.pressed) { + if (LED_GCR_STEP > gcr_desired) gcr_desired = 0; + else gcr_desired -= LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_EDG_M: + if (record->event.pressed) { + led_edge_mode++; + if (led_edge_mode > LED_EDGE_MODE_MAX) { + led_edge_mode = LED_EDGE_MODE_ALL; + } + } + return false; + case L_EDG_I: + if (record->event.pressed) { + led_edge_brightness += 0.1; + if (led_edge_brightness > 1) { led_edge_brightness = 1; } + } + return false; + case L_EDG_D: + if (record->event.pressed) { + led_edge_brightness -= 0.1; + if (led_edge_brightness < 0) { led_edge_brightness = 0; } + } + return false; + case L_RATIOI: + if (record->event.pressed) { + led_ratio_brightness += 0.2; + if (led_ratio_brightness > 2.0) { led_ratio_brightness = 2.0; } + } + return false; + case L_RATIOD: + if (record->event.pressed) { + led_ratio_brightness -= 0.2; + if (led_ratio_brightness < 0.0) { led_ratio_brightness = 0.0; } + } + return false; + case L_PTN: + if (record->event.pressed) { + if (led_animation_id == led_setups_count - 1) led_animation_id = 0; + else led_animation_id++; + } + return false; + case L_PTP: + if (record->event.pressed) { + if (led_animation_id == 0) led_animation_id = led_setups_count - 1; + else led_animation_id--; + } + return false; + case L_PSI: + if (record->event.pressed) { + led_animation_speed += ANIMATION_SPEED_STEP; + } + return false; + case L_PSD: + if (record->event.pressed) { + led_animation_speed -= ANIMATION_SPEED_STEP; + if (led_animation_speed < 0) led_animation_speed = 0; + } + return false; + case L_T_MD: + if (record->event.pressed) { + led_lighting_mode++; + if (led_lighting_mode > LED_MODE_MAX_INDEX) led_lighting_mode = LED_MODE_NORMAL; + } + return false; + case L_T_ONF: + if (record->event.pressed) { + led_enabled = !led_enabled; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_ON: + if (record->event.pressed) { + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_OFF: + if (record->event.pressed) { + led_enabled = 0; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_T_BR: + if (record->event.pressed) { + led_animation_breathing = !led_animation_breathing; + if (led_animation_breathing) { + gcr_breathe = gcr_desired; + led_animation_breathe_cur = BREATHE_MIN_STEP; + breathe_dir = 1; + } + } + return false; + case L_T_PTD: + if (record->event.pressed) { + scroll_effect++; + if (scroll_effect == 1) { //Patterns with scroll move horizontal (Right to left) + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 0; + } else if (scroll_effect == 2) { //Patterns with scroll move vertical (Top to bottom) + led_animation_direction = 1; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 3) { //Patterns with scroll move vertical (Bottom to top) + led_animation_direction = 0; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 4) { //Patterns with scroll explode from center + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 1; + } else if (scroll_effect == 5) { //Patterns with scroll implode on center + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 1; + } else { //Patterns with scroll move horizontal (Left to right) + scroll_effect = 0; + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 0; + } + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_FAC: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + led_lighting_mode = LED_MODE_NORMAL; + led_edge_brightness = 1; + led_edge_mode = LED_EDGE_MODE_ALL; + led_animation_breathing = 0; + led_animation_id = 7; //led_programs.c led_setups leds_white index + gcr_desired = LED_GCR_MAX; + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + default: + return true; //Process all other keycodes normally + } +} + +led_instruction_t led_instructions[] = { + //LEDs are normally inactive, no processing is performed on them + //Flags are used in matching criteria for an LED to be active and indicate how to color it + //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_) + //LED IDs can be found in config_led.h in the keyboard's directory + //Examples are below + + //All LEDs use the user's selected pattern (this is the factory default) + { .flags = LED_FLAG_USE_ROTATE_PATTERN }, + + //Specific LEDs use the user's selected pattern while all others are off + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_ROTATE_PATTERN, .id0 = 0xFFFFFFFF, .id1 = 0xAAAAAAAA, .id2 = 0x55555555, .id3 = 0x11111111 }, + + //Specific LEDs use specified RGB values while all others are off + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_RGB, .id0 = 0xFF, .id1 = 0x00FF, .id2 = 0x0000FF00, .id3 = 0xFF000000, .r = 75, .g = 150, .b = 225 }, + + //All LEDs use the user's selected pattern + //On layer 1, all key LEDs (except the top row which keeps active pattern) are red while all edge LEDs are green + //When layer 1 is active, key LEDs use red (id0 32 - 16: 1111 1111 1111 1111 1000 0000 0000 0000 = 0xFFFF8000) (except top row 15 - 1) + //When layer 1 is active, key LEDs use red (id1 64 - 33: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //When layer 1 is active, key LEDs use red (id2 67 - 65: 0000 0000 0000 0000 0000 0000 0000 0111 = 0x00000007) + //When layer 1 is active, edge LEDs use green (id2 95 - 68: 1111 1111 1111 1111 1111 1111 1111 1000 = 0xFFFFFFF8) + //When layer 1 is active, edge LEDs use green (id3 105 - 96: 0000 0000 0000 0000 0000 0011 1111 1111 = 0x000003FF) + // { .flags = LED_FLAG_USE_ROTATE_PATTERN }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0xFFFF8000, .id1 = 0xFFFFFFFF, .id2 = 0x00000007, .r = 255, .layer = 1 }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id2 = 0xFFFFFFF8, .id3 = 0x000003FF, .g = 127, .layer = 1 }, + + //All key LEDs use red while edge LEDs use the active pattern + //All key LEDs use red (id0 32 - 1: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //All key LEDs use red (id1 64 - 33: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //All key LEDs use red (id2 67 - 65: 0000 0000 0000 0000 0000 0000 0000 0111 = 0x00000007) + //Edge uses active pattern (id2 95 - 68: 1111 1111 1111 1111 1111 1111 1111 1000 = 0xFFFFFFF8) + //Edge uses active pattern (id3 105 - 96: 0000 0000 0000 0000 0000 0011 1111 1111 = 0x000003FF) + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_RGB, .id0 = 0xFFFFFFFF, .id1 = 0xFFFFFFFF, .id2 = 0x00000007, .r = 255 }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_ROTATE_PATTERN , .id2 = 0xFFFFFFF8, .id3 = 0x000003FF }, + + //end must be set to 1 to indicate end of instruction set + { .end = 1 } +}; diff --git a/keyboards/massdrop/alt/keymaps/default_md/rules.mk b/keyboards/massdrop/alt/keymaps/default_md/rules.mk new file mode 100644 index 0000000000..064a6f54c1 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/default_md/rules.mk @@ -0,0 +1,2 @@ +# This keymap requires Massdrop Configurator support +OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md new file mode 100644 index 0000000000..bf33b2048f --- /dev/null +++ b/keyboards/massdrop/alt/readme.md @@ -0,0 +1,20 @@ +# ALT + +![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) + +The Massdrop ALT is a 65% mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +Keyboard Maintainer: [Massdrop](https://github.com/massdrop) +Hardware Supported: Massdrop, Inc. ALT PCBs utilizing Microchip's ATSAMD51J18A MCU and USB2422 2-Port USB 2.0 Hi-Speed Hub Controller, and ISSI's IS31FL3733 LED Drivers. +Hardware Availability: [Massdrop ALT Mechanical Keyboard](https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make massdrop/alt:default + +For information on flashing this keyboard, visit the following links: + +[Massdrop Loader Releases](https://github.com/Massdrop/mdloader/releases) +[Massdrop Loader Repository and Instructions](https://github.com/Massdrop/mdloader) + +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). diff --git a/keyboards/massdrop/alt/rules.mk b/keyboards/massdrop/alt/rules.mk new file mode 100644 index 0000000000..869853e858 --- /dev/null +++ b/keyboards/massdrop/alt/rules.mk @@ -0,0 +1,9 @@ +# project specific files +SRC += config_led.c + +#For platform and packs +ARM_ATSAM = SAMD51J18A +MCU = cortex-m4 + +# Bootloader selection +BOOTLOADER = md-boot diff --git a/keyboards/massdrop/ctrl/DOCUMENTATION.md b/keyboards/massdrop/ctrl/DOCUMENTATION.md new file mode 100644 index 0000000000..6b3206ab91 --- /dev/null +++ b/keyboards/massdrop/ctrl/DOCUMENTATION.md @@ -0,0 +1,29 @@ +# Massdrop CTRL Documentation + +This is a WIP and will contine to be updated for some time in the future. + +This doc will include all currently available information, including low level information, for the CTRL keyboard collected from code committed by Drop, Inc. and freely available sources. It will also include a deprecation list of code committed by Drop, Inc. that is no longer needed and a TODO list for necessary code fixes and changes for existing protocol and a list of suggested improvements. This is the hopes of making MD CTRL fully QMK compatible by improving the existing protocol and/or perhaps working on a ChibiOS port at one point. + +**Note**: given that all Drop, Inc. keyboards to date have used the same MCU and the same protocol, the MCU and protocol documentation should apply to all keyboards in Massdrop folder. Most HID-related information however is product-specific and will not apply to other keyboards. + +### MCU + +* Microchip Technology SAMD51J18A +* RISC 32-Bit +* 120MHz Cortex®-M4 +* [Datasheet](https://www.datasheets360.com/pdf/3214995481162464753) + +### HID descriptor + +* VENDOR_ID 0x04D8 +* PRODUCT_ID 0xEED2 +* DEVICE_VER 0x0101 +* MANUFACTURER "Massdrop Inc." +* PRODUCT "CTRL Keyboard" + +### USB Hub descriptor + +* VENDOR_ID 0x04D8 +* PRODUCT_ID 0xEEC5 +* MANUFACTURER "Massdrop Inc." +* PRODUCT "Massdrop Hub" diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h new file mode 100644 index 0000000000..33991d4c8f --- /dev/null +++ b/keyboards/massdrop/ctrl/config.h @@ -0,0 +1,154 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + + +/* USB Device descriptor parameter */ +#define SERIAL_NUM "Unavailable" + +/* Temporary solution for matrix delay */ +#define IGNORE_ATOMIC_BLOCK + +/* Avoid out-of-bounds errors when SmartEEPROM is not enabled */ +#define EEPROM_SIZE 1024 + +/* MCU Port name definitions */ +#define PA 0 +#define PB 1 + +/* This Shift Register expands available hardware output lines to control additional peripherals */ +/* It uses four lines from the MCU to provide 16 output lines */ +/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ +#define SR_EXP_RCLK_PIN B14 +/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ +#define SR_EXP_OE_PIN B15 +/* SERCOM port to use for Shift Register SPI */ +/* DATAOUT and SCLK must be configured to use hardware pins of this port */ +#define SPI_SERCOM SERCOM2 +/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ +#define SPI_DATAOUT_PIN A12 +#define SPI_DATAOUT_MUX 2 +/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ +#define SPI_SCLK_PIN A13 +#define SPI_SCLK_MUX 2 + +/* Debug LED (Small LED Located near MCU) */ +#define DEBUG_LED_ENABLE 1 +#define DEBUG_LED_PORT PA +#define DEBUG_LED_PIN 27 + +/* Additional debugging ports */ +/* PCB M21 */ +#define DEBUG_PORT1_ENABLE 1 +#define DEBUG_PORT1_PORT PB +#define DEBUG_PORT1_PIN 3 +/* PCB M23 */ +#define DEBUG_PORT2_ENABLE 1 +#define DEBUG_PORT2_PORT PB +#define DEBUG_PORT2_PIN 17 +/* PCB M25 */ +#define DEBUG_PORT3_ENABLE 1 +#define DEBUG_PORT3_PORT PA +#define DEBUG_PORT3_PIN 20 + +/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ +/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ +/* Feature is automatically disabled after successful boot */ +/* PCB M27 */ +#define DEBUG_BOOT_TRACING_ENABLE 1 +#define DEBUG_BOOT_TRACING_PORT PB +#define DEBUG_BOOT_TRACING_PIN 23 + +/* USB2422 config */ +#define USB2422_ADDRESS 0x58 +#define USB2422_VENDOR_ID 0x04D8 +#define USB2422_PRODUCT_ID 0xEEC5 +#define USB2422_DEVICE_VER 0x0101 +#define USB2422_MANUFACTURER "Massdrop Inc." +#define USB2422_PRODUCT "Massdrop Hub" +#define USB2422_ACTIVE_PIN A18 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_LED_PROCESS_LIMIT 15 +#define RGB_MATRIX_LED_FLUSH_LIMIT 10 +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#include "config_led.h" diff --git a/keyboards/massdrop/ctrl/config_led.c b/keyboards/massdrop/ctrl/config_led.c new file mode 100644 index 0000000000..6cc8601bb5 --- /dev/null +++ b/keyboards/massdrop/ctrl/config_led.c @@ -0,0 +1,85 @@ +#ifdef RGB_MATRIX_ENABLE +#include "ctrl.h" + +#include "md_rgb_matrix.h" +#include "rgb_matrix.h" +#include "config_led.h" + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7 }, + { 16, 17, 18, 19, 20, 21, 22, 23 }, + { 33, 34, 35, 36, 37, 38, 39, 40 }, + { 50, 51, 52, 53, 54, 55, 56, 57 }, + { 63, 64, 65, 66, 67, 68, 69, 70 }, + { 76, 77, 78, 79, 80, 81, 82, 83 }, + { 8, 9, 10, 11, 12, 13, 14, 15 }, + { 24, 25, 26, 27, 28, 29, 30, 31 }, + { 41, 42, 43, 44, 45, 46, 47, 48 }, + { 58, 59, 60, 61, 62, 75, 49, 32 }, + { 71, 72, 73, 74, 84, 85, 86, NO_LED } +}, { + // 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_PSCR, KC_SCRL, KC_PAUS + { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, + { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, + // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP + { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, + { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, + { 217, 20 }, + // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN + { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, + { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, + { 217, 30 }, + // 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 + { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, + { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, + // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP + { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, + { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, + // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, + { 193, 59 }, { 205, 59 }, { 217, 59 }, + // Underglow / Border + { 224, 64 }, { 204, 64 }, { 186, 64 }, { 167, 64 }, { 149, 64 }, { 130, 64 }, { 112, 64 }, { 94, 64 }, + { 75, 64 }, { 57, 64 }, { 38, 64 }, { 20, 64 }, { 0, 64 }, { 0, 47 }, { 0, 32 }, { 0, 17 }, + { 0, 0 }, { 20, 0 }, { 38, 0 }, { 57, 0 }, { 75, 0 }, { 94, 0 }, { 112, 0 }, { 130, 0 }, + { 149, 0 }, { 167, 0 }, { 186, 0 }, { 204, 0 }, { 224, 0 }, { 224, 17 }, { 224, 32 }, { 224, 47 } +}, { + // 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_PSCR, KC_SCRL, KC_PAUS + 1, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 1, 9, 1, + // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 1, 1, 1, + 1, + // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 1, 1, + 1, + // 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 + 9, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 1, + // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 1, 1, + // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 1, 1, 1, 4, 1, 1, 1, 1, + 1, 1, 1, + // Underglow / Border + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2 +} }; + + +#ifdef USB_LED_INDICATOR_ENABLE +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + md_rgb_matrix_indicators_advanced(led_min, led_max); + return true; +} +#endif // USB_LED_INDICATOR_ENABLE + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/massdrop/ctrl/config_led.h b/keyboards/massdrop/ctrl/config_led.h new file mode 100644 index 0000000000..f582035e9e --- /dev/null +++ b/keyboards/massdrop/ctrl/config_led.h @@ -0,0 +1,192 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//Define number of ISSI3733 drivers being used (1...16) +#define ISSI3733_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT + +//Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic) +#define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE } + +//LED I2C bus speed +#define I2C_HZ 580000 + +//Count of LED bodies +#define ISSI3733_LED_COUNT 119 + +#define LED_GCR_MAX 165 //Max GCR value (0 - 255) WARNING: Raising this value may overload the LED drivers and USB bus +#define LED_GCR_STEP 10 //GCR increment/decrement value + +#ifdef USE_MASSDROP_CONFIGURATOR +#define ANIMATION_SPEED_STEP 1 + +#define BREATHE_STEP 1 +#define BREATHE_MIN_STEP 0 +#define BREATHE_MAX_STEP 255 +#endif + +//Default Global Current Register value (Default brightness 0 - 255) +#define ISSI3733_GCR_DEFAULT LED_GCR_MAX + +//Automatic power rollback and recovery +#define V5_HIGH 2540 //5V high level (After low power detect, point at which LEDs are allowed to use more power ) +#define V5_LOW 2480 //5V low level (LED power rolled back to stay above this limit) +#define V5_CAT 2200 //5V catastrophic level (Host USB port potential to shut down) + +//LED Mapping - More practically generated from a spreadsheet program +//id: ID of the LED (Sync with PCB callouts) +//x: Physical X coordinate of LED (units do not matter) +//y: Physical Y coordinate of LED (units do not matter) +//drv: 1-Based index of ISSI3773_DRIVER_ADDRESSES +//cs: Matrix wiring CS col (1-16) +//swr: Matrix wiring SW Red row (1-12) +//swg: Matrix wiring SW Green row (1-12) +//swb: Matrix wiring SW Blue row (1-12) +//scan: Associated key matrix scancode (set 255 if none or 254 for LED to turn off in alternating mode) +//Note: Origin 0,0 may be located anywhere as the software will do the final layout +#define ISSI3733_LED_MAP { \ + { .id = 1, .x = 0, .y = 0, .adr = { .drv = 2, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 0 }, \ + { .id = 2, .x = 1.5, .y = 0, .adr = { .drv = 2, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 1 }, \ + { .id = 3, .x = 2.25, .y = 0, .adr = { .drv = 2, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 2 }, \ + { .id = 4, .x = 3, .y = 0, .adr = { .drv = 2, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 3 }, \ + { .id = 5, .x = 3.75, .y = 0, .adr = { .drv = 2, .cs = 6, .swr = 2, .swg = 1, .swb = 3 }, .scan = 4 }, \ + { .id = 6, .x = 4.875, .y = 0, .adr = { .drv = 2, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 5 }, \ + { .id = 7, .x = 5.625, .y = 0, .adr = { .drv = 2, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 6 }, \ + { .id = 8, .x = 6.375, .y = 0, .adr = { .drv = 1, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 7 }, \ + { .id = 9, .x = 7.125, .y = 0, .adr = { .drv = 1, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 48 }, \ + { .id = 10, .x = 8.25, .y = 0, .adr = { .drv = 1, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 49 }, \ + { .id = 11, .x = 9, .y = 0, .adr = { .drv = 1, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 50 }, \ + { .id = 12, .x = 9.75, .y = 0, .adr = { .drv = 1, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 51 }, \ + { .id = 13, .x = 10.5, .y = 0, .adr = { .drv = 1, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 52 }, \ + { .id = 14, .x = 11.625, .y = 0, .adr = { .drv = 1, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 53 }, \ + { .id = 15, .x = 12.375, .y = 0, .adr = { .drv = 1, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 54 }, \ + { .id = 16, .x = 13.125, .y = 0, .adr = { .drv = 1, .cs = 9, .swr = 5, .swg = 4, .swb = 6 }, .scan = 55 }, \ + { .id = 17, .x = 0, .y = -1.125, .adr = { .drv = 2, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 8 }, \ + { .id = 18, .x = 0.75, .y = -1.125, .adr = { .drv = 2, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 9 }, \ + { .id = 19, .x = 1.5, .y = -1.125, .adr = { .drv = 2, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 10 }, \ + { .id = 20, .x = 2.25, .y = -1.125, .adr = { .drv = 2, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 11 }, \ + { .id = 21, .x = 3, .y = -1.125, .adr = { .drv = 2, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 12 }, \ + { .id = 22, .x = 3.75, .y = -1.125, .adr = { .drv = 2, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 13 }, \ + { .id = 23, .x = 4.5, .y = -1.125, .adr = { .drv = 2, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 14 }, \ + { .id = 24, .x = 5.25, .y = -1.125, .adr = { .drv = 2, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 15 }, \ + { .id = 25, .x = 6, .y = -1.125, .adr = { .drv = 1, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 56 }, \ + { .id = 26, .x = 6.75, .y = -1.125, .adr = { .drv = 1, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 57 }, \ + { .id = 27, .x = 7.5, .y = -1.125, .adr = { .drv = 1, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 58 }, \ + { .id = 28, .x = 8.25, .y = -1.125, .adr = { .drv = 1, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 59 }, \ + { .id = 29, .x = 9, .y = -1.125, .adr = { .drv = 1, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 60 }, \ + { .id = 30, .x = 10.125, .y = -1.125, .adr = { .drv = 1, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 61 }, \ + { .id = 31, .x = 11.625, .y = -1.125, .adr = { .drv = 1, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 62 }, \ + { .id = 32, .x = 12.375, .y = -1.125, .adr = { .drv = 1, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 63 }, \ + { .id = 33, .x = 13.125, .y = -1.125, .adr = { .drv = 1, .cs = 9, .swr = 8, .swg = 7, .swb = 9 }, .scan = 79 }, \ + { .id = 34, .x = 0.188, .y = -1.875, .adr = { .drv = 2, .cs = 1, .swr = 11, .swg = 10, .swb = 12 }, .scan = 16 }, \ + { .id = 35, .x = 1.125, .y = -1.875, .adr = { .drv = 2, .cs = 2, .swr = 11, .swg = 10, .swb = 12 }, .scan = 17 }, \ + { .id = 36, .x = 1.875, .y = -1.875, .adr = { .drv = 2, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 18 }, \ + { .id = 37, .x = 2.625, .y = -1.875, .adr = { .drv = 2, .cs = 4, .swr = 11, .swg = 10, .swb = 12 }, .scan = 19 }, \ + { .id = 38, .x = 3.375, .y = -1.875, .adr = { .drv = 2, .cs = 5, .swr = 11, .swg = 10, .swb = 12 }, .scan = 20 }, \ + { .id = 39, .x = 4.125, .y = -1.875, .adr = { .drv = 2, .cs = 6, .swr = 11, .swg = 10, .swb = 12 }, .scan = 21 }, \ + { .id = 40, .x = 4.875, .y = -1.875, .adr = { .drv = 2, .cs = 7, .swr = 11, .swg = 10, .swb = 12 }, .scan = 22 }, \ + { .id = 41, .x = 5.625, .y = -1.875, .adr = { .drv = 2, .cs = 8, .swr = 11, .swg = 10, .swb = 12 }, .scan = 23 }, \ + { .id = 42, .x = 6.375, .y = -1.875, .adr = { .drv = 1, .cs = 1, .swr = 11, .swg = 10, .swb = 12 }, .scan = 64 }, \ + { .id = 43, .x = 7.125, .y = -1.875, .adr = { .drv = 1, .cs = 2, .swr = 11, .swg = 10, .swb = 12 }, .scan = 65 }, \ + { .id = 44, .x = 7.875, .y = -1.875, .adr = { .drv = 1, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 66 }, \ + { .id = 45, .x = 8.625, .y = -1.875, .adr = { .drv = 1, .cs = 4, .swr = 11, .swg = 10, .swb = 12 }, .scan = 67 }, \ + { .id = 46, .x = 9.375, .y = -1.875, .adr = { .drv = 1, .cs = 5, .swr = 11, .swg = 10, .swb = 12 }, .scan = 68 }, \ + { .id = 47, .x = 10.312, .y = -1.875, .adr = { .drv = 1, .cs = 6, .swr = 11, .swg = 10, .swb = 12 }, .scan = 69 }, \ + { .id = 48, .x = 11.625, .y = -1.875, .adr = { .drv = 1, .cs = 7, .swr = 11, .swg = 10, .swb = 12 }, .scan = 70 }, \ + { .id = 49, .x = 12.375, .y = -1.875, .adr = { .drv = 1, .cs = 8, .swr = 11, .swg = 10, .swb = 12 }, .scan = 71 }, \ + { .id = 50, .x = 13.125, .y = -1.875, .adr = { .drv = 1, .cs = 9, .swr = 11, .swg = 10, .swb = 12 }, .scan = 78 }, \ + { .id = 51, .x = 0.281, .y = -2.625, .adr = { .drv = 2, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 24 }, \ + { .id = 52, .x = 1.313, .y = -2.625, .adr = { .drv = 2, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 25 }, \ + { .id = 53, .x = 2.063, .y = -2.625, .adr = { .drv = 2, .cs = 13, .swr = 11, .swg = 10, .swb = 12 }, .scan = 26 }, \ + { .id = 54, .x = 2.812, .y = -2.625, .adr = { .drv = 2, .cs = 12, .swr = 11, .swg = 10, .swb = 12 }, .scan = 27 }, \ + { .id = 55, .x = 3.562, .y = -2.625, .adr = { .drv = 2, .cs = 11, .swr = 11, .swg = 10, .swb = 12 }, .scan = 28 }, \ + { .id = 56, .x = 4.312, .y = -2.625, .adr = { .drv = 2, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 29 }, \ + { .id = 57, .x = 5.062, .y = -2.625, .adr = { .drv = 2, .cs = 10, .swr = 11, .swg = 10, .swb = 12 }, .scan = 30 }, \ + { .id = 58, .x = 5.812, .y = -2.625, .adr = { .drv = 2, .cs = 9, .swr = 11, .swg = 10, .swb = 12 }, .scan = 31 }, \ + { .id = 59, .x = 6.562, .y = -2.625, .adr = { .drv = 1, .cs = 16, .swr = 11, .swg = 10, .swb = 12 }, .scan = 72 }, \ + { .id = 60, .x = 7.312, .y = -2.625, .adr = { .drv = 1, .cs = 15, .swr = 11, .swg = 10, .swb = 12 }, .scan = 73 }, \ + { .id = 61, .x = 8.062, .y = -2.625, .adr = { .drv = 1, .cs = 14, .swr = 11, .swg = 10, .swb = 12 }, .scan = 74 }, \ + { .id = 62, .x = 8.812, .y = -2.625, .adr = { .drv = 1, .cs = 13, .swr = 11, .swg = 10, .swb = 12 }, .scan = 75 }, \ + { .id = 63, .x = 10.031, .y = -2.625, .adr = { .drv = 1, .cs = 12, .swr = 11, .swg = 10, .swb = 12 }, .scan = 76 }, \ + { .id = 64, .x = 0.469, .y = -3.375, .adr = { .drv = 2, .cs = 14, .swr = 5, .swg = 4, .swb = 6 }, .scan = 32 }, \ + { .id = 65, .x = 1.688, .y = -3.375, .adr = { .drv = 2, .cs = 13, .swr = 5, .swg = 4, .swb = 6 }, .scan = 33 }, \ + { .id = 66, .x = 2.438, .y = -3.375, .adr = { .drv = 2, .cs = 12, .swr = 8, .swg = 7, .swb = 9 }, .scan = 34 }, \ + { .id = 67, .x = 3.188, .y = -3.375, .adr = { .drv = 2, .cs = 12, .swr = 5, .swg = 4, .swb = 6 }, .scan = 35 }, \ + { .id = 68, .x = 3.938, .y = -3.375, .adr = { .drv = 2, .cs = 11, .swr = 5, .swg = 4, .swb = 6 }, .scan = 36 }, \ + { .id = 69, .x = 4.688, .y = -3.375, .adr = { .drv = 2, .cs = 10, .swr = 5, .swg = 4, .swb = 6 }, .scan = 37 }, \ + { .id = 70, .x = 5.438, .y = -3.375, .adr = { .drv = 2, .cs = 9, .swr = 5, .swg = 4, .swb = 6 }, .scan = 38 }, \ + { .id = 71, .x = 6.188, .y = -3.375, .adr = { .drv = 2, .cs = 9, .swr = 8, .swg = 7, .swb = 9 }, .scan = 39 }, \ + { .id = 72, .x = 6.938, .y = -3.375, .adr = { .drv = 1, .cs = 16, .swr = 8, .swg = 7, .swb = 9 }, .scan = 80 }, \ + { .id = 73, .x = 7.688, .y = -3.375, .adr = { .drv = 1, .cs = 15, .swr = 8, .swg = 7, .swb = 9 }, .scan = 81 }, \ + { .id = 74, .x = 8.438, .y = -3.375, .adr = { .drv = 1, .cs = 14, .swr = 8, .swg = 7, .swb = 9 }, .scan = 82 }, \ + { .id = 75, .x = 9.844, .y = -3.375, .adr = { .drv = 1, .cs = 13, .swr = 8, .swg = 7, .swb = 9 }, .scan = 83 }, \ + { .id = 76, .x = 12.375, .y = -3.375, .adr = { .drv = 1, .cs = 11, .swr = 8, .swg = 7, .swb = 9 }, .scan = 77 }, \ + { .id = 77, .x = 0.094, .y = -4.125, .adr = { .drv = 2, .cs = 14, .swr = 11, .swg = 10, .swb = 12 }, .scan = 40 }, \ + { .id = 78, .x = 1.031, .y = -4.125, .adr = { .drv = 2, .cs = 14, .swr = 8, .swg = 7, .swb = 9 }, .scan = 41 }, \ + { .id = 79, .x = 1.969, .y = -4.125, .adr = { .drv = 2, .cs = 13, .swr = 8, .swg = 7, .swb = 9 }, .scan = 42 }, \ + { .id = 80, .x = 4.781, .y = -4.125, .adr = { .drv = 2, .cs = 10, .swr = 8, .swg = 7, .swb = 9 }, .scan = 43 }, \ + { .id = 81, .x = 7.594, .y = -4.125, .adr = { .drv = 1, .cs = 16, .swr = 5, .swg = 4, .swb = 6 }, .scan = 44 }, \ + { .id = 82, .x = 8.531, .y = -4.125, .adr = { .drv = 1, .cs = 15, .swr = 5, .swg = 4, .swb = 6 }, .scan = 45 }, \ + { .id = 83, .x = 9.469, .y = -4.125, .adr = { .drv = 1, .cs = 14, .swr = 5, .swg = 4, .swb = 6 }, .scan = 46 }, \ + { .id = 84, .x = 10.406, .y = -4.125, .adr = { .drv = 1, .cs = 13, .swr = 5, .swg = 4, .swb = 6 }, .scan = 47 }, \ + { .id = 85, .x = 11.625, .y = -4.125, .adr = { .drv = 1, .cs = 12, .swr = 8, .swg = 7, .swb = 9 }, .scan = 84 }, \ + { .id = 86, .x = 12.375, .y = -4.125, .adr = { .drv = 1, .cs = 12, .swr = 5, .swg = 4, .swb = 6 }, .scan = 85 }, \ + { .id = 87, .x = 13.125, .y = -4.125, .adr = { .drv = 1, .cs = 11, .swr = 5, .swg = 4, .swb = 6 }, .scan = 86 }, \ + { .id = 88, .x = 13.433, .y = -4.43, .adr = { .drv = 1, .cs = 11, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 89, .x = 12.285, .y = -4.535, .adr = { .drv = 1, .cs = 12, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 90, .x = 11.14, .y = -4.535, .adr = { .drv = 1, .cs = 13, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 91, .x = 9.995, .y = -4.535, .adr = { .drv = 1, .cs = 14, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 92, .x = 8.85, .y = -4.535, .adr = { .drv = 1, .cs = 15, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 93, .x = 7.705, .y = -4.535, .adr = { .drv = 1, .cs = 16, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 94, .x = 6.56, .y = -4.535, .adr = { .drv = 2, .cs = 9, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 95, .x = 5.415, .y = -4.535, .adr = { .drv = 2, .cs = 10, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 96, .x = 4.27, .y = -4.535, .adr = { .drv = 2, .cs = 11, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 97, .x = 3.125, .y = -4.535, .adr = { .drv = 2, .cs = 12, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 98, .x = 1.98, .y = -4.535, .adr = { .drv = 2, .cs = 13, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 99, .x = 0.835, .y = -4.535, .adr = { .drv = 2, .cs = 14, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 100, .x = -0.307, .y = -4.43, .adr = { .drv = 2, .cs = 15, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 101, .x = -0.41, .y = -3.245, .adr = { .drv = 2, .cs = 15, .swr = 11, .swg = 10, .swb = 12 }, .scan = 254 }, \ + { .id = 102, .x = -0.41, .y = -2.06, .adr = { .drv = 2, .cs = 15, .swr = 5, .swg = 4, .swb = 6 }, .scan = 255 }, \ + { .id = 103, .x = -0.41, .y = -0.875, .adr = { .drv = 2, .cs = 15, .swr = 8, .swg = 7, .swb = 9 }, .scan = 254 }, \ + { .id = 104, .x = -0.308, .y = 0.31, .adr = { .drv = 2, .cs = 1, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 105, .x = 0.835, .y = 0.415, .adr = { .drv = 2, .cs = 3, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 106, .x = 1.98, .y = 0.415, .adr = { .drv = 2, .cs = 4, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 107, .x = 3.125, .y = 0.415, .adr = { .drv = 2, .cs = 5, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 108, .x = 4.27, .y = 0.415, .adr = { .drv = 2, .cs = 7, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 109, .x = 5.415, .y = 0.415, .adr = { .drv = 2, .cs = 8, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 110, .x = 6.56, .y = 0.415, .adr = { .drv = 1, .cs = 1, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 111, .x = 7.705, .y = 0.415, .adr = { .drv = 1, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 112, .x = 8.85, .y = 0.415, .adr = { .drv = 1, .cs = 3, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 113, .x = 9.995, .y = 0.415, .adr = { .drv = 1, .cs = 5, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 114, .x = 11.14, .y = 0.415, .adr = { .drv = 1, .cs = 6, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 115, .x = 12.285, .y = 0.415, .adr = { .drv = 1, .cs = 8, .swr = 2, .swg = 1, .swb = 3 }, .scan = 254 }, \ + { .id = 116, .x = 13.432, .y = 0.31, .adr = { .drv = 1, .cs = 10, .swr = 2, .swg = 1, .swb = 3 }, .scan = 255 }, \ + { .id = 117, .x = 13.535, .y = -0.875, .adr = { .drv = 1, .cs = 10, .swr = 8, .swg = 7, .swb = 9 }, .scan = 254 }, \ + { .id = 118, .x = 13.535, .y = -2.06, .adr = { .drv = 1, .cs = 10, .swr = 11, .swg = 10, .swb = 12 }, .scan = 255 }, \ + { .id = 119, .x = 13.535, .y = -3.245, .adr = { .drv = 1, .cs = 10, .swr = 5, .swg = 4, .swb = 6 }, .scan = 254 }, \ +}; + +#define USB_LED_INDICATOR_ENABLE //Comment out to disable indicator functionality +#ifdef USB_LED_INDICATOR_ENABLE //Scan codes refer to actual key matrix codes, not KC_* (255 to disable) + #define USB_LED_NUM_LOCK_SCANCODE 255 + #define USB_LED_CAPS_LOCK_SCANCODE 24 + #define USB_LED_SCROLL_LOCK_SCANCODE 54 + #define USB_LED_COMPOSE_SCANCODE 255 + #define USB_LED_KANA_SCANCODE 255 +#endif //USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/ctrl/ctrl.c b/keyboards/massdrop/ctrl/ctrl.c new file mode 100644 index 0000000000..c688d330a5 --- /dev/null +++ b/keyboards/massdrop/ctrl/ctrl.c @@ -0,0 +1,21 @@ +/* +Copyright 2021 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "ctrl.h" + +/* Temporary solution for matrix delay */ +void matrix_output_select_delay(void) { matrix_io_delay(); } +void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {} diff --git a/keyboards/massdrop/ctrl/ctrl.h b/keyboards/massdrop/ctrl/ctrl.h new file mode 100644 index 0000000000..9fc6eac15e --- /dev/null +++ b/keyboards/massdrop/ctrl/ctrl.h @@ -0,0 +1,20 @@ +#pragma once + +#include "quantum.h" +#include "config_led.h" +#include "matrix.h" + +#include "i2c_master.h" +#include "md_rgb_matrix.h" //For led keycodes +#include "usb/udi_cdc.h" +#include "usb/usb_hub.h" + +#define TOGGLE_FLAG_AND_PRINT(var, name) { \ + if (var) { \ + dprintf(name " disabled\r\n"); \ + var = !var; \ + } else { \ + var = !var; \ + dprintf(name " enabled\r\n"); \ + } \ + } diff --git a/keyboards/massdrop/ctrl/keyboard.json b/keyboards/massdrop/ctrl/keyboard.json new file mode 100644 index 0000000000..d3488ebd6b --- /dev/null +++ b/keyboards/massdrop/ctrl/keyboard.json @@ -0,0 +1,132 @@ +{ + "keyboard_name": "CTRL Keyboard", + "manufacturer": "Massdrop Inc.", + "url": "https://www.massdrop.com/buy/massdrop-ctrl-mechanical-keyboard", + "maintainer": "Massdrop", + "usb": { + "vid": "0x04D8", + "pid": "0xEED2", + "device_version": "1.0.1" + }, + "rgb_matrix": { + "driver": "custom" + }, + "matrix_pins": { + "cols": ["A00", "A01", "A02", "A03", "A04", "A05", "A06", "A07"], + "rows": ["B04", "B05", "B06", "B07", "B08", "B09", "A10", "A11", "B10", "B11", "B12"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + + {"matrix": [6, 1], "x": 11, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + + {"matrix": [6, 5], "x": 15.5, "y": 0}, + {"matrix": [6, 6], "x": 16.5, "y": 0}, + {"matrix": [6, 7], "x": 17.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [7, 0], "x": 8, "y": 1.5}, + {"matrix": [7, 1], "x": 9, "y": 1.5}, + {"matrix": [7, 2], "x": 10, "y": 1.5}, + {"matrix": [7, 3], "x": 11, "y": 1.5}, + {"matrix": [7, 4], "x": 12, "y": 1.5}, + {"matrix": [7, 5], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [7, 6], "x": 15.5, "y": 1.5}, + {"matrix": [7, 7], "x": 16.5, "y": 1.5}, + {"matrix": [9, 7], "x": 17.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [8, 0], "x": 8.5, "y": 2.5}, + {"matrix": [8, 1], "x": 9.5, "y": 2.5}, + {"matrix": [8, 2], "x": 10.5, "y": 2.5}, + {"matrix": [8, 3], "x": 11.5, "y": 2.5}, + {"matrix": [8, 4], "x": 12.5, "y": 2.5}, + {"matrix": [8, 5], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [8, 6], "x": 15.5, "y": 2.5}, + {"matrix": [8, 7], "x": 16.5, "y": 2.5}, + {"matrix": [9, 6], "x": 17.5, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [9, 0], "x": 8.75, "y": 3.5}, + {"matrix": [9, 1], "x": 9.75, "y": 3.5}, + {"matrix": [9, 2], "x": 10.75, "y": 3.5}, + {"matrix": [9, 3], "x": 11.75, "y": 3.5}, + {"matrix": [9, 4], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [10, 0], "x": 9.25, "y": 4.5}, + {"matrix": [10, 1], "x": 10.25, "y": 4.5}, + {"matrix": [10, 2], "x": 11.25, "y": 4.5}, + {"matrix": [10, 3], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"matrix": [9, 5], "x": 16.5, "y": 4.5}, + + {"matrix": [5, 0], "x": 0.005, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.255, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.505, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 4], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 7], "x": 13.75, "y": 5.5, "w": 1.25}, + + {"matrix": [10, 4], "x": 15.5, "y": 5.5}, + {"matrix": [10, 5], "x": 16.5, "y": 5.5}, + {"matrix": [10, 6], "x": 17.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/massdrop/ctrl/keymaps/default/keymap.c b/keyboards/massdrop/ctrl/keymaps/default/keymap.c new file mode 100644 index 0000000000..37fc1b85d8 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/default/keymap.c @@ -0,0 +1,118 @@ +#include QMK_KEYBOARD_H + +enum ctrl_keycodes { + U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active + U_T_AGCR, //USB Toggle Automatic GCR control + DBG_TOG, //DEBUG Toggle On / Off + DBG_MTRX, //DEBUG Toggle Matrix Prints + DBG_KBD, //DEBUG Toggle Keyboard Prints + DBG_MOU, //DEBUG Toggle Mouse Prints + MD_BOOT, //Restart into bootloader after hold timeout +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* + [X] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + */ +}; + +#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT) +#define MODS_CTRL (get_mods() & MOD_MASK_CTRL) +#define MODS_ALT (get_mods() & MOD_MASK_ALT) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + + switch (keycode) { + case U_T_AUTO: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; //Process all other keycodes normally + } +} diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c new file mode 100644 index 0000000000..5fcfd71589 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c @@ -0,0 +1,299 @@ +#include QMK_KEYBOARD_H + +enum ctrl_keycodes { + L_BRI = SAFE_RANGE, //LED Brightness Increase //Working + L_BRD, //LED Brightness Decrease //Working + L_EDG_I, //LED Edge Brightness Increase + L_EDG_D, //LED Edge Brightness Decrease + L_EDG_M, //LED Edge lighting mode + L_PTN, //LED Pattern Select Next //Working + L_PTP, //LED Pattern Select Previous //Working + L_PSI, //LED Pattern Speed Increase //Working + L_PSD, //LED Pattern Speed Decrease //Working + L_RATIOD, + L_RATIOI, + L_T_MD, //LED Toggle Mode //Working + L_T_ONF, //LED Toggle On / Off //Broken + L_ON, //LED On //Broken + L_OFF, //LED Off //Broken + L_T_BR, //LED Toggle Breath Effect //Working + L_T_PTD, //LED Toggle Scrolling Pattern Direction //Working + U_T_AGCR, //USB Toggle Automatic GCR control //Working + DBG_TOG, //DEBUG Toggle On / Off // + DBG_MTRX, //DEBUG Toggle Matrix Prints // + DBG_KBD, //DEBUG Toggle Keyboard Prints // + DBG_MOU, //DEBUG Toggle Mouse Prints // + DBG_FAC, //DEBUG Factory light testing (All on white) + MD_BOOT //Restart into bootloader after hold timeout //Working +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, + L_T_BR, L_PSD, L_BRI, L_PSI, L_EDG_I, _______, _______, _______, U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + L_T_PTD, L_PTP, L_BRD, L_PTN, L_EDG_D, _______, _______, _______, _______, _______, _______, _______, _______, + _______, L_T_MD, L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DBG_FAC, _______, _______, _______, _______, _______, _______, _______ + ), + /* + [X] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + */ +}; + +#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT)) +#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL)) +#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + static uint8_t scroll_effect = 0; + + switch (keycode) { + case L_BRI ... U_T_AGCR: + if (record->event.pressed) { + md_led_changed(); + } + break; + } + + switch (keycode) { + case L_BRI: + if (record->event.pressed) { + if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX; + else gcr_desired += LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_BRD: + if (record->event.pressed) { + if (LED_GCR_STEP > gcr_desired) gcr_desired = 0; + else gcr_desired -= LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_EDG_M: + if (record->event.pressed) { + led_edge_mode++; + if (led_edge_mode > LED_EDGE_MODE_MAX) { + led_edge_mode = LED_EDGE_MODE_ALL; + } + } + return false; + case L_EDG_I: + if (record->event.pressed) { + led_edge_brightness += 0.1; + if (led_edge_brightness > 1) { led_edge_brightness = 1; } + } + return false; + case L_EDG_D: + if (record->event.pressed) { + led_edge_brightness -= 0.1; + if (led_edge_brightness < 0) { led_edge_brightness = 0; } + } + return false; + case L_RATIOI: + if (record->event.pressed) { + led_ratio_brightness += 0.2; + if (led_ratio_brightness > 2.0) { led_ratio_brightness = 2.0; } + } + return false; + case L_RATIOD: + if (record->event.pressed) { + led_ratio_brightness -= 0.2; + if (led_ratio_brightness < 0.0) { led_ratio_brightness = 0.0; } + } + return false; + case L_PTN: + if (record->event.pressed) { + if (led_animation_id == led_setups_count - 1) led_animation_id = 0; + else led_animation_id++; + } + return false; + case L_PTP: + if (record->event.pressed) { + if (led_animation_id == 0) led_animation_id = led_setups_count - 1; + else led_animation_id--; + } + return false; + case L_PSI: + if (record->event.pressed) { + led_animation_speed += ANIMATION_SPEED_STEP; + } + return false; + case L_PSD: + if (record->event.pressed) { + led_animation_speed -= ANIMATION_SPEED_STEP; + if (led_animation_speed < 0) led_animation_speed = 0; + } + return false; + case L_T_MD: + if (record->event.pressed) { + led_lighting_mode++; + if (led_lighting_mode > LED_MODE_MAX_INDEX) led_lighting_mode = LED_MODE_NORMAL; + } + return false; + case L_T_ONF: + if (record->event.pressed) { + led_enabled = !led_enabled; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_ON: + if (record->event.pressed) { + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_OFF: + if (record->event.pressed) { + led_enabled = 0; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_T_BR: + if (record->event.pressed) { + led_animation_breathing = !led_animation_breathing; + if (led_animation_breathing) { + gcr_breathe = gcr_desired; + led_animation_breathe_cur = BREATHE_MIN_STEP; + breathe_dir = 1; + } + } + return false; + case L_T_PTD: + if (record->event.pressed) { + scroll_effect++; + if (scroll_effect == 1) { //Patterns with scroll move horizontal (Right to left) + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 0; + } else if (scroll_effect == 2) { //Patterns with scroll move vertical (Top to bottom) + led_animation_direction = 1; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 3) { //Patterns with scroll move vertical (Bottom to top) + led_animation_direction = 0; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 4) { //Patterns with scroll explode from center + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 1; + } else if (scroll_effect == 5) { //Patterns with scroll implode on center + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 1; + } else { //Patterns with scroll move horizontal (Left to right) + scroll_effect = 0; + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 0; + } + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_FAC: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + led_lighting_mode = LED_MODE_NORMAL; + led_edge_brightness = 1; + led_edge_mode = LED_EDGE_MODE_ALL; + led_animation_breathing = 0; + led_animation_id = 7; //led_programs.c led_setups leds_white index + gcr_desired = LED_GCR_MAX; + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + default: + return true; //Process all other keycodes normally + } +} + +led_instruction_t led_instructions[] = { + //LEDs are normally inactive, no processing is performed on them + //Flags are used in matching criteria for an LED to be active and indicate how to color it + //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_) + //LED IDs can be found in config_led.h in the keyboard's directory + //Examples are below + + //All LEDs use the user's selected pattern (this is the factory default) + { .flags = LED_FLAG_USE_ROTATE_PATTERN }, + + //Specific LEDs use the user's selected pattern while all others are off + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_ROTATE_PATTERN, .id0 = 0xFFFFFFFF, .id1 = 0xAAAAAAAA, .id2 = 0x55555555, .id3 = 0x11111111 }, + + //Specific LEDs use specified RGB values while all others are off + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_RGB, .id0 = 0xFF, .id1 = 0x00FF, .id2 = 0x0000FF00, .id3 = 0xFF000000, .r = 75, .g = 150, .b = 225 }, + + //All LEDs use the user's selected pattern + //On layer 1, all key LEDs (except the top row which keeps active pattern) are red while all edge LEDs are green + //When layer 1 is active, key LEDs use red (id0 32 - 17: 1111 1111 1111 1111 0000 0000 0000 0000 = 0xFFFF0000) (except top row 16 - 1) + //When layer 1 is active, key LEDs use red (id1 64 - 33: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //When layer 1 is active, key LEDs use red (id2 87 - 65: 0000 0000 0111 1111 1111 1111 1111 1111 = 0x007FFFFF) + //When layer 1 is active, edge LEDs use green (id2 95 - 88: 1111 1111 1000 0000 0000 0000 0000 0000 = 0xFF800000) + //When layer 1 is active, edge LEDs use green (id3 119 - 96: 0000 0000 1111 1111 1111 1111 1111 1111 = 0x00FFFFFF) + // { .flags = LED_FLAG_USE_ROTATE_PATTERN }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0xFFFF0000, .id1 = 0xFFFFFFFF, .id2 = 0x007FFFFF, .r = 255, .layer = 1 }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id2 = 0xFF800000, .id3 = 0x00FFFFFF, .g = 127, .layer = 1 }, + + //All key LEDs use red while edge LEDs use the active pattern + //All key LEDs use red (id0 32 - 1: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //All key LEDs use red (id1 64 - 33: 1111 1111 1111 1111 1111 1111 1111 1111 = 0xFFFFFFFF) + //All key LEDs use red (id2 87 - 65: 0000 0000 0111 1111 1111 1111 1111 1111 = 0x007FFFFF) + //Edge uses active pattern (id2 95 - 88: 1111 1111 1000 0000 0000 0000 0000 0000 = 0xFF800000) + //Edge uses active pattern (id3 119 - 96: 0000 0000 1111 1111 1111 1111 1111 1111 = 0x00FFFFFF) + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_RGB, .id0 = 0xFFFFFFFF, .id1 = 0xFFFFFFFF, .id2 = 0x007FFFFF, .r = 255 }, + // { .flags = LED_FLAG_MATCH_ID | LED_FLAG_USE_ROTATE_PATTERN , .id2 = 0xFF800000, .id3 = 0x00FFFFFF }, + + //end must be set to 1 to indicate end of instruction set + { .end = 1 } +}; diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk b/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk new file mode 100644 index 0000000000..064a6f54c1 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk @@ -0,0 +1,2 @@ +# This keymap requires Massdrop Configurator support +OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR diff --git a/keyboards/massdrop/ctrl/readme.md b/keyboards/massdrop/ctrl/readme.md new file mode 100644 index 0000000000..be1e39328b --- /dev/null +++ b/keyboards/massdrop/ctrl/readme.md @@ -0,0 +1,20 @@ +# CTRL + +![CTRL](https://massdrop-s3.imgix.net/product-images/massdrop-ntkl-mechanical-keyboard/FP/W6zvr0cTR4KVDY5z8rwp_AI7B6588%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) + +The Massdrop CTRL is a TKL mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +Keyboard Maintainer: [Massdrop](https://github.com/massdrop) +Hardware Supported: Massdrop, Inc. CTRL PCBs utilizing Microchip's ATSAMD51J18A MCU and USB2422 2-Port USB 2.0 Hi-Speed Hub Controller, and ISSI's IS31FL3733 LED Drivers. +Hardware Availability: [Massdrop CTRL Mechanical Keyboard](https://www.massdrop.com/buy/massdrop-ctrl-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make massdrop/ctrl:default + +For information on flashing this keyboard, visit the following links: + +[Massdrop Loader Releases](https://github.com/Massdrop/mdloader/releases) +[Massdrop Loader Repository and Instructions](https://github.com/Massdrop/mdloader) + +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). diff --git a/keyboards/massdrop/ctrl/rules.mk b/keyboards/massdrop/ctrl/rules.mk new file mode 100644 index 0000000000..869853e858 --- /dev/null +++ b/keyboards/massdrop/ctrl/rules.mk @@ -0,0 +1,9 @@ +# project specific files +SRC += config_led.c + +#For platform and packs +ARM_ATSAM = SAMD51J18A +MCU = cortex-m4 + +# Bootloader selection +BOOTLOADER = md-boot diff --git a/keyboards/masterworks/classy_tkl/readme.md b/keyboards/masterworks/classy_tkl/readme.md index 1e5903483c..0557ed7f4c 100644 --- a/keyboards/masterworks/classy_tkl/readme.md +++ b/keyboards/masterworks/classy_tkl/readme.md @@ -2,6 +2,8 @@ ![Classy TKL](https://i.imgur.com/p1dxfYKl.jpg) +A short description of the keyboard/project + * Keyboard Maintainer: [Mathias Andersson](https://github.com/wraul) * Hardware Supported: [Classy TKL PCB](https://github.com/4pplet/classyTKL) * Hardware Availability: https://geekhack.org/index.php?topic=105933 diff --git a/keyboards/matchstickworks/normiepad/keyboard.json b/keyboards/matchstickworks/normiepad/keyboard.json index 4e6a8cdb13..3063b820aa 100644 --- a/keyboards/matchstickworks/normiepad/keyboard.json +++ b/keyboards/matchstickworks/normiepad/keyboard.json @@ -4,6 +4,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matchstickworks/southpad/rev1/keyboard.json b/keyboards/matchstickworks/southpad/rev1/keyboard.json index e7c3237a55..15db9823b1 100644 --- a/keyboards/matchstickworks/southpad/rev1/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev1/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/matchstickworks/southpad/rev2/keyboard.json b/keyboards/matchstickworks/southpad/rev2/keyboard.json index e546b66bb9..717b56ef63 100644 --- a/keyboards/matchstickworks/southpad/rev2/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev2/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c index 9058bf6e2f..ee7ffde134 100644 --- a/keyboards/matrix/abelx/abelx.c +++ b/keyboards/matrix/abelx/abelx.c @@ -41,6 +41,20 @@ uint8_t read_pin(uint16_t pin) return (data & (1< EFFECT_TEST_INTERVAL) { - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); //is31fl3731_set_color_all(c.r, c.g, c.b); is31fl3731_set_color_all(0, 0, 0); is31fl3731_set_color(rgb_ring.outer_index+RING_OUTER_BEGIN, c.r, c.g, c.b); @@ -184,9 +184,9 @@ static void update_effect(uint32_t max_count) static void ring_effect_no_1(void) { if (need_update(EFFECT_1_INTERVAL)) { - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { - rgb_t c = hsv_to_rgb(h); + RGB c = hsv_to_rgb(h); is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_1_HUE_STEP; @@ -205,8 +205,8 @@ static void ring_effect_no_2(void) { if (need_update(EFFECT_2_INTERVAL)) { is31fl3731_set_color_all(0, 0, 0); - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); @@ -233,13 +233,13 @@ static void ring_effect_no_3(void) } if (need_update(EFFECT_3_INTERVAL)) { - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; if (rgb_ring.led_clear) { is31fl3731_set_color(rgb_ring.led_begin, 0, 0, 0); is31fl3731_set_color(rgb_ring.led_end, 0, 0, 0); } else { - rgb_t c = hsv_to_rgb(h); + RGB c = hsv_to_rgb(h); is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); } @@ -278,8 +278,8 @@ static void ring_effect_no_4(void) { if (need_update(EFFECT_4_INTERVAL)) { is31fl3731_set_color_all(0, 0, 0); - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); @@ -303,13 +303,13 @@ static void ring_effect_no_5(void) if (need_update(EFFECT_5_INTERVAL)) { is31fl3731_set_color_all(0, 0, 0); for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) { - hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(i, c.r, c.g, c.b); } for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { - hsv_t h = {rgblight_config.hue+EFFECT_5_HUE_STEP, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue+EFFECT_5_HUE_STEP, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_5_HUE_STEP; @@ -329,13 +329,13 @@ static void ring_effect_no_6(void) if (need_update(EFFECT_6_INTERVAL)) { is31fl3731_set_color_all(0, 0, 0); for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) { - hsv_t h = {rgblight_config.hue+i*EFFECT_I_HUE_STEP, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue+i*EFFECT_I_HUE_STEP, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(i, c.r, c.g, c.b); } for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { - hsv_t h = {rgblight_config.hue+i*EFFECT_O_HUE_STEP, rgblight_config.sat, rgblight_config.val}; - rgb_t c = hsv_to_rgb(h); + HSV h = {rgblight_config.hue+i*EFFECT_O_HUE_STEP, rgblight_config.sat, rgblight_config.val}; + RGB c = hsv_to_rgb(h); is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_I_HUE_STEP; @@ -361,22 +361,27 @@ static void custom_effects(void) effect_funcs[rgb_ring.effect](); } -void flush_custom(void) { +void setleds_custom(rgb_led_t *start_led, uint16_t num_leds) +{ if (rgb_ring.state != RING_STATE_QMK) { return; } - is31fl3731_flush(); + for (uint8_t i = 0; i < num_leds; i++) { + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + } } const rgblight_driver_t rgblight_driver = { - .init = is31fl3731_init_drivers, - .set_color = is31fl3731_set_color, - .set_color_all = is31fl3731_set_color_all, - .flush = flush_custom, + .setleds = setleds_custom, }; +void rgb_ring_init(void) +{ + is31fl3731_init_drivers(); +} + void rgb_ring_task(void) { switch (rgb_ring.state) { @@ -392,13 +397,15 @@ void rgb_ring_task(void) default: break; }; + + is31fl3731_flush(); } bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (rgb_ring.state == RING_STATE_INIT) { // in testing mode, do nothing return false; @@ -416,7 +423,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) } } break; - case QK_UNDERGLOW_MODE_PREVIOUS: + case RGB_RMOD: if (rgb_ring.state == RING_STATE_INIT) { // in testing mode, do nothing return false; diff --git a/keyboards/matrix/m20add/rgb_ring.h b/keyboards/matrix/m20add/rgb_ring.h index 25937e6500..1e96b68367 100644 --- a/keyboards/matrix/m20add/rgb_ring.h +++ b/keyboards/matrix/m20add/rgb_ring.h @@ -19,4 +19,5 @@ #pragma once +void rgb_ring_init(void); void rgb_ring_task(void); diff --git a/keyboards/matrix/me/keyboard.json b/keyboards/matrix/me/keyboard.json index bd2ecde4a4..8349fbd7e6 100644 --- a/keyboards/matrix/me/keyboard.json +++ b/keyboards/matrix/me/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Matrix ME", "manufacturer": "Matrix Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/matrix/noah/keyboard.json b/keyboards/matrix/noah/keyboard.json index d9d4ce3976..3ba9be21eb 100644 --- a/keyboards/matrix/noah/keyboard.json +++ b/keyboards/matrix/noah/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NOAH", "manufacturer": "Matrix", + "url": "", "maintainer": "astro", "usb": { "vid": "0x4D58", @@ -9,7 +10,7 @@ "no_startup_check": true }, "rgblight": { - "driver": "ws2812", + "driver": "custom", "led_count": 7, "animations": { "breathing": true, diff --git a/keyboards/matrix/noah/keymaps/default/keymap.c b/keyboards/matrix/noah/keymaps/default/keymap.c index 452867d856..daa4ae833a 100644 --- a/keyboards/matrix/noah/keymaps/default/keymap.c +++ b/keyboards/matrix/noah/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_default( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/iso/keymap.c b/keyboards/matrix/noah/keymaps/iso/keymap.c index 2f57e4b92b..fad13f3026 100644 --- a/keyboards/matrix/noah/keymaps/iso/keymap.c +++ b/keyboards/matrix/noah/keymaps/iso/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN,KC_RIGHT), [1] = LAYOUT_iso( 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, _______, _______, - QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/splitspace/keymap.c b/keyboards/matrix/noah/keymaps/splitspace/keymap.c index c9287123f7..fe231abb50 100644 --- a/keyboards/matrix/noah/keymaps/splitspace/keymap.c +++ b/keyboards/matrix/noah/keymaps/splitspace/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_default_splitspace( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/wkl/keymap.c b/keyboards/matrix/noah/keymaps/wkl/keymap.c index 2e2377f18d..dec76f1b37 100644 --- a/keyboards/matrix/noah/keymaps/wkl/keymap.c +++ b/keyboards/matrix/noah/keymaps/wkl/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_wkl( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 959490e4f7..99f4e063d1 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -9,6 +9,57 @@ void bootloader_jump(void) { NVIC_SystemReset(); } +#ifdef RGBLIGHT_ENABLE +#include +#include "rgblight.h" +#include "ws2812.h" +extern rgblight_config_t rgblight_config; + +// led 0 for caps lock, led 1 for scroll lock, led 3 for num lock +// led 4 for layer 1, led 5 for layer 2, led 6 for layer 3, led 7 for layer 4 +#if RGBLIGHT_LED_COUNT < 7 +#error "MUST set the RGBLIGHT_LED_COUNT bigger than 7" +#endif +rgb_led_t noah_leds[RGBLIGHT_LED_COUNT]; +static bool noah_led_mode = false; +void setleds_custom(rgb_led_t *ledarray, uint16_t num_leds) { + memset(&noah_leds[0], 0, sizeof(noah_leds)); + if (!rgblight_config.enable) { + for (uint8_t i = 0; i < RGBLIGHT_LED_COUNT; i++) { + ledarray[i].r = 0; + ledarray[i].g = 0; + ledarray[i].b = 0; + } + } + if (noah_led_mode) { + led_t led_state = host_keyboard_led_state(); + if (led_state.caps_lock) { + noah_leds[0] = ledarray[0]; + } + if (led_state.scroll_lock) { + noah_leds[1] = ledarray[1]; + } + if (led_state.num_lock) { + noah_leds[2] = ledarray[2]; + } + for (int32_t i = 0; i < 4; i++) { + if(layer_state_is(i+1)) { + noah_leds[i + 3] = ledarray[i + 3]; + } + } + } else { + memcpy(&noah_leds[0], &ledarray[0], sizeof(noah_leds)); + } + + ws2812_setleds(noah_leds, RGBLIGHT_LED_COUNT); +} + +const rgblight_driver_t rgblight_driver = { + .init = ws2812_init, + .setleds = setleds_custom, +}; +#endif + #ifdef RGB_MATRIX_ENABLE const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -95,3 +146,27 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, // RGB5012 }; #endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + #ifdef RGBLIGHT_ENABLE + case KC_F24: // switch the led mode on or off + noah_led_mode = !noah_led_mode; + return false; + + #ifdef RGB_MATRIX_ENABLE + case KC_F13: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case KC_F14: + rgb_matrix_step(); + return false; + #endif + #endif + default: + break; + } + } + return process_record_user(keycode, record); +} diff --git a/keyboards/matthewdias/m3n3van/keyboard.json b/keyboards/matthewdias/m3n3van/keyboard.json index c5b26b3e9d..3fdfb7f61d 100644 --- a/keyboards/matthewdias/m3n3van/keyboard.json +++ b/keyboards/matthewdias/m3n3van/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/matthewdias/minim/keyboard.json b/keyboards/matthewdias/minim/keyboard.json index 8735545ba7..b9ff70ca40 100644 --- a/keyboards/matthewdias/minim/keyboard.json +++ b/keyboards/matthewdias/minim/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matthewdias/model_v/keyboard.json b/keyboards/matthewdias/model_v/keyboard.json index 5bcda4e887..00d4c4c0eb 100644 --- a/keyboards/matthewdias/model_v/keyboard.json +++ b/keyboards/matthewdias/model_v/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matthewdias/txuu/keyboard.json b/keyboards/matthewdias/txuu/keyboard.json index 035eca2490..b4c1597e5f 100644 --- a/keyboards/matthewdias/txuu/keyboard.json +++ b/keyboards/matthewdias/txuu/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/maxipad/info.json b/keyboards/maxipad/info.json index b058bf15d0..bf054e4b83 100644 --- a/keyboards/maxipad/info.json +++ b/keyboards/maxipad/info.json @@ -1,9 +1,12 @@ { "keyboard_name": "maxipad", "manufacturer": "wootpatoot", + "url": "", "maintainer": "qmk", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/maxipad/promicro/keyboard.json b/keyboards/maxipad/promicro/keyboard.json index d48a1c9d11..1499162155 100644 --- a/keyboards/maxipad/promicro/keyboard.json +++ b/keyboards/maxipad/promicro/keyboard.json @@ -4,5 +4,6 @@ "rows": ["B6", "B2", "B3", "B1", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk new file mode 100644 index 0000000000..98a712a7b8 --- /dev/null +++ b/keyboards/maxipad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = maxipad/promicro diff --git a/keyboards/maxr1998/phoebe/keyboard.json b/keyboards/maxr1998/phoebe/keyboard.json index d678e3b74e..86407414fa 100644 --- a/keyboards/maxr1998/phoebe/keyboard.json +++ b/keyboards/maxr1998/phoebe/keyboard.json @@ -9,10 +9,10 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, - "key_lock": true, - "mousekey": true, "nkro": true, - "rgblight": true + "rgblight": true, + "key_lock": true, + "leader": true }, "qmk": { "locking": { diff --git a/keyboards/maxr1998/phoebe/keymaps/default/config.h b/keyboards/maxr1998/phoebe/keymaps/default/config.h index b8f6676468..593ac440c1 100644 --- a/keyboards/maxr1998/phoebe/keymaps/default/config.h +++ b/keyboards/maxr1998/phoebe/keymaps/default/config.h @@ -1,18 +1,3 @@ -/* Copyright 2019 Max Rumpf (@Maxr1998) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ #pragma once #define RSPC_KEYS KC_RSFT, KC_RALT, KC_7 diff --git a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c index 3346f02ecd..8b4f31644c 100644 --- a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c +++ b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c @@ -1,18 +1,3 @@ -/* Copyright 2019 Max Rumpf (@Maxr1998) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ #include QMK_KEYBOARD_H #include "keymap_german.h" @@ -50,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, MS_BTN1, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, QK_LEAD, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT ), /* Special characters @@ -92,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, DE_UDIA, KC_F9, DE_ODIA, KC_PSCR, KC_DEL, QK_LOCK, DE_ADIA, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_SW,RGB_M_SN,_______, _______, _______, _______, _______, _______, _______, _______, _______, UG_HUED, UG_TOGG, UG_HUEU, KC_PGUP, _______, - XXXXXXX, _______, XXXXXXX, MS_BTN2, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END + XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END ), /* Gaming @@ -143,4 +128,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; +}; + +void leader_end_user(void) { + if (leader_sequence_two_keys(KC_G, KC_P)) { + SEND_STRING("git push"); + } + if (leader_sequence_three_keys(KC_G, KC_F, KC_P)) { + SEND_STRING("git push --force-with-lease"); + } } diff --git a/keyboards/maxr1998/phoebe/phoebe.c b/keyboards/maxr1998/phoebe/phoebe.c index 0451f9177e..b05f9b3235 100644 --- a/keyboards/maxr1998/phoebe/phoebe.c +++ b/keyboards/maxr1998/phoebe/phoebe.c @@ -1,18 +1,3 @@ -/* Copyright 2019 Max Rumpf (@Maxr1998) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ #include "quantum.h" const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {50, 50, 50}; diff --git a/keyboards/maxr1998/pulse4k/keyboard.json b/keyboards/maxr1998/pulse4k/keyboard.json index a2bdcb5068..22d1d67a51 100644 --- a/keyboards/maxr1998/pulse4k/keyboard.json +++ b/keyboards/maxr1998/pulse4k/keyboard.json @@ -28,6 +28,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/mazestudio/jocker/keyboard.json b/keyboards/mazestudio/jocker/keyboard.json index 55e0a7de66..7257866f21 100644 --- a/keyboards/mazestudio/jocker/keyboard.json +++ b/keyboards/mazestudio/jocker/keyboard.json @@ -4,6 +4,7 @@ "maintainer": "mazestd", "bootloader": "atmel-dfu", "processor": "atmega32u4", + "url": "", "usb": { "vid": "0x70F5", "pid": "0x4A01", @@ -11,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mb44/keyboard.json b/keyboards/mb44/keyboard.json index 5c2eeb6666..c349d11d38 100644 --- a/keyboards/mb44/keyboard.json +++ b/keyboards/mb44/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MB-44", "manufacturer": "melonbred", + "url": "", "maintainer": "melonbred", "usb": { "vid": "0x6D62", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mb44/readme.md b/keyboards/mb44/readme.md index 3029c69f9e..3cd59ecdb1 100644 --- a/keyboards/mb44/readme.md +++ b/keyboards/mb44/readme.md @@ -5,6 +5,8 @@ To reset and put into bootloader mode, please use the hardware reset button on the botton of the PCB. If the PCB is on the default firmware, software reset is available by holding the bottom left corner key and pressing `B` in the standard qwerty layout. * Keyboard Maintainer: [melonbred](https://github.com/melonbred) +* Hardware Supported: The PCBs, controllers supported +* Hardware Availability: Links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mc_76k/keyboard.json b/keyboards/mc_76k/keyboard.json index d277ec95d5..18aef48d01 100644 --- a/keyboards/mc_76k/keyboard.json +++ b/keyboards/mc_76k/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mechanickeys/miniashen40/keyboard.json b/keyboards/mechanickeys/miniashen40/keyboard.json index 36eb0a4300..2adee31c1d 100644 --- a/keyboards/mechanickeys/miniashen40/keyboard.json +++ b/keyboards/mechanickeys/miniashen40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mini Ashen 40", "manufacturer": "MechanicKeys", + "url": "", "maintainer": "jfescobar18", "usb": { "vid": "0x4D4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mechanickeys/undead60m/keyboard.json b/keyboards/mechanickeys/undead60m/keyboard.json index 5b5f5ca167..7dc27c29ed 100644 --- a/keyboards/mechanickeys/undead60m/keyboard.json +++ b/keyboards/mechanickeys/undead60m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Undead 60-M", "manufacturer": "MechanicKeys", + "url": "", "maintainer": "jfescobar18", "usb": { "vid": "0x4D4B", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechanickeys/undead60m/undead60m.c b/keyboards/mechanickeys/undead60m/undead60m.c index 8aad8342d3..995b56e544 100644 --- a/keyboards/mechanickeys/undead60m/undead60m.c +++ b/keyboards/mechanickeys/undead60m/undead60m.c @@ -28,9 +28,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case 1: /* Layer 2: Scroll */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } break; case 2: /* Layer 3: Change Track */ diff --git a/keyboards/mechboards/common/display_oled.c b/keyboards/mechboards/common/display_oled.c deleted file mode 100644 index fed13c22fd..0000000000 --- a/keyboards/mechboards/common/display_oled.c +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -static uint16_t current_keycode = 0xFF; - -static const char *depad_str(const char *depad_str, char depad_char) { - while (*depad_str == depad_char) - ++depad_str; - return depad_str; -} - -static void render_spacer(uint8_t char_length) { - static const char PROGMEM spacer_char[] = {8, 8, 8, 8, 8, 8, 8}; - if (char_length > 5) { - char_length = 5; - } - for (uint8_t i = 0; i < char_length; i++) { - oled_write_raw_P(spacer_char, sizeof(spacer_char)); - oled_advance_char(); - } -} - -__attribute__((weak)) void render_logo(void) { - static const char PROGMEM mb_logo[] = { - 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 227, 227, 227, 3, 227, 227, 227, 3, 227, 227, 227, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 254, 252, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, - 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 0, 238, 238, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 199, 199, 199, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 224, 127, 63, - }; - oled_write_raw_P(mb_logo, sizeof(mb_logo)); -} - -void render_small_mb_logo(void) { - static const char PROGMEM small_mb_logo[] = { - 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 0, 119, 119, 119, 0, 112, 112, 112, 0, 112, 112, 112, 119, 119, 119, 0, 0, 0, 0, 0, 119, 119, 119, 0, 0, 0, 0, 0, 119, 119, 119, 0, 0, 119, 119, 119, 0, 112, 112, 112, 0, 119, 119, 119, - }; - oled_write_raw_P(small_mb_logo, sizeof(small_mb_logo)); -} - -static uint8_t last_hue; -static uint8_t last_sat; -static uint8_t last_val; -static uint8_t last_mode; - -void render_rgb_info(void) { - last_hue = rgb_matrix_get_hue(); - last_sat = rgb_matrix_get_sat(); - last_val = rgb_matrix_get_val(); - last_mode = rgb_matrix_get_mode(); - oled_set_cursor(0, 6); - oled_write("H:", false); - oled_write(depad_str(get_u16_str(last_hue, ' '), ' '), false); - oled_set_cursor(0, 7); - oled_write("S:", false); - oled_write_ln(depad_str(get_u16_str(last_sat, ' '), ' '), false); - oled_set_cursor(0, 8); - oled_write("V:", false); - oled_write_ln(depad_str(get_u16_str(last_val, ' '), ' '), false); - oled_set_cursor(0, 9); - oled_write("M:", false); - oled_write_ln(depad_str(get_u16_str(last_mode, ' '), ' '), false); -} - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_270; - } - return rotation; -} - -char basic_codes_to_name[57] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/'}; - -const char *keycode_string(uint16_t keycode) { - char *keycode_str; - static char key; - switch (keycode) { - case 0 ... 56: - key = pgm_read_byte(&basic_codes_to_name[keycode]); - return &key; - case KC_CAPS: - keycode_str = "Caps\0"; - break; - case KC_SCRL: - keycode_str = "Scrl\0"; - break; - case KC_PAUS: - keycode_str = "Pause\0"; - break; - case KC_DEL: - keycode_str = "Del\0"; - break; - case KC_NUM: - keycode_str = "Num\0"; - break; - case KC_MUTE: - keycode_str = "Mute\0"; - break; - case KC_VOLU: - keycode_str = "VolUp\0"; - break; - case KC_VOLD: - keycode_str = "VolD\0"; - break; - case KC_MNXT: - keycode_str = "Next\0"; - break; - case KC_MPRV: - keycode_str = "Prev\0"; - break; - case KC_MSTP: - keycode_str = "Stop\0"; - break; - case KC_MPLY: - keycode_str = "Play\0"; - break; - case QK_MODS ... QK_MODS_MAX: - keycode_str = "MOD()\0"; - break; - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - keycode_str = "MT()\0"; - break; - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - keycode_str = "LT()\0"; - break; - case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: - keycode_str = "LM()\0"; - break; - case QK_TO ... QK_TO_MAX: - keycode_str = "TO()\0"; - break; - case QK_MOMENTARY ... QK_MOMENTARY_MAX: - keycode_str = "MO()\0"; - break; - case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: - keycode_str = "DF()\0"; - break; - case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: - keycode_str = "TG()\0"; - break; - case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_MOD_MAX: - keycode_str = "1SHOT\0"; - break; - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: - keycode_str = "TT()\0"; - break; - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: - keycode_str = "PDF()\0"; - break; - case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: - keycode_str = "SWAP\0"; - break; - case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: - keycode_str = "TD()\0"; - break; - case QK_MAGIC ... QK_MAGIC_MAX: - keycode_str = "Magic\0"; - break; - case QK_MIDI ... QK_MIDI_MAX: - keycode_str = "Midi\0"; - break; - case QK_SEQUENCER ... QK_SEQUENCER_MAX: - keycode_str = "Seq\0"; - break; - case QK_JOYSTICK ... QK_JOYSTICK_MAX: - keycode_str = "Joy\0"; - break; - case QK_PROGRAMMABLE_BUTTON ... QK_PROGRAMMABLE_BUTTON_MAX: - keycode_str = "Prog\0"; - break; - case QK_AUDIO ... QK_AUDIO_MAX: - keycode_str = "Audio\0"; - break; - case QK_STENO ... QK_STENO_MAX: - keycode_str = "Steno\0"; - break; - case QK_MACRO ... QK_MACRO_MAX: - keycode_str = "Macro\0"; - break; - case QK_CONNECTION ... QK_CONNECTION_MAX: - keycode_str = "Conn\0"; - break; - case QK_LIGHTING ... QK_LIGHTING_MAX: - keycode_str = "Light\0"; - break; - case QK_QUANTUM ... QK_QUANTUM_MAX: - keycode_str = "Quant\0"; - break; - case QK_KB ... QK_KB_MAX: - keycode_str = "KB\0"; - break; - case QK_USER ... QK_USER_MAX: - keycode_str = "USER\0"; - break; - case QK_UNICODEMAP ... QK_UNICODEMAP_PAIR_MAX: - keycode_str = "Uni\0"; - break; - default: - keycode_str = "Undef\0"; - break; - } - - return keycode_str; -} - -const char *layer_string(uint32_t layer) { - char *layer_str; - switch (layer) { - case 0: - layer_str = "Zero\0"; - break; - case 1: - layer_str = "One\0"; - break; - case 2: - layer_str = "Two\0"; - break; - case 3: - layer_str = "Three\0"; - break; - case 4: - layer_str = "Four\0"; - break; - case 5: - layer_str = "Five\0"; - break; - case 6: - layer_str = "Six\0"; - break; - case 7: - layer_str = "Seven\0"; - break; - default: - return get_u16_str(layer, ' '); - } - - return layer_str; -} - -bool process_detected_host_os_kb(os_variant_t detected_os) { - if (!process_detected_host_os_user(detected_os)) { - return false; - } - - oled_set_cursor(0, 10); - switch (detected_os) { - case OS_MACOS: - oled_write_ln("MacOS", false); - case OS_IOS: - oled_write_ln("Apple", false); - break; - case OS_WINDOWS: - oled_write_ln("Win", false); - break; - case OS_LINUX: - oled_write_ln("Linux", false); - break; - case OS_UNSURE: - oled_write_ln("Unkno", false); - - break; - } - - return true; -} - -void keyboard_post_init_kb(void) { - if (!is_keyboard_master()) { - render_logo(); - } else { - oled_set_cursor(0, 0); - oled_write("Layer", false); - render_spacer(5); - oled_write_ln(layer_string(get_highest_layer(layer_state)), false); - - oled_set_cursor(0, 4); - oled_write_ln("Key", false); - render_spacer(3); - oled_advance_page(false); - oled_write_ln("None", false); - - oled_set_cursor(0, 8); - oled_write_ln("OS", false); - render_spacer(2); - oled_advance_page(false); - oled_write_ln("Wait", false); - - oled_set_cursor(0, 12); - oled_write_ln("Rate", false); - render_spacer(4); - } - keyboard_post_init_user(); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - oled_set_cursor(0, 2); - oled_write_ln(layer_string(get_highest_layer(state)), false); - return state; -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - current_keycode = keycode; - return process_record_user(keycode, record); -}; - -uint16_t loop_rate = 0; -void housekeeping_task_kb(void) { - if (is_keyboard_master()) { - static uint32_t loop_count = 0; - static fast_timer_t loop_time = 0; - loop_count++; - if (timer_elapsed_fast(loop_time) > 1000) { - loop_time = timer_read_fast(); - loop_rate = loop_count > UINT16_MAX ? UINT16_MAX : loop_count; - loop_count = 0; - if (is_oled_on()) { - oled_set_cursor(0, 14); - oled_write(depad_str(get_u16_str(loop_rate, ' '), ' '), false); - } - } - } - if (is_oled_on() && last_input_activity_elapsed() > OLED_TIMEOUT) { - oled_off(); - } -} - -void oled_reinit_slave(void) { - oled_init(OLED_ROTATION_270); - oled_clear(); - oled_set_cursor(0, 0); - oled_write_ln("WPM", false); - render_spacer(3); - oled_advance_page(false); - oled_write_ln(depad_str(get_u16_str(get_current_wpm(), ' '), ' '), false); - - oled_set_cursor(0, 4); - oled_write_ln("RGB", false); - render_spacer(3); - render_rgb_info(); - - oled_set_cursor(0, 13); - render_small_mb_logo(); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - - static uint16_t last_keycode = 0xFF; - static bool oled_slave_init_done = false; - - if (is_keyboard_master()) { - if (last_keycode != current_keycode) { - oled_set_cursor(0, 6); - if (current_keycode < ARRAY_SIZE(basic_codes_to_name)) { - oled_write_char(basic_codes_to_name[current_keycode], false); - oled_advance_page(true); - } else { - oled_write_ln(keycode_string(current_keycode), false); - } - last_keycode = current_keycode; - } - } else { - if (!oled_slave_init_done) { - if (timer_elapsed32(0) > 5000) { - oled_slave_init_done = true; - oled_reinit_slave(); - } - } else { - static uint16_t last_wpm = 0; - if (rgb_matrix_get_hue() != last_hue || rgb_matrix_get_sat() != last_sat || rgb_matrix_get_val() != last_val || rgb_matrix_get_mode() != last_mode) { - render_rgb_info(); - } - if (last_wpm != get_current_wpm()) { - last_wpm = get_current_wpm(); - oled_set_cursor(0, 2); - oled_write_ln(depad_str(get_u16_str(last_wpm, ' '), ' '), false); - } - } - } - - return false; -} diff --git a/keyboards/mechboards/common/post_rules.mk b/keyboards/mechboards/common/post_rules.mk deleted file mode 100644 index 69bbbab9d0..0000000000 --- a/keyboards/mechboards/common/post_rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(strip $(OLED_ENABLE)), yes) - SRC += keyboards/mechboards/common/display_oled.c -endif diff --git a/keyboards/mechboards/common/rgb_effects.h b/keyboards/mechboards/common/rgb_effects.h deleted file mode 100644 index 8763d2a007..0000000000 --- a/keyboards/mechboards/common/rgb_effects.h +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#ifdef CONVERTER_ENABLED -# define ENABLE_RGB_MATRIX_ALPHA_MODS -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_COLORBAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_COLORBAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_COLORBAND_SAT -# define ENABLE_RGB_MATRIX_COLORBAND_SPIRIAL_SAT -# define ENABLE_RGB_MATRIX_COLORBAND_SPIRIAL_VAL -# define ENABLE_RGB_MATRIX_COLORBAND_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN -# define ENABLE_RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_FLOWER_BLOOMING -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_PIXEL_FLOW -# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_RIVERFLOW -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_STARLIGHT -# define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE -# define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#endif diff --git a/keyboards/mechboards/crkbd/pro/config.h b/keyboards/mechboards/crkbd/pro/config.h deleted file mode 100644 index 43a4b3eb9f..0000000000 --- a/keyboards/mechboards/crkbd/pro/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/crkbd/pro/keyboard.json b/keyboards/mechboards/crkbd/pro/keyboard.json deleted file mode 100644 index 69a04760de..0000000000 --- a/keyboards/mechboards/crkbd/pro/keyboard.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "manufacturer": "Mechboards", - "keyboard_name": "CRKBD Pro", - "maintainer": "dasky", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B6", "pin_b": "B2"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "os_detection": true, - "rgb_matrix": true, - "wpm": true - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], - "rows": ["D4", "C6", "D7", "E6"] - }, - "rgb_matrix": { - "animations": { - "cycle_left_right": true - }, - "driver": "ws2812", - "layout": [ - {"x": 85, "y": 16, "flags": 2}, - {"x": 50, "y": 13, "flags": 2}, - {"x": 16, "y": 20, "flags": 2}, - {"x": 16, "y": 38, "flags": 2}, - {"x": 50, "y": 48, "flags": 2}, - {"x": 85, "y": 52, "flags": 2}, - {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, - {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, - {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, - {"x": 139, "y": 16, "flags": 2}, - {"x": 174, "y": 13, "flags": 2}, - {"x": 208, "y": 20, "flags": 2}, - {"x": 208, "y": 38, "flags": 2}, - {"x": 174, "y": 48, "flags": 2}, - {"x": 139, "y": 52, "flags": 2}, - {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, - {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, - {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, - {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} - ], - "max_brightness": 120, - "split_count": [27, 27] - }, - "rgblight": { - "led_count": 54, - "max_brightness": 120, - "split_count": [27, 27] - }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - }, - "transport": { - "sync": { - "matrix_state": true, - "oled": true, - "wpm": true - } - } - }, - "url": "mechboards.co.uk", - "usb": { - "device_version": "1.0.0", - "pid": "0x0003", - "vid": "0x7171" - }, - "ws2812": { - "pin": "D3" - }, - "layouts": { - "LAYOUT_split_3x6_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.25}, - {"matrix": [0, 1], "x": 1, "y": 0.25}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [4, 5], "x": 8, "y": 0.25}, - {"matrix": [4, 4], "x": 9, "y": 0.125}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 2], "x": 11, "y": 0.125}, - {"matrix": [4, 1], "x": 12, "y": 0.25}, - {"matrix": [4, 0], "x": 13, "y": 0.25}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [5, 5], "x": 8, "y": 1.25}, - {"matrix": [5, 4], "x": 9, "y": 1.125}, - {"matrix": [5, 3], "x": 10, "y": 1}, - {"matrix": [5, 2], "x": 11, "y": 1.125}, - {"matrix": [5, 1], "x": 12, "y": 1.25}, - {"matrix": [5, 0], "x": 13, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25}, - {"matrix": [2, 1], "x": 1, "y": 2.25}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [6, 5], "x": 8, "y": 2.25}, - {"matrix": [6, 4], "x": 9, "y": 2.125}, - {"matrix": [6, 3], "x": 10, "y": 2}, - {"matrix": [6, 2], "x": 11, "y": 2.125}, - {"matrix": [6, 1], "x": 12, "y": 2.25}, - {"matrix": [6, 0], "x": 13, "y": 2.25}, - {"matrix": [3, 3], "x": 3.5, "y": 3.25}, - {"matrix": [3, 4], "x": 4.5, "y": 3.5}, - {"matrix": [3, 5], "x": 5.5, "y": 3.75}, - {"matrix": [7, 5], "x": 7.5, "y": 3.75}, - {"matrix": [7, 4], "x": 8.5, "y": 3.5}, - {"matrix": [7, 3], "x": 9.5, "y": 3.25} - ] - } - } -} diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c b/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c deleted file mode 100644 index 2e70e3091e..0000000000 --- a/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x6_3( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, - KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT - -), - - [1] = LAYOUT_split_3x6_3( - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT -), - - [2] = LAYOUT_split_3x6_3( - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, - KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT -), - - [3] = LAYOUT_split_3x6_3( - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT -) -}; - -#ifdef 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_MPRV, KC_MNXT)}, -[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, -[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, -[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} -}; -#endif - -// clang-format on diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk b/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/crkbd/pro/post_rules.mk b/keyboards/mechboards/crkbd/pro/post_rules.mk deleted file mode 100644 index 4bfdc8ca89..0000000000 --- a/keyboards/mechboards/crkbd/pro/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/crkbd/pro/pro.c b/keyboards/mechboards/crkbd/pro/pro.c deleted file mode 100644 index 05c41d3612..0000000000 --- a/keyboards/mechboards/crkbd/pro/pro.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef OLED_ENABLE -void render_logo(void) { - static const char PROGMEM pro_logo[] = { - 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 248, 248, 24, 24, 24, 24, 24, 24, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 0, 0, 0, 128, 248, 248, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, - 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 6, 6, 15, 31, 249, 240, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, - 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 3, 3, 3, 3, 3, 3, 227, 241, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, - }; - oled_write_raw_P(pro_logo, sizeof(pro_logo)); -} -#endif diff --git a/keyboards/mechboards/crkbd/pro/readme.md b/keyboards/mechboards/crkbd/pro/readme.md deleted file mode 100644 index 52fc199d5c..0000000000 --- a/keyboards/mechboards/crkbd/pro/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# CRKBD Pro - -A refreshed CRKBD (Corne) PCB with RGB, battery, power switch and encoder support. - -* Keyboard Maintainer: [dasky](https://github.com/daskygit) -* Hardware Supported: Controllers using promicro footprint. -* Hardware Availability: https://mechboards.co.uk - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb mechboards/crkbd/pro -km default - -Flashing example for this keyboard: - - qmk flash -kb mechboards/crkbd/pro -km default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the top left key/encoder or the top right key/encoder depending on which side you're connecting to usb. -* **Physical reset button**: Double press the button below the TRRS socket. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechboards/lily58/pro/config.h b/keyboards/mechboards/lily58/pro/config.h deleted file mode 100644 index 43a4b3eb9f..0000000000 --- a/keyboards/mechboards/lily58/pro/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/lily58/pro/keyboard.json b/keyboards/mechboards/lily58/pro/keyboard.json deleted file mode 100644 index ca620c67d8..0000000000 --- a/keyboards/mechboards/lily58/pro/keyboard.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "manufacturer": "Mechboards", - "keyboard_name": "Lily58 Pro", - "maintainer": "dasky", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F5", "pin_b": "F4"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "os_detection": true, - "rgb_matrix": true, - "wpm": true - }, - "matrix_pins": { - "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["C6", "D7", "E6", "B4", "B5"] - }, - "rgb_matrix": { - "animations": { - "cycle_left_right": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 58, "y": 2, "flags": 4}, - {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 29, "y": 2, "flags": 4}, - {"matrix": [0, 1], "x": 14, "y": 6, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 8, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 23, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, - {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 58, "y": 17, "flags": 4}, - {"matrix": [1, 5], "x": 72, "y": 19, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 34, "flags": 4}, - {"matrix": [2, 4], "x": 58, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, - {"matrix": [2, 2], "x": 29, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 14, "y": 36, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 53, "flags": 4}, - {"matrix": [3, 1], "x": 14, "y": 51, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 47, "flags": 4}, - {"matrix": [3, 3], "x": 43, "y": 45, "flags": 4}, - {"matrix": [3, 4], "x": 58, "y": 47, "flags": 4}, - {"matrix": [3, 5], "x": 72, "y": 49, "flags": 4}, - {"matrix": [4, 5], "x": 87, "y": 41, "flags": 4}, - {"matrix": [4, 4], "x": 87, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 65, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 51, "y": 62, "flags": 4}, - {"matrix": [4, 1], "x": 36, "y": 62, "flags": 4}, - {"x": 96, "y": 64, "flags": 2}, - {"x": 32, "y": 64, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 0, "y": 32, "flags": 2}, - {"x": 16, "y": 0, "flags": 2}, - {"x": 50, "y": 0, "flags": 2}, - {"x": 80, "y": 0, "flags": 2}, - {"x": 96, "y": 32, "flags": 2}, - {"matrix": [5, 5], "x": 152, "y": 4, "flags": 4}, - {"matrix": [5, 4], "x": 166, "y": 2, "flags": 4}, - {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 195, "y": 2, "flags": 4}, - {"matrix": [5, 1], "x": 210, "y": 6, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 8, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 23, "flags": 4}, - {"matrix": [6, 1], "x": 210, "y": 21, "flags": 4}, - {"matrix": [6, 2], "x": 195, "y": 17, "flags": 4}, - {"matrix": [6, 3], "x": 181, "y": 15, "flags": 4}, - {"matrix": [6, 4], "x": 166, "y": 17, "flags": 4}, - {"matrix": [6, 5], "x": 152, "y": 19, "flags": 4}, - {"matrix": [7, 5], "x": 152, "y": 34, "flags": 4}, - {"matrix": [7, 4], "x": 166, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 181, "y": 30, "flags": 4}, - {"matrix": [7, 2], "x": 195, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 210, "y": 36, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 38, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 53, "flags": 4}, - {"matrix": [8, 1], "x": 210, "y": 51, "flags": 4}, - {"matrix": [8, 2], "x": 195, "y": 47, "flags": 4}, - {"matrix": [8, 3], "x": 181, "y": 45, "flags": 4}, - {"matrix": [8, 4], "x": 166, "y": 47, "flags": 4}, - {"matrix": [8, 5], "x": 152, "y": 49, "flags": 4}, - {"matrix": [9, 5], "x": 137, "y": 41, "flags": 4}, - {"matrix": [9, 4], "x": 137, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 159, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 173, "y": 62, "flags": 4}, - {"matrix": [9, 1], "x": 188, "y": 62, "flags": 4}, - {"x": 128, "y": 64, "flags": 2}, - {"x": 192, "y": 64, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 224, "y": 32, "flags": 2}, - {"x": 206, "y": 0, "flags": 2}, - {"x": 150, "y": 0, "flags": 2}, - {"x": 140, "y": 0, "flags": 2}, - {"x": 128, "y": 32, "flags": 2} - ], - "max_brightness": 120, - "sleep": true, - "split_count": [37, 37] - }, - "rgblight": { - "max_brightness": 120 - }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - }, - "transport": { - "sync": { - "matrix_state": true, - "oled": true, - "wpm": true - } - } - }, - "url": "mechboards.co.uk", - "usb": { - "device_version": "1.0.0", - "pid": "0x0002", - "vid": "0x7171" - }, - "ws2812": { - "pin": "D3" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [5, 5], "x": 10.5, "y": 0.25}, - {"matrix": [5, 4], "x": 11.5, "y": 0.125}, - {"matrix": [5, 3], "x": 12.5, "y": 0}, - {"matrix": [5, 2], "x": 13.5, "y": 0.125}, - {"matrix": [5, 1], "x": 14.5, "y": 0.375}, - {"matrix": [5, 0], "x": 15.5, "y": 0.5}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [6, 5], "x": 10.5, "y": 1.25}, - {"matrix": [6, 4], "x": 11.5, "y": 1.125}, - {"matrix": [6, 3], "x": 12.5, "y": 1}, - {"matrix": [6, 2], "x": 13.5, "y": 1.125}, - {"matrix": [6, 1], "x": 14.5, "y": 1.375}, - {"matrix": [6, 0], "x": 15.5, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [7, 5], "x": 10.5, "y": 2.25}, - {"matrix": [7, 4], "x": 11.5, "y": 2.125}, - {"matrix": [7, 3], "x": 12.5, "y": 2}, - {"matrix": [7, 2], "x": 13.5, "y": 2.125}, - {"matrix": [7, 1], "x": 14.5, "y": 2.375}, - {"matrix": [7, 0], "x": 15.5, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 9.5, "y": 2.75}, - {"matrix": [8, 5], "x": 10.5, "y": 3.25}, - {"matrix": [8, 4], "x": 11.5, "y": 3.125}, - {"matrix": [8, 3], "x": 12.5, "y": 3}, - {"matrix": [8, 2], "x": 13.5, "y": 3.125}, - {"matrix": [8, 1], "x": 14.5, "y": 3.375}, - {"matrix": [8, 0], "x": 15.5, "y": 3.5}, - {"matrix": [4, 1], "x": 2.5, "y": 4.125}, - {"matrix": [4, 2], "x": 3.5, "y": 4.15}, - {"matrix": [4, 3], "x": 4.5, "y": 4.25}, - {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, - {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, - {"matrix": [9, 3], "x": 11, "y": 4.25}, - {"matrix": [9, 2], "x": 12, "y": 4.15}, - {"matrix": [9, 1], "x": 13, "y": 4.15} - ] - } - } -} diff --git a/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c b/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c deleted file mode 100644 index 6c23650b05..0000000000 --- a/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_BSPC, KC_RGUI -), - -[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_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, - _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, MO(3), _______, _______ -), - - -[2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, MO(3), _______, _______, _______, _______, _______ -), - - [3] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -#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)}, - [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, - [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, - [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} -}; -#endif -// clang-format on diff --git a/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk b/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/lily58/pro/post_rules.mk b/keyboards/mechboards/lily58/pro/post_rules.mk deleted file mode 100644 index 4bfdc8ca89..0000000000 --- a/keyboards/mechboards/lily58/pro/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/lily58/pro/pro.c b/keyboards/mechboards/lily58/pro/pro.c deleted file mode 100644 index 34c1f6409e..0000000000 --- a/keyboards/mechboards/lily58/pro/pro.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef OLED_ENABLE -void render_logo(void) { - static const char PROGMEM pro_logo[] = { - 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 24, 24, 24, 24, 24, 24, 0, 0, 240, 248, 24, 24, 24, 24, 24, 248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, - 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, 255, 255, 0, 0, 248, 248, 0, 0, 0, 0, 248, 248, 0, 0, 7, 7, 6, 6, 6, 6, 254, 252, 0, 0, 251, 255, 6, 6, 6, 6, 6, 255, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 131, 131, 131, 131, 131, 131, - 255, 255, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 225, 240, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, - }; - oled_write_raw_P(pro_logo, sizeof(pro_logo)); -} -#endif diff --git a/keyboards/mechboards/lily58/pro/readme.md b/keyboards/mechboards/lily58/pro/readme.md deleted file mode 100644 index 9ec83c2800..0000000000 --- a/keyboards/mechboards/lily58/pro/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Lily58 Pro - -A refreshed Lily58 PCB with RGB, battery, power switch and encoder support. - -* Keyboard Maintainer: [dasky](https://github.com/daskygit) -* Hardware Supported: Controllers using promicro footprint. -* Hardware Availability: https://mechboards.co.uk - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb mechboards/lily58/pro -km default - -Flashing example for this keyboard: - - qmk flash -kb mechboards/lily58/pro -km default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the top left key (for left half) or top right key (for right half) when plugging in USB. -* **Physical reset button**: Briefly double press the button below the TRRS socket. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechboards/sofle/pro/config.h b/keyboards/mechboards/sofle/pro/config.h deleted file mode 100644 index 43a4b3eb9f..0000000000 --- a/keyboards/mechboards/sofle/pro/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/sofle/pro/keyboard.json b/keyboards/mechboards/sofle/pro/keyboard.json deleted file mode 100644 index e1da038644..0000000000 --- a/keyboards/mechboards/sofle/pro/keyboard.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "manufacturer": "Mechboards", - "keyboard_name": "Sofle Pro", - "maintainer": "dasky", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F5", "pin_b": "F4"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "os_detection": true, - "rgb_matrix": true, - "wpm": true - }, - "matrix_pins": { - "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["C6", "D7", "E6", "B4", "B5"] - }, - "rgb_matrix": { - "animations": { - "cycle_left_right": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [4, 0], "x": 32, "y": 57, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 12, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 12, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 36, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, - {"matrix": [4, 1], "x": 48, "y": 55, "flags": 4}, - {"matrix": [4, 2], "x": 64, "y": 57, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 45, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 33, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 21, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 9, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 7, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 19, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 31, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 43, "flags": 4}, - {"matrix": [4, 3], "x": 80, "y": 59, "flags": 4}, - {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 45, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 33, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 21, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 9, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 10, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 22, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 34, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 47, "flags": 4}, - {"x": 84, "y": 45, "flags": 2}, - {"x": 68, "y": 7, "flags": 2}, - {"x": 20, "y": 14, "flags": 2}, - {"x": 28, "y": 49, "flags": 2}, - {"x": 62, "y": 57, "flags": 2}, - {"matrix": [9, 0], "x": 192, "y": 57, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 24, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 12, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 12, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [7, 1], "x": 208, "y": 36, "flags": 4}, - {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, - {"matrix": [9, 1], "x": 176, "y": 55, "flags": 4}, - {"matrix": [9, 2], "x": 160, "y": 57, "flags": 4}, - {"matrix": [8, 2], "x": 192, "y": 45, "flags": 4}, - {"matrix": [7, 2], "x": 192, "y": 33, "flags": 4}, - {"matrix": [6, 2], "x": 192, "y": 21, "flags": 4}, - {"matrix": [5, 2], "x": 192, "y": 9, "flags": 4}, - {"matrix": [5, 3], "x": 176, "y": 7, "flags": 4}, - {"matrix": [6, 3], "x": 176, "y": 19, "flags": 4}, - {"matrix": [7, 3], "x": 176, "y": 31, "flags": 4}, - {"matrix": [8, 3], "x": 176, "y": 43, "flags": 4}, - {"matrix": [9, 3], "x": 144, "y": 59, "flags": 4}, - {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4}, - {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, - {"matrix": [7, 4], "x": 160, "y": 33, "flags": 4}, - {"matrix": [6, 4], "x": 160, "y": 21, "flags": 4}, - {"matrix": [5, 4], "x": 160, "y": 9, "flags": 4}, - {"matrix": [5, 5], "x": 144, "y": 10, "flags": 4}, - {"matrix": [6, 5], "x": 144, "y": 22, "flags": 4}, - {"matrix": [7, 5], "x": 144, "y": 34, "flags": 4}, - {"matrix": [8, 5], "x": 144, "y": 47, "flags": 4} - {"x": 140, "y": 45, "flags": 2}, - {"x": 156, "y": 7, "flags": 2}, - {"x": 204, "y": 14, "flags": 2}, - {"x": 196, "y": 49, "flags": 2}, - {"x": 162, "y": 57, "flags": 2} - ], - "max_brightness": 120, - "split_count": [34, 34] - }, - "rgblight": { - "led_count": 68, - "max_brightness": 120, - "split_count": [34, 34] - }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - }, - "transport": { - "sync": { - "matrix_state": true, - "oled": true, - "wpm": true - } - } - }, - "url": "mechboards.co.uk", - "usb": { - "device_version": "1.0.0", - "pid": "0x0004", - "vid": "0x7171" - }, - "ws2812": { - "pin": "D3" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [5, 5], "x": 10.5, "y": 0.25}, - {"matrix": [5, 4], "x": 11.5, "y": 0.125}, - {"matrix": [5, 3], "x": 12.5, "y": 0}, - {"matrix": [5, 2], "x": 13.5, "y": 0.125}, - {"matrix": [5, 1], "x": 14.5, "y": 0.375}, - {"matrix": [5, 0], "x": 15.5, "y": 0.5}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [6, 5], "x": 10.5, "y": 1.25}, - {"matrix": [6, 4], "x": 11.5, "y": 1.125}, - {"matrix": [6, 3], "x": 12.5, "y": 1}, - {"matrix": [6, 2], "x": 13.5, "y": 1.125}, - {"matrix": [6, 1], "x": 14.5, "y": 1.375}, - {"matrix": [6, 0], "x": 15.5, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [7, 5], "x": 10.5, "y": 2.25}, - {"matrix": [7, 4], "x": 11.5, "y": 2.125}, - {"matrix": [7, 3], "x": 12.5, "y": 2}, - {"matrix": [7, 2], "x": 13.5, "y": 2.125}, - {"matrix": [7, 1], "x": 14.5, "y": 2.375}, - {"matrix": [7, 0], "x": 15.5, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [4, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 9.5, "y": 2.75}, - {"matrix": [8, 5], "x": 10.5, "y": 3.25}, - {"matrix": [8, 4], "x": 11.5, "y": 3.125}, - {"matrix": [8, 3], "x": 12.5, "y": 3}, - {"matrix": [8, 2], "x": 13.5, "y": 3.125}, - {"matrix": [8, 1], "x": 14.5, "y": 3.375}, - {"matrix": [8, 0], "x": 15.5, "y": 3.5}, - {"matrix": [4, 0], "x": 1.5, "y": 4.375}, - {"matrix": [4, 1], "x": 2.5, "y": 4.125}, - {"matrix": [4, 2], "x": 3.5, "y": 4.15}, - {"matrix": [4, 3], "x": 4.5, "y": 4.25}, - {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, - {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, - {"matrix": [9, 3], "x": 11, "y": 4.25}, - {"matrix": [9, 2], "x": 12, "y": 4.15}, - {"matrix": [9, 1], "x": 13, "y": 4.125}, - {"matrix": [9, 0], "x": 14, "y": 4.375} - ] - } - } -} diff --git a/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c b/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c deleted file mode 100644 index dac2331fd7..0000000000 --- a/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// clang-format off - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, 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_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI - ), - [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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, - _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, - _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,_______, - _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_BSPC, - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, XXXXXXX, - _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, MO(3), _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -#ifdef 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_MPRV, KC_MNXT)}, -[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, -[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, -[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} -}; -#endif -// clang-format on diff --git a/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk b/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/sofle/pro/post_rules.mk b/keyboards/mechboards/sofle/pro/post_rules.mk deleted file mode 100644 index 4bfdc8ca89..0000000000 --- a/keyboards/mechboards/sofle/pro/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/sofle/pro/pro.c b/keyboards/mechboards/sofle/pro/pro.c deleted file mode 100644 index df377eb28a..0000000000 --- a/keyboards/mechboards/sofle/pro/pro.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef OLED_ENABLE -void render_logo(void) { - static const char PROGMEM pro_logo[] = { - 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 240, 248, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 248, 24, 24, 24, 24, 16, 0, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, - 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 3, 7, 6, 6, 6, 6, 254, 252, 0, 0, 254, 255, 3, 3, 3, 3, 255, 254, 0, 0, 3, 255, 255, 3, 3, 3, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 254, 255, 51, 51, 51, 51, 63, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 1, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 3, 3, 0, - 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 0, 0, 1, 3, 3, 3, 3, 3, 3, 1, 0, 0, 224, 240, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, - }; - oled_write_raw_P(pro_logo, sizeof(pro_logo)); -} -#endif diff --git a/keyboards/mechboards/sofle/pro/readme.md b/keyboards/mechboards/sofle/pro/readme.md deleted file mode 100644 index 7e1a772759..0000000000 --- a/keyboards/mechboards/sofle/pro/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Sofle Pro - -A refreshed PCB with per key RGB, battery, power switch support. - -* Keyboard Maintainer: [dasky](https://github.com/daskygit) -* Hardware Supported: Controllers using promicro footprint. -* Hardware Availability: https://mechboards.co.uk - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb mechboards/sofle/pro -km default - -Flashing example for this keyboard: - - qmk flash -kb mechboards/sofle/pro -km default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the top left key or the top right key depending on which side you're connecting to USB. -* **Physical reset button**: Double press the button below the TRRS socket. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechbrewery/mb65h/keyboard.json b/keyboards/mechbrewery/mb65h/keyboard.json index c49abe946a..8b4049be4d 100644 --- a/keyboards/mechbrewery/mb65h/keyboard.json +++ b/keyboards/mechbrewery/mb65h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MB65H", "manufacturer": "MechBrewery", + "url": "", "maintainer": "AnthonyNguyen168", "usb": { "vid": "0x4252", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mechbrewery/mb65s/keyboard.json b/keyboards/mechbrewery/mb65s/keyboard.json index 17472eeecf..e043d95860 100644 --- a/keyboards/mechbrewery/mb65s/keyboard.json +++ b/keyboards/mechbrewery/mb65s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MB65S", "manufacturer": "MechBrewery", + "url": "", "maintainer": "AnthonyNguyen168", "usb": { "vid": "0x4252", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mechkeys/acr60/keyboard.json b/keyboards/mechkeys/acr60/keyboard.json index a3eed2d74e..90b1fd2571 100644 --- a/keyboards/mechkeys/acr60/keyboard.json +++ b/keyboards/mechkeys/acr60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ACR60", "manufacturer": "MechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -56,28 +59,10 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_arrow", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift", - "64_ansi", - "64_iso" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_ansi_arrow", "64_ansi", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift", "64_iso"], "layout_aliases": { "LAYOUT_2_shifts": "LAYOUT_all", - "LAYOUT_mitchsplit": "LAYOUT_60_ansi_split_space_split_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_mitchsplit": "LAYOUT_60_ansi_split_space_split_rshift" }, "layouts": { "LAYOUT_all": { @@ -364,7 +349,7 @@ {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/mechkeys/alu84/keyboard.json b/keyboards/mechkeys/alu84/keyboard.json index 3d3355a3ee..30f70b17c9 100644 --- a/keyboards/mechkeys/alu84/keyboard.json +++ b/keyboards/mechkeys/alu84/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ALU84", "manufacturer": "MechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mechkeys/espectro/keyboard.json b/keyboards/mechkeys/espectro/keyboard.json index d9c292d5e5..f4d2aa29bb 100644 --- a/keyboards/mechkeys/espectro/keyboard.json +++ b/keyboards/mechkeys/espectro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Espectro", "manufacturer": "MechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mechkeys/mechmini/rules.mk b/keyboards/mechkeys/mechmini/rules.mk new file mode 100644 index 0000000000..9d63d875eb --- /dev/null +++ b/keyboards/mechkeys/mechmini/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechkeys/mechmini/v2 diff --git a/keyboards/mechkeys/mechmini/v1/keyboard.json b/keyboards/mechkeys/mechmini/v1/keyboard.json index a1338c9ba9..8d3a4a9b84 100644 --- a/keyboards/mechkeys/mechmini/v1/keyboard.json +++ b/keyboards/mechkeys/mechmini/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MechMini", "manufacturer": "MechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechkeys/mk60/keyboard.json b/keyboards/mechkeys/mk60/keyboard.json index 70c8bec2c6..e47d7def2c 100644 --- a/keyboards/mechkeys/mk60/keyboard.json +++ b/keyboards/mechkeys/mk60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MK60", "manufacturer": "MechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechllama/g35/info.json b/keyboards/mechllama/g35/info.json index 8c6489409e..2fa3871405 100644 --- a/keyboards/mechllama/g35/info.json +++ b/keyboards/mechllama/g35/info.json @@ -5,6 +5,8 @@ "maintainer": "kaylynb", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, @@ -13,12 +15,8 @@ }, "usb": { "vid": "0xCEEB", - "pid": "0x0035" - }, - "host": { - "default": { - "nkro": true - } + "pid": "0x0035", + "force_nkro": true }, "ws2812": { "pin": "F7" diff --git a/keyboards/mechllama/g35/rules.mk b/keyboards/mechllama/g35/rules.mk new file mode 100644 index 0000000000..36acf8d17f --- /dev/null +++ b/keyboards/mechllama/g35/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechllama/g35/v2 diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json index 84ca6403ce..42b16d6398 100644 --- a/keyboards/mechlovin/adelais/info.json +++ b/keyboards/mechlovin/adelais/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/adelais/keymaps/default/keymap.c b/keyboards/mechlovin/adelais/keymaps/default/keymap.c index bcf4cb6e8c..bb514bf15b 100644 --- a/keyboards/mechlovin/adelais/keymaps/default/keymap.c +++ b/keyboards/mechlovin/adelais/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_all( - QK_BOOT, KC_TRNS, RM_TOGG, RM_NEXT, RM_SPDU, RM_SPDD, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -68,3 +68,45 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { +#ifdef RGB_MATRIX_ENABLE + case KC_F13: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case KC_F14: + rgb_matrix_step(); + return false; + case KC_F15: + rgb_matrix_increase_speed(); + return false; + case KC_F16: + rgb_matrix_decrease_speed(); + return false; + case KC_F17: + rgb_matrix_increase_hue(); + return false; + case KC_F18: + rgb_matrix_decrease_hue(); + return false; + case KC_F19: + rgb_matrix_increase_sat(); + return false; + case KC_F20: + rgb_matrix_decrease_sat(); + return false; + case KC_F21: + rgb_matrix_increase_val(); + return false; + case KC_F22: + rgb_matrix_decrease_val(); + return false; +#endif + default: + break; + } + } + return true; +} diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index fea263d7fb..d63b339468 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -3,4 +3,4 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index 2dffbc24f0..cc3853cacd 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -129,3 +129,51 @@ bool rgb_matrix_indicators_kb(void) { #endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (record->event.pressed) { + switch(keycode) { + #ifdef RGBLIGHT_ENABLE + #ifdef RGB_MATRIX_ENABLE + case KC_F13: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case KC_F14: + rgb_matrix_step(); + return false; + case KC_F15: + rgb_matrix_increase_speed(); + return false; + case KC_F16: + rgb_matrix_decrease_speed(); + return false; + case KC_F17: + rgb_matrix_increase_hue(); + return false; + case KC_F18: + rgb_matrix_decrease_hue(); + return false; + case KC_F19: + rgb_matrix_increase_sat(); + return false; + case KC_F20: + rgb_matrix_decrease_sat(); + return false; + case KC_F21: + rgb_matrix_increase_val(); + return false; + case KC_F22: + rgb_matrix_decrease_val(); + return false; + #endif + #endif + default: + break; + } + } + return true; +} diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 4ad313a03d..84075534e7 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -24,3 +24,5 @@ along with this program. If not, see . #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA + +#define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json index a7cd8faa78..628eb404a5 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json @@ -7,6 +7,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "rgb_matrix": true, diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk new file mode 100644 index 0000000000..18047f12c7 --- /dev/null +++ b/keyboards/mechlovin/adelais/rgb_led/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/adelais/rgb_led/rev1 diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk new file mode 100644 index 0000000000..a1d2ba038d --- /dev/null +++ b/keyboards/mechlovin/adelais/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk new file mode 100644 index 0000000000..d348ae660f --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev4/stm32f303 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk new file mode 100644 index 0000000000..16a636a342 --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json index 99a31763b9..3758a8f085 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json @@ -7,6 +7,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "backlight": true, "rgblight": true diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rules.mk b/keyboards/mechlovin/adelais/standard_led/avr/rules.mk new file mode 100644 index 0000000000..f33198890d --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/avr/rules.mk @@ -0,0 +1,2 @@ + +DEFAULT_FOLDER = mechlovin/adelais/standard_led/avr/rev1 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk new file mode 100644 index 0000000000..a1d2ba038d --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/delphine/info.json b/keyboards/mechlovin/delphine/info.json index 2fe90c7629..baeeab6f18 100644 --- a/keyboards/mechlovin/delphine/info.json +++ b/keyboards/mechlovin/delphine/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Delphine", "manufacturer": "Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/delphine/keymaps/default/keymap.c b/keyboards/mechlovin/delphine/keymaps/default/keymap.c index 6498b69262..81bd4ffdf7 100644 --- a/keyboards/mechlovin/delphine/keymaps/default/keymap.c +++ b/keyboards/mechlovin/delphine/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_6x4( - KC_ESC, BL_STEP, RM_TOGG, RM_NEXT, + KC_ESC, BL_STEP, RGB_TOG, RGB_MOD, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PEQL, diff --git a/keyboards/mechlovin/delphine/readme.md b/keyboards/mechlovin/delphine/readme.md index 397a0ada40..9a5389a5f3 100644 --- a/keyboards/mechlovin/delphine/readme.md +++ b/keyboards/mechlovin/delphine/readme.md @@ -1,5 +1,7 @@ # delphine +![delphine](imgur.com image replace me!) + A Number-Pad PCB, Mono backlight and RGB backlight version, Dolpad compatible. * Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin) diff --git a/keyboards/mechlovin/delphine/rules.mk b/keyboards/mechlovin/delphine/rules.mk new file mode 100644 index 0000000000..819bce1cd3 --- /dev/null +++ b/keyboards/mechlovin/delphine/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/delphine/mono_led diff --git a/keyboards/mechlovin/foundation/keyboard.json b/keyboards/mechlovin/foundation/keyboard.json index 00cf464255..3bd05add2f 100644 --- a/keyboards/mechlovin/foundation/keyboard.json +++ b/keyboards/mechlovin/foundation/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Foundation FRL", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Protozoa", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json index e2b0ae715e..4fb4dc2eef 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hannah60 RGB", "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index fea263d7fb..ddcde6b290 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -3,4 +3,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) +# define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json index 066422b3e3..06bb71a348 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hannah60 RGB Rev.2", "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index 90a42a88a2..3fdc571380 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -221,3 +221,49 @@ layer_state_t layer_state_set_user(layer_state_t state) { } #endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (record->event.pressed) { + switch(keycode) { + #ifdef RGB_MATRIX_DISABLE_KEYCODES + case KC_F13: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case KC_F14: + rgb_matrix_step(); + return false; + case KC_F15: + rgb_matrix_increase_speed(); + return false; + case KC_F16: + rgb_matrix_decrease_speed(); + return false; + case KC_F17: + rgb_matrix_increase_hue(); + return false; + case KC_F18: + rgb_matrix_decrease_hue(); + return false; + case KC_F19: + rgb_matrix_increase_sat(); + return false; + case KC_F20: + rgb_matrix_decrease_sat(); + return false; + case KC_F21: + rgb_matrix_increase_val(); + return false; + case KC_F22: + rgb_matrix_decrease_val(); + return false; + #endif + default: + break; + } + } + return true; +} diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk new file mode 100644 index 0000000000..e876a56afb --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/hannah60rgb/rev1 diff --git a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json index 14ca49f207..7a935fc1a5 100644 --- a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json +++ b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Haus Rev. 1", "manufacturer": "Team Mechlovin", + "url": "", "maintainer": "Team Mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah65/rev1/rules.mk b/keyboards/mechlovin/hannah65/rev1/rules.mk new file mode 100644 index 0000000000..ae9bc176a4 --- /dev/null +++ b/keyboards/mechlovin/hannah65/rev1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/hannah65/rev1/haus diff --git a/keyboards/mechlovin/hannah65/rules.mk b/keyboards/mechlovin/hannah65/rules.mk new file mode 100644 index 0000000000..ae9bc176a4 --- /dev/null +++ b/keyboards/mechlovin/hannah65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/hannah65/rev1/haus diff --git a/keyboards/mechlovin/hannah910/rev1/keyboard.json b/keyboards/mechlovin/hannah910/rev1/keyboard.json index 44dedd57c3..61cf365337 100644 --- a/keyboards/mechlovin/hannah910/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", + "url": "", "maintainer": "Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rev2/keyboard.json b/keyboards/mechlovin/hannah910/rev2/keyboard.json index 8a01f6bb8b..9fb5847124 100644 --- a/keyboards/mechlovin/hannah910/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rev3/keyboard.json b/keyboards/mechlovin/hannah910/rev3/keyboard.json index 668b31328f..ba88319890 100644 --- a/keyboards/mechlovin/hannah910/rev3/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rules.mk b/keyboards/mechlovin/hannah910/rules.mk new file mode 100644 index 0000000000..a356867197 --- /dev/null +++ b/keyboards/mechlovin/hannah910/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/hannah910/rev1 diff --git a/keyboards/mechlovin/hex4b/info.json b/keyboards/mechlovin/hex4b/info.json index de7f03bab9..9964736255 100644 --- a/keyboards/mechlovin/hex4b/info.json +++ b/keyboards/mechlovin/hex4b/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Hex-Keyboard&Mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hex4b/rules.mk b/keyboards/mechlovin/hex4b/rules.mk new file mode 100644 index 0000000000..e3d9ab46b4 --- /dev/null +++ b/keyboards/mechlovin/hex4b/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/hex4b/rev1 diff --git a/keyboards/mechlovin/hex6c/keyboard.json b/keyboards/mechlovin/hex6c/keyboard.json index c951cf242d..e068420b81 100644 --- a/keyboards/mechlovin/hex6c/keyboard.json +++ b/keyboards/mechlovin/hex6c/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Hex6C", "manufacturer": "Mechlovin Studio and Hex Keyboard", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json index 840f8a0392..2ac0510dbf 100644 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rogue87 Rev.1", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json index 1eec53ebb9..6b947f0f1f 100644 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rouge87 Rev.1", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/rules.mk b/keyboards/mechlovin/infinity87/rev1/rules.mk new file mode 100644 index 0000000000..101153f240 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rev1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/infinity87/rev1/standard diff --git a/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json index 941f6ec955..a0cb10fac2 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "infinity87 Rev.1", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev2/keyboard.json b/keyboards/mechlovin/infinity87/rev2/keyboard.json index 618b9397bf..fdc6686988 100644 --- a/keyboards/mechlovin/infinity87/rev2/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Infinity87 Rev.2", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json index 2ca5e03b36..2d177949dc 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Infinity87 RGB Rev1", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rules.mk b/keyboards/mechlovin/infinity87/rules.mk new file mode 100644 index 0000000000..4aa072cae7 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/infinity87/rgb_rev1 diff --git a/keyboards/mechlovin/infinity875/keyboard.json b/keyboards/mechlovin/infinity875/keyboard.json index 1016178caa..73bdb0af13 100644 --- a/keyboards/mechlovin/infinity875/keyboard.json +++ b/keyboards/mechlovin/infinity875/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Infinity87.5", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity875/keymaps/default/keymap.c b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c index 010038d113..750a94dab5 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/keymap.c +++ b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c @@ -26,10 +26,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATD, RM_HUED, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, - KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD ) }; diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc index 9c44fde9cc..627d12bd3c 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc +++ b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc @@ -59,7 +59,7 @@ bool effect_runner_all(effect_params_t* params, i_f effect_func) { uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1)); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; @@ -71,7 +71,7 @@ bool effect_runner_esc(effect_params_t* params, i_f effect_func) { uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1)); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 1; i < 18; i++) { @@ -85,7 +85,7 @@ bool effect_runner_f13(effect_params_t* params, i_f effect_func) { uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1)); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(15, 0x00, 0x00, 0x00); rgb_matrix_set_color(16, 0x00, 0x00, 0x00); @@ -103,7 +103,7 @@ bool effect_runner_clus(effect_params_t* params, i_f effect_func) { uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1)); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 0; i < 15; i++) { @@ -120,7 +120,7 @@ bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_TEST_LED_FLAGS(); int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; @@ -134,7 +134,7 @@ bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_TEST_LED_FLAGS(); int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 1; i < 18; i++) { @@ -151,7 +151,7 @@ bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_TEST_LED_FLAGS(); int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(15, 0x00, 0x00, 0x00); rgb_matrix_set_color(16, 0x00, 0x00, 0x00); @@ -171,7 +171,7 @@ bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_TEST_LED_FLAGS(); int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 0; i < 15; i++) { @@ -188,7 +188,7 @@ bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) int8_t sin_value = sin8(time) - 128; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; @@ -202,7 +202,7 @@ bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) int8_t sin_value = sin8(time) - 128; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 1; i < 18; i++) { @@ -219,7 +219,7 @@ bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) int8_t sin_value = sin8(time) - 128; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(15, 0x00, 0x00, 0x00); rgb_matrix_set_color(16, 0x00, 0x00, 0x00); @@ -239,7 +239,7 @@ bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func int8_t sin_value = sin8(time) - 128; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } for (uint8_t i = 0; i < 15; i++) { @@ -250,7 +250,7 @@ bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func static void raindrops_set_color_all(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; + HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; // Take the shortest path between hues int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; @@ -260,14 +260,14 @@ static void raindrops_set_color_all(int i, effect_params_t* params) { deltaH += 256; } - hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } static void raindrops_set_color_esc(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; + HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; // Take the shortest path between hues int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; @@ -277,8 +277,8 @@ static void raindrops_set_color_esc(int i, effect_params_t* params) { deltaH += 256; } - hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); @@ -287,7 +287,7 @@ static void raindrops_set_color_esc(int i, effect_params_t* params) { static void raindrops_set_color_f13(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; + HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; // Take the shortest path between hues int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; @@ -297,8 +297,8 @@ static void raindrops_set_color_f13(int i, effect_params_t* params) { deltaH += 256; } - hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(15, 0x00, 0x00, 0x00); rgb_matrix_set_color(16, 0x00, 0x00, 0x00); @@ -310,7 +310,7 @@ static void raindrops_set_color_f13(int i, effect_params_t* params) { static void raindrops_set_color_clus(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; + HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; // Take the shortest path between hues int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; @@ -320,43 +320,43 @@ static void raindrops_set_color_clus(int i, effect_params_t* params) { deltaH += 256; } - hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } } -static hsv_t BAND_VAL_CUSTOM(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV BAND_VAL_CUSTOM(HSV hsv, uint8_t i, uint8_t time) { int16_t v = hsv.v - abs(scale8(g_led_config.point[i].x, 228) + 28 - time) * 8; hsv.v = scale8(v < 0 ? 0 : v, hsv.v); return hsv; } -static hsv_t CYCLE_UP_DOWN_CUSTOM(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV CYCLE_UP_DOWN_CUSTOM(HSV hsv, uint8_t i, uint8_t time) { hsv.h = g_led_config.point[i].y - time; return hsv; } -static hsv_t CYCLE_OUT_IN_DUAL_CUSTOM(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV CYCLE_OUT_IN_DUAL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { dx = (k_rgb_matrix_center.x / 2) - abs8(dx); uint8_t dist = sqrt16(dx * dx + dy * dy); hsv.h = 3 * dist + time; return hsv; } -static hsv_t RAINBOW_MOVING_CHEVRON_CUSTOM(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV RAINBOW_MOVING_CHEVRON_CUSTOM(HSV hsv, uint8_t i, uint8_t time) { hsv.h += abs8(g_led_config.point[i].y - k_rgb_matrix_center.y) + (g_led_config.point[i].x - time); return hsv; } -static hsv_t CYCLE_PINWHEEL_CUSTOM(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV CYCLE_PINWHEEL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { hsv.h = atan2_8(dy, dx) + time; return hsv; } -static hsv_t RAINBOW_BEACON_CUSTOM(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { +static HSV RAINBOW_BEACON_CUSTOM(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * 2 * cos + (g_led_config.point[i].x - k_rgb_matrix_center.x) * 2 * sin) / 128; return hsv; } @@ -365,8 +365,8 @@ static hsv_t RAINBOW_BEACON_CUSTOM(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, // Solid ESC static bool solid_esc(effect_params_t* params) { - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb = hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb = hsv_to_rgb(hsv); RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); @@ -380,8 +380,8 @@ static bool solid_esc(effect_params_t* params) { // Solid F13 static bool solid_f13(effect_params_t* params) { - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb = hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb = hsv_to_rgb(hsv); RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); @@ -395,8 +395,8 @@ static bool solid_f13(effect_params_t* params) { // Solid cluster static bool solid_clus(effect_params_t* params) { - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb = hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb = hsv_to_rgb(hsv); RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); @@ -412,10 +412,10 @@ static bool solid_clus(effect_params_t* params) { bool breathing_all(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); @@ -427,10 +427,10 @@ bool breathing_all(effect_params_t* params) { static bool breathing_esc(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } @@ -446,10 +446,10 @@ static bool breathing_esc(effect_params_t* params) { static bool breathing_f13(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } @@ -465,10 +465,10 @@ static bool breathing_f13(effect_params_t* params) { static bool breathing_clus(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); for (uint8_t i = led_min ; i < led_max; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } diff --git a/keyboards/mechlovin/infinity88/keyboard.json b/keyboards/mechlovin/infinity88/keyboard.json index 3691c6d836..14371d2459 100644 --- a/keyboards/mechlovin/infinity88/keyboard.json +++ b/keyboards/mechlovin/infinity88/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Infinity 88", "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinityce/keyboard.json b/keyboards/mechlovin/infinityce/keyboard.json index ea62853ef4..5b10e056ba 100644 --- a/keyboards/mechlovin/infinityce/keyboard.json +++ b/keyboards/mechlovin/infinityce/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Infinity CE", "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/jay60/keyboard.json b/keyboards/mechlovin/jay60/keyboard.json index 2b7e9ef914..c7e05d2327 100644 --- a/keyboards/mechlovin/jay60/keyboard.json +++ b/keyboards/mechlovin/jay60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jay60", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", @@ -29,14 +30,13 @@ "processor": "atmega32a", "bootloader": "usbasploader", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi": { @@ -247,7 +247,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/mechlovin/kanu/keyboard.json b/keyboards/mechlovin/kanu/keyboard.json index a6b6588cc8..10cd22319a 100644 --- a/keyboards/mechlovin/kanu/keyboard.json +++ b/keyboards/mechlovin/kanu/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kanu", "manufacturer": "Mechlovin", + "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/kay60/keyboard.json b/keyboards/mechlovin/kay60/keyboard.json index e7b26f4560..7c38273947 100644 --- a/keyboards/mechlovin/kay60/keyboard.json +++ b/keyboards/mechlovin/kay60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kay60", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/kay65/keyboard.json b/keyboards/mechlovin/kay65/keyboard.json index 5ec1d34591..f5d5897939 100644 --- a/keyboards/mechlovin/kay65/keyboard.json +++ b/keyboards/mechlovin/kay65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kay65 Rev. 1", "manufacturer": "Team Mechlovin", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechlovin/mechlovin9/info.json b/keyboards/mechlovin/mechlovin9/info.json index 6783f0a323..41133813ef 100644 --- a/keyboards/mechlovin/mechlovin9/info.json +++ b/keyboards/mechlovin/mechlovin9/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Team Mechlovin", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/mechlovin9/rules.mk b/keyboards/mechlovin/mechlovin9/rules.mk new file mode 100644 index 0000000000..79de7c7d31 --- /dev/null +++ b/keyboards/mechlovin/mechlovin9/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/mechlovin9/rev1 diff --git a/keyboards/mechlovin/olly/bb/keyboard.json b/keyboards/mechlovin/olly/bb/keyboard.json index de3eb16c1d..ac08e94c3c 100644 --- a/keyboards/mechlovin/olly/bb/keyboard.json +++ b/keyboards/mechlovin/olly/bb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Olly BB", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json index c5a70f44ba..315191e840 100644 --- a/keyboards/mechlovin/olly/jf/info.json +++ b/keyboards/mechlovin/olly/jf/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/olly/jf/rules.mk b/keyboards/mechlovin/olly/jf/rules.mk new file mode 100644 index 0000000000..fa0eceeb8a --- /dev/null +++ b/keyboards/mechlovin/olly/jf/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/olly/jf/rev1 diff --git a/keyboards/mechlovin/olly/octagon/keyboard.json b/keyboards/mechlovin/olly/octagon/keyboard.json index 6df26bad09..4bc7d88ed7 100644 --- a/keyboards/mechlovin/olly/octagon/keyboard.json +++ b/keyboards/mechlovin/olly/octagon/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Olly Octagon", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", @@ -169,12 +170,11 @@ "processor": "STM32F103", "bootloader": "stm32duino", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_split_bs": "LAYOUT_all" + "LAYOUT": "LAYOUT_split_bs", + "LAYOUT_all": "LAYOUT_split_bs" }, - "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT_all": { + "LAYOUT_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -269,750 +269,6 @@ {"matrix": [5, 14], "x": 14, "y": 5}, {"matrix": [5, 15], "x": 15, "y": 5} ] - }, - "LAYOUT_75_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_ansi_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [1, 14], "x": 14, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, - {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_ansi_wkl_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [1, 14], "x": 14, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, - {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [1, 14], "x": 14, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, - {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso_wkl_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [1, 14], "x": 14, "y": 1}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 14], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, - {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 13], "x": 13, "y": 5}, - {"matrix": [5, 14], "x": 14, "y": 5}, - {"matrix": [5, 15], "x": 15, "y": 5} - ] } } } diff --git a/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c b/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c index 19cd554ac3..353f5f5d6d 100644 --- a/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c +++ b/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c @@ -16,12 +16,12 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_split_bs( 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_PSCR, KC_PAUS, KC_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) }; diff --git a/keyboards/mechlovin/olly/octagon/matrix_diagram.md b/keyboards/mechlovin/olly/octagon/matrix_diagram.md deleted file mode 100644 index 426e0691d1..0000000000 --- a/keyboards/mechlovin/olly/octagon/matrix_diagram.md +++ /dev/null @@ -1,26 +0,0 @@ -# Matrix Diagram for Mechlovin Olly Octagon - -``` -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ -├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1D │ 2u Backspace -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │2F │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2E │ ISO Enter -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3F │ │3C │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ -│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4E │4F │ -├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ -│50 │51 │52 │56 │5A │5B │5C │5D │5E │5F │ -└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ -┌────────┐ -│40 │ 2.25u LShift -└────────┘ -┌────┬───┬────┬────────────────────────┬────┬───┬───┬───┬───┬───┐ -│50 │51 │52 │56 │5A │5B │5C │5D │5E │5F │ Alternative -└────┴───┴────┴────────────────────────┴────┴───┴───┴───┴───┴───┘ -┌─────┬─────┬───────────────────────────┬─────┬─────┬───┬───┬───┐ -│50 │51 │56 │5A │5C │5D │5E │5F │ WKL -└─────┴─────┴───────────────────────────┴─────┴─────┴───┴───┴───┘ -``` diff --git a/keyboards/mechlovin/olly/orion/keyboard.json b/keyboards/mechlovin/olly/orion/keyboard.json index 408d904899..2780e21949 100644 --- a/keyboards/mechlovin/olly/orion/keyboard.json +++ b/keyboards/mechlovin/olly/orion/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Olly Orion", "manufacturer": "Mechlovin.Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/pisces/keyboard.json b/keyboards/mechlovin/pisces/keyboard.json index 4186a1c750..37915826e6 100644 --- a/keyboards/mechlovin/pisces/keyboard.json +++ b/keyboards/mechlovin/pisces/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pisces65", "manufacturer": "Team.Mechlovin", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechlovin/serratus/keyboard.json b/keyboards/mechlovin/serratus/keyboard.json index 8cf0778c1d..c283c48a35 100644 --- a/keyboards/mechlovin/serratus/keyboard.json +++ b/keyboards/mechlovin/serratus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Serratus Rev.1", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/th1800/keyboard.json b/keyboards/mechlovin/th1800/keyboard.json index 8162deca81..66b7487545 100644 --- a/keyboards/mechlovin/th1800/keyboard.json +++ b/keyboards/mechlovin/th1800/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "th-1800", "manufacturer": "Team Mechlovin", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed1800/info.json b/keyboards/mechlovin/zed1800/info.json index aecaf6d922..9de42c2442 100644 --- a/keyboards/mechlovin/zed1800/info.json +++ b/keyboards/mechlovin/zed1800/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed1800/rules.mk b/keyboards/mechlovin/zed1800/rules.mk new file mode 100644 index 0000000000..e0088c95c3 --- /dev/null +++ b/keyboards/mechlovin/zed1800/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/zed1800/saber diff --git a/keyboards/mechlovin/zed60/keyboard.json b/keyboards/mechlovin/zed60/keyboard.json index aa56a3aab8..39a8ae7ea7 100644 --- a/keyboards/mechlovin/zed60/keyboard.json +++ b/keyboards/mechlovin/zed60/keyboard.json @@ -1,9 +1,13 @@ { - "manufacturer": "Mechlovin Studio", "keyboard_name": "Zed60", + "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", + "usb": { + "vid": "0x4D4C", + "pid": "0x0602", + "device_version": "0.0.1" + }, "features": { "bootmagic": true, "command": true, @@ -13,110 +17,41 @@ "nkro": false, "rgblight": true }, - "indicators": { - "caps_lock": "A4" - }, "matrix_pins": { "cols": ["A10", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B5", "B4", "B3", "A15", "B7", "B6"], "rows": ["B10", "B2", "B1", "B0", "A2"] }, - "processor": "STM32F103", + "diode_direction": "COL2ROW", + "indicators": { + "caps_lock": "A4" + }, "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true - }, + "saturation_steps": 8, "brightness_steps": 8, "led_count": 22, - "saturation_steps": 8, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x0602", - "vid": "0x4D4C" + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "ws2812": { - "driver": "spi", - "pin": "A7" + "pin": "A7", + "driver": "spi" }, + "processor": "STM32F103", + "bootloader": "stm32duino", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -134,6 +69,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -148,6 +84,7 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -161,6 +98,7 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -174,6 +112,76 @@ {"matrix": [3, 11], "x": 11.25, "y": 3}, {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -200,6 +208,7 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -214,6 +223,7 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -227,6 +237,7 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, {"matrix": [3, 2], "x": 2.25, "y": 3}, @@ -240,6 +251,7 @@ {"matrix": [3, 10], "x": 10.25, "y": 3}, {"matrix": [3, 11], "x": 11.25, "y": 3}, {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -249,72 +261,6 @@ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] } } } diff --git a/keyboards/mechlovin/zed65/mono_led/keyboard.json b/keyboards/mechlovin/zed65/mono_led/keyboard.json index e33db35a7a..763fbe9f4c 100644 --- a/keyboards/mechlovin/zed65/mono_led/keyboard.json +++ b/keyboards/mechlovin/zed65/mono_led/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Zed65-MonoLED", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json index 56103e44db..4b3ed831c5 100644 --- a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json @@ -11,6 +11,7 @@ "cols": ["B11", "B10", "B2", "B1", "B0", "A6", "A5", "A4", "A3", "A2", "C13", "B7", "B6", "B5", "B4", "B3"], "rows": ["B12", "B13", "B14", "B15", "A1"] }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6504", diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json index 8fcfde5db9..49ed44f0a1 100644 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Retro66", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed65/no_backlight/rules.mk b/keyboards/mechlovin/zed65/no_backlight/rules.mk new file mode 100644 index 0000000000..a699765498 --- /dev/null +++ b/keyboards/mechlovin/zed65/no_backlight/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json index c2b75fd1e4..c9c9e0ddb1 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wearhaus66", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed65/rules.mk b/keyboards/mechlovin/zed65/rules.mk new file mode 100644 index 0000000000..a699765498 --- /dev/null +++ b/keyboards/mechlovin/zed65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechstudio/chapter1/keymaps/default/keymap.c b/keyboards/mechstudio/chapter1/keymaps/default/keymap.c index 79fb45f3db..38508b2b03 100644 --- a/keyboards/mechstudio/chapter1/keymaps/default/keymap.c +++ b/keyboards/mechstudio/chapter1/keymaps/default/keymap.c @@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD)} + [0] = {ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)} }; #endif diff --git a/keyboards/mechstudio/dawn/keyboard.json b/keyboards/mechstudio/dawn/keyboard.json index 4c96a37c52..dc1894f4e5 100644 --- a/keyboards/mechstudio/dawn/keyboard.json +++ b/keyboards/mechstudio/dawn/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mechwild/bb65/info.json b/keyboards/mechwild/bb65/info.json index 81856c5c7c..a9d812d827 100644 --- a/keyboards/mechwild/bb65/info.json +++ b/keyboards/mechwild/bb65/info.json @@ -105,8 +105,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 14.25, "y": 3.25}, - {"matrix": [7, 3], "x": 15.5, "y": 3}, + {"matrix": [7, 4], "x": 15.5, "y": 3}, + {"matrix": [7, 3], "x": 14.25, "y": 3.25}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -174,8 +174,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 14.25, "y": 3.25}, - {"matrix": [7, 3], "x": 15.5, "y": 3}, + {"matrix": [7, 4], "x": 15.5, "y": 3}, + {"matrix": [7, 3], "x": 14.25, "y": 3.25}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, diff --git a/keyboards/mechwild/bbpad/keymaps/default/keymap.json b/keyboards/mechwild/bbpad/keymaps/default/keymap.json index 33043e41ac..d0e924191b 100644 --- a/keyboards/mechwild/bbpad/keymaps/default/keymap.json +++ b/keyboards/mechwild/bbpad/keymaps/default/keymap.json @@ -12,9 +12,9 @@ ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "RM_PREV", "KC_TRNS", "RM_NEXT", "KC_TRNS", "KC_TRNS", + "RGB_RMOD", "KC_TRNS", "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_NUM", "RM_TOGG" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_NUM", "RGB_TOG" ] ], "config": { @@ -24,6 +24,6 @@ }, "encoders": [ [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}], - [{"ccw": "RM_VALD", "cw": "RM_VALU"}] + [{"ccw": "RGB_VAD", "cw": "RGB_VAI"}] ] } diff --git a/keyboards/mechwild/bbs/keyboard.json b/keyboards/mechwild/bbs/keyboard.json index c8a57c8bc5..8985c4526a 100644 --- a/keyboards/mechwild/bbs/keyboard.json +++ b/keyboards/mechwild/bbs/keyboard.json @@ -44,17 +44,13 @@ "url": "https://mechwild.com/product/bb-steno/", "usb": { "device_version": "1.1.0", + "force_nkro": true, "pid": "0x170E", "shared_endpoint": { "keyboard": true }, "vid": "0x6D77" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "driver": "pwm", "pin": "B9" diff --git a/keyboards/mechwild/bde/info.json b/keyboards/mechwild/bde/info.json index edecde1eba..918c792aa7 100644 --- a/keyboards/mechwild/bde/info.json +++ b/keyboards/mechwild/bde/info.json @@ -10,7 +10,8 @@ }, "development_board": "promicro", "rgblight": { - "sleep": true + "sleep": true, + "max_brightness": 255 }, "tapping": { "tap_keycode_delay": 10, diff --git a/keyboards/mechwild/bde/rev2/keyboard.json b/keyboards/mechwild/bde/rev2/keyboard.json index b166934e1e..932f99f0e9 100644 --- a/keyboards/mechwild/bde/rev2/keyboard.json +++ b/keyboards/mechwild/bde/rev2/keyboard.json @@ -34,6 +34,7 @@ "animations": { "rainbow_swirl": true }, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8 }, diff --git a/keyboards/mechwild/bde/rules.mk b/keyboards/mechwild/bde/rules.mk new file mode 100644 index 0000000000..138a291916 --- /dev/null +++ b/keyboards/mechwild/bde/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/bde/rev2 diff --git a/keyboards/mechwild/mercutio/keyboard.json b/keyboards/mechwild/mercutio/keyboard.json index 58ff0b216e..0a7d758128 100644 --- a/keyboards/mechwild/mercutio/keyboard.json +++ b/keyboards/mechwild/mercutio/keyboard.json @@ -1,17 +1,17 @@ { - "manufacturer": "MechWild", "keyboard_name": "Mercutio", + "manufacturer": "MechWild", + "url": "mechwild.com", "maintainer": "kylemccreery", - "bootloader": "usbasploader", - "bootloader_instructions": "Hold down the BOOT button, then tap the RESET button.", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B4", "pin_b": "B5"} - ] + "usb": { + "vid": "0x6D77", + "pid": "0x1703", + "device_version": "1.0.0" }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -22,72 +22,26 @@ "cols": ["B0", "D7", "D6", "D5", "B1", "B2", "B3"], "rows": ["D0", "D1", "D4", "C3", "C0", "C1", "C2"] }, - "processor": "atmega328p", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B4", "pin_b": "B5"} + ] + }, "qmk": { + "tap_keycode_delay": 10, "locking": { "enabled": true, "resync": true - }, - "tap_keycode_delay": 10 - }, - "url": "https://mechwild.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x1703", - "vid": "0x6D77" + } }, + "processor": "atmega328p", + "bootloader": "usbasploader", "layouts": { - "LAYOUT_625u_space": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] - }, "LAYOUT_all": { "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, + {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, @@ -100,6 +54,7 @@ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, + {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, @@ -112,6 +67,7 @@ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2}, {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25}, + {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25}, {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3}, {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, @@ -124,6 +80,7 @@ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, @@ -135,9 +92,10 @@ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_full_enter": { + "LAYOUT_625u_space": { "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, + {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, @@ -150,6 +108,7 @@ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, + {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, @@ -160,56 +119,9 @@ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25}, - {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_full_enter_625u_space": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25}, + {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2}, + {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25}, + {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25}, {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3}, {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, @@ -222,6 +134,7 @@ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4}, @@ -230,196 +143,6 @@ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} ] - }, - "LAYOUT_full_enter_full_lshift_625u_space": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_full_lshift": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25}, - {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_full_lshift_625u_space": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4}, - {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_full_lshift_full_enter": { - "layout": [ - {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0}, - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1}, - {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5}, - {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, - {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3}, - {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25}, - {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75}, - {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25}, - {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4}, - {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25} - ] } } } diff --git a/keyboards/mechwild/mercutio/keymaps/default/keymap.c b/keyboards/mechwild/mercutio/keymaps/default/keymap.c index bf6b96b8be..9d5d174c60 100644 --- a/keyboards/mechwild/mercutio/keymaps/default/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/default/keymap.c @@ -26,17 +26,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_TRNS, - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ), [2] = LAYOUT_all( KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + [3] = LAYOUT_all( + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; #ifdef ENCODER_MAP_ENABLE @@ -44,5 +51,6 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; #endif diff --git a/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c b/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c index b76479a5b9..a4cd13134c 100644 --- a/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c @@ -36,6 +36,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ ), + + [3] = LAYOUT_625u_space( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; @@ -43,6 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) } + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/mechwild/mokulua/mirrored/keyboard.json b/keyboards/mechwild/mokulua/mirrored/keyboard.json index e76314f869..dc66c0c53a 100644 --- a/keyboards/mechwild/mokulua/mirrored/keyboard.json +++ b/keyboards/mechwild/mokulua/mirrored/keyboard.json @@ -61,7 +61,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_mirrored": "LAYOUT" }, diff --git a/keyboards/mechwild/mokulua/readme.md b/keyboards/mechwild/mokulua/readme.md index 5a6b69e66e..24f01b10d4 100644 --- a/keyboards/mechwild/mokulua/readme.md +++ b/keyboards/mechwild/mokulua/readme.md @@ -2,6 +2,8 @@ ![Mokulua](https://i.imgur.com/7fifiQch.jpg) +*A short description of the keyboard/project* + * Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) * Hardware Supported: Mokulua v1.3 * Hardware Availability: https://mechwild.com/product/mokulua/ diff --git a/keyboards/mechwild/mokulua/rules.mk b/keyboards/mechwild/mokulua/rules.mk new file mode 100644 index 0000000000..3a87a143e5 --- /dev/null +++ b/keyboards/mechwild/mokulua/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/mokulua/standard \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/standard/keyboard.json b/keyboards/mechwild/mokulua/standard/keyboard.json index e9c81c7e6d..f3eccd921f 100644 --- a/keyboards/mechwild/mokulua/standard/keyboard.json +++ b/keyboards/mechwild/mokulua/standard/keyboard.json @@ -61,7 +61,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_standard": "LAYOUT" }, diff --git a/keyboards/mechwild/murphpad/keyboard.json b/keyboards/mechwild/murphpad/keyboard.json index a79810afd7..47d99f78e9 100644 --- a/keyboards/mechwild/murphpad/keyboard.json +++ b/keyboards/mechwild/murphpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -59,7 +61,8 @@ "ws2812": { "pin": "F4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk new file mode 100644 index 0000000000..8709dbb4de --- /dev/null +++ b/keyboards/mechwild/obe/f401/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk new file mode 100644 index 0000000000..e24fe60509 --- /dev/null +++ b/keyboards/mechwild/obe/f411/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/obe/f411/base diff --git a/keyboards/mechwild/obe/info.json b/keyboards/mechwild/obe/info.json index 5244062e9a..2247f69fac 100644 --- a/keyboards/mechwild/obe/info.json +++ b/keyboards/mechwild/obe/info.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk new file mode 100644 index 0000000000..8709dbb4de --- /dev/null +++ b/keyboards/mechwild/obe/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/puckbuddy/halconf.h b/keyboards/mechwild/puckbuddy/halconf.h index fb6312d554..07e8cdd17b 100644 --- a/keyboards/mechwild/puckbuddy/halconf.h +++ b/keyboards/mechwild/puckbuddy/halconf.h @@ -5,6 +5,9 @@ #pragma once #define HAL_USE_I2C TRUE + #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/mechwild/puckbuddy/keymaps/default/keymap.c b/keyboards/mechwild/puckbuddy/keymaps/default/keymap.c index 0ad534e256..2ef70b652a 100644 --- a/keyboards/mechwild/puckbuddy/keymaps/default/keymap.c +++ b/keyboards/mechwild/puckbuddy/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MUTE, MO(_FN3), MO(_FN2), MO(_FN1), LGUI(KC_D), MO(_FN2), KC_HOME, MO(_FN3), KC_END, - MS_BTN3, DPI_FINE, - MS_BTN1, MS_BTN2, MS_BTN2, MS_BTN1 + KC_BTN3, DPI_FINE, + KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1 ), [_FN1] = LAYOUT( UG_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, TAP_TOG, diff --git a/keyboards/mechwild/sugarglider/f401/keyboard.json b/keyboards/mechwild/sugarglider/f401/keyboard.json index 658f174275..7bf58c1b45 100644 --- a/keyboards/mechwild/sugarglider/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/f401/keyboard.json @@ -4,6 +4,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true, diff --git a/keyboards/mechwild/sugarglider/f411/keyboard.json b/keyboards/mechwild/sugarglider/f411/keyboard.json index e990db524b..dd76af1f10 100644 --- a/keyboards/mechwild/sugarglider/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/f411/keyboard.json @@ -4,6 +4,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true, diff --git a/keyboards/mechwild/sugarglider/halconf.h b/keyboards/mechwild/sugarglider/halconf.h index 76bd6cf256..23a1dc04b3 100644 --- a/keyboards/mechwild/sugarglider/halconf.h +++ b/keyboards/mechwild/sugarglider/halconf.h @@ -4,6 +4,9 @@ #pragma once #define HAL_USE_I2C TRUE + #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index 0df558b0b2..80004f35d1 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -7,21 +7,19 @@ "vid": "0x6D77", "pid": "0x1710", "device_version": "0.2.0", + "force_nkro": true, "shared_endpoint": { "keyboard": true } }, - "host": { - "default": { - "nkro": true - } - }, "diode_direction": "COL2ROW", "dynamic_keymap": { "layer_count": 5 }, "rgblight": { "led_count": 10, + "max_brightness": 255, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { @@ -51,10 +49,10 @@ }, "encoder": { "rotary": [ - {"pin_a": "B0", "pin_b": "A2"}, - {"pin_a": "B3", "pin_b": "A15"}, - {"pin_a": "B9", "pin_b": "B8"}, - {"pin_a": "C15", "pin_b": "C14"} + {"pin_a": "B0", "pin_b": "A2", "resolution": 4}, + {"pin_a": "B3", "pin_b": "A15", "resolution": 4}, + {"pin_a": "B9", "pin_b": "B8", "resolution": 4}, + {"pin_a": "C15", "pin_b": "C14", "resolution": 4} ] }, "layouts": { diff --git a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c index 46818cf209..d723ba10a6 100644 --- a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c +++ b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, TAP_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, TAP_DN, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(_STENO), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_MUTE, KC_LGUI, KC_LALT, TL_LOWR, MS_BTN1, TAP_TOG, MS_BTN2, TL_UPPR, KC_SPC, KC_RSFT, KC_MUTE + KC_MUTE, KC_LGUI, KC_LALT, TL_LOWR, KC_MS_BTN1, TAP_TOG, KC_MS_BTN2, TL_UPPR, KC_SPC, KC_RSFT, KC_MUTE ), [_LOWER] = LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, DPI_UP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, [_LOWER] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_HOME, KC_END), ENCODER_CCW_CW(DPI_UP, DPI_DN) }, [_RAISE] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_HOME, KC_END), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_HOME, KC_END) }, [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_BRID, KC_BRIU), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk index 73a141ac91..a01a95a868 100644 --- a/keyboards/mechwild/sugarglider/rules.mk +++ b/keyboards/mechwild/sugarglider/rules.mk @@ -7,3 +7,5 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += mcp23018.c matrix.c I2C_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = mechwild/sugarglider/wide_oled diff --git a/keyboards/mechwild/sugarglider/sugarglider.c b/keyboards/mechwild/sugarglider/sugarglider.c index d2a199bb7c..086294470e 100644 --- a/keyboards/mechwild/sugarglider/sugarglider.c +++ b/keyboards/mechwild/sugarglider/sugarglider.c @@ -97,9 +97,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case 3: if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } break; } diff --git a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json index 658f174275..7bf58c1b45 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json @@ -4,6 +4,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true, diff --git a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json index e990db524b..dd76af1f10 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json @@ -4,6 +4,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true, diff --git a/keyboards/mechwild/sugarglider/wide_oled/rules.mk b/keyboards/mechwild/sugarglider/wide_oled/rules.mk index a77f1a8af2..23e6cab873 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/rules.mk +++ b/keyboards/mechwild/sugarglider/wide_oled/rules.mk @@ -2,3 +2,5 @@ # change yes to no to disable # WIDE_OLED_ENABLE = yes + +DEFAULT_FOLDER = mechwild/sugarglider/wide_oled/f401 diff --git a/keyboards/mechwild/waka60/f401/rules.mk b/keyboards/mechwild/waka60/f401/rules.mk new file mode 100644 index 0000000000..a0d74c14eb --- /dev/null +++ b/keyboards/mechwild/waka60/f401/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/mechwild/waka60/f411/rules.mk b/keyboards/mechwild/waka60/f411/rules.mk new file mode 100644 index 0000000000..0dd69ff65f --- /dev/null +++ b/keyboards/mechwild/waka60/f411/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/waka60/f411/base diff --git a/keyboards/mechwild/waka60/rules.mk b/keyboards/mechwild/waka60/rules.mk new file mode 100644 index 0000000000..a0d74c14eb --- /dev/null +++ b/keyboards/mechwild/waka60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h deleted file mode 100644 index 283902350e..0000000000 --- a/keyboards/mectechpad/config.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 Jack Sachinidhs (@jacksaxi) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -/* LED pin definitions */ -#define LED_PIN_LAYER_0 GP12 -#define LED_PIN_LAYER_1 GP11 -#define LED_PIN_LAYER_2 GP10 -#define LED_PIN_LAYER_3 GP9 - -/* matrix mask for direct pin switch */ -#define MATRIX_MASKED diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json deleted file mode 100644 index 93c1fbaefc..0000000000 --- a/keyboards/mectechpad/keyboard.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "manufacturer": "Printronics", - "keyboard_name": "Mectechpad", - "maintainer": "jacksaxi", - "bootloader": "rp2040", - "debounce": 15, - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "rows": ["GP13", "GP26", "GP15", "GP14"], - "cols": ["GP29", "GP28", "GP27"] - }, - "processor": "RP2040", - "url": "printronics.gr", - "usb": { - "device_version": "1.0.0", - "pid": "0x1A2B", - "vid": "0x3C4D" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3} - ] - } - } -} diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c deleted file mode 100644 index 7e19ec069f..0000000000 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2025 Jack Sachinidhs (@jacksaxi) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -enum layers { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - TO(_LAYER1), - KC_1, KC_2, KC_3, - KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9 - ), - [_LAYER1] = LAYOUT( - TO(_LAYER2), - KC_Q, KC_W, KC_E, - KC_R, KC_T, KC_Y, - KC_U, KC_I, KC_O - ), - [_LAYER2] = LAYOUT( - TO(_LAYER3), - KC_A, KC_S, KC_D, - KC_F, KC_G, KC_H, - KC_J, KC_K, KC_L - ), - [_LAYER3] = LAYOUT( - TO(_LAYER0), - KC_Z, KC_X, KC_C, - KC_V, KC_B, KC_N, - KC_M, KC_COMM, KC_DOT - ) -}; diff --git a/keyboards/mectechpad/mectechpad.c b/keyboards/mectechpad/mectechpad.c deleted file mode 100644 index 0aa520db1a..0000000000 --- a/keyboards/mectechpad/mectechpad.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2025 Jack Sachinidhs (@jacksaxi) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -void keyboard_post_init_kb(void) { - // Initialize LED pins - gpio_set_pin_output(LED_PIN_LAYER_0); - gpio_write_pin_low(LED_PIN_LAYER_0); - gpio_set_pin_output(LED_PIN_LAYER_1); - gpio_write_pin_low(LED_PIN_LAYER_1); - gpio_set_pin_output(LED_PIN_LAYER_2); - gpio_write_pin_low(LED_PIN_LAYER_2); - gpio_set_pin_output(LED_PIN_LAYER_3); - gpio_write_pin_low(LED_PIN_LAYER_3); - - keyboard_post_init_user(); -} - -// Update LEDs based on the current layer -void housekeeping_task_kb(void) { - gpio_write_pin(LED_PIN_LAYER_0, (get_highest_layer(layer_state) == 0)); - gpio_write_pin(LED_PIN_LAYER_1, (get_highest_layer(layer_state) == 1)); - gpio_write_pin(LED_PIN_LAYER_2, (get_highest_layer(layer_state) == 2)); - gpio_write_pin(LED_PIN_LAYER_3, (get_highest_layer(layer_state) == 3)); -} diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md deleted file mode 100644 index 515326baab..0000000000 --- a/keyboards/mectechpad/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Mectechpad - -![Mectechpad](https://i.imgur.com/fNnLVLf.jpeg) - -* Keyboard Maintainer: [Jack Sachinidhs](https://github.com/jacksaxi) -* Hardware Supported: rp2040 -* Hardware Availability: [Printronics Website](https://printronics.gr) - -Make example for this keyboard (after setting up your build environment): - - make mectechpad:default - -Flashing example for this keyboard: - - make mectechpad: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 top left key) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kafka60/keyboard.json b/keyboards/meetlab/kafka60/keyboard.json index 2c7c41b23d..5dbf3f5642 100644 --- a/keyboards/meetlab/kafka60/keyboard.json +++ b/keyboards/meetlab/kafka60/keyboard.json @@ -13,6 +13,7 @@ "cols": ["A15", "B3", "B4", "B5", "B6", "B7", "B8", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B11"], "rows": ["B15", "A8", "B13", "B12", "A9"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBF06", diff --git a/keyboards/meetlab/kafka68/keyboard.json b/keyboards/meetlab/kafka68/keyboard.json index 418749ed43..3836edc3c9 100644 --- a/keyboards/meetlab/kafka68/keyboard.json +++ b/keyboards/meetlab/kafka68/keyboard.json @@ -14,6 +14,7 @@ "cols": ["A10", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A7", "A6", "A5", "A4", "A3", "B1", "B10", "B11"], "rows": ["B13", "B14", "B15", "A8", "A9"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xAA07", diff --git a/keyboards/meetlab/kafkasplit/keyboard.json b/keyboards/meetlab/kafkasplit/keyboard.json index 77e5ec3e13..375d4f7a03 100644 --- a/keyboards/meetlab/kafkasplit/keyboard.json +++ b/keyboards/meetlab/kafkasplit/keyboard.json @@ -14,7 +14,8 @@ "wpm": true }, "indicators": { - "caps_lock": "GP25" + "caps_lock": "GP25", + "on_state": 1 }, "matrix_pins": { "cols": ["GP2", "GP3", "GP6", "GP7", "GP10", "GP11"], @@ -142,6 +143,7 @@ } } }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0xBFC2", diff --git a/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c b/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c index 9cc5d83624..db6ccd8912 100644 --- a/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c +++ b/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LCTL, XXXXXXX, KC_AMPR, KC_PIPE, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TILD, KC_GRV, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PERC, XXXXXXX, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, KC_RSFT, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PERC, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_RSFT, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| _______, KC_LGUI, _______, KC_SPC, KC_ENT, _______, _______, KC_LALT //`---------------------------------' `-----------------------------------' diff --git a/keyboards/meetlab/kalice/keyboard.json b/keyboards/meetlab/kalice/keyboard.json index eb91d64466..5e53fe4904 100644 --- a/keyboards/meetlab/kalice/keyboard.json +++ b/keyboards/meetlab/kalice/keyboard.json @@ -31,6 +31,7 @@ "led_count": 11, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBB04", diff --git a/keyboards/meetlab/kalice/mcuconf.h b/keyboards/meetlab/kalice/mcuconf.h index 9287662572..e2f1a5652b 100644 --- a/keyboards/meetlab/kalice/mcuconf.h +++ b/keyboards/meetlab/kalice/mcuconf.h @@ -19,3 +19,5 @@ #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE \ No newline at end of file diff --git a/keyboards/meetlab/rena/keyboard.json b/keyboards/meetlab/rena/keyboard.json index 8787fb0ee8..cf28f6d5f0 100644 --- a/keyboards/meetlab/rena/keyboard.json +++ b/keyboards/meetlab/rena/keyboard.json @@ -39,6 +39,7 @@ "led_count": 1, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xAB06", diff --git a/keyboards/mehkee96/keyboard.json b/keyboards/mehkee96/keyboard.json index 4a72232d36..4f4d4853c8 100644 --- a/keyboards/mehkee96/keyboard.json +++ b/keyboards/mehkee96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "96KEE", "manufacturer": "Mehkee", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/meletrix/zoom65/keyboard.json b/keyboards/meletrix/zoom65/keyboard.json index ce83a60be4..997b6d55e3 100644 --- a/keyboards/meletrix/zoom65/keyboard.json +++ b/keyboards/meletrix/zoom65/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/meletrix/zoom65_lite/keyboard.json b/keyboards/meletrix/zoom65_lite/keyboard.json index 3977ea668a..990c34206d 100644 --- a/keyboards/meletrix/zoom65_lite/keyboard.json +++ b/keyboards/meletrix/zoom65_lite/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/meletrix/zoom75/keyboard.json b/keyboards/meletrix/zoom75/keyboard.json index 04e11e19ba..20d7dc064a 100644 --- a/keyboards/meletrix/zoom75/keyboard.json +++ b/keyboards/meletrix/zoom75/keyboard.json @@ -20,6 +20,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/meletrix/zoom87/keyboard.json b/keyboards/meletrix/zoom87/keyboard.json index 4f9c6812a6..b2cec7968f 100644 --- a/keyboards/meletrix/zoom87/keyboard.json +++ b/keyboards/meletrix/zoom87/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/meletrix/zoom98/keyboard.json b/keyboards/meletrix/zoom98/keyboard.json index 9665327972..b7d5672950 100644 --- a/keyboards/meletrix/zoom98/keyboard.json +++ b/keyboards/meletrix/zoom98/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "rgb_matrix": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/melgeek/mach80/info.json b/keyboards/melgeek/mach80/info.json index d8a565b2e4..ade831fc36 100755 --- a/keyboards/melgeek/mach80/info.json +++ b/keyboards/melgeek/mach80/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mach80", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mach80/keymaps/default/keymap.c b/keyboards/melgeek/mach80/keymaps/default/keymap.c index c566d773f1..49b67c40b3 100755 --- a/keyboards/melgeek/mach80/keymaps/default/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/default/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mach80/keymaps/tkl/keymap.c b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c index 732e188e97..3ce16cd736 100755 --- a/keyboards/melgeek/mach80/keymaps/tkl/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mach80/keymaps/wkl/keymap.c b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c index 3bc9ca064c..fcaae9338a 100755 --- a/keyboards/melgeek/mach80/keymaps/wkl/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi_wkl( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mach80/rev1/keyboard.json b/keyboards/melgeek/mach80/rev1/keyboard.json index 78a8dbf0f6..5cb145793d 100644 --- a/keyboards/melgeek/mach80/rev1/keyboard.json +++ b/keyboards/melgeek/mach80/rev1/keyboard.json @@ -4,6 +4,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mach80/rev2/keyboard.json b/keyboards/melgeek/mach80/rev2/keyboard.json index 78a8dbf0f6..5cb145793d 100644 --- a/keyboards/melgeek/mach80/rev2/keyboard.json +++ b/keyboards/melgeek/mach80/rev2/keyboard.json @@ -4,6 +4,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj61/info.json b/keyboards/melgeek/mj61/info.json index 9a3e86d5e0..d34dc59364 100644 --- a/keyboards/melgeek/mj61/info.json +++ b/keyboards/melgeek/mj61/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "MJ61", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj61/keymaps/default/keymap.c b/keyboards/melgeek/mj61/keymaps/default/keymap.c index a9d237ca1d..d11223bd34 100644 --- a/keyboards/melgeek/mj61/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj61/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/melgeek/mj61/rev1/keyboard.json b/keyboards/melgeek/mj61/rev1/keyboard.json index b388908579..e0bd315865 100644 --- a/keyboards/melgeek/mj61/rev1/keyboard.json +++ b/keyboards/melgeek/mj61/rev1/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj61/rev2/keyboard.json b/keyboards/melgeek/mj61/rev2/keyboard.json index fcff9e10a5..779cfc091c 100644 --- a/keyboards/melgeek/mj61/rev2/keyboard.json +++ b/keyboards/melgeek/mj61/rev2/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj63/info.json b/keyboards/melgeek/mj63/info.json index af59bf8a59..c81bf9f867 100644 --- a/keyboards/melgeek/mj63/info.json +++ b/keyboards/melgeek/mj63/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "MJ63", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj63/keymaps/default/keymap.c b/keyboards/melgeek/mj63/keymaps/default/keymap.c index c926cf61b7..1bac2f819c 100644 --- a/keyboards/melgeek/mj63/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj63/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi_arrow( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/melgeek/mj63/rev1/keyboard.json b/keyboards/melgeek/mj63/rev1/keyboard.json index b388908579..e0bd315865 100644 --- a/keyboards/melgeek/mj63/rev1/keyboard.json +++ b/keyboards/melgeek/mj63/rev1/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj63/rev2/keyboard.json b/keyboards/melgeek/mj63/rev2/keyboard.json index fcff9e10a5..779cfc091c 100644 --- a/keyboards/melgeek/mj63/rev2/keyboard.json +++ b/keyboards/melgeek/mj63/rev2/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/info.json b/keyboards/melgeek/mj64/info.json index 25d908db5d..731996ef84 100644 --- a/keyboards/melgeek/mj64/info.json +++ b/keyboards/melgeek/mj64/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "MJ64", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj64/keymaps/default/keymap.c b/keyboards/melgeek/mj64/keymaps/default/keymap.c index a20a84caba..775afccbff 100644 --- a/keyboards/melgeek/mj64/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj64/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_64_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, KC_PGUP, EE_CLR, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mj64/rev1/keyboard.json b/keyboards/melgeek/mj64/rev1/keyboard.json index b388908579..e0bd315865 100644 --- a/keyboards/melgeek/mj64/rev1/keyboard.json +++ b/keyboards/melgeek/mj64/rev1/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/rev2/keyboard.json b/keyboards/melgeek/mj64/rev2/keyboard.json index b388908579..e0bd315865 100644 --- a/keyboards/melgeek/mj64/rev2/keyboard.json +++ b/keyboards/melgeek/mj64/rev2/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/rev3/keyboard.json b/keyboards/melgeek/mj64/rev3/keyboard.json index fcff9e10a5..779cfc091c 100644 --- a/keyboards/melgeek/mj64/rev3/keyboard.json +++ b/keyboards/melgeek/mj64/rev3/keyboard.json @@ -1,6 +1,8 @@ { "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj65/keymaps/default/keymap.c b/keyboards/melgeek/mj65/keymaps/default/keymap.c index 31ea954fa1..4e96ba55f1 100644 --- a/keyboards/melgeek/mj65/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj65/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, _______, EE_CLR, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mj65/rev3/keyboard.json b/keyboards/melgeek/mj65/rev3/keyboard.json index a4513b45e7..adf0ef94bc 100644 --- a/keyboards/melgeek/mj65/rev3/keyboard.json +++ b/keyboards/melgeek/mj65/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MJ65", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj6xy/info.json b/keyboards/melgeek/mj6xy/info.json index 3b13337aae..21c79d6327 100755 --- a/keyboards/melgeek/mj6xy/info.json +++ b/keyboards/melgeek/mj6xy/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "MJ6XY", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", @@ -26,8 +27,7 @@ "LAYOUT_60_iso_arrow_6u_spc_split_bs": "LAYOUT_60_iso_arrow_split_bs", "LAYOUT_64_iso_6u_spc_split_bs": "LAYOUT_64_iso_split_bs", "LAYOUT_60_iso_1u_lshift_split_bs_rshift": "LAYOUT_60_iso_split_bs_rshift", - "LAYOUT_60_iso_1u_lshift_7u_spc_split_bs_rshift": "LAYOUT_60_iso_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_iso_1u_lshift_7u_spc_split_bs_rshift": "LAYOUT_60_iso_tsangan_split_bs_rshift" }, "community_layouts": ["60_ansi"], "layouts": { @@ -1255,7 +1255,7 @@ {"matrix": [4, 14], "x": 14, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/melgeek/mj6xy/keymaps/default_60_tsangan_hhkb/keymap.c b/keyboards/melgeek/mj6xy/keymaps/default_60_tsangan_hhkb/keymap.c index 26dc01d0eb..35f341892f 100644 --- a/keyboards/melgeek/mj6xy/keymaps/default_60_tsangan_hhkb/keymap.c +++ b/keyboards/melgeek/mj6xy/keymaps/default_60_tsangan_hhkb/keymap.c @@ -18,14 +18,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_RCTL), - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( 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, KC_TRNS, KC_DEL, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, diff --git a/keyboards/melgeek/mj6xy/rev3/keyboard.json b/keyboards/melgeek/mj6xy/rev3/keyboard.json index 993887a092..ae44451236 100644 --- a/keyboards/melgeek/mj6xy/rev3/keyboard.json +++ b/keyboards/melgeek/mj6xy/rev3/keyboard.json @@ -2,6 +2,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mojo68/keymaps/default/keymap.c b/keyboards/melgeek/mojo68/keymaps/default/keymap.c index 8b9245d639..d5c1d91985 100755 --- a/keyboards/melgeek/mojo68/keymaps/default/keymap.c +++ b/keyboards/melgeek/mojo68/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_68_ansi( 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, KC_DEL, KC_PSCR, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, _______, EE_CLR, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_MPLY, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json index 88f17665b4..7f21839292 100755 --- a/keyboards/melgeek/mojo68/rev1/keyboard.json +++ b/keyboards/melgeek/mojo68/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MoJo68", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mojo75/keymaps/default/keymap.c b/keyboards/melgeek/mojo75/keymaps/default/keymap.c index c287b86fe1..730ce55bf6 100644 --- a/keyboards/melgeek/mojo75/keymaps/default/keymap.c +++ b/keyboards/melgeek/mojo75/keymaps/default/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_75_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json index 0b0a722c90..a1b93afb69 100644 --- a/keyboards/melgeek/mojo75/rev1/keyboard.json +++ b/keyboards/melgeek/mojo75/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MoJo75", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/tegic/keymaps/default/keymap.c b/keyboards/melgeek/tegic/keymaps/default/keymap.c index c5edf2821a..4c1e241549 100755 --- a/keyboards/melgeek/tegic/keymaps/default/keymap.c +++ b/keyboards/melgeek/tegic/keymaps/default/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json index 5a1ca4f350..0a2e9306f6 100644 --- a/keyboards/melgeek/tegic/rev1/keyboard.json +++ b/keyboards/melgeek/tegic/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "tegic", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/z70ultra/keymaps/default/keymap.c b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c index dbb588efae..2987796572 100644 --- a/keyboards/melgeek/z70ultra/keymaps/default/keymap.c +++ b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( /* FN */ 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, KC_DEL, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json index 5a8868265b..de1b1df646 100644 --- a/keyboards/melgeek/z70ultra/rev1/keyboard.json +++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Z70Ultra", "manufacturer": "MelGeek", + "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/z70ultra/rules.mk b/keyboards/melgeek/z70ultra/rules.mk new file mode 100644 index 0000000000..8cc384b91f --- /dev/null +++ b/keyboards/melgeek/z70ultra/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = melgeek/z70ultra/rev1 diff --git a/keyboards/meme/keyboard.json b/keyboards/meme/keyboard.json index 5be88543dd..27acfc5a33 100644 --- a/keyboards/meme/keyboard.json +++ b/keyboards/meme/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Meme", "manufacturer": "Switchmod Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/meme/readme.md b/keyboards/meme/readme.md index 7b09a5e18f..94b55d746e 100644 --- a/keyboards/meme/readme.md +++ b/keyboards/meme/readme.md @@ -1,5 +1,7 @@ # Meme +![meme](imgur.com image replace me!) + 65% gasket mount keyboard. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/meow48/keyboard.json b/keyboards/meow48/keyboard.json index f3b1453547..3bb78af116 100644 --- a/keyboards/meow48/keyboard.json +++ b/keyboards/meow48/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, @@ -43,7 +45,8 @@ "rows": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/meow65/keyboard.json b/keyboards/meow65/keyboard.json index 40afbb0c8b..5870152ee0 100644 --- a/keyboards/meow65/keyboard.json +++ b/keyboards/meow65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/merge/iso_macro/keyboard.json b/keyboards/merge/iso_macro/keyboard.json index 5fcfc6fcb1..1c6d905282 100644 --- a/keyboards/merge/iso_macro/keyboard.json +++ b/keyboards/merge/iso_macro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ISO Macro", "manufacturer": "Merge", + "url": "", "maintainer": "duoshock", "usb": { "vid": "0x4D65", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/merge/uc1/keyboard.json b/keyboards/merge/uc1/keyboard.json index 4d0393399f..85e9b03c64 100644 --- a/keyboards/merge/uc1/keyboard.json +++ b/keyboards/merge/uc1/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -48,7 +50,8 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/merge/um70/keyboard.json b/keyboards/merge/um70/keyboard.json index 7ebb61f7fe..afb52d3d4f 100644 --- a/keyboards/merge/um70/keyboard.json +++ b/keyboards/merge/um70/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/merge/um80/keyboard.json b/keyboards/merge/um80/keyboard.json index 6024f6e485..ea233e8f1c 100644 --- a/keyboards/merge/um80/keyboard.json +++ b/keyboards/merge/um80/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mesa/mesa_tkl/keyboard.json b/keyboards/mesa/mesa_tkl/keyboard.json index ac84dbf94f..85d1c2b5a0 100644 --- a/keyboards/mesa/mesa_tkl/keyboard.json +++ b/keyboards/mesa/mesa_tkl/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/meson/keyboard.json b/keyboards/meson/keyboard.json index b931403769..62640890ca 100644 --- a/keyboards/meson/keyboard.json +++ b/keyboards/meson/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/metamechs/timberwolf/keyboard.json b/keyboards/metamechs/timberwolf/keyboard.json index 6ccfdab449..262022d2d6 100644 --- a/keyboards/metamechs/timberwolf/keyboard.json +++ b/keyboards/metamechs/timberwolf/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mexsistor/ludmila/keyboard.json b/keyboards/mexsistor/ludmila/keyboard.json index 61c4cca2ab..71202208c5 100644 --- a/keyboards/mexsistor/ludmila/keyboard.json +++ b/keyboards/mexsistor/ludmila/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ludmila Macropad", "manufacturer": "Kevin M.", + "url": "", "maintainer": "Kevin M.", "usb": { "vid": "0x69CC", diff --git a/keyboards/miiiw/blackio83/keymaps/default/keymap.c b/keyboards/miiiw/blackio83/keymaps/default/keymap.c index 9a611417d9..dc906f7e2c 100644 --- a/keyboards/miiiw/blackio83/keymaps/default/keymap.c +++ b/keyboards/miiiw/blackio83/keymaps/default/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), /* Keymap MAC_BL: Mac Base Layer @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), }; diff --git a/keyboards/miiiw/blackio83/rev_0100/keyboard.json b/keyboards/miiiw/blackio83/rev_0100/keyboard.json index bc94408419..d3fb31d109 100644 --- a/keyboards/miiiw/blackio83/rev_0100/keyboard.json +++ b/keyboards/miiiw/blackio83/rev_0100/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "deferred_exec": true, "dip_switch": true, "extrakey": true, @@ -166,14 +168,10 @@ "url": "https://github.com/ArthurCyy", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x83A1", "vid": "0x3044" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/miiiw/blackio83/rev_0100/rev_0100.c b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c index 139bc1aaae..18f4c86510 100644 --- a/keyboards/miiiw/blackio83/rev_0100/rev_0100.c +++ b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c @@ -165,6 +165,7 @@ uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) { wait_ms(50); eeconfig_init(); #ifdef RGB_MATRIX_ENABLE + extern void rgb_matrix_update_pwm_buffers(void); for(int i = 0; i < 5; i++) { rgb_matrix_set_color_all(RGB_WHITE); rgb_matrix_update_pwm_buffers(); diff --git a/keyboards/mikeneko65/keyboard.json b/keyboards/mikeneko65/keyboard.json index 1d1d50a796..873bb7d042 100644 --- a/keyboards/mikeneko65/keyboard.json +++ b/keyboards/mikeneko65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json index db08a580a9..b8c32cf16a 100644 --- a/keyboards/miller/gm862/keyboard.json +++ b/keyboards/miller/gm862/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GM862", "manufacturer": "MILLER", + "url": "", "maintainer": "MILLER", "usb": { "vid": "0x4B42", @@ -43,6 +44,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/miller/gm862/keymaps/default/keymap.c b/keyboards/miller/gm862/keymaps/default/keymap.c index f6c2b264f7..2eb134f53d 100644 --- a/keyboards/miller/gm862/keymaps/default/keymap.c +++ b/keyboards/miller/gm862/keymaps/default/keymap.c @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), [_LAYER1] = LAYOUT_60_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, RM_TOGG, KC_UP, RM_NEXT, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/millet/doksin/keyboard.json b/keyboards/millet/doksin/keyboard.json index a472eebc79..7a848662cd 100644 --- a/keyboards/millet/doksin/keyboard.json +++ b/keyboards/millet/doksin/keyboard.json @@ -14,6 +14,7 @@ ] }, "processor": "atmega32u2", + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x1919", diff --git a/keyboards/millipad/keyboard.json b/keyboards/millipad/keyboard.json index e4e107c5a6..7230fa750b 100644 --- a/keyboards/millipad/keyboard.json +++ b/keyboards/millipad/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0xFEED", "pid": "0x1A1B", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mincedshon/ecila/keyboard.json b/keyboards/mincedshon/ecila/keyboard.json index ca0a20568a..fe7173e34a 100644 --- a/keyboards/mincedshon/ecila/keyboard.json +++ b/keyboards/mincedshon/ecila/keyboard.json @@ -32,6 +32,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -43,6 +45,7 @@ "rows": ["E6", "B3", "B5", "B4", "D7"] }, "processor": "atmega32u4", + "url": "", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mini_elixivy/keyboard.json b/keyboards/mini_elixivy/keyboard.json index 9f6bfb91c0..2d45d70cf4 100644 --- a/keyboards/mini_elixivy/keyboard.json +++ b/keyboards/mini_elixivy/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mini_ten_key_plus/keyboard.json b/keyboards/mini_ten_key_plus/keyboard.json index e3b017a253..10507fa6e5 100644 --- a/keyboards/mini_ten_key_plus/keyboard.json +++ b/keyboards/mini_ten_key_plus/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/minimacro5/keyboard.json b/keyboards/minimacro5/keyboard.json index b868a3b058..32be6abd5f 100644 --- a/keyboards/minimacro5/keyboard.json +++ b/keyboards/minimacro5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "miniMACRO5", "manufacturer": "leafcutterlabs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", @@ -34,9 +35,12 @@ {"pin_a": "C6", "pin_b": "E6", "resolution": 2} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/minimon/bartlesplit/keyboard.json b/keyboards/minimon/bartlesplit/keyboard.json index 6047d17645..83f93560b6 100644 --- a/keyboards/minimon/bartlesplit/keyboard.json +++ b/keyboards/minimon/bartlesplit/keyboard.json @@ -4,6 +4,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/minimon/index_tab/keyboard.json b/keyboards/minimon/index_tab/keyboard.json index 0c594b42ac..14e4524114 100644 --- a/keyboards/minimon/index_tab/keyboard.json +++ b/keyboards/minimon/index_tab/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mint60/keyboard.json b/keyboards/mint60/keyboard.json index 9e581ce7b8..c5bfe27365 100644 --- a/keyboards/mint60/keyboard.json +++ b/keyboards/mint60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mint60", "manufacturer": "Eucalyn", + "url": "", "maintainer": "eucalyn", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, @@ -51,7 +54,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mint60/readme.md b/keyboards/mint60/readme.md index 3a28f56181..1824c682f8 100644 --- a/keyboards/mint60/readme.md +++ b/keyboards/mint60/readme.md @@ -2,8 +2,11 @@ ![Mint60](https://i.imgur.com/suOE8HN.jpg) +A short description of the keyboard/project + Keyboard Maintainer: [Eucalyn](https://github.com/eucalyn) [@eucalyn_](https://twitter.com/eucalyn_) Hardware Supported: The Mint60 PCBs, ProMicro supported +Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/misonoworks/chocolatebar/keyboard.json b/keyboards/misonoworks/chocolatebar/keyboard.json index 13bc64f16f..cf34557bb1 100644 --- a/keyboards/misonoworks/chocolatebar/keyboard.json +++ b/keyboards/misonoworks/chocolatebar/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0x6D77", "pid": "0xC456", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "led_count": 12, @@ -30,6 +26,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/misonoworks/karina/keyboard.json b/keyboards/misonoworks/karina/keyboard.json index ef2b7f7e6e..0d9d55d206 100644 --- a/keyboards/misonoworks/karina/keyboard.json +++ b/keyboards/misonoworks/karina/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xFEED", "pid": "0xC456", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "led_count": 19, @@ -33,6 +29,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/misterknife/knife66/keyboard.json b/keyboards/misterknife/knife66/keyboard.json index bfb25bb422..9e3d0c66b7 100644 --- a/keyboards/misterknife/knife66/keyboard.json +++ b/keyboards/misterknife/knife66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Knife66", "manufacturer": "MisterKnife", + "url": "", "maintainer": "afewyards", "usb": { "vid": "0xAC11", @@ -32,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/misterknife/knife66_iso/keyboard.json b/keyboards/misterknife/knife66_iso/keyboard.json index f35609b3af..88f8746109 100644 --- a/keyboards/misterknife/knife66_iso/keyboard.json +++ b/keyboards/misterknife/knife66_iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Knife66 ISO", "manufacturer": "MisterKnife", + "url": "", "maintainer": "afewyards", "usb": { "vid": "0xAC11", @@ -32,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mitosis/keyboard.json b/keyboards/mitosis/keyboard.json index 310c0ebd1a..c69d1d30cd 100644 --- a/keyboards/mitosis/keyboard.json +++ b/keyboards/mitosis/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mitosis", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/miuni32/keyboard.json b/keyboards/miuni32/keyboard.json index 1ff7d1a39a..0b52b058fa 100644 --- a/keyboards/miuni32/keyboard.json +++ b/keyboards/miuni32/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Miuni32", "manufacturer": "Bigtuna.io", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -29,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mixi/keyboard.json b/keyboards/mixi/keyboard.json index bde1eb6390..a08d54b883 100644 --- a/keyboards/mixi/keyboard.json +++ b/keyboards/mixi/keyboard.json @@ -35,7 +35,8 @@ {"pin_a": "B1", "pin_b": "B3"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/mk65/keyboard.json b/keyboards/mk65/keyboard.json index 55bfdc0a34..9135deaf19 100644 --- a/keyboards/mk65/keyboard.json +++ b/keyboards/mk65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MK-65", "manufacturer": "mangooo", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5004", @@ -26,13 +27,17 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true }, "rgblight": { "led_count": 7, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md deleted file mode 100644 index 817bde28b3..0000000000 --- a/keyboards/mkbd65/README.md +++ /dev/null @@ -1,41 +0,0 @@ -![mkbd65](https://gitlab.com/mkbd65/qmk-firmware/-/raw/mkbd65/keyboards/mkbd65/mkbd65.png?inline=false) - -# mkbd65 - -A mobile keyboard addon for modern smartphones. - -- Keyboard Maintainer: [XenGi](https://xengi.de) -- Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) -- Hardware Availability: - - -Flashing this keyboard with `en-us-intl` layout (after setting up your build environment): - -``` -qmk flash -kb mkbd65:rev1 -km en-us-intl -``` - -Available layouts: - - - en-us-intl (ansi) - - de (iso) - -You can find community provided layouts here: https://gitlab.com/mkbd65/community - -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). - ---- - -Copyright 2023 XenGi mkbd65@xengi.de @XenGi - -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 . diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h deleted file mode 100644 index 4b3907c132..0000000000 --- a/keyboards/mkbd65/config.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2023 XenGi -// SPDX-License-Identifier: GPL-2.0-or-later - -// optimize firmware -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define LAYER_STATE_8BIT - -// disable features to save on code size -#define NO_ACTION_TAPPING -#define NO_ACTION_ONESHOT - diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md deleted file mode 100644 index f68aaf41fc..0000000000 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# The English US International keymap for mkbd65 rev0 by XenGi - -This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. - -It is based on the "English (intl., with AltGr dead keys)" layout. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c deleted file mode 100644 index b023feab91..0000000000 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -#include "quantum.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_ansi( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/de/README.md b/keyboards/mkbd65/keymaps/de/README.md deleted file mode 100644 index c37325f914..0000000000 --- a/keyboards/mkbd65/keymaps/de/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# The German keymap for mkbd65 rev1 by XenGi - -This is the german layout for the mkbd65 keyboard. You can use it as a reference for other ISO based layouts. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ z ║ u ║ i ║ o ║ p ║ ü ║ + ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ö ║ ä ║ # ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ y ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ - ║ ▲ ║ < ║Shft║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ ß ║ ´ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ° ║ ! ║ " ║ § ║ $ ║ % ║ & ║ / ║ ( ║ ) ║ = ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ Ü ║ * ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ Ö ║ Ä ║ ' ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ ; ║ : ║ _ ║ ║ > ║░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║░░░░║ ║ ║ ? ║ ` ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ ║ ║ { ║ [ ║ ] ║ } ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ @ ║ ║ € ║ ║ ║ ║ ║ ║ ║ ║ ║ ~ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║░░░░║ ║ \ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/de/keymap.c b/keyboards/mkbd65/keymaps/de/keymap.c deleted file mode 100644 index 6ba90e876f..0000000000 --- a/keyboards/mkbd65/keymaps/de/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -#include "keymap_german.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( /* Base layer */ - QK_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC, - DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, DE_PLUS, KC_ENT, - DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, - DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_UP, DE_LABK, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, DE_SS, DE_ACUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, - _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/en_us_intl/README.md b/keyboards/mkbd65/keymaps/en_us_intl/README.md deleted file mode 100644 index f68aaf41fc..0000000000 --- a/keyboards/mkbd65/keymaps/en_us_intl/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# The English US International keymap for mkbd65 rev0 by XenGi - -This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. - -It is based on the "English (intl., with AltGr dead keys)" layout. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c deleted file mode 100644 index 96d7855ff8..0000000000 --- a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_all( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, - _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md deleted file mode 100644 index 9a5f9b176f..0000000000 --- a/keyboards/mkbd65/keymaps/iso/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# The iso-like keymap for mkbd65 rev0 - -It's actually just ANSI but with an upright `Enter` key. - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ \ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ | ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║░░░░║AltG║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod alt -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ¬ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║░░░░║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c deleted file mode 100644 index a7dd99463e..0000000000 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_iso( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ), -}; diff --git a/keyboards/mkbd65/mkbd65.png b/keyboards/mkbd65/mkbd65.png deleted file mode 100644 index b873771c74..0000000000 Binary files a/keyboards/mkbd65/mkbd65.png and /dev/null differ diff --git a/keyboards/mkbd65/rev0/keyboard.json b/keyboards/mkbd65/rev0/keyboard.json deleted file mode 100644 index 35269aaa5c..0000000000 --- a/keyboards/mkbd65/rev0/keyboard.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "manufacturer": "XenGi", - "keyboard_name": "mkbd65", - "maintainer": "XenGi", - "bootloader": "atmel-dfu", - "bootloader_instructions": "Press the button marked RESET on the back of the PCB", - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, - "build": { - "lto": true - }, - "debounce": 5, - "diode_direction": "ROW2COL", - "encoder": { - "enabled": false - }, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": false, - "rgblight": false - }, - "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D5", "D3", "D2", "D1", "D0"] - }, - "processor": "atmega32u4", - "split": { - "enabled": false - }, - "tags": ["mobile", "65%"], - "url": "https://mkbd65.xengi.de", - "usb": { - "device_version": "0.0.1", - "pid": "0x4803", - "vid": "0x1209" - }, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, - {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, - {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, - {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, - {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, - {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, - {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, - {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, - {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, - {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, - {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, - {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, - {"label": "\\", "matrix": [1, 12], "x": 1, "y": 12}, - {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, - {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, - {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, - {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, - {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, - {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, - {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, - {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, - {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, - {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, - {"label": "Enter", "matrix": [2, 11], "x": 2, "y": 11, "w": 2}, - {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, - {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, - {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, - {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, - {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, - {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, - {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, - {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, - {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, - {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, - {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, - {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, - {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, - {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, - {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, - {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, - {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, - {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, - {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, - {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, - {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, - {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, - {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, - {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, - {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, - {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, - {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, - {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, - {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, - {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, - {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, - {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, - {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, - {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, - {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, - {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, - {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, - {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, - {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, - {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, - {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, - {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, - {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, - {"label": "\\", "matrix": [2, 11], "x": 2, "y": 11}, - {"label": "Enter", "matrix": [1, 12], "x": 1, "y": 12, "h": 2}, - {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, - {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, - {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, - {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, - {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, - {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, - {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, - {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, - {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, - {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, - {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, - {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, - {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, - {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, - {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, - {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, - {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, - {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, - {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, - {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, - {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, - {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c deleted file mode 100644 index 2cde260fa0..0000000000 --- a/keyboards/mkbd65/rev0/mkbd65.c +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mkbd65.h" -#include "quantum.h" - diff --git a/keyboards/mkbd65/rev0/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h deleted file mode 100644 index 798a87ce44..0000000000 --- a/keyboards/mkbd65/rev0/mkbd65.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef MKBD65_H -#define MKBD65_H - -/* LAYOUT_ansi - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ - * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ - * This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ - K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ - { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ -} - -/* LAYOUT_iso - * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══════╗ - * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ║ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ - * ╟───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───╢ - * ║ │ │ │ │ 3.0U │ │ │ │ │ │ ║ - * ╚═══╧═══╧═══╧═══╧═══════════╧═══╧═══╧═══╧═══╧═══╧═══╝ - */ -#define LAYOUT_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ - K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, KC_NO }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ - { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ -} - -#endif diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk deleted file mode 100644 index de2da8afe1..0000000000 --- a/keyboards/mkbd65/rev0/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -F_CPU = 16000000 -ARCH = AVR8 -F_USB = $(F_CPU) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT diff --git a/keyboards/mkbd65/rev1/keyboard.json b/keyboards/mkbd65/rev1/keyboard.json deleted file mode 100644 index 2329e8bc52..0000000000 --- a/keyboards/mkbd65/rev1/keyboard.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "manufacturer": "XenGi", - "keyboard_name": "mkbd65", - "maintainer": "XenGi", - "bootloader": "atmel-dfu", - "diode_direction": "ROW2COL", - "debounce": 5, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": false, - "rgblight": false - }, - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, - "matrix_pins": { - "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], - "rows": ["B12", "B13", "B14", "B15", "A8"] - }, - "processor": "atmega32u4", - "url": "https://mkbd65.xengi.de", - "bootloader_instructions": "Press the button marked RESET on the back of the PCB", - "tags": ["mobile", "65%"], - "usb": { - "device_version": "1.0.0", - "pid": "0x4803", - "vid": "0x1209" - }, - "build": { - "lto": true - }, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, - { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, - { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, - { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, - { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, - { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, - { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, - { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, - { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, - { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, - { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, - { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, - - { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, - { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, - { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, - { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, - { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, - { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, - { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, - { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, - { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, - { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, - { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, - { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, - { "matrix": [1, 12], "x": 1, "y": 12, "label": "\\" }, - - { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, - { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, - { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, - { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, - { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, - { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, - { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, - { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, - { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, - { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, - { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, - { "matrix": [2, 11], "x": 2, "y": 11, "label": "Enter" }, - { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, - - { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, - { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, - { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, - { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, - { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, - { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, - { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, - { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, - { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, - { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, - { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "RShift" }, - { "matrix": [3, 12], "x": 3, "y": 11, "w": 2, "label": "RShift" }, - - { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, - { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, - { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, - { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, - { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, - { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, - { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, - { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, - { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, - { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } - ] - }, - "LAYOUT_iso": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, - { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, - { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, - { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, - { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, - { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, - { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, - { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, - { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, - { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, - { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, - { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, - - { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, - { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, - { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, - { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, - { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, - { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, - { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, - { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, - { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, - { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, - { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, - { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, - { "matrix": [1, 12], "x": 1, "y": 12, "label": "Enter" }, - - { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, - { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, - { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, - { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, - { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, - { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, - { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, - { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, - { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, - { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, - { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, - { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" }, - { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, - - { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, - { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, - { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, - { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, - { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, - { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, - { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, - { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, - { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, - { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, - { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "label": "RShift" }, - { "matrix": [3, 12], "x": 3, "y": 12, "label": "RShift" }, - - { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, - { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, - { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, - { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, - { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, - { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, - { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, - { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, - { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, - { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } - ] - } - } -} - diff --git a/keyboards/mkbd65/rev1/mkbd65.c b/keyboards/mkbd65/rev1/mkbd65.c deleted file mode 100644 index baca6508d4..0000000000 --- a/keyboards/mkbd65/rev1/mkbd65.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mkbd65.h" diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h deleted file mode 100644 index 759166bbcf..0000000000 --- a/keyboards/mkbd65/rev1/mkbd65.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef MKBD65_H -#define MKBD65_H - -#include "quantum.h" - -/* LAYOUT - * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝ - * This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \ -} - -#endif diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk deleted file mode 100644 index e5116166cc..0000000000 --- a/keyboards/mkbd65/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -MCU = STM32F072 -BOOTLOADER = stm32-dfu diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk deleted file mode 100644 index 3287da9fbd..0000000000 --- a/keyboards/mkbd65/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -# AVR MCU Options -F_CPU = 16000000 -ARCH = AVR8 -F_USB = $(F_CPU) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - -# Feature Options -MAGIC_ENABLE = no -AUDIO_ENABLE = no -KEY_OVERRIDE_ENABLE = no -LEADER_ENABLE = no -MIDI_ENABLE = no -UNICODE_ENABLE = no -BLUETOOTH_ENABLE = no -MUSIC_ENABLE = no -SPACE_CADET_ENABLE = no -GRAVE_ESC_ENABLE = yes -AVR_USE_MINIMAL_PRINTF = yes - diff --git a/keyboards/ml/gas75/keyboard.json b/keyboards/ml/gas75/keyboard.json index 280735eb14..25289db9c8 100644 --- a/keyboards/ml/gas75/keyboard.json +++ b/keyboards/ml/gas75/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xC0B0", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -62,6 +58,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c index 8e61e104ed..7fe790e601 100644 --- a/keyboards/ml/gas75/keymaps/default/keymap.c +++ b/keyboards/ml/gas75/keymaps/default/keymap.c @@ -110,12 +110,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; @@ -135,7 +135,7 @@ void keyboard_post_init_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -161,17 +161,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, }; #endif bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(2, 0, 0, 0); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { if (host_keyboard_led_state().caps_lock) { diff --git a/keyboards/mlego/m48/rev1/keyboard.json b/keyboards/mlego/m48/rev1/keyboard.json index 72e0ca383f..efd3888295 100644 --- a/keyboards/mlego/m48/rev1/keyboard.json +++ b/keyboards/mlego/m48/rev1/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m60/rev1/keyboard.json b/keyboards/mlego/m60/rev1/keyboard.json index 36bfcb15b6..126338b0c8 100644 --- a/keyboards/mlego/m60/rev1/keyboard.json +++ b/keyboards/mlego/m60/rev1/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m65/keymaps/default/keymap.c b/keyboards/mlego/m65/keymaps/default/keymap.c index 52ead0ab36..6ff4b5dc70 100644 --- a/keyboards/mlego/m65/keymaps/default/keymap.c +++ b/keyboards/mlego/m65/keymaps/default/keymap.c @@ -15,17 +15,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LWR] = LAYOUT_ortho_5x13( KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL , - MS_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, MS_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP , _______ , - _______, MS_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT), + KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ , + _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), [_RSE] = LAYOUT_ortho_5x13( 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLU, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R), [_ADJ] = LAYOUT_ortho_5x13( UG_NEXT, UG_PREV , A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW, diff --git a/keyboards/mlego/m65/keymaps/uk/keymap.c b/keyboards/mlego/m65/keymaps/uk/keymap.c index 06d5dd5bf2..f708346239 100644 --- a/keyboards/mlego/m65/keymaps/uk/keymap.c +++ b/keyboards/mlego/m65/keymaps/uk/keymap.c @@ -185,10 +185,10 @@ MS - mouse directions */ [_LWR] = LAYOUT_ortho_5x13( KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL, UK_EQL, - MS_BTN3,UP(lq,lQ),UP(lw,lW),UP(le,lE),UP(lr,lR),UP(lt,lT),UP(ly,lY),UP(lu,lU),UP(li,lI), UP(lo,lO), UP(lp,lP), _______, _______, - MS_BTN2,UP(la,lA),UP(ls,lS),UP(ld,lD),UP(lf,lF),UP(lg,lG),UP(lh,lH),UP(lj,lJ),UP(lk,lK), UP(ll,lL),UP(ll1,lL1), UP(lk1,lK1), _______, - _______, MS_BTN1,UP(lz,lZ),UP(lx,lX),UP(lc,lC),UP(lv,lV),UP(lb,lB),UP(ln,lN),UP(lm,lM),UP(lc1,lC1),UP(lp1,lP1), MS_UP, UP(lq1,lQ1), - _______, MS_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT), + KC_BTN3,UP(lq,lQ),UP(lw,lW),UP(le,lE),UP(lr,lR),UP(lt,lT),UP(ly,lY),UP(lu,lU),UP(li,lI), UP(lo,lO), UP(lp,lP), _______, _______, + KC_BTN2,UP(la,lA),UP(ls,lS),UP(ld,lD),UP(lf,lF),UP(lg,lG),UP(lh,lH),UP(lj,lJ),UP(lk,lK), UP(ll,lL),UP(ll1,lL1), UP(lk1,lK1), _______, + _______, KC_BTN1,UP(lz,lZ),UP(lx,lX),UP(lc,lC),UP(lv,lV),UP(lb,lB),UP(ln,lN),UP(lm,lM),UP(lc1,lC1),UP(lp1,lP1), KC_MS_U, UP(lq1,lQ1), + _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), /* lower layer @@ -221,8 +221,8 @@ raise layer shifted 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 , _______,UP(ra1,rA1), _______, _______, _______,UP(rt,rT), _______, _______,UP(ri,rI), _______, _______, _______, _______ , KC_CAPS, UP(ra,rA), UP(rs,rS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, KC_F20 , _______, _______,UP(rc,rC), _______, _______, _______, _______, _______, _______, MS_WHLU, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR), + _______, KC_F20 , _______, _______,UP(rc,rC), _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R), /* adj layer * ┌───┬────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┬────┐ diff --git a/keyboards/mlego/m65/rev1/keyboard.json b/keyboards/mlego/m65/rev1/keyboard.json index 6959d11456..2f77137eec 100644 --- a/keyboards/mlego/m65/rev1/keyboard.json +++ b/keyboards/mlego/m65/rev1/keyboard.json @@ -3,6 +3,7 @@ "keyboard_name": "mlego/m65 rev1", "maintainer": "alin elena", "bootloader": "stm32duino", + "debounce": 5, "diode_direction": "COL2ROW", "encoder": { "rotary": [ @@ -11,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -39,6 +42,7 @@ "static_gradient": true, "twinkle": true }, + "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev2/keyboard.json b/keyboards/mlego/m65/rev2/keyboard.json index f0aa70e90b..0014767309 100644 --- a/keyboards/mlego/m65/rev2/keyboard.json +++ b/keyboards/mlego/m65/rev2/keyboard.json @@ -12,6 +12,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -40,6 +41,7 @@ "static_gradient": true, "twinkle": true }, + "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev3/keyboard.json b/keyboards/mlego/m65/rev3/keyboard.json index 21efcc027b..4b7980b63b 100644 --- a/keyboards/mlego/m65/rev3/keyboard.json +++ b/keyboards/mlego/m65/rev3/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -40,6 +42,7 @@ "static_gradient": true, "twinkle": true }, + "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev4/keyboard.json b/keyboards/mlego/m65/rev4/keyboard.json index 58c2bad7bf..ab2a708ba8 100644 --- a/keyboards/mlego/m65/rev4/keyboard.json +++ b/keyboards/mlego/m65/rev4/keyboard.json @@ -12,6 +12,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, @@ -43,6 +44,7 @@ "static_gradient": true, "twinkle": true }, + "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mmkeyboard/class60/soldered/keyboard.json b/keyboards/mmkeyboard/class60/soldered/keyboard.json index 8615129e83..758299cf2b 100644 --- a/keyboards/mmkeyboard/class60/soldered/keyboard.json +++ b/keyboards/mmkeyboard/class60/soldered/keyboard.json @@ -36,32 +36,11 @@ "url": "https://www.mmkeyboard.com/products/mm-class60-retro-custom-mechanical-keyboard", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x3876", "vid": "0x4F66" }, - "host": { - "default": { - "nkro": true - } - }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -843,7 +822,7 @@ {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/mmkzoo65/keyboard.json b/keyboards/mmkzoo65/keyboard.json index 3d752d6d5d..f023f34ef0 100644 --- a/keyboards/mmkzoo65/keyboard.json +++ b/keyboards/mmkzoo65/keyboard.json @@ -1,20 +1,19 @@ { "keyboard_name": "MMKZOO65", "manufacturer": "MWStudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7BA1", "pid": "0x6505", "device_version": "0.0.1", + "force_nkro": true, "polling_interval": 2 }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mntre/keyboard.json b/keyboards/mntre/keyboard.json index 41e6e618a6..26dc66dc48 100644 --- a/keyboards/mntre/keyboard.json +++ b/keyboards/mntre/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/mode/m256wh/mcuconf.h b/keyboards/mode/m256wh/mcuconf.h index ff2280716d..3d1d05c307 100644 --- a/keyboards/mode/m256wh/mcuconf.h +++ b/keyboards/mode/m256wh/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/mode/m256ws/keyboard.json b/keyboards/mode/m256ws/keyboard.json index 0574be8406..820ed536c2 100644 --- a/keyboards/mode/m256ws/keyboard.json +++ b/keyboards/mode/m256ws/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -34,6 +36,7 @@ "twinkle": true } }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x5753", diff --git a/keyboards/mode/m256ws/mcuconf.h b/keyboards/mode/m256ws/mcuconf.h index ff2280716d..3d1d05c307 100644 --- a/keyboards/mode/m256ws/mcuconf.h +++ b/keyboards/mode/m256ws/mcuconf.h @@ -18,5 +18,8 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/mode/m60h/config.h b/keyboards/mode/m60h/config.h index e51bff8ca5..cde4ffdbc6 100644 --- a/keyboards/mode/m60h/config.h +++ b/keyboards/mode/m60h/config.h @@ -6,4 +6,5 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 +#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file diff --git a/keyboards/mode/m60h/keyboard.json b/keyboards/mode/m60h/keyboard.json index 39cbdb473f..b33ea3a9c3 100644 --- a/keyboards/mode/m60h/keyboard.json +++ b/keyboards/mode/m60h/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -37,6 +39,7 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0062", diff --git a/keyboards/mode/m60h_f/config.h b/keyboards/mode/m60h_f/config.h index e51bff8ca5..cde4ffdbc6 100644 --- a/keyboards/mode/m60h_f/config.h +++ b/keyboards/mode/m60h_f/config.h @@ -6,4 +6,5 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 +#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file diff --git a/keyboards/mode/m60h_f/keyboard.json b/keyboards/mode/m60h_f/keyboard.json index f04b599d84..014472bc68 100644 --- a/keyboards/mode/m60h_f/keyboard.json +++ b/keyboards/mode/m60h_f/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -37,6 +39,7 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0061", diff --git a/keyboards/mode/m60s/config.h b/keyboards/mode/m60s/config.h index e51bff8ca5..cde4ffdbc6 100644 --- a/keyboards/mode/m60s/config.h +++ b/keyboards/mode/m60s/config.h @@ -6,4 +6,5 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 +#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file diff --git a/keyboards/mode/m60s/keyboard.json b/keyboards/mode/m60s/keyboard.json index 993af9b798..6a03219427 100644 --- a/keyboards/mode/m60s/keyboard.json +++ b/keyboards/mode/m60s/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -37,6 +39,7 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/mode/m65ha_alpha/keyboard.json b/keyboards/mode/m65ha_alpha/keyboard.json index 7794d16396..cc5271b5c2 100644 --- a/keyboards/mode/m65ha_alpha/keyboard.json +++ b/keyboards/mode/m65ha_alpha/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SixtyFive HA", "manufacturer": "Mode", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m65hi_alpha/keyboard.json b/keyboards/mode/m65hi_alpha/keyboard.json index 4d3bf4bf0a..c0c843d4de 100644 --- a/keyboards/mode/m65hi_alpha/keyboard.json +++ b/keyboards/mode/m65hi_alpha/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SixtyFive HI", "manufacturer": "Mode", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m65s/keyboard.json b/keyboards/mode/m65s/keyboard.json index 29221f27d5..ae8df282ad 100644 --- a/keyboards/mode/m65s/keyboard.json +++ b/keyboards/mode/m65s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SixtyFive S", "manufacturer": "Mode", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", @@ -16,6 +17,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m75h/keyboard.json b/keyboards/mode/m75h/keyboard.json index 6e6c7b4b96..5d4d8249e6 100644 --- a/keyboards/mode/m75h/keyboard.json +++ b/keyboards/mode/m75h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "M75H", "manufacturer": "Mode", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m75s/keyboard.json b/keyboards/mode/m75s/keyboard.json index 822d31aebc..aff38dc622 100644 --- a/keyboards/mode/m75s/keyboard.json +++ b/keyboards/mode/m75s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "75S", "manufacturer": "Mode", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m80v1/m80h/keyboard.json b/keyboards/mode/m80v1/m80h/keyboard.json index 1e681e7f5c..dcebcb6d49 100644 --- a/keyboards/mode/m80v1/m80h/keyboard.json +++ b/keyboards/mode/m80v1/m80h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eighty", "manufacturer": "Mode", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00DE", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v1/m80s/keyboard.json b/keyboards/mode/m80v1/m80s/keyboard.json index 5e88ff67bb..25bfd3c70a 100644 --- a/keyboards/mode/m80v1/m80s/keyboard.json +++ b/keyboards/mode/m80v1/m80s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eighty", "manufacturer": "Mode", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x00DE", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v2/m80v2h/keyboard.json b/keyboards/mode/m80v2/m80v2h/keyboard.json index b4bd8e124e..1844e0775c 100644 --- a/keyboards/mode/m80v2/m80v2h/keyboard.json +++ b/keyboards/mode/m80v2/m80v2h/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v2/m80v2s/keyboard.json b/keyboards/mode/m80v2/m80v2s/keyboard.json index 9460ab7308..d8b4c8ee85 100644 --- a/keyboards/mode/m80v2/m80v2s/keyboard.json +++ b/keyboards/mode/m80v2/m80v2s/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mokey/ginkgo65/keyboard.json b/keyboards/mokey/ginkgo65/keyboard.json index 7279f82cc4..311d91f2d3 100644 --- a/keyboards/mokey/ginkgo65/keyboard.json +++ b/keyboards/mokey/ginkgo65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ginkgo 65", "manufacturer": "Mokey", + "url": "", "maintainer": "rhmokey", "usb": { "vid": "0x6653", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/ginkgo65hot/keyboard.json b/keyboards/mokey/ginkgo65hot/keyboard.json index f39c490b2f..1674607310 100644 --- a/keyboards/mokey/ginkgo65hot/keyboard.json +++ b/keyboards/mokey/ginkgo65hot/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ginkgo65hot", "manufacturer": "Mokey", + "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/ibis80/keyboard.json b/keyboards/mokey/ibis80/keyboard.json index a9971d2392..d6cd985d01 100644 --- a/keyboards/mokey/ibis80/keyboard.json +++ b/keyboards/mokey/ibis80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ibis 80", "manufacturer": "Mokey", + "url": "", "maintainer": "Runheme", "usb": { "vid": "0x6653", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mokey/luckycat70/keyboard.json b/keyboards/mokey/luckycat70/keyboard.json index e714454972..2f9ab6a1e5 100644 --- a/keyboards/mokey/luckycat70/keyboard.json +++ b/keyboards/mokey/luckycat70/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lucky Cat 70", "manufacturer": "qmk", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6653", @@ -12,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, diff --git a/keyboards/mokey/mokey12x2/keyboard.json b/keyboards/mokey/mokey12x2/keyboard.json index 489856a264..6f22429e72 100644 --- a/keyboards/mokey/mokey12x2/keyboard.json +++ b/keyboards/mokey/mokey12x2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mokey12x2", "manufacturer": "Mokey", + "url": "", "maintainer": "Mokey", "development_board": "bluepill", "diode_direction": "COL2ROW", diff --git a/keyboards/mokey/mokey63/keyboard.json b/keyboards/mokey/mokey63/keyboard.json index 88b7ce3f7f..bebc600510 100644 --- a/keyboards/mokey/mokey63/keyboard.json +++ b/keyboards/mokey/mokey63/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mokey63", "manufacturer": "Mokey", + "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/mokey64/keyboard.json b/keyboards/mokey/mokey64/keyboard.json index 62b6fc2ac1..0234cf6292 100644 --- a/keyboards/mokey/mokey64/keyboard.json +++ b/keyboards/mokey/mokey64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mokey64", "manufacturer": "Mokey", + "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/xox70/keyboard.json b/keyboards/mokey/xox70/keyboard.json index d746a23471..4f8f5439f5 100644 --- a/keyboards/mokey/xox70/keyboard.json +++ b/keyboards/mokey/xox70/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XOX 70", "manufacturer": "Mokey", + "url": "", "maintainer": "Mokey", "usb": { "vid": "0x6653", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/xox70hot/keyboard.json b/keyboards/mokey/xox70hot/keyboard.json index b2bf671020..7d5f338b62 100644 --- a/keyboards/mokey/xox70hot/keyboard.json +++ b/keyboards/mokey/xox70hot/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XOX 70 Hotswap", "manufacturer": "Mokey", + "url": "", "maintainer": "rhmokey", "usb": { "vid": "0x6653", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/moky/moky67/halconf.h b/keyboards/moky/moky67/halconf.h index 5d94695838..0a59a1fcb8 100644 --- a/keyboards/moky/moky67/halconf.h +++ b/keyboards/moky/moky67/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/moky/moky67/keyboard.json b/keyboards/moky/moky67/keyboard.json index 869dfc3389..8737790b69 100644 --- a/keyboards/moky/moky67/keyboard.json +++ b/keyboards/moky/moky67/keyboard.json @@ -1,6 +1,7 @@ { "manufacturer": "moky", "keyboard_name": "moky67", + "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/moky/moky67/keymaps/default/keymap.c b/keyboards/moky/moky67/keymaps/default/keymap.c index 7a396e12dc..aab6493c2e 100644 --- a/keyboards/moky/moky67/keymaps/default/keymap.c +++ b/keyboards/moky/moky67/keymaps/default/keymap.c @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* Base */ KC_GRV, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), [2] = LAYOUT( /* Base */ KC_ESC, KC_BRMD, KC_BRMU, KC_F3, _______, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, _______, @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT( /* FN */ 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, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, - _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, EE_CLR, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, EE_CLR, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), }; // clang-format on @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)}, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; diff --git a/keyboards/moky/moky88/config.h b/keyboards/moky/moky88/config.h index 7c102e1a97..a673a38069 100644 --- a/keyboards/moky/moky88/config.h +++ b/keyboards/moky/moky88/config.h @@ -15,4 +15,5 @@ /* RGB Driver */ #define AW20216S_CS_PIN_1 D2 #define AW20216S_CS_PIN_2 B8 -#define AW20216S_EN_PIN B9 +#define AW20216S_EN_PIN_1 B9 +#define AW20216S_EN_PIN_2 B9 diff --git a/keyboards/moky/moky88/halconf.h b/keyboards/moky/moky88/halconf.h index 5d94695838..0a59a1fcb8 100644 --- a/keyboards/moky/moky88/halconf.h +++ b/keyboards/moky/moky88/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/moky/moky88/keyboard.json b/keyboards/moky/moky88/keyboard.json index 1db4c5247c..38ed4dbd28 100644 --- a/keyboards/moky/moky88/keyboard.json +++ b/keyboards/moky/moky88/keyboard.json @@ -1,6 +1,7 @@ { "manufacturer": "moky", "keyboard_name": "moky88", + "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/moky/moky88/keymaps/default/keymap.c b/keyboards/moky/moky88/keymaps/default/keymap.c index 7ae5e0d8a1..5b86c306cf 100644 --- a/keyboards/moky/moky88/keymaps/default/keymap.c +++ b/keyboards/moky/moky88/keymaps/default/keymap.c @@ -16,11 +16,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_f13_ansi( /* Base */ _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, _______, _______, _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI), [2] = LAYOUT_tkl_f13_ansi( /* Base */ KC_ESC, KC_BRMD, KC_BRMU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, KC_SCRL, KC_PAUSE, @@ -32,17 +32,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_tkl_f13_ansi( /* FN */ _______, 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_MUTE, KC_PSCR, KC_SCRL, KC_PAUSE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, _______, _______, _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI), }; const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, - [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)}, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; diff --git a/keyboards/moky/moky88/moky88.c b/keyboards/moky/moky88/moky88.c index 2de672f94f..3cbd6e1468 100644 --- a/keyboards/moky/moky88/moky88.c +++ b/keyboards/moky/moky88/moky88.c @@ -23,97 +23,97 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { * | | G location * | | | B location * | | | | */ - {0, SW2_CS18, SW2_CS17, SW2_CS16 }, // 0 Esc - {0, SW3_CS18, SW3_CS17, SW3_CS16 }, // 1 F1 - {0, SW4_CS18, SW4_CS17, SW4_CS16 }, // 2 F2 - {0, SW5_CS18, SW5_CS17, SW5_CS16 }, // 3 F3 - {0, SW6_CS18, SW6_CS17, SW6_CS16 }, // 4 F4 - {0, SW7_CS18, SW7_CS17, SW7_CS16 }, // 5 F5 - {0, SW8_CS18, SW8_CS17, SW8_CS16 }, // 6 F6 - {0, SW9_CS18, SW9_CS17, SW9_CS16 }, // 7 F7 - {0, SW10_CS18, SW10_CS17, SW10_CS16 }, // 8 F8 - {0, SW11_CS18, SW11_CS17, SW11_CS16 }, // 9 F9 - {0, SW12_CS18, SW12_CS17, SW12_CS16 }, // 10 F10 - {1, SW1_CS18, SW1_CS17, SW1_CS16 }, // 11 F11 - {1, SW2_CS18, SW2_CS17, SW2_CS16 }, // 12 F12 - {1, SW3_CS18, SW3_CS17, SW3_CS16 }, // 13 MUTE - {1, SW4_CS18, SW4_CS17, SW4_CS16 }, // 14 PSCR - {1, SW5_CS18, SW5_CS17, SW5_CS16 }, // 15 SCRL - {1, SW6_CS18, SW6_CS17, SW6_CS16 }, // 16 PAUSE + {0, CS18_SW2, CS17_SW2, CS16_SW2 }, // 0 Esc + {0, CS18_SW3, CS17_SW3, CS16_SW3 }, // 1 F1 + {0, CS18_SW4, CS17_SW4, CS16_SW4 }, // 2 F2 + {0, CS18_SW5, CS17_SW5, CS16_SW5 }, // 3 F3 + {0, CS18_SW6, CS17_SW6, CS16_SW6 }, // 4 F4 + {0, CS18_SW7, CS17_SW7, CS16_SW7 }, // 5 F5 + {0, CS18_SW8, CS17_SW8, CS16_SW8 }, // 6 F6 + {0, CS18_SW9, CS17_SW9, CS16_SW9 }, // 7 F7 + {0, CS18_SW10, CS17_SW10, CS16_SW10 }, // 8 F8 + {0, CS18_SW11, CS17_SW11, CS16_SW11 }, // 9 F9 + {0, CS18_SW12, CS17_SW12, CS16_SW12 }, // 10 F10 + {1, CS18_SW1, CS17_SW1, CS16_SW1 }, // 11 F11 + {1, CS18_SW2, CS17_SW2, CS16_SW2 }, // 12 F12 + {1, CS18_SW3, CS17_SW3, CS16_SW3 }, // 13 MUTE + {1, CS18_SW4, CS17_SW4, CS16_SW4 }, // 14 PSCR + {1, CS18_SW5, CS17_SW5, CS16_SW5 }, // 15 SCRL + {1, CS18_SW6, CS17_SW6, CS16_SW6 }, // 16 PAUSE - {0, SW2_CS15, SW2_CS14, SW2_CS13 }, // 17 `~ - {0, SW3_CS15, SW3_CS14, SW3_CS13 }, // 18 1 - {0, SW4_CS15, SW4_CS14, SW4_CS13 }, // 19 2 - {0, SW5_CS15, SW5_CS14, SW5_CS13 }, // 20 3 - {0, SW6_CS15, SW6_CS14, SW6_CS13 }, // 21 4 - {0, SW7_CS15, SW7_CS14, SW7_CS13 }, // 22 5 - {0, SW8_CS15, SW8_CS14, SW8_CS13 }, // 23 6 - {0, SW9_CS15, SW9_CS14, SW9_CS13 }, // 24 7 - {0, SW10_CS15, SW10_CS14, SW10_CS13 }, // 25 8 - {0, SW11_CS15, SW11_CS14, SW11_CS13 }, // 26 9 - {0, SW12_CS15, SW12_CS14, SW12_CS13 }, // 27 0 - {1, SW1_CS15, SW1_CS14, SW1_CS13 }, // 28 -_ - {1, SW2_CS15, SW2_CS14, SW2_CS13 }, // 29 =+ - {1, SW3_CS15, SW3_CS14, SW3_CS13 }, // 30 BSPC - {1, SW4_CS15, SW4_CS14, SW4_CS13 }, // 31 INS - {1, SW5_CS15, SW5_CS14, SW5_CS13 }, // 32 HOME - {1, SW6_CS15, SW6_CS14, SW6_CS13 }, // 33 PGUP + {0, CS15_SW2, CS14_SW2, CS13_SW2 }, // 17 `~ + {0, CS15_SW3, CS14_SW3, CS13_SW3 }, // 18 1 + {0, CS15_SW4, CS14_SW4, CS13_SW4 }, // 19 2 + {0, CS15_SW5, CS14_SW5, CS13_SW5 }, // 20 3 + {0, CS15_SW6, CS14_SW6, CS13_SW6 }, // 21 4 + {0, CS15_SW7, CS14_SW7, CS13_SW7 }, // 22 5 + {0, CS15_SW8, CS14_SW8, CS13_SW8 }, // 23 6 + {0, CS15_SW9, CS14_SW9, CS13_SW9 }, // 24 7 + {0, CS15_SW10, CS14_SW10, CS13_SW10 }, // 25 8 + {0, CS15_SW11, CS14_SW11, CS13_SW11 }, // 26 9 + {0, CS15_SW12, CS14_SW12, CS13_SW12 }, // 27 0 + {1, CS15_SW1, CS14_SW1, CS13_SW1 }, // 28 -_ + {1, CS15_SW2, CS14_SW2, CS13_SW2 }, // 29 =+ + {1, CS15_SW3, CS14_SW3, CS13_SW3 }, // 30 BSPC + {1, CS15_SW4, CS14_SW4, CS13_SW4 }, // 31 INS + {1, CS15_SW5, CS14_SW5, CS13_SW5 }, // 32 HOME + {1, CS15_SW6, CS14_SW6, CS13_SW6 }, // 33 PGUP - {0, SW2_CS12, SW2_CS11, SW2_CS10 }, // 34 Tab - {0, SW3_CS12, SW3_CS11, SW3_CS10 }, // 35 Q - {0, SW4_CS12, SW4_CS11, SW4_CS10 }, // 36 W - {0, SW5_CS12, SW5_CS11, SW5_CS10 }, // 37 E - {0, SW6_CS12, SW6_CS11, SW6_CS10 }, // 38 R - {0, SW7_CS12, SW7_CS11, SW7_CS10 }, // 39 T - {0, SW8_CS12, SW8_CS11, SW8_CS10 }, // 40 Y - {0, SW9_CS12, SW9_CS11, SW9_CS10 }, // 41 U - {0, SW10_CS12, SW10_CS11, SW10_CS10 }, // 42 I - {0, SW11_CS12, SW11_CS11, SW11_CS10 }, // 43 O - {0, SW12_CS12, SW12_CS11, SW12_CS10 }, // 44 P - {1, SW1_CS12, SW1_CS11, SW1_CS10 }, // 45 [{ - {1, SW2_CS12, SW2_CS11, SW2_CS10 }, // 48 ]} - {1, SW3_CS12, SW3_CS11, SW3_CS10 }, // 47 \| - {1, SW4_CS12, SW4_CS11, SW4_CS10 }, // 48 Del - {1, SW5_CS12, SW5_CS11, SW5_CS10 }, // 49 End - {1, SW6_CS12, SW6_CS11, SW6_CS10 }, // 50 PGDN + {0, CS12_SW2, CS11_SW2, CS10_SW2 }, // 34 Tab + {0, CS12_SW3, CS11_SW3, CS10_SW3 }, // 35 Q + {0, CS12_SW4, CS11_SW4, CS10_SW4 }, // 36 W + {0, CS12_SW5, CS11_SW5, CS10_SW5 }, // 37 E + {0, CS12_SW6, CS11_SW6, CS10_SW6 }, // 38 R + {0, CS12_SW7, CS11_SW7, CS10_SW7 }, // 39 T + {0, CS12_SW8, CS11_SW8, CS10_SW8 }, // 40 Y + {0, CS12_SW9, CS11_SW9, CS10_SW9 }, // 41 U + {0, CS12_SW10, CS11_SW10, CS10_SW10 }, // 42 I + {0, CS12_SW11, CS11_SW11, CS10_SW11 }, // 43 O + {0, CS12_SW12, CS11_SW12, CS10_SW12 }, // 44 P + {1, CS12_SW1, CS11_SW1, CS10_SW1 }, // 45 [{ + {1, CS12_SW2, CS11_SW2, CS10_SW2 }, // 48 ]} + {1, CS12_SW3, CS11_SW3, CS10_SW3 }, // 47 \| + {1, CS12_SW4, CS11_SW4, CS10_SW4 }, // 48 Del + {1, CS12_SW5, CS11_SW5, CS10_SW5 }, // 49 End + {1, CS12_SW6, CS11_SW6, CS10_SW6 }, // 50 PGDN - {0, SW2_CS1, SW2_CS2, SW2_CS3 }, // 51 Caps - {0, SW3_CS1, SW3_CS2, SW3_CS3 }, // 52 A - {0, SW4_CS1, SW4_CS2, SW4_CS3 }, // 33 S - {0, SW5_CS1, SW5_CS2, SW5_CS3 }, // 54 D - {0, SW6_CS1, SW6_CS2, SW6_CS3 }, // 55 F - {0, SW7_CS1, SW7_CS2, SW7_CS3 }, // 56 G - {0, SW8_CS1, SW8_CS2, SW8_CS3 }, // 57 H - {0, SW9_CS1, SW9_CS2, SW9_CS3 }, // 58 J - {0, SW10_CS1, SW10_CS2, SW10_CS3 }, // 59 K - {0, SW11_CS1, SW11_CS2, SW11_CS3 }, // 60 L - {0, SW12_CS1, SW12_CS2, SW12_CS3 }, // 61 ;: - {1, SW1_CS1, SW1_CS2, SW1_CS3 }, // 62 ' - {1, SW3_CS1, SW3_CS2, SW3_CS3 }, // 63 Enter + {0, CS1_SW2, CS2_SW2, CS3_SW2 }, // 51 Caps + {0, CS1_SW3, CS2_SW3, CS3_SW3 }, // 52 A + {0, CS1_SW4, CS2_SW4, CS3_SW4 }, // 33 S + {0, CS1_SW5, CS2_SW5, CS3_SW5 }, // 54 D + {0, CS1_SW6, CS2_SW6, CS3_SW6 }, // 55 F + {0, CS1_SW7, CS2_SW7, CS3_SW7 }, // 56 G + {0, CS1_SW8, CS2_SW8, CS3_SW8 }, // 57 H + {0, CS1_SW9, CS2_SW9, CS3_SW9 }, // 58 J + {0, CS1_SW10, CS2_SW10, CS3_SW10 }, // 59 K + {0, CS1_SW11, CS2_SW11, CS3_SW11 }, // 60 L + {0, CS1_SW12, CS2_SW12, CS3_SW12 }, // 61 ;: + {1, CS1_SW1, CS2_SW1, CS3_SW1 }, // 62 ' + {1, CS1_SW3, CS2_SW3, CS3_SW3 }, // 63 Enter - {0, SW2_CS4, SW2_CS5, SW2_CS6 }, // 64 Shift - {0, SW4_CS4, SW4_CS5, SW4_CS6 }, // 65 Z - {0, SW5_CS4, SW5_CS5, SW5_CS6 }, // 66 X - {0, SW6_CS4, SW6_CS5, SW6_CS6 }, // 67 C - {0, SW7_CS4, SW7_CS5, SW7_CS6 }, // 68 V - {0, SW8_CS4, SW8_CS5, SW8_CS6 }, // 69 B - {0, SW9_CS4, SW9_CS5, SW9_CS6 }, // 70 N - {0, SW10_CS4, SW10_CS5, SW10_CS6 }, // 71 M - {0, SW11_CS4, SW11_CS5, SW11_CS6 }, // 72 ,< - {0, SW12_CS4, SW12_CS5, SW12_CS6 }, // 73 .> - {1, SW1_CS4, SW1_CS5, SW1_CS6 }, // 74 ? - {1, SW3_CS4, SW3_CS5, SW3_CS6 }, // 75 Shift - {1, SW5_CS4, SW5_CS5, SW5_CS6 }, // 76 Up + {0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 64 Shift + {0, CS4_SW4, CS5_SW4, CS6_SW4 }, // 65 Z + {0, CS4_SW5, CS5_SW5, CS6_SW5 }, // 66 X + {0, CS4_SW6, CS5_SW6, CS6_SW6 }, // 67 C + {0, CS4_SW7, CS5_SW7, CS6_SW7 }, // 68 V + {0, CS4_SW8, CS5_SW8, CS6_SW8 }, // 69 B + {0, CS4_SW9, CS5_SW9, CS6_SW9 }, // 70 N + {0, CS4_SW10, CS5_SW10, CS6_SW10 }, // 71 M + {0, CS4_SW11, CS5_SW11, CS6_SW11 }, // 72 ,< + {0, CS4_SW12, CS5_SW12, CS6_SW12 }, // 73 .> + {1, CS4_SW1, CS5_SW1, CS6_SW1 }, // 74 ? + {1, CS4_SW3, CS5_SW3, CS6_SW3 }, // 75 Shift + {1, CS4_SW5, CS5_SW5, CS6_SW5 }, // 76 Up - {0, SW2_CS7, SW2_CS8, SW2_CS9 }, // 77 Ctrl_L - {0, SW3_CS7, SW3_CS8, SW3_CS9 }, // 78 Win_L - {0, SW4_CS7, SW4_CS8, SW4_CS9 }, // 79 ALT_L - {0, SW8_CS7, SW8_CS8, SW8_CS9 }, // 80 SPACE - {0, SW12_CS7, SW12_CS8, SW12_CS9 }, // 81 ALT_L - {1, SW1_CS7, SW1_CS8, SW1_CS9 }, // 82 Win_L - {1, SW2_CS7, SW2_CS8, SW2_CS9 }, // 83 Fn - {1, SW3_CS7, SW3_CS8, SW3_CS9 }, // 84 Ctrl_L - {1, SW4_CS7, SW4_CS8, SW4_CS9 }, // 85 Left - {1, SW5_CS7, SW5_CS8, SW5_CS9 }, // 86 Down - {1, SW6_CS7, SW6_CS8, SW6_CS9 }, // 87 Right + {0, CS7_SW2, CS8_SW2, CS9_SW2 }, // 77 Ctrl_L + {0, CS7_SW3, CS8_SW3, CS9_SW3 }, // 78 Win_L + {0, CS7_SW4, CS8_SW4, CS9_SW4 }, // 79 ALT_L + {0, CS7_SW8, CS8_SW8, CS9_SW8 }, // 80 SPACE + {0, CS7_SW12, CS8_SW12, CS9_SW12 }, // 81 ALT_L + {1, CS7_SW1, CS8_SW1, CS9_SW1 }, // 82 Win_L + {1, CS7_SW2, CS8_SW2, CS9_SW2 }, // 83 Fn + {1, CS7_SW3, CS8_SW3, CS9_SW3 }, // 84 Ctrl_L + {1, CS7_SW4, CS8_SW4, CS9_SW4 }, // 85 Left + {1, CS7_SW5, CS8_SW5, CS9_SW5 }, // 86 Down + {1, CS7_SW6, CS8_SW6, CS9_SW6 }, // 87 Right }; diff --git a/keyboards/molecule/keymaps/default/keymap.c b/keyboards/molecule/keymaps/default/keymap.c index 4b4fbd4eca..9030ba98d1 100755 --- a/keyboards/molecule/keymaps/default/keymap.c +++ b/keyboards/molecule/keymaps/default/keymap.c @@ -41,8 +41,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = LAYOUT( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_F2, KC_F3, MS_WHLU, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F8, KC_F9, - KC_F1, MS_BTN2, MS_WHLD, MS_BTN1, KC_F11, KC_F12, KC_LEFT, KC_DOWN, KC_RGHT, KC_F10, + KC_F2, KC_F3, KC_WH_U, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F8, KC_F9, + KC_F1, KC_BTN2, KC_WH_D, KC_BTN1, KC_F11, KC_F12, KC_LEFT, KC_DOWN, KC_RGHT, KC_F10, KC_LCTL, KC_LSFT, KC_LALT, KC_SPC, KC_ENT, KC_RGUI, KC_RSFT, KC_RCTL, KC_TRNS, MO(4) ), diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h index 6a401e3906..dbd81b1213 100644 --- a/keyboards/momoka_ergo/config.h +++ b/keyboards/momoka_ergo/config.h @@ -17,5 +17,7 @@ along with this program. If not, see . #pragma once +#define SELECT_SOFT_SERIAL_SPEED 5 + #define SPLIT_USB_DETECT #define EE_HANDS diff --git a/keyboards/momoka_ergo/keyboard.json b/keyboards/momoka_ergo/keyboard.json index 3430932625..a24430ee82 100644 --- a/keyboards/momoka_ergo/keyboard.json +++ b/keyboards/momoka_ergo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Momoka Ergo", "manufacturer": "StefanGrindelwald", + "url": "", "maintainer": "StefanGrindelwald", "usb": { "vid": "0x4F4D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -28,8 +31,7 @@ "split": { "enabled": true, "serial": { - "pin": "D1", - "speed": 5 + "pin": "D1" } }, "rgblight": { diff --git a/keyboards/momokai/aurora/keyboard.json b/keyboards/momokai/aurora/keyboard.json index 1c4bc8e12f..84ecbdeb4a 100644 --- a/keyboards/momokai/aurora/keyboard.json +++ b/keyboards/momokai/aurora/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -22,6 +24,7 @@ ] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0009", @@ -42,6 +45,7 @@ "rgb_matrix": { "default": { "animation": "solid_color", + "hue": 0, "sat": 0, "val": 200 }, diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index 1d5302985c..f5351dd031 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tap Duo", "manufacturer": "Momokai", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x69F9", @@ -13,6 +14,7 @@ "rgb_matrix": { "default": { "animation": "solid_color", + "hue": 0, "sat": 0, "val": 200 }, @@ -50,6 +52,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index 41da5585f6..f61de25c10 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tap Trio", "manufacturer": "Momokai", + "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x69F9", @@ -13,6 +14,7 @@ "rgb_matrix": { "default": { "animation": "solid_color", + "hue": 0, "sat": 0, "val": 200 }, @@ -50,6 +52,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/monarch/keyboard.json b/keyboards/monarch/keyboard.json index b7237ec613..c42db64a26 100644 --- a/keyboards/monarch/keyboard.json +++ b/keyboards/monarch/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Monarch", "manufacturer": "DoCallMeKing", + "url": "", "maintainer": "Ramon Imbao", "usb": { "vid": "0x4011", diff --git a/keyboards/monoflex60/keyboard.json b/keyboards/monoflex60/keyboard.json index 0becab2b63..25c19865a6 100644 --- a/keyboards/monoflex60/keyboard.json +++ b/keyboards/monoflex60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Monoflex 60", "manufacturer": "SantiGo Customs", + "url": "", "maintainer": "key10iq", "usb": { "vid": "0xDEB4", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -24,12 +27,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -102,7 +102,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c index 7927ac448b..cd308a9d0c 100644 --- a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c @@ -18,14 +18,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( 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_GRV, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/monsgeek/m1/halconf.h b/keyboards/monsgeek/m1/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/monsgeek/m1/halconf.h +++ b/keyboards/monsgeek/m1/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/monsgeek/m1/keyboard.json b/keyboards/monsgeek/m1/keyboard.json index 7a7d1308ce..1551b2a113 100644 --- a/keyboards/monsgeek/m1/keyboard.json +++ b/keyboards/monsgeek/m1/keyboard.json @@ -3,22 +3,20 @@ "manufacturer": "MonsGeek", "maintainer": "jonylee@hfd", "usb": { + "force_nkro": true, "vid": "0xFFFE", "pid": "0x0005", "device_version": "1.1.0", "suspend_wakeup_delay": 400 }, - "host": { - "default": { - "nkro": true - } - }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", "features": { "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "encoder": true, "rgb_matrix": true diff --git a/keyboards/monsgeek/m1/keymaps/default/keymap.c b/keyboards/monsgeek/m1/keymaps/default/keymap.c index df13a0c953..a0929d083f 100644 --- a/keyboards/monsgeek/m1/keymaps/default/keymap.c +++ b/keyboards/monsgeek/m1/keymaps/default/keymap.c @@ -48,12 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______,MO(WIN_FN),_______, KC_A, KC_S, KC_D), [WIN_FN] = LAYOUT_all( /* WASD/↑←↓→ */ - _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, - _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, PDF(MAC_B),KC_PSCR,_______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_NEXT, RM_HUEU, _______, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), [MAC_B] = LAYOUT_all( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, @@ -72,12 +72,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT_all( /* FN */ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, - _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, PDF(WIN_B),KC_PSCR,_______, _______, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_NEXT, RM_HUEU, _______, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU) + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) }; @@ -86,10 +86,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [WIN_FN] = { ENCODER_CCW_CW(RM_VALU, RM_VALD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }, [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [MAC_FN] = { ENCODER_CCW_CW(RM_VALU, RM_VALD) } + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) } }; #endif diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index 6466b55412..006eb66d7f 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -15,7 +15,7 @@ */ #include "quantum.h" -// clang-format off + #ifdef RGB_MATRIX_ENABLE const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { /* Refer to SNLED27351 manual for these locations @@ -165,14 +165,35 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } #endif -// clang-format on +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + layer_state_set(1<event.pressed) { + set_single_persistent_default_layer(MAC_B); + layer_state_set(1<event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/monsgeek/m2/config.h b/keyboards/monsgeek/m2/config.h deleted file mode 100644 index 402c3e016e..0000000000 --- a/keyboards/monsgeek/m2/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2023 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* LED Indicators */ -#define LED_WIN_LOCK_PIN C11 - -/* SPI Config for spi flash*/ -#define SPI_DRIVER SPIDQ -#define SPI_SCK_PIN B3 -#define SPI_MOSI_PIN B5 -#define SPI_MISO_PIN B4 -#define SPI_MOSI_PAL_MODE 5 - -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 - -/* I2C Config for LED Driver */ -#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND -#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO -#define I2C1_CLOCK_SPEED 400000 /* 400000 */ -#define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m2/halconf.h b/keyboards/monsgeek/m2/halconf.h deleted file mode 100644 index b8ebdb3369..0000000000 --- a/keyboards/monsgeek/m2/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright (C) 2023 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/monsgeek/m2/keyboard.json b/keyboards/monsgeek/m2/keyboard.json deleted file mode 100644 index be2fc7358a..0000000000 --- a/keyboards/monsgeek/m2/keyboard.json +++ /dev/null @@ -1,279 +0,0 @@ -{ - "manufacturer": "MonsGeek", - "keyboard_name": "M2", - "maintainer": "jonylee@hfd", - "bootloader": "wb32-dfu", - "diode_direction": "ROW2COL", - "dynamic_keymap": { - "layer_count": 6 - }, - "eeprom": { - "driver": "wear_leveling", - "wear_leveling": { - "backing_size": 8192, - "driver": "spi_flash" - } - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "host": { - "default": { - "nkro": true - } - }, - "indicators": { - "caps_lock": "A15", - "num_lock": "C10" - }, - "matrix_pins": { - "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14"], - "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] - }, - "processor": "WB32FQ95", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgb_matrix": { - "animations": { - "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, - "dual_beacon": true, - "multisplash": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "raindrops": true, - "solid_reactive": true, - "solid_reactive_cross": true, - "solid_reactive_simple": true, - "typing_heatmap": true - }, - "driver": "snled27351", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 13, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 79, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 92, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 105, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 118, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 131, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 158, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 171, "y": 0, "flags": 1}, - {"matrix": [0, 17], "x": 184, "y": 0, "flags": 1}, - {"matrix": [0, 18], "x": 197, "y": 0, "flags": 1}, - {"matrix": [0, 19], "x": 210, "y": 0, "flags": 1}, - {"matrix": [0, 20], "x": 224, "y": 0, "flags": 1}, - {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, - {"matrix": [1, 1], "x": 13, "y": 12, "flags": 4}, - {"matrix": [1, 2], "x": 26, "y": 12, "flags": 4}, - {"matrix": [1, 3], "x": 39, "y": 12, "flags": 4}, - {"matrix": [1, 4], "x": 52, "y": 12, "flags": 4}, - {"matrix": [1, 5], "x": 65, "y": 12, "flags": 4}, - {"matrix": [1, 6], "x": 79, "y": 12, "flags": 4}, - {"matrix": [1, 7], "x": 92, "y": 12, "flags": 4}, - {"matrix": [1, 8], "x": 105, "y": 12, "flags": 4}, - {"matrix": [1, 9], "x": 118, "y": 12, "flags": 4}, - {"matrix": [1, 10], "x": 131, "y": 12, "flags": 4}, - {"matrix": [1, 11], "x": 144, "y": 12, "flags": 4}, - {"matrix": [1, 12], "x": 158, "y": 12, "flags": 4}, - {"matrix": [1, 13], "x": 171, "y": 12, "flags": 1}, - {"matrix": [1, 17], "x": 184, "y": 12, "flags": 4}, - {"matrix": [1, 18], "x": 197, "y": 12, "flags": 4}, - {"matrix": [1, 19], "x": 210, "y": 12, "flags": 4}, - {"matrix": [1, 20], "x": 224, "y": 12, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 25, "flags": 1}, - {"matrix": [2, 1], "x": 13, "y": 25, "flags": 4}, - {"matrix": [2, 2], "x": 26, "y": 25, "flags": 4}, - {"matrix": [2, 3], "x": 39, "y": 25, "flags": 4}, - {"matrix": [2, 4], "x": 52, "y": 25, "flags": 4}, - {"matrix": [2, 5], "x": 65, "y": 25, "flags": 4}, - {"matrix": [2, 6], "x": 79, "y": 25, "flags": 4}, - {"matrix": [2, 7], "x": 92, "y": 25, "flags": 4}, - {"matrix": [2, 8], "x": 105, "y": 25, "flags": 4}, - {"matrix": [2, 9], "x": 118, "y": 25, "flags": 4}, - {"matrix": [2, 10], "x": 131, "y": 25, "flags": 4}, - {"matrix": [2, 11], "x": 144, "y": 25, "flags": 4}, - {"matrix": [2, 12], "x": 158, "y": 25, "flags": 4}, - {"matrix": [2, 13], "x": 171, "y": 25, "flags": 1}, - {"matrix": [2, 17], "x": 184, "y": 25, "flags": 4}, - {"matrix": [2, 18], "x": 197, "y": 25, "flags": 4}, - {"matrix": [2, 19], "x": 210, "y": 25, "flags": 4}, - {"matrix": [2, 20], "x": 224, "y": 25, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 38, "flags": 1}, - {"matrix": [3, 1], "x": 13, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 26, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 39, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 52, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 65, "y": 38, "flags": 4}, - {"matrix": [3, 6], "x": 79, "y": 38, "flags": 4}, - {"matrix": [3, 7], "x": 92, "y": 38, "flags": 4}, - {"matrix": [3, 8], "x": 105, "y": 38, "flags": 4}, - {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, - {"matrix": [3, 10], "x": 131, "y": 38, "flags": 4}, - {"matrix": [3, 11], "x": 144, "y": 38, "flags": 4}, - {"matrix": [3, 13], "x": 163, "y": 38, "flags": 1}, - {"matrix": [3, 17], "x": 184, "y": 38, "flags": 4}, - {"matrix": [3, 18], "x": 197, "y": 38, "flags": 4}, - {"matrix": [3, 19], "x": 210, "y": 38, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, - {"matrix": [4, 1], "x": 26, "y": 51, "flags": 4}, - {"matrix": [4, 2], "x": 39, "y": 51, "flags": 4}, - {"matrix": [4, 3], "x": 52, "y": 51, "flags": 4}, - {"matrix": [4, 4], "x": 65, "y": 51, "flags": 4}, - {"matrix": [4, 5], "x": 79, "y": 51, "flags": 4}, - {"matrix": [4, 6], "x": 92, "y": 51, "flags": 4}, - {"matrix": [4, 7], "x": 105, "y": 51, "flags": 4}, - {"matrix": [4, 8], "x": 118, "y": 51, "flags": 4}, - {"matrix": [4, 9], "x": 131, "y": 51, "flags": 4}, - {"matrix": [4, 10], "x": 144, "y": 51, "flags": 4}, - {"matrix": [4, 13], "x": 158, "y": 51, "flags": 1}, - {"matrix": [4, 15], "x": 171, "y": 51, "flags": 1}, - {"matrix": [4, 17], "x": 184, "y": 51, "flags": 4}, - {"matrix": [4, 18], "x": 197, "y": 51, "flags": 4}, - {"matrix": [4, 19], "x": 210, "y": 51, "flags": 4}, - {"matrix": [4, 20], "x": 224, "y": 51, "flags": 1}, - {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, - {"matrix": [5, 2], "x": 37, "y": 64, "flags": 1}, - {"matrix": [5, 5], "x": 92, "y": 64, "flags": 4}, - {"matrix": [5, 9], "x": 130, "y": 64, "flags": 1}, - {"matrix": [5, 10], "x": 145, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 158, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 171, "y": 64, "flags": 1}, - {"matrix": [5, 16], "x": 184, "y": 64, "flags": 1}, - {"matrix": [5, 18], "x": 197, "y": 64, "flags": 4}, - {"matrix": [5, 19], "x": 210, "y": 64, "flags": 4} - ], - "max_brightness": 200, - "sleep": true, - "val_steps": 20 - }, - "usb": { - "device_version": "1.0.4", - "pid": "0x0008", - "suspend_wakeup_delay": 400, - "vid": "0xFFFE" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, - {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, - {"label": "Delete", "matrix": [0, 13], "x": 14, "y": 0}, - {"label": "PrtSc", "matrix": [0, 17], "x": 15.5, "y": 0}, - {"label": "Home", "matrix": [0, 18], "x": 16.5, "y": 0}, - {"label": "Pgup", "matrix": [0, 19], "x": 17.5, "y": 0}, - {"label": "Pgdn", "matrix": [0, 20], "x": 18.5, "y": 0}, - {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Bksp", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"label": "Numlock", "matrix": [1, 17], "x": 15.5, "y": 1.25}, - {"label": "/", "matrix": [1, 18], "x": 16.5, "y": 1.25}, - {"label": "*", "matrix": [1, 19], "x": 17.5, "y": 1.25}, - {"label": "-", "matrix": [1, 20], "x": 18.5, "y": 1.25}, - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"label": "7", "matrix": [2, 17], "x": 15.5, "y": 2.25}, - {"label": "8", "matrix": [2, 18], "x": 16.5, "y": 2.25}, - {"label": "9", "matrix": [2, 19], "x": 17.5, "y": 2.25}, - {"label": "+", "matrix": [2, 20], "x": 18.5, "y": 2.25, "h": 2}, - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"label": "4", "matrix": [3, 17], "x": 15.5, "y": 3.25}, - {"label": "5", "matrix": [3, 18], "x": 16.5, "y": 3.25}, - {"label": "6", "matrix": [3, 19], "x": 17.5, "y": 3.25}, - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25}, - {"label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Up", "matrix": [4, 15], "x": 14.25, "y": 4.5}, - {"label": "1", "matrix": [4, 17], "x": 15.5, "y": 4.25}, - {"label": "2", "matrix": [4, 18], "x": 16.5, "y": 4.25}, - {"label": "3", "matrix": [4, 19], "x": 17.5, "y": 4.25}, - {"label": "Enter", "matrix": [4, 20], "x": 18.5, "y": 4.25, "h": 2}, - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, - {"label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.5}, - {"label": "Fn", "matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.5}, - {"label": "Left", "matrix": [5, 11], "x": 13.25, "y": 5.5}, - {"label": "Down", "matrix": [5, 15], "x": 14.25, "y": 5.5}, - {"label": "Right", "matrix": [5, 16], "x": 15.25, "y": 5.5}, - {"label": "0", "matrix": [5, 18], "x": 16.5, "y": 5.25}, - {"label": ".", "matrix": [5, 19], "x": 17.5, "y": 5.25} - ] - } - } -} diff --git a/keyboards/monsgeek/m2/keymaps/default/keymap.c b/keyboards/monsgeek/m2/keymaps/default/keymap.c deleted file mode 100644 index 5515c3e6d3..0000000000 --- a/keyboards/monsgeek/m2/keymaps/default/keymap.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) 2023 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off -enum __layers { - WIN_B, - WIN_WASD, - WIN_FN, - MAC_B, - MAC_WASD, - MAC_FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [WIN_B] = LAYOUT( /* Base */ - 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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_LEFT, KC_DOWN,KC_RGHT, KC_P0, KC_PDOT), - - [WIN_WASD] = LAYOUT( /* WASD */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(WIN_FN), KC_A, KC_S, KC_D, _______, _______), - - - [WIN_FN] = LAYOUT( /* FN */ - _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, - _______, _______, TG(WIN_WASD),_______,_______,_______,_______,_______, KC_INS, DF(MAC_B),KC_PSCR, _______, _______, RM_NEXT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______), - - [MAC_B] = LAYOUT( /* Base */ - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), - - [MAC_WASD] = LAYOUT( /* WASD */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO(MAC_FN), KC_A, KC_S, KC_D, _______, _______), - - [MAC_FN] = LAYOUT( /* FN */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, - _______, _______, TG(MAC_WASD),_______,_______,_______,_______,_______, KC_INS, DF(WIN_B),KC_PSCR, _______, _______, RM_NEXT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______) - -}; diff --git a/keyboards/monsgeek/m2/m2.c b/keyboards/monsgeek/m2/m2.c deleted file mode 100644 index 289c4b4e65..0000000000 --- a/keyboards/monsgeek/m2/m2.c +++ /dev/null @@ -1,142 +0,0 @@ -/* Copyright (C) 2023 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {1, CB1_CA1, CB2_CA1, CB3_CA1}, - {1, CB1_CA2, CB2_CA2, CB3_CA2}, - {1, CB1_CA3, CB2_CA3, CB3_CA3}, - {1, CB1_CA4, CB2_CA4, CB3_CA4}, - {1, CB1_CA5, CB2_CA5, CB3_CA5}, - {1, CB1_CA6, CB2_CA6, CB3_CA6}, - {1, CB1_CA7, CB2_CA7, CB3_CA7}, - {1, CB1_CA8, CB2_CA8, CB3_CA8}, - {1, CB1_CA9, CB2_CA9, CB3_CA9}, - {1, CB1_CA10, CB2_CA10, CB3_CA10}, - {1, CB1_CA11, CB2_CA11, CB3_CA11}, - {1, CB1_CA12, CB2_CA12, CB3_CA12}, - {1, CB1_CA13, CB2_CA13, CB3_CA13}, - {1, CB1_CA14, CB2_CA14, CB3_CA14}, - {1, CB4_CA11, CB5_CA11, CB6_CA11}, - {1, CB4_CA12, CB5_CA12, CB6_CA12}, - {1, CB4_CA13, CB5_CA13, CB6_CA13}, - {1, CB4_CA14, CB5_CA14, CB6_CA14}, - - {0, CB1_CA1, CB2_CA1, CB3_CA1}, - {0, CB1_CA2, CB2_CA2, CB3_CA2}, - {0, CB1_CA3, CB2_CA3, CB3_CA3}, - {0, CB1_CA4, CB2_CA4, CB3_CA4}, - {0, CB1_CA5, CB2_CA5, CB3_CA5}, - {0, CB1_CA6, CB2_CA6, CB3_CA6}, - {0, CB1_CA7, CB2_CA7, CB3_CA7}, - {0, CB1_CA8, CB2_CA8, CB3_CA8}, - {0, CB1_CA9, CB2_CA9, CB3_CA9}, - {0, CB1_CA10, CB2_CA10, CB3_CA10}, - {0, CB1_CA11, CB2_CA11, CB3_CA11}, - {0, CB1_CA12, CB2_CA12, CB3_CA12}, - {0, CB1_CA13, CB2_CA13, CB3_CA13}, - {0, CB1_CA14, CB2_CA14, CB3_CA14}, - {1, CB4_CA4, CB5_CA4, CB6_CA4}, - {1, CB4_CA5, CB5_CA5, CB6_CA5}, - {1, CB4_CA6, CB5_CA6, CB6_CA6}, - {1, CB4_CA7, CB5_CA7, CB6_CA7}, - - {0, CB4_CA1, CB5_CA1, CB6_CA1}, - {0, CB4_CA2, CB5_CA2, CB6_CA2}, - {0, CB4_CA3, CB5_CA3, CB6_CA3}, - {0, CB4_CA4, CB5_CA4, CB6_CA4}, - {0, CB4_CA5, CB5_CA5, CB6_CA5}, - {0, CB4_CA6, CB5_CA6, CB6_CA6}, - {0, CB4_CA7, CB5_CA7, CB6_CA7}, - {0, CB4_CA8, CB5_CA8, CB6_CA8}, - {0, CB4_CA9, CB5_CA9, CB6_CA9}, - {0, CB4_CA10, CB5_CA10, CB6_CA10}, - {0, CB4_CA11, CB5_CA11, CB6_CA11}, - {0, CB4_CA12, CB5_CA12, CB6_CA12}, - {0, CB4_CA13, CB5_CA13, CB6_CA13}, - {0, CB4_CA14, CB5_CA14, CB6_CA14}, - {1, CB4_CA8, CB5_CA8, CB6_CA8}, - {1, CB4_CA9, CB5_CA9, CB6_CA9}, - {1, CB4_CA10, CB5_CA10, CB6_CA10}, - {1, CB7_CA7, CB8_CA7, CB9_CA7}, - - {0, CB7_CA1, CB8_CA1, CB9_CA1}, - {0, CB7_CA2, CB8_CA2, CB9_CA2}, - {0, CB7_CA3, CB8_CA3, CB9_CA3}, - {0, CB7_CA4, CB8_CA4, CB9_CA4}, - {0, CB7_CA5, CB8_CA5, CB9_CA5}, - {0, CB7_CA6, CB8_CA6, CB9_CA6}, - {0, CB7_CA7, CB8_CA7, CB9_CA7}, - {0, CB7_CA8, CB8_CA8, CB9_CA8}, - {0, CB7_CA9, CB8_CA9, CB9_CA9}, - {0, CB7_CA10, CB8_CA10, CB9_CA10}, - {0, CB7_CA11, CB8_CA11, CB9_CA11}, - {0, CB7_CA12, CB8_CA12, CB9_CA12}, - {0, CB7_CA13, CB8_CA13, CB9_CA13}, - {1, CB7_CA4, CB8_CA4, CB9_CA4}, - {1, CB7_CA5, CB8_CA5, CB9_CA5}, - {1, CB7_CA6, CB8_CA6, CB9_CA6}, - - {0, CB10_CA1, CB11_CA1, CB12_CA1}, - {0, CB10_CA2, CB11_CA2, CB12_CA2}, - {0, CB10_CA3, CB11_CA3, CB12_CA3}, - {0, CB10_CA4, CB11_CA4, CB12_CA4}, - {0, CB10_CA5, CB11_CA5, CB12_CA5}, - {0, CB10_CA6, CB11_CA6, CB12_CA6}, - {0, CB10_CA7, CB11_CA7, CB12_CA7}, - {0, CB10_CA8, CB11_CA8, CB12_CA8}, - {0, CB10_CA9, CB11_CA9, CB12_CA9}, - {0, CB10_CA10, CB11_CA10, CB12_CA10}, - {0, CB10_CA11, CB11_CA11, CB12_CA11}, - {0, CB10_CA12, CB11_CA12, CB12_CA12}, - {1, CB10_CA4, CB11_CA4, CB12_CA4}, - {1, CB10_CA7, CB11_CA7, CB12_CA7}, - {1, CB10_CA8, CB11_CA8, CB12_CA8}, - {1, CB10_CA9, CB11_CA9, CB12_CA9}, - {1, CB10_CA10, CB11_CA10, CB12_CA10}, - - {0, CB10_CA13, CB11_CA13, CB12_CA13}, - {0, CB10_CA14, CB11_CA14, CB12_CA14}, - {0, CB10_CA15, CB11_CA15, CB12_CA15}, - {0, CB10_CA16, CB11_CA16, CB12_CA16}, - {0, CB7_CA14, CB8_CA14, CB9_CA14}, - {0, CB7_CA15, CB8_CA15, CB9_CA15}, - {0, CB7_CA16, CB8_CA16, CB9_CA16}, - {1, CB10_CA2, CB11_CA2, CB12_CA2}, - {1, CB10_CA3, CB11_CA3, CB12_CA3}, - {1, CB10_CA5, CB11_CA5, CB12_CA5}, - {1, CB10_CA6, CB11_CA6, CB12_CA6}, -}; -#endif //RGB_MATRIX_ENABLE - -void keyboard_pre_init_kb(void) { - gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock - gpio_write_pin_low(LED_WIN_LOCK_PIN); - - keyboard_pre_init_user(); -} - -void housekeeping_task_kb(void) { - gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); -} diff --git a/keyboards/monsgeek/m2/mcuconf.h b/keyboards/monsgeek/m2/mcuconf.h deleted file mode 100644 index e2884f3828..0000000000 --- a/keyboards/monsgeek/m2/mcuconf.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (C) 2023 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef WB32_SPI_USE_QSPI -#define WB32_SPI_USE_QSPI TRUE - -#undef WB32_I2C_USE_I2C1 -#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/monsgeek/m2/readme.md b/keyboards/monsgeek/m2/readme.md deleted file mode 100644 index 886103316f..0000000000 --- a/keyboards/monsgeek/m2/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# MonsGeek M2 -![M2](https://i.imgur.com/kv9ChJn.png) - -A customizable 95% keyboard - -* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) -* Hardware Supported: MonsGeek M2 PCB -* Hardware Availability: [monsgeek](https://www.monsgeek.com/product/m2/) - -Make example for this keyboard (after setting up your build environment): - - make monsgeek/m2:default - -Flashing example for this keyboard: - - make monsgeek/m2: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 2 ways: - -* **Bootmagic reset**: Hold down the top left key (commonly programmed as *Esc*) while plugging in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/monsgeek/m3/halconf.h b/keyboards/monsgeek/m3/halconf.h index b8ebdb3369..55bfe5c977 100644 --- a/keyboards/monsgeek/m3/halconf.h +++ b/keyboards/monsgeek/m3/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/monsgeek/m3/keyboard.json b/keyboards/monsgeek/m3/keyboard.json index f3d318176b..cb7c3abf21 100644 --- a/keyboards/monsgeek/m3/keyboard.json +++ b/keyboards/monsgeek/m3/keyboard.json @@ -6,12 +6,8 @@ "vid": "0xFFFE", "pid": "0x0009", "device_version": "1.0.5", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -25,6 +21,8 @@ "features": { "bootmagic": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/monsgeek/m3/keymaps/default/keymap.c b/keyboards/monsgeek/m3/keymaps/default/keymap.c index c92d31da39..d075b6067f 100644 --- a/keyboards/monsgeek/m3/keymaps/default/keymap.c +++ b/keyboards/monsgeek/m3/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, PDF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), [MAC_B] = LAYOUT_tkl_ansi( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, PDF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) }; // clang-format on diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c index 0b26ef90a6..1752ddc3b3 100644 --- a/keyboards/monsgeek/m3/m3.c +++ b/keyboards/monsgeek/m3/m3.c @@ -126,14 +126,22 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { #endif // RGB_MATRIX_ENABLE // clang-format on +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN, +}; -void keyboard_post_init_kb(void) { +void matrix_init_kb(void) { gpio_set_pin_output(LED_MAC_OS_PIN); // LDE2 MAC\WIN gpio_write_pin_low(LED_MAC_OS_PIN); gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock gpio_write_pin_low(LED_WIN_LOCK_PIN); - keyboard_post_init_user(); + matrix_init_user(); } void housekeeping_task_kb(void){ @@ -146,7 +154,24 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { return false; } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + } + return false; + case DF(MAC_B): + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_B); + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + case GU_TOGG: + if (record->event.pressed) { + gpio_write_pin(LED_WIN_LOCK_PIN, !keymap_config.no_gui); + } + return true; + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/monsgeek/m5/halconf.h b/keyboards/monsgeek/m5/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/monsgeek/m5/halconf.h +++ b/keyboards/monsgeek/m5/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/monsgeek/m5/keyboard.json b/keyboards/monsgeek/m5/keyboard.json index f439830f8a..b9ef0099bc 100644 --- a/keyboards/monsgeek/m5/keyboard.json +++ b/keyboards/monsgeek/m5/keyboard.json @@ -6,12 +6,8 @@ "vid": "0xFFFE", "pid": "0x000A", "device_version": "1.0.4", - "suspend_wakeup_delay": 400 - }, - "host": { - "default": { - "nkro": true - } + "suspend_wakeup_delay": 400, + "force_nkro": true }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -19,6 +15,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, @@ -51,16 +49,7 @@ "driver": "snled27351", "max_brightness": 180, "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, "cycle_all": true, "cycle_left_right": true, "cycle_up_down": true, @@ -71,29 +60,12 @@ "cycle_spiral": true, "dual_beacon": true, "rainbow_beacon": true, - "rainbow_pinwheels": true, "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, "typing_heatmap": true, - "digital_rain": true, "solid_reactive_simple": true, "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true + "multisplash": true }, "layout":[ { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, diff --git a/keyboards/monsgeek/m5/keymaps/default/keymap.c b/keyboards/monsgeek/m5/keymaps/default/keymap.c index bb10cb9f82..6fe98a89d6 100644 --- a/keyboards/monsgeek/m5/keymaps/default/keymap.c +++ b/keyboards/monsgeek/m5/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(WIN_WASD),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_WASD),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(MAC_WASD),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_WASD),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) }; // clang-format on diff --git a/keyboards/monsgeek/m5/m5.c b/keyboards/monsgeek/m5/m5.c index 7a4d7f2503..5113e322a5 100644 --- a/keyboards/monsgeek/m5/m5.c +++ b/keyboards/monsgeek/m5/m5.c @@ -151,10 +151,14 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { void keyboard_pre_init_kb(void) { gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock gpio_write_pin_low(LED_WIN_LOCK_PIN); - keyboard_pre_init_user(); } -void housekeeping_task_kb(void){ - gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + led_update_ports(led_state); + gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); + } + return res; } diff --git a/keyboards/monsgeek/m6/halconf.h b/keyboards/monsgeek/m6/halconf.h index 2ddb9c35d8..2f64e65393 100644 --- a/keyboards/monsgeek/m6/halconf.h +++ b/keyboards/monsgeek/m6/halconf.h @@ -17,5 +17,7 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/monsgeek/m6/keyboard.json b/keyboards/monsgeek/m6/keyboard.json index bcc14da2e4..12d7def4c7 100644 --- a/keyboards/monsgeek/m6/keyboard.json +++ b/keyboards/monsgeek/m6/keyboard.json @@ -3,22 +3,20 @@ "manufacturer": "MonsGeek", "maintainer": "jonylee@hfd", "usb": { + "force_nkro": true, "vid": "0xFFFE", "pid": "0x0011", "device_version": "1.0.0", "suspend_wakeup_delay": 400 }, - "host": { - "default": { - "nkro": true - } - }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", "features": { "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/monsgeek/m6/keymaps/default/keymap.c b/keyboards/monsgeek/m6/keymaps/default/keymap.c index 976c84f117..8a03db1790 100644 --- a/keyboards/monsgeek/m6/keymaps/default/keymap.c +++ b/keyboards/monsgeek/m6/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), [WIN_FN] = LAYOUT( - 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, _______, RM_NEXT, + 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, _______, RGB_MOD, _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, _______, KC_HOME, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_SPDD, RM_SPDU, _______, RM_HUEU, KC_END, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, _______, _______, GU_TOGG, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, GU_TOGG, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME, @@ -67,10 +67,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT( /* FN */ - KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, _______, RM_NEXT, + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, _______, RGB_MOD, _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, _______, KC_HOME, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_SPDD, RM_SPDU, _______, RM_HUEU, KC_END, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, - _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), }; diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c index 180c370031..ef7fc92015 100644 --- a/keyboards/monsgeek/m6/m6.c +++ b/keyboards/monsgeek/m6/m6.c @@ -167,7 +167,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) } switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) diff --git a/keyboards/monstargear/xo87/rgb/keyboard.json b/keyboards/monstargear/xo87/rgb/keyboard.json index 9ee83deb00..5571b91990 100644 --- a/keyboards/monstargear/xo87/rgb/keyboard.json +++ b/keyboards/monstargear/xo87/rgb/keyboard.json @@ -67,6 +67,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c b/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c index 175b6c1fab..8e5ab5b617 100644 --- a/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c +++ b/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/monstargear/xo87/solderable/keyboard.json b/keyboards/monstargear/xo87/solderable/keyboard.json index c825b22ac1..a230649b49 100644 --- a/keyboards/monstargear/xo87/solderable/keyboard.json +++ b/keyboards/monstargear/xo87/solderable/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c index f6f7573e19..ba3079afda 100644 --- a/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c +++ b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_UP, diff --git a/keyboards/montsinger/palmetto/keyboard.json b/keyboards/montsinger/palmetto/keyboard.json index b44944d39f..9ff29ba893 100755 --- a/keyboards/montsinger/palmetto/keyboard.json +++ b/keyboards/montsinger/palmetto/keyboard.json @@ -25,16 +25,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb", "60_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -451,7 +447,7 @@ {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c index 3eff1ad041..9b2369ce31 100644 --- a/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c @@ -15,14 +15,16 @@ enum layer_names _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -138,3 +140,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} diff --git a/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c index 25d9476912..d430a7877f 100644 --- a/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c @@ -14,14 +14,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -137,3 +139,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} diff --git a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c index dd2fedd987..aadbde3672 100644 --- a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c @@ -14,14 +14,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_all( @@ -70,6 +72,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { diff --git a/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c index dd2fedd987..aadbde3672 100644 --- a/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c @@ -14,14 +14,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_all( @@ -70,6 +72,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { diff --git a/keyboards/montsinger/rebound/rules.mk b/keyboards/montsinger/rebound/rules.mk new file mode 100644 index 0000000000..d277d184e1 --- /dev/null +++ b/keyboards/montsinger/rebound/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = montsinger/rebound/rev1 diff --git a/keyboards/montsinger/rewind/keyboard.json b/keyboards/montsinger/rewind/keyboard.json index 46468d4c67..ddb6ab6496 100644 --- a/keyboards/montsinger/rewind/keyboard.json +++ b/keyboards/montsinger/rewind/keyboard.json @@ -27,7 +27,8 @@ "rows": ["B5", "B4", "D2", "D3", "B2"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_5x10": { "layout": [ diff --git a/keyboards/moon/config.h b/keyboards/moon/config.h index 1e95dc2b8f..ca4c770a3b 100644 --- a/keyboards/moon/config.h +++ b/keyboards/moon/config.h @@ -1,7 +1,23 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later +/* +Copyright 2019 Mathias Andersson + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + #pragma once -// key matrix size + +/* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 11 diff --git a/keyboards/moon/keyboard.json b/keyboards/moon/keyboard.json index ea3d34b650..76d2c08f7e 100644 --- a/keyboards/moon/keyboard.json +++ b/keyboards/moon/keyboard.json @@ -9,11 +9,13 @@ "device_version": "0.0.1" }, "features": { - "backlight": true, - "bootmagic": true, - "extrakey": true, + "bootmagic": false, "mousekey": true, - "nkro": true + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true }, "qmk": { "locking": { diff --git a/keyboards/moon/keymaps/default/keymap.c b/keyboards/moon/keymaps/default/keymap.c index 73dc65dc9a..fd1956a4dc 100644 --- a/keyboards/moon/keymaps/default/keymap.c +++ b/keyboards/moon/keymaps/default/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H // clang-format off diff --git a/keyboards/moon/keymaps/default_tkl_ansi/keymap.c b/keyboards/moon/keymaps/default_tkl_ansi/keymap.c index ee22951fcd..b0244eccee 100644 --- a/keyboards/moon/keymaps/default_tkl_ansi/keymap.c +++ b/keyboards/moon/keymaps/default_tkl_ansi/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H // clang-format off diff --git a/keyboards/moon/keymaps/default_tkl_ansi_wkl/keymap.c b/keyboards/moon/keymaps/default_tkl_ansi_wkl/keymap.c index 1b41519cc9..7fd641a93f 100644 --- a/keyboards/moon/keymaps/default_tkl_ansi_wkl/keymap.c +++ b/keyboards/moon/keymaps/default_tkl_ansi_wkl/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H // clang-format off diff --git a/keyboards/moon/keymaps/default_tkl_iso/keymap.c b/keyboards/moon/keymaps/default_tkl_iso/keymap.c index 316ed8d5ba..b4d9a9b60c 100644 --- a/keyboards/moon/keymaps/default_tkl_iso/keymap.c +++ b/keyboards/moon/keymaps/default_tkl_iso/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H // clang-format off diff --git a/keyboards/moon/keymaps/default_tkl_iso_wkl/keymap.c b/keyboards/moon/keymaps/default_tkl_iso_wkl/keymap.c index 6637515e3e..1224d9f02e 100644 --- a/keyboards/moon/keymaps/default_tkl_iso_wkl/keymap.c +++ b/keyboards/moon/keymaps/default_tkl_iso_wkl/keymap.c @@ -1,5 +1,3 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H // clang-format off diff --git a/keyboards/moon/matrix.c b/keyboards/moon/matrix.c index 0f72cf3740..1cb9590e9f 100644 --- a/keyboards/moon/matrix.c +++ b/keyboards/moon/matrix.c @@ -1,8 +1,26 @@ -// Copyright 2019 Mathias Andersson -// SPDX-License-Identifier: GPL-2.0-or-later -#include "matrix.h" -#include "pca9555.h" +/* +Copyright 2012-2019 Jun Wako, Jack Humbert, Yiancar, Mathias Andersson + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "debounce.h" +#include "pca9555.h" /* * IC1 (PCA9555) IC2 (PCA9555) @@ -52,6 +70,56 @@ #define PORT1_COLS_MASK 0b00111111 #define COLS_MASK 0b0000011111111111 +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +/* matrix state(1:on, 0:off) */ +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } + +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } + +inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } + +inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } + +void matrix_print(void) { + print_matrix_header(); + + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + print_hex8(row); + print(": "); + print_matrix_row(row); + print("\n"); + } +} + +static void init_i2c(void) { + pca9555_init(IC1); + pca9555_init(IC2); +} + static void init_pins(void) { // init cols - IC2 port0 & IC2 port1 input pca9555_set_config(IC2, PCA9555_PORT0, ALL_INPUT); @@ -90,28 +158,45 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Clear data in matrix row current_matrix[current_row] = 0; - // Select row and wait for row selection to stabilize + // Select row and wait for row selecton to stabilize select_row(current_row); wait_us(30); - current_matrix[current_row] = read_cols(); + current_matrix[current_row] |= read_cols(); // No need to unselect as `select_row` sets all the pins. return (last_row_value != current_matrix[current_row]); } -void matrix_init_custom(void) { - pca9555_init(IC1); - pca9555_init(IC2); +void matrix_init(void) { + // initialize i2c + init_i2c(); + // initialize key pins init_pins(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + raw_matrix[i] = 0; + matrix[i] = 0; + } + + debounce_init(MATRIX_ROWS); + + matrix_init_kb(); } -bool matrix_scan_custom(matrix_row_t current_matrix[]) { +uint8_t matrix_scan(void) { bool changed = false; + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(current_matrix, current_row); + changed |= read_cols_on_row(raw_matrix, current_row); } - return changed; + + debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + + matrix_scan_kb(); + + return (uint8_t)changed; } diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk index e11c65db02..aee52dfee1 100644 --- a/keyboards/moon/rules.mk +++ b/keyboards/moon/rules.mk @@ -1,5 +1,5 @@ # custom matrix setup -CUSTOM_MATRIX = lite +CUSTOM_MATRIX = yes VPATH += drivers/gpio SRC += pca9555.c matrix.c diff --git a/keyboards/moondrop/dash75/info.json b/keyboards/moondrop/dash75/info.json index 39772dc689..59f956815e 100644 --- a/keyboards/moondrop/dash75/info.json +++ b/keyboards/moondrop/dash75/info.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/morizon/keyboard.json b/keyboards/morizon/keyboard.json index 1b3dba08d4..73097dd113 100644 --- a/keyboards/morizon/keyboard.json +++ b/keyboards/morizon/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -26,7 +27,8 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mothwing/keyboard.json b/keyboards/mothwing/keyboard.json index 5a584c7cb2..c52d9df00e 100644 --- a/keyboards/mothwing/keyboard.json +++ b/keyboards/mothwing/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "mothwing", "manufacturer": "Luana co.ltd.", + "url": "", "maintainer": "tan-t", "usb": { "vid": "0x4D77", diff --git a/keyboards/mountainblocks/mb17/keyboard.json b/keyboards/mountainblocks/mb17/keyboard.json index d8ef466def..9e9bb98406 100644 --- a/keyboards/mountainblocks/mb17/keyboard.json +++ b/keyboards/mountainblocks/mb17/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MB17", "manufacturer": "Mountainblocks", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D42", @@ -26,7 +27,8 @@ "rows": ["F4", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json deleted file mode 100644 index ba7cfdd2c3..0000000000 --- a/keyboards/mountainmechdesigns/teton_78/keyboard.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "manufacturer": "Bennett Balogh", - "keyboard_name": "teton_78", - "maintainer": "qmk", - "bootloader": "atmel-dfu", - "bootmagic": { - "matrix": [0, 2] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], - "rows": ["D0", "D1", "D2", "D3", "D5"] - }, - "processor": "atmega32u4", - "usb": { - "device_version": "1.0.0", - "pid": "0x3349", - "vid": "0x8A5B" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [0, 8], "x": 8.25, "y": 0}, - {"matrix": [0, 9], "x": 9.25, "y": 0}, - {"matrix": [0, 10], "x": 10.25, "y": 0}, - {"matrix": [0, 11], "x": 11.25, "y": 0}, - {"matrix": [0, 12], "x": 12.25, "y": 0}, - {"matrix": [0, 13], "x": 13.25, "y": 0}, - {"matrix": [0, 14], "x": 14.25, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0, "w": 2}, - {"matrix": [0, 16], "x": 17.5, "y": 0}, - {"matrix": [0, 17], "x": 18.5, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 10], "x": 10.75, "y": 1}, - {"matrix": [1, 11], "x": 11.75, "y": 1}, - {"matrix": [1, 12], "x": 12.75, "y": 1}, - {"matrix": [1, 13], "x": 13.75, "y": 1}, - {"matrix": [1, 14], "x": 14.75, "y": 1}, - {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 1.5}, - {"matrix": [1, 16], "x": 17.5, "y": 1}, - {"matrix": [1, 17], "x": 18.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"matrix": [2, 3], "x": 4, "y": 2}, - {"matrix": [2, 4], "x": 5, "y": 2}, - {"matrix": [2, 5], "x": 6, "y": 2}, - {"matrix": [2, 6], "x": 7, "y": 2}, - {"matrix": [2, 7], "x": 8, "y": 2}, - {"matrix": [2, 8], "x": 9, "y": 2}, - {"matrix": [2, 9], "x": 10, "y": 2}, - {"matrix": [2, 10], "x": 11, "y": 2}, - {"matrix": [2, 11], "x": 12, "y": 2}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, - {"matrix": [3, 3], "x": 4.5, "y": 3}, - {"matrix": [3, 4], "x": 5.5, "y": 3}, - {"matrix": [3, 5], "x": 6.5, "y": 3}, - {"matrix": [3, 6], "x": 7.5, "y": 3}, - {"matrix": [3, 7], "x": 8.5, "y": 3}, - {"matrix": [3, 8], "x": 9.5, "y": 3}, - {"matrix": [3, 9], "x": 10.5, "y": 3}, - {"matrix": [3, 10], "x": 11.5, "y": 3}, - {"matrix": [3, 11], "x": 12.5, "y": 3}, - {"matrix": [3, 12], "x": 13.5, "y": 3}, - {"matrix": [3, 13], "x": 14.5, "y": 3, "w": 2.75}, - {"matrix": [3, 16], "x": 17.5, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, - {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, - {"matrix": [4, 7], "x": 6, "y": 4, "w": 6.25}, - {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 14.75, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 16.5, "y": 4, "w": 1.25}, - {"matrix": [4, 16], "x": 17.5, "y": 4, "w": 1.25}, - {"matrix": [4, 17], "x": 18.5, "y": 4, "w": 1.25} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c b/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c deleted file mode 100644 index c4762d577d..0000000000 --- a/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2024 Bennett Balogh LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - - [0] = LAYOUT( - - KC_F1, KC_F6, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, - KC_F2, KC_F7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, - KC_F3, KC_F8, 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_F4, KC_F9, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) -}; diff --git a/keyboards/mountainmechdesigns/teton_78/readme.md b/keyboards/mountainmechdesigns/teton_78/readme.md deleted file mode 100644 index 40ef5c436b..0000000000 --- a/keyboards/mountainmechdesigns/teton_78/readme.md +++ /dev/null @@ -1,37 +0,0 @@ -# Teton 78 QMK Firmware - -## Introduction - -![Teton 78](https://i.imgur.com/MnASIrv.jpeg) - -This is the QMK firmware repository for the Teton78, a 68XT solder and hotswao keyboard designed by Mountain Mech Designs - Bennett Balogh. - -The Teton 78 has entered GB and sucessfully finalized in November 2024 The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=123275.0). -The sale page can be found [here](https://www.mountainmechdesigns.com/) -Discord link can be found [here](https://discord.gg/h9dMwRNfVy) - -## About - -* Keyboard Maintainer: [Bennett Balogh](https://github.com/AwesomeBalogh) -* Hardware Supported: Atmega32u4 -* Hardware Availability: N/A - -## How to compile - -After setting up your build environment, you can compile the Teton 78 default keymap by using: - - make mountainmechdesigns/teton_78:default - -Flash using - - make mountainmechdesigns/teton_78:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/ms_sculpt/keyboard.json b/keyboards/ms_sculpt/keyboard.json index 2193c6a870..5353a0df7e 100644 --- a/keyboards/ms_sculpt/keyboard.json +++ b/keyboards/ms_sculpt/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false @@ -20,6 +22,7 @@ "io_delay": 5 }, "debounce": 3, + "url": "", "usb": { "polling_interval": 1, "device_version": "1.0.0", diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json index b798df21dd..1b1745bc20 100644 --- a/keyboards/mss_studio/m63_rgb/keyboard.json +++ b/keyboards/mss_studio/m63_rgb/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "M63 RGB", "manufacturer": "Mss Studio", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x4D4B", "pid": "0x6063", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "ws2812": { "pin": "B15" @@ -65,6 +62,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c index 8a59f2ec9f..f6314f228b 100644 --- a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c @@ -101,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 */ [_FN] = LAYOUT_60_ansi_arrow( 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, KC_DEL, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, RM_HUEU, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, RGB_HUI, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; @@ -132,7 +132,7 @@ void keyboard_post_init_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -169,10 +169,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } bool rgb_matrix_indicators_user(void) { - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { if (host_keyboard_led_state().caps_lock) { diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json index 083afec8c7..eb1cabb305 100644 --- a/keyboards/mss_studio/m64_rgb/keyboard.json +++ b/keyboards/mss_studio/m64_rgb/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "M64 RGB", "manufacturer": "Mss Studio", + "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x4D4B", "pid": "0x6064", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "ws2812": { "pin": "B15" @@ -65,6 +62,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c index c3879b2b61..c37dcd8fb1 100644 --- a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c @@ -97,10 +97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 */ [_FN] = LAYOUT_64_ansi( 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, KC_DEL, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, RM_HUEU, RM_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, RGB_HUI, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; @@ -128,7 +128,7 @@ void keyboard_post_init_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -165,10 +165,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } bool rgb_matrix_indicators_user(void) { - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { if (host_keyboard_led_state().caps_lock) { diff --git a/keyboards/mt/blocked65/keyboard.json b/keyboards/mt/blocked65/keyboard.json index 0f66b9f9cc..9a0ce52043 100644 --- a/keyboards/mt/blocked65/keyboard.json +++ b/keyboards/mt/blocked65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Blocked65", "manufacturer": "Dou", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5746", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mt/mt40/keyboard.json b/keyboards/mt/mt40/keyboard.json index 924c33a4fb..d1700389f7 100644 --- a/keyboards/mt/mt40/keyboard.json +++ b/keyboards/mt/mt40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MT40", "manufacturer": "ThomasDehaeze", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/mt/mt40/keymaps/default/keymap.c b/keyboards/mt/mt40/keymaps/default/keymap.c index 0880037a9b..22e13e662a 100644 --- a/keyboards/mt/mt40/keymaps/default/keymap.c +++ b/keyboards/mt/mt40/keymaps/default/keymap.c @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, OOOOOOO, _______, _______, _______, _______, _______, _______, _______), [4] = LAYOUT_planck_mit( - _______, _______, _______, _______, _______, _______, _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, - KC_PSCR, KC_INS, KC_MUTE, KC_VOLD, KC_VOLU, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______, - KC_CAPS, _______, KC_MPLY, KC_MRWD, KC_MFFD, _______, _______, _______, MS_BTN1, MS_BTN2, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, + KC_PSCR, KC_INS, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, + KC_CAPS, _______, KC_MPLY, KC_MRWD, KC_MFFD, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, OOOOOOO, _______, _______, _______), diff --git a/keyboards/mt/mt64rgb/keyboard.json b/keyboards/mt/mt64rgb/keyboard.json index 57e827f1e3..451be59f8f 100644 --- a/keyboards/mt/mt64rgb/keyboard.json +++ b/keyboards/mt/mt64rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MT64RGB", "manufacturer": "MT", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D54", @@ -138,6 +139,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mt/mt64rgb/keymaps/default/keymap.c b/keyboards/mt/mt64rgb/keymaps/default/keymap.c index 594311d43d..6c0d1a83fd 100644 --- a/keyboards/mt/mt64rgb/keymaps/default/keymap.c +++ b/keyboards/mt/mt64rgb/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, - RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______, + RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mt/mt84/keyboard.json b/keyboards/mt/mt84/keyboard.json index 03926e8a05..26f66b31db 100644 --- a/keyboards/mt/mt84/keyboard.json +++ b/keyboards/mt/mt84/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MT84", "manufacturer": "MT", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D54", @@ -155,6 +156,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mt/mt84/keymaps/default/keymap.c b/keyboards/mt/mt84/keymaps/default/keymap.c index 698805ca17..2b3371257c 100644 --- a/keyboards/mt/mt84/keymaps/default/keymap.c +++ b/keyboards/mt/mt84/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RM_TOGG, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______,_______, + RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______,_______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, KC_TRNS, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mt/mt980/keyboard.json b/keyboards/mt/mt980/keyboard.json index 199231f7d8..2fa17224cb 100644 --- a/keyboards/mt/mt980/keyboard.json +++ b/keyboards/mt/mt980/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/mt/split75/keyboard.json b/keyboards/mt/split75/keyboard.json index 611e25bb6f..c13fa28b80 100644 --- a/keyboards/mt/split75/keyboard.json +++ b/keyboards/mt/split75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Split75", "manufacturer": "YMDK", + "url": "", "maintainer": "Michael L. Walker", "usb": { "vid": "0x594D", diff --git a/keyboards/mtbkeys/mtb60/hotswap/keyboard.json b/keyboards/mtbkeys/mtb60/hotswap/keyboard.json index 87326a7145..cca7bb726a 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/keyboard.json +++ b/keyboards/mtbkeys/mtb60/hotswap/keyboard.json @@ -34,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mtbkeys/mtb60/solder/keyboard.json b/keyboards/mtbkeys/mtb60/solder/keyboard.json index 59ab34b420..1059f1fd76 100644 --- a/keyboards/mtbkeys/mtb60/solder/keyboard.json +++ b/keyboards/mtbkeys/mtb60/solder/keyboard.json @@ -34,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -53,14 +55,13 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_all": { @@ -347,7 +348,7 @@ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h index 0d61c034de..17f316d6af 100644 --- a/keyboards/murcielago/rev1/config.h +++ b/keyboards/murcielago/rev1/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . /* split options, use EEPROM for side detection */ #define EE_HANDS #define SPLIT_USB_DETECT -#define SPLIT_WATCHDOG_ENABLE /* * Feature disable options diff --git a/keyboards/murcielago/rev1/keyboard.json b/keyboards/murcielago/rev1/keyboard.json index 88203e67fb..4d3a82ef2c 100644 --- a/keyboards/murcielago/rev1/keyboard.json +++ b/keyboards/murcielago/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Murci\u00e9lago", "manufacturer": "elagil", + "url": "", "maintainer": "elagil", "usb": { "vid": "0x6166", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c index 8dc5e21074..63fbb04f7b 100644 --- a/keyboards/murcielago/rev1/keymaps/default/keymap.c +++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c @@ -1,19 +1,3 @@ -/* -Copyright 2020 elagil - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ #include QMK_KEYBOARD_H enum layers { diff --git a/keyboards/murcielago/rules.mk b/keyboards/murcielago/rules.mk new file mode 100644 index 0000000000..661563697a --- /dev/null +++ b/keyboards/murcielago/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = murcielago/rev1 \ No newline at end of file diff --git a/keyboards/mwstudio/alicekk/keyboard.json b/keyboards/mwstudio/alicekk/keyboard.json index fe76ec123d..141be9909e 100644 --- a/keyboards/mwstudio/alicekk/keyboard.json +++ b/keyboards/mwstudio/alicekk/keyboard.json @@ -4,15 +4,13 @@ "usb": { "vid": "0x7BA1", "pid": "0x3201", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mmk_3/keyboard.json b/keyboards/mwstudio/mmk_3/keyboard.json index b812cb7e3b..c63bd69f62 100644 --- a/keyboards/mwstudio/mmk_3/keyboard.json +++ b/keyboards/mwstudio/mmk_3/keyboard.json @@ -31,6 +31,7 @@ "hue_steps": 10, "led_count": 5 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3001", diff --git a/keyboards/mwstudio/mw65_black/keyboard.json b/keyboards/mwstudio/mw65_black/keyboard.json index 8c542ec042..8955cf9688 100644 --- a/keyboards/mwstudio/mw65_black/keyboard.json +++ b/keyboards/mwstudio/mw65_black/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MW65 Black", "manufacturer": "MWStudio", + "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", @@ -17,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json index ce8e3f978c..f1a8190948 100644 --- a/keyboards/mwstudio/mw65_rgb/keyboard.json +++ b/keyboards/mwstudio/mw65_rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MW65 RGB", "manufacturer": "MWStudio", + "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", @@ -58,6 +59,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c index 23d476af0e..77750b5174 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c @@ -21,15 +21,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RM_TOGG, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( - 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, _______, RM_HUEU, - RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, - _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU + 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, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI ) }; diff --git a/keyboards/mwstudio/mw660/keyboard.json b/keyboards/mwstudio/mw660/keyboard.json index 385abb1828..fdbd7564a7 100644 --- a/keyboards/mwstudio/mw660/keyboard.json +++ b/keyboards/mwstudio/mw660/keyboard.json @@ -5,6 +5,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -22,15 +24,12 @@ }, "processor": "STM32F103", "bootloader": "stm32duino", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x6601", - "vid": "0x7BA1" - }, - "host": { - "default": { - "nkro": true - } + "vid": "0x7BA1", + "force_nkro": true }, "layouts": { "LAYOUT": { diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json index 489e711c5b..d9e540bca4 100644 --- a/keyboards/mwstudio/mw75/keyboard.json +++ b/keyboards/mwstudio/mw75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MW75", "manufacturer": "MWStudio", + "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", @@ -55,6 +56,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw75/keymaps/default/keymap.c b/keyboards/mwstudio/mw75/keymaps/default/keymap.c index e1fbf3f30a..1a7b9bf067 100644 --- a/keyboards/mwstudio/mw75/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw75/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - 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_VOLD, RM_TOGG, KC_VOLU, + 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_VOLD, RGB_TOG, KC_VOLU, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, - _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json index 10c6a226ca..ae227830e5 100644 --- a/keyboards/mwstudio/mw75r2/keyboard.json +++ b/keyboards/mwstudio/mw75r2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MW75R2", "manufacturer": "MWStudio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7BA1", @@ -43,6 +44,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c b/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c index 7adb32297e..5976aec91f 100644 --- a/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - 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, RM_TOGG, + 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, RGB_TOG, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, - RM_TOGG, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, - _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI ), }; diff --git a/keyboards/mwstudio/mw80/keyboard.json b/keyboards/mwstudio/mw80/keyboard.json index 327afd3155..829e97591c 100644 --- a/keyboards/mwstudio/mw80/keyboard.json +++ b/keyboards/mwstudio/mw80/keyboard.json @@ -5,6 +5,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -16,6 +18,7 @@ }, "processor": "STM32F103", "bootloader": "stm32duino", + "url": "", "indicators": { "caps_lock": "A0" }, @@ -26,6 +29,8 @@ "rgblight": { "led_count": 16, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/mxss/keyboard.json b/keyboards/mxss/keyboard.json index 1c8080fdbe..defa0ae6b7 100644 --- a/keyboards/mxss/keyboard.json +++ b/keyboards/mxss/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mykeyclub/jris65/hotswap/keyboard.json b/keyboards/mykeyclub/jris65/hotswap/keyboard.json deleted file mode 100644 index 134edbf4f0..0000000000 --- a/keyboards/mykeyclub/jris65/hotswap/keyboard.json +++ /dev/null @@ -1,388 +0,0 @@ -{ - "manufacturer": "zlkb", - "keyboard_name": "IRIS65", - "maintainer": "5217zl", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B6", "C6", "C7", "F1", "F0", "E6", "B0", "B1", "B3", "B7", "D2", "D1", "D0", "D7", "B4", "B5"], - "rows": ["F7", "F6", "F5", "B2", "F4"] - }, - "processor": "atmega32u4", - "usb": { - "device_version": "0.1.0", - "pid": "0x4953", - "vid": "0x5A4C" - }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs"], - "layouts": { - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "0,14", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "2,13", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4}, - {"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_split_bs": { - "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "2,13", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4}, - {"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker": { - "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "0,14", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4}, - {"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_split_bs": { - "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4}, - {"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4}, - {"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/mykeyclub/jris65/keymaps/default/keymap.json b/keyboards/mykeyclub/jris65/keymaps/default/keymap.json deleted file mode 100644 index fefbecd6fc..0000000000 --- a/keyboards/mykeyclub/jris65/keymaps/default/keymap.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "keyboard": "mykeyclub/jris65/hotswap", - "keymap": "default", - "layout": "LAYOUT_all", - "layers": [ - [ - "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_BSPC", "KC_PGUP", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_PGDN", - "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_BSLS", "KC_ENT", "KC_END", - "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_DOT", "KC_COMM", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_DEL", - "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT" - ], - [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ] - ] -} diff --git a/keyboards/mykeyclub/jris65/readme.md b/keyboards/mykeyclub/jris65/readme.md deleted file mode 100644 index c216a11d43..0000000000 --- a/keyboards/mykeyclub/jris65/readme.md +++ /dev/null @@ -1,35 +0,0 @@ -# JRIS65 - -![hotswap](https://i.imgur.com/kJzebgd.jpeg) -**Hotswap PCB** - -A 65% keyboard sold by Mykeyclub. - -* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) -* Hardware Supported: JRIS65 R1 hotswap. -* Hardware Availability: intermitently via group buys from [Mykeyclub](https://www.mykeyclub.com/) - -Make example for this keyboard (after setting up your build environment): - - make mykeyclub/jris65/hotswap:default - -Flashing example for this keyboard: - - make mykeyclub/jris65/hotswap: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: - -* **Keycode in layout**: Using the default firmware, assign a key to Reset (`QK_BOOT`) and press the assigned key. -* **Physical reset button**: Briefly press the button on the back of the PCB - -The QMK default keymap has FN+Backspace assigned to `QK_BOOT` so you can use that key sequence for subsequent flashing. - -## Disclaimer - -In May 2024 Mykeyclub was contacted to see if they had interest in contributing firmware to the QMK project they did not. This code is thus community supported. - -This firmware has only been tested with JRIS65 R1 hotswap and is likely to work with R2 hotswap. The soldered variant of this PCB requires testing, with actual hardware, before being added. diff --git a/keyboards/mykeyclub/readme.md b/keyboards/mykeyclub/readme.md deleted file mode 100644 index e5df7a2638..0000000000 --- a/keyboards/mykeyclub/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# Mykeyclub - -Mykeyclub is a retailer of mechanical keyboards and related products. They also facilitate the design and manufacture of keyboard products. - -**Website:** https://www.mykeyclub.com/ diff --git a/keyboards/mysticworks/wyvern/keyboard.json b/keyboards/mysticworks/wyvern/keyboard.json index ad2657813b..77f2aa19bd 100644 --- a/keyboards/mysticworks/wyvern/keyboard.json +++ b/keyboards/mysticworks/wyvern/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mzmkb/slimdash/info.json b/keyboards/mzmkb/slimdash/info.json deleted file mode 100644 index ed8def5958..0000000000 --- a/keyboards/mzmkb/slimdash/info.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "manufacturer": "mzmkb", - "maintainer": "mizma", - "bootloader": "rp2040", - "processor": "RP2040", - "split": { - "enabled": true - }, - "url": "https://github.com/mizma/slimdash" -} diff --git a/keyboards/mzmkb/slimdash/readme.md b/keyboards/mzmkb/slimdash/readme.md deleted file mode 100644 index 8590472aae..0000000000 --- a/keyboards/mzmkb/slimdash/readme.md +++ /dev/null @@ -1,41 +0,0 @@ -# Slimdash - -![mzmkb/slimdash/rev1](https://i.imgur.com/ymf8ROw.jpeg) - -__SlimDash__ is a slim low profile split ortho-staggered keyboard inspired by omkbd/ErgoDash -with following key highlights: - -* Ortho-Staggered Split keyboard layout -* Slim body (20-22mm depending on key caps and rubber feet used) -* Rigid body structure -* Per-Key RGB LED Matrix lighting -* USB-C connector -* Easy build utilizing PCBA service for the harder SMT components -* Keyboard Maintainer: [mizma](https://github.com/mizma) -* Hardware Supported: [SlimDash](https://github.com/mizma/SlimDash/) -* Hardware Availability: Build your own using design data at [SlimDash](https://github.com/mizma/SlimDash/) - -Make example for this keyboard (after setting up your build environment): - - make mzmkb/slimdash/rev1:default - -Flashing example for this keyboard: - - make mzmkb/slimdash/rev1:default:flash - -You may also enter Bootloader on your keyboard, and copy the `mzmkb_slimdash_*_*.uf2` -file into the `RPI-RP2` drive shown in your PC. - -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: - -* __Reset button__: Double-tap the RESET button on the side of the keyboard near - TRRS jack. -* __Physical reset button__: Hold BOOT_SW and press RESET on the side of the keyboard - near TRRS jack. -* __Keycode in layout__: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mzmkb/slimdash/rev1/config.h b/keyboards/mzmkb/slimdash/rev1/config.h deleted file mode 100644 index 4c77e71b78..0000000000 --- a/keyboards/mzmkb/slimdash/rev1/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2025 mizma (@mizma) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode -#define SERIAL_USART_TX_PIN GP17 // USART TX pin -#define SERIAL_USART_RX_PIN GP18 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - diff --git a/keyboards/mzmkb/slimdash/rev1/keyboard.json b/keyboards/mzmkb/slimdash/rev1/keyboard.json deleted file mode 100644 index c9549c903b..0000000000 --- a/keyboards/mzmkb/slimdash/rev1/keyboard.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "keyboard_name": "slimdash rev1.0", - "diode_direction": "COL2ROW", - "features": { - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true, - }, - "matrix_pins": { - "cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"], - "rows": ["GP2", "GP4", "GP6", "GP11", "GP10"] - }, - "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_color": 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 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [3, 6], "x": 105, "y": 51, "flags": 4}, - {"matrix": [4, 6], "x": 105, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 90, "y": 51, "flags": 4}, - {"matrix": [4, 4], "x": 75, "y": 51, "flags": 4}, - {"matrix": [4, 3], "x": 45, "y": 51, "flags": 4}, - {"matrix": [4, 2], "x": 30, "y": 51, "flags": 4}, - {"matrix": [4, 1], "x": 15, "y": 51, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, - {"matrix": [3, 1], "x": 15, "y": 38, "flags": 4}, - {"matrix": [3, 2], "x": 30, "y": 38, "flags": 4}, - {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, - {"matrix": [3, 4], "x": 60, "y": 38, "flags": 4}, - {"matrix": [3, 5], "x": 75, "y": 38, "flags": 4}, - {"matrix": [2, 6], "x": 90, "y": 26, "flags": 4}, - {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4}, - {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, - {"matrix": [2, 4], "x": 60, "y": 26, "flags": 4}, - {"matrix": [2, 3], "x": 45, "y": 26, "flags": 4}, - {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, - {"matrix": [2, 1], "x": 15, "y": 26, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, - {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, - {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, - {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4}, - {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4}, - {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4}, - {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [8, 6], "x": 119, "y": 51, "flags": 4}, - {"matrix": [9, 6], "x": 119, "y": 64, "flags": 4}, - {"matrix": [9, 5], "x": 134, "y": 51, "flags": 4}, - {"matrix": [9, 4], "x": 149, "y": 51, "flags": 4}, - {"matrix": [9, 3], "x": 179, "y": 51, "flags": 4}, - {"matrix": [9, 2], "x": 194, "y": 51, "flags": 4}, - {"matrix": [9, 1], "x": 209, "y": 51, "flags": 4}, - {"matrix": [9, 0], "x": 224, "y": 51, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 38, "flags": 4}, - {"matrix": [8, 1], "x": 209, "y": 38, "flags": 4}, - {"matrix": [8, 2], "x": 194, "y": 38, "flags": 4}, - {"matrix": [8, 3], "x": 179, "y": 38, "flags": 4}, - {"matrix": [8, 4], "x": 164, "y": 38, "flags": 4}, - {"matrix": [8, 5], "x": 149, "y": 38, "flags": 4}, - {"matrix": [7, 6], "x": 134, "y": 26, "flags": 4}, - {"matrix": [6, 6], "x": 134, "y": 13, "flags": 4}, - {"matrix": [7, 5], "x": 149, "y": 26, "flags": 4}, - {"matrix": [7, 4], "x": 164, "y": 26, "flags": 4}, - {"matrix": [7, 3], "x": 179, "y": 26, "flags": 4}, - {"matrix": [7, 2], "x": 194, "y": 26, "flags": 4}, - {"matrix": [7, 1], "x": 209, "y": 26, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 26, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 13, "flags": 4}, - {"matrix": [6, 1], "x": 209, "y": 13, "flags": 4}, - {"matrix": [6, 2], "x": 194, "y": 13, "flags": 4}, - {"matrix": [6, 3], "x": 179, "y": 13, "flags": 4}, - {"matrix": [6, 4], "x": 164, "y": 13, "flags": 4}, - {"matrix": [6, 5], "x": 149, "y": 13, "flags": 4}, - {"matrix": [5, 6], "x": 134, "y": 0, "flags": 4}, - {"matrix": [5, 5], "x": 149, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 164, "y": 0, "flags": 4}, - {"matrix": [5, 3], "x": 179, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 194, "y": 0, "flags": 4}, - {"matrix": [5, 1], "x": 209, "y": 0, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [35, 35] - }, - "split": { - "matrix_pins": { - "right": { - "cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"], - "rows": ["GP2", "GP4", "GP6", "GP11", "GP10"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x7344", - "vid": "0x4D5A" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP20" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.375}, - {"matrix": [0, 1], "x": 1, "y": 0.375}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [0, 6], "x": 6, "y": 0.75}, - {"matrix": [5, 6], "x": 11.5, "y": 0.75}, - {"matrix": [5, 5], "x": 12.5, "y": 0.25}, - {"matrix": [5, 4], "x": 13.5, "y": 0.125}, - {"matrix": [5, 3], "x": 14.5, "y": 0}, - {"matrix": [5, 2], "x": 15.5, "y": 0.125}, - {"matrix": [5, 1], "x": 16.5, "y": 0.375}, - {"matrix": [5, 0], "x": 17.5, "y": 0.375}, - {"matrix": [1, 0], "x": 0, "y": 1.375}, - {"matrix": [1, 1], "x": 1, "y": 1.375}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.75}, - {"matrix": [6, 6], "x": 11.5, "y": 1.75}, - {"matrix": [6, 5], "x": 12.5, "y": 1.25}, - {"matrix": [6, 4], "x": 13.5, "y": 1.125}, - {"matrix": [6, 3], "x": 14.5, "y": 1}, - {"matrix": [6, 2], "x": 15.5, "y": 1.125}, - {"matrix": [6, 1], "x": 16.5, "y": 1.375}, - {"matrix": [6, 0], "x": 17.5, "y": 1.375}, - {"matrix": [2, 0], "x": 0, "y": 2.375}, - {"matrix": [2, 1], "x": 1, "y": 2.375}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [2, 6], "x": 6, "y": 2.75}, - {"matrix": [7, 6], "x": 11.5, "y": 2.75}, - {"matrix": [7, 5], "x": 12.5, "y": 2.25}, - {"matrix": [7, 4], "x": 13.5, "y": 2.125}, - {"matrix": [7, 3], "x": 14.5, "y": 2}, - {"matrix": [7, 2], "x": 15.5, "y": 2.125}, - {"matrix": [7, 1], "x": 16.5, "y": 2.375}, - {"matrix": [7, 0], "x": 17.5, "y": 2.375}, - {"matrix": [3, 0], "x": 0, "y": 3.375}, - {"matrix": [3, 1], "x": 1, "y": 3.375}, - {"matrix": [3, 2], "x": 2, "y": 3.125}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.125}, - {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [3, 6], "x": 7.25, "y": 4}, - {"matrix": [8, 6], "x": 10.25, "y": 4}, - {"matrix": [8, 5], "x": 12.5, "y": 3.25}, - {"matrix": [8, 4], "x": 13.5, "y": 3.125}, - {"matrix": [8, 3], "x": 14.5, "y": 3}, - {"matrix": [8, 2], "x": 15.5, "y": 3.125}, - {"matrix": [8, 1], "x": 16.5, "y": 3.375}, - {"matrix": [8, 0], "x": 17.5, "y": 3.375}, - {"matrix": [4, 0], "x": 0, "y": 4.375}, - {"matrix": [4, 1], "x": 1, "y": 4.375}, - {"matrix": [4, 2], "x": 2, "y": 4.125}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 5.25, "y": 5}, - {"matrix": [4, 5], "x": 6.25, "y": 4, "h": 2}, - {"matrix": [4, 6], "x": 7.25, "y": 5}, - {"matrix": [9, 6], "x": 10.25, "y": 5}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "h": 2}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [9, 3], "x": 14.5, "y": 4}, - {"matrix": [9, 2], "x": 15.5, "y": 4.125}, - {"matrix": [9, 1], "x": 16.5, "y": 4.375}, - {"matrix": [9, 0], "x": 17.5, "y": 4.375} - ] - } - } -} diff --git a/keyboards/mzmkb/slimdash/rev1/keymaps/default/keymap.c b/keyboards/mzmkb/slimdash/rev1/keymaps/default/keymap.c deleted file mode 100644 index f43ac674a8..0000000000 --- a/keyboards/mzmkb/slimdash/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright 2025 mizma (@mizma) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layer_names { - _QWERTY, - _GAMEMODE, - _LOWER, - _RAISE -}; - -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) -#define GAMEM TG(_GAMEMODE) - -#define EISU LALT(KC_GRV) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty - * ,------------------------------------------------. .------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | LCTL | A | S | D | F | G | Del | | Ins | H | J | K | L | ; | ' | - * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| - * | LSFT | Z | X | C | V | B | | N | M | , | . | / | RSFT | - * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| - * | RM_DN| RM_UP| GAMEM| GUI | | | LALT | | RALT | | | HOME | END |PageUp|PageDn| - * .---------------------------. .------| Space|------| |------| Enter|------. .---------------------------. - * | Lower| | LSFT | | RCTL | | Raise| - * .--------------------. .--------------------. - */ - [_QWERTY] = 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_DEL , KC_INS, 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_LALT, KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - RM_VALD, RM_VALU, GAMEM, KC_LGUI, LOWER, KC_SPC, KC_LSFT, KC_RCTL, KC_ENT, RAISE, KC_HOME, KC_END, KC_PGUP, KC_PGDN - ), - - /* Game Mode Toggle: sample toggle layer. turn off GUI key and add arrows - * ,------------------------------------------------. .------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | - * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| - * | | | | NOOP | | | | | | | | ← | ↓ | ↑ | → | - * .---------------------------. .------| |------| |------| |------. .---------------------------. - * | | | | | | | | - * .--------------------. .--------------------. - */ - [_GAMEMODE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* Lower: NUMPAD, App/Media keys and RGM Matrix - * ,------------------------------------------------. .------------------------------------------------. - * | ` | | | | | Mute | Vol- | | Vol+ | | NumL | / | * | - | | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | | | | |RGBTGL| | BrDn | | BrUp | | 7 | 8 | 9 | + | | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | CAPS | | |RM_HUD|RM_HUU| |RM_PRV| |RM_NXT| | 4 | 5 | 6 | , | | - * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| - * | | | |RM_SPD|RM_SPU| | | | 1 | 2 | 3 | = | | - * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| - * | | | | | | | | | | | | 0 | . | | | - * .---------------------------. .------| |------| |------| PENT |------. .---------------------------. - * | | | | | | | | - * .--------------------. .--------------------. - */ - [_LOWER] = LAYOUT( - KC_GRV, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, - _______, _______, _______, _______, RM_TOGG, _______, KC_BRID, KC_BRIU, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, - KC_CAPS, _______, _______, RM_HUED, RM_HUEU, _______, RM_PREV, RM_NEXT, _______, KC_P4, KC_P5, KC_P6, KC_PCMM, _______, - _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PEQL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_PENT, _______, KC_P0, KC_PDOT, _______, _______ - ), - - /* Raise: Functions and Mouse - * ,------------------------------------------------. .------------------------------------------------. - * | ` | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | | | |WheelL|WheelR| | | | | | | Pause|ScrolL| PrnSc| F12 | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | CAPS | |Mouse3|Mouse2|Mouse1|WheelU| | | | ← | ↓ | ↑ | → | | | - * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| - * | |Accel0|Accel1|Accel2| |WheelD| |MouseL|MouseD|MouseU|MouseR| | | - * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| - * | | | | | | | | | | | | | | | | - * .---------------------------. .------| |------| |------| |------. .---------------------------. - * | | | | | | | | - * .--------------------. .--------------------. - */ - [_RAISE] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, _______, _______, MS_WHLL, MS_WHLR, _______, _______, _______, _______, _______, KC_PAUS, KC_SCRL, KC_PSCR, KC_F12, - KC_CAPS, _______, MS_BTN3, MS_BTN2, MS_BTN1, MS_WHLU, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, MS_WHLD, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - diff --git a/keyboards/nack/keymaps/default/keymap.c b/keyboards/nack/keymaps/default/keymap.c index 0831440058..79ff514e8c 100644 --- a/keyboards/nack/keymaps/default/keymap.c +++ b/keyboards/nack/keymaps/default/keymap.c @@ -53,13 +53,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* __________________________________________________________________________________________________________________________________________________________________________ | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ // | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-QK_BOOT KBD--| - RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, // | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| MU_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, // | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RM_VALU, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, // | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| - KC_NO, KC_NO, KC_NO, MO(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RM_VALD, KC_NO + KC_NO, KC_NO, KC_NO, MO(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO // \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ) }; diff --git a/keyboards/nacly/sodium42/keyboard.json b/keyboards/nacly/sodium42/keyboard.json index 97b6a837c5..2db83408ac 100644 --- a/keyboards/nacly/sodium42/keyboard.json +++ b/keyboards/nacly/sodium42/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -35,7 +36,8 @@ "pin": "D3" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/sodium50/keyboard.json b/keyboards/nacly/sodium50/keyboard.json index dd1604c480..b9448c8217 100644 --- a/keyboards/nacly/sodium50/keyboard.json +++ b/keyboards/nacly/sodium50/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -35,7 +36,8 @@ "pin": "D3" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/sodium62/keyboard.json b/keyboards/nacly/sodium62/keyboard.json index 64cb488159..904fa9568a 100644 --- a/keyboards/nacly/sodium62/keyboard.json +++ b/keyboards/nacly/sodium62/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -36,7 +37,8 @@ "pin": "D3" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json index 567cb6d6db..a3b1544b9a 100644 --- a/keyboards/nacly/splitreus62/keyboard.json +++ b/keyboards/nacly/splitreus62/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Splitreus62", "manufacturer": "NaCly", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -42,7 +44,8 @@ "ws2812": { "pin": "B1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/ua62/keyboard.json b/keyboards/nacly/ua62/keyboard.json index 85fbbd431c..43f2e9e662 100644 --- a/keyboards/nacly/ua62/keyboard.json +++ b/keyboards/nacly/ua62/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UA62", "manufacturer": "NaCly", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", @@ -26,7 +27,8 @@ "rows": ["D3", "D2", "D1", "D0", "D4"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/navi60/keyboard.json b/keyboards/navi60/keyboard.json index 47983e3d19..42c3e5da1d 100644 --- a/keyboards/navi60/keyboard.json +++ b/keyboards/navi60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Navi60", "manufacturer": "Navi60", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5001", @@ -18,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "layouts": { diff --git a/keyboards/ncc1701kb/keyboard.json b/keyboards/ncc1701kb/keyboard.json index f939b1ac35..f30b85f47a 100644 --- a/keyboards/ncc1701kb/keyboard.json +++ b/keyboards/ncc1701kb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NCC-1701-KB", "manufacturer": "J2L Designs", + "url": "", "maintainer": "jessel92", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/neito/keyboard.json b/keyboards/neito/keyboard.json index 2a5f3cecd2..d79ab68508 100644 --- a/keyboards/neito/keyboard.json +++ b/keyboards/neito/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nek_type_a/keyboard.json b/keyboards/nek_type_a/keyboard.json index a99a6b0301..39bad11a18 100644 --- a/keyboards/nek_type_a/keyboard.json +++ b/keyboards/nek_type_a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEK Type A", "manufacturer": "miker", + "url": "", "maintainer": "ecopoesis", "usb": { "vid": "0xFEED", diff --git a/keyboards/nemui/keyboard.json b/keyboards/nemui/keyboard.json index 5d607ee61e..fb2adb6ae4 100644 --- a/keyboards/nemui/keyboard.json +++ b/keyboards/nemui/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Nemui", "manufacturer": "Bachoo", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x6400", diff --git a/keyboards/neokeys/g67/element_hs/keyboard.json b/keyboards/neokeys/g67/element_hs/keyboard.json index 0fadcc283a..f477c33d6a 100644 --- a/keyboards/neokeys/g67/element_hs/keyboard.json +++ b/keyboards/neokeys/g67/element_hs/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Element G67 Hotswap", "manufacturer": "NEO Keys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/neokeys/g67/hotswap/keyboard.json b/keyboards/neokeys/g67/hotswap/keyboard.json index dc9a6748ce..937e802fa0 100644 --- a/keyboards/neokeys/g67/hotswap/keyboard.json +++ b/keyboards/neokeys/g67/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Palette G67 Hotswap", "manufacturer": "NEO Keys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/neokeys/g67/soldered/keyboard.json b/keyboards/neokeys/g67/soldered/keyboard.json index e3242caa57..541f07ee09 100644 --- a/keyboards/neokeys/g67/soldered/keyboard.json +++ b/keyboards/neokeys/g67/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Palette G67 Soldered", "manufacturer": "NEO Keys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 810e311b28..c6ba94c834 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -18,11 +18,9 @@ */ #include "quantum.h" - -#ifdef RGBLIGHT_ENABLE -# include "i2c_master.h" -# include "drivers/led/issi/is31fl3731.h" -# include "ws2812.h" +#include "i2c_master.h" +#include "drivers/led/issi/is31fl3731.h" +#include "ws2812.h" enum { SELF_TESTING, @@ -69,6 +67,7 @@ enum { #endif #define ST_RIGHT_END (ST_RIGHT_BEGIN+ST_RIGHT_SIZE-1) +#ifdef RGBLIGHT_ENABLE typedef struct { uint8_t state; @@ -103,9 +102,9 @@ static void update_ticks(void) static void self_testing(void) { if (timer_elapsed(rgb_state.ticks) < ST_INTERVAL) return; - hsv_t hsv = rgblight_get_hsv(); + HSV hsv = rgblight_get_hsv(); - rgb_t led = hsv_to_rgb(hsv); + RGB led = hsv_to_rgb(hsv); switch(rgb_state.testing) { case ST_STAGE_1: if (rgb_state.index !=0 ) { @@ -296,6 +295,7 @@ void matrix_init_kb(void) gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin_low(LED_CAPS_LOCK_PIN); + is31fl3731_init_drivers(); update_ticks(); matrix_init_user(); @@ -313,10 +313,17 @@ void housekeeping_task_kb(void) } else if (rgb_state.state == CAPS_ALERT) { if (rgb_state.alert) { is31fl3731_set_color_all(ALERM_LED_R, ALERM_LED_G, ALERM_LED_B); - ws2812_set_color_all(ALERM_LED_G, ALERM_LED_R, ALERM_LED_B); + rgb_led_t leds[4]; + for (int i = 0; i < 4; i++) { + leds[i].r = ALERM_LED_G; + leds[i].g = ALERM_LED_R; + leds[i].b = ALERM_LED_B; + } + ws2812_setleds(leds, 4); } else { is31fl3731_set_color_all(0, 0, 0); - ws2812_set_color_all(0, 0, 0); + rgb_led_t leds[4] = {0}; + ws2812_setleds(leds, 4); } if (timer_elapsed(rgb_state.ticks) > ALERT_INTERVAL) { @@ -326,40 +333,28 @@ void housekeeping_task_kb(void) } is31fl3731_flush(); - ws2812_flush(); } -void init_custom(void) { - is31fl3731_init_drivers(); - ws2812_init(); -} - -void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < IS31FL3731_LED_COUNT) { - is31fl3731_set_color(index, red, green, blue); - } else if (index < IS31FL3731_LED_COUNT + WS2812_LED_COUNT) { - ws2812_set_color(index - IS31FL3731_LED_COUNT, green, red, blue); - } -} - -void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { - set_color_custom(i, red, green, blue); - } -} - -void flush_custom(void) { +void setleds_custom(rgb_led_t *start_led, uint16_t num_leds) +{ if (rgb_state.state != NORMAL) return; - is31fl3731_flush(); - ws2812_flush(); + for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) { + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + } + rgb_led_t leds[4]; + for (int i = 0; i < 4; i++) { + leds[i].r = start_led[IS31FL3731_LED_COUNT+i].g; + leds[i].g = start_led[IS31FL3731_LED_COUNT+i].r; + leds[i].b = start_led[IS31FL3731_LED_COUNT+i].b; + } + //ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 4); + ws2812_setleds(leds, 4); } const rgblight_driver_t rgblight_driver = { - .init = init_custom, - .set_color = set_color_custom, - .set_color_all = set_color_all_custom, - .flush = flush_custom, + .init = ws2812_init, + .setleds = setleds_custom, }; bool led_update_kb(led_t led_state) diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 2c2d02cad1..d92c9deb5d 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -21,6 +21,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_LED_COUNT 64 -#define WS2812_LED_COUNT 4 #define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/700e/keyboard.json b/keyboards/neson_design/700e/keyboard.json index 4cd7de0d81..64a18f436b 100644 --- a/keyboards/neson_design/700e/keyboard.json +++ b/keyboards/neson_design/700e/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "700E", "manufacturer": "Neson Design", + "url": "", "maintainer": "yulei", "usb": { "vid": "0x4E65", diff --git a/keyboards/neson_design/810e/board.h b/keyboards/neson_design/810e/board.h deleted file mode 100644 index 681350a0ea..0000000000 --- a/keyboards/neson_design/810e/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 astro -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/neson_design/810e/config.h b/keyboards/neson_design/810e/config.h new file mode 100644 index 0000000000..c6409b1ece --- /dev/null +++ b/keyboards/neson_design/810e/config.h @@ -0,0 +1,21 @@ +/** + * Copyright 2024 astro + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define BOARD_OTG_NOVBUSSENS 1 +#define STM32_HSECLK 16000000U diff --git a/keyboards/neson_design/810e/keyboard.json b/keyboards/neson_design/810e/keyboard.json index ab52c1539e..2c62eb1f88 100644 --- a/keyboards/neson_design/810e/keyboard.json +++ b/keyboards/neson_design/810e/keyboard.json @@ -19,6 +19,7 @@ "rows": ["C13", "C14", "A6", "A7", "A5"] }, "processor": "STM32F411", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x810E", diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index dd67c11851..92aa189fae 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -21,4 +21,3 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_LED_COUNT 64 -#define WS2812_LED_COUNT 1 diff --git a/keyboards/neson_design/n6/keyboard.json b/keyboards/neson_design/n6/keyboard.json index 9f7d3fb1c0..66e6fb740c 100644 --- a/keyboards/neson_design/n6/keyboard.json +++ b/keyboards/neson_design/n6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "N6", "manufacturer": "Neson Design", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E65", diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index e4538257f1..ef5035dcde 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -18,11 +18,9 @@ */ #include "quantum.h" - -#ifdef RGBLIGHT_ENABLE -# include "i2c_master.h" -# include "drivers/led/issi/is31fl3731.h" -# include "ws2812.h" +#include "i2c_master.h" +#include "drivers/led/issi/is31fl3731.h" +#include "ws2812.h" enum { SELF_TESTING, @@ -69,6 +67,7 @@ enum { #endif #define ST_RIGHT_END (ST_RIGHT_BEGIN+ST_RIGHT_SIZE-1) +#ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; typedef struct { @@ -104,12 +103,12 @@ static void update_ticks(void) static void self_testing(void) { if (timer_elapsed(rgb_state.ticks) < ST_INTERVAL) return; - hsv_t hsv; + HSV hsv; hsv.h = rgblight_config.hue; hsv.s = rgblight_config.sat; hsv.v = rgblight_config.val; - rgb_t led = hsv_to_rgb(hsv); + RGB led = hsv_to_rgb(hsv); switch(rgb_state.testing) { case ST_STAGE_1: if (rgb_state.index !=0 ) { @@ -300,6 +299,8 @@ void matrix_init_kb(void) gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin_low(LED_CAPS_LOCK_PIN); + is31fl3731_init_drivers(); + update_ticks(); matrix_init_user(); } @@ -309,12 +310,22 @@ void housekeeping_task_kb(void) if (rgb_state.state == SELF_TESTING) { self_testing(); } else if (rgb_state.state == CAPS_ALERT) { + //gold 0xFF, 0xD9, 0x00 + rgb_led_t led = { + .r = 0xFF, + //.g = 0xD9, + .g = 0xA5, + .b = 0x00, + }; if (rgb_state.alert) { - is31fl3731_set_color_all(0xFF, 0xA5, 0x00); - ws2812_set_color_all(0xFF, 0xA5, 0x00); + is31fl3731_set_color_all(led.r, led.g, led.b); + ws2812_setleds(&led, 1); } else { + led.r = 0; + led.g = 0; + led.b = 0; is31fl3731_set_color_all(0, 0, 0); - ws2812_set_color_all(0, 0, 0); + ws2812_setleds(&led, 1); } if (timer_elapsed(rgb_state.ticks) > ALERT_INTERVAL) { @@ -326,37 +337,19 @@ void housekeeping_task_kb(void) is31fl3731_flush(); } -void init_custom(void) { - is31fl3731_init_drivers(); - ws2812_init(); -} - -void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < IS31FL3731_LED_COUNT) { - is31fl3731_set_color(index, red, green, blue); - } else if (index < IS31FL3731_LED_COUNT + WS2812_LED_COUNT) { - ws2812_set_color(index - IS31FL3731_LED_COUNT, red, green, blue); - } -} - -void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { - set_color_custom(i, red, green, blue); - } -} - -void flush_custom(void) { +void setleds_custom(rgb_led_t *start_led, uint16_t num_leds) +{ if (rgb_state.state != NORMAL) return; - is31fl3731_flush(); - ws2812_flush(); + for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) { + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + } + ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 1); } const rgblight_driver_t rgblight_driver = { - .init = init_custom, - .set_color = set_color_custom, - .set_color_all = set_color_all_custom, - .flush = flush_custom, + .init = ws2812_init, + .setleds = setleds_custom, }; bool led_update_kb(led_t led_state) diff --git a/keyboards/neson_design/nico/keyboard.json b/keyboards/neson_design/nico/keyboard.json index a16e5e7d62..477ac3ba7c 100644 --- a/keyboards/neson_design/nico/keyboard.json +++ b/keyboards/neson_design/nico/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -25,6 +27,7 @@ "rgblight": { "led_count": 5 }, + "url": "", "usb": { "device_version": "0.0.1", "no_startup_check": true, diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json index 62c567cb40..063260b99f 100644 --- a/keyboards/newgame40/keyboard.json +++ b/keyboards/newgame40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEWGAME40", "manufacturer": "GoTakigawa", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -39,7 +42,8 @@ "ws2812": { "pin": "F6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x10"], "layouts": { "LAYOUT_ortho_4x10": { diff --git a/keyboards/newgame40/keymaps/default/keymap.c b/keyboards/newgame40/keymaps/default/keymap.c index 39921d2a38..056afed011 100644 --- a/keyboards/newgame40/keymaps/default/keymap.c +++ b/keyboards/newgame40/keymaps/default/keymap.c @@ -27,13 +27,18 @@ enum layers { _ADJUST, }; -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) + enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + EUCALYN, + ADJUST, + }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) -#define EUCALYN PDF(_EUCALYN) + #define LOWER MO(_LOWER) + #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -169,3 +174,33 @@ enum layers { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case EUCALYN: + if (record->event.pressed) { + set_single_persistent_default_layer(_EUCALYN); + } + return false; + break; + } + return true; + } diff --git a/keyboards/nibell/micropad4x4/keyboard.json b/keyboards/nibell/micropad4x4/keyboard.json deleted file mode 100644 index 0305412f8c..0000000000 --- a/keyboards/nibell/micropad4x4/keyboard.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "manufacturer": "nibell", - "keyboard_name": "nibell/micropad4x4", - "maintainer": "Linus Nibell", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP2", "GP3", "GP4", "GP5"], - "rows": ["GP10", "GP11", "GP12", "GP13"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0xFEED", - "vid": "0x4C4E" - }, - "community_layouts": ["ortho_4x4"], - "layouts": { - "LAYOUT_ortho_4x4": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "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": [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": [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} - ] - } - } -} diff --git a/keyboards/nibell/micropad4x4/keymaps/default/keymap.c b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c deleted file mode 100644 index 1da79514ed..0000000000 --- a/keyboards/nibell/micropad4x4/keymaps/default/keymap.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base - * ┌──────┬─────┬──────┬───────┐ - * │NUMLK │ │ │QK_BOOT│ - * ├──────┼─────├──────┼───────┤ - * │NUMPAD│MINI │ FN │ │ - * ├──────┼─────┼──────┼───────┤ - * │ 1 │ 2 │ 3 │ 4 │ - * ├──────┼─────┼──────┼───────┤ - * │ │ │RSHIFT│ RCTRL │ - * └──────┴─────┴──────┴───────┘ - */ - [0] = LAYOUT_ortho_4x4( - KC_NUM, KC_NO, KC_NO, QK_BOOT, - TO(1), TO(2), TO(3), KC_NO, - KC_1, KC_2, KC_3, KC_4, - KC_NO, KC_NO, KC_RSFT, KC_RCTL - ), - - /* Numpad - * ┌─────┬─────┬─────┬─────┐ - * │ 7 │ 8 │ 9 │ * │ - * ├─────┼─────├─────┼─────┤ - * │ 4 │ 5 │ 6 │ - │ - * ├─────┼─────┼─────┼─────┤ - * │ 1 │ 2 │ 3 │ + │ - * ├─────┼─────┼─────┼─────┤ - * │ 0 │ . │ / │ = │ - * └─────┴─────┴─────┴─────┘ - */ - [1] = LAYOUT_ortho_4x4( - KC_P7, KC_P8, KC_P9, KC_PAST, - KC_P4, KC_P5, KC_P6, KC_PMNS, - KC_P1, KC_P2, KC_P3, KC_PPLS, - KC_P0, KC_PDOT, KC_PSLS, LT(3, KC_PENT) - ), - - /* Mini KeyBoard - * ┌─────┬─────┬─────┬─────┐ - * │ ESC │ 1 │ 2 │ 3 │ - * ├─────┼─────┼─────┼─────┤ - * │ TAB │ Q │ W │ E │ - * ├─────┼─────┼─────┼─────┤ - * │SHIFT│ A │ S │ D │ - * ├─────┼─────┼─────┼─────┤ - * │CTRL │ C │ R │SPACE│ - * └─────┴─────┴─────┴─────┘ - */ - [2] = LAYOUT_ortho_4x4( - LT(3, KC_ESC), KC_1, KC_2, KC_3, - KC_TAB, KC_Q, KC_W, KC_E, - KC_LSFT, KC_A, KC_S, KC_D, - KC_LCTL, KC_C, KC_R, KC_SPC - ), - - /* FN Keyboard - * ┌─────┬─────┬─────┬─────┐ - * │ F1 │ F2 │ F3 │ F4 │ - * ├─────┼─────┼─────┼─────┤ - * │ F5 │ F6 │ F7 │ F8 │ - * ├─────┼─────┼─────┼─────┤ - * │ F9 │ F10 │ F11 │ F12 │ - * ├─────┼─────┼─────┼─────┤ - * │BASE │ │ │ │ - * └─────┴─────┴─────┴─────┘ - */ - [3] = LAYOUT_ortho_4x4( - KC_F1, KC_F2, KC_F3, KC_F4, - KC_F5, KC_F6, KC_F7, KC_F8, - KC_F9, KC_F10, KC_F11, KC_F12, - TO(0), KC_NO, KC_NO, KC_NO - ), -}; diff --git a/keyboards/nibell/micropad4x4/readme.md b/keyboards/nibell/micropad4x4/readme.md deleted file mode 100644 index 6fec293b65..0000000000 --- a/keyboards/nibell/micropad4x4/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Micropad 4x4 - -![Micropad 4x4](https://imgur.com/ugfJLXJ.jpg) - -A budget-friendly 4x4 Macropad - -* Keyboard Maintainer: [nibell](https://github.com/Nibell) -* Hardware Supported: Raspberry Pi Pico -* Hardware Availability: [GitHub](https://github.com/Nibell/Keyboards/tree/main/micropad4x4) - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Physical reset button**: Hold the button down on the raspberry pi pico while plugging it in. There is no reset button on the pcb. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -Make example for this keyboard (after setting up your build environment): - - make nibell/micropad4x4:default - -Flashing example for this keyboard: - - make nibell/macropad4x4:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nibiria/stream15/keyboard.json b/keyboards/nibiria/stream15/keyboard.json index 704ddda490..9daeef7cf9 100644 --- a/keyboards/nibiria/stream15/keyboard.json +++ b/keyboards/nibiria/stream15/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stream15", "manufacturer": "Nibiria", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E49", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightingale_studios/hailey/keyboard.json b/keyboards/nightingale_studios/hailey/keyboard.json index fbd2cf2a2f..f8c2455958 100644 --- a/keyboards/nightingale_studios/hailey/keyboard.json +++ b/keyboards/nightingale_studios/hailey/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/adellein/keyboard.json b/keyboards/nightly_boards/adellein/keyboard.json index 7e75e0474a..3f873ba5f5 100644 --- a/keyboards/nightly_boards/adellein/keyboard.json +++ b/keyboards/nightly_boards/adellein/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Adellein", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/alter/rev1/keyboard.json b/keyboards/nightly_boards/alter/rev1/keyboard.json index ed6b2224a2..e02e7e5b1b 100644 --- a/keyboards/nightly_boards/alter/rev1/keyboard.json +++ b/keyboards/nightly_boards/alter/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alter", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/nightly_boards/alter_lite/keyboard.json b/keyboards/nightly_boards/alter_lite/keyboard.json index df8dfca7f7..d06dd3aacd 100644 --- a/keyboards/nightly_boards/alter_lite/keyboard.json +++ b/keyboards/nightly_boards/alter_lite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alter Lite", "manufacturer": "DeskDaily", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/conde60/keyboard.json b/keyboards/nightly_boards/conde60/keyboard.json index e74dff445c..38e7b8383a 100644 --- a/keyboards/nightly_boards/conde60/keyboard.json +++ b/keyboards/nightly_boards/conde60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Conde60", "manufacturer": "DeskDaily", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nightly_boards/daily60/keyboard.json b/keyboards/nightly_boards/daily60/keyboard.json index dc8382a6f0..d13ead3251 100644 --- a/keyboards/nightly_boards/daily60/keyboard.json +++ b/keyboards/nightly_boards/daily60/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -30,15 +32,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -323,7 +321,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/nightly_boards/jisoo/keyboard.json b/keyboards/nightly_boards/jisoo/keyboard.json index 3ac607ec62..21b8122497 100644 --- a/keyboards/nightly_boards/jisoo/keyboard.json +++ b/keyboards/nightly_boards/jisoo/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/n2/keyboard.json b/keyboards/nightly_boards/n2/keyboard.json index 7f8d0e5e48..4aa554716f 100644 --- a/keyboards/nightly_boards/n2/keyboard.json +++ b/keyboards/nightly_boards/n2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "[n]2", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/nightly_boards/n40_o/keyboard.json b/keyboards/nightly_boards/n40_o/keyboard.json index c1b8381669..f749c143eb 100644 --- a/keyboards/nightly_boards/n40_o/keyboard.json +++ b/keyboards/nightly_boards/n40_o/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "[n]40-o", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "features": { "bootmagic": true, diff --git a/keyboards/nightly_boards/n60_s/keyboard.json b/keyboards/nightly_boards/n60_s/keyboard.json index 4d6a53dd48..f6e235fec5 100644 --- a/keyboards/nightly_boards/n60_s/keyboard.json +++ b/keyboards/nightly_boards/n60_s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "[n]60-S", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", @@ -13,6 +14,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/n87/keyboard.json b/keyboards/nightly_boards/n87/keyboard.json index f8c75b893d..ddfd27125c 100644 --- a/keyboards/nightly_boards/n87/keyboard.json +++ b/keyboards/nightly_boards/n87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "[n]87", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", @@ -10,6 +11,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json index f99ff31258..83f9495445 100644 --- a/keyboards/nightly_boards/n9/keyboard.json +++ b/keyboards/nightly_boards/n9/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "[n]9", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -46,7 +49,8 @@ "ws2812": { "pin": "F5" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nightly_boards/octopad/keyboard.json b/keyboards/nightly_boards/octopad/keyboard.json index af1015ea95..797f26a2c2 100644 --- a/keyboards/nightly_boards/octopad/keyboard.json +++ b/keyboards/nightly_boards/octopad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Octopad", "manufacturer": "Neil Brian Ramirez", + "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", @@ -13,6 +14,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/octopadplus/keyboard.json b/keyboards/nightly_boards/octopadplus/keyboard.json index 8c802ab646..ca5a7cdad1 100644 --- a/keyboards/nightly_boards/octopadplus/keyboard.json +++ b/keyboards/nightly_boards/octopadplus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Octopad+", "manufacturer": "DeskDaily", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -49,7 +52,9 @@ "twinkle": true }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 8, + "max_brightness": 255, "saturation_steps": 8, "sleep": true }, diff --git a/keyboards/nightly_boards/paraluman/keyboard.json b/keyboards/nightly_boards/paraluman/keyboard.json index 6ce7d0f111..f18cefe601 100644 --- a/keyboards/nightly_boards/paraluman/keyboard.json +++ b/keyboards/nightly_boards/paraluman/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Paraluman", "manufacturer": "DeskDaily", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/ph_arisu/keyboard.json b/keyboards/nightly_boards/ph_arisu/keyboard.json index 7d64536c1a..55f9e6e90c 100644 --- a/keyboards/nightly_boards/ph_arisu/keyboard.json +++ b/keyboards/nightly_boards/ph_arisu/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nimrod/keyboard.json b/keyboards/nimrod/keyboard.json index 4b82ba3617..08351efb20 100644 --- a/keyboards/nimrod/keyboard.json +++ b/keyboards/nimrod/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json index 9e99ef879a..57a2438c3d 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json +++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json @@ -2,12 +2,11 @@ "manufacturer": "Ning", "keyboard_name": "TB16 RGB", "maintainer": "ningjx", - "diode_direction": "ROW2COL", - "build": { - "lto": true - }, + "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -30,6 +29,7 @@ "pin": "B5" }, "development_board": "promicro", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c b/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c index 6a39460b39..f8ef14aa93 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c +++ b/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───┴───┴───┘ */ [0] = LAYOUT_ortho_4x4( - KC_P7, KC_P8, KC_P9, RM_TOGG, - KC_P4, KC_P5, KC_P6, RM_NEXT, + KC_P7, KC_P8, KC_P9, RGB_TOG, + KC_P4, KC_P5, KC_P6, RGB_MOD, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_P0, KC_PDOT, KC_PENT, KC_PPLS ) diff --git a/keyboards/nix_studio/lilith/board.h b/keyboards/nix_studio/lilith/board.h deleted file mode 100644 index 2a370fe2e0..0000000000 --- a/keyboards/nix_studio/lilith/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Martin Arnstad (@arnstadm) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/nix_studio/lilith/config.h b/keyboards/nix_studio/lilith/config.h new file mode 100644 index 0000000000..225e6ac51b --- /dev/null +++ b/keyboards/nix_studio/lilith/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 Martin Arnstad (@arnstadm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Set HSE clock since it differs from F411 default */ +#define STM32_HSECLK 16000000 diff --git a/keyboards/nix_studio/lilith/keyboard.json b/keyboards/nix_studio/lilith/keyboard.json index 569740d7e5..7fe03ef806 100644 --- a/keyboards/nix_studio/lilith/keyboard.json +++ b/keyboards/nix_studio/lilith/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nix_studio/n60_a/keyboard.json b/keyboards/nix_studio/n60_a/keyboard.json index de5507c692..3f9b4dd086 100644 --- a/keyboards/nix_studio/n60_a/keyboard.json +++ b/keyboards/nix_studio/n60_a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "N60A", "manufacturer": "Nix Studio", + "url": "", "maintainer": "Nix Studio", "usb": { "vid": "0x6E78", diff --git a/keyboards/nix_studio/oxalys80/keyboard.json b/keyboards/nix_studio/oxalys80/keyboard.json index 07e7419c56..470c43ea2f 100644 --- a/keyboards/nix_studio/oxalys80/keyboard.json +++ b/keyboards/nix_studio/oxalys80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OXALYS80", "manufacturer": "Nix Studio", + "url": "", "maintainer": "Nix Studio", "usb": { "vid": "0x6E78", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/nixkeyboards/day_off/keyboard.json b/keyboards/nixkeyboards/day_off/keyboard.json index a1108ec098..2edbcdf883 100644 --- a/keyboards/nixkeyboards/day_off/keyboard.json +++ b/keyboards/nixkeyboards/day_off/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json index 25f7f7a533..6c8b71460e 100644 --- a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json index 784732a54a..177f5235f4 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -138,8 +140,8 @@ {"matrix": [9, 1], "x": 3, "y": 4.375}, {"matrix": [8, 2], "x": 4.25, "y": 4.375, "w": 1.25}, - {"matrix": [9, 2], "x": 5.5, "y": 4.375}, - {"matrix": [8, 3], "x": 6.5, "y": 4.375}, + {"matrix": [9, 2], "x": 5.25, "y": 4.375}, + {"matrix": [8, 3], "x": 6.25, "y": 4.375}, {"matrix": [9, 3], "x": 8.5, "y": 4.375}, {"matrix": [8, 4], "x": 9.5, "y": 4.25}, {"matrix": [9, 4], "x": 10.5, "y": 4.375}, diff --git a/keyboards/nopunin10did/kastenwagen1840/keyboard.json b/keyboards/nopunin10did/kastenwagen1840/keyboard.json index 7dea20455c..771df3d82c 100644 --- a/keyboards/nopunin10did/kastenwagen1840/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen1840/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/kastenwagen48/keyboard.json b/keyboards/nopunin10did/kastenwagen48/keyboard.json index 0132d0fa61..58a9d7c2a8 100644 --- a/keyboards/nopunin10did/kastenwagen48/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen48/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/railroad/rev0/keyboard.json b/keyboards/nopunin10did/railroad/rev0/keyboard.json index 92c878c571..7dcc17f762 100644 --- a/keyboards/nopunin10did/railroad/rev0/keyboard.json +++ b/keyboards/nopunin10did/railroad/rev0/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nopunin10did/styrkatmel/keyboard.json b/keyboards/nopunin10did/styrkatmel/keyboard.json deleted file mode 100644 index 033357d8f2..0000000000 --- a/keyboards/nopunin10did/styrkatmel/keyboard.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "keyboard_name": "Styrka Atmel", - "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/styrkatmel", - "maintainer": "NoPunIn10Did", - "usb": { - "vid": "0x4E50", - "pid": "0x5341", - "device_version": "0.0.1" - }, - "features": { - "backlight": false, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "matrix_pins": { - "cols": ["F7", "F6", "F5", "F4", "F1", "D7", "B4", "B5", "B6"], - "rows": ["B3", "B0", "B1", "B2", "E6", "B7", "C6", "C7", "D6", "D4"] - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 3 - }, - "indicators": { - "caps_lock": "F0" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2.25, "y": 0}, - {"matrix": [1, 1], "x": 3.25, "y": 0}, - {"matrix": [0, 2], "x": 4.25, "y": 0}, - {"matrix": [1, 2], "x": 5.25, "y": 0}, - {"matrix": [0, 3], "x": 6.25, "y": 0}, - {"matrix": [1, 3], "x": 7.25, "y": 0}, - {"matrix": [0, 4], "x": 8.25, "y": 0}, - {"matrix": [1, 4], "x": 9.25, "y": 0}, - {"matrix": [0, 5], "x": 10.25, "y": 0}, - {"matrix": [1, 5], "x": 11.25, "y": 0}, - {"matrix": [0, 6], "x": 12.25, "y": 0}, - {"matrix": [1, 6], "x": 13.25, "y": 0}, - {"matrix": [0, 7], "x": 14.25, "y": 0}, - {"matrix": [0, 8], "x": 15.25, "y": 0, "w": 2}, - {"matrix": [1, 8], "x": 17.25, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1, "y": 1}, - {"matrix": [2, 1], "x": 2.25, "y": 1, "w":1.5}, - {"matrix": [3, 1], "x": 3.75, "y": 1}, - {"matrix": [2, 2], "x": 4.75, "y": 1}, - {"matrix": [3, 2], "x": 5.75, "y": 1}, - {"matrix": [2, 3], "x": 6.75, "y": 1}, - {"matrix": [3, 3], "x": 7.75, "y": 1}, - {"matrix": [2, 4], "x": 8.75, "y": 1}, - {"matrix": [3, 4], "x": 9.75, "y": 1}, - {"matrix": [2, 5], "x": 10.75, "y": 1}, - {"matrix": [3, 5], "x": 11.75, "y": 1}, - {"matrix": [2, 6], "x": 12.75, "y": 1}, - {"matrix": [3, 6], "x": 13.75, "y": 1}, - {"matrix": [2, 7], "x": 14.75, "y": 1}, - {"matrix": [3, 8], "x": 17.25, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1, "y": 2}, - {"matrix": [4, 1], "x": 2.25, "y": 2, "w":1.25}, - {"matrix": [5, 1], "x": 4, "y": 2}, - {"matrix": [4, 2], "x": 5, "y": 2}, - {"matrix": [5, 2], "x": 6, "y": 2}, - {"matrix": [4, 3], "x": 7, "y": 2}, - {"matrix": [5, 3], "x": 8, "y": 2}, - {"matrix": [4, 4], "x": 9, "y": 2}, - {"matrix": [5, 4], "x": 10, "y": 2}, - {"matrix": [4, 5], "x": 11, "y": 2}, - {"matrix": [5, 5], "x": 12, "y": 2}, - {"matrix": [4, 6], "x": 13, "y": 2}, - {"matrix": [5, 6], "x": 14, "y": 2}, - {"matrix": [4, 7], "x": 15, "y": 2}, - {"matrix": [4, 8], "x": 16, "y": 1, "w":1.25, "h":2}, - {"matrix": [5, 8], "x": 17.25, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 1, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3, "w":1.25}, - {"matrix": [7, 1], "x": 3.5, "y": 3}, - {"matrix": [6, 2], "x": 4.5, "y": 3}, - {"matrix": [7, 2], "x": 5.5, "y": 3}, - {"matrix": [6, 3], "x": 6.5, "y": 3}, - {"matrix": [7, 3], "x": 7.5, "y": 3}, - {"matrix": [6, 4], "x": 8.5, "y": 3}, - {"matrix": [7, 4], "x": 9.5, "y": 3}, - {"matrix": [6, 5], "x": 10.5, "y": 3}, - {"matrix": [7, 5], "x": 11.5, "y": 3}, - {"matrix": [6, 6], "x": 12.5, "y": 3}, - {"matrix": [7, 6], "x": 13.5, "y": 3}, - {"matrix": [6, 7], "x": 14.5, "y": 3, "w":1.75}, - {"matrix": [6, 8], "x": 16.25, "y": 3}, - {"matrix": [7, 8], "x": 17.25, "y": 3}, - - {"matrix": [8, 0], "x": 0, "y": 4}, - {"matrix": [9, 0], "x": 1, "y": 4}, - {"matrix": [8, 1], "x": 2.25, "y": 4, "w":1.25}, - {"matrix": [9, 1], "x": 3.5, "y": 4, "w":1.25}, - {"matrix": [8, 2], "x": 4.75, "y": 4, "w":1.25}, - {"matrix": [8, 4], "x": 6, "y": 4, "w":7}, - {"matrix": [8, 6], "x": 12.25, "y": 4, "w":1.25}, - {"matrix": [9, 6], "x": 13.5, "y": 4, "w":1.25}, - {"matrix": [8, 7], "x": 15.25, "y": 4}, - {"matrix": [8, 8], "x": 16.25, "y": 4}, - {"matrix": [9, 8], "x": 17.25, "y": 4} - ] - } - } -} diff --git a/keyboards/nopunin10did/styrkatmel/keymaps/default/keymap.c b/keyboards/nopunin10did/styrkatmel/keymaps/default/keymap.c deleted file mode 100644 index 30feaae1ce..0000000000 --- a/keyboards/nopunin10did/styrkatmel/keymaps/default/keymap.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2024 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap BASE: (Base Layer) Default Layer - * .-------.,---------------------------------------------------------------. - * | F1| F2||Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BkSpc |Ins| - * |---|---||---------------------------------------------------------------| - * | F3| F4||Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Del| - * |---|---||---------------------------------------------------------------| - * | F5| F6||CAPS | A| S| D| F| G| H| J| K| L| ;| '| \| Ent|PgU| - * |---|---||---------------------------------------------------------------| - * | F7| F8||Shft| <>| Z| X| C| V| B| N| M| ,| .| /| Shift| Up|PgD| - * |---|---||---------------------------------------------------------------| - * | F9|F10||LCtl|LGUI|LAlt| Space | Alt| FN||| Lt| Dn| Rt| - * `-------'`---------------------------------------------------------------' - */ -[0] = LAYOUT( - KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, - KC_F3, KC_F4, 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_DEL, - KC_F5, KC_F6, 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_NUHS, KC_ENT, KC_PGUP, - KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - -[1] = LAYOUT( - QK_BOOT, KC_F2, 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_INS, - KC_F3, KC_F4, 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_DEL, - KC_F5, KC_F6, 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_NUHS, KC_ENT, KC_PGUP, - KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT - ), -}; diff --git a/keyboards/nopunin10did/styrkatmel/readme.md b/keyboards/nopunin10did/styrkatmel/readme.md deleted file mode 100644 index df9656d1a6..0000000000 --- a/keyboards/nopunin10did/styrkatmel/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Viktus Styrka Atmel Edition - -The Viktus Styrka is a 65% + left macro block created in a collaboration of OneCreativeMind and BlindAssassin111 (Viktus owner). - -This is a custom Atmel ISO Hotswap PCB for the Viktus Styrka designed and maintained by NoPunIn10Did. - -* Firmware Maintainer: [nopunin10did](https://github.com/nopunin10did) -* Hardware Supported: Styrka -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make nopunin10did/styrkatmel:default - -Flashing example for this keyboard: - - make nopunin10did/styrkatmel: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). - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at the top left in the macro columns (default: F1) 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`. For the default layout, hold down the rightmost 1.25u key on the bottom row, then tap the top-left key in the macro columns. \ No newline at end of file diff --git a/keyboards/novelkeys/nk1/keyboard.json b/keyboards/novelkeys/nk1/keyboard.json index cb055b71ca..0fa15cf9f2 100755 --- a/keyboards/novelkeys/nk1/keyboard.json +++ b/keyboards/novelkeys/nk1/keyboard.json @@ -33,6 +33,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk20/keymaps/default/keymap.c b/keyboards/novelkeys/nk20/keymaps/default/keymap.c index 315f89e8c1..26a066f150 100644 --- a/keyboards/novelkeys/nk20/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/default/keymap.c @@ -26,9 +26,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* FN */ KC_NUM, KC_TRNS, KC_TRNS, - KC_TRNS, RM_SPDD, RM_SPDU, KC_TRNS, - RM_TOGG, RM_NEXT, RM_HUED, KC_TRNS, - RM_SATD, RM_SATU, RM_HUEU, - RM_VALD, RM_VALU, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, + RGB_SAD, RGB_SAI, RGB_HUI, + RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/novelkeys/nk65/v1/keyboard.json b/keyboards/novelkeys/nk65/base/keyboard.json similarity index 100% rename from keyboards/novelkeys/nk65/v1/keyboard.json rename to keyboards/novelkeys/nk65/base/keyboard.json diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index 75c5c8638c..97350e34b4 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -1,6 +1,89 @@ -// Copyright 2019 Yiancar -// SPDX-License-Identifier: GPL-2.0-or-later +/* +Copyright 2019 Yiancar + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + #pragma once +/* Backlight options */ + +#define RGB_BACKLIGHT_ENABLED 1 + +#define RGB_BACKLIGHT_NK65 + +// they aren't really used if RGB_BACKLIGHT_HS60 defined +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 +#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 +#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 +#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 +#define RGB_BACKLIGHT_USE_ISO_ENTER 0 +#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 + +// disable backlight when USB suspended (PC sleep/hibernate/shutdown) +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 + +// disable backlight after timeout in minutes, 0 = no timeout +#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 + +// the default brightness +#define RGB_BACKLIGHT_BRIGHTNESS 255 + +// the default effect (RGB test) +#define RGB_BACKLIGHT_EFFECT 6 + +// the default effect speed (0-3) +#define RGB_BACKLIGHT_EFFECT_SPEED 0 + +// the default color1 and color2 +#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } +#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } + #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA +#define IS31FL3733_LED_COUNT 128 + +// These define which keys in the matrix are alphas/mods +// Used for backlight effects so colors are different for +// alphas vs. mods +// Each value is for a row, bit 0 is column 0 +// Alpha=0 Mod=1 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0100000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0110000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111111000000111 + +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } + +// Backlight config starts after VIA's EEPROM usage, +// dynamic keymaps start after this. +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32 + +/* Custom EEPROM start addressing. This is to support + * both 128kb and 256kb versions of F303. + * Register 0x1FFFF7CC holds the size of the flash memory. + */ +#ifndef FLASHSIZE_BASE +# define FLASHSIZE_BASE ((uint32_t)0x1FFFF7CCU) /*!< FLASH Size register base address */ +#endif +#define FEE_MCU_FLASH_SIZE_IGNORE_CHECK +#define FEE_MCU_FLASH_SIZE \ +({ \ + uint16_t (*flash_size) = (uint16_t*)FLASHSIZE_BASE; \ + *flash_size; \ +}) diff --git a/keyboards/novelkeys/nk65/halconf.h b/keyboards/novelkeys/nk65/halconf.h index 481d19c467..e6d7e3c2ed 100644 --- a/keyboards/novelkeys/nk65/halconf.h +++ b/keyboards/novelkeys/nk65/halconf.h @@ -1,7 +1,33 @@ -// Copyright 2019 Yiancar -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/nk65/halconf.h -r platforms/chibios/QMK_PROTON_C/configs/halconf.h` + */ + #pragma once -#define HAL_USE_I2C TRUE +#define HAL_USE_PWM FALSE + +#define HAL_USE_SPI FALSE + +#define PAL_USE_CALLBACKS FALSE + +#define PAL_USE_WAIT FALSE #include_next + diff --git a/keyboards/novelkeys/nk65/info.json b/keyboards/novelkeys/nk65/info.json index 63c8af9faf..e3bff19346 100755 --- a/keyboards/novelkeys/nk65/info.json +++ b/keyboards/novelkeys/nk65/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "NK65", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", @@ -11,133 +12,11 @@ "bootmagic": true, "extrakey": true, "mousekey": true, - "rgb_matrix": true, "nkro": true }, "processor": "STM32F303", "bootloader": "stm32-dfu", - "rgb_matrix": { - "driver": "is31fl3733", - "sleep": true, - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "layout": [ - { "flags": 4, "matrix": [0, 0], "x": 8, "y": 7 }, - { "flags": 4, "matrix": [0, 1], "x": 22, "y": 7 }, - { "flags": 4, "matrix": [0, 2], "x": 35, "y": 7 }, - { "flags": 4, "matrix": [0, 3], "x": 49, "y": 7 }, - { "flags": 4, "matrix": [0, 4], "x": 63, "y": 7 }, - { "flags": 4, "matrix": [0, 5], "x": 77, "y": 7 }, - { "flags": 4, "matrix": [0, 6], "x": 91, "y": 7 }, - { "flags": 4, "matrix": [0, 7], "x": 105, "y": 7 }, - { "flags": 4, "matrix": [0, 8], "x": 118, "y": 7 }, - { "flags": 4, "matrix": [0, 9], "x": 132, "y": 7 }, - { "flags": 4, "matrix": [0, 10], "x": 146, "y": 7 }, - { "flags": 4, "matrix": [0, 11], "x": 160, "y": 7 }, - { "flags": 4, "matrix": [0, 12], "x": 174, "y": 7 }, - { "flags": 4, "matrix": [0, 13], "x": 195, "y": 7 }, - { "flags": 4, "matrix": [0, 14], "x": 215, "y": 7 }, - { "flags": 4, "matrix": [1, 0], "x": 11, "y": 19 }, - { "flags": 4, "matrix": [1, 1], "x": 28, "y": 19 }, - { "flags": 4, "matrix": [1, 2], "x": 42, "y": 19 }, - { "flags": 4, "matrix": [1, 3], "x": 56, "y": 19 }, - { "flags": 4, "matrix": [1, 4], "x": 70, "y": 19 }, - { "flags": 4, "matrix": [1, 5], "x": 84, "y": 19 }, - { "flags": 4, "matrix": [1, 6], "x": 98, "y": 19 }, - { "flags": 4, "matrix": [1, 7], "x": 112, "y": 19 }, - { "flags": 4, "matrix": [1, 8], "x": 125, "y": 19 }, - { "flags": 4, "matrix": [1, 9], "x": 139, "y": 19 }, - { "flags": 4, "matrix": [1, 10], "x": 153, "y": 19 }, - { "flags": 4, "matrix": [1, 11], "x": 167, "y": 19 }, - { "flags": 4, "matrix": [1, 12], "x": 181, "y": 19 }, - { "flags": 4, "matrix": [2, 12], "x": 198, "y": 19 }, - { "flags": 4, "matrix": [1, 14], "x": 215, "y": 19 }, - { "flags": 4, "matrix": [2, 0], "x": 13, "y": 32 }, - { "flags": 4, "matrix": [2, 1], "x": 32, "y": 32 }, - { "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 }, - { "flags": 4, "matrix": [2, 3], "x": 60, "y": 32 }, - { "flags": 4, "matrix": [2, 4], "x": 73, "y": 32 }, - { "flags": 4, "matrix": [2, 5], "x": 87, "y": 32 }, - { "flags": 4, "matrix": [2, 6], "x": 101, "y": 32 }, - { "flags": 4, "matrix": [2, 7], "x": 115, "y": 32 }, - { "flags": 4, "matrix": [2, 8], "x": 129, "y": 32 }, - { "flags": 4, "matrix": [2, 9], "x": 143, "y": 32 }, - { "flags": 4, "matrix": [2, 10], "x": 156, "y": 32 }, - { "flags": 4, "matrix": [2, 11], "x": 170, "y": 32 }, - { "flags": 4, "matrix": [2, 13], "x": 193, "y": 32 }, - { "flags": 4, "matrix": [2, 14], "x": 215, "y": 32 }, - { "flags": 4, "matrix": [3, 0], "x": 16, "y": 44 }, - { "flags": 4, "matrix": [3, 2], "x": 39, "y": 44 }, - { "flags": 4, "matrix": [3, 3], "x": 53, "y": 44 }, - { "flags": 4, "matrix": [3, 4], "x": 67, "y": 44 }, - { "flags": 4, "matrix": [3, 5], "x": 80, "y": 44 }, - { "flags": 4, "matrix": [3, 6], "x": 94, "y": 44 }, - { "flags": 4, "matrix": [3, 7], "x": 108, "y": 44 }, - { "flags": 4, "matrix": [3, 8], "x": 122, "y": 44 }, - { "flags": 4, "matrix": [3, 9], "x": 136, "y": 44 }, - { "flags": 4, "matrix": [3, 10], "x": 150, "y": 44 }, - { "flags": 4, "matrix": [3, 11], "x": 163, "y": 44 }, - { "flags": 4, "matrix": [3, 12], "x": 182, "y": 44 }, - { "flags": 4, "matrix": [3, 13], "x": 201, "y": 44 }, - { "flags": 4, "matrix": [3, 14], "x": 215, "y": 44 }, - { "flags": 4, "matrix": [4, 0], "x": 9, "y": 56 }, - { "flags": 4, "matrix": [4, 1], "x": 27, "y": 56 }, - { "flags": 4, "matrix": [4, 2], "x": 44, "y": 56 }, - { "flags": 4, "matrix": [4, 6], "x": 96, "y": 56 }, - { "flags": 4, "matrix": [4, 9], "x": 146, "y": 56 }, - { "flags": 4, "matrix": [4, 10], "x": 160, "y": 56 }, - { "flags": 4, "matrix": [4, 11], "x": 174, "y": 56 }, - { "flags": 4, "matrix": [4, 12], "x": 188, "y": 56 }, - { "flags": 4, "matrix": [4, 13], "x": 201, "y": 56 }, - { "flags": 4, "matrix": [4, 14], "x": 215, "y": 56 }, - { "flags": 1, "x": 224, "y": 0 }, - { "flags": 1, "x": 224, "y": 5 }, - { "flags": 1, "x": 224, "y": 10 } - ] - }, + "board": "QMK_PROTON_C", "community_layouts": ["65_ansi"], "layouts": { "LAYOUT_65_ansi": { diff --git a/keyboards/novelkeys/nk65/keymaps/default/keymap.c b/keyboards/novelkeys/nk65/keymaps/default/keymap.c index 95a1d7f367..3a043cbfe7 100755 --- a/keyboards/novelkeys/nk65/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk65/keymaps/default/keymap.c @@ -1,21 +1,46 @@ -// Copyright 2019 Yiancar -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2019 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi( /* Base */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), +[0] = LAYOUT_65_ansi( /* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_65_ansi( /* FN */ - 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, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, RM_TOGG, _______, _______, RM_SATD, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_NEXT, RM_HUED, RM_HUEU, _______, _______, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, - KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______ - ) +[1] = LAYOUT_65_ansi( /* FN */ + 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, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/novelkeys/nk65/keymaps/default/readme.md b/keyboards/novelkeys/nk65/keymaps/default/readme.md new file mode 100755 index 0000000000..27bcd0501d --- /dev/null +++ b/keyboards/novelkeys/nk65/keymaps/default/readme.md @@ -0,0 +1,6 @@ +The default keymap for NK65. VIA support disabled. +========================================================= + +![Layout image](https://i.imgur.com/DL0CjJO.png) + +Default layer is normal ANSI 65% \ No newline at end of file diff --git a/keyboards/novelkeys/nk65/mcuconf.h b/keyboards/novelkeys/nk65/mcuconf.h index 9024dd88ab..f37f37c179 100644 --- a/keyboards/novelkeys/nk65/mcuconf.h +++ b/keyboards/novelkeys/nk65/mcuconf.h @@ -1,8 +1,43 @@ -// Copyright 2019 Yiancar -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/nk65/mcuconf.h -r platforms/chibios/QMK_PROTON_C/configs/mcuconf.h` + */ + #pragma once #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE + +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 FALSE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 FALSE + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 FALSE + +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 FALSE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE + diff --git a/keyboards/novelkeys/nk65/nk65.c b/keyboards/novelkeys/nk65/nk65.c index 16750481cb..dd0a94a8e6 100755 --- a/keyboards/novelkeys/nk65/nk65.c +++ b/keyboards/novelkeys/nk65/nk65.c @@ -1,8 +1,26 @@ -// Copyright 2019 Yiancar -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" +/* Copyright 2019 Yiancar + * + * 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 . + */ +#ifndef RGB_BACKLIGHT_NK65 +#error RGB_BACKLIGHT_NK65 not defined, recheck config.h +#endif -#if defined(RGB_MATRIX_ENABLE) +#include "nk65.h" +#include "drivers/led/issi/is31fl3733.h" + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NK65) const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -10,79 +28,135 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { * | | G location * | | | B location * | | | | */ - {0, SW2_CS1, SW1_CS1, SW3_CS1}, //LA1 - esc - {0, SW2_CS2, SW1_CS2, SW3_CS2}, //LA5 - 1 - {0, SW2_CS3, SW1_CS3, SW3_CS3}, //LA9 - 2 - {0, SW2_CS4, SW1_CS4, SW3_CS4}, //LA13 - 3 - {0, SW2_CS5, SW1_CS5, SW3_CS5}, //LA17 - 4 - {0, SW2_CS6, SW1_CS6, SW3_CS6}, //LA21 - 5 - {0, SW2_CS7, SW1_CS7, SW3_CS7}, //LA25 - 6 - {0, SW2_CS8, SW1_CS8, SW3_CS8}, //LA29 - 7 - {0, SW2_CS9, SW1_CS9, SW3_CS9}, //LA33 - 8 - {0, SW2_CS10, SW1_CS10, SW3_CS10}, //LA37 - 9 - {0, SW2_CS11, SW1_CS11, SW3_CS11}, //LA41 - 0 - {0, SW2_CS12, SW1_CS12, SW3_CS12}, //LA45 - - - {0, SW2_CS13, SW1_CS13, SW3_CS13}, //LA49 - = - {0, SW2_CS14, SW1_CS14, SW3_CS14}, //LA53 - bspace - {1, SW2_CS1, SW1_CS1, SW3_CS1}, //LB1 - home - {0, SW5_CS1, SW4_CS1, SW6_CS1}, //LA2 - tab - {0, SW5_CS2, SW4_CS2, SW6_CS2}, //LA6 - q - {0, SW5_CS3, SW4_CS3, SW6_CS3}, //LA10 - w - {0, SW5_CS4, SW4_CS4, SW6_CS4}, //LA14 - e - {0, SW5_CS5, SW4_CS5, SW6_CS5}, //LA18 - r - {0, SW5_CS6, SW4_CS6, SW6_CS6}, //LA22 - t - {0, SW5_CS7, SW4_CS7, SW6_CS7}, //LA26 - y - {0, SW5_CS8, SW4_CS8, SW6_CS8}, //LA30 - u - {0, SW5_CS9, SW4_CS9, SW6_CS9}, //LA34 - i - {0, SW5_CS10, SW4_CS10, SW6_CS10}, //LA38 - o - {0, SW5_CS11, SW4_CS11, SW6_CS11}, //LA42 - p - {0, SW5_CS12, SW4_CS12, SW6_CS12}, //LA46 - [ - {0, SW5_CS13, SW4_CS13, SW6_CS13}, //LA50 - ] - {0, SW5_CS14, SW4_CS14, SW6_CS14}, //LA54 - | - {1, SW5_CS1, SW4_CS1, SW6_CS1}, //LB2 - pgup - {0, SW8_CS1, SW7_CS1, SW9_CS1}, //LA3 - caps - {0, SW8_CS2, SW7_CS2, SW9_CS2}, //LA7 - a - {0, SW8_CS3, SW7_CS3, SW9_CS3}, //LA11 - s - {0, SW8_CS4, SW7_CS4, SW9_CS4}, //LA15 - d - {0, SW8_CS5, SW7_CS5, SW9_CS5}, //LA19 - f - {0, SW8_CS6, SW7_CS6, SW9_CS6}, //LA23 - g - {0, SW8_CS7, SW7_CS7, SW9_CS7}, //LA27 - h - {0, SW8_CS8, SW7_CS8, SW9_CS8}, //LA31 - j - {0, SW8_CS9, SW7_CS9, SW9_CS9}, //LA35 - k - {0, SW8_CS10, SW7_CS10, SW9_CS10}, //LA39 - l - {0, SW8_CS11, SW7_CS11, SW9_CS11}, //LA43 - ; - {0, SW8_CS12, SW7_CS12, SW9_CS12}, //LA47 - ' - {0, SW8_CS14, SW7_CS14, SW9_CS14}, //LA55 - ent - {1, SW2_CS2, SW1_CS2, SW3_CS2}, //LB5 - pgdn - {0, SW11_CS1, SW10_CS1, SW12_CS1}, //LA4 - lshft - {0, SW11_CS2, SW10_CS2, SW12_CS2}, //LA8 - z - {0, SW11_CS3, SW10_CS3, SW12_CS3}, //LA12 - x - {0, SW11_CS4, SW10_CS4, SW12_CS4}, //LA16 - c - {0, SW11_CS5, SW10_CS5, SW12_CS5}, //LA20 - v - {0, SW11_CS6, SW10_CS6, SW12_CS6}, //LA24 - b - {0, SW11_CS7, SW10_CS7, SW12_CS7}, //LA28 - n - {0, SW11_CS8, SW10_CS8, SW12_CS8}, //LA32 - m - {0, SW11_CS9, SW10_CS9, SW12_CS9}, //LA36 - < - {0, SW11_CS10, SW10_CS10, SW12_CS10}, //LA40 - > - {0, SW11_CS11, SW10_CS11, SW12_CS11}, //LA44 - ? - {0, SW8_CS13, SW7_CS13, SW9_CS13}, //LA51 - rshift - {0, SW11_CS13, SW10_CS13, SW12_CS13}, //LA52 - up - {1, SW8_CS1, SW7_CS1, SW9_CS1}, //LB3 - end - {0, SW2_CS15, SW1_CS15, SW3_CS15}, //LA57 - lctrl - {0, SW5_CS15, SW4_CS15, SW6_CS15}, //LA58 - lgui - {0, SW8_CS15, SW7_CS15, SW9_CS15}, //LA59 - lalt - {0, SW11_CS15, SW10_CS15, SW12_CS15}, //LA60 space - {0, SW11_CS12, SW10_CS12, SW12_CS12}, //LA48 - ralt - {0, SW5_CS16, SW4_CS16, SW6_CS16}, //LA62 - fn - {0, SW8_CS16, SW7_CS16, SW9_CS16}, //LA63 - rctrl - {0, SW11_CS16, SW10_CS16, SW12_CS16}, //LA64 - left - {0, SW11_CS14, SW10_CS14, SW12_CS14}, //LA56 - down - {1, SW11_CS1, SW10_CS1, SW12_CS1}, //LB4 - right + {0, SW2_CS1, SW1_CS1, SW3_CS1}, //LA1 + {0, SW5_CS1, SW4_CS1, SW6_CS1}, //LA2 + {0, SW8_CS1, SW7_CS1, SW9_CS1}, //LA3 + {0, SW11_CS1, SW10_CS1, SW12_CS1}, //LA4 + {0, SW2_CS2, SW1_CS2, SW3_CS2}, //LA5 + {0, SW5_CS2, SW4_CS2, SW6_CS2}, //LA6 + {0, SW8_CS2, SW7_CS2, SW9_CS2}, //LA7 + {0, SW11_CS2, SW10_CS2, SW12_CS2}, //LA8 + {0, SW2_CS3, SW1_CS3, SW3_CS3}, //LA9 + {0, SW5_CS3, SW4_CS3, SW6_CS3}, //LA10 + {0, SW8_CS3, SW7_CS3, SW9_CS3}, //LA11 + {0, SW11_CS3, SW10_CS3, SW12_CS3}, //LA12 + {0, SW2_CS4, SW1_CS4, SW3_CS4}, //LA13 + {0, SW5_CS4, SW4_CS4, SW6_CS4}, //LA14 + {0, SW8_CS4, SW7_CS4, SW9_CS4}, //LA15 + {0, SW11_CS4, SW10_CS4, SW12_CS4}, //LA16 + {0, SW2_CS5, SW1_CS5, SW3_CS5}, //LA17 + {0, SW5_CS5, SW4_CS5, SW6_CS5}, //LA18 + {0, SW8_CS5, SW7_CS5, SW9_CS5}, //LA19 + {0, SW11_CS5, SW10_CS5, SW12_CS5}, //LA20 + {0, SW2_CS6, SW1_CS6, SW3_CS6}, //LA21 + {0, SW5_CS6, SW4_CS6, SW6_CS6}, //LA22 + {0, SW8_CS6, SW7_CS6, SW9_CS6}, //LA23 + {0, SW11_CS6, SW10_CS6, SW12_CS6}, //LA24 + {0, SW2_CS7, SW1_CS7, SW3_CS7}, //LA25 + {0, SW5_CS7, SW4_CS7, SW6_CS7}, //LA26 + {0, SW8_CS7, SW7_CS7, SW9_CS7}, //LA27 + {0, SW11_CS7, SW10_CS7, SW12_CS7}, //LA28 + {0, SW2_CS8, SW1_CS8, SW3_CS8}, //LA29 + {0, SW5_CS8, SW4_CS8, SW6_CS8}, //LA30 + {0, SW8_CS8, SW7_CS8, SW9_CS8}, //LA31 + {0, SW11_CS8, SW10_CS8, SW12_CS8}, //LA32 + {0, SW2_CS9, SW1_CS9, SW3_CS9}, //LA33 + {0, SW5_CS9, SW4_CS9, SW6_CS9}, //LA34 + {0, SW8_CS9, SW7_CS9, SW9_CS9}, //LA35 + {0, SW11_CS9, SW10_CS9, SW12_CS9}, //LA36 + {0, SW2_CS10, SW1_CS10, SW3_CS10}, //LA37 + {0, SW5_CS10, SW4_CS10, SW6_CS10}, //LA38 + {0, SW8_CS10, SW7_CS10, SW9_CS10}, //LA39 + {0, SW11_CS10, SW10_CS10, SW12_CS10}, //LA40 + {0, SW2_CS11, SW1_CS11, SW3_CS11}, //LA41 + {0, SW5_CS11, SW4_CS11, SW6_CS11}, //LA42 + {0, SW8_CS11, SW7_CS11, SW9_CS11}, //LA43 + {0, SW11_CS11, SW10_CS11, SW12_CS11}, //LA44 + {0, SW2_CS12, SW1_CS12, SW3_CS12}, //LA45 + {0, SW5_CS12, SW4_CS12, SW6_CS12}, //LA46 + {0, SW8_CS12, SW7_CS12, SW9_CS12}, //LA47 + {0, SW11_CS12, SW10_CS12, SW12_CS12}, //LA48 + {0, SW2_CS13, SW1_CS13, SW3_CS13}, //LA49 + {0, SW5_CS13, SW4_CS13, SW6_CS13}, //LA50 + {0, SW8_CS13, SW7_CS13, SW9_CS13}, //LA51 + {0, SW11_CS13, SW10_CS13, SW12_CS13}, //LA52 + {0, SW2_CS14, SW1_CS14, SW3_CS14}, //LA53 + {0, SW5_CS14, SW4_CS14, SW6_CS14}, //LA54 + {0, SW8_CS14, SW7_CS14, SW9_CS14}, //LA55 + {0, SW11_CS14, SW10_CS14, SW12_CS14}, //LA56 + {0, SW2_CS15, SW1_CS15, SW3_CS15}, //LA57 + {0, SW5_CS15, SW4_CS15, SW6_CS15}, //LA58 + {0, SW8_CS15, SW7_CS15, SW9_CS15}, //LA59 + {0, SW11_CS15, SW10_CS15, SW12_CS15}, //LA60 + {0, SW2_CS16, SW1_CS16, SW3_CS16}, //LA61 + {0, SW5_CS16, SW4_CS16, SW6_CS16}, //LA62 + {0, SW8_CS16, SW7_CS16, SW9_CS16}, //LA63 + {0, SW11_CS16, SW10_CS16, SW12_CS16}, //LA64 - // Mapped with "dead" locations so each indicator is logically separate - {1, SW2_CS3, SW7_CS2, SW3_CS3}, //LB7 - top indi - {1, SW5_CS2, SW10_CS2, SW6_CS2}, //LB6 - mid indi - {1, SW11_CS2, SW4_CS2, SW12_CS2}, //LB6 - bot indi + {1, SW2_CS1, SW1_CS1, SW3_CS1}, //LB1 + {1, SW5_CS1, SW4_CS1, SW6_CS1}, //LB2 + {1, SW8_CS1, SW7_CS1, SW9_CS1}, //LB3 + {1, SW11_CS1, SW10_CS1, SW12_CS1}, //LB4 + {1, SW2_CS2, SW1_CS2, SW3_CS2}, //LB5 + {1, SW5_CS2, SW4_CS2, SW6_CS2}, //LB6 + {1, SW8_CS2, SW7_CS2, SW9_CS2}, //LB7 + {1, SW11_CS2, SW10_CS2, SW12_CS2}, //LB8 + {1, SW2_CS3, SW1_CS3, SW3_CS3}, //LB9 + {1, SW5_CS3, SW4_CS3, SW6_CS3}, //LB10 + {1, SW8_CS3, SW7_CS3, SW9_CS3}, //LB11 + {1, SW11_CS3, SW10_CS3, SW12_CS3}, //LB12 + {1, SW2_CS4, SW1_CS4, SW3_CS4}, //LB13 + {1, SW5_CS4, SW4_CS4, SW6_CS4}, //LB14 + {1, SW8_CS4, SW7_CS4, SW9_CS4}, //LB15 + {1, SW11_CS4, SW10_CS4, SW12_CS4}, //LB16 + {1, SW2_CS5, SW1_CS5, SW3_CS5}, //LB17 + {1, SW5_CS5, SW4_CS5, SW6_CS5}, //LB18 + {1, SW8_CS5, SW7_CS5, SW9_CS5}, //LB19 + {1, SW11_CS5, SW10_CS5, SW12_CS5}, //LB20 + {1, SW2_CS6, SW1_CS6, SW3_CS6}, //LB21 + {1, SW5_CS6, SW4_CS6, SW6_CS6}, //LB22 + {1, SW8_CS6, SW7_CS6, SW9_CS6}, //LB23 + {1, SW11_CS6, SW10_CS6, SW12_CS6}, //LB24 + {1, SW2_CS7, SW1_CS7, SW3_CS7}, //LB25 + {1, SW5_CS7, SW4_CS7, SW6_CS7}, //LB26 + {1, SW8_CS7, SW7_CS7, SW9_CS7}, //LB27 + {1, SW11_CS7, SW10_CS7, SW12_CS7}, //LB28 + {1, SW2_CS8, SW1_CS8, SW3_CS8}, //LB29 + {1, SW5_CS8, SW4_CS8, SW6_CS8}, //LB30 + {1, SW8_CS8, SW7_CS8, SW9_CS8}, //LB31 + {1, SW11_CS8, SW10_CS8, SW12_CS8}, //LB32 + {1, SW2_CS9, SW1_CS9, SW3_CS9}, //LB33 + {1, SW5_CS9, SW4_CS9, SW6_CS9}, //LB34 + {1, SW8_CS9, SW7_CS9, SW9_CS9}, //LB35 + {1, SW11_CS9, SW10_CS9, SW12_CS9}, //LB36 + {1, SW2_CS10, SW1_CS10, SW3_CS10}, //LB37 + {1, SW5_CS10, SW4_CS10, SW6_CS10}, //LB38 + {1, SW8_CS10, SW7_CS10, SW9_CS10}, //LB39 + {1, SW11_CS10, SW10_CS10, SW12_CS10}, //LB40 + {1, SW2_CS11, SW1_CS11, SW3_CS11}, //LB41 + {1, SW5_CS11, SW4_CS11, SW6_CS11}, //LB42 + {1, SW8_CS11, SW7_CS11, SW9_CS11}, //LB43 + {1, SW11_CS11, SW10_CS11, SW12_CS11}, //LB44 + {1, SW2_CS12, SW1_CS12, SW3_CS12}, //LB45 + {1, SW5_CS12, SW4_CS12, SW6_CS12}, //LB46 + {1, SW8_CS12, SW7_CS12, SW9_CS12}, //LB47 + {1, SW11_CS12, SW10_CS12, SW12_CS12}, //LB48 + {1, SW2_CS13, SW1_CS13, SW3_CS13}, //LB49 + {1, SW5_CS13, SW4_CS13, SW6_CS13}, //LB50 + {1, SW8_CS13, SW7_CS13, SW9_CS13}, //LB51 + {1, SW11_CS13, SW10_CS13, SW12_CS13}, //LB52 + {1, SW2_CS14, SW1_CS14, SW3_CS14}, //LB53 + {1, SW5_CS14, SW4_CS14, SW6_CS14}, //LB54 + {1, SW8_CS14, SW7_CS14, SW9_CS14}, //LB55 + {1, SW11_CS14, SW10_CS14, SW12_CS14}, //LB56 + {1, SW2_CS15, SW1_CS15, SW3_CS15}, //LB57 + {1, SW5_CS15, SW4_CS15, SW6_CS15}, //LB58 + {1, SW8_CS15, SW7_CS15, SW9_CS15}, //LB59 + {1, SW11_CS15, SW10_CS15, SW12_CS15}, //LB60 + {1, SW2_CS16, SW1_CS16, SW3_CS16}, //LB61 + {1, SW5_CS16, SW4_CS16, SW6_CS16}, //LB62 + {1, SW8_CS16, SW7_CS16, SW9_CS16}, //LB63 + {1, SW11_CS16, SW10_CS16, SW12_CS16}, //LB64 }; #endif @@ -91,29 +165,26 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { * Middle LED is blue and red. LED driver 2 RGB 6 Red and Blue channel * Bottom LED is red only LED driver 2 RGB 6 Green channel. */ -bool rgb_matrix_indicators_kb(void) { - if (!rgb_matrix_indicators_user()) { - return false; - } - - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(68, RGB_WHITE); //0, 0xFF, 0); +void led_update_ports(led_t led_state) { + if (led_state.caps_lock) { + is31fl3733_set_color( 7+64-1, 0, 255, 0 ); } else { - rgb_matrix_set_color(68, RGB_OFF); + is31fl3733_set_color( 7+64-1, 0, 0, 0 ); } +} - layer_state_t state = layer_state|default_layer_state; +__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { + uint8_t R = 0; + uint8_t G = 0; + uint8_t B = 0; if (state & (1UL << 1)) { - rgb_matrix_set_color(69, RGB_WHITE); // 0xFF, 0, 0xFF); - } else { - rgb_matrix_set_color(69, RGB_OFF); + R = 255; + B = 255; } - if (state & (1UL << 2)) { - rgb_matrix_set_color(70, RGB_WHITE); //0, 0xFF, 0); - } else { - rgb_matrix_set_color(70, RGB_OFF); + G = 255; } - return true; + is31fl3733_set_color( 6+64-1, R, G, B ); + return state; } diff --git a/keyboards/novelkeys/nk65/nk65.h b/keyboards/novelkeys/nk65/nk65.h new file mode 100755 index 0000000000..c75541be93 --- /dev/null +++ b/keyboards/novelkeys/nk65/nk65.h @@ -0,0 +1,20 @@ +/* Copyright 2019 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" +#include "../wilba_tech/wt_rgb_backlight_keycodes.h" +#include "via.h" diff --git a/keyboards/novelkeys/nk65/readme.md b/keyboards/novelkeys/nk65/readme.md index 5e30f54b31..38f66500b9 100755 --- a/keyboards/novelkeys/nk65/readme.md +++ b/keyboards/novelkeys/nk65/readme.md @@ -1,29 +1,39 @@ -# NK65 +NK65 +========= ![NK65](https://i.imgur.com/EXNbVpL.jpg) -> NOTE: For PCBs with revision v1.4 or later please use nk65/v1_4 in the make command. - This is a standard fixed layout 65% PCB. It supports VIA and full per-key RGB. -* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A 65% keyboard with STM32F303CC -* Hardware Availability: https://novelkeys.xyz/ +Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +Hardware Supported: A 65% keyboard with STM32F303CC +Hardware Availability: https://novelkeys.xyz/ + +Due to the RGB implementation, the NK65 is currently not compatible with community layouts. + +NOTE: For PCBs with revision v1.4 or later please use nk65/v1_4 in the make command. + +## Instructions + +### Build Make example for this keyboard (after setting up your build environment): - make novelkeys/nk65/v1:default - -Flashing example for this keyboard: - - make novelkeys/nk65/v1:default:flash + make novelkeys/nk65:via 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 +### Reset -Enter the bootloader in 3 ways: +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape -* **Bootmagic reset**: Hold down the top left key 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 +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make nk65::dfu-util`) diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk new file mode 100755 index 0000000000..c0d789a5a6 --- /dev/null +++ b/keyboards/novelkeys/nk65/rules.mk @@ -0,0 +1,15 @@ +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +NO_SUSPEND_POWER_DOWN = yes + +CIE1931_CURVE = yes +I2C_DRIVER_REQUIRED = yes + +# project specific files +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ + drivers/led/issi/is31fl3733.c \ + quantum/color.c + +DEFAULT_FOLDER = novelkeys/nk65/base diff --git a/keyboards/novelkeys/nk65/v1_4/readme.md b/keyboards/novelkeys/nk65/v1_4/readme.md index 11f581ff31..399919a8be 100755 --- a/keyboards/novelkeys/nk65/v1_4/readme.md +++ b/keyboards/novelkeys/nk65/v1_4/readme.md @@ -1,29 +1,39 @@ -# NK65 V1.4 +NK65 V1.4 +========= ![NK65](https://i.imgur.com/EXNbVpL.jpg) -> NOTE: Please use this directory only if you have revision 1.4 PCB or later. +NOTE: Please use this directory only if you have revision 1.4 PCB or later. This is a standard fixed layout 65% PCB. It supports VIA and full per-key RGB. -* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A 65% keyboard with STM32F303CC -* Hardware Availability: https://novelkeys.xyz/ +Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +Hardware Supported: A 65% keyboard with STM32F303CC +Hardware Availability: https://novelkeys.xyz/ + +Due to the RGB implementation, the NK65 is currently not compatible with community layouts. + +## Instructions + +### Build Make example for this keyboard (after setting up your build environment): - make novelkeys/nk65/v1_4:default - -Flashing example for this keyboard: - - make novelkeys/nk65/v1_4:default:flash + make nk65/v1_4:via 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 +### Reset -Enter the bootloader in 3 ways: +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape -* **Bootmagic reset**: Hold down the top left key 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 +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make nk65/v1_4::dfu-util`) diff --git a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c index d675d70ca5..1a2496db27 100755 --- a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c @@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/novelkeys/nk87/keyboard.json b/keyboards/novelkeys/nk87/keyboard.json index 8b7f8fed4d..9573ff4c9c 100755 --- a/keyboards/novelkeys/nk87/keyboard.json +++ b/keyboards/novelkeys/nk87/keyboard.json @@ -22,7 +22,6 @@ "processor": "STM32F303", "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", - "community_layouts": ["tkl_f13_ansi_tsangan"], "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan" }, diff --git a/keyboards/novelkeys/nk87b/keyboard.json b/keyboards/novelkeys/nk87b/keyboard.json index 563f502aae..f81793acee 100755 --- a/keyboards/novelkeys/nk87b/keyboard.json +++ b/keyboards/novelkeys/nk87b/keyboard.json @@ -80,7 +80,6 @@ }, "processor": "STM32F072", "bootloader": "stm32-dfu", - "community_layouts": ["tkl_f13_ansi_tsangan"], "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan" }, diff --git a/keyboards/novelkeys/nk87b/keymaps/default/keymap.c b/keyboards/novelkeys/nk87b/keymaps/default/keymap.c index e43ea201f6..6960d0bdfa 100644 --- a/keyboards/novelkeys/nk87b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk87b/keymaps/default/keymap.c @@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/novelkeys/nk_classic_tkl/keyboard.json b/keyboards/novelkeys/nk_classic_tkl/keyboard.json index 2df8322ed8..53d10ce32a 100755 --- a/keyboards/novelkeys/nk_classic_tkl/keyboard.json +++ b/keyboards/novelkeys/nk_classic_tkl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c index 6f647f54f9..a99350ef7f 100644 --- a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), }; @@ -43,10 +43,6 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { for (uint8_t i = 50; i <= 55; i++) { rgb_matrix_set_color(i, 255, 86, 0); } - } else if ((rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP) || (rgb_matrix_get_mode() == RGB_MATRIX_DIGITAL_RAIN)) { - for (uint8_t i = 50; i <= 55; i++) { - rgb_matrix_set_color(i, 0, 0, 0); - } } return false; } diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/config.h b/keyboards/novelkeys/nk_classic_tkl_iso/config.h deleted file mode 100644 index 62744a2589..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB options */ - -#define WS2812_PWM_DRIVER PWMD3 -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_PAL_MODE 1 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 -#define WS2812_DMA_CHANNEL 3 diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h b/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h deleted file mode 100644 index c7f5bab5c8..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json b/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json deleted file mode 100755 index 9944708955..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "manufacturer": "Yiancar-Designs", - "keyboard_name": "NK_ Classic TKL ISO", - "maintainer": "Yiancar", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1"], - "rows": ["B11", "B10", "B2", "B1", "A9", "A5"] - }, - "processor": "STM32F072", - "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 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, - {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 51, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 83, "y": 0, "flags": 1}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, - {"matrix": [0, 7], "x": 109, "y": 0, "flags": 1}, - {"matrix": [0, 8], "x": 122, "y": 0, "flags": 1}, - {"matrix": [0, 9], "x": 141, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 166, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, - {"matrix": [0, 14], "x": 195, "y": 0, "flags": 1}, - {"matrix": [0, 15], "x": 208, "y": 0, "flags": 1}, - {"matrix": [0, 16], "x": 221, "y": 0, "flags": 1}, - {"matrix": [1, 16], "x": 221, "y": 15, "flags": 1}, - {"matrix": [1, 15], "x": 208, "y": 15, "flags": 1}, - {"matrix": [1, 14], "x": 195, "y": 15, "flags": 1}, - {"matrix": [1, 13], "x": 173, "y": 15, "flags": 1}, - {"matrix": [1, 12], "x": 154, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 141, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 128, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 115, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 102, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 90, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 77, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 64, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 51, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 38, "y": 15, "flags": 4}, - {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, - {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, - {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, - {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, - {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 70, "y": 27, "flags": 4}, - {"matrix": [2, 6], "x": 83, "y": 27, "flags": 4}, - {"matrix": [2, 7], "x": 96, "y": 27, "flags": 4}, - {"matrix": [2, 8], "x": 109, "y": 27, "flags": 4}, - {"matrix": [2, 9], "x": 122, "y": 27, "flags": 4}, - {"matrix": [2, 10], "x": 134, "y": 27, "flags": 4}, - {"matrix": [2, 11], "x": 147, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 160, "y": 27, "flags": 4}, - {"matrix": [3, 13], "x": 178, "y": 21, "flags": 1}, - {"matrix": [2, 14], "x": 195, "y": 27, "flags": 1}, - {"matrix": [2, 15], "x": 208, "y": 27, "flags": 1}, - {"matrix": [2, 16], "x": 221, "y": 27, "flags": 1}, - {"x": 224, "y": 34, "flags": 9}, - {"x": 218, "y": 34, "flags": 9}, - {"x": 211, "y": 34, "flags": 9}, - {"x": 205, "y": 34, "flags": 9}, - {"x": 198, "y": 34, "flags": 9}, - {"x": 192, "y": 34, "flags": 9}, - {"matrix": [3, 12], "x": 163, "y": 40, "flags": 4}, - {"matrix": [3, 11], "x": 150, "y": 40, "flags": 4}, - {"matrix": [3, 10], "x": 138, "y": 40, "flags": 4}, - {"matrix": [3, 9], "x": 125, "y": 40, "flags": 4}, - {"matrix": [3, 8], "x": 112, "y": 40, "flags": 4}, - {"matrix": [3, 7], "x": 99, "y": 40, "flags": 4}, - {"matrix": [3, 6], "x": 86, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 74, "y": 40, "flags": 4}, - {"matrix": [3, 4], "x": 61, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4}, - {"matrix": [3, 2], "x": 35, "y": 40, "flags": 4}, - {"matrix": [3, 1], "x": 22, "y": 40, "flags": 4}, - {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1}, - {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, - {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, - {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 54, "y": 52, "flags": 4}, - {"matrix": [4, 5], "x": 67, "y": 52, "flags": 4}, - {"matrix": [4, 6], "x": 80, "y": 52, "flags": 4}, - {"matrix": [4, 7], "x": 93, "y": 52, "flags": 4}, - {"matrix": [4, 8], "x": 106, "y": 52, "flags": 4}, - {"matrix": [4, 9], "x": 118, "y": 52, "flags": 4}, - {"matrix": [4, 10], "x": 131, "y": 52, "flags": 4}, - {"matrix": [4, 11], "x": 144, "y": 52, "flags": 4}, - {"matrix": [4, 12], "x": 168, "y": 52, "flags": 1}, - {"matrix": [4, 15], "x": 208, "y": 52, "flags": 1}, - {"matrix": [5, 16], "x": 221, "y": 64, "flags": 1}, - {"matrix": [5, 15], "x": 208, "y": 64, "flags": 1}, - {"matrix": [5, 14], "x": 195, "y": 64, "flags": 1}, - {"matrix": [5, 13], "x": 176, "y": 64, "flags": 1}, - {"matrix": [5, 12], "x": 160, "y": 64, "flags": 1}, - {"matrix": [5, 11], "x": 144, "y": 64, "flags": 1}, - {"matrix": [5, 6], "x": 90, "y": 64, "flags": 4}, - {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, - {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1}, - {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1} - ], - "max_brightness": 120, - "sleep": true - }, - "url": "www.yiancar-designs.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x4E55", - "vid": "0x8968" - }, - "ws2812": { - "driver": "pwm", - "pin": "B0" - }, - "community_layouts": ["tkl_iso_tsangan"], - "layouts": { - "LAYOUT_tkl_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [0, 10], "x": 12, "y": 0}, - {"matrix": [0, 11], "x": 13, "y": 0}, - {"matrix": [0, 12], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c deleted file mode 100644 index 23014881bd..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -enum my_keycodes { - RETRO_RGB = QK_USER_0 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_tkl_iso_tsangan( /* Base */ - 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - -[1] = LAYOUT_tkl_iso_tsangan( /* FN */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, - _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), - -}; - -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 50; i <= 55; i++) { - rgb_matrix_set_color(i, 255, 86, 0); - } - } else if ((rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP) || (rgb_matrix_get_mode() == RGB_MATRIX_DIGITAL_RAIN)) { - for (uint8_t i = 50; i <= 55; i++) { - rgb_matrix_set_color(i, 0, 0, 0); - } - } - return false; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case RETRO_RGB: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_INDICATOR); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } - break; - } - } - return false; // Skip all further processing of this key - default: - return true; // Process all other keycodes normally - } -} diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/mcuconf.h b/keyboards/novelkeys/nk_classic_tkl_iso/mcuconf.h deleted file mode 100644 index ec984442ed..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Yiancar-Designs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/readme.md b/keyboards/novelkeys/nk_classic_tkl_iso/readme.md deleted file mode 100644 index d748f2476a..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# NK Classic TKL - -This is a TKL ISO PCB. It supports VIA and full per-key RGB. - -* Keyboard Maintainer: [Yiancar](https://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: A TKL keyboard with STM32F072CB or APM compatible -* Hardware Availability: https://novelkeys.com/ - -## Instructions - -### Build - -Make example for this keyboard (after setting up your build environment): - - make novelkeys/nk_classic_tkl_iso:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Reset - -- Unplug -- Hold Escape -- Plug In -- Unplug -- Release Escape - -### Flash - -- Unplug -- Hold Escape -- Plug In -- Flash using QMK Toolbox or dfu-util (`make novelkeys/nk_classic_tkl_iso::dfu-util`) diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/rules.mk b/keyboards/novelkeys/nk_classic_tkl_iso/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/novelkeys/nk_classic_tkl_iso/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/novelkeys/nk_plus/keyboard.json b/keyboards/novelkeys/nk_plus/keyboard.json index c4d1dc4df7..b823d2808b 100755 --- a/keyboards/novelkeys/nk_plus/keyboard.json +++ b/keyboards/novelkeys/nk_plus/keyboard.json @@ -15,6 +15,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c index b5ac448666..358ea8b18b 100644 --- a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c @@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/novelkeys/novelpad/keyboard.json b/keyboards/novelkeys/novelpad/keyboard.json index 340c30c0d9..bb190dd284 100644 --- a/keyboards/novelkeys/novelpad/keyboard.json +++ b/keyboards/novelkeys/novelpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NovelPad", "manufacturer": "NovelKeys.xyz", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/novelkeys/skelett60/keyboard.json b/keyboards/novelkeys/skelett60/keyboard.json index 145d24b3af..1a8f988b01 100755 --- a/keyboards/novelkeys/skelett60/keyboard.json +++ b/keyboards/novelkeys/skelett60/keyboard.json @@ -25,24 +25,7 @@ "pid": "0x7336", "vid": "0x8968" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift", - "60_iso_wkl", - "60_iso_wkl_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -825,7 +808,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/noxary/220/keyboard.json b/keyboards/noxary/220/keyboard.json index 60e68305d3..3565316999 100644 --- a/keyboards/noxary/220/keyboard.json +++ b/keyboards/noxary/220/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "220", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/260/keyboard.json b/keyboards/noxary/260/keyboard.json index e5af9b3095..b5f876f5d9 100644 --- a/keyboards/noxary/260/keyboard.json +++ b/keyboards/noxary/260/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "260", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", @@ -40,15 +41,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_iso", - "60_hhkb", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -330,7 +323,7 @@ {"matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/noxary/268_2/keyboard.json b/keyboards/noxary/268_2/keyboard.json index 256a6fd458..08daee6d63 100644 --- a/keyboards/noxary/268_2/keyboard.json +++ b/keyboards/noxary/268_2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "268.2", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/noxary/268_2_rgb/keyboard.json b/keyboards/noxary/268_2_rgb/keyboard.json index f4e1894078..380a772767 100644 --- a/keyboards/noxary/268_2_rgb/keyboard.json +++ b/keyboards/noxary/268_2_rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "268.2 RGB", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/noxary/280/keyboard.json b/keyboards/noxary/280/keyboard.json index 88bf9e2123..4bd9257152 100644 --- a/keyboards/noxary/280/keyboard.json +++ b/keyboards/noxary/280/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "280", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/378/keyboard.json b/keyboards/noxary/378/keyboard.json index 39e6ceeb8e..3502604d6c 100644 --- a/keyboards/noxary/378/keyboard.json +++ b/keyboards/noxary/378/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "378", "manufacturer": "Noxary", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/valhalla/keyboard.json b/keyboards/noxary/valhalla/keyboard.json index 087e762752..3bc3d80a34 100644 --- a/keyboards/noxary/valhalla/keyboard.json +++ b/keyboards/noxary/valhalla/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Valhalla", "manufacturer": "Noxary", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/valhalla_v2/keyboard.json b/keyboards/noxary/valhalla_v2/keyboard.json index cf187e5ba0..671bd0b775 100644 --- a/keyboards/noxary/valhalla_v2/keyboard.json +++ b/keyboards/noxary/valhalla_v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Valhalla V2", "manufacturer": "Noxary", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", @@ -15,6 +16,7 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, "backlight": true, "nkro": true }, diff --git a/keyboards/noxary/valhalla_v2/valhalla_v2.c b/keyboards/noxary/valhalla_v2/valhalla_v2.c deleted file mode 100644 index 2cd32d5149..0000000000 --- a/keyboards/noxary/valhalla_v2/valhalla_v2.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2023 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -bool led_update_kb(led_t led_state) { - if (!led_update_user(led_state)) { - return false; - } - (led_state.caps_lock && is_backlight_enabled()) ? backlight_set(get_backlight_level()) : backlight_set(0); - return true; -} diff --git a/keyboards/noxary/vulcan/keyboard.json b/keyboards/noxary/vulcan/keyboard.json index 18dab7063d..821cb000b5 100644 --- a/keyboards/noxary/vulcan/keyboard.json +++ b/keyboards/noxary/vulcan/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/x268/keyboard.json b/keyboards/noxary/x268/keyboard.json index 024201c886..7ca5799de2 100644 --- a/keyboards/noxary/x268/keyboard.json +++ b/keyboards/noxary/x268/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "x268", "manufacturer": "Noxary", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/np12/keyboard.json b/keyboards/np12/keyboard.json index d12307f117..d7f6f8cfb7 100644 --- a/keyboards/np12/keyboard.json +++ b/keyboards/np12/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -25,7 +27,8 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/null/st110r2/keyboard.json b/keyboards/null/st110r2/keyboard.json index 09d5cefd8d..b83e9746e1 100644 --- a/keyboards/null/st110r2/keyboard.json +++ b/keyboards/null/st110r2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nullbitsco/scramble/rules.mk b/keyboards/nullbitsco/scramble/rules.mk new file mode 100644 index 0000000000..5753f7786d --- /dev/null +++ b/keyboards/nullbitsco/scramble/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = nullbitsco/scramble/v2 diff --git a/keyboards/nulldesignco/null65ansi/v1/keyboard.json b/keyboards/nulldesignco/null65ansi/v1/keyboard.json deleted file mode 100755 index 8fb0393494..0000000000 --- a/keyboards/nulldesignco/null65ansi/v1/keyboard.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "manufacturer": "nulldesignco", - "keyboard_name": "null65ansi", - "maintainer": "quark-works", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0x6E6C", - "pid": "0x0001", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "ws2812": { - "pin": "GP18", - "driver": "vendor" - }, - "rgb_matrix": { - "max_brightness": 90, - "center_point": [120,32], - "sleep": true, - "driver": "ws2812", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "layout": [ - {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, - - {"matrix": [4, 9], "x": 102, "y": 64, "flags": 4}, - {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, - {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, - {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, - {"matrix": [4, 14], "x": 240, "y": 64, "flags": 4}, - - {"matrix": [3, 14], "x": 240, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 12], "x": 202, "y": 48, "flags": 4}, - {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, - {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, - {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, - {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, - {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, - - {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, - - {"matrix": [3, 0], "x": 10, "y": 48, "flags": 4}, - - {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, - {"matrix": [2, 13], "x": 214, "y": 32, "flags": 4}, - {"matrix": [2, 14], "x": 240, "y": 32, "flags": 4}, - - {"matrix": [1, 14], "x": 240, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, - {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, - {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, - - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4}, - {"matrix": [0, 14], "x": 240, "y": 0, "flags": 4} - ] - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "rows": ["GP4", "GP3", "GP2", "GP17", "GP15"], - "cols": ["GP28", "GP27", "GP29", "GP0", "GP1", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5"] - }, - "url": "https://nulldesignco.com/", - "community_layouts": ["65_ansi"], - "layouts": { - "LAYOUT_65_ansi": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [1, 14], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [2, 14], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 2.25, "y": 3 }, - { "matrix": [3, 2], "x": 3.25, "y": 3 }, - { "matrix": [3, 3], "x": 4.25, "y": 3 }, - { "matrix": [3, 4], "x": 5.25, "y": 3 }, - { "matrix": [3, 5], "x": 6.25, "y": 3 }, - { "matrix": [3, 6], "x": 7.25, "y": 3 }, - { "matrix": [3, 7], "x": 8.25, "y": 3 }, - { "matrix": [3, 8], "x": 9.25, "y": 3 }, - { "matrix": [3, 9], "x": 10.25, "y": 3 }, - { "matrix": [3, 10], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 14], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 9], "x": 10, "y": 4 }, - { "matrix": [4, 10], "x": 11, "y": 4 }, - { "matrix": [4, 11], "x": 12, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 14], "x": 15, "y": 4 } - ] - } - } -} diff --git a/keyboards/nulldesignco/null65ansi/v1/keymaps/default/keymap.c b/keyboards/nulldesignco/null65ansi/v1/keymaps/default/keymap.c deleted file mode 100755 index 7a921cf608..0000000000 --- a/keyboards/nulldesignco/null65ansi/v1/keymaps/default/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2025 quark-works -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_65_ansi( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; - -bool rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(24, 255, 0, 0); - } - return false; -} diff --git a/keyboards/nulldesignco/null65ansi/v1/readme.md b/keyboards/nulldesignco/null65ansi/v1/readme.md deleted file mode 100755 index 308d4120e3..0000000000 --- a/keyboards/nulldesignco/null65ansi/v1/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# null65ansi v1 - -![sp](https://i.imgur.com/zO7Jlwj.png) - -65% tray mount PCB with RGB per key. - -* Keyboard Maintainer: [Quark](https://github.com/quark-works) -* Hardware Supported: PCB -* Hardware Availability: https://nulldesignco.com/ - -Make example for this keyboard (after setting up your build environment): - - make nulldesignco/null65ansi/v1:default - -Flashing example for this keyboard: - - make nulldesignco/null65ansi/v1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/nulldesignco/null65iso/v1/keyboard.json b/keyboards/nulldesignco/null65iso/v1/keyboard.json deleted file mode 100755 index 6b40b2e0d1..0000000000 --- a/keyboards/nulldesignco/null65iso/v1/keyboard.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "manufacturer": "nulldesignco", - "keyboard_name": "null65iso", - "maintainer": "quark-works", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0x6E6C", - "pid": "0x0010", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "ws2812": { - "pin": "GP18", - "driver": "vendor" - }, - "rgb_matrix": { - "max_brightness": 90, - "center_point": [120,32], - "sleep": true, - "driver": "ws2812", - "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, - "flower_blooming": 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, - "riverflow": 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, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "typing_heatmap": true - }, - "layout": [ - {"matrix": [4, 6], "x": 102, "y": 64, "flags": 4}, - - {"matrix": [4, 9], "x": 102, "y": 64, "flags": 4}, - {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, - {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, - {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, - {"matrix": [4, 14], "x": 240, "y": 64, "flags": 4}, - - {"matrix": [3, 14], "x": 240, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 12], "x": 202, "y": 48, "flags": 4}, - {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4}, - {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, - {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, - {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, - {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, - - - {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, - - {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, - {"matrix": [3, 0], "x": 2, "y": 48, "flags": 4}, - - {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 214, "y": 32, "flags": 4}, - {"matrix": [2, 14], "x": 240, "y": 32, "flags": 4}, - - {"matrix": [1, 14], "x": 240, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 220, "y": 24, "flags": 4}, - {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, - {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, - - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4}, - {"matrix": [0, 14], "x": 240, "y": 0, "flags": 4} - ] - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "rows": ["GP4", "GP3", "GP2", "GP17", "GP15"], - "cols": ["GP28", "GP27", "GP29", "GP0", "GP1", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5"] - }, - "url": "https://nulldesignco.com/", - "community_layouts": ["65_iso"], - "layouts": { - "LAYOUT_65_iso": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 14], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 12], "x": 12.75, "y": 2 }, - { "matrix": [1, 13], "w": 1.25, "x": 13.75, "y": 1, "h": 2 }, - { "matrix": [2, 14], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 14], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 9], "x": 10, "y": 4 }, - { "matrix": [4, 10], "x": 11, "y": 4 }, - { "matrix": [4, 11], "x": 12, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 14], "x": 15, "y": 4 } - ] - } - } -} diff --git a/keyboards/nulldesignco/null65iso/v1/keymaps/default/keymap.c b/keyboards/nulldesignco/null65iso/v1/keymaps/default/keymap.c deleted file mode 100755 index c360ef0e8a..0000000000 --- a/keyboards/nulldesignco/null65iso/v1/keymaps/default/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2025 quark-works -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_65_iso( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, - 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_NUHS, KC_ENT, KC_PGUP, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; - -bool rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(25, 255, 0, 0); - } - return false; -} diff --git a/keyboards/nulldesignco/null65iso/v1/readme.md b/keyboards/nulldesignco/null65iso/v1/readme.md deleted file mode 100755 index f7fdeac131..0000000000 --- a/keyboards/nulldesignco/null65iso/v1/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# null65iso v1 - -![sp](https://i.imgur.com/dypoXbB.png) - -65% tray mount PCB with RGB per key. - -* Keyboard Maintainer: [Quark](https://github.com/quark-works) -* Hardware Supported: PCB -* Hardware Availability: https://nulldesignco.com/ - -Make example for this keyboard (after setting up your build environment): - - make nulldesignco/null65iso/v1:default - -Flashing example for this keyboard: - - make nulldesignco/null65iso/v1:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/numatreus/keyboard.json b/keyboards/numatreus/keyboard.json index 5a9df0f429..3120b48f55 100644 --- a/keyboards/numatreus/keyboard.json +++ b/keyboards/numatreus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NumAtreus", "manufacturer": "yohewi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -33,7 +34,8 @@ "led_count": 6, "max_brightness": 200 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/numatreus/keymaps/like_jis/keymap.c b/keyboards/numatreus/keymaps/like_jis/keymap.c index 1b3838bf6b..bfb258c37e 100644 --- a/keyboards/numatreus/keymaps/like_jis/keymap.c +++ b/keyboards/numatreus/keymaps/like_jis/keymap.c @@ -112,13 +112,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( //,----------------------------------. ,----------------------------------. - QK_BOOT, RGBRST, AG_NORM, AG_SWAP, KC_CAPS, XXXXXXX, MS_WHLL, MS_WHLU, KC_HOME, KC_PGUP, + QK_BOOT, RGBRST, AG_NORM, AG_SWAP, KC_CAPS, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, //|------+------+------+------+------| |------+------+------+------+------| - UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, KC_SCRL, XXXXXXX, MS_WHLR, MS_WHLD, KC_END, KC_PGDN, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_SCRL, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, //|------+------+------+------+------| |------+------+------+------+------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, KC_NUM, XXXXXXX, MS_BTN1, MS_BTN2, MS_UP, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NUM, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, //|------+------+------+------+------|------+------+------+------+------+------+------| - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R //|------+------+------+------+-------------+------+------+------+------+------+------| ) }; @@ -166,7 +166,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; #ifdef RGBLIGHT_ENABLE //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/nyhxis/nfr_70/keyboard.json b/keyboards/nyhxis/nfr_70/keyboard.json index b614d9b745..0fbb4681d8 100644 --- a/keyboards/nyhxis/nfr_70/keyboard.json +++ b/keyboards/nyhxis/nfr_70/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json index 661d335daa..290446dd22 100644 --- a/keyboards/obosob/arch_36/keyboard.json +++ b/keyboards/obosob/arch_36/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Arch-36", "manufacturer": "obosob", + "url": "", "maintainer": "obosob", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -34,7 +37,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_3": { diff --git a/keyboards/obosob/arch_36/keymaps/default/keymap.c b/keyboards/obosob/arch_36/keymaps/default/keymap.c index abe3c2f711..6351944e37 100644 --- a/keyboards/obosob/arch_36/keymaps/default/keymap.c +++ b/keyboards/obosob/arch_36/keymaps/default/keymap.c @@ -107,14 +107,14 @@ uint16_t last_rgb_char = 0; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch(keycode) { - case QK_UNDERGLOW_TOGGLE: - case QK_UNDERGLOW_MODE_NEXT: - case QK_UNDERGLOW_HUE_DOWN: - case QK_UNDERGLOW_HUE_UP: - case QK_UNDERGLOW_SATURATION_DOWN: - case QK_UNDERGLOW_SATURATION_UP: - case QK_UNDERGLOW_VALUE_UP: - case QK_UNDERGLOW_VALUE_DOWN: + case RGB_TOG: + case RGB_MOD: + case RGB_HUD: + case RGB_HUI: + case RGB_SAD: + case RGB_SAI: + case RGB_VAI: + case RGB_VAD: rgb_edit_timer = timer_read(); last_rgb_char = keycode; return true; @@ -152,9 +152,9 @@ void render_rgb_state(void) { uint8_t hue = (rgblight_get_hue()*width/255), sat = (rgblight_get_sat()*width/255), val = (rgblight_get_val()*width/255); - bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_HUE_UP || last_rgb_char == QK_UNDERGLOW_HUE_DOWN); - bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_SATURATION_UP || last_rgb_char == QK_UNDERGLOW_SATURATION_DOWN); - bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_VALUE_UP || last_rgb_char == QK_UNDERGLOW_VALUE_DOWN); + bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD); + bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD); + bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD); uint8_t i; diff --git a/keyboards/obosob/arch_36/keymaps/obosob/keymap.c b/keyboards/obosob/arch_36/keymaps/obosob/keymap.c index 1dd68fa10c..27654b07b2 100644 --- a/keyboards/obosob/arch_36/keymaps/obosob/keymap.c +++ b/keyboards/obosob/arch_36/keymaps/obosob/keymap.c @@ -39,12 +39,11 @@ enum layer_names { #define OS_GUI OSM(MOD_LGUI) #define OS_ALT OSM(MOD_LALT) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLMAK) - enum keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, // layers - SYM = SAFE_RANGE, + SYM, MISC, // special keys ENC_PRS, @@ -221,8 +220,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |________| |________| [_ADJUST] = LAYOUT_split_3x5_3( XXXXXXX, WOKE, EE_CLR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, QWERTY, COLEMAK, XXXXXXX, XXXXXXX, - XXXXXXX, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, QWERTY, COLEMAK, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), }; @@ -234,6 +233,16 @@ uint16_t last_rgb_char = 0; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLMAK); + } + return false; case SYM: if (record->event.pressed) { layer_on(_SYM); @@ -360,14 +369,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { woke_mode = !woke_mode; } return false; - case QK_UNDERGLOW_TOGGLE: - case QK_UNDERGLOW_MODE_NEXT: - case QK_UNDERGLOW_HUE_DOWN: - case QK_UNDERGLOW_HUE_UP: - case QK_UNDERGLOW_SATURATION_DOWN: - case QK_UNDERGLOW_SATURATION_UP: - case QK_UNDERGLOW_VALUE_UP: - case QK_UNDERGLOW_VALUE_DOWN: + case RGB_TOG: + case RGB_MOD: + case RGB_HUD: + case RGB_HUI: + case RGB_SAD: + case RGB_SAI: + case RGB_VAI: + case RGB_VAD: rgb_edit_timer = timer_read(); last_rgb_char = keycode; return true; @@ -436,9 +445,9 @@ void render_rgb_state(void) { uint8_t hue = (rgblight_get_hue()*width/255), sat = (rgblight_get_sat()*width/255), val = (rgblight_get_val()*width/255); - bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_HUE_UP || last_rgb_char == QK_UNDERGLOW_HUE_DOWN); - bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_SATURATION_UP || last_rgb_char == QK_UNDERGLOW_SATURATION_DOWN); - bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == QK_UNDERGLOW_VALUE_UP || last_rgb_char == QK_UNDERGLOW_VALUE_DOWN); + bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD); + bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD); + bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD); uint8_t i; diff --git a/keyboards/obosob/steal_this_keyboard/keyboard.json b/keyboards/obosob/steal_this_keyboard/keyboard.json index 60abd1ecf9..cc99431b5a 100644 --- a/keyboards/obosob/steal_this_keyboard/keyboard.json +++ b/keyboards/obosob/steal_this_keyboard/keyboard.json @@ -8,9 +8,12 @@ "pid": "0x50AD", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/obosob/steal_this_keyboard/keymaps/default/keymap.c b/keyboards/obosob/steal_this_keyboard/keymaps/default/keymap.c index 2a8f615201..2d20fafe30 100644 --- a/keyboards/obosob/steal_this_keyboard/keymaps/default/keymap.c +++ b/keyboards/obosob/steal_this_keyboard/keymaps/default/keymap.c @@ -43,9 +43,9 @@ KC_Z, MT_X, MT_C, KC_V, KC_B, KC_N, KC_M, MT_COMM, MT_DOT, KC_P0, KC_BSPC, MT_SPC, KC_P1 ), [1] = LAYOUT_split_3x5_2( -_______, _______, _______, _______, _______, _______, MS_BTN1, MS_WHLU, MS_BTN2, _______, -_______, MS_BTN2, XXXXXXX, MS_BTN1, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, -_______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR, _______, +_______, _______, _______, _______, _______, _______, KC_BTN1, KC_WH_U, KC_BTN2, _______, +_______, KC_BTN2, XXXXXXX, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, +_______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, _______, _______, _______ ), [2] = LAYOUT_split_3x5_2( diff --git a/keyboards/ocean/addon/keyboard.json b/keyboards/ocean/addon/keyboard.json index 671c04cba0..b7502a28b6 100644 --- a/keyboards/ocean/addon/keyboard.json +++ b/keyboards/ocean/addon/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json index 08a7f29b8c..b6f22b813b 100644 --- a/keyboards/ocean/gin_v2/keyboard.json +++ b/keyboards/ocean/gin_v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Gin V2", "manufacturer": "Ocean", + "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +21,8 @@ "rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json index 65bc91eebe..6712077763 100644 --- a/keyboards/ocean/slamz/keyboard.json +++ b/keyboards/ocean/slamz/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Slamz", "manufacturer": "Ocean", + "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +21,8 @@ "rows": ["D2", "D1", "D0", "D4"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json index 0f0070de63..b094a5f4bf 100644 --- a/keyboards/ocean/stealth/keyboard.json +++ b/keyboards/ocean/stealth/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stealth", "manufacturer": "Ocean", + "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +21,8 @@ "rows": ["D1"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json index ebbb247035..ea2b1e326a 100644 --- a/keyboards/ocean/sus/keyboard.json +++ b/keyboards/ocean/sus/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["B5", "B4", "E6", "D7"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_4x3": { "layout": [ diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json index e32f21d802..5debc4396d 100644 --- a/keyboards/ocean/wang_ergo/keyboard.json +++ b/keyboards/ocean/wang_ergo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wang Ergo", "manufacturer": "Ocean", + "url": "", "maintainer": "oceeean", "usb": { "vid": "0x9624", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +21,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json index e64345db2f..6e80932ce2 100644 --- a/keyboards/ocean/wang_v2/keyboard.json +++ b/keyboards/ocean/wang_v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wang V2", "manufacturer": "Ocean", + "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +21,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/yuri/keyboard.json b/keyboards/ocean/yuri/keyboard.json index fee89b9de7..6542de2cda 100644 --- a/keyboards/ocean/yuri/keyboard.json +++ b/keyboards/ocean/yuri/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/oddball/keymaps/default/keymap.c b/keyboards/oddball/keymaps/default/keymap.c index 7df7f9c152..2d1c7ee049 100644 --- a/keyboards/oddball/keymaps/default/keymap.c +++ b/keyboards/oddball/keymaps/default/keymap.c @@ -32,9 +32,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = LAYOUT( - KC_DEL, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, MS_BTN3, KC_DQUO, KC_7, KC_8, KC_9, KC_ASTR, KC_UNDS, - KC_SCROLL, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, MS_BTN2, KC_QUOT, KC_4, KC_5, KC_6, KC_PLUS, KC_ENT, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, MS_BTN1, KC_0, KC_1, KC_2, KC_3, KC_MINS, _______, + KC_DEL, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_BTN3, KC_DQUO, KC_7, KC_8, KC_9, KC_ASTR, KC_UNDS, + KC_SCROLL, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_QUOT, KC_4, KC_5, KC_6, KC_PLUS, KC_ENT, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_0, KC_1, KC_2, KC_3, KC_MINS, _______, _______, _______, _______, _______ ), diff --git a/keyboards/oddball/keymaps/pmw3360/keymap.c b/keyboards/oddball/keymaps/pmw3360/keymap.c index 7df7f9c152..2d1c7ee049 100644 --- a/keyboards/oddball/keymaps/pmw3360/keymap.c +++ b/keyboards/oddball/keymaps/pmw3360/keymap.c @@ -32,9 +32,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = LAYOUT( - KC_DEL, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, MS_BTN3, KC_DQUO, KC_7, KC_8, KC_9, KC_ASTR, KC_UNDS, - KC_SCROLL, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, MS_BTN2, KC_QUOT, KC_4, KC_5, KC_6, KC_PLUS, KC_ENT, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, MS_BTN1, KC_0, KC_1, KC_2, KC_3, KC_MINS, _______, + KC_DEL, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_BTN3, KC_DQUO, KC_7, KC_8, KC_9, KC_ASTR, KC_UNDS, + KC_SCROLL, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_QUOT, KC_4, KC_5, KC_6, KC_PLUS, KC_ENT, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_0, KC_1, KC_2, KC_3, KC_MINS, _______, _______, _______, _______, _______ ), diff --git a/keyboards/oddball/oddball.c b/keyboards/oddball/oddball.c index aa74b07475..bbc3b3f2e4 100644 --- a/keyboards/oddball/oddball.c +++ b/keyboards/oddball/oddball.c @@ -107,23 +107,23 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // handle mouse drag and scroll switch (keycode) { - case MS_BTN1: + case KC_BTN1: on_mouse_button(MOUSE_BTN1, record); return false; - case MS_BTN2: + case KC_BTN2: on_mouse_button(MOUSE_BTN2, record); return false; - case MS_BTN3: + case KC_BTN3: on_mouse_button(MOUSE_BTN3, record); return false; - case MS_BTN4: + case KC_BTN4: on_mouse_button(MOUSE_BTN4, record); return false; - case MS_BTN5: + case KC_BTN5: on_mouse_button(MOUSE_BTN5, record); return false; diff --git a/keyboards/oddball/rules.mk b/keyboards/oddball/rules.mk new file mode 100644 index 0000000000..2fc8995acb --- /dev/null +++ b/keyboards/oddball/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_DRIVER = adns9800 + +DEFAULT_FOLDER = oddball/v1 diff --git a/keyboards/oddball/v1/rules.mk b/keyboards/oddball/v1/rules.mk deleted file mode 100644 index 84de35aeb1..0000000000 --- a/keyboards/oddball/v1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = adns9800 diff --git a/keyboards/oddball/v2/rules.mk b/keyboards/oddball/v2/rules.mk deleted file mode 100644 index 84de35aeb1..0000000000 --- a/keyboards/oddball/v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = adns9800 diff --git a/keyboards/oddball/v2_1/rules.mk b/keyboards/oddball/v2_1/rules.mk deleted file mode 100644 index 84de35aeb1..0000000000 --- a/keyboards/oddball/v2_1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = adns9800 diff --git a/keyboards/oddforge/vea/ws2812_custom.c b/keyboards/oddforge/vea/ws2812_custom.c index 568f0e176d..317f98130b 100644 --- a/keyboards/oddforge/vea/ws2812_custom.c +++ b/keyboards/oddforge/vea/ws2812_custom.c @@ -17,25 +17,12 @@ # define WS2812_I2C_TIMEOUT 100 #endif -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - void ws2812_init(void) { i2c_init(); } -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { - i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ws2812_leds, sizeof(ws2812_led_t) * (WS2812_LED_COUNT >> 1), WS2812_I2C_TIMEOUT); - i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ws2812_leds + (sizeof(ws2812_led_t) * (WS2812_LED_COUNT >> 1)), sizeof(ws2812_led_t) * (WS2812_LED_COUNT - (WS2812_LED_COUNT >> 1)), WS2812_I2C_TIMEOUT); +// Setleds for standard RGB +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { + i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * (leds >> 1), WS2812_I2C_TIMEOUT); + i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(rgb_led_t) * (leds >> 1)), sizeof(rgb_led_t) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT); } diff --git a/keyboards/odelia/keyboard.json b/keyboards/odelia/keyboard.json index 425240d507..3c187b5c18 100644 --- a/keyboards/odelia/keyboard.json +++ b/keyboards/odelia/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Odelia", "manufacturer": "InterpolKeeb", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x6BE3", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ogre/ergo_single/keyboard.json b/keyboards/ogre/ergo_single/keyboard.json index 1abaf26400..3ebd88b0d2 100644 --- a/keyboards/ogre/ergo_single/keyboard.json +++ b/keyboards/ogre/ergo_single/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ogre Ergo Single", "manufacturer": "ctrlshiftba", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/ogre/ergo_split/keyboard.json b/keyboards/ogre/ergo_split/keyboard.json index ea8a28ba4a..4dc3caa530 100644 --- a/keyboards/ogre/ergo_split/keyboard.json +++ b/keyboards/ogre/ergo_split/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ogre Ergo Split", "manufacturer": "ctrlshiftba", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/ok60/keyboard.json b/keyboards/ok60/keyboard.json index 52ddebc011..5cf55b666d 100644 --- a/keyboards/ok60/keyboard.json +++ b/keyboards/ok60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OK60", "manufacturer": "OK60", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B36", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/om60/keyboard.json b/keyboards/om60/keyboard.json index d91f28f8af..08eb898b01 100644 --- a/keyboards/om60/keyboard.json +++ b/keyboards/om60/keyboard.json @@ -49,7 +49,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/ergodash/info.json b/keyboards/omkbd/ergodash/info.json index 18138dd692..306a3970bb 100644 --- a/keyboards/omkbd/ergodash/info.json +++ b/keyboards/omkbd/ergodash/info.json @@ -1,5 +1,6 @@ { - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "split": { "enabled": true } diff --git a/keyboards/omkbd/ergodash/mini/config.h b/keyboards/omkbd/ergodash/mini/config.h index 373c238afd..12b408ff56 100644 --- a/keyboards/omkbd/ergodash/mini/config.h +++ b/keyboards/omkbd/ergodash/mini/config.h @@ -19,3 +19,13 @@ along with this program. If not, see . #pragma once #define AUDIO_PIN C6 + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/ergodash/mini/keyboard.json b/keyboards/omkbd/ergodash/mini/keyboard.json index ea12ea5a9e..7c15c4f6f7 100644 --- a/keyboards/omkbd/ergodash/mini/keyboard.json +++ b/keyboards/omkbd/ergodash/mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ErgoDash Mini", "manufacturer": "Omkbd", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/ergodash/rev1/config.h b/keyboards/omkbd/ergodash/rev1/config.h index 373c238afd..12b408ff56 100644 --- a/keyboards/omkbd/ergodash/rev1/config.h +++ b/keyboards/omkbd/ergodash/rev1/config.h @@ -19,3 +19,13 @@ along with this program. If not, see . #pragma once #define AUDIO_PIN C6 + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/ergodash/rev1/keyboard.json b/keyboards/omkbd/ergodash/rev1/keyboard.json index a25610be9c..6a61950ba6 100644 --- a/keyboards/omkbd/ergodash/rev1/keyboard.json +++ b/keyboards/omkbd/ergodash/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ErgoDash rev1.2", "manufacturer": "Omkbd", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/ergodash/rules.mk b/keyboards/omkbd/ergodash/rules.mk new file mode 100644 index 0000000000..492cdde65d --- /dev/null +++ b/keyboards/omkbd/ergodash/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = omkbd/ergodash/rev1 diff --git a/keyboards/omkbd/runner3680/3x6/config.h b/keyboards/omkbd/runner3680/3x6/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/3x6/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/3x6/keyboard.json b/keyboards/omkbd/runner3680/3x6/keyboard.json index 4b8c71a156..44c5ce35a0 100644 --- a/keyboards/omkbd/runner3680/3x6/keyboard.json +++ b/keyboards/omkbd/runner3680/3x6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 3x6", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c index b6163a42bc..ec38d8c2ff 100644 --- a/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -55,6 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/3x7/config.h b/keyboards/omkbd/runner3680/3x7/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/3x7/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/3x7/keyboard.json b/keyboards/omkbd/runner3680/3x7/keyboard.json index 974147f732..8a4c55ca71 100644 --- a/keyboards/omkbd/runner3680/3x7/keyboard.json +++ b/keyboards/omkbd/runner3680/3x7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 3x7", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c index 51c668064e..8dc742ed78 100644 --- a/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -55,6 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/3x8/config.h b/keyboards/omkbd/runner3680/3x8/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/3x8/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/3x8/keyboard.json b/keyboards/omkbd/runner3680/3x8/keyboard.json index 04fadf854b..11fe738a8a 100644 --- a/keyboards/omkbd/runner3680/3x8/keyboard.json +++ b/keyboards/omkbd/runner3680/3x8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 3x8", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c index 0b57cdc55a..b858cc2aed 100644 --- a/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -57,6 +58,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x6/config.h b/keyboards/omkbd/runner3680/4x6/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/4x6/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/4x6/keyboard.json b/keyboards/omkbd/runner3680/4x6/keyboard.json index 7f8ecd0239..2449f3431e 100644 --- a/keyboards/omkbd/runner3680/4x6/keyboard.json +++ b/keyboards/omkbd/runner3680/4x6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 4x6", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c index dc50cdcd83..3fadd6961c 100644 --- a/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -61,6 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x7/config.h b/keyboards/omkbd/runner3680/4x7/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/4x7/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/4x7/keyboard.json b/keyboards/omkbd/runner3680/4x7/keyboard.json index 5bee706192..01acfad1e7 100644 --- a/keyboards/omkbd/runner3680/4x7/keyboard.json +++ b/keyboards/omkbd/runner3680/4x7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 4x7", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c index de162dba88..e898b42cd5 100644 --- a/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -61,6 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x8/config.h b/keyboards/omkbd/runner3680/4x8/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/4x8/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/4x8/keyboard.json b/keyboards/omkbd/runner3680/4x8/keyboard.json index e9142eec3d..748fc05508 100644 --- a/keyboards/omkbd/runner3680/4x8/keyboard.json +++ b/keyboards/omkbd/runner3680/4x8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 4x8", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c index c2b4a5e6d1..f8d095ce16 100644 --- a/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -61,6 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x6/config.h b/keyboards/omkbd/runner3680/5x6/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/5x6/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/5x6/keyboard.json b/keyboards/omkbd/runner3680/5x6/keyboard.json index 5d2d22d7fa..9b043c7e19 100644 --- a/keyboards/omkbd/runner3680/5x6/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 5x6", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c index 75f034da0d..9eda782a2f 100644 --- a/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -67,6 +68,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x6_5x8/config.h b/keyboards/omkbd/runner3680/5x6_5x8/config.h new file mode 100644 index 0000000000..b6f3f5ff86 --- /dev/null +++ b/keyboards/omkbd/runner3680/5x6_5x8/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json index 2d912a1445..b8a361f1b2 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 5x6+5x8", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0x3680", diff --git a/keyboards/omkbd/runner3680/5x7/config.h b/keyboards/omkbd/runner3680/5x7/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/5x7/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/5x7/keyboard.json b/keyboards/omkbd/runner3680/5x7/keyboard.json index 41de1f80f5..41df797770 100644 --- a/keyboards/omkbd/runner3680/5x7/keyboard.json +++ b/keyboards/omkbd/runner3680/5x7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 5x7", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c index acf89f7fed..599be9334e 100644 --- a/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -67,6 +68,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x8/config.h b/keyboards/omkbd/runner3680/5x8/config.h new file mode 100644 index 0000000000..2b0210d2be --- /dev/null +++ b/keyboards/omkbd/runner3680/5x8/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 omkbd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SELECT_SOFT_SERIAL_SPEED 1 +/*Sets the protocol speed when using serial communication*/ +//Speeds: +//0: about 189kbps (Experimental only) +//1: about 137kbps (default) +//2: about 75kbps +//3: about 39kbps +//4: about 26kbps +//5: about 20kbps diff --git a/keyboards/omkbd/runner3680/5x8/keyboard.json b/keyboards/omkbd/runner3680/5x8/keyboard.json index 11857942b8..04294371d7 100644 --- a/keyboards/omkbd/runner3680/5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x8/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "runner3680 5x8", "manufacturer": "Omkbd", + "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c b/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c index d43c5012e6..929de444fa 100644 --- a/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c +++ b/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c @@ -15,7 +15,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -69,6 +70,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c index 659287f5bd..14abc88da7 100644 --- a/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c @@ -13,7 +13,8 @@ enum layer_number { }; enum custom_keycodes { - ADJUST = SAFE_RANGE, + QWERTY = SAFE_RANGE, + ADJUST, RGBRST }; @@ -67,6 +68,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + break; + case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/info.json b/keyboards/omkbd/runner3680/info.json index e06cb1243c..c626b2e3b4 100644 --- a/keyboards/omkbd/runner3680/info.json +++ b/keyboards/omkbd/runner3680/info.json @@ -1,5 +1,6 @@ { - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "extrakey": false, diff --git a/keyboards/omkbd/runner3680/rules.mk b/keyboards/omkbd/runner3680/rules.mk new file mode 100644 index 0000000000..3460ad8964 --- /dev/null +++ b/keyboards/omkbd/runner3680/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = omkbd/runner3680/5x8 diff --git a/keyboards/omnikeyish/dynamic_macro.c b/keyboards/omnikeyish/dynamic_macro.c index 99b6d173b8..b990a09a13 100644 --- a/keyboards/omnikeyish/dynamic_macro.c +++ b/keyboards/omnikeyish/dynamic_macro.c @@ -1,6 +1,5 @@ #include "omnikeyish.h" #include -#include "eeprom.h" dynamic_macro_t dynamic_macros[DYNAMIC_MACRO_COUNT]; diff --git a/keyboards/omnikeyish/keyboard.json b/keyboards/omnikeyish/keyboard.json index 2a607dc852..82363b10bf 100644 --- a/keyboards/omnikeyish/keyboard.json +++ b/keyboards/omnikeyish/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0xFEED", "pid": "0x0666", - "device_version": "13.3.7" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "13.3.7", + "force_nkro": true }, "features": { "bootmagic": true, diff --git a/keyboards/onekeyco/dango40/keyboard.json b/keyboards/onekeyco/dango40/keyboard.json index 25baf9e2bc..8a41f25325 100644 --- a/keyboards/onekeyco/dango40/keyboard.json +++ b/keyboards/onekeyco/dango40/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/onnenon/hotdog_pad/hotdog_pad.c b/keyboards/onnenon/hotdog_pad/hotdog_pad.c deleted file mode 100644 index c48274fb55..0000000000 --- a/keyboards/onnenon/hotdog_pad/hotdog_pad.c +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2024 Stephen Onnen (@onnenon) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Enable the power pin for the Xiao Seeed rp2040 onboard NeoPixel - gpio_set_pin_output(GP11); - gpio_write_pin_high(GP11); - - keyboard_pre_init_user(); -} diff --git a/keyboards/onnenon/hotdog_pad/keyboard.json b/keyboards/onnenon/hotdog_pad/keyboard.json deleted file mode 100644 index 3831e7afed..0000000000 --- a/keyboards/onnenon/hotdog_pad/keyboard.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "manufacturer": "onnenon", - "keyboard_name": "Hotdog Pad", - "maintainer": "onnenon", - "processor": "RP2040", - "bootloader": "rp2040", - "matrix_pins": { - "direct": [["GP1", "GP2", "GP4", "GP6", "GP0"]] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x4F4E" - }, - "features": { - "encoder": true, - "rgblight": true, - "extrakey": true, - "mousekey": true - }, - "encoder": { - "rotary": [{ "pin_a": "GP29", "pin_b": "GP28" }] - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "x": 0, "y": 0, "matrix": [0, 0] }, - { "x": 1, "y": 0, "matrix": [0, 1] }, - { "x": 2, "y": 0, "matrix": [0, 2] }, - { "x": 3, "y": 0, "matrix": [0, 3] }, - { "x": 4, "y": 0, "matrix": [0, 4] } - ] - } - }, - "ws2812": { - "pin": "GP12", - "driver": "vendor" - }, - "rgblight": { - "led_count": 1, - "max_brightness": 185, - "animations": { - "breathing": true, - "rainbow_mood": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - } -} diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c deleted file mode 100644 index 9370249098..0000000000 --- a/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 Stephen Onnen (@onnenon) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_MUTE) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, -}; -#endif diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/onnenon/hotdog_pad/readme.md b/keyboards/onnenon/hotdog_pad/readme.md deleted file mode 100644 index c3b0699c21..0000000000 --- a/keyboards/onnenon/hotdog_pad/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# Hotdog Pad - -* Keyboard Maintainer: [Stephen Onnen](https://github.com/onnenon) -* Hardware Supported: Seeed Studio XIAO RP2040 -* Hardware Availability: https://github.com/onnenon/hotdog_pad - -Make example for this keyboard (after setting up your build environment): - - make onnenon/hotdog_pad:default - -Flashing example for this keyboard: - - make onnenon/hotdog_pad:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - diff --git a/keyboards/opendeck/32/info.json b/keyboards/opendeck/32/info.json index 3a75fd163b..4d340985d3 100644 --- a/keyboards/opendeck/32/info.json +++ b/keyboards/opendeck/32/info.json @@ -4,11 +4,7 @@ "usb": { "vid": "0x4345", "pid": "0x2EC0", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true } } diff --git a/keyboards/orange75/keyboard.json b/keyboards/orange75/keyboard.json index cd6108581c..a0ef819651 100644 --- a/keyboards/orange75/keyboard.json +++ b/keyboards/orange75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Orange75", "manufacturer": "Fox-Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEEB", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/org60/keyboard.json b/keyboards/org60/keyboard.json index e59dc27e63..2586d16b08 100644 --- a/keyboards/org60/keyboard.json +++ b/keyboards/org60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Org60", "manufacturer": "\u5927\u6a58\u5b50\u5916\u8bbe (Large orange peripherals)", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/org60/keymaps/default/keymap.c b/keyboards/org60/keymaps/default/keymap.c index 0cd34ec9d5..666f61ca83 100644 --- a/keyboards/org60/keymaps/default/keymap.c +++ b/keyboards/org60/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 1: Function Layer LAYOUT( QK_BOOT, 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_NO, KC_NO, - KC_NO, MS_WHLU, KC_UP, MS_WHLD, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO ,KC_PGUP, KC_INS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDN,KC_END), diff --git a/keyboards/ortho5by12/keyboard.json b/keyboards/ortho5by12/keyboard.json index a360e9d3d7..5bcd1e00fc 100644 --- a/keyboards/ortho5by12/keyboard.json +++ b/keyboards/ortho5by12/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ortho5by12/keymaps/default/keymap.c b/keyboards/ortho5by12/keymaps/default/keymap.c index 798680dfd0..f3fcb85d14 100644 --- a/keyboards/ortho5by12/keymaps/default/keymap.c +++ b/keyboards/ortho5by12/keymaps/default/keymap.c @@ -26,15 +26,14 @@ enum preonic_layers { }; enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -168,6 +167,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/orthodox/keymaps/default/keymap.c b/keyboards/orthodox/keymaps/default/keymap.c index 39c3084aae..d9826c9288 100644 --- a/keyboards/orthodox/keymaps/default/keymap.c +++ b/keyboards/orthodox/keymaps/default/keymap.c @@ -34,14 +34,16 @@ enum layer_names { _ADJUST }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + #define LS__SPC MT(MOD_LSFT, KC_SPC) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( @@ -86,3 +88,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + } + return true; +} diff --git a/keyboards/orthodox/rev1/keyboard.json b/keyboards/orthodox/rev1/keyboard.json index bd08fc19d2..0444009f2b 100644 --- a/keyboards/orthodox/rev1/keyboard.json +++ b/keyboards/orthodox/rev1/keyboard.json @@ -17,7 +17,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/orthodox/rev3/keyboard.json b/keyboards/orthodox/rev3/keyboard.json index 411df12f98..61d8281f55 100644 --- a/keyboards/orthodox/rev3/keyboard.json +++ b/keyboards/orthodox/rev3/keyboard.json @@ -17,7 +17,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk new file mode 100644 index 0000000000..fd71b6c8fb --- /dev/null +++ b/keyboards/orthodox/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = orthodox/rev3 diff --git a/keyboards/orthograph/keyboard.json b/keyboards/orthograph/keyboard.json index cb259a620b..a3fbf634e5 100644 --- a/keyboards/orthograph/keyboard.json +++ b/keyboards/orthograph/keyboard.json @@ -16,6 +16,8 @@ "features": { "rgb_matrix": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -32,9 +34,7 @@ "pin": "E6" }, "transport": { - "sync": { - "matrix_state": true - } + "sync_matrix_state": true }, "usb_detect":{ "enabled": true diff --git a/keyboards/orthograph/keymaps/default/keymap.json b/keyboards/orthograph/keymaps/default/keymap.json index 128016b742..8d2f53c71a 100644 --- a/keyboards/orthograph/keymaps/default/keymap.json +++ b/keyboards/orthograph/keymaps/default/keymap.json @@ -18,7 +18,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DEL", "KC_END", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_NEXT","KC_TRNS", "RM_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_MOD","KC_TRNS", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" ] ] } \ No newline at end of file diff --git a/keyboards/orthograph/orthograph.c b/keyboards/orthograph/orthograph.c index 0649115aa3..9d824574d1 100644 --- a/keyboards/orthograph/orthograph.c +++ b/keyboards/orthograph/orthograph.c @@ -125,7 +125,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW7_CS7, SW8_CS7, SW9_CS7} }; -int rgb_matrix_led_index(int index) { - return index; -} #endif diff --git a/keyboards/owlab/jelly_epoch/hotswap/keyboard.json b/keyboards/owlab/jelly_epoch/hotswap/keyboard.json index b6a519f686..38db4c965b 100644 --- a/keyboards/owlab/jelly_epoch/hotswap/keyboard.json +++ b/keyboards/owlab/jelly_epoch/hotswap/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0x4F53", "pid": "0x4A4C", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/owlab/jelly_epoch/soldered/keyboard.json b/keyboards/owlab/jelly_epoch/soldered/keyboard.json index b8c83b8c41..5a12cdf0e9 100644 --- a/keyboards/owlab/jelly_epoch/soldered/keyboard.json +++ b/keyboards/owlab/jelly_epoch/soldered/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0x4F53", "pid": "0x4A53", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/owlab/jelly_evolv/info.json b/keyboards/owlab/jelly_evolv/info.json index cd67a95a8d..999bcca477 100644 --- a/keyboards/owlab/jelly_evolv/info.json +++ b/keyboards/owlab/jelly_evolv/info.json @@ -1,5 +1,6 @@ { "manufacturer": "OwLab", + "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53" diff --git a/keyboards/owlab/spring/keyboard.json b/keyboards/owlab/spring/keyboard.json index 2a8d1e2d9b..7dcb6ec717 100644 --- a/keyboards/owlab/spring/keyboard.json +++ b/keyboards/owlab/spring/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Spring", "manufacturer": "OwLab", + "url": "", "maintainer": "OwLab", "usb": { "vid": "0x4F53", "pid": "0x5350", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/owlab/spring/keymaps/default/keymap.c b/keyboards/owlab/spring/keymaps/default/keymap.c index f3564883e8..932e8c5e92 100644 --- a/keyboards/owlab/spring/keymaps/default/keymap.c +++ b/keyboards/owlab/spring/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboards/owlab/spring/spring.c b/keyboards/owlab/spring/spring.c index 12c27c1a84..5e814d5a60 100644 --- a/keyboards/owlab/spring/spring.c +++ b/keyboards/owlab/spring/spring.c @@ -90,15 +90,15 @@ void housekeeping_task_kb(void) { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { - case QK_UNDERGLOW_TOGGLE: - case QK_UNDERGLOW_MODE_NEXT: - case QK_UNDERGLOW_MODE_PREVIOUS: - case QK_UNDERGLOW_HUE_UP: - case QK_UNDERGLOW_HUE_DOWN: - case QK_UNDERGLOW_SATURATION_UP: - case QK_UNDERGLOW_SATURATION_DOWN: - case QK_UNDERGLOW_VALUE_UP: - case QK_UNDERGLOW_VALUE_DOWN: + case RGB_TOG: + case RGB_MOD: + case RGB_RMOD: + case RGB_HUI: + case RGB_HUD: + case RGB_SAI: + case RGB_SAD: + case RGB_VAI: + case RGB_VAD: if(caps_in){ return false; } diff --git a/keyboards/owlab/suit80/ansi/keyboard.json b/keyboards/owlab/suit80/ansi/keyboard.json index b01ec347d3..22bf9f78cd 100644 --- a/keyboards/owlab/suit80/ansi/keyboard.json +++ b/keyboards/owlab/suit80/ansi/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Suit80 ANSI", "manufacturer": "OwLab", + "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53", "pid": "0x5355", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/owlab/suit80/iso/keyboard.json b/keyboards/owlab/suit80/iso/keyboard.json index a2814b0942..87e95e9bee 100644 --- a/keyboards/owlab/suit80/iso/keyboard.json +++ b/keyboards/owlab/suit80/iso/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Suit80 ISO", "manufacturer": "OwLab", + "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53", "pid": "0x5349", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 97bde08548..96c0c784c0 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -19,4 +19,6 @@ along with this program. If not, see . #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/owlab/voice65/hotswap/keyboard.json b/keyboards/owlab/voice65/hotswap/keyboard.json index 79ca2a57ed..088cde4001 100644 --- a/keyboards/owlab/voice65/hotswap/keyboard.json +++ b/keyboards/owlab/voice65/hotswap/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0x4F53", "pid": "0x564F", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -70,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c index de2738e648..5d640c162b 100644 --- a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c @@ -28,9 +28,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( 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, KC_TRNS, QK_BOOT, - KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_WHLU, MS_WHLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [2] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 97bde08548..96c0c784c0 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -19,4 +19,6 @@ along with this program. If not, see . #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_DISABLE_KEYCODES +#endif diff --git a/keyboards/owlab/voice65/soldered/keyboard.json b/keyboards/owlab/voice65/soldered/keyboard.json index edd79a064f..7aab520f76 100644 --- a/keyboards/owlab/voice65/soldered/keyboard.json +++ b/keyboards/owlab/voice65/soldered/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0x4F53", "pid": "0x5657", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -70,6 +66,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c index 70d22ceba9..5d640c162b 100644 --- a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c @@ -28,9 +28,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( 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, KC_TRNS, QK_BOOT, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, - KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MS_WHLU, MS_WHLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [2] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/p3d/eu_isolation/keyboard.json b/keyboards/p3d/eu_isolation/keyboard.json index 99a3548bb8..715515c42d 100644 --- a/keyboards/p3d/eu_isolation/keyboard.json +++ b/keyboards/p3d/eu_isolation/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "EU ISOlation", "manufacturer": "TuckTuckFloof", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/glitch/keyboard.json b/keyboards/p3d/glitch/keyboard.json index d860877b75..5de1405f4f 100644 --- a/keyboards/p3d/glitch/keyboard.json +++ b/keyboards/p3d/glitch/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/q4z/keyboard.json b/keyboards/p3d/q4z/keyboard.json index 0c293b92bd..9dfa123c6c 100644 --- a/keyboards/p3d/q4z/keyboard.json +++ b/keyboards/p3d/q4z/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "q4z", "manufacturer": "drmmr", + "url": "", "maintainer": "rjboone", "usb": { "vid": "0x0001", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/p3d/spacey/keyboard.json b/keyboards/p3d/spacey/keyboard.json index fdf19d0a72..ed23c327ad 100644 --- a/keyboards/p3d/spacey/keyboard.json +++ b/keyboards/p3d/spacey/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "spacey", "manufacturer": "vanilla", + "url": "", "maintainer": "vanilla", "usb": { "vid": "0x5641", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/spacey/keymaps/default/keymap.c b/keyboards/p3d/spacey/keymaps/default/keymap.c index 031728b37d..19bc5323b8 100644 --- a/keyboards/p3d/spacey/keymaps/default/keymap.c +++ b/keyboards/p3d/spacey/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = 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, KC_BSPC, KC_ESC, KC_TAB, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, MS_UP, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MS_LEFT, MS_DOWN, MS_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, KC_ENT, KC_MS_U, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_MS_L, KC_MS_D, KC_MS_R, KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_SPC, KC_BSPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL ) }; diff --git a/keyboards/p3d/synapse/keyboard.json b/keyboards/p3d/synapse/keyboard.json index 0c28e5b495..accd9ad47e 100644 --- a/keyboards/p3d/synapse/keyboard.json +++ b/keyboards/p3d/synapse/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "synapse", "manufacturer": "drmmr", + "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/synapse/synapse.c b/keyboards/p3d/synapse/synapse.c index c851e47f6b..0b532eaab6 100644 --- a/keyboards/p3d/synapse/synapse.c +++ b/keyboards/p3d/synapse/synapse.c @@ -20,9 +20,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 0) { /* right encoder */ if (clockwise){ diff --git a/keyboards/p3d/tw40/keyboard.json b/keyboards/p3d/tw40/keyboard.json index 488474f21e..459e187533 100644 --- a/keyboards/p3d/tw40/keyboard.json +++ b/keyboards/p3d/tw40/keyboard.json @@ -28,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pabile/p18/keyboard.json b/keyboards/pabile/p18/keyboard.json index 12b7006680..4bc6047ec0 100644 --- a/keyboards/pabile/p18/keyboard.json +++ b/keyboards/pabile/p18/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -27,7 +29,8 @@ {"pin_a": "F6", "pin_b": "F5"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pabile/p18/keymaps/default/keymap.c b/keyboards/pabile/p18/keymaps/default/keymap.c index 8d93db1097..0223a450cd 100644 --- a/keyboards/pabile/p18/keymaps/default/keymap.c +++ b/keyboards/pabile/p18/keymaps/default/keymap.c @@ -19,9 +19,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLU); /*mouse wheel up*/ + tap_code(KC_WH_U); /*mouse wheel up*/ } else { - tap_code(MS_WHLD); /*mouse wheel down*/ + tap_code(KC_WH_D); /*mouse wheel down*/ } } return true; diff --git a/keyboards/pabile/p20/info.json b/keyboards/pabile/p20/info.json index 0bac40f010..2584130637 100644 --- a/keyboards/pabile/p20/info.json +++ b/keyboards/pabile/p20/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Pabile", + "url": "", "maintainer": "pabile", "usb": { "vid": "0x6666", diff --git a/keyboards/pabile/p20/ver1/keyboard.json b/keyboards/pabile/p20/ver1/keyboard.json index 2cc5fed1ee..e909617faa 100644 --- a/keyboards/pabile/p20/ver1/keyboard.json +++ b/keyboards/pabile/p20/ver1/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -22,7 +24,8 @@ {"pin_a": "F7", "pin_b": "B1"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/pabile/p20/ver1/keymaps/default/keymap.c b/keyboards/pabile/p20/ver1/keymaps/default/keymap.c index 03b32323a4..a844e2c8a1 100644 --- a/keyboards/pabile/p20/ver1/keymaps/default/keymap.c +++ b/keyboards/pabile/p20/ver1/keymaps/default/keymap.c @@ -15,18 +15,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RPRN, KC_NO, KC_PSLS, KC_NO), [2] = LAYOUT_ortho_5x4( KC_NUM, KC_NO, KC_NO, KC_NO, - MS_BTN1, MS_UP, MS_BTN2, KC_NO, - MS_LEFT, MS_DOWN, MS_RGHT, KC_TAB, - MS_WHLU, KC_NO, MS_WHLD, KC_NO, + KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, + KC_MS_L, KC_MS_D, KC_MS_R, KC_TAB, + KC_WH_U, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_DEL, KC_ESC) }; bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { - tap_code(MS_WHLU); /*mouse wheel up*/ + tap_code(KC_WH_U); /*mouse wheel up*/ } else { - tap_code(MS_WHLD); /*mouse wheel down */ + tap_code(KC_WH_D); /*mouse wheel down */ } } else if (index == 1) { /* Second encoder */ if (clockwise) { diff --git a/keyboards/pabile/p20/ver2/keyboard.json b/keyboards/pabile/p20/ver2/keyboard.json index b82959af7a..b6688d870e 100644 --- a/keyboards/pabile/p20/ver2/keyboard.json +++ b/keyboards/pabile/p20/ver2/keyboard.json @@ -5,6 +5,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -15,7 +17,8 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/pabile/p40/keyboard.json b/keyboards/pabile/p40/keyboard.json index de4eca82ac..980da54a06 100644 --- a/keyboards/pabile/p40/keyboard.json +++ b/keyboards/pabile/p40/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -20,7 +22,8 @@ "rows": ["F6", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x10"], "layouts": { "LAYOUT_ortho_4x10": { diff --git a/keyboards/pabile/p40/keymaps/default/keymap.c b/keyboards/pabile/p40/keymaps/default/keymap.c index f0f25eef0c..d607deb73c 100644 --- a/keyboards/pabile/p40/keymaps/default/keymap.c +++ b/keyboards/pabile/p40/keymaps/default/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), [4] = LAYOUT_ortho_4x10( - KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_BTN1, MS_UP, MS_BTN2, KC_DEL, - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLU, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLD, KC_NO, KC_NO, KC_NO, KC_NO, + KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_DEL, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) }; diff --git a/keyboards/pabile/p40_ortho/keyboard.json b/keyboards/pabile/p40_ortho/keyboard.json index 838c58235c..305c0ad331 100644 --- a/keyboards/pabile/p40_ortho/keyboard.json +++ b/keyboards/pabile/p40_ortho/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -19,7 +21,8 @@ "rows": ["D1", "D0", "F4", "F5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_ortho_4x10": { "layout": [ diff --git a/keyboards/pabile/p40_ortho/keymaps/default/keymap.c b/keyboards/pabile/p40_ortho/keymaps/default/keymap.c index 74614bbb34..891d2b5735 100644 --- a/keyboards/pabile/p40_ortho/keymaps/default/keymap.c +++ b/keyboards/pabile/p40_ortho/keymaps/default/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), [4] = LAYOUT_ortho_4x10( - KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_BTN1, MS_UP, MS_BTN2, KC_DEL, - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLU, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLD, KC_NO, KC_NO, KC_NO, KC_NO, + KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_DEL, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) }; diff --git a/keyboards/pabile/p42/keyboard.json b/keyboards/pabile/p42/keyboard.json index 8311becdfc..70dcb09744 100644 --- a/keyboards/pabile/p42/keyboard.json +++ b/keyboards/pabile/p42/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -20,7 +22,8 @@ "rows": ["D1", "D0", "D4", "C6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pabile/p42/keymaps/default/keymap.c b/keyboards/pabile/p42/keymaps/default/keymap.c index b69f8719b4..ef4bad015b 100644 --- a/keyboards/pabile/p42/keymaps/default/keymap.c +++ b/keyboards/pabile/p42/keymaps/default/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS), [4] = LAYOUT( - KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_BTN1, MS_UP, MS_BTN2, KC_DEL, - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLU, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_DEL, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS) }; diff --git a/keyboards/palette1202/keymaps/default/keymap.c b/keyboards/palette1202/keymaps/default/keymap.c index 905b800cd6..70f2ba311c 100644 --- a/keyboards/palette1202/keymaps/default/keymap.c +++ b/keyboards/palette1202/keymaps/default/keymap.c @@ -19,6 +19,13 @@ #include "lib/oled_helper.h" #endif +enum custom_keycode { + Mac_CS = SAFE_RANGE, + Mac_PS, + Win_CS, + Win_PS, + IOS_CS, +}; enum layerID { MAC_CS_1 = 0, MAC_CS_2, @@ -33,12 +40,6 @@ enum layerID { SETTING, }; -#define Mac_CS PDF(MAC_CS_1) -#define Mac_PS PDF(MAC_PS_1) -#define Win_CS PDF(WIN_CS_1) -#define Win_PS PDF(WIN_PS_1) -#define IOS_CS PDF(IOS_CS_1) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Mac // Clip Studio @@ -50,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_CS_2] = LAYOUT( MO(SETTING), KC_ESC, KC_G, KC_R, LGUI(KC_GRV), _______, LGUI(KC_D), KC_K, KC_F, LGUI(KC_S), - KC_LALT, KC_I, LSG(KC_Z), KC_H + KC_LALT, KC_I, SGUI(KC_Z), KC_H ), // Photoshop [MAC_PS_1] = LAYOUT( @@ -61,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_PS_2] = LAYOUT( MO(SETTING), KC_ESC, KC_G, KC_R, KC_ESC, _______, LGUI(KC_D), KC_V, LGUI(KC_T), LGUI(KC_S), - KC_LALT, KC_I, LSG(KC_Z), KC_H + KC_LALT, KC_I, SGUI(KC_Z), KC_H ), // Windows @@ -97,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [IOS_CS_2] = LAYOUT( MO(SETTING), KC_ESC, KC_G, KC_R, LGUI(KC_EQL), _______, LGUI(KC_D), KC_K, KC_F, LGUI(KC_S), - KC_LALT, KC_I, LSG(KC_Z), KC_H + KC_LALT, KC_I, SGUI(KC_Z), KC_H ), [SETTING] = LAYOUT( _______, IOS_CS, Win_CS, Mac_CS, KC_NO, @@ -233,6 +234,44 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return true; } +// custom keycode +// switch default layer +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case Mac_CS: + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_CS_1); + } + return false; + break; + case Mac_PS: + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_PS_1); + } + return false; + break; + case Win_CS: + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_CS_1); + } + return false; + break; + case Win_PS: + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_PS_1); + } + return false; + break; + case IOS_CS: + if (record->event.pressed) { + set_single_persistent_default_layer(IOS_CS_1); + } + return false; + break; + } + return true; +} + // OLED Display #ifdef OLED_ENABLE bool oled_task_user(void) { diff --git a/keyboards/panc40/keyboard.json b/keyboards/panc40/keyboard.json index 7bc19fab06..fe98da7f2e 100644 --- a/keyboards/panc40/keyboard.json +++ b/keyboards/panc40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Panc40", "manufacturer": "Panc Interactive", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/panc60/keyboard.json b/keyboards/panc60/keyboard.json index 98410497d5..e0f3a491c8 100644 --- a/keyboards/panc60/keyboard.json +++ b/keyboards/panc60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Panc60", "manufacturer": "Panc Interactive", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pangorin/tan67/keyboard.json b/keyboards/pangorin/tan67/keyboard.json index 3c593d846b..5b36fd7a40 100644 --- a/keyboards/pangorin/tan67/keyboard.json +++ b/keyboards/pangorin/tan67/keyboard.json @@ -18,6 +18,8 @@ "bootmagic": true, "mousekey": false, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/pangorin/tan67/keymaps/default/keymap.c b/keyboards/pangorin/tan67/keymaps/default/keymap.c index a50241b8f6..2b46433eef 100644 --- a/keyboards/pangorin/tan67/keymaps/default/keymap.c +++ b/keyboards/pangorin/tan67/keymaps/default/keymap.c @@ -72,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN1] = LAYOUT_65_ansi_blocker( 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, QK_BOOT, _______, - _______, _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, RM_VALD, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ ) }; diff --git a/keyboards/pangorin/tan67/tan67.c b/keyboards/pangorin/tan67/tan67.c index 08568ddcc8..574624c157 100644 --- a/keyboards/pangorin/tan67/tan67.c +++ b/keyboards/pangorin/tan67/tan67.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/papercranekeyboards/gerald65/keyboard.json b/keyboards/papercranekeyboards/gerald65/keyboard.json index 48ccbf1b5a..255727d508 100644 --- a/keyboards/papercranekeyboards/gerald65/keyboard.json +++ b/keyboards/papercranekeyboards/gerald65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "gerald65", "manufacturer": "PaperCraneKeyboards", + "url": "", "maintainer": "PaperCraneKeyboards", "usb": { "vid": "0x5012", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json index 8706c67bcd..1ee4b998f7 100644 --- a/keyboards/paprikman/albacore/keyboard.json +++ b/keyboards/paprikman/albacore/keyboard.json @@ -18,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/paprikman/albacore/keymaps/default/keymap.c b/keyboards/paprikman/albacore/keymaps/default/keymap.c index 9d50ba024e..022250caf1 100644 --- a/keyboards/paprikman/albacore/keymaps/default/keymap.c +++ b/keyboards/paprikman/albacore/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_MPRV, KC_MPLY, KC_MNXT ), [1] = LAYOUT( - RM_TOGG, RM_NEXT, RM_VALU, - _______, RM_SPDU, RM_SPDD, RM_VALD + RGB_TOG, RGB_MOD, RGB_VAI, + _______, RGB_SPI, RGB_SPD, RGB_VAD ), }; diff --git a/keyboards/parallel/parallel_65/hotswap/keyboard.json b/keyboards/parallel/parallel_65/hotswap/keyboard.json index 228d9dcb7e..8b1e31191f 100644 --- a/keyboards/parallel/parallel_65/hotswap/keyboard.json +++ b/keyboards/parallel/parallel_65/hotswap/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/parallel/parallel_65/soldered/keyboard.json b/keyboards/parallel/parallel_65/soldered/keyboard.json index 6acf08d808..2e8d049dbf 100644 --- a/keyboards/parallel/parallel_65/soldered/keyboard.json +++ b/keyboards/parallel/parallel_65/soldered/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/pauperboards/brick/keyboard.json b/keyboards/pauperboards/brick/keyboard.json index f1775b4be5..8ebe32ded4 100644 --- a/keyboards/pauperboards/brick/keyboard.json +++ b/keyboards/pauperboards/brick/keyboard.json @@ -17,6 +17,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -33,6 +35,7 @@ }, "rgblight": { "led_count": 8, + "hue_steps": 8, "brightness_steps": 8, "saturation_steps": 8, "animations": { diff --git a/keyboards/pdxkbc/keyboard.json b/keyboards/pdxkbc/keyboard.json index 7921c67190..642adc0878 100644 --- a/keyboards/pdxkbc/keyboard.json +++ b/keyboards/pdxkbc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "pdxkbc", "manufacturer": "Franklin Harding", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5044", diff --git a/keyboards/pearl/keyboard.json b/keyboards/pearl/keyboard.json index c839c54e19..60c5bb3a37 100644 --- a/keyboards/pearl/keyboard.json +++ b/keyboards/pearl/keyboard.json @@ -11,6 +11,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/pearlboards/atlas/keyboard.json b/keyboards/pearlboards/atlas/keyboard.json index ea9f86ec51..6886885e03 100644 --- a/keyboards/pearlboards/atlas/keyboard.json +++ b/keyboards/pearlboards/atlas/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Atlas", "manufacturer": "Koobaczech", + "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/pandora/keyboard.json b/keyboards/pearlboards/pandora/keyboard.json index c17de8de35..869852b58d 100644 --- a/keyboards/pearlboards/pandora/keyboard.json +++ b/keyboards/pearlboards/pandora/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pandora", "manufacturer": "Koobaczech", + "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "dip_switch": true, "encoder": true, "extrakey": true, @@ -68,15 +71,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -428,7 +427,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/pearlboards/pearl/keyboard.json b/keyboards/pearlboards/pearl/keyboard.json index 3f35aec006..e91192475f 100644 --- a/keyboards/pearlboards/pearl/keyboard.json +++ b/keyboards/pearlboards/pearl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pearl", "manufacturer": "Koobaczech", + "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/zeus/keyboard.json b/keyboards/pearlboards/zeus/keyboard.json index 72751a5fec..9a3e7ead5f 100644 --- a/keyboards/pearlboards/zeus/keyboard.json +++ b/keyboards/pearlboards/zeus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Zeus", "manufacturer": "Koobaczech", + "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/zeuspad/keyboard.json b/keyboards/pearlboards/zeuspad/keyboard.json index 865e9c4e79..93e1e64433 100644 --- a/keyboards/pearlboards/zeuspad/keyboard.json +++ b/keyboards/pearlboards/zeuspad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Zeuspad", "manufacturer": "Koobaczech", + "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/peej/lumberjack/keyboard.json b/keyboards/peej/lumberjack/keyboard.json index 9893ba7227..c94cb008be 100644 --- a/keyboards/peej/lumberjack/keyboard.json +++ b/keyboards/peej/lumberjack/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/peej/rosaline/rules.mk b/keyboards/peej/rosaline/rules.mk new file mode 100644 index 0000000000..928164362a --- /dev/null +++ b/keyboards/peej/rosaline/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = peej/rosaline/staggered diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json index e716e20cfe..8e357205f9 100644 --- a/keyboards/peej/tripel/info.json +++ b/keyboards/peej/tripel/info.json @@ -11,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -20,5 +21,6 @@ "rows": ["C6", "D4", "D0", "B4", "E6", "D7", "D1", "D2", "D3"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/peej/tripel/rules.mk b/keyboards/peej/tripel/rules.mk new file mode 100644 index 0000000000..8d89700456 --- /dev/null +++ b/keyboards/peej/tripel/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = peej/tripel/left diff --git a/keyboards/pegasus/keyboard.json b/keyboards/pegasus/keyboard.json index 865833d189..4de1631379 100644 --- a/keyboards/pegasus/keyboard.json +++ b/keyboards/pegasus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pegasus", "manufacturer": "melonbred", + "url": "", "maintainer": "melonbred", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/pegasus/readme.md b/keyboards/pegasus/readme.md index 9c6d575e92..c523c03540 100644 --- a/keyboards/pegasus/readme.md +++ b/keyboards/pegasus/readme.md @@ -5,6 +5,8 @@ Pegasus is a 40% keyboard with a 12.75u "WKL" layout with 0.75u blockers. * Keyboard Maintainer: [melonbred](https://github.com/melonbred) +* Hardware Supported: The PCBs, controllers supported +* Hardware Availability: Links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/peranekofactory/tone/rev1/keyboard.json b/keyboards/peranekofactory/tone/rev1/keyboard.json index 9e9f7013c2..fb7b41b27a 100644 --- a/keyboards/peranekofactory/tone/rev1/keyboard.json +++ b/keyboards/peranekofactory/tone/rev1/keyboard.json @@ -27,7 +27,8 @@ }, "tap_keycode_delay": 100 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "direct": [ ["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"] diff --git a/keyboards/peranekofactory/tone/rev2/keyboard.json b/keyboards/peranekofactory/tone/rev2/keyboard.json index 9e9f7013c2..fb7b41b27a 100644 --- a/keyboards/peranekofactory/tone/rev2/keyboard.json +++ b/keyboards/peranekofactory/tone/rev2/keyboard.json @@ -27,7 +27,8 @@ }, "tap_keycode_delay": 100 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "direct": [ ["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"] diff --git a/keyboards/peranekofactory/tone/rules.mk b/keyboards/peranekofactory/tone/rules.mk new file mode 100644 index 0000000000..e87862a9f6 --- /dev/null +++ b/keyboards/peranekofactory/tone/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = peranekofactory/tone/rev2 diff --git a/keyboards/percent/booster/keyboard.json b/keyboards/percent/booster/keyboard.json index 82701646ff..edd9afd18d 100644 --- a/keyboards/percent/booster/keyboard.json +++ b/keyboards/percent/booster/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Booster", "manufacturer": "Percent Studio", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", diff --git a/keyboards/percent/canoe/keyboard.json b/keyboards/percent/canoe/keyboard.json index 354b1164d9..656f73f904 100644 --- a/keyboards/percent/canoe/keyboard.json +++ b/keyboards/percent/canoe/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CANOE", "manufacturer": "Percent Studios", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json index b6a8a47a5f..85fbfd28b9 100644 --- a/keyboards/percent/canoe_gen2/keyboard.json +++ b/keyboards/percent/canoe_gen2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Canoe Gen2", "manufacturer": "Percent Studio", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x9C12", diff --git a/keyboards/percent/canoe_gen2/keymaps/default/keymap.c b/keyboards/percent/canoe_gen2/keymaps/default/keymap.c index a21efb2322..a434fd184a 100644 --- a/keyboards/percent/canoe_gen2/keymaps/default/keymap.c +++ b/keyboards/percent/canoe_gen2/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, - _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______), + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______), }; diff --git a/keyboards/percent/canoe_gen2/rgb_matrix_kb.inc b/keyboards/percent/canoe_gen2/rgb_matrix_kb.inc index 3839fbfe4f..94ff62b3a8 100644 --- a/keyboards/percent/canoe_gen2/rgb_matrix_kb.inc +++ b/keyboards/percent/canoe_gen2/rgb_matrix_kb.inc @@ -22,8 +22,8 @@ RGB_MATRIX_EFFECT(indicator_static) #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool indicator_static(effect_params_t* params) { - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb = hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb = hsv_to_rgb(hsv); RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min; i < 74; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); @@ -43,21 +43,21 @@ bool effect_runner_indicator(effect_params_t* params, i_f effect_func) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } else { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, (i - 74), time)); + RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, (i - 74), time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } } return rgb_matrix_check_finished_leds(led_max); } -static hsv_t indicator_gradient_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV indicator_gradient_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = g_led_config.point[i].x - time; return hsv; } bool indicator_gradient(effect_params_t* params) { return effect_runner_indicator(params, &indicator_gradient_math); } -static hsv_t indicator_cycle_all_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV indicator_cycle_all_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = time; return hsv; } diff --git a/keyboards/percent/skog/keyboard.json b/keyboards/percent/skog/keyboard.json index da210410ef..823c1638ac 100644 --- a/keyboards/percent/skog/keyboard.json +++ b/keyboards/percent/skog/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Skog TKL", "manufacturer": "Percent Studios", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/percent/skog_lite/keyboard.json b/keyboards/percent/skog_lite/keyboard.json index f1e925d2ea..e52d910845 100644 --- a/keyboards/percent/skog_lite/keyboard.json +++ b/keyboards/percent/skog_lite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Skog Lite", "manufacturer": "Percent Studios", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/phage_studio/pila87/keymaps/default/keymap.c b/keyboards/phage_studio/pila87/keymaps/default/keymap.c index 3310a8e5ab..10f01dbae5 100644 --- a/keyboards/phage_studio/pila87/keymaps/default/keymap.c +++ b/keyboards/phage_studio/pila87/keymaps/default/keymap.c @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [_FN1] = LAYOUT_tkl_ansi( - QK_BOOT, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, NK_TOGG, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, 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_BSPC, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, diff --git a/keyboards/phage_studio/pila87/pila87.c b/keyboards/phage_studio/pila87/pila87.c index 619623cc09..3425e0abf5 100644 --- a/keyboards/phage_studio/pila87/pila87.c +++ b/keyboards/phage_studio/pila87/pila87.c @@ -48,7 +48,7 @@ led_config_t g_led_config = { { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -73,10 +73,10 @@ bool rgb_matrix_indicators_kb(void) { return false; } - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(40, rgb.r, rgb.g, rgb.b); diff --git a/keyboards/phantom/keyboard.json b/keyboards/phantom/keyboard.json index 79d94cce6e..6f2b99b2b1 100644 --- a/keyboards/phantom/keyboard.json +++ b/keyboards/phantom/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/phase_studio/titan65/hotswap/keyboard.json b/keyboards/phase_studio/titan65/hotswap/keyboard.json index c9d1b0f726..956f508701 100644 --- a/keyboards/phase_studio/titan65/hotswap/keyboard.json +++ b/keyboards/phase_studio/titan65/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Titan 65 (hotswap)", "manufacturer": "Phase Studio", + "url": "", "maintainer": "drashna", "usb": { "vid": "0x5054", diff --git a/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c b/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c index 5885b93482..5da05af159 100644 --- a/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c +++ b/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/phase_studio/titan65/rules.mk b/keyboards/phase_studio/titan65/rules.mk new file mode 100644 index 0000000000..d55ca35d7a --- /dev/null +++ b/keyboards/phase_studio/titan65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = phase_studio/titan65/hotswap diff --git a/keyboards/phase_studio/titan65/soldered/keyboard.json b/keyboards/phase_studio/titan65/soldered/keyboard.json index 8bb0f6f19c..c60c689932 100644 --- a/keyboards/phase_studio/titan65/soldered/keyboard.json +++ b/keyboards/phase_studio/titan65/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Titan 65 (soldered)", "manufacturer": "Phase Studio", + "url": "", "maintainer": "drashna", "usb": { "vid": "0x5054", diff --git a/keyboards/phdesign/ph60/multi/keyboard.json b/keyboards/phdesign/ph60/multi/keyboard.json deleted file mode 100644 index 7240974f70..0000000000 --- a/keyboards/phdesign/ph60/multi/keyboard.json +++ /dev/null @@ -1,298 +0,0 @@ -{ - "manufacturer": "phdesign.cc", - "keyboard_name": "ph60_multi", - "maintainer": "phdesign", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], - "rows": ["GP14", "GP15", "GP18", "GP19", "GP20"] - }, - "processor": "RP2040", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "url": "phdesign.cc", - "usb": { - "device_version": "2.0.1", - "pid": "0x0002", - "vid": "0x5048" - }, - "community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift", "60_iso"] - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c b/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c deleted file mode 100644 index 74d7a97299..0000000000 --- a/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_layers { - _BASE, - _FN1, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// Base Layer (61 keys) - [_BASE] = 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_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL - ), - // Fn1 Layer (Windows Lock Shifting Layer) - [_FN1] = 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, KC_DEL, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/phdesign/ph60/multi/readme.md b/keyboards/phdesign/ph60/multi/readme.md deleted file mode 100644 index 320e8ec926..0000000000 --- a/keyboards/phdesign/ph60/multi/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# phdesign/ph60/multi - -![PromoImage](https://i.imgur.com/sUwC9mk.jpg) - -A 60% multi-layout supported keyboard PCB with open source keyboard case. - -* Keyboard Maintainer: [Team PHDesign](https://github.com/ph-design) -* Hardware Supported: PH60/Multi PCB -* Hardware Availability: - - Store: https://e.tb.cn/h.6VMjUgWZkUGwq26?tk=oVyAeD6uPS2 - - GitHub Repo: https://github.com/ph-design/PH60/tree/Rev.2/PCB_Rev2/Multi - -Make example for this keyboard (after setting up your build environment): - - make phdesign/ph60/multi:default - -Flashing example for this keyboard: - - make phdesign/ph60/multi:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/phdesign/phac/keyboard.json b/keyboards/phdesign/phac/keyboard.json deleted file mode 100644 index 3034aaa3a0..0000000000 --- a/keyboards/phdesign/phac/keyboard.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "manufacturer": "PHDesign", - "keyboard_name": "phac", - "maintainer": "nonameCCC", - "bootloader": "rp2040", - "encoder": { - "rotary": [ - {"pin_a": "GP7", "pin_b": "GP8", "resolution": 1}, - {"pin_a": "GP10", "pin_b": "GP9", "resolution": 1} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [ - ["GP1", "GP6", "GP5", "GP4", "GP3", "GP2", "GP0"] - ] - }, - "processor": "RP2040", - "usb": { - "device_version": "2.2.0", - "pid": "0x0001", - "vid": "0x5048" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 2.5, "y": 0}, - {"matrix": [0, 1], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [0, 2], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [0, 3], "x": 3, "y": 1, "w": 1.5}, - {"matrix": [0, 4], "x": 4.5, "y": 1, "w": 1.5}, - {"matrix": [0, 5], "x": 0.375, "y": 2, "w": 2.25}, - {"matrix": [0, 6], "x": 3.375, "y": 2, "w": 2.25} - ] - } - } -} diff --git a/keyboards/phdesign/phac/keymaps/default/keymap.c b/keyboards/phdesign/phac/keymaps/default/keymap.c deleted file mode 100644 index 630cca64a7..0000000000 --- a/keyboards/phdesign/phac/keymaps/default/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layer_names { - _BL, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = LAYOUT( - KC_B, - KC_S, KC_D, KC_K, KC_L, - KC_V, KC_N - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BL] = { ENCODER_CCW_CW(MS_UP, MS_DOWN), ENCODER_CCW_CW(MS_LEFT, MS_RGHT) }, -}; -#endif \ No newline at end of file diff --git a/keyboards/phdesign/phac/keymaps/default/rules.mk b/keyboards/phdesign/phac/keymaps/default/rules.mk deleted file mode 100644 index a40474b4d5..0000000000 --- a/keyboards/phdesign/phac/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/phdesign/phac/readme.md b/keyboards/phdesign/phac/readme.md deleted file mode 100644 index 88801888db..0000000000 --- a/keyboards/phdesign/phac/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# phac - -![phac](https://i.imgur.com/bQdYGMf.png) - -A rhythm game controller with 7 keys and 2 encoders on it. - -* Keyboard Maintainer: [Xufeng Tao](https://github.com/nonameCCC) -* Hardware Supported: RP2040 minimal system -* Hardware Availability: https://m.tb.cn/h.gLFXLaX?tk=7DpL3TuPVxx (currently not available outside of mainland China) - -Make example for this keyboard (after setting up your build environment): - - make phdesign/phac:default - -Flashing example for this keyboard: - - make phdesign/phac: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 2 ways: - -* **Bootmagic reset**: Hold down the key at (0,5) in the matrix (the START button) and plug in the controller -* **Physical reset button**: Short pin hole SW1 on the back of the PCB (not recommended as the case is not easy to open) diff --git a/keyboards/phdesign/readme.md b/keyboards/phdesign/readme.md deleted file mode 100644 index 4605afc13f..0000000000 --- a/keyboards/phdesign/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -![PHDesign Logo](https://i.imgur.com/zkiyChR.png) - -PHDesign is a team focused on making variety kinds of tech stuff,including keyboards and keyboard-like controllers. This directory includes QMK config files for our keyboard products. - -* Maintainer: [Team PHDesign](https://github.com/ph-design) -* Supported Hardware: - * [`PH60/Multi`](ph60/multi/): PH60 multi-layout PCB - * [`PH-AC`](phac/): PH-AC rhythm game controller -* Product Availability: [phdesing.cc](https://phdesign.cc/) diff --git a/keyboards/phentech/rpk_001/halconf.h b/keyboards/phentech/rpk_001/halconf.h index 872e0217df..8760386e81 100644 --- a/keyboards/phentech/rpk_001/halconf.h +++ b/keyboards/phentech/rpk_001/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/phentech/rpk_001/keyboard.json b/keyboards/phentech/rpk_001/keyboard.json index df92139874..0ce2993897 100644 --- a/keyboards/phentech/rpk_001/keyboard.json +++ b/keyboards/phentech/rpk_001/keyboard.json @@ -2,19 +2,16 @@ "manufacturer": "HENGCANG ELECTRONIC", "keyboard_name": "RPK-001", "maintainer": "JoyLee", + "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { "device_version": "1.0.0", "vid": "0xAC12", "pid": "0x2236", + "force_nkro": true, "suspend_wakeup_delay": 1000 }, - "host": { - "default": { - "nkro": true - } - }, "diode_direction": "ROW2COL", "eeprom": { "driver": "wear_leveling", diff --git a/keyboards/phentech/rpk_001/keymaps/default/keymap.c b/keyboards/phentech/rpk_001/keymaps/default/keymap.c index 3cc983f707..b07a7f64c0 100644 --- a/keyboards/phentech/rpk_001/keymaps/default/keymap.c +++ b/keyboards/phentech/rpk_001/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_PREV, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/phoenix/keyboard.json b/keyboards/phoenix/keyboard.json index d0d99c9404..f3eb6a8d55 100644 --- a/keyboards/phoenix/keyboard.json +++ b/keyboards/phoenix/keyboard.json @@ -41,7 +41,6 @@ "processor": "STM32F401", "bootloader": "stm32-dfu", "board": "BLACKPILL_STM32_F401", - "community_layouts": ["ergodox"], "layouts": { "LAYOUT_ergodox": { "layout": [ diff --git a/keyboards/phoenix/keymaps/default/keymap.c b/keyboards/phoenix/keymaps/default/keymap.c index 8191c0af26..909e1dbb60 100644 --- a/keyboards/phoenix/keymaps/default/keymap.c +++ b/keyboards/phoenix/keymaps/default/keymap.c @@ -116,13 +116,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - MS_BTN1, KC_TRNS, KC_TRNS, + KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/phrygian/ph100/keyboard.json b/keyboards/phrygian/ph100/keyboard.json index 28ad88c98e..3d0c611862 100644 --- a/keyboards/phrygian/ph100/keyboard.json +++ b/keyboards/phrygian/ph100/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/piantoruv44/config.h b/keyboards/piantoruv44/config.h deleted file mode 100644 index e6ba4c0be9..0000000000 --- a/keyboards/piantoruv44/config.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 beekeeb -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 diff --git a/keyboards/piantoruv44/keyboard.json b/keyboards/piantoruv44/keyboard.json deleted file mode 100644 index 771644cb5d..0000000000 --- a/keyboards/piantoruv44/keyboard.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "manufacturer": "azhizhinov", - "keyboard_name": "PIANTORUV44", - "maintainer": "azhizhinov", - "bootloader": "rp2040", - "bootmagic": { - "matrix": [0, 5] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [ - ["GP5", "GP4", "GP11", "GP15", "GP3", "GP2"], - ["GP22", "GP20", "GP10", "GP14", "GP9", "GP8"], - ["GP21", "GP19", "GP6", "GP7", "GP13", "GP12"], - ["GP17", "GP18", "GP16", "GP26", null, null] - ] - }, - "processor": "RP2040", - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "direct": [ - ["GP2", "GP3", "GP15", "GP11", "GP4", "GP5"], - ["GP8", "GP9", "GP14", "GP10", "GP20", "GP22"], - ["GP12", "GP13", "GP7", "GP6", "GP19", "GP21"], - ["GP26", "GP16", "GP18", "GP17", null, null] - ] - } - }, - "serial": { - "driver": "vendor" - } - }, - "url": "https://github.com/azhizhinov/PIANTORUV44", - "usb": { - "device_version": "1.0.0", - "pid": "0x0004", - "vid": "0x415A" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.25}, - {"matrix": [0, 1], "x": 1, "y": 0.25}, - {"matrix": [0, 2], "x": 2, "y": 0.125}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.125}, - {"matrix": [0, 5], "x": 5, "y": 0.25}, - {"matrix": [4, 0], "x": 8, "y": 0.25}, - {"matrix": [4, 1], "x": 9, "y": 0.125}, - {"matrix": [4, 2], "x": 10, "y": 0}, - {"matrix": [4, 3], "x": 11, "y": 0.125}, - {"matrix": [4, 4], "x": 12, "y": 0.25}, - {"matrix": [4, 5], "x": 13, "y": 0.25}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.125}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.125}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [5, 0], "x": 8, "y": 1.25}, - {"matrix": [5, 1], "x": 9, "y": 1.125}, - {"matrix": [5, 2], "x": 10, "y": 1}, - {"matrix": [5, 3], "x": 11, "y": 1.125}, - {"matrix": [5, 4], "x": 12, "y": 1.25}, - {"matrix": [5, 5], "x": 13, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25}, - {"matrix": [2, 1], "x": 1, "y": 2.25}, - {"matrix": [2, 2], "x": 2, "y": 2.125}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.125}, - {"matrix": [2, 5], "x": 5, "y": 2.25}, - {"matrix": [6, 0], "x": 8, "y": 2.25}, - {"matrix": [6, 1], "x": 9, "y": 2.125}, - {"matrix": [6, 2], "x": 10, "y": 2}, - {"matrix": [6, 3], "x": 11, "y": 2.125}, - {"matrix": [6, 4], "x": 12, "y": 2.25}, - {"matrix": [6, 5], "x": 13, "y": 2.25}, - {"matrix": [3, 0], "x": 2.5, "y": 3}, - {"matrix": [3, 1], "x": 3.5, "y": 3.25}, - {"matrix": [3, 2], "x": 4.5, "y": 3.5}, - {"matrix": [3, 3], "x": 5.5, "y": 3.75}, - {"matrix": [7, 0], "x": 7.5, "y": 3.75}, - {"matrix": [7, 1], "x": 8.5, "y": 3.5}, - {"matrix": [7, 2], "x": 9.5, "y": 3.25}, - {"matrix": [7, 3], "x": 10.5, "y": 3} - ] - } - } -} diff --git a/keyboards/piantoruv44/keymaps/default/keymap.c b/keyboards/piantoruv44/keymaps/default/keymap.c deleted file mode 100644 index 49d5e4d178..0000000000 --- a/keyboards/piantoruv44/keymaps/default/keymap.c +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2021 azhizhinov (@azhizhinov) -// SPDX-License-Identifier: GPL-2.0-or-late -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC, - KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC) - ), - [1] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO, - KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT, - KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC) - ), - [2] = 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_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT, - KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC) - ), - [3] = LAYOUT( - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, - KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT, - KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC) - ) -}; diff --git a/keyboards/piantoruv44/readme.md b/keyboards/piantoruv44/readme.md deleted file mode 100644 index 0fe5fe2d0c..0000000000 --- a/keyboards/piantoruv44/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Piantor UV 44 - -![Piantor UV 44](https://i.ibb.co/QvJM1GR/20240806-PIANTORUV44-00.png) - -PiantorUV44 is a Piantor/Cantor fork with Raspberry Pi Pico, hybrid hotswap socket and soldered-in switches support and flippable PCB. - -* Keyboard Maintainer: [azhizhinov](https://github.com/azhizhinov) -* Hardware Supported: RP2040 -* Hardware Availability: https://github.com/azhizhinov/PIANTORUV44 - -Make example for this keyboard (after setting up your build environment): - - make piantoruv44:default - -Flashing example for this keyboard: - - make piantoruv44: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 2 ways: - -* **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side. diff --git a/keyboards/pica40/rev1/config.h b/keyboards/pica40/rev1/config.h index b6515a05b4..09c481a9ff 100644 --- a/keyboards/pica40/rev1/config.h +++ b/keyboards/pica40/rev1/config.h @@ -4,5 +4,6 @@ #pragma once #ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_DISABLE_KEYCODES // disable keycodes for RGB Light controls, only status LED is supported # define PICA40_RGBLIGHT_TIMEOUT 5 // turn RGB off after N minutes #endif diff --git a/keyboards/pica40/rev1/keyboard.json b/keyboards/pica40/rev1/keyboard.json index a616a2e497..fdb4cb09b3 100644 --- a/keyboards/pica40/rev1/keyboard.json +++ b/keyboards/pica40/rev1/keyboard.json @@ -1,5 +1,6 @@ { - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "diode_direction": "COL2ROW", "matrix_pins": { "cols": ["D2", "B5", "B4", "E6", "D7"], @@ -7,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "mousekey": true, "extrakey": true, "encoder": true, diff --git a/keyboards/pica40/rev2/config.h b/keyboards/pica40/rev2/config.h index 464bb62b20..dad718ad0f 100644 --- a/keyboards/pica40/rev2/config.h +++ b/keyboards/pica40/rev2/config.h @@ -8,6 +8,7 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U #ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_DISABLE_KEYCODES // disable keycodes for RGB Light controls, only status LED is supported # define PICA40_RGBLIGHT_TIMEOUT 5 // turn RGB off after N minutes #endif diff --git a/keyboards/pica40/rev2/keyboard.json b/keyboards/pica40/rev2/keyboard.json index 3c753af26a..64b043f274 100644 --- a/keyboards/pica40/rev2/keyboard.json +++ b/keyboards/pica40/rev2/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "mousekey": true, "extrakey": true, "encoder": true, @@ -46,7 +48,7 @@ }, "encoder": { "rotary": [ - {"pin_a": "GP7", "pin_b": "GP7"} + {"pin_a": "GP7", "pin_b": "GP7", "resolution": 4} ] }, "usb": { diff --git a/keyboards/pica40/rules.mk b/keyboards/pica40/rules.mk new file mode 100644 index 0000000000..9670889712 --- /dev/null +++ b/keyboards/pica40/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = pica40/rev2 diff --git a/keyboards/picolab/frusta_fundamental/keyboard.json b/keyboards/picolab/frusta_fundamental/keyboard.json index 55a049060d..56c145e03c 100644 --- a/keyboards/picolab/frusta_fundamental/keyboard.json +++ b/keyboards/picolab/frusta_fundamental/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pierce/config.h b/keyboards/pierce/config.h index 3b89c38603..82c4b4b264 100644 --- a/keyboards/pierce/config.h +++ b/keyboards/pierce/config.h @@ -23,40 +23,3 @@ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - -#ifdef PS2_DRIVER_USART -#define PS2_CLOCK_PIN D5 -#define PS2_DATA_PIN D2 - -/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */ -/* set DDR of CLOCK as input to be slave */ -#define PS2_USART_INIT() do { \ - PS2_CLOCK_DDR &= ~(1<. #define AUDIO_VOICES #define AUDIO_PIN C6 -#define AUDIO_INIT_DELAY - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index a56cee0549..a1ad5c65d6 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -31,7 +31,10 @@ enum planck_layers { }; enum planck_keycodes { - PLOVER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, BACKLIT, EXT_PLV }; @@ -39,10 +42,6 @@ enum planck_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -185,6 +184,25 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); @@ -215,9 +233,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; break; @@ -258,13 +276,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { if (clockwise) { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); #else tap_code(KC_PGDN); #endif } else { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); #else tap_code(KC_PGUP); #endif diff --git a/keyboards/planck/light/keyboard.json b/keyboards/planck/light/keyboard.json index 413c753f92..dd1d69bf3c 100644 --- a/keyboards/planck/light/keyboard.json +++ b/keyboards/planck/light/keyboard.json @@ -60,6 +60,7 @@ "features": { "audio": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "midi": true, diff --git a/keyboards/planck/rev1/keyboard.json b/keyboards/planck/rev1/keyboard.json index 1be09d866e..f737781a1c 100644 --- a/keyboards/planck/rev1/keyboard.json +++ b/keyboards/planck/rev1/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/planck/rev2/keyboard.json b/keyboards/planck/rev2/keyboard.json index d87b05a974..d10982f357 100644 --- a/keyboards/planck/rev2/keyboard.json +++ b/keyboards/planck/rev2/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/planck/rev3/keyboard.json b/keyboards/planck/rev3/keyboard.json index b7e95c765f..16d2b59a2e 100644 --- a/keyboards/planck/rev3/keyboard.json +++ b/keyboards/planck/rev3/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/planck/rev4/keyboard.json b/keyboards/planck/rev4/keyboard.json index 492112fa68..655c48e7dd 100644 --- a/keyboards/planck/rev4/keyboard.json +++ b/keyboards/planck/rev4/keyboard.json @@ -14,6 +14,7 @@ "features": { "audio": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/planck/rev5/keyboard.json b/keyboards/planck/rev5/keyboard.json index a251080156..debf8dcdfc 100644 --- a/keyboards/planck/rev5/keyboard.json +++ b/keyboards/planck/rev5/keyboard.json @@ -14,6 +14,7 @@ "features": { "audio": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c index 6880e2fa94..85f5097332 100644 --- a/keyboards/planck/rev7/keymaps/default/keymap.c +++ b/keyboards/planck/rev7/keymaps/default/keymap.c @@ -18,15 +18,11 @@ enum planck_layers { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _PLOVER, _ADJUST }; -enum planck_keycodes { PLOVER = SAFE_RANGE, BACKLIT, EXT_PLV }; +enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, PLOVER, BACKLIT, EXT_PLV }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - /* clang-format off */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -234,6 +230,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); @@ -255,9 +270,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } return false; break; diff --git a/keyboards/playkbtw/ca66/keyboard.json b/keyboards/playkbtw/ca66/keyboard.json index 781c39ea4b..d94a8d6b4d 100644 --- a/keyboards/playkbtw/ca66/keyboard.json +++ b/keyboards/playkbtw/ca66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "CA66", "manufacturer": "Barry", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5457", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/helen80/keyboard.json b/keyboards/playkbtw/helen80/keyboard.json index 038a3ee562..47f7e48ef6 100644 --- a/keyboards/playkbtw/helen80/keyboard.json +++ b/keyboards/playkbtw/helen80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Helen 80", "manufacturer": "Play Keyboard", + "url": "", "maintainer": "yj7272098", "usb": { "vid": "0x706B", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/pk60/keyboard.json b/keyboards/playkbtw/pk60/keyboard.json index 363a835d54..15de711ad1 100644 --- a/keyboards/playkbtw/pk60/keyboard.json +++ b/keyboards/playkbtw/pk60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "pk60", "manufacturer": "Play Keyboard", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/pk64rgb/keyboard.json b/keyboards/playkbtw/pk64rgb/keyboard.json index 2fa3e3cb92..81ac5be596 100644 --- a/keyboards/playkbtw/pk64rgb/keyboard.json +++ b/keyboards/playkbtw/pk64rgb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "PK64RGB", "manufacturer": "Play Keyboard", + "url": "", "maintainer": "yj7272098", "usb": { "vid": "0x706B", @@ -88,6 +89,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c index ee8e4e0967..1b3b6fe102 100644 --- a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c +++ b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, - RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______, + RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/ploopyco/madromys/keymaps/default/keymap.c b/keyboards/ploopyco/madromys/keymaps/default/keymap.c index a4e46efc87..bc8265b39d 100644 --- a/keyboards/ploopyco/madromys/keymaps/default/keymap.c +++ b/keyboards/ploopyco/madromys/keymaps/default/keymap.c @@ -18,5 +18,5 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( MS_BTN4, MS_BTN5, DRAG_SCROLL, MS_BTN2, MS_BTN1, MS_BTN3 ) + [0] = LAYOUT( KC_BTN4, KC_BTN5, DRAG_SCROLL, KC_BTN2, KC_BTN1, KC_BTN3 ) }; diff --git a/keyboards/ploopyco/madromys/post_rules.mk b/keyboards/ploopyco/madromys/post_rules.mk deleted file mode 100644 index fab9162dc6..0000000000 --- a/keyboards/ploopyco/madromys/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/madromys/rules.mk b/keyboards/ploopyco/madromys/rules.mk new file mode 100644 index 0000000000..b7e33d92f9 --- /dev/null +++ b/keyboards/ploopyco/madromys/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_DRIVER = pmw3360 + +DEFAULT_FOLDER = ploopyco/madromys/rev1_001 diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h index 0645283880..0f8774dcd7 100644 --- a/keyboards/ploopyco/mouse/config.h +++ b/keyboards/ploopyco/mouse/config.h @@ -18,6 +18,11 @@ #pragma once +// These pins are not broken out, and cannot be used normally. +// They are set as output and pulled high, by default +#define UNUSABLE_PINS \ + { B4, D6, F1, F5, F6, F7 } + /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING @@ -25,7 +30,13 @@ // #define DEBUG_LED_PIN F7 +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 + #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/mouse/info.json b/keyboards/ploopyco/mouse/info.json deleted file mode 100644 index 1a70989f25..0000000000 --- a/keyboards/ploopyco/mouse/info.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "keyboard_name": "Mouse", - "manufacturer": "Ploopy", - "url": "www.ploopy.co", - "maintainer": "drashna", - "usb": { - "vid": "0x5043", - "pid": "0x4D6F", - "device_version": "0.0.1", - "max_power": 100 - }, - "bootmagic": { - "matrix": [0, 3] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false, - "pointing_device": true, - "encoder": true - }, - "encoder": { - "driver": "custom" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"x": 1, "y": 0, "h": 2, "matrix": [0, 6]}, - {"x": 2, "y": 0, "h": 2, "matrix": [0, 0]}, - {"x": 3, "y": 0.25, "h": 1.25, "matrix": [0, 1]}, - {"x": 4, "y": 0, "h": 2, "matrix": [0, 2]}, - {"x": 5, "y": 0, "h": 2, "matrix": [0, 5]}, - {"x": 0, "y": 0, "matrix": [0, 3]}, - {"x": 0, "y": 1, "matrix": [0, 4]}, - {"x": 3, "y": 1.5, "matrix": [0, 7]} - ] - } - } -} diff --git a/keyboards/ploopyco/mouse/keyboard.json b/keyboards/ploopyco/mouse/keyboard.json new file mode 100644 index 0000000000..4c81ee7338 --- /dev/null +++ b/keyboards/ploopyco/mouse/keyboard.json @@ -0,0 +1,59 @@ +{ + "keyboard_name": "Mouse", + "manufacturer": "PloopyCo", + "url": "www.ploopy.co", + "maintainer": "drashna", + "usb": { + "vid": "0x5043", + "pid": "0x4D6F", + "device_version": "0.0.1", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "pointing_device": true, + "encoder": true + }, + "bootmagic": { + "matrix": [0, 3] + }, + "ws2812": { + "pin": "B5" + }, + "rgblight": { + "led_count": 4, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "matrix_pins": { + "direct": [ + ["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"] + ] + }, + "encoder": { + "driver": "custom" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 1, "y": 0, "h": 2, "matrix": [0, 6]}, + {"x": 2, "y": 0, "h": 2, "matrix": [0, 0]}, + {"x": 3, "y": 0.25, "h": 1.25, "matrix": [0, 1]}, + {"x": 4, "y": 0, "h": 2, "matrix": [0, 2]}, + {"x": 5, "y": 0, "h": 2, "matrix": [0, 5]}, + {"x": 0, "y": 0, "matrix": [0, 3]}, + {"x": 0, "y": 1, "matrix": [0, 4]}, + {"x": 3, "y": 1.5, "matrix": [0, 7]} + ] + } + } +} diff --git a/keyboards/ploopyco/mouse/keymaps/default/keymap.c b/keyboards/ploopyco/mouse/keymaps/default/keymap.c index d2ed79a774..29d81b8061 100644 --- a/keyboards/ploopyco/mouse/keymaps/default/keymap.c +++ b/keyboards/ploopyco/mouse/keymaps/default/keymap.c @@ -19,5 +19,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(/* Base */ - C(KC_C), MS_BTN1, MS_BTN3, MS_BTN2, C(KC_V), MS_BTN4, MS_BTN5, DPI_CONFIG) + C(KC_C), KC_BTN1, KC_BTN3, KC_BTN2, C(KC_V), KC_BTN4, KC_BTN5, DPI_CONFIG) }; diff --git a/keyboards/ploopyco/mouse/post_rules.mk b/keyboards/ploopyco/mouse/post_rules.mk deleted file mode 100644 index 0d1a00b89e..0000000000 --- a/keyboards/ploopyco/mouse/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/mouse/readme.md b/keyboards/ploopyco/mouse/readme.md index c5c6bb7dce..060448c2bf 100644 --- a/keyboards/ploopyco/mouse/readme.md +++ b/keyboards/ploopyco/mouse/readme.md @@ -6,14 +6,14 @@ It's a DIY, QMK Powered Mouse!!!! * Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 +* Hardware Supported: ATMega32u4 8MHz(3.3v) * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): make ploopyco/mouse:default:flash - -To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side) + +To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side) 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). diff --git a/keyboards/ploopyco/mouse/rev1_002/config.h b/keyboards/ploopyco/mouse/rev1_002/config.h deleted file mode 100644 index 49b53bc8dd..0000000000 --- a/keyboards/ploopyco/mouse/rev1_002/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2019 Sunjun Kim - * Copyright 2020 Ploopy Corporation - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// These pins are not broken out, and cannot be used normally. -// They are set as output and pulled high, by default -#define UNUSABLE_PINS \ - { B4, D6, F1, F5, F6, F7 } - -// If board has a debug LED, you can enable it by defining this -// #define DEBUG_LED_PIN F7 - -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 - -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/mouse/rev1_002/keyboard.json b/keyboards/ploopyco/mouse/rev1_002/keyboard.json deleted file mode 100644 index bfed3232f0..0000000000 --- a/keyboards/ploopyco/mouse/rev1_002/keyboard.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "matrix_pins": { - "direct": [ - ["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"] - ] - }, - "ws2812": { - "pin": "B5" - }, - "rgblight": { - "led_count": 3, - "max_brightness": 40, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true - } - } -} diff --git a/keyboards/ploopyco/mouse/rev1_002/readme.md b/keyboards/ploopyco/mouse/rev1_002/readme.md deleted file mode 100644 index a9400ea100..0000000000 --- a/keyboards/ploopyco/mouse/rev1_002/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -See the [main readme](../readme.md) for more details. - -This is for the R1.002 version of the Mouse. It's easily distinguishable from the R1.003+ versions of the Mouse because it has an ATmega32u4 on the board. diff --git a/keyboards/ploopyco/mouse/rev1_002/rules.mk b/keyboards/ploopyco/mouse/rev1_002/rules.mk deleted file mode 100644 index 3437a35bdf..0000000000 --- a/keyboards/ploopyco/mouse/rev1_002/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Processor frequency -F_CPU = 8000000 diff --git a/keyboards/ploopyco/mouse/rev1_003/config.h b/keyboards/ploopyco/mouse/rev1_003/config.h deleted file mode 100644 index b4291e307b..0000000000 --- a/keyboards/ploopyco/mouse/rev1_003/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2024 Colin Lam (Ploopy Corporation) - * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2019 Sunjun Kim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define UNUSABLE_PINS \ - { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP16, GP18, GP20, GP25, GP27, GP29 } - -/* PMW3360 Settings */ -#define PMW33XX_LIFTOFF_DISTANCE 0x00 -#define PMW33XX_CS_PIN GP5 -#define SPI_SCK_PIN GP2 -#define SPI_MISO_PIN GP0 -#define SPI_MOSI_PIN GP7 - -#define ENCODER_A_PINS { GP26 } -#define ENCODER_B_PINS { GP28 } diff --git a/keyboards/ploopyco/mouse/rev1_003/keyboard.json b/keyboards/ploopyco/mouse/rev1_003/keyboard.json deleted file mode 100644 index 46eca8012f..0000000000 --- a/keyboards/ploopyco/mouse/rev1_003/keyboard.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "device_version": "1.0.0" - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "direct": [ - ["GP15", "GP21", "GP23", "GP17", "GP19", "GP22", "GP14", "GP24"] - ] - }, - "rgblight": { - "led_count": 1, - "max_brightness": 40, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true - } - }, - "ws2812": { - "pin": "GP12" - } -} diff --git a/keyboards/ploopyco/mouse/rev1_003/readme.md b/keyboards/ploopyco/mouse/rev1_003/readme.md deleted file mode 100644 index 3e402f4280..0000000000 --- a/keyboards/ploopyco/mouse/rev1_003/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -See the [main readme](../readme.md) for more details. - -This is for the R1.003+ version of the Mouse. It's easily distinguishable from the previous versions of the Mouse because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/mouse/rules.mk b/keyboards/ploopyco/mouse/rules.mk new file mode 100644 index 0000000000..3d1d3fc961 --- /dev/null +++ b/keyboards/ploopyco/mouse/rules.mk @@ -0,0 +1,4 @@ +# Processor frequency +F_CPU = 8000000 + +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/ploopyco.c b/keyboards/ploopyco/ploopyco.c index 642696be0f..a6f76203d6 100644 --- a/keyboards/ploopyco/ploopyco.c +++ b/keyboards/ploopyco/ploopyco.c @@ -80,7 +80,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return false; } # ifdef MOUSEKEY_ENABLE - tap_code(clockwise ? MS_WHLU : MS_WHLD); + tap_code(clockwise ? KC_WH_U : KC_WH_D); # else report_mouse_t mouse_report = pointing_device_get_report(); mouse_report.v = clockwise ? 1 : -1; @@ -128,18 +128,7 @@ void encoder_driver_task(void) { } #endif -void toggle_drag_scroll(void) { - is_drag_scroll ^= 1; -} - -void cycle_dpi(void) { - keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; - eeconfig_update_kb(keyboard_config.raw); - pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); -} - report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { - mouse_report = pointing_device_task_user(mouse_report); if (is_drag_scroll) { scroll_accumulated_h += (float)mouse_report.x / PLOOPY_DRAGSCROLL_DIVISOR_H; scroll_accumulated_v += (float)mouse_report.y / PLOOPY_DRAGSCROLL_DIVISOR_V; @@ -164,7 +153,7 @@ report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { mouse_report.y = 0; } - return mouse_report; + return pointing_device_task_user(mouse_report); } bool process_record_kb(uint16_t keycode, keyrecord_t* record) { @@ -185,7 +174,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { } if (keycode == DPI_CONFIG && record->event.pressed) { - cycle_dpi(); + keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; + eeconfig_update_kb(keyboard_config.raw); + pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); } if (keycode == DRAG_SCROLL) { @@ -193,7 +184,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { is_drag_scroll = record->event.pressed; #else if (record->event.pressed) { - toggle_drag_scroll(); + is_drag_scroll ^= 1; } #endif } diff --git a/keyboards/ploopyco/ploopyco.h b/keyboards/ploopyco/ploopyco.h index eadd04d3ae..61a8d58a93 100644 --- a/keyboards/ploopyco/ploopyco.h +++ b/keyboards/ploopyco/ploopyco.h @@ -37,5 +37,3 @@ enum ploopy_keycodes { bool encoder_update_user(uint8_t index, bool clockwise); bool encoder_update_kb(uint8_t index, bool clockwise); -void toggle_drag_scroll(void); -void cycle_dpi(void); diff --git a/keyboards/ploopyco/readme.md b/keyboards/ploopyco/readme.md index a9777ca7ce..b6eecf080e 100644 --- a/keyboards/ploopyco/readme.md +++ b/keyboards/ploopyco/readme.md @@ -10,11 +10,11 @@ # Customizing your PloopyCo Device There are a number of behavioral settings that you can use to help customize your experience -|Define |Default Value|Description | -|-------------------------------|-------------|---------------------------------------------------------| -|`PLOOPY_IGNORE_SCROLL_CLICK` |*Not defined*|Ignores scroll wheel if it is pressed down. | -|`PLOOPY_SCROLL_DEBOUNCE` |`5` |Number of milliseconds between scroll events. | -|`PLOOPY_SCROLL_BUTTON_DEBOUNCE`|`100` |Time to ignore scroll events after pressing scroll wheel.| +| | | | +|---------------------------------|-------------------|-----------------------------------------------------------| +| `PLOOPY_IGNORE_SCROLL_CLICK` | *__not_defined__* | Ignores scroll wheel if it is pressed down. | +| `PLOOPY_SCROLL_DEBOUNCE` | `5` | Number of milliseconds between scroll events. | +| `PLOOPY_SCROLL_BUTTON_DEBOUNCE` | `100` | Time to ignore scroll events after pressing scroll wheel. | ## DPI diff --git a/keyboards/ploopyco/trackball/config.h b/keyboards/ploopyco/trackball/config.h index 1a9b4ad225..2aac27437a 100644 --- a/keyboards/ploopyco/trackball/config.h +++ b/keyboards/ploopyco/trackball/config.h @@ -23,11 +23,20 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -/* PMW3360 settings */ #define ROTATIONAL_TRANSFORM_ANGLE 20 + +// If board has a debug LED, you can enable it by defining this +// #define DEBUG_LED_PIN F7 + +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 #define POINTING_DEVICE_INVERT_Y + #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/info.json b/keyboards/ploopyco/trackball/info.json index 9e3312d4bc..8014db1d63 100644 --- a/keyboards/ploopyco/trackball/info.json +++ b/keyboards/ploopyco/trackball/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "Classic Trackball", - "manufacturer": "Ploopy", + "keyboard_name": "Trackball", + "manufacturer": "PloopyCo", "url": "www.ploopy.co", "maintainer": "drashna", "usb": { @@ -12,6 +12,7 @@ "bootmagic": { "matrix": [0, 3] }, + "features": { "bootmagic": true, "extrakey": true, diff --git a/keyboards/ploopyco/trackball/keymaps/default/keymap.c b/keyboards/ploopyco/trackball/keymaps/default/keymap.c index e330a2efff..83a4a16847 100644 --- a/keyboards/ploopyco/trackball/keymaps/default/keymap.c +++ b/keyboards/ploopyco/trackball/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - MS_BTN1, MS_BTN3, MS_BTN2, - MS_BTN4, MS_BTN5 + KC_BTN1, KC_BTN3, KC_BTN2, + KC_BTN4, KC_BTN5 ), }; diff --git a/keyboards/ploopyco/trackball/post_rules.mk b/keyboards/ploopyco/trackball/post_rules.mk deleted file mode 100644 index 0d1a00b89e..0000000000 --- a/keyboards/ploopyco/trackball/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/trackball/readme.md b/keyboards/ploopyco/trackball/readme.md index cca2c15114..c668c5dd03 100644 --- a/keyboards/ploopyco/trackball/readme.md +++ b/keyboards/ploopyco/trackball/readme.md @@ -1,34 +1,27 @@ -# Ploopy Classic Trackball +# Ploopyco Trackball -![Ploopy Trackball](https://i.redd.it/j7z0y83txps31.jpg) +![Ploopyco Trackball](https://i.redd.it/j7z0y83txps31.jpg) It's a DIY, QMK Powered Trackball!!!! -* Keyboard Maintainer: [Ploopy](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 +* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: ATMega32u4 8MHz(3.3v) * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): - make ploopyco/trackball/rev1_004:default:flash + make ploopyco/trackball/rev1:default:flash make ploopyco/trackball/rev1_005:default:flash - make ploopyco/trackball/rev1_007:default:flash - -To jump to the bootloader, hold down "Button 4" (immediate right of the trackball) + +To jump to the bootloader, hold down "Button 4" (immediate right of the trackball) 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). ## Revisions -There are three main revisions for the Ploopy Classic Trackball: +There are two main revisions for the PloopyCo Trackball, everything up to 1.004, and 1.005-1.006. -- Everything up to 1.004 (very rare) -- Revision 1.005 and 1.006 (commonly sold between 2020 and 2024) -- Revision 1.007 (first available in 2025) - -In the 1.005 revision, button four was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5. - -In the 1.007 revision, the board was switched from an ATMega32u4 architecture to the Raspberry RP2040 architecture. +In the 1.005 revision, button for was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5. The PCB should indicate which revision this is. diff --git a/keyboards/ploopyco/trackball/rev1/config.h b/keyboards/ploopyco/trackball/rev1/config.h new file mode 100644 index 0000000000..35ab215341 --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1/config.h @@ -0,0 +1,27 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2020 Ploopy Corporation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// These pins are not broken out, and cannot be used normally. +// They are set as output and pulled high, by default +#define UNUSABLE_PINS \ + { D1, D3, B4, B6, B7, D6, C7, F6, F5, F3, F7 } + +// If board has a debug LED, you can enable it by defining this +#define DEBUG_LED_PIN F7 diff --git a/keyboards/ploopyco/trackball/rev1_004/keyboard.json b/keyboards/ploopyco/trackball/rev1/keyboard.json similarity index 100% rename from keyboards/ploopyco/trackball/rev1_004/keyboard.json rename to keyboards/ploopyco/trackball/rev1/keyboard.json diff --git a/keyboards/ploopyco/trackball/rev1_004/readme.md b/keyboards/ploopyco/trackball/rev1/readme.md similarity index 100% rename from keyboards/ploopyco/trackball/rev1_004/readme.md rename to keyboards/ploopyco/trackball/rev1/readme.md diff --git a/keyboards/ploopyco/trackball/rev1_004/config.h b/keyboards/ploopyco/trackball/rev1_004/config.h deleted file mode 100644 index 25bcf86391..0000000000 --- a/keyboards/ploopyco/trackball/rev1_004/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2019 Sunjun Kim - * Copyright 2020 Ploopy Corporation - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// These pins are not broken out, and cannot be used normally. -// They are set as output and pulled high, by default -#define UNUSABLE_PINS \ - { D1, D3, B4, B6, B7, D6, C7, F6, F5, F3, F7 } - -// If board has a debug LED, you can enable it by defining this -#define DEBUG_LED_PIN F7 - -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 - -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/rev1_004/rules.mk b/keyboards/ploopyco/trackball/rev1_004/rules.mk deleted file mode 100644 index 3437a35bdf..0000000000 --- a/keyboards/ploopyco/trackball/rev1_004/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Processor frequency -F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball/rev1_005/config.h b/keyboards/ploopyco/trackball/rev1_005/config.h index 404caca093..014d67f9c1 100644 --- a/keyboards/ploopyco/trackball/rev1_005/config.h +++ b/keyboards/ploopyco/trackball/rev1_005/config.h @@ -22,12 +22,3 @@ // They are set as output and pulled high, by default #define UNUSABLE_PINS \ { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } - -// If board has a debug LED, you can enable it by defining this -// #define DEBUG_LED_PIN F7 - -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 - -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/rev1_005/readme.md b/keyboards/ploopyco/trackball/rev1_005/readme.md index 980f118a10..a923d16591 100644 --- a/keyboards/ploopyco/trackball/rev1_005/readme.md +++ b/keyboards/ploopyco/trackball/rev1_005/readme.md @@ -1,3 +1,3 @@ -See the [main readme](../readme.md) for more details. +See the [main readme](../readme.md) for more details. -This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. \ No newline at end of file +This is just the rev 1.005+ trackball diff --git a/keyboards/ploopyco/trackball/rev1_005/rules.mk b/keyboards/ploopyco/trackball/rev1_005/rules.mk deleted file mode 100644 index 3437a35bdf..0000000000 --- a/keyboards/ploopyco/trackball/rev1_005/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Processor frequency -F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball/rev1_007/config.h b/keyboards/ploopyco/trackball/rev1_007/config.h deleted file mode 100644 index 97f2e46b5c..0000000000 --- a/keyboards/ploopyco/trackball/rev1_007/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2024 Colin Lam (Ploopy Corporation) - * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2019 Sunjun Kim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define UNUSABLE_PINS \ - { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP27, GP29 } - -/* PMW3360 Settings */ -#define PMW33XX_LIFTOFF_DISTANCE 0x00 -#define PMW33XX_CS_PIN GP5 -#define SPI_SCK_PIN GP2 -#define SPI_MISO_PIN GP0 -#define SPI_MOSI_PIN GP7 - -#define ENCODER_A_PINS { GP26 } -#define ENCODER_B_PINS { GP28 } diff --git a/keyboards/ploopyco/trackball/rev1_007/keyboard.json b/keyboards/ploopyco/trackball/rev1_007/keyboard.json deleted file mode 100644 index 4098c86fda..0000000000 --- a/keyboards/ploopyco/trackball/rev1_007/keyboard.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "device_version": "1.0.0" - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "direct": [ - ["GP15", "GP21", "GP23", "GP17", "GP19"] - ] - }, - "rgblight": { - "led_count": 1, - "max_brightness": 40, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true - } - }, - "ws2812": { - "pin": "GP12" - } -} diff --git a/keyboards/ploopyco/trackball/rev1_007/readme.md b/keyboards/ploopyco/trackball/rev1_007/readme.md deleted file mode 100644 index 6b8da3a959..0000000000 --- a/keyboards/ploopyco/trackball/rev1_007/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -See the [main readme](../readme.md) for more details. - -This is for the R1.007+ version of the Classic. It's easily distinguishable from the previous versions of the Classic because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/trackball/rules.mk b/keyboards/ploopyco/trackball/rules.mk new file mode 100644 index 0000000000..9ea10ba6e8 --- /dev/null +++ b/keyboards/ploopyco/trackball/rules.mk @@ -0,0 +1,6 @@ +# Processor frequency +F_CPU = 8000000 + +POINTING_DEVICE_DRIVER = pmw3360 + +DEFAULT_FOLDER = ploopyco/trackball/rev1_005 diff --git a/keyboards/ploopyco/trackball_mini/keymaps/default/keymap.c b/keyboards/ploopyco/trackball_mini/keymaps/default/keymap.c index ac51e8b89a..3659076bec 100644 --- a/keyboards/ploopyco/trackball_mini/keymaps/default/keymap.c +++ b/keyboards/ploopyco/trackball_mini/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - MS_BTN1, MS_BTN3, MS_BTN2, - MS_BTN4, MS_BTN5 + KC_BTN1, KC_BTN3, KC_BTN2, + KC_BTN4, KC_BTN5 ), }; diff --git a/keyboards/ploopyco/trackball_mini/post_rules.mk b/keyboards/ploopyco/trackball_mini/post_rules.mk deleted file mode 100644 index 99fca15fc1..0000000000 --- a/keyboards/ploopyco/trackball_mini/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = adns5050 diff --git a/keyboards/ploopyco/trackball_mini/rules.mk b/keyboards/ploopyco/trackball_mini/rules.mk new file mode 100644 index 0000000000..2705ac6855 --- /dev/null +++ b/keyboards/ploopyco/trackball_mini/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_DRIVER = adns5050 + +DEFAULT_FOLDER = ploopyco/trackball_mini/rev1_001 diff --git a/keyboards/ploopyco/trackball_nano/keymaps/default/keymap.c b/keyboards/ploopyco/trackball_nano/keymaps/default/keymap.c index f13fbc5d94..871f8006ea 100644 --- a/keyboards/ploopyco/trackball_nano/keymaps/default/keymap.c +++ b/keyboards/ploopyco/trackball_nano/keymaps/default/keymap.c @@ -20,12 +20,3 @@ // Dummy const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {{{ KC_NO }}}; - -void suspend_power_down_user(void) { - // Switch off sensor + LED making trackball unable to wake host - adns5050_power_down(); -} - -void suspend_wakeup_init_user(void) { - adns5050_init(); -} diff --git a/keyboards/ploopyco/trackball_nano/post_rules.mk b/keyboards/ploopyco/trackball_nano/post_rules.mk deleted file mode 100644 index 99fca15fc1..0000000000 --- a/keyboards/ploopyco/trackball_nano/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = adns5050 diff --git a/keyboards/ploopyco/trackball_nano/rules.mk b/keyboards/ploopyco/trackball_nano/rules.mk new file mode 100644 index 0000000000..df29dfbc07 --- /dev/null +++ b/keyboards/ploopyco/trackball_nano/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_DRIVER = adns5050 + +DEFAULT_FOLDER = ploopyco/trackball_nano/rev1_001 diff --git a/keyboards/ploopyco/trackball_thumb/config.h b/keyboards/ploopyco/trackball_thumb/config.h index 0f269bd21a..f03ffc7699 100644 --- a/keyboards/ploopyco/trackball_thumb/config.h +++ b/keyboards/ploopyco/trackball_thumb/config.h @@ -29,6 +29,9 @@ // If board has a debug LED, you can enable it by defining this // #define DEBUG_LED_PIN F7 +/* PMW3360 Settings */ +#define POINTING_DEVICE_CS_PIN B0 + #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 @@ -38,3 +41,6 @@ #define ENCODER_HIGH_THRES_B 90 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 + +#define ENCODER_A_PINS { F4 } +#define ENCODER_B_PINS { F0 } diff --git a/keyboards/ploopyco/trackball_thumb/info.json b/keyboards/ploopyco/trackball_thumb/info.json index 7e93296d24..e27bf47252 100644 --- a/keyboards/ploopyco/trackball_thumb/info.json +++ b/keyboards/ploopyco/trackball_thumb/info.json @@ -1,22 +1,22 @@ { - "keyboard_name": "Thumb Trackball", - "manufacturer": "Ploopy", + "keyboard_name": "PloopyCo Thumb Trackball", "url": "www.ploopy.co", "maintainer": "ploopyco", + "manufacturer": "Ploopy Corporation", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", "usb": { "vid": "0x5043", "pid": "0x5C46", - "device_version": "0.0.1", "max_power": 100 }, - "bootmagic": { - "matrix": [0, 3] - }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, - "nkro": false, + "nkro": true, "pointing_device": true, "encoder": true }, diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c index eb50542ce4..8729deabc1 100644 --- a/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c +++ b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - MS_BTN4, MS_BTN1, MS_BTN3, MS_BTN2, MS_BTN5, + KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, DPI_CONFIG ), }; diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk deleted file mode 100644 index 0d1a00b89e..0000000000 --- a/keyboards/ploopyco/trackball_thumb/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/trackball_thumb/readme.md b/keyboards/ploopyco/trackball_thumb/readme.md index bb870d2003..8299c08809 100644 --- a/keyboards/ploopyco/trackball_thumb/readme.md +++ b/keyboards/ploopyco/trackball_thumb/readme.md @@ -3,13 +3,13 @@ It's a DIY, QMK Powered Trackball...for thumb ballers! * Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 +* Hardware Supported: ATMega32u4 8MHz(3.3v) * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): make ploopyco/trackball_thumb/rev1_001:default:flash - + To jump to the bootloader, hold down "Button 4" (button closest to the USB port). 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). diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h index fb2f9431cc..a648e8e8e4 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -22,9 +22,3 @@ // They are set as output and pulled high, by default #define UNUSABLE_PINS \ { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } - -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 - -#define ENCODER_A_PINS { F4 } -#define ENCODER_B_PINS { F0 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json b/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json index 04457f19b9..db12ee6217 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json @@ -1,14 +1,13 @@ { - "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", "matrix_pins": { "direct": [ ["D5", "B6", "D4", "D2", "E6", "D7"] ] }, - "ws2812": { - "pin": "B5" - }, "rgblight": { "led_count": 3, "max_brightness": 40, @@ -17,5 +16,8 @@ "rainbow_mood": true, "rainbow_swirl": true } + }, + "ws2812": { + "pin": "B5" } } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md index 658a71df0a..5a5f0563e7 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -1,3 +1,3 @@ -See the [main readme](../readme.md) for more details. +This is the R1.001+ version of the Thumb. Future versions may have other features. -This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. \ No newline at end of file +See the [main readme](../readme.md) for more details. diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk b/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk deleted file mode 100644 index 3437a35bdf..0000000000 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Processor frequency -F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/config.h b/keyboards/ploopyco/trackball_thumb/rev1_002/config.h deleted file mode 100644 index e25f50604e..0000000000 --- a/keyboards/ploopyco/trackball_thumb/rev1_002/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2024 Colin Lam (Ploopy Corporation) - * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2019 Sunjun Kim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define UNUSABLE_PINS \ - { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP18, GP20, GP22, GP24, GP25, GP27, GP29 } - -/* PMW3360 Settings */ -#define PMW33XX_LIFTOFF_DISTANCE 0x00 -#define PMW33XX_CS_PIN GP5 -#define SPI_SCK_PIN GP2 -#define SPI_MISO_PIN GP0 -#define SPI_MOSI_PIN GP7 - -#define ENCODER_A_PINS { GP28 } -#define ENCODER_B_PINS { GP26 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json b/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json deleted file mode 100644 index a3a50a536e..0000000000 --- a/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "device_version": "1.0.0" - }, - "diode_direction": "COL2ROW", - "matrix_pins": { - "direct": [ - ["GP17", "GP16", "GP15", "GP21", "GP23", "GP19"] - ] - }, - "rgblight": { - "led_count": 1, - "max_brightness": 40, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true - } - }, - "ws2812": { - "pin": "GP12" - } -} diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md deleted file mode 100644 index c1e95d9a8e..0000000000 --- a/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -See the [main readme](../readme.md) for more details. - -This is for the R1.002+ version of the Thumb. It's easily distinguishable from the previous versions of the Thumb because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk new file mode 100644 index 0000000000..0bd44d316a --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rules.mk @@ -0,0 +1,6 @@ +# Processor frequency +F_CPU = 8000000 + +POINTING_DEVICE_DRIVER = pmw3360 + +DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001 diff --git a/keyboards/pluckey/keyboard.json b/keyboards/pluckey/keyboard.json index 36705f795d..57f6b2467f 100644 --- a/keyboards/pluckey/keyboard.json +++ b/keyboards/pluckey/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/pluckey/keymaps/default/keymap.c b/keyboards/pluckey/keymaps/default/keymap.c index 604215b3c6..787bb192b2 100644 --- a/keyboards/pluckey/keymaps/default/keymap.c +++ b/keyboards/pluckey/keymaps/default/keymap.c @@ -51,15 +51,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_RAISE] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, - _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, MS_BTN4, KC_UP, MS_BTN5, _______, _______, + _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______ ), [_ADJUST] = LAYOUT_all( KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CLR, _______, _______, _______, _______, _______ ) diff --git a/keyboards/pluckey/keymaps/default_ergo/keymap.c b/keyboards/pluckey/keymaps/default_ergo/keymap.c index 5fe90e9fbb..313b118b8a 100644 --- a/keyboards/pluckey/keymaps/default_ergo/keymap.c +++ b/keyboards/pluckey/keymaps/default_ergo/keymap.c @@ -51,15 +51,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_RAISE] = LAYOUT_ergo( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, - _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, MS_BTN4, KC_UP, MS_BTN5, _______, _______, + _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______ ), [_ADJUST] = LAYOUT_ergo( KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CLR, _______, _______, _______, _______, _______ ) diff --git a/keyboards/pluckey/pluckey.c b/keyboards/pluckey/pluckey.c index db801c8b81..d9215b9339 100644 --- a/keyboards/pluckey/pluckey.c +++ b/keyboards/pluckey/pluckey.c @@ -28,9 +28,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } else if (index == 1) { if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/plum47/keyboard.json b/keyboards/plum47/keyboard.json index 00efab2c28..81b87e92db 100644 --- a/keyboards/plum47/keyboard.json +++ b/keyboards/plum47/keyboard.json @@ -2,10 +2,12 @@ "manufacturer": "Masayuki Takagi", "keyboard_name": "plum47", "maintainer": "awh-tokyo", - "development_board": "promicro", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -14,6 +16,7 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], "rows": ["D1", "D0", "D4", "C6"] }, + "processor": "atmega32u4", "url": "ihttps://github.com/takagi/plum47_buildguide", "usb": { "device_version": "1.0.0", diff --git a/keyboards/plume/plume65/keyboard.json b/keyboards/plume/plume65/keyboard.json index 21deb5a76f..46f264e43e 100644 --- a/keyboards/plume/plume65/keyboard.json +++ b/keyboards/plume/plume65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Plume65", "manufacturer": "Plume Keyboards LLC", + "url": "", "maintainer": "evyd13", "usb": { "vid": "0x5D66", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/plut0nium/0x3e/keyboard.json b/keyboards/plut0nium/0x3e/keyboard.json index 9c8fa386fb..eb0a4fbe55 100644 --- a/keyboards/plut0nium/0x3e/keyboard.json +++ b/keyboards/plut0nium/0x3e/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "0x3E", "manufacturer": "plut0nium", + "url": "", "maintainer": "plut0nium", "usb": { "vid": "0xFEED", @@ -13,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/plx/keyboard.json b/keyboards/plx/keyboard.json index b22ee87b2a..dd47ce7037 100644 --- a/keyboards/plx/keyboard.json +++ b/keyboards/plx/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/plywrks/ahgase/keyboard.json b/keyboards/plywrks/ahgase/keyboard.json index 7d50de8d77..9c1da6d579 100644 --- a/keyboards/plywrks/ahgase/keyboard.json +++ b/keyboards/plywrks/ahgase/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ahgase", "manufacturer": "plywrks", + "url": "", "maintainer": "Ramon Imbao (ramonimbao)", "usb": { "vid": "0x706C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/plywrks/allaro/keyboard.json b/keyboards/plywrks/allaro/keyboard.json index f3f5ae892b..fecc15f73b 100644 --- a/keyboards/plywrks/allaro/keyboard.json +++ b/keyboards/plywrks/allaro/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -15,6 +17,7 @@ "cols": ["F0", "F7", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1"], "rows": ["F1", "B7", "B0", "D0", "F5"] }, + "url": "", "usb": { "vid": "0x706C", "pid": "0x7903", @@ -23,6 +26,8 @@ "rgblight": { "led_count": 16, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/plywrks/ji_eun/keyboard.json b/keyboards/plywrks/ji_eun/keyboard.json index 8bfd610f9b..b470e29ebd 100644 --- a/keyboards/plywrks/ji_eun/keyboard.json +++ b/keyboards/plywrks/ji_eun/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["D7", "B4", "B0", "D4", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "vid": "0x706C", diff --git a/keyboards/plywrks/lune/keyboard.json b/keyboards/plywrks/lune/keyboard.json index af78e2cfa2..5ec1d97c6b 100644 --- a/keyboards/plywrks/lune/keyboard.json +++ b/keyboards/plywrks/lune/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lune", "manufacturer": "plywrks", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0x706C", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/plywrks/ply8x/hotswap/config.h b/keyboards/plywrks/ply8x/config.h similarity index 100% rename from keyboards/plywrks/ply8x/hotswap/config.h rename to keyboards/plywrks/ply8x/config.h diff --git a/keyboards/plywrks/ply8x/hotswap/halconf.h b/keyboards/plywrks/ply8x/halconf.h similarity index 100% rename from keyboards/plywrks/ply8x/hotswap/halconf.h rename to keyboards/plywrks/ply8x/halconf.h diff --git a/keyboards/plywrks/ply8x/hotswap/keyboard.json b/keyboards/plywrks/ply8x/hotswap/keyboard.json deleted file mode 100644 index c4d3e9424e..0000000000 --- a/keyboards/plywrks/ply8x/hotswap/keyboard.json +++ /dev/null @@ -1,559 +0,0 @@ -{ - "manufacturer": "plywrks", - "keyboard_name": "ply8x", - "maintainer": "ramonimbao", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "rows": ["B2", "B1", "B0", "A7", "A10", "A2"], - "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C14", "C13", "B9", "B6", "B7", "B5", "B4", "B3"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "vid": "0x706C", - "pid": "0x7915" - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "layout": [ - {"flags": 2, "x":224, "y":37}, - {"flags": 2, "x":224, "y":43}, - {"flags": 2, "x":218, "y":43}, - {"flags": 2, "x":218, "y":37}, - - {"flags": 2, "matrix": [0, 0], "x":0, "y": 0}, - {"flags": 2, "matrix": [0, 2], "x":26, "y": 0}, - {"flags": 2, "matrix": [0, 3], "x":38, "y": 0}, - {"flags": 2, "matrix": [0, 4], "x":51, "y": 0}, - {"flags": 2, "matrix": [0, 5], "x":64, "y": 0}, - {"flags": 2, "matrix": [0, 6], "x":83, "y": 0}, - {"flags": 2, "matrix": [0, 7], "x":96, "y": 0}, - {"flags": 2, "matrix": [0, 8], "x":109, "y": 0}, - {"flags": 2, "matrix": [0, 9], "x":122, "y": 0}, - {"flags": 2, "matrix": [0,10], "x":141, "y": 0}, - {"flags": 2, "matrix": [0,11], "x":154, "y": 0}, - {"flags": 2, "matrix": [0,12], "x":166, "y": 0}, - {"flags": 2, "matrix": [0,13], "x":179, "y": 0}, - {"flags": 2, "matrix": [0,14], "x":195, "y": 0}, - {"flags": 2, "matrix": [0,15], "x":208, "y": 0}, - {"flags": 2, "matrix": [0,16], "x":221, "y": 0}, - - {"flags": 2, "matrix": [1, 0], "x":0, "y": 15}, - {"flags": 2, "matrix": [1, 1], "x":13, "y": 15}, - {"flags": 2, "matrix": [1, 2], "x":26, "y": 15}, - {"flags": 2, "matrix": [1, 3], "x":38, "y": 15}, - {"flags": 2, "matrix": [1, 4], "x":51, "y": 15}, - {"flags": 2, "matrix": [1, 5], "x":64, "y": 15}, - {"flags": 2, "matrix": [1, 6], "x":77, "y": 15}, - {"flags": 2, "matrix": [1, 7], "x":90, "y": 15}, - {"flags": 2, "matrix": [1, 8], "x":102, "y": 15}, - {"flags": 2, "matrix": [1, 9], "x":115, "y": 15}, - {"flags": 2, "matrix": [1,10], "x":128, "y": 15}, - {"flags": 2, "matrix": [1,11], "x":141, "y": 15}, - {"flags": 2, "matrix": [1,12], "x":154, "y": 15}, - {"flags": 2, "matrix": [1,13], "x":166, "y": 15}, - {"flags": 2, "matrix": [3,13], "x":179, "y": 15}, - {"flags": 2, "matrix": [1,14], "x":195, "y": 15}, - {"flags": 2, "matrix": [1,15], "x":208, "y": 15}, - {"flags": 2, "matrix": [1,16], "x":221, "y": 15}, - - {"flags": 2, "matrix": [2, 0], "x":3, "y": 27}, - {"flags": 2, "matrix": [2, 1], "x":19, "y": 27}, - {"flags": 2, "matrix": [2, 2], "x":32, "y": 27}, - {"flags": 2, "matrix": [2, 3], "x":45, "y": 27}, - {"flags": 2, "matrix": [2, 4], "x":58, "y": 27}, - {"flags": 2, "matrix": [2, 5], "x":70, "y": 27}, - {"flags": 2, "matrix": [2, 6], "x":83, "y": 27}, - {"flags": 2, "matrix": [2, 7], "x":96, "y": 27}, - {"flags": 2, "matrix": [2, 8], "x":109, "y": 27}, - {"flags": 2, "matrix": [2, 9], "x":122, "y": 27}, - {"flags": 2, "matrix": [2,10], "x":134, "y": 27}, - {"flags": 2, "matrix": [2,11], "x":147, "y": 27}, - {"flags": 2, "matrix": [2,12], "x":160, "y": 27}, - {"flags": 2, "matrix": [2,13], "x":176, "y": 27}, - {"flags": 2, "matrix": [2,14], "x":195, "y": 27}, - {"flags": 2, "matrix": [2,15], "x":208, "y": 27}, - {"flags": 2, "matrix": [2,16], "x":221, "y": 27}, - - {"flags": 2, "matrix": [3, 0], "x":5, "y":40}, - {"flags": 2, "matrix": [3, 1], "x":23, "y": 40}, - {"flags": 2, "matrix": [3, 2], "x":36, "y": 40}, - {"flags": 2, "matrix": [3, 3], "x":49, "y": 40}, - {"flags": 2, "matrix": [3, 4], "x":62, "y": 40}, - {"flags": 2, "matrix": [3, 5], "x":75, "y": 40}, - {"flags": 2, "matrix": [3, 6], "x":88, "y": 40}, - {"flags": 2, "matrix": [3, 7], "x":101, "y": 40}, - {"flags": 2, "matrix": [3, 8], "x":114, "y": 40}, - {"flags": 2, "matrix": [3, 9], "x":127, "y": 40}, - {"flags": 2, "matrix": [3,10], "x":140, "y": 40}, - {"flags": 2, "matrix": [3,11], "x":153, "y": 40}, - {"flags": 2, "matrix": [3,12], "x":166, "y": 40}, - - {"flags": 2, "matrix": [4, 0], "x":8, "y": 52}, - {"flags": 2, "matrix": [4, 2], "x":29, "y": 52}, - {"flags": 2, "matrix": [4, 3], "x":42, "y": 52}, - {"flags": 2, "matrix": [4, 4], "x":54, "y": 52}, - {"flags": 2, "matrix": [4, 5], "x":67, "y": 52}, - {"flags": 2, "matrix": [4, 6], "x":80, "y": 52}, - {"flags": 2, "matrix": [4, 7], "x":93, "y": 52}, - {"flags": 2, "matrix": [4, 8], "x":106, "y": 52}, - {"flags": 2, "matrix": [4, 9], "x":118, "y": 52}, - {"flags": 2, "matrix": [4,10], "x":131, "y": 52}, - {"flags": 2, "matrix": [4,11], "x":144, "y": 52}, - {"flags": 2, "matrix": [4,12], "x":162, "y": 52}, - {"flags": 2, "matrix": [4,13], "x":179, "y": 52}, - {"flags": 2, "matrix": [4,15], "x":208, "y": 52}, - - {"flags": 2, "matrix": [5, 0], "x":2, "y": 64}, - {"flags": 2, "matrix": [5, 1], "x":18, "y": 64}, - {"flags": 2, "matrix": [5, 2], "x":34, "y": 64}, - {"flags": 2, "matrix": [5, 7], "x":82, "y": 64}, - {"flags": 2, "matrix": [5,11], "x":146, "y": 64}, - {"flags": 2, "matrix": [5,12], "x":162, "y": 64}, - {"flags": 2, "matrix": [5,13], "x":178, "y": 64}, - {"flags": 2, "matrix": [5,14], "x":195, "y": 64}, - {"flags": 2, "matrix": [5,15], "x":208, "y": 64}, - {"flags": 2, "matrix": [5,16], "x":221, "y": 64} - ] - }, - "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - } - } -} diff --git a/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c b/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 0da2588ea7..0000000000 --- a/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Ctrl│ │ ← │ ↓ │ → │ - * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ - */ - [0] = LAYOUT_tkl_ansi_tsangan( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/keyboards/plywrks/ply8x/keyboard.json b/keyboards/plywrks/ply8x/keyboard.json new file mode 100644 index 0000000000..7c0717ade0 --- /dev/null +++ b/keyboards/plywrks/ply8x/keyboard.json @@ -0,0 +1,978 @@ +{ + "manufacturer": "plywrks", + "keyboard_name": "ply8x", + "maintainer": "ramonimbao", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "rows": ["B2", "B1", "B0", "A7", "A10", "A2"], + "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C13", "C14", "B9", "B7", "B6", "B5", "B4", "B3"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x7905", + "vid": "0x706C" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 8, "matrix": [3, 0], "x":2, "y":27}, + {"flags": 8, "matrix": [0,15], "x":211, "y":0}, + {"flags": 2, "x":0, "y":0}, + {"flags": 2, "x":10, "y":0}, + {"flags": 2, "x":20, "y":0}, + {"flags": 2, "x":30, "y":0} + ] + }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_ansi", + "LAYOUT_iso": "LAYOUT_tkl_iso" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_split_bs_rshift", + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso", + "tkl_iso_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/plywrks/ply8x/solder/keymaps/default/keymap.c b/keyboards/plywrks/ply8x/keymaps/default/keymap.c similarity index 100% rename from keyboards/plywrks/ply8x/solder/keymaps/default/keymap.c rename to keyboards/plywrks/ply8x/keymaps/default/keymap.c diff --git a/keyboards/plywrks/ply8x/hotswap/mcuconf.h b/keyboards/plywrks/ply8x/mcuconf.h similarity index 100% rename from keyboards/plywrks/ply8x/hotswap/mcuconf.h rename to keyboards/plywrks/ply8x/mcuconf.h diff --git a/keyboards/plywrks/ply8x/solder/config.h b/keyboards/plywrks/ply8x/solder/config.h deleted file mode 100644 index 3fc4de978d..0000000000 --- a/keyboards/plywrks/ply8x/solder/config.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023 Ramon Imbao (@ramonimbao) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_EXTERNAL_PULLUP diff --git a/keyboards/plywrks/ply8x/solder/halconf.h b/keyboards/plywrks/ply8x/solder/halconf.h deleted file mode 100644 index e215e323c5..0000000000 --- a/keyboards/plywrks/ply8x/solder/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 Ramon Imbao (@ramonimbao) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/plywrks/ply8x/solder/keyboard.json b/keyboards/plywrks/ply8x/solder/keyboard.json deleted file mode 100644 index 18cf17808a..0000000000 --- a/keyboards/plywrks/ply8x/solder/keyboard.json +++ /dev/null @@ -1,1451 +0,0 @@ -{ - "manufacturer": "plywrks", - "keyboard_name": "ply8x", - "maintainer": "ramonimbao", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "rows": ["B2", "B1", "B0", "A7", "A10", "A2"], - "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C13", "C14", "B9", "B7", "B6", "B5", "B4", "B3"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "vid": "0x706C", - "pid": "0x7905" - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "layout": [ - {"flags": 8, "matrix": [3, 0], "x":5, "y":40}, - {"flags": 8, "matrix": [0,15], "x":208, "y":0}, - {"flags": 2, "x":224, "y":37}, - {"flags": 2, "x":224, "y":43}, - {"flags": 2, "x":218, "y":43}, - {"flags": 2, "x":218, "y":37}, - - {"flags": 2, "matrix": [0, 0], "x":0, "y": 0}, - {"flags": 2, "matrix": [0, 2], "x":26, "y": 0}, - {"flags": 2, "matrix": [0, 3], "x":38, "y": 0}, - {"flags": 2, "matrix": [0, 4], "x":51, "y": 0}, - {"flags": 2, "matrix": [0, 5], "x":64, "y": 0}, - {"flags": 2, "matrix": [0, 6], "x":83, "y": 0}, - {"flags": 2, "matrix": [0, 7], "x":96, "y": 0}, - {"flags": 2, "matrix": [0, 8], "x":109, "y": 0}, - {"flags": 2, "matrix": [0, 9], "x":122, "y": 0}, - {"flags": 2, "matrix": [0,10], "x":141, "y": 0}, - {"flags": 2, "matrix": [0,11], "x":154, "y": 0}, - {"flags": 2, "matrix": [0,12], "x":166, "y": 0}, - {"flags": 2, "matrix": [0,13], "x":179, "y": 0}, - {"flags": 2, "matrix": [0,14], "x":195, "y": 0}, - {"flags": 2, "matrix": [0,16], "x":221, "y": 0}, - - {"flags": 2, "matrix": [1, 0], "x":0, "y": 15}, - {"flags": 2, "matrix": [1, 1], "x":13, "y": 15}, - {"flags": 2, "matrix": [1, 2], "x":26, "y": 15}, - {"flags": 2, "matrix": [1, 3], "x":38, "y": 15}, - {"flags": 2, "matrix": [1, 4], "x":51, "y": 15}, - {"flags": 2, "matrix": [1, 5], "x":64, "y": 15}, - {"flags": 2, "matrix": [1, 6], "x":77, "y": 15}, - {"flags": 2, "matrix": [1, 7], "x":90, "y": 15}, - {"flags": 2, "matrix": [1, 8], "x":102, "y": 15}, - {"flags": 2, "matrix": [1, 9], "x":115, "y": 15}, - {"flags": 2, "matrix": [1,10], "x":128, "y": 15}, - {"flags": 2, "matrix": [1,11], "x":141, "y": 15}, - {"flags": 2, "matrix": [1,12], "x":154, "y": 15}, - {"flags": 2, "matrix": [1,13], "x":166, "y": 15}, - {"flags": 2, "matrix": [3,13], "x":179, "y": 15}, - {"flags": 2, "matrix": [1,14], "x":195, "y": 15}, - {"flags": 2, "matrix": [1,15], "x":208, "y": 15}, - {"flags": 2, "matrix": [1,16], "x":221, "y": 15}, - - {"flags": 2, "matrix": [2, 0], "x":3, "y": 27}, - {"flags": 2, "matrix": [2, 1], "x":19, "y": 27}, - {"flags": 2, "matrix": [2, 2], "x":32, "y": 27}, - {"flags": 2, "matrix": [2, 3], "x":45, "y": 27}, - {"flags": 2, "matrix": [2, 4], "x":58, "y": 27}, - {"flags": 2, "matrix": [2, 5], "x":70, "y": 27}, - {"flags": 2, "matrix": [2, 6], "x":83, "y": 27}, - {"flags": 2, "matrix": [2, 7], "x":96, "y": 27}, - {"flags": 2, "matrix": [2, 8], "x":109, "y": 27}, - {"flags": 2, "matrix": [2, 9], "x":122, "y": 27}, - {"flags": 2, "matrix": [2,10], "x":134, "y": 27}, - {"flags": 2, "matrix": [2,11], "x":147, "y": 27}, - {"flags": 2, "matrix": [2,12], "x":160, "y": 27}, - {"flags": 2, "matrix": [2,13], "x":176, "y": 27}, - {"flags": 2, "matrix": [2,14], "x":195, "y": 27}, - {"flags": 2, "matrix": [2,15], "x":208, "y": 27}, - {"flags": 2, "matrix": [2,16], "x":221, "y": 27}, - - {"flags": 2, "matrix": [3, 1], "x":23, "y": 40}, - {"flags": 2, "matrix": [3, 2], "x":36, "y": 40}, - {"flags": 2, "matrix": [3, 3], "x":49, "y": 40}, - {"flags": 2, "matrix": [3, 4], "x":62, "y": 40}, - {"flags": 2, "matrix": [3, 5], "x":75, "y": 40}, - {"flags": 2, "matrix": [3, 6], "x":88, "y": 40}, - {"flags": 2, "matrix": [3, 7], "x":101, "y": 40}, - {"flags": 2, "matrix": [3, 8], "x":114, "y": 40}, - {"flags": 2, "matrix": [3, 9], "x":127, "y": 40}, - {"flags": 2, "matrix": [3,10], "x":140, "y": 40}, - {"flags": 2, "matrix": [3,11], "x":153, "y": 40}, - {"flags": 2, "matrix": [3,12], "x":166, "y": 40}, - - {"flags": 2, "matrix": [4, 0], "x":2, "y": 52}, - {"flags": 2, "matrix": [4, 1], "x":16, "y": 52}, - {"flags": 2, "matrix": [4, 2], "x":29, "y": 52}, - {"flags": 2, "matrix": [4, 3], "x":42, "y": 52}, - {"flags": 2, "matrix": [4, 4], "x":54, "y": 52}, - {"flags": 2, "matrix": [4, 5], "x":67, "y": 52}, - {"flags": 2, "matrix": [4, 6], "x":80, "y": 52}, - {"flags": 2, "matrix": [4, 7], "x":93, "y": 52}, - {"flags": 2, "matrix": [4, 8], "x":106, "y": 52}, - {"flags": 2, "matrix": [4, 9], "x":118, "y": 52}, - {"flags": 2, "matrix": [4,10], "x":131, "y": 52}, - {"flags": 2, "matrix": [4,11], "x":144, "y": 52}, - {"flags": 2, "matrix": [4,12], "x":162, "y": 52}, - {"flags": 2, "matrix": [4,13], "x":179, "y": 52}, - {"flags": 2, "matrix": [4,15], "x":208, "y": 52}, - - {"flags": 2, "matrix": [5, 0], "x":2, "y": 64}, - {"flags": 2, "matrix": [5, 1], "x":18, "y": 64}, - {"flags": 2, "matrix": [5, 2], "x":34, "y": 64}, - {"flags": 2, "matrix": [5, 6], "x":82, "y": 64}, - {"flags": 2, "matrix": [5,10], "x":130, "y": 64}, - {"flags": 2, "matrix": [5,11], "x":146, "y": 64}, - {"flags": 2, "matrix": [5,12], "x":162, "y": 64}, - {"flags": 2, "matrix": [5,13], "x":178, "y": 64}, - {"flags": 2, "matrix": [5,14], "x":195, "y": 64}, - {"flags": 2, "matrix": [5,15], "x":208, "y": 64}, - {"flags": 2, "matrix": [5,16], "x":221, "y": 64} - ] - }, - "layout_aliases": { - "LAYOUT_ansi": "LAYOUT_tkl_ansi", - "LAYOUT_iso": "LAYOUT_tkl_iso" - }, - "community_layouts": [ - "tkl_ansi", - "tkl_ansi_split_bs_rshift", - "tkl_ansi_tsangan", - "tkl_ansi_wkl", - "tkl_ansi_tsangan_split_bs_rshift", - "tkl_ansi_wkl_split_bs_rshift", - "tkl_iso", - "tkl_iso_split_bs_rshift", - "tkl_iso_tsangan", - "tkl_iso_wkl", - "tkl_iso_tsangan_split_bs_rshift", - "tkl_iso_wkl_split_bs_rshift" - ], - "layouts": { - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25, "w":2}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 1], "x":1.5, "y":5.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,12], "x":12.5, "y":5.25}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_tkl_iso_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25}, - {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, - {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, - {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, - {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 2], "x":2, "y":0}, - {"matrix": [0, 3], "x":3, "y":0}, - {"matrix": [0, 4], "x":4, "y":0}, - {"matrix": [0, 5], "x":5, "y":0}, - {"matrix": [0, 6], "x":6.5, "y":0}, - {"matrix": [0, 7], "x":7.5, "y":0}, - {"matrix": [0, 8], "x":8.5, "y":0}, - {"matrix": [0, 9], "x":9.5, "y":0}, - {"matrix": [0,10], "x":11, "y":0}, - {"matrix": [0,11], "x":12, "y":0}, - {"matrix": [0,12], "x":13, "y":0}, - {"matrix": [0,13], "x":14, "y":0}, - {"matrix": [0,14], "x":15.25, "y":0}, - {"matrix": [0,15], "x":16.25, "y":0}, - {"matrix": [0,16], "x":17.25, "y":0}, - - {"matrix": [1, 0], "x":0, "y":1.25}, - {"matrix": [1, 1], "x":1, "y":1.25}, - {"matrix": [1, 2], "x":2, "y":1.25}, - {"matrix": [1, 3], "x":3, "y":1.25}, - {"matrix": [1, 4], "x":4, "y":1.25}, - {"matrix": [1, 5], "x":5, "y":1.25}, - {"matrix": [1, 6], "x":6, "y":1.25}, - {"matrix": [1, 7], "x":7, "y":1.25}, - {"matrix": [1, 8], "x":8, "y":1.25}, - {"matrix": [1, 9], "x":9, "y":1.25}, - {"matrix": [1,10], "x":10, "y":1.25}, - {"matrix": [1,11], "x":11, "y":1.25}, - {"matrix": [1,12], "x":12, "y":1.25}, - {"matrix": [1,13], "x":13, "y":1.25}, - {"matrix": [3,13], "x":14, "y":1.25}, - {"matrix": [1,14], "x":15.25, "y":1.25}, - {"matrix": [1,15], "x":16.25, "y":1.25}, - {"matrix": [1,16], "x":17.25, "y":1.25}, - - {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.25}, - {"matrix": [2, 2], "x":2.5, "y":2.25}, - {"matrix": [2, 3], "x":3.5, "y":2.25}, - {"matrix": [2, 4], "x":4.5, "y":2.25}, - {"matrix": [2, 5], "x":5.5, "y":2.25}, - {"matrix": [2, 6], "x":6.5, "y":2.25}, - {"matrix": [2, 7], "x":7.5, "y":2.25}, - {"matrix": [2, 8], "x":8.5, "y":2.25}, - {"matrix": [2, 9], "x":9.5, "y":2.25}, - {"matrix": [2,10], "x":10.5, "y":2.25}, - {"matrix": [2,11], "x":11.5, "y":2.25}, - {"matrix": [2,12], "x":12.5, "y":2.25}, - {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix": [2,14], "x":15.25, "y":2.25}, - {"matrix": [2,15], "x":16.25, "y":2.25}, - {"matrix": [2,16], "x":17.25, "y":2.25}, - - {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.25}, - {"matrix": [3, 2], "x":2.75, "y":3.25}, - {"matrix": [3, 3], "x":3.75, "y":3.25}, - {"matrix": [3, 4], "x":4.75, "y":3.25}, - {"matrix": [3, 5], "x":5.75, "y":3.25}, - {"matrix": [3, 6], "x":6.75, "y":3.25}, - {"matrix": [3, 7], "x":7.75, "y":3.25}, - {"matrix": [3, 8], "x":8.75, "y":3.25}, - {"matrix": [3, 9], "x":9.75, "y":3.25}, - {"matrix": [3,10], "x":10.75, "y":3.25}, - {"matrix": [3,11], "x":11.75, "y":3.25}, - {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, - - {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, - {"matrix": [4, 1], "x":1.25, "y":4.25}, - {"matrix": [4, 2], "x":2.25, "y":4.25}, - {"matrix": [4, 3], "x":3.25, "y":4.25}, - {"matrix": [4, 4], "x":4.25, "y":4.25}, - {"matrix": [4, 5], "x":5.25, "y":4.25}, - {"matrix": [4, 6], "x":6.25, "y":4.25}, - {"matrix": [4, 7], "x":7.25, "y":4.25}, - {"matrix": [4, 8], "x":8.25, "y":4.25}, - {"matrix": [4, 9], "x":9.25, "y":4.25}, - {"matrix": [4,10], "x":10.25, "y":4.25}, - {"matrix": [4,11], "x":11.25, "y":4.25}, - {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, - {"matrix": [4,13], "x":14, "y":4.25}, - {"matrix": [4,15], "x":16.25, "y":4.25}, - - {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, - {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, - {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, - {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, - {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, - {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix": [5,14], "x":15.25, "y":5.25}, - {"matrix": [5,15], "x":16.25, "y":5.25}, - {"matrix": [5,16], "x":17.25, "y":5.25} - ] - } - } -} diff --git a/keyboards/plywrks/ply8x/solder/mcuconf.h b/keyboards/plywrks/ply8x/solder/mcuconf.h deleted file mode 100644 index aceb2e3dfc..0000000000 --- a/keyboards/plywrks/ply8x/solder/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 Ramon Imbao (@ramonimbao) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/pmk/posey_split/v4/keyboard.json b/keyboards/pmk/posey_split/v4/keyboard.json index d9f165286a..e27991783d 100644 --- a/keyboards/pmk/posey_split/v4/keyboard.json +++ b/keyboards/pmk/posey_split/v4/keyboard.json @@ -10,6 +10,8 @@ "features": { "bootmagic": true, "rgblight": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pmk/posey_split/v5/keyboard.json b/keyboards/pmk/posey_split/v5/keyboard.json index cc2c8f2461..02c04dbba2 100644 --- a/keyboards/pmk/posey_split/v5/keyboard.json +++ b/keyboards/pmk/posey_split/v5/keyboard.json @@ -10,6 +10,8 @@ "features": { "bootmagic": true, "rgblight": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pohjolaworks/louhi/keyboard.json b/keyboards/pohjolaworks/louhi/keyboard.json index be00368632..90d7a96433 100644 --- a/keyboards/pohjolaworks/louhi/keyboard.json +++ b/keyboards/pohjolaworks/louhi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/poker87c/keyboard.json b/keyboards/poker87c/keyboard.json index ac682d926c..ab626c8be9 100644 --- a/keyboards/poker87c/keyboard.json +++ b/keyboards/poker87c/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "POKER-87C Hotswap", "manufacturer": "mfkiiyd", + "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/poker87d/keyboard.json b/keyboards/poker87d/keyboard.json index 42c89ef1fd..61710aac2c 100644 --- a/keyboards/poker87d/keyboard.json +++ b/keyboards/poker87d/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "POKER-87D Hotswap", "manufacturer": "mfkiiyd", + "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/polilla/rev1/keyboard.json b/keyboards/polilla/rev1/keyboard.json index 049b21a178..746f47963e 100644 --- a/keyboards/polilla/rev1/keyboard.json +++ b/keyboards/polilla/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Polilla", "manufacturer": "elagil", + "url": "", "maintainer": "elagil", "usb": { "vid": "0x6166", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/polilla/rules.mk b/keyboards/polilla/rules.mk new file mode 100644 index 0000000000..0d72c40bb6 --- /dev/null +++ b/keyboards/polilla/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = polilla/rev1 \ No newline at end of file diff --git a/keyboards/polycarbdiet/s20/keyboard.json b/keyboards/polycarbdiet/s20/keyboard.json index 327debdb7d..f87429b4a7 100644 --- a/keyboards/polycarbdiet/s20/keyboard.json +++ b/keyboards/polycarbdiet/s20/keyboard.json @@ -1,20 +1,19 @@ { "keyboard_name": "S20 revA", "manufacturer": "polycarbdiet", + "url": "", "maintainer": "polycarbdiet", "usb": { "vid": "0x5040", "pid": "0x7320", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pom_keyboards/tnln95/keyboard.json b/keyboards/pom_keyboards/tnln95/keyboard.json index 61ec5f956e..09b3f71f7c 100644 --- a/keyboards/pom_keyboards/tnln95/keyboard.json +++ b/keyboards/pom_keyboards/tnln95/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/portal_66/hotswap/keyboard.json b/keyboards/portal_66/hotswap/keyboard.json index 8bbee2d56a..266ca516ec 100644 --- a/keyboards/portal_66/hotswap/keyboard.json +++ b/keyboards/portal_66/hotswap/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/portal_66/soldered/keyboard.json b/keyboards/portal_66/soldered/keyboard.json index 063176c735..369a6efa13 100644 --- a/keyboards/portal_66/soldered/keyboard.json +++ b/keyboards/portal_66/soldered/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/pos78/keyboard.json b/keyboards/pos78/keyboard.json index a4cad0124e..0a6a814155 100644 --- a/keyboards/pos78/keyboard.json +++ b/keyboards/pos78/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index 67ff77912c..c47b9e7ed4 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -20,8 +20,6 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 -#define AUDIO_INIT_DELAY - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 08e92ef0d3..511ac41f20 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -27,15 +27,14 @@ enum preonic_layers { }; enum preonic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -169,6 +168,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/preonic/rev1/keyboard.json b/keyboards/preonic/rev1/keyboard.json index 705ccbfc22..648dafe576 100644 --- a/keyboards/preonic/rev1/keyboard.json +++ b/keyboards/preonic/rev1/keyboard.json @@ -13,6 +13,8 @@ "audio": true, "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/preonic/rev2/keyboard.json b/keyboards/preonic/rev2/keyboard.json index 112785f360..d24c3db42f 100644 --- a/keyboards/preonic/rev2/keyboard.json +++ b/keyboards/preonic/rev2/keyboard.json @@ -13,6 +13,7 @@ "audio": true, "backlight": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/primekb/meridian/rules.mk b/keyboards/primekb/meridian/rules.mk new file mode 100644 index 0000000000..585a04ad28 --- /dev/null +++ b/keyboards/primekb/meridian/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = primekb/meridian/ktr1010 diff --git a/keyboards/primekb/meridian_rgb/keyboard.json b/keyboards/primekb/meridian_rgb/keyboard.json index f1ca86dfea..145d4eeb8b 100644 --- a/keyboards/primekb/meridian_rgb/keyboard.json +++ b/keyboards/primekb/meridian_rgb/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/primekb/prime_e/info.json b/keyboards/primekb/prime_e/info.json index 4aaef804af..e7ed77e403 100644 --- a/keyboards/primekb/prime_e/info.json +++ b/keyboards/primekb/prime_e/info.json @@ -7,6 +7,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk new file mode 100644 index 0000000000..debb966e0d --- /dev/null +++ b/keyboards/primekb/prime_e/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = primekb/prime_e/std diff --git a/keyboards/primekb/prime_l/info.json b/keyboards/primekb/prime_l/info.json index 1f526e9587..ed905f2b0b 100644 --- a/keyboards/primekb/prime_l/info.json +++ b/keyboards/primekb/prime_l/info.json @@ -4,6 +4,8 @@ "maintainer": "MxBlu", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk new file mode 100644 index 0000000000..235bfea925 --- /dev/null +++ b/keyboards/primekb/prime_l/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = primekb/prime_l/v1 diff --git a/keyboards/primekb/prime_m/keyboard.json b/keyboards/primekb/prime_m/keyboard.json index 1f43a8b1dc..eb06dcdb7e 100644 --- a/keyboards/primekb/prime_m/keyboard.json +++ b/keyboards/primekb/prime_m/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_o/keyboard.json b/keyboards/primekb/prime_o/keyboard.json index e440075537..04da8ab134 100644 --- a/keyboards/primekb/prime_o/keyboard.json +++ b/keyboards/primekb/prime_o/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_r/keyboard.json b/keyboards/primekb/prime_r/keyboard.json index e6738a6dde..b2a7ecec7a 100644 --- a/keyboards/primekb/prime_r/keyboard.json +++ b/keyboards/primekb/prime_r/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Prime_R", "manufacturer": "PrimeKB", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/printedpad/keyboard.json b/keyboards/printedpad/keyboard.json index 0dca5da74d..90a42c7313 100644 --- a/keyboards/printedpad/keyboard.json +++ b/keyboards/printedpad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -16,6 +18,7 @@ "rows": ["A10", "C9", "A8", "A9"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/program_yoink/ortho/keyboard.json b/keyboards/program_yoink/ortho/keyboard.json index 2d50640a41..e9d5fd3e80 100644 --- a/keyboards/program_yoink/ortho/keyboard.json +++ b/keyboards/program_yoink/ortho/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Program Yoink! Ortho", "manufacturer": "melonbred", + "url": "", "maintainer": "melonbred", "usb": { "vid": "0x7079", diff --git a/keyboards/program_yoink/rules.mk b/keyboards/program_yoink/rules.mk new file mode 100644 index 0000000000..a7cc1a2dbf --- /dev/null +++ b/keyboards/program_yoink/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = program_yoink/staggered diff --git a/keyboards/program_yoink/staggered/keyboard.json b/keyboards/program_yoink/staggered/keyboard.json index 82f41d8e27..c20e2c9fc7 100644 --- a/keyboards/program_yoink/staggered/keyboard.json +++ b/keyboards/program_yoink/staggered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Program Yoink! Staggered", "manufacturer": "melonbred", + "url": "", "maintainer": "melonbred", "usb": { "vid": "0x7079", diff --git a/keyboards/projectcain/relic/keyboard.json b/keyboards/projectcain/relic/keyboard.json index 428240f923..f9df6770d1 100644 --- a/keyboards/projectcain/relic/keyboard.json +++ b/keyboards/projectcain/relic/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Relic", "manufacturer": "projectcain", + "url": "", "maintainer": "projectcain", "usb": { "vid": "0xFEED", diff --git a/keyboards/projectcain/vault35/rules.mk b/keyboards/projectcain/vault35/rules.mk new file mode 100644 index 0000000000..3cf3a331d8 --- /dev/null +++ b/keyboards/projectcain/vault35/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = projectcain/vault35/atmega32u4 diff --git a/keyboards/projectcain/vault45/keyboard.json b/keyboards/projectcain/vault45/keyboard.json index 6131ae0305..2ab3e010e7 100644 --- a/keyboards/projectcain/vault45/keyboard.json +++ b/keyboards/projectcain/vault45/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vault45", "manufacturer": "projectcain", + "url": "", "maintainer": "projectcain", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index 6e23afc902..c8da5c42a7 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_EN_PIN C13 diff --git a/keyboards/projectd/65/projectd_65_ansi/halconf.h b/keyboards/projectd/65/projectd_65_ansi/halconf.h index e17fed3886..64a184eb92 100644 --- a/keyboards/projectd/65/projectd_65_ansi/halconf.h +++ b/keyboards/projectd/65/projectd_65_ansi/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/projectd/65/projectd_65_ansi/keyboard.json b/keyboards/projectd/65/projectd_65_ansi/keyboard.json index d3deca8c29..32a95f965e 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keyboard.json +++ b/keyboards/projectd/65/projectd_65_ansi/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -159,6 +161,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "0.0.4", "pid": "0x5319", diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c index f8700f624b..e7a34d3467 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c @@ -80,10 +80,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( 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, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RM_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h index acbe853949..282e20a8e2 100644 --- a/keyboards/projectd/75/ansi/config.h +++ b/keyboards/projectd/75/ansi/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/75/ansi/halconf.h b/keyboards/projectd/75/ansi/halconf.h index e17fed3886..64a184eb92 100644 --- a/keyboards/projectd/75/ansi/halconf.h +++ b/keyboards/projectd/75/ansi/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/projectd/75/ansi/keyboard.json b/keyboards/projectd/75/ansi/keyboard.json index 9ebc5f3868..d94db22bfc 100644 --- a/keyboards/projectd/75/ansi/keyboard.json +++ b/keyboards/projectd/75/ansi/keyboard.json @@ -19,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -180,6 +182,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "0.0.2", "pid": "0x000F", diff --git a/keyboards/projectd/75/ansi/keymaps/default/keymap.c b/keyboards/projectd/75/ansi/keymaps/default/keymap.c index 699f6915da..36e4937481 100644 --- a/keyboards/projectd/75/ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/75/ansi/keymaps/default/keymap.c @@ -32,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, MO(2), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/projectd/75/iso/config.h b/keyboards/projectd/75/iso/config.h index acbe853949..282e20a8e2 100644 --- a/keyboards/projectd/75/iso/config.h +++ b/keyboards/projectd/75/iso/config.h @@ -22,11 +22,8 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/75/iso/halconf.h b/keyboards/projectd/75/iso/halconf.h index e17fed3886..64a184eb92 100644 --- a/keyboards/projectd/75/iso/halconf.h +++ b/keyboards/projectd/75/iso/halconf.h @@ -17,5 +17,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/projectd/75/iso/keyboard.json b/keyboards/projectd/75/iso/keyboard.json index 15ff587adb..d42e8c4b33 100644 --- a/keyboards/projectd/75/iso/keyboard.json +++ b/keyboards/projectd/75/iso/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -174,6 +176,7 @@ { "flags": 4, "matrix": [0, 5], "x": 152, "y": 52 } ] }, + "url": "", "usb": { "device_version": "0.0.2", "pid": "0x0011", diff --git a/keyboards/projectd/75/iso/keymaps/default/keymap.c b/keyboards/projectd/75/iso/keymaps/default/keymap.c index e61afe5ada..2f6e6cf310 100644 --- a/keyboards/projectd/75/iso/keymaps/default/keymap.c +++ b/keyboards/projectd/75/iso/keymaps/default/keymap.c @@ -32,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_PREV, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, MO(2), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/projectkb/alice/rules.mk b/keyboards/projectkb/alice/rules.mk new file mode 100644 index 0000000000..d672576992 --- /dev/null +++ b/keyboards/projectkb/alice/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = projectkb/alice/rev1 diff --git a/keyboards/projectkb/signature65/keyboard.json b/keyboards/projectkb/signature65/keyboard.json index e771c63e81..b72ff9926c 100644 --- a/keyboards/projectkb/signature65/keyboard.json +++ b/keyboards/projectkb/signature65/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/projectkb/signature87/keyboard.json b/keyboards/projectkb/signature87/keyboard.json index adb3fd5fd7..2b18bf4572 100644 --- a/keyboards/projectkb/signature87/keyboard.json +++ b/keyboards/projectkb/signature87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Signature87", "manufacturer": "Project Keyboard", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x0159", diff --git a/keyboards/proteus67/keymaps/default/keymap.c b/keyboards/proteus67/keymaps/default/keymap.c index 710ae56a90..225476b40c 100644 --- a/keyboards/proteus67/keymaps/default/keymap.c +++ b/keyboards/proteus67/keymaps/default/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LAYERB] = LAYOUT_ortho_5x14( UG_TOGG , UG_HUEU ,UG_HUED ,UG_SATU , UG_SATD , UG_VALU , UG_VALD , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , RGB_M_K , RGB_M_X , RGB_M_G , - KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MS_BTN1 , MS_UP , MS_BTN2 , KC_TRNS ,KC_TRNS, - KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MS_LEFT , MS_DOWN , MS_RGHT , KC_SCLN,KC_QUOT , + KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_TRNS ,KC_TRNS, + KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_MS_L , KC_MS_D , KC_MS_R , KC_SCLN,KC_QUOT , KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS, KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , UG_PREV, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ), diff --git a/keyboards/prototypist/allison/keyboard.json b/keyboards/prototypist/allison/keyboard.json index 33bd904195..ea80e853bf 100644 --- a/keyboards/prototypist/allison/keyboard.json +++ b/keyboards/prototypist/allison/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/allison_numpad/keyboard.json b/keyboards/prototypist/allison_numpad/keyboard.json index e2360c99d4..a995cd6bbf 100644 --- a/keyboards/prototypist/allison_numpad/keyboard.json +++ b/keyboards/prototypist/allison_numpad/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/j01/keyboard.json b/keyboards/prototypist/j01/keyboard.json index bafbba0bc8..68296e1b77 100644 --- a/keyboards/prototypist/j01/keyboard.json +++ b/keyboards/prototypist/j01/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/oceanographer/keyboard.json b/keyboards/prototypist/oceanographer/keyboard.json index f76980499e..8b0209d451 100644 --- a/keyboards/prototypist/oceanographer/keyboard.json +++ b/keyboards/prototypist/oceanographer/keyboard.json @@ -29,6 +29,8 @@ "led_count": 3, "sleep": true, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "max_brightness": 155, "animations": { "alternating": true, @@ -47,6 +49,7 @@ "rows": ["B0", "D5", "D3", "D2"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c index ceeb224927..83b907f9a4 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [_FN1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU)}, - [_FN2] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU)}, + [_FN2] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP)}, [_FN3] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT)} }; #endif diff --git a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c index 185ce52c9b..94e8e936f8 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [_FN1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU)}, - [_FN2] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU)}, + [_FN2] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP)}, [_FN3] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT)} }; #endif diff --git a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c index 0a1d1558dd..cc7c155752 100644 --- a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [_FN1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU)}, - [_FN2] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU)}, + [_FN2] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP)}, [_FN3] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT)} }; #endif diff --git a/keyboards/prototypist/pt60/keyboard.json b/keyboards/prototypist/pt60/keyboard.json index 4768a28d90..8018350e6f 100644 --- a/keyboards/prototypist/pt60/keyboard.json +++ b/keyboards/prototypist/pt60/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B0", "B1", "B2", "B10", "B11"] }, "processor": "STM32F303", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/prototypist/pt80/keyboard.json b/keyboards/prototypist/pt80/keyboard.json index 311bfd2670..cb58643e3f 100644 --- a/keyboards/prototypist/pt80/keyboard.json +++ b/keyboards/prototypist/pt80/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B14", "A8", "A9", "B13", "B11", "B12"] }, "processor": "STM32F303", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/protozoa/cassini/keyboard.json b/keyboards/protozoa/cassini/keyboard.json index 551c3091ed..696480024f 100644 --- a/keyboards/protozoa/cassini/keyboard.json +++ b/keyboards/protozoa/cassini/keyboard.json @@ -29,15 +29,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -319,7 +315,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/protozoa/event_horizon/keyboard.json b/keyboards/protozoa/event_horizon/keyboard.json index 29c7c94fb9..42482c09ba 100644 --- a/keyboards/protozoa/event_horizon/keyboard.json +++ b/keyboards/protozoa/event_horizon/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/protozoa/p01/keymaps/default/keymap.c b/keyboards/protozoa/p01/keymaps/default/keymap.c index 949d77902b..61ef46c909 100644 --- a/keyboards/protozoa/p01/keymaps/default/keymap.c +++ b/keyboards/protozoa/p01/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/psuieee/pluto12/keyboard.json b/keyboards/psuieee/pluto12/keyboard.json index 815c3b5949..382d9fe030 100644 --- a/keyboards/psuieee/pluto12/keyboard.json +++ b/keyboards/psuieee/pluto12/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -31,7 +33,8 @@ {"pin_a": "B6", "pin_b": "B2"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json index 5daca888e9..2000593e62 100644 --- a/keyboards/pteron36/keyboard.json +++ b/keyboards/pteron36/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pteron36", "manufacturer": "Harshit Goel", + "url": "", "maintainer": "harshitgoel96", "usb": { "vid": "0x4847", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -54,7 +57,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_3": { diff --git a/keyboards/pteropus/keyboard.json b/keyboards/pteropus/keyboard.json index 12bb0e9667..76cbe67eee 100644 --- a/keyboards/pteropus/keyboard.json +++ b/keyboards/pteropus/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B10", "B2", "B1", "B0"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/puck/keyboard.json b/keyboards/puck/keyboard.json index 35493d4a64..4ec04d72be 100644 --- a/keyboards/puck/keyboard.json +++ b/keyboards/puck/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Puck", "manufacturer": "OkKeebs LLC", + "url": "", "maintainer": "john-pettigrew", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/punk75/keyboard.json b/keyboards/punk75/keyboard.json index 62501a885c..c7082e564f 100644 --- a/keyboards/punk75/keyboard.json +++ b/keyboards/punk75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "punk75", "manufacturer": "dsanchezseco", + "url": "", "maintainer": "dsanchezseco", "usb": { "vid": "0xDEED", diff --git a/keyboards/purin/keyboard.json b/keyboards/purin/keyboard.json index 7e06f2ede9..08a8b06e34 100644 --- a/keyboards/purin/keyboard.json +++ b/keyboards/purin/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["F6", "F7", "D4", "D5", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/qck75/v1/keyboard.json b/keyboards/qck75/v1/keyboard.json index d97a719a52..a8ae853ab3 100644 --- a/keyboards/qck75/v1/keyboard.json +++ b/keyboards/qck75/v1/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -23,6 +25,7 @@ "rows": ["C3", "A0", "A1", "A2", "B10", "A15"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/qck75/v1/v1.c b/keyboards/qck75/v1/v1.c index d7756fe06d..5e512b292c 100644 --- a/keyboards/qck75/v1/v1.c +++ b/keyboards/qck75/v1/v1.c @@ -26,16 +26,16 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case THIRD: if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_R); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_L); } break; case FOURTH: if (clockwise) { - tap_code(MS_UP); + tap_code(KC_MS_U); } else { - tap_code(MS_DOWN); + tap_code(KC_MS_D); } break; } diff --git a/keyboards/qpockets/eggman/keyboard.json b/keyboards/qpockets/eggman/keyboard.json index 14f8a79b0a..32cb76fc88 100644 --- a/keyboards/qpockets/eggman/keyboard.json +++ b/keyboards/qpockets/eggman/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "eggman", "manufacturer": "qpockets", + "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qpockets/eggman/keymaps/default/keymap.c b/keyboards/qpockets/eggman/keymaps/default/keymap.c index 60b70837fb..079272d918 100644 --- a/keyboards/qpockets/eggman/keymaps/default/keymap.c +++ b/keyboards/qpockets/eggman/keymaps/default/keymap.c @@ -63,9 +63,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* left encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 1) { /* right encoder */ if (clockwise) { diff --git a/keyboards/qpockets/space_space/rev1/keyboard.json b/keyboards/qpockets/space_space/rev1/keyboard.json index 5284230e61..cc8cda49a8 100644 --- a/keyboards/qpockets/space_space/rev1/keyboard.json +++ b/keyboards/qpockets/space_space/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "space_space", "manufacturer": "qpockets", + "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c b/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c index 1b88459606..1bbdd632e8 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c +++ b/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c @@ -85,9 +85,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { default: if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else{ - tap_code(MS_WHLD); + tap_code(KC_WH_D); } break; } diff --git a/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c b/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c index f872606d07..19390f665c 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c +++ b/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c @@ -87,9 +87,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { default: if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else{ - tap_code(MS_WHLD); + tap_code(KC_WH_D); } break; } diff --git a/keyboards/qpockets/space_space/rev2/keyboard.json b/keyboards/qpockets/space_space/rev2/keyboard.json index 7374ed4728..e2f24032a3 100644 --- a/keyboards/qpockets/space_space/rev2/keyboard.json +++ b/keyboards/qpockets/space_space/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "space_space", "manufacturer": "qpockets", + "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/qpockets/space_space/rev2/rev2.c b/keyboards/qpockets/space_space/rev2/rev2.c index 04581833ff..e6053afb75 100644 --- a/keyboards/qpockets/space_space/rev2/rev2.c +++ b/keyboards/qpockets/space_space/rev2/rev2.c @@ -20,9 +20,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } else if (index == 0) { /* right encoder */ if (clockwise){ diff --git a/keyboards/qpockets/space_space/rules.mk b/keyboards/qpockets/space_space/rules.mk new file mode 100644 index 0000000000..0ffe2efbf2 --- /dev/null +++ b/keyboards/qpockets/space_space/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = qpockets/space_space/rev2 diff --git a/keyboards/qpockets/wanten/keyboard.json b/keyboards/qpockets/wanten/keyboard.json index d1b6d8b6a6..86bfe02300 100644 --- a/keyboards/qpockets/wanten/keyboard.json +++ b/keyboards/qpockets/wanten/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "wanten", "manufacturer": "qpockets", + "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c b/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c index de67171c2e..3322fc8923 100644 --- a/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c +++ b/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c @@ -78,9 +78,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* center encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c b/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c index fc5dab3b77..1bd1be2f66 100644 --- a/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c +++ b/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c @@ -78,9 +78,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* center encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } return true; diff --git a/keyboards/qpockets/wanten/keymaps/default/keymap.c b/keyboards/qpockets/wanten/keymaps/default/keymap.c index 386a8d982d..248974a7eb 100644 --- a/keyboards/qpockets/wanten/keymaps/default/keymap.c +++ b/keyboards/qpockets/wanten/keymaps/default/keymap.c @@ -78,9 +78,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* center encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } return true; diff --git a/keyboards/quad_h/lb75/keyboard.json b/keyboards/quad_h/lb75/keyboard.json index d205ecbc27..e88ba4b3a4 100644 --- a/keyboards/quad_h/lb75/keyboard.json +++ b/keyboards/quad_h/lb75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LB75", "manufacturer": "QUADH", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quadrum/delta/keyboard.json b/keyboards/quadrum/delta/keyboard.json index 0c218b2d8a..bfdc0afd62 100644 --- a/keyboards/quadrum/delta/keyboard.json +++ b/keyboards/quadrum/delta/keyboard.json @@ -9,6 +9,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -20,6 +21,7 @@ "rows": ["F5", "F4", "F1", "F0", "D2"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/quantrik/kyuu/keyboard.json b/keyboards/quantrik/kyuu/keyboard.json index b7a2a01807..5827f08d21 100644 --- a/keyboards/quantrik/kyuu/keyboard.json +++ b/keyboards/quantrik/kyuu/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Kyuu", "manufacturer": "Quantrik", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5154", diff --git a/keyboards/quarkeys/z40/keyboard.json b/keyboards/quarkeys/z40/keyboard.json index 05d81e5b6f..fb945dba5a 100644 --- a/keyboards/quarkeys/z40/keyboard.json +++ b/keyboards/quarkeys/z40/keyboard.json @@ -54,6 +54,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z40/keymaps/default/keymap.c b/keyboards/quarkeys/z40/keymaps/default/keymap.c index 2524fc43ee..8a08e47153 100644 --- a/keyboards/quarkeys/z40/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z40/keymaps/default/keymap.c @@ -45,10 +45,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+------+------+------+------+-------------+------+------+------+-------+------' */ [1] = LAYOUT_planck_mit( - QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RM_TOGG, _______, - _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RM_NEXT, _______, - _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RM_HUEU, _______, - RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_0, _______, _______, KC_DOT, RM_HUED, KC_EQL + QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, + _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, + _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL ), /* [2] diff --git a/keyboards/quarkeys/z60/hotswap/keyboard.json b/keyboards/quarkeys/z60/hotswap/keyboard.json index 6034f3b909..c586d62ef4 100644 --- a/keyboards/quarkeys/z60/hotswap/keyboard.json +++ b/keyboards/quarkeys/z60/hotswap/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z60/solder/keyboard.json b/keyboards/quarkeys/z60/solder/keyboard.json index d0801e40ca..52514fc7a3 100644 --- a/keyboards/quarkeys/z60/solder/keyboard.json +++ b/keyboards/quarkeys/z60/solder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -44,18 +46,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_tsangan", - "60_iso_split_bs_rshift" - ], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_iso", "60_iso_tsangan", "60_iso_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -338,7 +331,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/quarkeys/z67/hotswap/keyboard.json b/keyboards/quarkeys/z67/hotswap/keyboard.json index 7bee5ee3de..266a9a879e 100644 --- a/keyboards/quarkeys/z67/hotswap/keyboard.json +++ b/keyboards/quarkeys/z67/hotswap/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z67/solder/keyboard.json b/keyboards/quarkeys/z67/solder/keyboard.json index 10d216e54c..c1e1412d21 100644 --- a/keyboards/quarkeys/z67/solder/keyboard.json +++ b/keyboards/quarkeys/z67/solder/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/qvex/lynepad/keyboard.json b/keyboards/qvex/lynepad/keyboard.json index a408e81f86..65afceb26a 100644 --- a/keyboards/qvex/lynepad/keyboard.json +++ b/keyboards/qvex/lynepad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qvex/lynepad/keymaps/default/keymap.c b/keyboards/qvex/lynepad/keymaps/default/keymap.c index a4c3030f22..142f295de6 100644 --- a/keyboards/qvex/lynepad/keymaps/default/keymap.c +++ b/keyboards/qvex/lynepad/keymaps/default/keymap.c @@ -24,9 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------------------------| */ [0] = LAYOUT( - MS_BTN4, MS_BTN2, MS_UP, MS_BTN1, - MS_BTN5, MS_LEFT, MS_DOWN, MS_RGHT, - MS_ACL0, MS_ACL1, MS_ACL2 + KC_MS_BTN4, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, + KC_MS_BTN5, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2 ) }; @@ -41,9 +41,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } } return true; @@ -76,10 +76,10 @@ void matrix_scan_user(void) { } if (enc2Center != enc2CenterPrev) { if (enc2Center < ENC_TILT_THRESHOLD) { - register_code16(MS_BTN3); + register_code16(KC_MS_BTN3); } else { - unregister_code16(MS_BTN3); + unregister_code16(KC_MS_BTN3); } /* * Encoder sets ALL values when center is pressed so bail out at this point diff --git a/keyboards/qwertlekeys/calice/keyboard.json b/keyboards/qwertlekeys/calice/keyboard.json index c2c22b8317..676ca7a433 100644 --- a/keyboards/qwertlekeys/calice/keyboard.json +++ b/keyboards/qwertlekeys/calice/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Calice", "manufacturer": "QwertleKeys", + "url": "", "maintainer": "Jels02", "usb": { "vid": "0x716B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/qwertykeys/qk100/ansi/ansi.c b/keyboards/qwertykeys/qk100/ansi/ansi.c index 93af272e00..e1102aab51 100644 --- a/keyboards/qwertykeys/qk100/ansi/ansi.c +++ b/keyboards/qwertykeys/qk100/ansi/ansi.c @@ -120,6 +120,60 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS14, SW9_CS15, SW9_CS13}, /* RGB99- 0 */ {0, SW9_CS20, SW9_CS21, SW9_CS19} /* RGB100- . */ }; + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (record->event.pressed) { + switch (keycode) { + case QK_KB_0: + rgb_matrix_toggle(); + break; + + case QK_KB_1: + rgb_matrix_step(); + break; + + case QK_KB_2: + rgb_matrix_step_reverse(); + break; + + case QK_KB_3: + rgb_matrix_increase_hue(); // Increase the hue for effect range LEDs + break; + + case QK_KB_4: + rgb_matrix_decrease_hue(); // Decrease the hue for effect range LEDs + break; + + case QK_KB_5: + rgb_matrix_increase_sat(); // Increase the saturation for effect range LEDs + break; + + case QK_KB_6: + rgb_matrix_decrease_sat(); // Decrease the saturation for effect range LEDs + break; + + case QK_KB_7: + rgb_matrix_increase_val(); // Increase the value for effect range LEDs + break; + + case QK_KB_8: + rgb_matrix_decrease_val(); // Decrease the value for effect range LEDs + break; + + case QK_KB_9: + rgb_matrix_increase_speed(); // Increase the speed of the animations + break; + + case QK_KB_10: + rgb_matrix_decrease_speed(); // Decrease the speed of the animations + break; + + default: + break; + } + } + return process_record_user(keycode, record); +} #endif const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_WHITE}); diff --git a/keyboards/qwertykeys/qk100/ansi/config.h b/keyboards/qwertykeys/qk100/ansi/config.h index ceba1c798d..041dbdb928 100644 --- a/keyboards/qwertykeys/qk100/ansi/config.h +++ b/keyboards/qwertykeys/qk100/ansi/config.h @@ -31,4 +31,4 @@ along with this program. If not, see . #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c index ae4a72af15..f081299d50 100644 --- a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c @@ -28,11 +28,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT ), [1] = LAYOUT( - RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_KB_0, QK_KB_1, QK_KB_2, QK_KB_3, QK_KB_4, QK_KB_5, QK_KB_6, QK_KB_7, QK_KB_8, QK_KB_9, QK_KB_10,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALD, UG_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/qwertykeys/qk65/hotswap/keyboard.json b/keyboards/qwertykeys/qk65/hotswap/keyboard.json index 2cdfe33ba3..7c786a7038 100644 --- a/keyboards/qwertykeys/qk65/hotswap/keyboard.json +++ b/keyboards/qwertykeys/qk65/hotswap/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "QK65 Hotswap", "manufacturer": "qwertykeys", + "url": "", "maintainer": "qwertykeys", "usb": { "vid": "0x4F53", "pid": "0x514B", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/qwertykeys/qk65/solder/keyboard.json b/keyboards/qwertykeys/qk65/solder/keyboard.json index 63afc40994..b1795474d3 100644 --- a/keyboards/qwertykeys/qk65/solder/keyboard.json +++ b/keyboards/qwertykeys/qk65/solder/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "QK65 Solder", "manufacturer": "qwertykeys", + "url": "", "maintainer": "qwertykeys", "usb": { "vid": "0x4F53", "pid": "0x5153", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/qwertyydox/keymaps/default/keymap.c b/keyboards/qwertyydox/keymaps/default/keymap.c index 69e1d5c31c..49d45b9c5f 100644 --- a/keyboards/qwertyydox/keymaps/default/keymap.c +++ b/keyboards/qwertyydox/keymaps/default/keymap.c @@ -42,11 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAV] = LAYOUT( //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_ESC, KC_NO, MS_ACL0, MS_ACL1, MS_ACL2, MS_WHLL, MS_WHLR, KC_ESC, KC_NO, KC_UP, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, + KC_ESC, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_WH_L, KC_WH_R, KC_ESC, KC_NO, KC_UP, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_NO, KC_Z, KC_X, KC_C, KC_V, MS_WHLU, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, + KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_WH_U, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_INS, KC_HOME, KC_PGUP, MS_BTN1, MS_BTN2, MS_WHLD, MS_LEFT, MS_UP, MS_DOWN, MS_RGHT, KC_NO, KC_NO, + KC_INS, KC_HOME, KC_PGUP, KC_BTN1, KC_BTN2, KC_WH_D, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, KC_NO, KC_NO, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_DEL, KC_END, KC_PGDN, nav, KC_LCTL, KC_SPC, TO(0), TO(1), KC_LSFT, KC_BSPC, KC_NO, KC_NO, KC_NO, QK_BOOT //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' diff --git a/keyboards/qwertyydox/rev1/keyboard.json b/keyboards/qwertyydox/rev1/keyboard.json index 0010f9f7e8..24284ff8c0 100644 --- a/keyboards/qwertyydox/rev1/keyboard.json +++ b/keyboards/qwertyydox/rev1/keyboard.json @@ -2,6 +2,7 @@ "keyboard_name": "QWERTYYdox", "manufacturer": "AYDENandDAD Youtube", "identifier": "0x1256", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk new file mode 100644 index 0000000000..688444b566 --- /dev/null +++ b/keyboards/qwertyydox/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = qwertyydox/rev1 diff --git a/keyboards/rabbit/rabbit68/keyboard.json b/keyboards/rabbit/rabbit68/keyboard.json index 016e453199..ce35a7d3c2 100644 --- a/keyboards/rabbit/rabbit68/keyboard.json +++ b/keyboards/rabbit/rabbit68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rabbit68", "manufacturer": "Kai Eckert", + "url": "", "maintainer": "kaiec", "usb": { "vid": "0xFEED", diff --git a/keyboards/rad/keyboard.json b/keyboards/rad/keyboard.json index 848035b785..0d86f25275 100644 --- a/keyboards/rad/keyboard.json +++ b/keyboards/rad/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rainkeebs/delilah/keyboard.json b/keyboards/rainkeebs/delilah/keyboard.json index a0f4bb9124..bd3d142741 100644 --- a/keyboards/rainkeebs/delilah/keyboard.json +++ b/keyboards/rainkeebs/delilah/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json index b14ea45dde..a291d61d3b 100644 --- a/keyboards/rainkeebs/rainkeeb/keyboard.json +++ b/keyboards/rainkeebs/rainkeeb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rainkeeb", "manufacturer": "rainkeebs", + "url": "", "maintainer": "rain", "usb": { "vid": "0x726B", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -32,7 +35,8 @@ {"pin_a": "B2", "pin_b": "B6"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rainkeebs/rainkeeb/keymaps/default/keymap.c b/keyboards/rainkeebs/rainkeeb/keymaps/default/keymap.c index bcc7ea0f88..914d1113b1 100644 --- a/keyboards/rainkeebs/rainkeeb/keymaps/default/keymap.c +++ b/keyboards/rainkeebs/rainkeeb/keymaps/default/keymap.c @@ -62,16 +62,16 @@ bool encoder_update_user(uint8_t index, bool clockwise) { break; case _RAISE: if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } break; case _ADJUST: if (clockwise) { - tap_code(MS_WHLR); + tap_code(KC_MS_WH_RIGHT); } else { - tap_code(MS_WHLL); + tap_code(KC_MS_WH_LEFT); } break; case _GAME: diff --git a/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c index 7c3fcb3ce0..77418f9cd6 100644 --- a/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c +++ b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MS_WHLU, MS_WHLD)}, + [_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, [_LOWER] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_HOME, KC_END)}, - [_RAISE] = {ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(MS_WHLL, MS_WHLR)}, - [_ADJUST] = {ENCODER_CCW_CW(MS_LEFT, MS_RGHT), ENCODER_CCW_CW(MS_UP, MS_DOWN)}, + [_RAISE] = {ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R)}, + [_ADJUST] = {ENCODER_CCW_CW(KC_MS_LEFT, KC_MS_RIGHT), ENCODER_CCW_CW(KC_MS_UP, KC_MS_DOWN)}, }; #endif diff --git a/keyboards/rainkeebs/trailmix/trailmix.c b/keyboards/rainkeebs/trailmix/trailmix.c index 954c72f2c8..105d988dad 100644 --- a/keyboards/rainkeebs/trailmix/trailmix.c +++ b/keyboards/rainkeebs/trailmix/trailmix.c @@ -34,9 +34,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } else if (index == 1) { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } } break; @@ -49,9 +49,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } else if (index == 1) { if (clockwise) { - tap_code(MS_WHLR); + tap_code(KC_WH_R); } else { - tap_code(MS_WHLL); + tap_code(KC_WH_L); } } break; @@ -73,15 +73,15 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { case _ADJUST: if (index == 0) { if (clockwise) { - tap_code(MS_RGHT); + tap_code(KC_MS_RIGHT); } else { - tap_code(MS_LEFT); + tap_code(KC_MS_LEFT); } } else if (index == 1) { if (clockwise) { - tap_code(MS_DOWN); + tap_code(KC_MS_DOWN); } else { - tap_code(MS_UP); + tap_code(KC_MS_UP); } } break; diff --git a/keyboards/rainkeebs/yasui/keyboard.json b/keyboards/rainkeebs/yasui/keyboard.json index 1f5caa636f..43bbc46fae 100644 --- a/keyboards/rainkeebs/yasui/keyboard.json +++ b/keyboards/rainkeebs/yasui/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ramlord/witf/keyboard.json b/keyboards/ramlord/witf/keyboard.json index 5e9f3e8a13..55049a3ffa 100644 --- a/keyboards/ramlord/witf/keyboard.json +++ b/keyboards/ramlord/witf/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -20,6 +22,7 @@ "scroll_lock": "A4" }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x343F", diff --git a/keyboards/rart/rart45/keyboard.json b/keyboards/rart/rart45/keyboard.json index eed7a15dcf..42a5d054d7 100644 --- a/keyboards/rart/rart45/keyboard.json +++ b/keyboards/rart/rart45/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rart45", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json index 13d7ca3345..c38e2103de 100644 --- a/keyboards/rart/rart4x4/keyboard.json +++ b/keyboards/rart/rart4x4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART4X4", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -54,7 +57,8 @@ {"pin_a": "D7", "pin_b": "E6"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x4"], "layouts": { "LAYOUT_ortho_4x4": { diff --git a/keyboards/rart/rart4x4/keymaps/default/keymap.c b/keyboards/rart/rart4x4/keymaps/default/keymap.c index 9f16aff6ed..e57b87a35f 100644 --- a/keyboards/rart/rart4x4/keymaps/default/keymap.c +++ b/keyboards/rart/rart4x4/keymaps/default/keymap.c @@ -43,9 +43,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } return true; diff --git a/keyboards/rart/rart60/keyboard.json b/keyboards/rart/rart60/keyboard.json index 474c3512af..d5cc7bf0b4 100644 --- a/keyboards/rart/rart60/keyboard.json +++ b/keyboards/rart/rart60/keyboard.json @@ -23,6 +23,7 @@ "rows": ["GP23", "GP25", "GP15", "GP16", "GP17"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/rart/rart67/keyboard.json b/keyboards/rart/rart67/keyboard.json index a58955a778..6651561743 100644 --- a/keyboards/rart/rart67/keyboard.json +++ b/keyboards/rart/rart67/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART67", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -31,6 +32,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json index a9ab73ce57..0d6cfdeed1 100644 --- a/keyboards/rart/rart67m/keyboard.json +++ b/keyboards/rart/rart67m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART67M", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -26,7 +29,8 @@ "rows": ["D3", "D2", "D4", "F6", "B3", "B4", "B2", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_all": "LAYOUT" }, diff --git a/keyboards/rart/rart75/keyboard.json b/keyboards/rart/rart75/keyboard.json index 61ffa222ef..beb8a7cc39 100644 --- a/keyboards/rart/rart75/keyboard.json +++ b/keyboards/rart/rart75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART75", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/rart/rart75hs/keyboard.json b/keyboards/rart/rart75hs/keyboard.json index 9371daacf2..f8763bfbee 100644 --- a/keyboards/rart/rart75hs/keyboard.json +++ b/keyboards/rart/rart75hs/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART75 Hotswap", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart75m/keyboard.json b/keyboards/rart/rart75m/keyboard.json index d380adf10a..925e8dff5e 100644 --- a/keyboards/rart/rart75m/keyboard.json +++ b/keyboards/rart/rart75m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART75M", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rart/rart80/keyboard.json b/keyboards/rart/rart80/keyboard.json index a2d4a7f3eb..06fbd1add6 100644 --- a/keyboards/rart/rart80/keyboard.json +++ b/keyboards/rart/rart80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RART80 Hotswap", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartand/keyboard.json b/keyboards/rart/rartand/keyboard.json index f6728274ed..330beca3e1 100644 --- a/keyboards/rart/rartand/keyboard.json +++ b/keyboards/rart/rartand/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rartand", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rart/rartlice/keyboard.json b/keyboards/rart/rartlice/keyboard.json index f568fbba47..c55919e6a6 100644 --- a/keyboards/rart/rartlice/keyboard.json +++ b/keyboards/rart/rartlice/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rartlice", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json index 48325bf391..f542654db7 100644 --- a/keyboards/rart/rartlite/keyboard.json +++ b/keyboards/rart/rartlite/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RARTLITE", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,7 +32,8 @@ "num_lock": "F6", "on_state": 0 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_right_numpad": { "layout": [ diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json index 70195fc4bf..ac9b2a38f1 100644 --- a/keyboards/rart/rartpad/keyboard.json +++ b/keyboards/rart/rartpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RARTPAD", "manufacturer": "Alabahuy", + "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -57,7 +60,8 @@ "twinkle": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x4", "numpad_5x4"], "layouts": { "LAYOUT_ortho_5x4": { diff --git a/keyboards/rart/rartpad/keymaps/default/keymap.c b/keyboards/rart/rartpad/keymaps/default/keymap.c index 8b177bba5c..342b280c57 100644 --- a/keyboards/rart/rartpad/keymaps/default/keymap.c +++ b/keyboards/rart/rartpad/keymaps/default/keymap.c @@ -45,9 +45,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } return true; diff --git a/keyboards/rastersoft/minitkl/keyboard.json b/keyboards/rastersoft/minitkl/keyboard.json index 6b0869bc63..e8d0691959 100644 --- a/keyboards/rastersoft/minitkl/keyboard.json +++ b/keyboards/rastersoft/minitkl/keyboard.json @@ -24,6 +24,7 @@ "rgblight": { "led_count": 3, "pin": "B2", + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { diff --git a/keyboards/rate/pistachio/info.json b/keyboards/rate/pistachio/info.json index 0e65b68f98..0eaea7885d 100644 --- a/keyboards/rate/pistachio/info.json +++ b/keyboards/rate/pistachio/info.json @@ -1,16 +1,13 @@ { "keyboard_name": "pistachio", "manufacturer": "rate", + "url": "", "maintainer": "rate", "usb": { "vid": "0x5255", "pid": "0xD0C2", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/rate/pistachio/keymaps/default/keymap.c b/keyboards/rate/pistachio/keymaps/default/keymap.c index 3d7d8fb636..a8cd297ce8 100644 --- a/keyboards/rate/pistachio/keymaps/default/keymap.c +++ b/keyboards/rate/pistachio/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MPLY, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_HOME, KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_END, KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_PGUP, - KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, JP_MHEN, LT(_FN,KC_SPC), LT(_FN,KC_SPC), JP_HENK, MS_BTN1, KC_INS, KC_RALT, KC_APP, KC_RCTL, KC_PGDN + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, JP_MHEN, LT(_FN,KC_SPC), LT(_FN,KC_SPC), JP_HENK, KC_BTN1, KC_INS, KC_RALT, KC_APP, KC_RCTL, KC_PGDN ), [_FN] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/rate/pistachio/rules.mk b/keyboards/rate/pistachio/rules.mk new file mode 100644 index 0000000000..a5f4485316 --- /dev/null +++ b/keyboards/rate/pistachio/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rate/pistachio/rev2 diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json index 299dc5c3a8..dadb936942 100644 --- a/keyboards/rate/pistachio_mp/keyboard.json +++ b/keyboards/rate/pistachio_mp/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "pistachio_mp", "manufacturer": "rate", + "url": "", "maintainer": "rate", "usb": { "vid": "0x5255", "pid": "0xE212", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "hue_steps": 10, @@ -21,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -43,7 +42,8 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rationalist/ratio60_hotswap/rev_a/keyboard.json b/keyboards/rationalist/ratio60_hotswap/rev_a/keyboard.json index 1fd52f032b..5d3763d52d 100644 --- a/keyboards/rationalist/ratio60_hotswap/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio60_hotswap/rev_a/keyboard.json @@ -45,16 +45,7 @@ "ws2812": { "pin": "A8" }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_hhkb" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_tsangan_hhkb"], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -316,7 +307,7 @@ {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json index 608a7e8705..fe40f12f46 100644 --- a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ratio65 Hotswap Rev A", "manufacturer": "4pplet", + "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4446", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json index 59efe9c38f..6953636dee 100644 --- a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ratio65 Solder Rev A", "manufacturer": "4pplet", + "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4446", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/recompile_keys/choco60/rev1/keyboard.json b/keyboards/recompile_keys/choco60/rev1/keyboard.json index 6c0b363011..4e5a8903bd 100644 --- a/keyboards/recompile_keys/choco60/rev1/keyboard.json +++ b/keyboards/recompile_keys/choco60/rev1/keyboard.json @@ -19,5 +19,6 @@ "pin": "D3" } }, - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/recompile_keys/choco60/rules.mk b/keyboards/recompile_keys/choco60/rules.mk new file mode 100644 index 0000000000..6abfd34d47 --- /dev/null +++ b/keyboards/recompile_keys/choco60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = recompile_keys/choco60/rev1 diff --git a/keyboards/recompile_keys/cocoa40/keyboard.json b/keyboards/recompile_keys/cocoa40/keyboard.json index a576e54551..45f0cba2ff 100644 --- a/keyboards/recompile_keys/cocoa40/keyboard.json +++ b/keyboards/recompile_keys/cocoa40/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false @@ -28,7 +30,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/recompile_keys/mio/keyboard.json b/keyboards/recompile_keys/mio/keyboard.json index a2c34be5bc..700bb09c07 100644 --- a/keyboards/recompile_keys/mio/keyboard.json +++ b/keyboards/recompile_keys/mio/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/recompile_keys/nomu30/keymaps/center_sprit/keymap.c b/keyboards/recompile_keys/nomu30/keymaps/center_sprit/keymap.c index 98167fa2d3..832a682c42 100644 --- a/keyboards/recompile_keys/nomu30/keymaps/center_sprit/keymap.c +++ b/keyboards/recompile_keys/nomu30/keymaps/center_sprit/keymap.c @@ -93,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-------------------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, XXXXXXX, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, _______, MS_BTN1, MS_BTN2, XXXXXXX + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX //`---------+---------+---------+---------+---------+---------+---------+---------+---------' ) }; @@ -129,7 +129,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; #ifdef RGBLIGHT_ENABLE //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/recompile_keys/nomu30/keymaps/center_sprit/readme.md b/keyboards/recompile_keys/nomu30/keymaps/center_sprit/readme.md index bc468beb37..34a3ec1fbe 100644 --- a/keyboards/recompile_keys/nomu30/keymaps/center_sprit/readme.md +++ b/keyboards/recompile_keys/nomu30/keymaps/center_sprit/readme.md @@ -59,9 +59,9 @@ At first, Move to Lower layer with long push. After that Adjust key with long pu //,-------------------------------------------------------------------------------------------------------------. QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, XXXXXXX, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, _______, MS_BTN1, MS_BTN2, XXXXXXX + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX //`---------+---------+---------+---------+---------+---------+---------+---------+---------' ) diff --git a/keyboards/recompile_keys/nomu30/rev1/keyboard.json b/keyboards/recompile_keys/nomu30/rev1/keyboard.json index 8865eb0535..01afb9fe7d 100644 --- a/keyboards/recompile_keys/nomu30/rev1/keyboard.json +++ b/keyboards/recompile_keys/nomu30/rev1/keyboard.json @@ -10,5 +10,6 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/recompile_keys/nomu30/rules.mk b/keyboards/recompile_keys/nomu30/rules.mk new file mode 100644 index 0000000000..431b619249 --- /dev/null +++ b/keyboards/recompile_keys/nomu30/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = recompile_keys/nomu30/rev1 diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json index 7e0202cde7..d331e48bd9 100644 --- a/keyboards/rect44/keyboard.json +++ b/keyboards/rect44/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rect44", "manufacturer": "koshinoya", + "url": "", "maintainer": "koshinoya", "usb": { "vid": "0xFEED", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -37,7 +40,8 @@ "rows": ["D3", "D2", "F5", "F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/redox/keymaps/default/keymap.c b/keyboards/redox/keymaps/default/keymap.c index 2636144025..d69a5d5cdd 100644 --- a/keyboards/redox/keymaps/default/keymap.c +++ b/keyboards/redox/keymaps/default/keymap.c @@ -70,13 +70,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - XXXXXXX ,XXXXXXX ,MS_UP ,XXXXXXX ,MS_WHLU ,XXXXXXX ,_______ , _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + XXXXXXX ,XXXXXXX ,KC_MS_U ,XXXXXXX ,KC_WH_U ,XXXXXXX ,_______ , _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - XXXXXXX ,MS_LEFT ,MS_DOWN ,MS_RGHT ,MS_WHLD ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX , + XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ - XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , MS_BTN1 , MS_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ), diff --git a/keyboards/redox/rev1/info.json b/keyboards/redox/rev1/info.json index c205548e21..ee9786d838 100644 --- a/keyboards/redox/rev1/info.json +++ b/keyboards/redox/rev1/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Redox", "manufacturer": "Falbatech", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D44", @@ -10,6 +11,7 @@ "features":{ "bootmagic": true, "command": true, + "console": false, "mousekey": true, "extrakey": true, "nkro": true, diff --git a/keyboards/redox/rev1/proton_c/config.h b/keyboards/redox/rev1/proton_c/config.h index b151d2b29e..4d28bd2f4a 100644 --- a/keyboards/redox/rev1/proton_c/config.h +++ b/keyboards/redox/rev1/proton_c/config.h @@ -13,6 +13,13 @@ #define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. // Check if this feature is necessary with your keyboard design and available on the mcu. +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: 460800 baud + // 1: 230400 baud (default) + // 2: 115200 baud + // 3: 57600 baud + // 4: 38400 baud + // 5: 19200 baud #define SERIAL_USART_DRIVER SD1 // USART driver of TX and RX pin. default: SD1 #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 diff --git a/keyboards/redox/rev1/rules.mk b/keyboards/redox/rev1/rules.mk new file mode 100644 index 0000000000..c971da1680 --- /dev/null +++ b/keyboards/redox/rev1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = redox/rev1/base diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk index 4df55cd220..a2f52752e0 100644 --- a/keyboards/redox/rules.mk +++ b/keyboards/redox/rules.mk @@ -1,3 +1,5 @@ +DEFAULT_FOLDER = redox/rev1/base + # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no diff --git a/keyboards/redox/wireless/keyboard.json b/keyboards/redox/wireless/keyboard.json index 7f167240b6..86977f4602 100644 --- a/keyboards/redox/wireless/keyboard.json +++ b/keyboards/redox/wireless/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Redox Wireless", "manufacturer": "Mattia Dal Ben", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D44", diff --git a/keyboards/redox_media/keyboard.json b/keyboards/redox_media/keyboard.json index 145d9116ca..83057da79f 100644 --- a/keyboards/redox_media/keyboard.json +++ b/keyboards/redox_media/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Redox Media", "manufacturer": "shiftux", + "url": "", "maintainer": "shiftux", "usb": { "vid": "0xFEED", @@ -36,7 +37,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/redox_media/redox_media.c b/keyboards/redox_media/redox_media.c index ffc2f11a6c..e3a83c6c2d 100644 --- a/keyboards/redox_media/redox_media.c +++ b/keyboards/redox_media/redox_media.c @@ -29,9 +29,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } } return true; diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c index 8d1a07592c..d4c2eb964a 100644 --- a/keyboards/redragon/k667/keymaps/default/keymap.c +++ b/keyboards/redragon/k667/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layer_names #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FnLay] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [_FnLay] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, }; #endif @@ -40,10 +40,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FnLay] = LAYOUT( QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_NEXT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, XXXXXXX, _______, XXXXXXX, RM_SPDD, RM_VALD, RM_SPDU + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI ) }; diff --git a/keyboards/redscarf_i/keyboard.json b/keyboards/redscarf_i/keyboard.json index 20ee5ce3bd..6a186dff0b 100644 --- a/keyboards/redscarf_i/keyboard.json +++ b/keyboards/redscarf_i/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Red Scarf I", "manufacturer": "Red Scarf", + "url": "", "maintainer": "qmk, defying", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/redscarf_iiplus/verb/keyboard.json b/keyboards/redscarf_iiplus/verb/keyboard.json index 2bb3910fb5..99d763e39a 100644 --- a/keyboards/redscarf_iiplus/verb/keyboard.json +++ b/keyboards/redscarf_iiplus/verb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RedScarfII+ Ver.B (RS78)", "manufacturer": "RedScarf", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_iiplus/verc/keyboard.json b/keyboards/redscarf_iiplus/verc/keyboard.json index c9b960e7ba..a6defe4851 100644 --- a/keyboards/redscarf_iiplus/verc/keyboard.json +++ b/keyboards/redscarf_iiplus/verc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RedScarfII+ Ver.C (RS68)", "manufacturer": "RedScarf", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_iiplus/verd/keyboard.json b/keyboards/redscarf_iiplus/verd/keyboard.json index fbb0b14402..d0ba57553a 100644 --- a/keyboards/redscarf_iiplus/verd/keyboard.json +++ b/keyboards/redscarf_iiplus/verd/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RedScarfII+ Ver.D", "manufacturer": "RedScarf", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/reedskeebs/alish40/keyboard.json b/keyboards/reedskeebs/alish40/keyboard.json index 564d4eeeda..1a4b9f4afe 100644 --- a/keyboards/reedskeebs/alish40/keyboard.json +++ b/keyboards/reedskeebs/alish40/keyboard.json @@ -34,8 +34,10 @@ "static_gradient": true, "twinkle": true }, + "brightness_steps": 17, "hue_steps": 10, - "led_count": 10 + "led_count": 10, + "saturation_steps": 17 }, "ws2812": { "pin": "F5" diff --git a/keyboards/relapsekb/or87/keyboard.json b/keyboards/relapsekb/or87/keyboard.json index 67ff9cd19b..0ac5022aca 100644 --- a/keyboards/relapsekb/or87/keyboard.json +++ b/keyboards/relapsekb/or87/keyboard.json @@ -15,6 +15,7 @@ "cols": ["F7", "C7", "C6", "B6", "B5", "B4", "D7", "D0", "B7"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "vid": "0x722D", diff --git a/keyboards/retro_75/keyboard.json b/keyboards/retro_75/keyboard.json index 29b26ab5c1..e077be2ee9 100644 --- a/keyboards/retro_75/keyboard.json +++ b/keyboards/retro_75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Retro75", "manufacturer": "PheonixStarr", + "url": "", "maintainer": "zvecr", "usb": { "vid": "0xFEED", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/reversestudio/decadepad/keyboard.json b/keyboards/reversestudio/decadepad/keyboard.json index 9958c63250..601122aa37 100644 --- a/keyboards/reversestudio/decadepad/keyboard.json +++ b/keyboards/reversestudio/decadepad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "DecadePad", "manufacturer": "ReverseStudio", + "url": "", "maintainer": "huajijam", "usb": { "vid": "0x5253", @@ -29,6 +30,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/reviung/reviung33/keyboard.json b/keyboards/reviung/reviung33/keyboard.json index b258f26cab..0b5ceb4e54 100644 --- a/keyboards/reviung/reviung33/keyboard.json +++ b/keyboards/reviung/reviung33/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung33", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/reviung/reviung34/keyboard.json b/keyboards/reviung/reviung34/keyboard.json index d7e6fe422a..8b354c00df 100755 --- a/keyboards/reviung/reviung34/keyboard.json +++ b/keyboards/reviung/reviung34/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung34", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0x6774", @@ -26,7 +27,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": [ "split_3x5_2" ], diff --git a/keyboards/reviung/reviung39/keyboard.json b/keyboards/reviung/reviung39/keyboard.json index b57100d1eb..04cbe909c3 100644 --- a/keyboards/reviung/reviung39/keyboard.json +++ b/keyboards/reviung/reviung39/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung39", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", @@ -49,7 +50,8 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_reviung39": "LAYOUT" }, diff --git a/keyboards/reviung/reviung41/keyboard.json b/keyboards/reviung/reviung41/keyboard.json index f0ad524da2..8e72ff5762 100644 --- a/keyboards/reviung/reviung41/keyboard.json +++ b/keyboards/reviung/reviung41/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung41", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0x7807", @@ -49,7 +50,8 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_reviung41": "LAYOUT" }, diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json deleted file mode 100644 index b44aa0dce4..0000000000 --- a/keyboards/reviung/reviung46/keyboard.json +++ /dev/null @@ -1,461 +0,0 @@ -{ - "keyboard_name": "reviung46", - "manufacturer": "gtips", - "url": "https://github.com/gtips/reviung/tree/master/reviung46/", - "maintainer": "gtips", - "usb": { - "vid": "0x4E95", - "pid": "0x4E19", - "device_version": "0.0.1" - }, - "rgblight": { - "hue_steps": 16, - "saturation_steps": 16, - "brightness_steps": 16, - "led_count": 10, - "sleep": true, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "D3" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "matrix_pins": { - "cols": ["B5", "C6", "D4", "D0", "D1", "D2"], - "rows": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"] - }, - "diode_direction": "COL2ROW", - "development_board": "promicro", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 4], "x": 12.75, "y": 1}, - {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 4], "x": 12.25, "y": 2}, - {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, - {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_225u_enter": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 4], "x": 12.25, "y": 2}, - {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, - {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_275u_r_shift": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 4], "x": 12.75, "y": 1}, - {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, - {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_625u_space": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 4], "x": 12.75, "y": 1}, - {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 4], "x": 12.25, "y": 2}, - {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_225u_enter_275u_r_shift": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, - {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_225u_enter_625u_space": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 4], "x": 12.25, "y": 2}, - {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_275u_r_shift_625u_space": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 4], "x": 12.75, "y": 1}, - {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - }, - "LAYOUT_225u_enter_275u_r_shift_625u_space": { - "layout": [ - {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [4, 0], "x": 8.5, "y": 0}, - {"matrix": [4, 1], "x": 9.5, "y": 0}, - {"matrix": [4, 2], "x": 10.5, "y": 0}, - {"matrix": [4, 3], "x": 11.5, "y": 0}, - {"matrix": [4, 4], "x": 12.5, "y": 0}, - {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 3.75, "y": 1}, - {"matrix": [1, 2], "x": 4.75, "y": 1}, - {"matrix": [1, 3], "x": 5.75, "y": 1}, - {"matrix": [1, 4], "x": 6.75, "y": 1}, - {"matrix": [1, 5], "x": 7.75, "y": 1}, - {"matrix": [5, 0], "x": 8.75, "y": 1}, - {"matrix": [5, 1], "x": 9.75, "y": 1}, - {"matrix": [5, 2], "x": 10.75, "y": 1}, - {"matrix": [5, 3], "x": 11.75, "y": 1}, - {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, - - {"matrix": [2, 0], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, - {"matrix": [2, 2], "x": 4.25, "y": 2}, - {"matrix": [2, 3], "x": 5.25, "y": 2}, - {"matrix": [2, 4], "x": 6.25, "y": 2}, - {"matrix": [2, 5], "x": 7.25, "y": 2}, - {"matrix": [6, 0], "x": 8.25, "y": 2}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [6, 2], "x": 10.25, "y": 2}, - {"matrix": [6, 3], "x": 11.25, "y": 2}, - {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.25}, - {"matrix": [3, 1], "x": 1, "y": 3.25}, - {"matrix": [3, 2], "x": 2, "y": 3.25}, - {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, - {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, - {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, - {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/reviung/reviung46/keymaps/default/keymap.c b/keyboards/reviung/reviung46/keymaps/default/keymap.c deleted file mode 100644 index 60f1d32a70..0000000000 --- a/keyboards/reviung/reviung46/keymaps/default/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2024 gtips (@gtips) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _LOWER, - _RAISE, - _ADJUST, -}; - -#define SF_SS RSFT_T(KC_SLSH) -#define SP_LO LT(_LOWER, KC_SPC) -#define SP_RA LT(_RAISE, KC_SPC) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, - KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL - ), - [_LOWER] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, - _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_RAISE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_PGUP, KC_PGDN, XXXXXXX, KC_DQUO, - _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT( - UG_VALU, UG_SATU, UG_HUEU, UG_NEXT, XXXXXXX, UG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - UG_VALD, UG_SATD, UG_HUED, UG_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_MUTE, KC_VOLD, KC_MPLY, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX - ), -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} diff --git a/keyboards/reviung/reviung46/readme.md b/keyboards/reviung/reviung46/readme.md deleted file mode 100644 index 0914155d14..0000000000 --- a/keyboards/reviung/reviung46/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# reviung46 - -![reviung46](https://i.imgur.com/hAanqOQ.jpeg) - -The REVIUNG46 is 42-46 key keyboard. - -* Keyboard Maintainer: [gtips](https://github.com/gtips) -* Hardware Supported: REVIUNG46 PCB. -* Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung46) - -Make example for this keyboard (after setting up your build environment): - - make reviung46:default - -Flashing example for this keyboard: - - make reviung46:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json index 014cbb288a..5c932020a2 100644 --- a/keyboards/reviung/reviung5/keyboard.json +++ b/keyboards/reviung/reviung5/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung5", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0x5C06", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -53,7 +56,8 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_reviung5": "LAYOUT" }, diff --git a/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c b/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c index e53eccf645..4a73d57a6a 100644 --- a/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c +++ b/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (IS_LAYER_ON(_LOWER)) { - tap_code16((clockwise == true) ? MS_WHLD : MS_WHLU); + tap_code16((clockwise == true) ? KC_WH_D : KC_WH_U); } else { tap_code((clockwise == true) ? KC_VOLD : KC_VOLU); } diff --git a/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c b/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c index 4d7f666952..ec684c6a2f 100644 --- a/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c +++ b/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (IS_LAYER_ON(_LOWER)) { - tap_code16((clockwise == true) ? MS_WHLD : MS_WHLU); + tap_code16((clockwise == true) ? KC_WH_D : KC_WH_U); } else { tap_code((clockwise == true) ? KC_VOLD : KC_VOLU); } diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json index 0468912f82..33eec7d828 100644 --- a/keyboards/reviung/reviung53/keyboard.json +++ b/keyboards/reviung/reviung53/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung53", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0x4E94", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -47,7 +50,8 @@ "rows": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_reviung53": "LAYOUT" }, diff --git a/keyboards/reviung/reviung61/keyboard.json b/keyboards/reviung/reviung61/keyboard.json index 09497b203e..99a297bde4 100644 --- a/keyboards/reviung/reviung61/keyboard.json +++ b/keyboards/reviung/reviung61/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "reviung61", "manufacturer": "gtips", + "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/mun/keymaps/default/keymap.c b/keyboards/rgbkb/mun/keymaps/default/keymap.c index a309aef809..100e5f745e 100644 --- a/keyboards/rgbkb/mun/keymaps/default/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/default/keymap.c @@ -75,9 +75,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, FN_CAPS, 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_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, - KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RM_HUEU, RM_HUED, RM_PREV, RM_TOGG, RM_NEXT + KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD ), [_COLEMAK] = LAYOUT( @@ -112,10 +112,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, - _______, RM_PREV, _______, RM_NEXT, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, + _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk new file mode 100644 index 0000000000..317c4d5a87 --- /dev/null +++ b/keyboards/rgbkb/mun/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rgbkb/mun/rev1 diff --git a/keyboards/rgbkb/pan/config.h b/keyboards/rgbkb/pan/config.h index be719c1437..abb9620a5d 100644 --- a/keyboards/rgbkb/pan/config.h +++ b/keyboards/rgbkb/pan/config.h @@ -17,4 +17,3 @@ along with this program. If not, see . #pragma once #define RGB_MATRIX_LED_COUNT 64 -#define WS2812_LED_COUNT 64 diff --git a/keyboards/rgbkb/pan/info.json b/keyboards/rgbkb/pan/info.json index ad56ba5e4b..0abdc7a6ec 100644 --- a/keyboards/rgbkb/pan/info.json +++ b/keyboards/rgbkb/pan/info.json @@ -8,9 +8,6 @@ "pid": "0x8C9C", "device_version": "0.0.2" }, - "build": { - "lto": true - }, "features": { "bootmagic": true, "encoder": true, diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c index 3647ae2ad6..887056723e 100644 --- a/keyboards/rgbkb/pan/keymaps/default/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), [_COLEMAK] = LAYOUT_all( @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), [_FN] = LAYOUT_all( @@ -54,15 +54,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ ), [_ADJ] = LAYOUT_all( 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_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, + _______, _______, _______, RGB_MOD, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK ) }; diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c index 2de45d88e6..57b0dafd6a 100644 --- a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_COLEMAK] = LAYOUT_eee( @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_FN] = LAYOUT_eee( @@ -54,15 +54,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ ), [_ADJ] = LAYOUT_eee( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + _______, _______, _______, RGB_MOD, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK ) }; diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c index b0b8bd1898..a872175c75 100644 --- a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJ] = LAYOUT_sss( 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_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, QWERTY, _______, COLEMAK ) }; diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 20cc4dd248..401831e0e2 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -21,23 +21,43 @@ # if defined(KEYBOARD_rgbkb_pan_rev1) # include "ws2812.h" +// LED color buffer +rgb_led_t rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; + +static void flush(void) { + ws2812_setleds(rgb_matrix_ws2812_array, RGB_MATRIX_LED_COUNT); +} + // Set an led in the buffer to a color static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { # if defined(RGB_ENCODERS) || defined(STAGGERED_RGB_ENCODERS) if (i == 0 || i == 1) { // if encoder LEDs, change LEDs - ws2812_set_color(i, g, b, r); + rgb_matrix_ws2812_array[i].r = g; + rgb_matrix_ws2812_array[i].g = b; + rgb_matrix_ws2812_array[i].b = r; } else # endif { - ws2812_set_color(i, r, g, b); + rgb_matrix_ws2812_array[i].r = r; + rgb_matrix_ws2812_array[i].g = g; + rgb_matrix_ws2812_array[i].b = b; + } +# ifdef WS2812_RGBW + convert_rgb_to_rgbw(&rgb_matrix_ws2812_array[i]); +# endif +} + +static void setled_all(uint8_t r, uint8_t g, uint8_t b) { + for (int i = 0; i < ARRAY_SIZE(rgb_matrix_ws2812_array); i++) { + setled(i, r, g, b); } } const rgb_matrix_driver_t rgb_matrix_driver = { .init = ws2812_init, - .flush = ws2812_flush, + .flush = flush, .set_color = setled, - .set_color_all = ws2812_set_color_all, + .set_color_all = setled_all, }; # endif diff --git a/keyboards/rgbkb/pan/rev1/32a/rules.mk b/keyboards/rgbkb/pan/rev1/32a/rules.mk index f54ef3e987..c2ee0bc86f 100644 --- a/keyboards/rgbkb/pan/rev1/32a/rules.mk +++ b/keyboards/rgbkb/pan/rev1/32a/rules.mk @@ -1,4 +1,2 @@ # Processor frequency F_CPU = 16000000 - -WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/rgbkb/pan/rev1/proton_c/rules.mk b/keyboards/rgbkb/pan/rev1/proton_c/rules.mk deleted file mode 100644 index 9a69649289..0000000000 --- a/keyboards/rgbkb/pan/rev1/proton_c/rules.mk +++ /dev/null @@ -1 +0,0 @@ -WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/rgbkb/pan/rev1/rules.mk b/keyboards/rgbkb/pan/rev1/rules.mk new file mode 100644 index 0000000000..4d3c0f6679 --- /dev/null +++ b/keyboards/rgbkb/pan/rev1/rules.mk @@ -0,0 +1,2 @@ +# The default configuration is a atmega32a +DEFAULT_FOLDER = rgbkb/pan/rev1/32a diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rules.mk new file mode 100644 index 0000000000..b6f1d46a65 --- /dev/null +++ b/keyboards/rgbkb/pan/rules.mk @@ -0,0 +1,3 @@ +WS2812_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = rgbkb/pan/rev1 diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index 54dab63736..8997e9a582 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, FN_CAPS, 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_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_SPC, KC_DEL, KC_ENT, KC_SPC ), @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LPRN, KC_RPRN, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_SPC, KC_DEL, KC_ENT, KC_SPC ), @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_SCRL, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_NUM, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, + _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______ ), @@ -121,10 +121,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJ] = 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, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, RGBRST, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, _______, _______, _______, _______ ) }; @@ -273,7 +273,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; #if defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_rgbkb_sol_rev2) - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { rgb_matrix_increase_flags(); } diff --git a/keyboards/rgbkb/sol/rev1/keyboard.json b/keyboards/rgbkb/sol/rev1/keyboard.json index 9a4c538e55..38932a78e1 100644 --- a/keyboards/rgbkb/sol/rev1/keyboard.json +++ b/keyboards/rgbkb/sol/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sol", "manufacturer": "RGBKB", + "url": "", "maintainer": "Legonut", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/sol/rev2/keyboard.json b/keyboards/rgbkb/sol/rev2/keyboard.json index 140ea1cd69..b6bad358e3 100644 --- a/keyboards/rgbkb/sol/rev2/keyboard.json +++ b/keyboards/rgbkb/sol/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sol", "manufacturer": "RGBKB", + "url": "", "maintainer": "Legonut", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/sol/rules.mk b/keyboards/rgbkb/sol/rules.mk new file mode 100644 index 0000000000..f8325017f9 --- /dev/null +++ b/keyboards/rgbkb/sol/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rgbkb/sol/rev2 diff --git a/keyboards/rgbkb/sol3/keymaps/default/keymap.c b/keyboards/rgbkb/sol3/keymaps/default/keymap.c index 8c14c214e3..862cc03ef4 100644 --- a/keyboards/rgbkb/sol3/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol3/keymaps/default/keymap.c @@ -51,6 +51,7 @@ enum sol_keycodes { #define GAME DF(_GAME) #define QWERTY DF(_QWERTY) #define FN_CAPS LT(_FN, KC_CAPS) +//#define RGB_ADJ LT(_ADJUST, RGB_TOG) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -59,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, FN_CAPS, 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_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, + KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV ), @@ -96,10 +97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, RGB_RST, _______, DM_REC1, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, - _______, RM_PREV, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, + _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RGB_HUD, RGB_VAD, RGB_HUI, RGB_RST, _______, DM_REC1, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, + _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index dc9e6d4035..a81ea7bc21 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sol 3", "manufacturer": "RGBKB", + "url": "", "maintainer": "XScorpion2, rgbkb", "usb": { "vid": "0x3535", @@ -152,8 +153,6 @@ "pin": "A9" }, "transport": { - "watchdog": true, - "watchdog_timeout": 20000, "sync": { "indicators": true, "layer_state": true, diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index 086ce0af01..7d264eb17f 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -27,7 +27,7 @@ const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPT static bool limit_lightning = true; -RGB rgb_matrix_hsv_to_rgb(hsv_t hsv) { +RGB rgb_matrix_hsv_to_rgb(HSV hsv) { if (limit_lightning) hsv.v /= 2; return hsv_to_rgb(hsv); } @@ -248,7 +248,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch(keycode) { #ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { rgb_matrix_increase_flags(); } diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk new file mode 100644 index 0000000000..74804682a2 --- /dev/null +++ b/keyboards/rgbkb/sol3/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rgbkb/sol3/rev1 diff --git a/keyboards/rgbkb/zen/rev1/keyboard.json b/keyboards/rgbkb/zen/rev1/keyboard.json index 94164016bb..91d127de58 100644 --- a/keyboards/rgbkb/zen/rev1/keyboard.json +++ b/keyboards/rgbkb/zen/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Project Zen", "manufacturer": "Legonut", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -38,7 +39,8 @@ "ws2812": { "pin": "D1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rgbkb/zen/rev2/keyboard.json b/keyboards/rgbkb/zen/rev2/keyboard.json index d34fd7afb1..b59af6dfdd 100644 --- a/keyboards/rgbkb/zen/rev2/keyboard.json +++ b/keyboards/rgbkb/zen/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Project Zen", "manufacturer": "Legonut", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -56,7 +57,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rgbkb/zen/rules.mk b/keyboards/rgbkb/zen/rules.mk new file mode 100644 index 0000000000..ee94832d4d --- /dev/null +++ b/keyboards/rgbkb/zen/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rgbkb/zen/rev2 diff --git a/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c index 24e578c026..a7026b0d77 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c @@ -25,7 +25,9 @@ enum layer_number { }; enum custom_keycodes { - FN = SAFE_RANGE, + QWERTY = SAFE_RANGE, + MACROPAD, + FN, ADJ, BACKLIT, RGBRST @@ -35,8 +37,7 @@ enum macro_keycodes { KC_SAMPLEMACRO, }; -#define QWERT PDF(_QWERTY) -#define MACROPAD PDF(_MACROPAD) + #define FN_ESC LT(_FN, KC_ESC) #define FN_CAPS LT(_FN, KC_CAPS) @@ -108,6 +109,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case MACROPAD: + if(record->event.pressed) { + set_single_persistent_default_layer(_MACROPAD); + } + return false; + break; case FN: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c index 12e21e65db..f8af28ffc8 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c @@ -17,16 +17,15 @@ enum layer_number { }; enum custom_keycodes { - FN = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + FN, ADJ, RGBRST }; #define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* / QWERTY \ * /-----------------------------------------\ /-----------------------------------------\ @@ -132,6 +131,16 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if(record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case FN: if (record->event.pressed) { layer_on(_FN); diff --git a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c index b5db1c37d3..4f2f6c9a48 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c @@ -17,16 +17,15 @@ enum layer_number { }; enum custom_keycodes { - FN = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + FN, ADJ, RGBRST }; #define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* / QWERTY \ * /-----------------------------------------\ /-----------------------------------------\ @@ -132,6 +131,16 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if(record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case FN: if (record->event.pressed) { layer_on(_FN); diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk new file mode 100644 index 0000000000..8544e8767d --- /dev/null +++ b/keyboards/rgbkb/zygomorph/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rgbkb/zygomorph/rev1 diff --git a/keyboards/rico/phoenix_project_no1/keyboard.json b/keyboards/rico/phoenix_project_no1/keyboard.json index ab2b207212..4d354ce0af 100644 --- a/keyboards/rico/phoenix_project_no1/keyboard.json +++ b/keyboards/rico/phoenix_project_no1/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rmi_kb/aelith/keyboard.json b/keyboards/rmi_kb/aelith/keyboard.json index b3f688913e..de16e5ac31 100644 --- a/keyboards/rmi_kb/aelith/keyboard.json +++ b/keyboards/rmi_kb/aelith/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "AELITH", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/chevron/keyboard.json b/keyboards/rmi_kb/chevron/keyboard.json index 8ae5c12ae1..8eda552902 100644 --- a/keyboards/rmi_kb/chevron/keyboard.json +++ b/keyboards/rmi_kb/chevron/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chevron", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/equator/keyboard.json b/keyboards/rmi_kb/equator/keyboard.json index 18054abc35..9e1ccab0fb 100644 --- a/keyboards/rmi_kb/equator/keyboard.json +++ b/keyboards/rmi_kb/equator/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -16,6 +18,7 @@ "rows": ["B12", "B10", "A15", "A10", "B1"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xE0A1", diff --git a/keyboards/rmi_kb/herringbone/pro/keyboard.json b/keyboards/rmi_kb/herringbone/pro/keyboard.json index a49983db07..5303185692 100644 --- a/keyboards/rmi_kb/herringbone/pro/keyboard.json +++ b/keyboards/rmi_kb/herringbone/pro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Herringbone Pro", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/herringbone/rules.mk b/keyboards/rmi_kb/herringbone/rules.mk new file mode 100644 index 0000000000..1efe9fa4f5 --- /dev/null +++ b/keyboards/rmi_kb/herringbone/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rmi_kb/herringbone/v1 diff --git a/keyboards/rmi_kb/herringbone/v1/keyboard.json b/keyboards/rmi_kb/herringbone/v1/keyboard.json index 0f624dbc99..2883f341ab 100644 --- a/keyboards/rmi_kb/herringbone/v1/keyboard.json +++ b/keyboards/rmi_kb/herringbone/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Herringbone", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/mona/rules.mk b/keyboards/rmi_kb/mona/rules.mk new file mode 100644 index 0000000000..54aa705d96 --- /dev/null +++ b/keyboards/rmi_kb/mona/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rmi_kb/mona/v1_1 diff --git a/keyboards/rmi_kb/mona/v1/keyboard.json b/keyboards/rmi_kb/mona/v1/keyboard.json index f56986df1a..7bd5f56e14 100644 --- a/keyboards/rmi_kb/mona/v1/keyboard.json +++ b/keyboards/rmi_kb/mona/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -27,8 +28,7 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_iso_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_iso_split_bs_rshift" }, "layouts": { "LAYOUT_60_ansi": { @@ -100,7 +100,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/rmi_kb/mona/v1_1/keyboard.json b/keyboards/rmi_kb/mona/v1_1/keyboard.json index 95f7b9706e..7f25b8da47 100644 --- a/keyboards/rmi_kb/mona/v1_1/keyboard.json +++ b/keyboards/rmi_kb/mona/v1_1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -23,9 +24,6 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -96,7 +94,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/rmi_kb/mona/v32a/keyboard.json b/keyboards/rmi_kb/mona/v32a/keyboard.json index 84a301d173..363ea3438f 100644 --- a/keyboards/rmi_kb/mona/v32a/keyboard.json +++ b/keyboards/rmi_kb/mona/v32a/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -23,9 +24,6 @@ }, "processor": "atmega32a", "bootloader": "usbasploader", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -96,7 +94,7 @@ {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/rmi_kb/squishy65/keyboard.json b/keyboards/rmi_kb/squishy65/keyboard.json index aecaaf9c04..adc83200d3 100644 --- a/keyboards/rmi_kb/squishy65/keyboard.json +++ b/keyboards/rmi_kb/squishy65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Squishy65", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/squishyfrl/keyboard.json b/keyboards/rmi_kb/squishyfrl/keyboard.json index 1341a9e264..8a14a2a4ed 100644 --- a/keyboards/rmi_kb/squishyfrl/keyboard.json +++ b/keyboards/rmi_kb/squishyfrl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SquishyFRL", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rmi_kb/squishytkl/keyboard.json b/keyboards/rmi_kb/squishytkl/keyboard.json index 1c8b75750e..ae63d83c5d 100644 --- a/keyboards/rmi_kb/squishytkl/keyboard.json +++ b/keyboards/rmi_kb/squishytkl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SquishyTKL", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rmi_kb/tkl_ff/info.json b/keyboards/rmi_kb/tkl_ff/info.json index 88fe409928..a4fe24cab7 100644 --- a/keyboards/rmi_kb/tkl_ff/info.json +++ b/keyboards/rmi_kb/tkl_ff/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "TKL FF", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", @@ -8,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/rmi_kb/tkl_ff/rules.mk b/keyboards/rmi_kb/tkl_ff/rules.mk new file mode 100644 index 0000000000..c8847cc266 --- /dev/null +++ b/keyboards/rmi_kb/tkl_ff/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rmi_kb/tkl_ff/v1 diff --git a/keyboards/rmi_kb/wete/rules.mk b/keyboards/rmi_kb/wete/rules.mk new file mode 100644 index 0000000000..cda6fbfbe4 --- /dev/null +++ b/keyboards/rmi_kb/wete/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rmi_kb/wete/v2 diff --git a/keyboards/rmi_kb/wete/v1/keyboard.json b/keyboards/rmi_kb/wete/v1/keyboard.json index ff18fac5b5..c9a54f76c2 100644 --- a/keyboards/rmi_kb/wete/v1/keyboard.json +++ b/keyboards/rmi_kb/wete/v1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wete", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/wete/v2/keyboard.json b/keyboards/rmi_kb/wete/v2/keyboard.json index 3ad1fc9a73..2c925ee919 100644 --- a/keyboards/rmi_kb/wete/v2/keyboard.json +++ b/keyboards/rmi_kb/wete/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Wete R2", "manufacturer": "RMI-KB", + "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmkeebs/rm_fullsize/keyboard.json b/keyboards/rmkeebs/rm_fullsize/keyboard.json index 40ee2b4c9d..f9ff4dd5b8 100644 --- a/keyboards/rmkeebs/rm_fullsize/keyboard.json +++ b/keyboards/rmkeebs/rm_fullsize/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -16,6 +18,7 @@ "rows": ["GP8", "GP7", "GP9", "GP20", "GP18", "GP19"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/rmkeebs/rm_numpad/keyboard.json b/keyboards/rmkeebs/rm_numpad/keyboard.json index 434c10923d..eb3d11ca86 100644 --- a/keyboards/rmkeebs/rm_numpad/keyboard.json +++ b/keyboards/rmkeebs/rm_numpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rocketboard_16/keyboard.json b/keyboards/rocketboard_16/keyboard.json index cacd37d1c3..4831911f4f 100644 --- a/keyboards/rocketboard_16/keyboard.json +++ b/keyboards/rocketboard_16/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Rocketboard-16", "manufacturer": "Rocketboard", + "url": "", "maintainer": "fl3tching101", "usb": { "vid": "0xB034", diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c index a765968bc3..41fd5c8537 100644 --- a/keyboards/rocketboard_16/keycode_lookup.c +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ -#include #include "keycode_lookup.h" #include "quantum_keycodes.h" #include "keymap_us.h" @@ -254,22 +253,22 @@ lookup_table_t lookup_table[333] = {"KC_RSFT", KC_RSFT}, {"KC_RALT", KC_RALT}, {"KC_RGUI", KC_RGUI}, - {"MS_UP", MS_UP}, - {"MS_DOWN", MS_DOWN}, - {"MS_LEFT", MS_LEFT}, - {"MS_RGHT", MS_RGHT}, - {"MS_BTN1", MS_BTN1}, - {"MS_BTN2", MS_BTN2}, - {"MS_BTN3", MS_BTN3}, - {"MS_BTN4", MS_BTN4}, - {"MS_BTN5", MS_BTN5}, - {"MS_WHLU", MS_WHLU}, - {"MS_WHLD", MS_WHLD}, - {"MS_WHLL", MS_WHLL}, - {"MS_WHLR", MS_WHLR}, - {"MS_ACL0", MS_ACL0}, - {"MS_ACL1", MS_ACL1}, - {"MS_ACL2", MS_ACL2}, + {"KC_MS_UP", KC_MS_UP}, + {"KC_MS_DOWN", KC_MS_DOWN}, + {"KC_MS_LEFT", KC_MS_LEFT}, + {"KC_MS_RIGHT", KC_MS_RIGHT}, + {"KC_MS_BTN1", KC_MS_BTN1}, + {"KC_MS_BTN2", KC_MS_BTN2}, + {"KC_MS_BTN3", KC_MS_BTN3}, + {"KC_MS_BTN4", KC_MS_BTN4}, + {"KC_MS_BTN5", KC_MS_BTN5}, + {"KC_MS_WH_UP", KC_MS_WH_UP}, + {"KC_MS_WH_DOWN", KC_MS_WH_DOWN}, + {"KC_MS_WH_LEFT", KC_MS_WH_LEFT}, + {"KC_MS_WH_RIGHT", KC_MS_WH_RIGHT}, + {"KC_MS_ACCEL0", KC_MS_ACCEL0}, + {"KC_MS_ACCEL1", KC_MS_ACCEL1}, + {"KC_MS_ACCEL2", KC_MS_ACCEL2}, {"KC_EXLM", KC_EXLM}, {"KC_AT", KC_AT}, {"KC_HASH", KC_HASH}, diff --git a/keyboards/rominronin/katana60/rev1/keyboard.json b/keyboards/rominronin/katana60/rev1/keyboard.json index b8d9df35a7..0a9bb4ea49 100644 --- a/keyboards/rominronin/katana60/rev1/keyboard.json +++ b/keyboards/rominronin/katana60/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Katana60 rev1", "manufacturer": "RominRonin CandyKeys", + "url": "", "maintainer": "rominronin", "usb": { "vid": "0x7272", diff --git a/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c index 34607fd5ed..29e9ddf825 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c +++ b/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NUMB] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, DF(0), KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, - _______, _______, _______, MS_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______, - _______, MS_BTN2, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______, - _______, _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______, - _______, _______, _______, _______, MS_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______ + _______, _______, _______, KC_MS_U, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______, + _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______, + _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______, + _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______ ), [SYMB] = LAYOUT( QK_BOOT, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, @@ -56,8 +56,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CURS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, MS_WHLU, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______, - _______, KC_LCTL, MS_WHLD, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______, + _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______, + _______, KC_LCTL, KC_WH_D, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______, _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c index 1da40aa611..20ed993ade 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c +++ b/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NUMB] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, DF(0), KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, - _______, _______, _______, MS_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______, - _______, MS_BTN2, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______, - _______, _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______, - _______, _______, _______, _______, MS_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______ + _______, _______, _______, KC_MS_U, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______, + _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______, + _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______, + _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______ ), [SYMB] = LAYOUT( QK_BOOT, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, @@ -56,8 +56,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CURS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, MS_WHLU, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______, - _______, KC_LCTL, MS_WHLD, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______, + _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______, + _______, KC_LCTL, KC_WH_D, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______, _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c b/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c index 0964f0ebab..ee057c5c11 100644 --- a/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c +++ b/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c @@ -43,9 +43,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NUMB] = LAYOUT_1_a( _______, _______, _______, _______, _______, _______, _______, DF(0), _______, _______, KC_PEQL, KC_PSLS, KC_PAST, _______, _______, - _______, _______, _______, MS_UP, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, - _______, MS_BTN2, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, - _______, _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, _______, _______, KC_PDOT, KC_PENT, _______, _______ ), [SYMB] = LAYOUT_1_a( diff --git a/keyboards/rookiebwoy/late9/readme.md b/keyboards/rookiebwoy/late9/readme.md new file mode 100644 index 0000000000..bc6dfab57e --- /dev/null +++ b/keyboards/rookiebwoy/late9/readme.md @@ -0,0 +1,25 @@ +# LATE-9 + + +The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '90s. LATE-9 is intended as a dev board with 18 buttons and an OLED screen, made by through-hole components only. With this, you can experiment QMK OLED capabilities with very little expense. + +![LATE-9](https://i.imgur.com/QXycTC3h.jpg "LATE-9 first proto") + +* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) +* Hardware supported: ProMicro, _Elite-C (not tested)_ +* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/rookiebwoy/late-9) for gerbers. + +Make example for this keyboard (after setting up your build environment): + + make rookiebwoy/late9/rev1:default + +Flashing example for this keyboard: + + make rookiebwoy/late9/rev1: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 + +When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ +After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. \ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/config.h b/keyboards/rookiebwoy/late9/rev1/config.h new file mode 100644 index 0000000000..8c9a5702f2 --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 rookiebwoy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +/* Oneshot interval */ +#define ONESHOT_TIMEOUT 5000 diff --git a/keyboards/rookiebwoy/late9/rev1/keyboard.json b/keyboards/rookiebwoy/late9/rev1/keyboard.json new file mode 100644 index 0000000000..48f3cff840 --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/keyboard.json @@ -0,0 +1,58 @@ +{ + "keyboard_name": "LATE-9", + "manufacturer": "rookiebwoy", + "url": "https://github.com/rookiebwoy/late-9)", + "maintainer": "rookiebwoy", + "usb": { + "vid": "0x6961", + "pid": "0x3032", + "device_version": "0.1.0" + }, + "tapping": { + "term": 400 + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "matrix_pins": { + "cols": ["B5", "C6", "D4"], + "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "nkro": true, + "oled": true + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5}, + {"matrix": [5, 1], "x": 1, "y": 5}, + {"matrix": [5, 2], "x": 2, "y": 5} + ] + } + } +} diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c b/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..f93958fe8f --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2021 rookiebwoy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Layers declarations +enum layers { + _BL, + _OL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* BL: Base Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | 1 | 2 | 3 | + * | | | | + * |-------+-------+-------| + * | 4 | 5 | 6 | + * | | | | + * |-------+-------+-------| + * | 7 | 8 | 9 | + * | | | | + * |-------+-------+-------| + * | 0 | . | = | + * | | | | + * `-----------------------' + */ + [_BL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_P1, KC_P2, KC_P3, + KC_P4, KC_P5, KC_P6, + KC_P7, KC_P8, KC_P9, + KC_P0, KC_PDOT, KC_PEQL + ), + +/* OP: Operators Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | / | * | - | + * | | | | + * |-------+-------+-------| + * | ( | ) | + | + * | | | | + * |-------+-------+-------| + * | & | % | ^ | + * | | | | + * |-------+-------+-------| + * | | | . | = | + * | | | | + * `-----------------------' + */ + [_OL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_PSLS, KC_PAST, KC_PMNS, + LSFT(KC_9), LSFT(KC_0), KC_PPLS, + LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), + LSFT(KC_BSLS), KC_PDOT, KC_PEQL + ), +}; \ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/readme.md b/keyboards/rookiebwoy/late9/rev1/readme.md new file mode 100644 index 0000000000..d9683222a9 --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/readme.md @@ -0,0 +1,5 @@ +# LATE-9 rev1 + +First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/rookiebwoy/late-9). + + diff --git a/keyboards/rookiebwoy/late9/rev1/rev1.c b/keyboards/rookiebwoy/late9/rev1/rev1.c new file mode 100644 index 0000000000..aa45141b06 --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/rev1.c @@ -0,0 +1,61 @@ +/* Copyright 2021 rookiebwoy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +// OLED logo +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + static const char PROGMEM rb_logo[] = { + // rookiebwoy 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x1c, + 0x1c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, + 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, + 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x07, 0x07, 0x07, + 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x3f, + 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, + 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(rb_logo, sizeof(rb_logo)); + return false; +} + +#endif diff --git a/keyboards/rookiebwoy/late9/rules.mk b/keyboards/rookiebwoy/late9/rules.mk new file mode 100755 index 0000000000..358facb3ca --- /dev/null +++ b/keyboards/rookiebwoy/late9/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rookiebwoy/late9/rev1 diff --git a/keyboards/rookiebwoy/neopad/readme.md b/keyboards/rookiebwoy/neopad/readme.md new file mode 100644 index 0000000000..5b0ae7abc7 --- /dev/null +++ b/keyboards/rookiebwoy/neopad/readme.md @@ -0,0 +1,25 @@ +# Neopad + +Neopad is a little macropad with four switches and two rotary encoders, made by through hole components only. +_Actually the number of switches is six, because even the encoder are allowed to click._ + +![Neopad](https://i.imgur.com/TgOkj2Fh.jpg "Neopad first proto") + +The Neopad in the photo above is the first prototype. See the project repository for revision 1 update and KiCad files. + +* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) +* Hardware supported: ProMicro, _Elite-C (not tested)_ +* Project repository: [Neopad on github](https://github.com/rookiebwoy/neopad) + +Make example for this keyboard (after setting up your build environment): + + make rookiebwoy/neopad/rev1:default + +Flashing example for this keyboard: + + make rookiebwoy/neopad/rev1:default:flash + +When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device. + +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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + diff --git a/keyboards/rookiebwoy/neopad/rev1/config.h b/keyboards/rookiebwoy/neopad/rev1/config.h new file mode 100755 index 0000000000..fd1724caf1 --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rev1/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2021 rookiebwoy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +/* Onboard LEDs */ +#define LED_00 F6 +#define LED_01 F7 diff --git a/keyboards/rookiebwoy/neopad/rev1/keyboard.json b/keyboards/rookiebwoy/neopad/rev1/keyboard.json new file mode 100755 index 0000000000..426d8af7ec --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rev1/keyboard.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "neopad", + "manufacturer": "rookiebwoy", + "url": "https://github.com/rookiebwoy/neopad)", + "maintainer": "rookiebwoy", + "usb": { + "vid": "0xFEED", + "pid": "0x0913", + "device_version": "0.1.0" + }, + "features": { + "bootmagic": true, + "console": true, + "encoder": true, + "extrakey": true, + "key_lock": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "cols": ["B3", "B2", "B6"], + "rows": ["F4", "F5"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0"}, + {"pin_a": "D4", "pin_b": "C6"} + ] + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "tapping": { + "toggle": 2 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1} + ] + } + } +} diff --git a/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c b/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c new file mode 100755 index 0000000000..08227c84f9 --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c @@ -0,0 +1,154 @@ +/* Copyright 2021 rookiebwoy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + LAYER 0 - MUSIC + /-----------------------------` + | TO(1) | stop | mute | L ENC: prev/next song + |---------|---------|---------| + | prev | play | next | R ENC: vol up/down + \-----------------------------' + */ + [0] = LAYOUT( + TO(1), KC_MSTP, KC_MUTE, + KC_MPRV, KC_MPLY, KC_MNXT + ), + + /* + LAYER 1 - MOVEMENT IN WINDOWS + /---------------------------------------` + | TO(2) | maximize | show desktop | L ENC: change desktop + |-------------|----------|--------------| + | move window | minimize | move window | R ENC: change browser tab + change explorer window + \---------------------------------------' + */ + [1] = LAYOUT( + TO(2), LGUI(KC_UP), LGUI(KC_D), + LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RIGHT) + ), + + /* + LAYER 2 - SHORTCUT + /------------------------------` + | TO(3) | esc | task man | L ENC: redo/undo + |---------|---------|----------| + | cut | copy | paste | R ENC: mouse wheel up/down + \------------------------------' + */ + [2] = LAYOUT( + TO(3), KC_ESC, LCTL(LSFT(KC_ESC)), + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) + ), + + /* + LAYER 3 - AUDACITY + /-----------------------------` + | TO(0) | REC | canc | L ENC: pan right/left + |---------|---------|---------| + | ctrl | play | pause | R ENC: mouse wheel up/down + \-----------------------------' + */ + [3] = LAYOUT( + TO(0), LSFT(KC_R), KC_DEL, + KC_LCTL, KC_SPC, KC_P + ), + +}; + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* LEFT ENCODER */ + switch (get_highest_layer(layer_state)) { + case 0: + // layer 0 - next song (CW) and previous (CCW) + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + + case 1: + // layer 1 - change desktop right (CW) and left (CCW) + if (clockwise) { + tap_code16(LCTL(LGUI(KC_RIGHT))); + } else { + tap_code16(LCTL(LGUI(KC_LEFT))); + } + break; + + case 2: + // layer 2 - redo (CW) and undo (CCW) + if (clockwise) { + tap_code16(LCTL(KC_Y)); + } else { + tap_code16(LCTL(KC_Z)); + } + break; + + case 3: + // layer 3 - pan right (CW) and left (CCW) + if (clockwise) { + tap_code(KC_WH_R); + } else { + tap_code(KC_WH_L); + } + break; + } + + } else if (index == 1) { /* RIGHT ENCODER */ + switch (get_highest_layer(layer_state)) { + case 0: + // layer 0 - volume up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case 1: + // layer 1 - change browser tab (CW) and change explorer window (CCW) + if (clockwise) { + tap_code16(LCTL(KC_TAB)); + } else { + tap_code16(LALT(LSFT(KC_TAB))); + } + break; + + case 2: + // layer 2 - wheel up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + break; + + case 3: + // layer 3 - wheel up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + break; + } + } + return true; +} diff --git a/keyboards/rookiebwoy/neopad/rev1/readme.md b/keyboards/rookiebwoy/neopad/rev1/readme.md new file mode 100644 index 0000000000..1265922722 --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rev1/readme.md @@ -0,0 +1,5 @@ +# Neopad rev1 + +Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/rookiebwoy/neopad). + + diff --git a/keyboards/rookiebwoy/neopad/rev1/rev1.c b/keyboards/rookiebwoy/neopad/rev1/rev1.c new file mode 100755 index 0000000000..3b527794c0 --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rev1/rev1.c @@ -0,0 +1,65 @@ +/* Copyright 2021 rookiebwoy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Set LED IO as outputs + gpio_set_pin_output(LED_00); + gpio_set_pin_output(LED_01); + keyboard_pre_init_user(); +} + +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } + // Shutdown LEDs + gpio_write_pin_low(LED_00); + gpio_write_pin_low(LED_01); + return true; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + + // Layer LEDs act as binary indication of current layer + uint8_t layer = get_highest_layer(state); + gpio_write_pin(LED_00, layer & 0b1); + gpio_write_pin(LED_01, (layer >> 1) & 0b1); + return state; +} + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + uint8_t led_delay_ms = 80; + for (int i = 0; i < 2; i++) { + gpio_write_pin_high(LED_00); + gpio_write_pin_high(LED_01); + wait_ms(led_delay_ms); + gpio_write_pin_low(LED_00); + gpio_write_pin_low(LED_01); + if (i < 1) { + wait_ms(led_delay_ms); + } + } + + matrix_init_user(); +} diff --git a/keyboards/rookiebwoy/neopad/rules.mk b/keyboards/rookiebwoy/neopad/rules.mk new file mode 100755 index 0000000000..c34c04435e --- /dev/null +++ b/keyboards/rookiebwoy/neopad/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rookiebwoy/neopad/rev1 diff --git a/keyboards/rose75/keyboard.json b/keyboards/rose75/keyboard.json index 09d0b7af19..9306cb211b 100644 --- a/keyboards/rose75/keyboard.json +++ b/keyboards/rose75/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -28,14 +30,10 @@ "url": "https://github.com/Smollchungus", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x7503", "vid": "0x5363" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "driver": "vendor", "pin": "GP29" diff --git a/keyboards/roseslite/keyboard.json b/keyboards/roseslite/keyboard.json index 267a57a5c2..88b8c7a205 100644 --- a/keyboards/roseslite/keyboard.json +++ b/keyboards/roseslite/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rot13labs/h4ckb0ard/keyboard.json b/keyboards/rot13labs/h4ckb0ard/keyboard.json index 8d1ce7ab43..4ac783774d 100644 --- a/keyboards/rot13labs/h4ckb0ard/keyboard.json +++ b/keyboards/rot13labs/h4ckb0ard/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c index 45f7117989..ab938a9b3d 100755 --- a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c +++ b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c @@ -38,8 +38,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* SPC - RGB control layer */ [3] = LAYOUT( - KC_ESC, KC_Q, RGB_M_SW, KC_E, RGB_M_R, KC_T, KC_Y, RM_SPDD, RM_SPDU, RM_PREV, RM_NEXT, KC_DEL, - KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RM_SATD, RM_SATU, RM_TOGG, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RM_VALU, DF(0), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RM_HUED, RM_VALD, RM_HUEU), + KC_ESC, KC_Q, RGB_M_SW, KC_E, RGB_M_R, KC_T, KC_Y, RGB_SPD, RGB_SPI, RGB_RMOD, RGB_MOD, KC_DEL, + KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RGB_SAD, RGB_SAI, RGB_TOG, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RGB_VAI, DF(0), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RGB_HUD, RGB_VAD, RGB_HUI), }; \ No newline at end of file diff --git a/keyboards/rot13labs/rotc0n/keyboard.json b/keyboards/rot13labs/rotc0n/keyboard.json index fa5ac19edb..a9dc27a471 100644 --- a/keyboards/rot13labs/rotc0n/keyboard.json +++ b/keyboards/rot13labs/rotc0n/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["B1", "B0"] }, "processor": "atmega328p", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBEEF", diff --git a/keyboards/rot13labs/veilid_sao/keyboard.json b/keyboards/rot13labs/veilid_sao/keyboard.json index c7567a839a..751345d264 100644 --- a/keyboards/rot13labs/veilid_sao/keyboard.json +++ b/keyboards/rot13labs/veilid_sao/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, @@ -29,6 +31,9 @@ "cycle_left_right": true }, "driver": "ws2812", + "default": { + "animation": "cycle_left_right" + }, "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0} ], diff --git a/keyboards/rotr/keyboard.json b/keyboards/rotr/keyboard.json index e484e26ddc..cb1a7e923d 100644 --- a/keyboards/rotr/keyboard.json +++ b/keyboards/rotr/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rpiguy9907/fistbnmp/keyboard.json b/keyboards/rpiguy9907/fistbnmp/keyboard.json deleted file mode 100644 index b4e76341e0..0000000000 --- a/keyboards/rpiguy9907/fistbnmp/keyboard.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "manufacturer": "rpiguy9907", - "keyboard_name": "fistbnmp", - "maintainer": "lesshonor", - "bootloader": "atmel-dfu", - "bootloader_instructions": "Press the button labeled SW1 on the back of the PCB.", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["C6", "C7", "B4", "F7", "D0", "D6", "D3", "D4", "D5"], - "rows": ["F0", "B6", "D7", "B5"] - }, - "processor": "atmega32u4", - "url": "https://github.com/rpiguy9907", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_3u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "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, 4], "x": 3, "y": 3, "w": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3} - ] - }, - "LAYOUT_7u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 4], "x": 1, "y": 3, "w": 7}, - {"matrix": [3, 8], "x": 8, "y": 3} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3} - ] - }, - "LAYOUT_split_space": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "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, "w": 1.5}, - {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 1.5}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3} - ] - } - } -} diff --git a/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json b/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json deleted file mode 100644 index 4cc23703e2..0000000000 --- a/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "keyboard": "rpiguy9907/fistbnmp", - "keymap": "default", - "version": 1, - "layout": "LAYOUT_all", - "layers": [ - [ - "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", - "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", - "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_P", "KC_DOT", - "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_SPC", "KC_SPC", "KC_RIGHT", "KC_LEFT", "KC_DOWN", "KC_UP" - ] - ] -} diff --git a/keyboards/rpiguy9907/fistbnmp/readme.md b/keyboards/rpiguy9907/fistbnmp/readme.md deleted file mode 100644 index 2b6721f926..0000000000 --- a/keyboards/rpiguy9907/fistbnmp/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# FistBNMP - -![FistBNMP assembled proto and bare PCB](https://i.redd.it/uv34770qmc371.jpg) - -A compact 9u layout with support for standard Cherry MX and Low Profile MX switches. - -* Keyboard Maintainer: [rpiguy9907](https://github.com/rpiguy9907), [lesshonor](https://github.com/lesshonor) -* Hardware Supported: FistBNMP PCB (atmega32u4, atmel-dfu) -* Hardware Availability: Files available on request; ask in the 40% Discord - -Make example for this keyboard (after setting up your build environment): - - make rpiguy9907/fistbnmp:default - -Flashing example for this keyboard: - - make rpiguy9907/fistbnmp: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 top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. -* **Physical reset button**: Briefly press the button labeled `SW1` on the back of the PCB. -* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. diff --git a/keyboards/rpiguy9907/southpaw66/keyboard.json b/keyboards/rpiguy9907/southpaw66/keyboard.json index 980d217806..f2fdf4f5ff 100644 --- a/keyboards/rpiguy9907/southpaw66/keyboard.json +++ b/keyboards/rpiguy9907/southpaw66/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Southpaw66", "manufacturer": "rpiguy9907", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x9907", @@ -35,7 +36,8 @@ "tapping": { "term": 400 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rubi/lib/calc.c b/keyboards/rubi/lib/calc.c index b289fdb54b..7796a9be45 100644 --- a/keyboards/rubi/lib/calc.c +++ b/keyboards/rubi/lib/calc.c @@ -13,7 +13,6 @@ This is the modified version of [calculator by MWWorks](https://github.com/MWWor Feel free to fix it! I think it needs to detect the precision of the two operands and then figure out what the precision of the result should be */ -#include #include "rubi.h" static uint8_t calc_current_operand = 0; diff --git a/keyboards/runes/skjoldr/keyboard.json b/keyboards/runes/skjoldr/keyboard.json index b48cb2a1d9..a6040dedd6 100644 --- a/keyboards/runes/skjoldr/keyboard.json +++ b/keyboards/runes/skjoldr/keyboard.json @@ -6,15 +6,12 @@ "usb": { "vid": "0x726E", "pid": "0x736B", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/runes/vaengr/keyboard.json b/keyboards/runes/vaengr/keyboard.json index 1910f37f0d..42389043d4 100644 --- a/keyboards/runes/vaengr/keyboard.json +++ b/keyboards/runes/vaengr/keyboard.json @@ -6,12 +6,8 @@ "usb": { "vid": "0x726E", "pid": "0x7661", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgblight": { "hue_steps": 10, @@ -35,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rura66/rev1/keyboard.json b/keyboards/rura66/rev1/keyboard.json index 3dc41aabd4..cb9ad6f29a 100644 --- a/keyboards/rura66/rev1/keyboard.json +++ b/keyboards/rura66/rev1/keyboard.json @@ -55,7 +55,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rura66/rules.mk b/keyboards/rura66/rules.mk new file mode 100644 index 0000000000..556ec17655 --- /dev/null +++ b/keyboards/rura66/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = rura66/rev1 diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json index 8b1b1a5a82..31f2fa20c4 100644 --- a/keyboards/ryanbaekr/rb1/keyboard.json +++ b/keyboards/ryanbaekr/rb1/keyboard.json @@ -1,15 +1,19 @@ { "keyboard_name": "rb1", "manufacturer": "ryanbaekr", + "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", "pid": "0x0001", "device_version": "0.0.3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ryanbaekr/rb18/keyboard.json b/keyboards/ryanbaekr/rb18/keyboard.json index 0febe5a1d5..03a1335c7b 100644 --- a/keyboards/ryanbaekr/rb18/keyboard.json +++ b/keyboards/ryanbaekr/rb18/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rb18", "manufacturer": "ryanbaekr", + "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryanbaekr/rb69/keyboard.json b/keyboards/ryanbaekr/rb69/keyboard.json index 3becf7f588..c1cce7508e 100644 --- a/keyboards/ryanbaekr/rb69/keyboard.json +++ b/keyboards/ryanbaekr/rb69/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rb69", "manufacturer": "ryanbaekr", + "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryanbaekr/rb86/keyboard.json b/keyboards/ryanbaekr/rb86/keyboard.json index 6cc5f0f9b0..5813a2fa7b 100644 --- a/keyboards/ryanbaekr/rb86/keyboard.json +++ b/keyboards/ryanbaekr/rb86/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rb86", "manufacturer": "ryanbaekr", + "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", diff --git a/keyboards/ryanbaekr/rb87/keyboard.json b/keyboards/ryanbaekr/rb87/keyboard.json index 5b9500f973..6d19c3c29d 100644 --- a/keyboards/ryanbaekr/rb87/keyboard.json +++ b/keyboards/ryanbaekr/rb87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "rb87", "manufacturer": "ryanbaekr", + "url": "", "maintainer": "ryanbaekr", "development_board": "elite_c", "pin_compatible": "elite_c", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryanskidmore/rskeys100/keyboard.json b/keyboards/ryanskidmore/rskeys100/keyboard.json index b62d870aba..c77d3f4c90 100644 --- a/keyboards/ryanskidmore/rskeys100/keyboard.json +++ b/keyboards/ryanskidmore/rskeys100/keyboard.json @@ -4,12 +4,8 @@ "usb": { "vid": "0x7273", "pid": "0x0064", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, @@ -162,6 +158,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "url": "", "maintainer": "ryanskidmore", "community_layouts": ["fullsize_iso"], "layouts": { diff --git a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c index 3d7a383051..8b88f90dae 100644 --- a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c +++ b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALD, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______, _______, _______ ), }; diff --git a/keyboards/ryloo_studio/m0110/keyboard.json b/keyboards/ryloo_studio/m0110/keyboard.json index 3377eee155..9eb4662e36 100644 --- a/keyboards/ryloo_studio/m0110/keyboard.json +++ b/keyboards/ryloo_studio/m0110/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/s_ol/0xc_pad/keyboard.json b/keyboards/s_ol/0xc_pad/keyboard.json index 1df5a5131e..4eb4bd9055 100644 --- a/keyboards/s_ol/0xc_pad/keyboard.json +++ b/keyboards/s_ol/0xc_pad/keyboard.json @@ -7,6 +7,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c index 15d84b6d72..562d895071 100644 --- a/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c +++ b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - RM_PREV, RM_NEXT, + RGB_RMOD, RGB_MOD, KC_CUT , KC_COPY, KC_PSTE, KC_PGUP, KC_PGDN, KC_VOLU, KC_VOLD, KC_1 , KC_2 , KC_3 diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc b/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc index 2c635c913c..8acb4934bc 100644 --- a/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc +++ b/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc @@ -16,7 +16,7 @@ RGB_MATRIX_EFFECT(RGB_TESTING) #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t RGB_TESTING_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV RGB_TESTING_math(HSV hsv, uint8_t i, uint8_t time) { hsv.v = 255; hsv.s = 255; diff --git a/keyboards/saevus/cor/keyboard.json b/keyboards/saevus/cor/keyboard.json new file mode 100644 index 0000000000..cd50a7d907 --- /dev/null +++ b/keyboards/saevus/cor/keyboard.json @@ -0,0 +1,351 @@ +{ + "manufacturer": "saevus", + "keyboard_name": "cor", + "maintainer": "ramonimbao", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "rows": ["F0", "F1", "F4", "B3", "B6"], + "cols": ["F5", "F6", "F7", "C6", "C7", "B1", "B7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0x5001", + "pid": "0x0002" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ansi_blocker_split_bs" + }, + "layouts": { + "LAYOUT_ansi_blocker": { + "layout": [ + {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, + + {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, + + {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, + + {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, + {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, + + {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 5, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} + ] + }, + "LAYOUT_ansi_blocker_split_bs": { + "layout": [ + {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, + + {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, + + {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, + + {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, + {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, + + {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 5, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} + ] + }, + "LAYOUT_ansi_blocker_tsangan": { + "layout": [ + {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, + + {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, + + {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, + + {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, + {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, + + {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 2], "x": 2.75, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "F1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Esc", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Delete", "matrix": [0, 16], "x": 16.75, "y": 0}, + + {"label": "F2", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Tab", "matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 2.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "\\", "matrix": [1, 15], "x": 14.75, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 16], "x": 16.75, "y": 1}, + + {"label": "F3", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 3, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 14, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 16.75, "y": 2}, + + {"label": "F4", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 3], "x": 3.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 15], "x": 15.5, "y": 3.25}, + {"label": "Fn", "matrix": [3, 16], "x": 16.75, "y": 3}, + + {"label": "F5", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 2], "x": 2.75, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 14], "x": 14.5, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 15], "x": 15.5, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 16], "x": 16.5, "y": 4.25} + ] + } + } +} diff --git a/keyboards/concreteflowers/cor/keymaps/default/keymap.c b/keyboards/saevus/cor/keymaps/default/keymap.c similarity index 100% rename from keyboards/concreteflowers/cor/keymaps/default/keymap.c rename to keyboards/saevus/cor/keymaps/default/keymap.c diff --git a/keyboards/concreteflowers/cor/matrix_diagram.md b/keyboards/saevus/cor/matrix_diagram.md similarity index 100% rename from keyboards/concreteflowers/cor/matrix_diagram.md rename to keyboards/saevus/cor/matrix_diagram.md diff --git a/keyboards/saevus/cor/readme.md b/keyboards/saevus/cor/readme.md new file mode 100644 index 0000000000..2c158e1a63 --- /dev/null +++ b/keyboards/saevus/cor/readme.md @@ -0,0 +1,26 @@ +# saevus cor + +![saevus cor](https://i.imgur.com/AOT6mmMl.jpg) + +An exploded 65% with a macro column. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor:via + +Flashing example for this keyboard: + + make saevus/cor:via: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 upper left key and plug in the keyboard +* **Physical reset button**: Briefly press the reset button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/concreteflowers/cor_tkl/cor_tkl.c b/keyboards/saevus/cor_tkl/cor_tkl.c similarity index 100% rename from keyboards/concreteflowers/cor_tkl/cor_tkl.c rename to keyboards/saevus/cor_tkl/cor_tkl.c diff --git a/keyboards/saevus/cor_tkl/keyboard.json b/keyboards/saevus/cor_tkl/keyboard.json new file mode 100644 index 0000000000..98880e4834 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keyboard.json @@ -0,0 +1,587 @@ +{ + "keyboard_name": "Cor TKL", + "manufacturer": "saevus", + "url": "", + "maintainer": "ramonimbao", + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_ansi_split_bs_rshift", + "tkl_f13_iso", + "tkl_f13_iso_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false, + "rgb_matrix": true + }, + "usb": { + "vid": "0x5001", + "pid": "0x0003", + "device_version": "1.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP5"], + "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "ws2812": { + "pin": "GP19", + "driver": "vendor" + }, + "layouts": { + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/concreteflowers/cor_tkl/keymaps/default/keymap.c b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c similarity index 100% rename from keyboards/concreteflowers/cor_tkl/keymaps/default/keymap.c rename to keyboards/saevus/cor_tkl/keymaps/default/keymap.c diff --git a/keyboards/concreteflowers/cor_tkl/keymaps/iso/keymap.c b/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c similarity index 100% rename from keyboards/concreteflowers/cor_tkl/keymaps/iso/keymap.c rename to keyboards/saevus/cor_tkl/keymaps/iso/keymap.c diff --git a/keyboards/saevus/cor_tkl/readme.md b/keyboards/saevus/cor_tkl/readme.md new file mode 100644 index 0000000000..c0c5ab0e91 --- /dev/null +++ b/keyboards/saevus/cor_tkl/readme.md @@ -0,0 +1,18 @@ +# saevus cor TKL + +![Cor TKL](https://i.imgur.com/RGctsaVl.png) + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor_tkl:via + +To get to the bootloader, simply press the reset button located at the back of the PCB. You can then flash new firmware onto it. + +Flashing example for this keyboard: + + make saevus/cor_tkl:via: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). diff --git a/keyboards/sakura_workshop/fuji75/info.json b/keyboards/sakura_workshop/fuji75/info.json index 604c504641..7b56fd4d72 100644 --- a/keyboards/sakura_workshop/fuji75/info.json +++ b/keyboards/sakura_workshop/fuji75/info.json @@ -1,5 +1,6 @@ { "manufacturer": "SakuraWorkshop", + "url": "", "maintainer": "Freather", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/salane/ncr80alpsskfl/config.h b/keyboards/salane/ncr80alpsskfl/config.h deleted file mode 100644 index cc6fb298f4..0000000000 --- a/keyboards/salane/ncr80alpsskfl/config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2024 Salane -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json deleted file mode 100644 index 5f7bae802a..0000000000 --- a/keyboards/salane/ncr80alpsskfl/keyboard.json +++ /dev/null @@ -1,432 +0,0 @@ -{ - "keyboard_name": "NCR80 ALPS SKFL", - "manufacturer": "Salane", - "maintainer": "Mai The San", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0x534C", - "pid": "0x087A", - "device_version": "0.0.1" - }, - "matrix_pins": { - "rows": ["GP24", "GP9", "GP10", "GP13", "GP12", "GP11"], - "cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP25", "GP26", "GP27", "GP28", "GP29", "GP6", "GP5", "GP4", "GP3"] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true - }, - "indicators": { - "num_lock": "GP0", - "caps_lock": "GP1", - "scroll_lock": "GP2" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_ansi_tsangan": { - "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, - {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, - {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, - {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, - {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, - {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, - {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, - {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, - {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, - {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, - {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, - {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, - {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, - - {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, - {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, - {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, - - {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, - {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, - {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, - {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, - {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, - {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, - {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, - {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, - {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, - {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, - {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, - {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, - {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, - {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, - - {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, - {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, - {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, - - {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, - {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, - {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, - {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, - {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, - {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, - {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, - {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, - {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, - {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, - {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, - {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, - - {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, - {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, - {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, - {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, - {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, - {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, - {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, - {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, - {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, - - {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, - - {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, - {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, - {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, - {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, - {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, - {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, - {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, - - {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, - {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, - {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} - ] - }, - "LAYOUT_ansi_tsangan_split_rshift": { - "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, - {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, - {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, - {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, - {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, - {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, - {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, - {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, - {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, - {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, - {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, - {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, - {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, - - {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, - {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, - {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, - - {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, - {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, - {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, - {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, - {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, - {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, - {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, - {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, - {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, - {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, - {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, - {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, - {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, - {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, - - {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, - {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, - {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, - - {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, - {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, - {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, - {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, - {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, - {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, - {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, - {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, - {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, - {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, - {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, - {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, - - {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, - {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, - {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, - {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, - {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, - {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, - {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, - {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, - {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, - {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, - - {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, - - {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, - {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, - {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, - {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, - {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, - {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, - {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, - - {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, - {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, - {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} - ] - }, - "LAYOUT_ansi_tsangan_split_bs": { - "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, - {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, - {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, - {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, - {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, - {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, - {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, - {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, - {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, - {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, - {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, - {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, - {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, - {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, - - {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, - {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, - {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, - - {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, - {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, - {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, - {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, - {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, - {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, - {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, - {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, - {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, - {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, - {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, - {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, - {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, - {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, - - {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, - {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, - {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, - - {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, - {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, - {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, - {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, - {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, - {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, - {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, - {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, - {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, - {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, - {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, - {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, - - {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, - {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, - {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, - {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, - {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, - {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, - {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, - {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, - {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, - - {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, - - {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, - {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, - {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, - {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, - {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, - {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, - {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, - - {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, - {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, - {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} - ] - }, - "LAYOUT_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, - {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, - {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, - {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, - {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, - {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, - {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, - {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, - {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, - {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, - {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, - {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, - {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, - {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, - - {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, - {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, - {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, - - {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, - {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, - {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, - {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, - {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, - {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, - {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, - {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, - {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, - {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, - {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, - {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, - {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, - {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, - - {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, - {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, - {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, - - {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, - {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, - {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, - {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, - {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, - {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, - {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, - {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, - {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, - {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, - {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, - {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, - {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, - - {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, - {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, - {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, - {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, - {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, - {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, - {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, - {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, - {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, - {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, - - {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, - - {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, - {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, - {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, - {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, - {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, - {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, - {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, - - {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, - {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, - {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} - ] - } - } -} diff --git a/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c deleted file mode 100644 index e0db926341..0000000000 --- a/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2023 SawnsProjects - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_SLSH, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/keyboards/salane/ncr80alpsskfl/matrix_diagram.md b/keyboards/salane/ncr80alpsskfl/matrix_diagram.md deleted file mode 100644 index 5e0f9d7eb5..0000000000 --- a/keyboards/salane/ncr80alpsskfl/matrix_diagram.md +++ /dev/null @@ -1,25 +0,0 @@ -# Matrix Diagram for Salane NCR80 ALPS SKFL - -``` - ┌───────┐ - 2u Backspace │0D │ - └───────┘ -┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ -│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ -└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ - -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0D │1D │ │1E │1F │1G │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ -│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ -│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │ -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ - ┌──────────┐ - 2.75u RShift│4C │ - └──────────┘ -``` diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md deleted file mode 100644 index a8e0c0725a..0000000000 --- a/keyboards/salane/ncr80alpsskfl/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# NCR80 ALPS SKFL - -![NCR80 ALPS SKFL](https://i.imgur.com/X964J2P.jpeg) - - PCB Replace for NCR80 with ALPS SKFL switch. - - **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. - -* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) -* Hardware Supported: NCR80 -* Hardware Availability: [Github](https://github.com/MaiTheSan/NCR80-ALPS-SKFL) - -Make examples for this keyboard (after setting up your build environment): - - make salane/ncr80alpsskfl:default - -Flashing example for this keyboard: - - make salane/ncr80alpsskfl:default:flash - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: short 2 pin in the back of pcb and plug the usb in -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -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). \ No newline at end of file diff --git a/keyboards/salane/starryfrl/config.h b/keyboards/salane/starryfrl/config.h deleted file mode 100644 index cc6fb298f4..0000000000 --- a/keyboards/salane/starryfrl/config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2024 Salane -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/starryfrl/keyboard.json b/keyboards/salane/starryfrl/keyboard.json deleted file mode 100644 index a63bdc83d1..0000000000 --- a/keyboards/salane/starryfrl/keyboard.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "keyboard_name": "Starry FRL", - "manufacturer": "Salane", - "maintainer": "Mai The San", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0x534C", - "pid": "0x0A01", - "device_version": "0.0.1" - }, - "matrix_pins": { - "rows": ["GP25", "GP0", "GP18", "GP23", "GP24"], - "cols": ["GP27", "GP26", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP22", "GP21", "GP20"] - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": false, - "rgblight": true, - "encoder": true - }, - "encoder": { - "rotary": [ - {"pin_a": "GP29", "pin_b": "GP28"} - ] - }, - "rgblight": { - "led_count": 2, - "saturation_steps": 8, - "brightness_steps": 8, - "sleep": true, - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "GP19", - "driver": "vendor" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 4.25, "y": 0}, - {"label": "K05", "matrix": [0, 5], "x": 5.25, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 6.25, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 7.25, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 8.25, "y": 0}, - {"label": "K09", "matrix": [0, 9], "x": 9.25, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 10.25, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 11.25, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 12.25, "y": 0}, - {"label": "K0D", "matrix": [0, 13], "x": 13.25, "y": 0}, - {"label": "K0E", "matrix": [0, 14], "x": 14.25, "y": 0}, - {"label": "K0F", "matrix": [0, 15], "x": 15.25, "y": 0}, - {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 0}, - {"label": "K0G", "matrix": [0, 16], "x": 17.5, "y": 0}, - {"label": "K0H", "matrix": [0, 17], "x": 18.5, "y": 0}, - {"label": "K0I", "matrix": [0, 18], "x": 19.5, "y": 0}, - {"label": "K12", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"label": "K13", "matrix": [1, 3], "x": 3.75, "y": 1}, - {"label": "K14", "matrix": [1, 4], "x": 4.75, "y": 1}, - {"label": "K15", "matrix": [1, 5], "x": 5.75, "y": 1}, - {"label": "K16", "matrix": [1, 6], "x": 6.75, "y": 1}, - {"label": "K17", "matrix": [1, 7], "x": 7.75, "y": 1}, - {"label": "K18", "matrix": [1, 8], "x": 8.75, "y": 1}, - {"label": "K19", "matrix": [1, 9], "x": 9.75, "y": 1}, - {"label": "K1A", "matrix": [1, 10], "x": 10.75, "y": 1}, - {"label": "K1B", "matrix": [1, 11], "x": 11.75, "y": 1}, - {"label": "K1C", "matrix": [1, 12], "x": 12.75, "y": 1}, - {"label": "K1D", "matrix": [1, 13], "x": 13.75, "y": 1}, - {"label": "K1E", "matrix": [1, 14], "x": 14.75, "y": 1}, - {"label": "K1F", "matrix": [1, 15], "x": 15.75, "y": 1, "w": 1.5}, - {"label": "K1G", "matrix": [1, 16], "x": 17.5, "y": 1}, - {"label": "K1H", "matrix": [1, 17], "x": 18.5, "y": 1}, - {"label": "K1I", "matrix": [1, 18], "x": 19.5, "y": 1}, - {"label": "K21", "matrix": [2, 1], "x": 0.25, "y": 1.25, "w": 1.5, "h": 1.5}, - {"label": "K22", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"label": "K23", "matrix": [2, 3], "x": 4, "y": 2}, - {"label": "K24", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "K25", "matrix": [2, 5], "x": 6, "y": 2}, - {"label": "K26", "matrix": [2, 6], "x": 7, "y": 2}, - {"label": "K27", "matrix": [2, 7], "x": 8, "y": 2}, - {"label": "K28", "matrix": [2, 8], "x": 9, "y": 2}, - {"label": "K29", "matrix": [2, 9], "x": 10, "y": 2}, - {"label": "K2A", "matrix": [2, 10], "x": 11, "y": 2}, - {"label": "K2B", "matrix": [2, 11], "x": 12, "y": 2}, - {"label": "K2C", "matrix": [2, 12], "x": 13, "y": 2}, - {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 2}, - {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, - {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"label": "K33", "matrix": [3, 3], "x": 3.5, "y": 3}, - {"label": "K34", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "K35", "matrix": [3, 5], "x": 5.5, "y": 3}, - {"label": "K36", "matrix": [3, 6], "x": 6.5, "y": 3}, - {"label": "K37", "matrix": [3, 7], "x": 7.5, "y": 3}, - {"label": "K38", "matrix": [3, 8], "x": 8.5, "y": 3}, - {"label": "K39", "matrix": [3, 9], "x": 9.5, "y": 3}, - {"label": "K3A", "matrix": [3, 10], "x": 10.5, "y": 3}, - {"label": "K3B", "matrix": [3, 11], "x": 11.5, "y": 3}, - {"label": "K3C", "matrix": [3, 12], "x": 12.5, "y": 3}, - {"label": "K3D", "matrix": [3, 13], "x": 13.5, "y": 3}, - {"label": "K3E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, - {"label": "K3F", "matrix": [3, 15], "x": 16.25, "y": 3}, - {"label": "K3H", "matrix": [3, 17], "x": 18.5, "y": 3}, - {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"label": "K43", "matrix": [4, 3], "x": 3.75, "y": 4}, - {"label": "K44", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, - {"label": "K47", "matrix": [4, 7], "x": 6.25, "y": 4, "w": 3}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 4}, - {"label": "K4B", "matrix": [4, 11], "x": 10.25, "y": 4, "w": 2}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 4}, - {"label": "K4D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, - {"label": "K4E", "matrix": [4, 14], "x": 14.75, "y": 4}, - {"label": "K4F", "matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, - {"label": "K4G", "matrix": [4, 16], "x": 17.5, "y": 4}, - {"label": "K4H", "matrix": [4, 17], "x": 18.5, "y": 4}, - {"label": "K4I", "matrix": [4, 18], "x": 19.5, "y": 4} - ] - } - } -} diff --git a/keyboards/salane/starryfrl/keymaps/default/keymap.c b/keyboards/salane/starryfrl/keymaps/default/keymap.c deleted file mode 100644 index 5b3235afe5..0000000000 --- a/keyboards/salane/starryfrl/keymaps/default/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2023 SawnsProjects - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -enum { - _BASE, - _FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_MUTE, 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_F3, KC_F4, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(_FN), KC_UP, - KC_F5, KC_F6, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [_FN] = LAYOUT( - KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_PREV, UG_TOGG, UG_NEXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, - [_FN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } -}; -#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/salane/starryfrl/keymaps/default/rules.mk b/keyboards/salane/starryfrl/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/salane/starryfrl/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/salane/starryfrl/readme.md b/keyboards/salane/starryfrl/readme.md deleted file mode 100644 index da2920797d..0000000000 --- a/keyboards/salane/starryfrl/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Starry FRL - -![Starry FRL](https://i.imgur.com/eRYlEe7.jpeg) - - This firmware support for both Solder and Hotswap PCB of Starry FRL - - **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `uf2` appropriate for your board. - -* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) -* Hardware Supported: Starry FRL -* Hardware Availability: [Waifu.works Discord](https://discord.gg/waifuworks) - -Make examples for this keyboard (after setting up your build environment): - - make salane/starryfrl:default - -Flashing example for this keyboard: - - make salane/starryfrl:default:flash - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Press the key `BOOT` in the back of PCB and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - -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). \ No newline at end of file diff --git a/keyboards/salicylic_acid3/7skb/keymaps/default/keymap.c b/keyboards/salicylic_acid3/7skb/keymaps/default/keymap.c index 1651bd3939..e5610f2382 100644 --- a/keyboards/salicylic_acid3/7skb/keymaps/default/keymap.c +++ b/keyboards/salicylic_acid3/7skb/keymaps/default/keymap.c @@ -57,9 +57,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_STOP, XXXXXXX //`---------------------------------------------| |--------------------------------------------' @@ -91,7 +91,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/7skb/rev1/keyboard.json b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json index 342b81cbbd..4a338811ea 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json @@ -59,7 +59,8 @@ "build": { "lto": true }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/7skb/rules.mk b/keyboards/salicylic_acid3/7skb/rules.mk new file mode 100644 index 0000000000..15364c29a5 --- /dev/null +++ b/keyboards/salicylic_acid3/7skb/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/7skb/rev1 diff --git a/keyboards/salicylic_acid3/7splus/keyboard.json b/keyboards/salicylic_acid3/7splus/keyboard.json index 5d2cab5a98..d04b8ad45b 100644 --- a/keyboards/salicylic_acid3/7splus/keyboard.json +++ b/keyboards/salicylic_acid3/7splus/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -56,7 +57,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/ajisai74/keyboard.json b/keyboards/salicylic_acid3/ajisai74/keyboard.json index 34743952fb..62d475d9df 100644 --- a/keyboards/salicylic_acid3/ajisai74/keyboard.json +++ b/keyboards/salicylic_acid3/ajisai74/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -34,7 +36,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/ergoarrows/keyboard.json b/keyboards/salicylic_acid3/ergoarrows/keyboard.json index ac9ea3179a..122d2e0ee6 100644 --- a/keyboards/salicylic_acid3/ergoarrows/keyboard.json +++ b/keyboards/salicylic_acid3/ergoarrows/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -55,7 +57,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h b/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h index 15c247f961..23f8b5343f 100644 --- a/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h +++ b/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h @@ -21,5 +21,5 @@ #define QUICK_TAP_TERM 0 #define TAPPING_TERM 180 -#define OLED_FONT_H "keyboards/salicylic_acid3/getta25/keymaps/oled/glcdfont.c" +#define OLED_FONT_H "keyboards/getta25/keymaps/oled/glcdfont.c" diff --git a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json index d6e4f60c54..884ed684ea 100644 --- a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json @@ -46,7 +46,8 @@ "rows": ["D4", "C6", "D7", "E6", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/getta25/rules.mk b/keyboards/salicylic_acid3/getta25/rules.mk new file mode 100644 index 0000000000..069fe74b14 --- /dev/null +++ b/keyboards/salicylic_acid3/getta25/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/getta25/rev1 diff --git a/keyboards/salicylic_acid3/guide68/keyboard.json b/keyboards/salicylic_acid3/guide68/keyboard.json index 99235fdf6a..0714262858 100644 --- a/keyboards/salicylic_acid3/guide68/keyboard.json +++ b/keyboards/salicylic_acid3/guide68/keyboard.json @@ -2,10 +2,12 @@ "manufacturer": "Salicylic-acid3", "keyboard_name": "guide68", "maintainer": "Salicylic-acid3", - "development_board": "promicro", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "rgblight": true, @@ -15,6 +17,8 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B5"], "rows": ["D4", "C6", "D7", "E6", "B4"] }, + "processor": "atmega32u4", + "url": "", "usb": { "vid": "0x04D8", "pid": "0xE6DD", @@ -35,6 +39,7 @@ "twinkle": true }, "sleep": true, + "max_brightness": 255, "split": true, "split_count": [6, 6] }, diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json index 03e376adde..e4525ecf74 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json @@ -56,7 +56,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/jisplit89/rules.mk b/keyboards/salicylic_acid3/jisplit89/rules.mk new file mode 100644 index 0000000000..d54d2ccef4 --- /dev/null +++ b/keyboards/salicylic_acid3/jisplit89/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/jisplit89/rev1 diff --git a/keyboards/salicylic_acid3/nafuda/keyboard.json b/keyboards/salicylic_acid3/nafuda/keyboard.json index 0a33ad58c9..87dceed05f 100644 --- a/keyboards/salicylic_acid3/nafuda/keyboard.json +++ b/keyboards/salicylic_acid3/nafuda/keyboard.json @@ -30,6 +30,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -46,7 +47,8 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/nafuda/keymaps/default/keymap.c b/keyboards/salicylic_acid3/nafuda/keymaps/default/keymap.c index 9c2917fac1..21889f2fe6 100644 --- a/keyboards/salicylic_acid3/nafuda/keymaps/default/keymap.c +++ b/keyboards/salicylic_acid3/nafuda/keymaps/default/keymap.c @@ -33,9 +33,9 @@ LT(_ADJUST, KC_BSPC), KC_UP,TG(_BROWSER), //|-------------------------------------------| TG(_MOUSE), //|---------------+---------------+-----------| - MS_BTN1, MS_UP, MS_BTN2, + KC_BTN1, KC_MS_U, KC_BTN2, //|---------------+---------------+-----------| - MS_LEFT, MS_DOWN, MS_RGHT + KC_MS_L, KC_MS_D, KC_MS_R //|-------------------------------------------| ), @@ -43,9 +43,9 @@ LT(_ADJUST, KC_BSPC), KC_UP,TG(_BROWSER), //|-------------------------------------------| LCTL(KC_W), //|---------------+---------------+-----------| - LCTL(LSFT(KC_T)), MS_WHLU,TG(_BROWSER), + LCTL(LSFT(KC_T)), KC_WH_U,TG(_BROWSER), //|---------------+---------------+-----------| - LCTL(LSFT(KC_TAB)), MS_WHLD,LCTL(KC_TAB) + LCTL(LSFT(KC_TAB)), KC_WH_D,LCTL(KC_TAB) //|-------------------------------------------| ), diff --git a/keyboards/salicylic_acid3/naked48/keymaps/default/keymap.c b/keyboards/salicylic_acid3/naked48/keymaps/default/keymap.c index 93a89563d2..4df63d109b 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/default/keymap.c +++ b/keyboards/salicylic_acid3/naked48/keymaps/default/keymap.c @@ -67,9 +67,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______ //`------------------------------------------------------------------------------------------------------------' @@ -82,7 +82,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/keymap.c b/keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/keymap.c index 4c5b7656d1..26385640bd 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/keymap.c +++ b/keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/keymap.c @@ -43,9 +43,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, TG(_MOUSE), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MS_BTN1, MS_UP, MS_BTN2, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BTN1, KC_MS_U, KC_BTN2, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, MS_LEFT, MS_DOWN, MS_RGHT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_MS_L, KC_MS_D, KC_MS_R, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| MO(_ADJUST),KC_LCTL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT //`------------------------------------------------------------------------------------------------------------' @@ -55,9 +55,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LCTL(KC_W), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,LCTL(LSFT(KC_T)),MS_WHLU,TG(_BROWSER), + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,LCTL(LSFT(KC_T)),KC_WH_U,TG(_BROWSER), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,LCTL(LSFT(KC_TAB)), MS_WHLD,LCTL(KC_TAB), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,LCTL(LSFT(KC_TAB)), KC_WH_D,LCTL(KC_TAB), //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| MO(_ADJUST),KC_LCTL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT //`------------------------------------------------------------------------------------------------------------' @@ -89,11 +89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_with_nafuda( /* Base */ //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, UG_VALD, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_VAD, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, _ADJUST, UG_SATD, UG_VALU, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, _ADJUST, RGB_SAD, RGB_VAI, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_NEXT, UG_TOGG, UG_SATU, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______ //`------------------------------------------------------------------------------------------------------------' @@ -106,7 +106,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/keymap.c b/keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/keymap.c index c20e8e2c35..ffe73c8b98 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/keymap.c +++ b/keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/keymap.c @@ -69,13 +69,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_with_setta21( /* Base */ //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______,UG_VALD,UG_HUED,UG_SATD,XXXXXXX,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______,RGB_VAD,RGB_HUD,RGB_SAD,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, UG_VALU,UG_HUEU,UG_SATU,XXXXXXX,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, RGB_VAI,RGB_HUI,RGB_SAI,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| - _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______, UG_NEXT, UG_TOGG,_______,_______ + _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG,_______,_______ //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| ) }; @@ -110,7 +110,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json index 2cf2dbc45b..3bac1d8864 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json @@ -63,7 +63,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked48/rules.mk b/keyboards/salicylic_acid3/naked48/rules.mk new file mode 100644 index 0000000000..dadfa7a257 --- /dev/null +++ b/keyboards/salicylic_acid3/naked48/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/naked48/rev1 diff --git a/keyboards/salicylic_acid3/naked60/keymaps/default/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/default/keymap.c index 7c0f96a076..ffc5a0ad62 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/default/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/default/keymap.c @@ -80,9 +80,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. TG(_FLOCK), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, XXXXXXX,LALT(KC_PSCR), + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX,LALT(KC_PSCR), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, KC_PSCR, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PSCR, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LCA(KC_DEL), //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| diff --git a/keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/keymap.c index 0db21f9bdc..75b6e5971e 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/keymap.c @@ -55,9 +55,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, TG(_MOUSE), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_UP, MS_BTN2, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------------------------| _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -69,9 +69,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(KC_W), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,LCTL(LSFT(KC_T)),MS_WHLU,TG(_BROWSER), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,LCTL(LSFT(KC_T)),KC_WH_U,TG(_BROWSER), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,LCTL(LSFT(KC_TAB)), MS_WHLD,LCTL(KC_TAB), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,LCTL(LSFT(KC_TAB)), KC_WH_D,LCTL(KC_TAB), //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------------------------| _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -109,11 +109,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_with_nafuda( /* Base */ //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| - TG(_FLOCK), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, UG_VALD, + TG(_FLOCK), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, XXXXXXX,LALT(KC_PSCR), _ADJUST, UG_SATD, UG_VALU, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX,LALT(KC_PSCR), _ADJUST, RGB_SAD, RGB_VAI, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, KC_PSCR, UG_NEXT, UG_TOGG, UG_SATU, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PSCR, RGB_MOD, RGB_TOG, RGB_SAI, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------------------------| _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LCA(KC_DEL), //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -128,7 +128,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/keymap.c index 07d2111b88..4dd6d75826 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/keymap.c @@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_with_setta21( /* Base */ //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| - TG(_FLOCK), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,UG_VALD,UG_HUED,UG_SATD,XXXXXXX,_______, + TG(_FLOCK), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,RGB_VAD,RGB_HUD,RGB_SAD,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, XXXXXXX,LALT(KC_PSCR), UG_VALU,UG_HUEU,UG_SATU,XXXXXXX,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX,LALT(KC_PSCR), RGB_VAI,RGB_HUI,RGB_SAI,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, KC_PSCR, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PSCR, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LCA(KC_DEL), UG_NEXT, UG_TOGG,_______,_______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LCA(KC_DEL), RGB_MOD, RGB_TOG,_______,_______, //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |-----------------------------------------------| _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______ //`------------------------------------------------------------------------------------------------------------' @@ -128,7 +128,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json index f41d2e1413..5037414c3d 100644 --- a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json @@ -37,7 +37,8 @@ } } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked60/rules.mk b/keyboards/salicylic_acid3/naked60/rules.mk new file mode 100644 index 0000000000..904309ea35 --- /dev/null +++ b/keyboards/salicylic_acid3/naked60/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/naked60/rev1 diff --git a/keyboards/salicylic_acid3/naked64/keymaps/default/keymap.c b/keyboards/salicylic_acid3/naked64/keymaps/default/keymap.c index 7581f9b538..1448f13bc5 100644 --- a/keyboards/salicylic_acid3/naked64/keymaps/default/keymap.c +++ b/keyboards/salicylic_acid3/naked64/keymaps/default/keymap.c @@ -87,9 +87,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR,XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR,XXXXXXX, // |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, // |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ //`-----------------------------------------------------------------------------------------------------------------------------------' @@ -128,7 +128,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool result = false; switch (keycode) { #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/keymap.c b/keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/keymap.c index 5d6251df16..f3b8ae6826 100644 --- a/keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/keymap.c +++ b/keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/keymap.c @@ -91,10 +91,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_with_setta21( /* Base */ TG(_FLOCK), QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, LCA(KC_DEL), LALT(KC_PSCR), KC_PSCR, XXXXXXX, UG_SATD, UG_SATU, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, UG_HUED, UG_HUEU, XXXXXXX, UG_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_VALD, UG_VALU, XXXXXXX, - _______, _______, UG_NEXT + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, LCA(KC_DEL), LALT(KC_PSCR), KC_PSCR, XXXXXXX, RGB_SAD, RGB_SAI, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, XXXXXXX, + _______, _______, RGB_MOD ) }; @@ -153,7 +153,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json index be60079590..688edf53d3 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json @@ -51,7 +51,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked64/rules.mk b/keyboards/salicylic_acid3/naked64/rules.mk new file mode 100644 index 0000000000..0ac8d83bfc --- /dev/null +++ b/keyboards/salicylic_acid3/naked64/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/naked64/rev1 diff --git a/keyboards/salicylic_acid3/nknl7en/keyboard.json b/keyboards/salicylic_acid3/nknl7en/keyboard.json index 2f3b9609df..554430f6c4 100644 --- a/keyboards/salicylic_acid3/nknl7en/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7en/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -55,7 +57,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/nknl7jp/keyboard.json b/keyboards/salicylic_acid3/nknl7jp/keyboard.json index 818644dd7d..b8a9196f88 100644 --- a/keyboards/salicylic_acid3/nknl7jp/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7jp/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -55,7 +57,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json index 545c6285e4..75517a7d40 100644 --- a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json @@ -76,7 +76,8 @@ "rows": ["D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { diff --git a/keyboards/salicylic_acid3/setta21/rules.mk b/keyboards/salicylic_acid3/setta21/rules.mk new file mode 100644 index 0000000000..02e68b5748 --- /dev/null +++ b/keyboards/salicylic_acid3/setta21/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = salicylic_acid3/setta21/rev1 diff --git a/keyboards/sam/s80/keyboard.json b/keyboards/sam/s80/keyboard.json index 8e76198ebb..c721efdbd7 100644 --- a/keyboards/sam/s80/keyboard.json +++ b/keyboards/sam/s80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "s8", "manufacturer": "Sam", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x534D", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sam/sg81m/keyboard.json b/keyboards/sam/sg81m/keyboard.json index a0133b2b86..66e0f1ab9c 100644 --- a/keyboards/sam/sg81m/keyboard.json +++ b/keyboards/sam/sg81m/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SG81M", "manufacturer": "Sam", + "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x534D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sanctified/dystopia/keyboard.json b/keyboards/sanctified/dystopia/keyboard.json index fed0ff75df..1911081fc2 100644 --- a/keyboards/sanctified/dystopia/keyboard.json +++ b/keyboards/sanctified/dystopia/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dystopia", "manufacturer": "Sanctified.Works", + "url": "", "maintainer": "Sanctified", "usb": { "vid": "0x5357", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/sandwich/keeb68/keyboard.json b/keyboards/sandwich/keeb68/keyboard.json index b452665f54..ad3ced0da2 100644 --- a/keyboards/sandwich/keeb68/keyboard.json +++ b/keyboards/sandwich/keeb68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Keeb68 (Patron Saint Edition)", "manufacturer": "sandwich", + "url": "", "maintainer": "SandwichRising", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sapuseven/macropad12/keyboard.json b/keyboards/sapuseven/macropad12/keyboard.json index 34f9b6a950..28e8c19bf8 100644 --- a/keyboards/sapuseven/macropad12/keyboard.json +++ b/keyboards/sapuseven/macropad12/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/satt/comet46/keyboard.json b/keyboards/satt/comet46/keyboard.json index cd96686d6c..0092f19c79 100644 --- a/keyboards/satt/comet46/keyboard.json +++ b/keyboards/satt/comet46/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Comet46", "manufacturer": "SatT", + "url": "", "maintainer": "SatT", "usb": { "vid": "0xFEED", diff --git a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c index 773857db1d..225c3c8084 100644 --- a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c +++ b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c @@ -17,13 +17,17 @@ enum comet46_layers _ADJUST, }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -171,7 +175,8 @@ void matrix_init_user(void) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state | default_layer_state); + uint8_t layer = get_highest_layer(layer_state); + uint8_t default_layer = biton32(eeconfig_read_default_layer()); switch (layer) { case _LOWER: set_led_red; @@ -182,14 +187,39 @@ void matrix_scan_user(void) { case _ADJUST: set_led_magenta; break; - case _COLEMAK: - set_led_white; - break; - case _DVORAK: - set_led_yellow; - break; default: - set_led_green; + switch (default_layer) { + case _COLEMAK: + set_led_white; + break; + case _DVORAK: + set_led_yellow; + break; + default: + set_led_green; + break; + } break; } }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} diff --git a/keyboards/satt/comet46/keymaps/default/keymap.c b/keyboards/satt/comet46/keymaps/default/keymap.c index 5d9f1faed7..84dd07f02a 100644 --- a/keyboards/satt/comet46/keymaps/default/keymap.c +++ b/keyboards/satt/comet46/keymaps/default/keymap.c @@ -18,13 +18,17 @@ enum comet46_layers _ADJUST, }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, +}; + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -153,16 +157,24 @@ bool oled_task_user(void) { // Layer state char layer_str[22]; oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state | default_layer_state); + uint8_t layer = get_highest_layer(layer_state); + uint8_t default_layer = get_highest_layer(eeconfig_read_default_layer()); switch (layer) { case _QWERTY: - snprintf(layer_str, sizeof(layer_str), "Qwerty"); - break; - case _COLEMAK: - snprintf(layer_str, sizeof(layer_str), "Colemak"); - break; - case _DVORAK: - snprintf(layer_str, sizeof(layer_str), "Dvorak"); + switch (default_layer) { + case _QWERTY: + snprintf(layer_str, sizeof(layer_str), "Qwerty"); + break; + case _COLEMAK: + snprintf(layer_str, sizeof(layer_str), "Colemak"); + break; + case _DVORAK: + snprintf(layer_str, sizeof(layer_str), "Dvorak"); + break; + default: + snprintf(layer_str, sizeof(layer_str), "Undef-%d", default_layer); + break; + } break; case _RAISE: snprintf(layer_str, sizeof(layer_str), "Raise"); @@ -195,5 +207,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_keylog(keycode); } #endif + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } return true; } diff --git a/keyboards/satt/vision/keyboard.json b/keyboards/satt/vision/keyboard.json index 15bbced9f5..88ec732cd6 100644 --- a/keyboards/satt/vision/keyboard.json +++ b/keyboards/satt/vision/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vision", "manufacturer": "SatT", + "url": "", "maintainer": "SatT", "usb": { "vid": "0x5454", diff --git a/keyboards/sauce/mild/keyboard.json b/keyboards/sauce/mild/keyboard.json index 4546d40884..5f827ec4be 100644 --- a/keyboards/sauce/mild/keyboard.json +++ b/keyboards/sauce/mild/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Mild", "manufacturer": "Sauce", + "url": "", "maintainer": "andyywz", "usb": { "vid": "0x8367", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sawnsprojects/amber80/solder/keyboard.json b/keyboards/sawnsprojects/amber80/solder/keyboard.json index 37f8382f53..dc8e718fd6 100644 --- a/keyboards/sawnsprojects/amber80/solder/keyboard.json +++ b/keyboards/sawnsprojects/amber80/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Amber80 Solder", "manufacturer": "SawnsProjects X Yuutsu X Zlane", + "url": "", "maintainer": "SawnsProjects", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/bunnygirl65/keyboard.json b/keyboards/sawnsprojects/bunnygirl65/keyboard.json index b23f41e7d7..810d481b5d 100644 --- a/keyboards/sawnsprojects/bunnygirl65/keyboard.json +++ b/keyboards/sawnsprojects/bunnygirl65/keyboard.json @@ -1,5 +1,5 @@ { - "manufacturer": "auaena", + "manufacturer": "auaera", "keyboard_name": "Bunnygirl65", "maintainer": "MaiTheSan", "bootloader": "stm32-dfu", @@ -15,16 +15,13 @@ "rows": ["B4", "A15", "A3", "A8", "B14"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", + "force_nkro": true, "pid": "0x00A2", "vid": "0x5350" }, - "host": { - "default": { - "nkro": true - } - }, "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], "layouts": { "LAYOUT_65_ansi_blocker_tsangan": { diff --git a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json index acb0a914cc..7586ed5a34 100644 --- a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Eclipse60", "manufacturer": "Salane", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x534C", @@ -18,13 +19,17 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, "rgblight": { "led_count": 18, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json index cf65aca3b4..80ae2558f2 100644 --- a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "tinyneko", "manufacturer": "Salane", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x534C", @@ -18,13 +19,17 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, "rgblight": { "led_count": 18, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, + "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json b/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json index 17c0b00f94..4f5ca808ce 100644 --- a/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json @@ -46,8 +46,7 @@ "bootloader": "atmel-dfu", "layout_aliases": { "LAYOUT_60_ansi_arrow_split_bs_7u_spc": "LAYOUT_60_ansi_arrow_tsangan_split_bs", - "LAYOUT_60_ansi_arrow_7u_spc": "LAYOUT_60_ansi_arrow_tsangan", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_ansi_arrow_7u_spc": "LAYOUT_60_ansi_arrow_tsangan" }, "community_layouts": ["60_ansi", "60_ansi_arrow"], "layouts": { @@ -1115,7 +1114,7 @@ {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_hhkb/keymap.c index 69d283bfd2..de10ed2916 100644 --- a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_hhkb/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json b/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json index 9e63cefc2c..ccb9165c5b 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Krush65 - Hotswap", "manufacturer": "SawnsProjects", + "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json b/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json index 7ea0dd63d2..a72c903d8c 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Krush65 - Solder", "manufacturer": "SawnsProjects", + "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/sawnsprojects/okayu/halconf.h b/keyboards/sawnsprojects/okayu/halconf.h index 08878e9558..eb4e81c9ac 100644 --- a/keyboards/sawnsprojects/okayu/halconf.h +++ b/keyboards/sawnsprojects/okayu/halconf.h @@ -4,5 +4,6 @@ #pragma once #define HAL_USE_SPI TRUE - +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/sawnsprojects/okayu/info.json b/keyboards/sawnsprojects/okayu/info.json index 21c5e899ce..8974359036 100644 --- a/keyboards/sawnsprojects/okayu/info.json +++ b/keyboards/sawnsprojects/okayu/info.json @@ -1,22 +1,20 @@ { "keyboard_name": "Okayu", "manufacturer": "Salane", + "url": "", "maintainer": "Mai The San", "usb": { "vid": "0x5350", "pid": "0x00A1", - "device_version": "1.0.0" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "1.0.0", + "force_nkro": true }, "features": { "bootmagic": true, "mousekey": true, "extrakey": true, "console": true, + "command": false, "nkro": true, "rgblight": true }, @@ -24,16 +22,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "matrix_pins": { "cols": ["A9", "A0", "A8", "C13", "A1", "A2", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4"], "rows": ["B3", "A15", "A3", "A10", "B14"] @@ -344,7 +338,7 @@ {"label": "K4D", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/sawnsprojects/okayu/rules.mk b/keyboards/sawnsprojects/okayu/rules.mk new file mode 100644 index 0000000000..59655554eb --- /dev/null +++ b/keyboards/sawnsprojects/okayu/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = sawnsprojects/okayu/stm32f072 \ No newline at end of file diff --git a/keyboards/sawnsprojects/plaque80/keyboard.json b/keyboards/sawnsprojects/plaque80/keyboard.json index d72186a249..dd18cc12ee 100644 --- a/keyboards/sawnsprojects/plaque80/keyboard.json +++ b/keyboards/sawnsprojects/plaque80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Plaque80", "manufacturer": "SawnsProjects", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5350", @@ -18,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, diff --git a/keyboards/sawnsprojects/re65/keyboard.json b/keyboards/sawnsprojects/re65/keyboard.json index 98f8e4ba25..45e874db6d 100644 --- a/keyboards/sawnsprojects/re65/keyboard.json +++ b/keyboards/sawnsprojects/re65/keyboard.json @@ -2,6 +2,7 @@ "keyboard_name": "RE65", "maintainer": "Salane", "manufacturer": "Mai The San", + "url": "", "processor": "RP2040", "bootloader": "rp2040", "usb": { @@ -13,6 +14,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgblight": true, "encoder": true diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json index 92a798e4b2..7049be25cf 100644 --- a/keyboards/sawnsprojects/satxri6key/keyboard.json +++ b/keyboards/sawnsprojects/satxri6key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Satxri6key", "manufacturer": "MaiTheSan", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5350", @@ -82,6 +83,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/sawnsprojects/vcl65/solder/keyboard.json b/keyboards/sawnsprojects/vcl65/solder/keyboard.json index 3e2e2a8750..4fc0f29766 100644 --- a/keyboards/sawnsprojects/vcl65/solder/keyboard.json +++ b/keyboards/sawnsprojects/vcl65/solder/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "VCL65", "manufacturer": "VCL x SawnsProjects", + "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/scatter42/keyboard.json b/keyboards/scatter42/keyboard.json index 5907a4d754..7bb7a63ffe 100644 --- a/keyboards/scatter42/keyboard.json +++ b/keyboards/scatter42/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/sck/gtm/keyboard.json b/keyboards/sck/gtm/keyboard.json index de82d93a16..7ed3915114 100644 --- a/keyboards/sck/gtm/keyboard.json +++ b/keyboards/sck/gtm/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GTM Pad", "manufacturer": "SpaceCityKeyboards", + "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0xFEED", @@ -27,6 +28,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": false, diff --git a/keyboards/sck/neiso/keyboard.json b/keyboards/sck/neiso/keyboard.json index 93d3e5a905..15cec58849 100644 --- a/keyboards/sck/neiso/keyboard.json +++ b/keyboards/sck/neiso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEISO", "manufacturer": "Space City Keyboards", + "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0xFEED", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": false, "mousekey": false, @@ -25,7 +27,8 @@ "rows": ["F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sck/osa/keyboard.json b/keyboards/sck/osa/keyboard.json index caff86da75..1cdd59367b 100644 --- a/keyboards/sck/osa/keyboard.json +++ b/keyboards/sck/osa/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OSA", "manufacturer": "Space City Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5343", diff --git a/keyboards/scottokeebs/scotto34/keyboard.json b/keyboards/scottokeebs/scotto34/keyboard.json index 573768914b..ecf3fed933 100644 --- a/keyboards/scottokeebs/scotto34/keyboard.json +++ b/keyboards/scottokeebs/scotto34/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/scottokeebs/scotto69/keyboard.json b/keyboards/scottokeebs/scotto69/keyboard.json deleted file mode 100644 index f229004a61..0000000000 --- a/keyboards/scottokeebs/scotto69/keyboard.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "manufacturer": "ScottoKeebs", - "keyboard_name": "Scotto69 (PCB Edition)", - "maintainer": "joe-scotto", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B15", "pin_b": "B14"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["A7", "A8", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C14", "C15", "A3", "A4", "A5", "A6"], - "rows": ["B11", "B10", "B2", "B1", "B0"] - }, - "processor": "STM32F072", - "url": "https://scottokeebs.com", - "usb": { - "device_version": "1.0.0", - "pid": "0x0030", - "vid": "0x534B" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0.5}, - {"matrix": [0, 2], "x": 3, "y": 0.5}, - {"matrix": [0, 3], "x": 4, "y": 0.5}, - {"matrix": [0, 4], "x": 5, "y": 0.5}, - {"matrix": [0, 5], "x": 6, "y": 0.5}, - {"matrix": [0, 6], "x": 7, "y": 0.5}, - {"matrix": [0, 7], "x": 8, "y": 0.5}, - {"matrix": [0, 8], "x": 9, "y": 0.5}, - {"matrix": [0, 9], "x": 10, "y": 0.5}, - {"matrix": [0, 10], "x": 11, "y": 0.5}, - {"matrix": [0, 11], "x": 12, "y": 0.5}, - {"matrix": [0, 12], "x": 13, "y": 0.5}, - {"matrix": [0, 13], "x": 15, "y": 0}, - {"matrix": [0, 14], "x": 16, "y": 0}, - {"matrix": [0, 15], "x": 17, "y": 0}, - {"matrix": [0, 16], "x": 18, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 2, "y": 1.5}, - {"matrix": [1, 2], "x": 3, "y": 1.5}, - {"matrix": [1, 3], "x": 4, "y": 1.5}, - {"matrix": [1, 4], "x": 5, "y": 1.5}, - {"matrix": [1, 5], "x": 6, "y": 1.5}, - {"matrix": [1, 6], "x": 7, "y": 1.5}, - {"matrix": [1, 7], "x": 8, "y": 1.5}, - {"matrix": [1, 8], "x": 9, "y": 1.5}, - {"matrix": [1, 9], "x": 10, "y": 1.5}, - {"matrix": [1, 10], "x": 11, "y": 1.5}, - {"matrix": [1, 11], "x": 12, "y": 1.5}, - {"matrix": [1, 12], "x": 13, "y": 1.5}, - {"matrix": [1, 13], "x": 15, "y": 1}, - {"matrix": [1, 14], "x": 16, "y": 1}, - {"matrix": [1, 15], "x": 17, "y": 1}, - {"matrix": [1, 16], "x": 18, "y": 1, "h": 2}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 2, "y": 2.5}, - {"matrix": [2, 2], "x": 3, "y": 2.5}, - {"matrix": [2, 3], "x": 4, "y": 2.5}, - {"matrix": [2, 4], "x": 5, "y": 2.5}, - {"matrix": [2, 5], "x": 6, "y": 2.5}, - {"matrix": [2, 6], "x": 7, "y": 2.5}, - {"matrix": [2, 7], "x": 8, "y": 2.5}, - {"matrix": [2, 8], "x": 9, "y": 2.5}, - {"matrix": [2, 9], "x": 10, "y": 2.5}, - {"matrix": [2, 10], "x": 11, "y": 2.5}, - {"matrix": [2, 11], "x": 12, "y": 2.5}, - {"matrix": [2, 12], "x": 13, "y": 2.5}, - {"matrix": [2, 13], "x": 15, "y": 2}, - {"matrix": [2, 14], "x": 16, "y": 2}, - {"matrix": [2, 15], "x": 17, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 2, "y": 3.5}, - {"matrix": [3, 2], "x": 3, "y": 3.5}, - {"matrix": [3, 3], "x": 4, "y": 3.5}, - {"matrix": [3, 4], "x": 5, "y": 3.5}, - {"matrix": [3, 5], "x": 6, "y": 3.5}, - {"matrix": [3, 6], "x": 7, "y": 3.5, "w": 2}, - {"matrix": [3, 8], "x": 9, "y": 3.5}, - {"matrix": [3, 9], "x": 10, "y": 3.53}, - {"matrix": [3, 10], "x": 11, "y": 3.53}, - {"matrix": [3, 11], "x": 12, "y": 3.5}, - {"matrix": [3, 12], "x": 13, "y": 3.5}, - {"matrix": [3, 13], "x": 15, "y": 3}, - {"matrix": [3, 14], "x": 16, "y": 3}, - {"matrix": [3, 15], "x": 17, "y": 3}, - {"matrix": [3, 16], "x": 18, "y": 3, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 13], "x": 15, "y": 4, "w": 2}, - {"matrix": [4, 15], "x": 17, "y": 4} - ] - } - } -} diff --git a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c deleted file mode 100644 index 96ee0e1877..0000000000 --- a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2024 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LNUM, KC_SLSH, KC_ASTR, KC_MINS, - KC_2, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_QUOT, KC_7, KC_8, KC_9, KC_PLUS, - KC_MUTE, KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_RSFT, KC_4, KC_5, KC_6, - KC_4, KC_ESC, KC_NO, KC_NO, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_ENT, - KC_5, KC_0, KC_DOT - ), - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/scottokeebs/scotto69/keymaps/default/rules.mk b/keyboards/scottokeebs/scotto69/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/scottokeebs/scotto69/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/scottokeebs/scotto69/readme.md b/keyboards/scottokeebs/scotto69/readme.md deleted file mode 100644 index d46b93b70b..0000000000 --- a/keyboards/scottokeebs/scotto69/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Scotto69 (PCB Edition) - -![Scotto69 (PCB Edition)](https://i.imgur.com/WNtAzcG.jpeg) - -The Scotto69 (PCB Edition) is a standard 4x12 ortholinear keyboard with a numpad on the right and 5 macro keys on the left with an optional encoder. - -* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -* Hardware Supported: STM32F072CBT6 -* Hardware Availability: [ScottoKeebs](https://scottokeebs.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/scottokeebs/scotto69:default - -Flashing example for this keyboard: - - make handwired/scottokeebs/scotto69:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -# Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/scottokeebs/scottowing/keyboard.json b/keyboards/scottokeebs/scottowing/keyboard.json index 9fc5571646..770e2fd18e 100644 --- a/keyboards/scottokeebs/scottowing/keyboard.json +++ b/keyboards/scottokeebs/scottowing/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sdrakbs/sdrakb00/keyboard.json b/keyboards/sdrakbs/sdrakb00/keyboard.json deleted file mode 100644 index f9e24cc63f..0000000000 --- a/keyboards/sdrakbs/sdrakb00/keyboard.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "manufacturer": "Diego Andres Rabaioli", - "keyboard_name": "sdrakb00", - "maintainer": "drabaioli", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B6", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["F0", "F1", "F4", "F5"], - "rows": ["D4", "D6", "D7"] - }, - "processor": "atmega32u4", - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4} - ], - "max_brightness": 100, - "sleep": true, - "timeout": 300000 - }, - "url": "https://github.com/drabaioli/SdraKb00", - "usb": { - "device_version": "1.0.0", - "pid": "0x4200", - "vid": "0x7331" - }, - "ws2812": { - "pin": "B0" - }, - "layouts": { - "LAYOUT_ortho_3x4": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0, "encoder": 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": [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} - ] - } - } -} diff --git a/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c b/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c deleted file mode 100644 index c5481b1076..0000000000 --- a/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -/* Keymap for 3x4 Macropad - * - * Layer 0 (Base Layer) - Numpad layout with mute button and layer toggle: - * ,----------------------, - * | 7 | 8 | 9 | MUTE | - * |-------+-------+-------+--------| - * | 4 | 5 | 6 | Layer1 | - * |-------+-------+-------+--------| - * | 1 | 2 | 3 | 0 | - * `-----------------------^--------' - * - * Layer 1 (Function Layer) - Accessed by holding MO(1): - * ,----------------------, - * | BKSP | / | - | ---- | - * |-------+-------+-------+--------| - * | = | * | + | ---- | - * |-------+-------+-------+--------| - * | ENTER | ---- | ---- | . | - * `-----------------------^--------' - * - * The base layer (0) provides standard numpad functionality with: - * - Numbers 0-9 in traditional numpad layout - * - Mute button in top right - * - Layer 1 momentary toggle (MO1) in middle right - * - * The function layer (1) adds: - * - Basic mathematical operators (+, -, *, /) - * - Backspace, Enter, and decimal point - * - Equal sign for calculations - * - Empty slots marked as ---- (KC_NO) - */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ortho_3x4( - KC_KP_7, KC_KP_8, KC_KP_9, KC_MUTE, - KC_KP_4, KC_KP_5, KC_KP_6, MO(1), - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 - ), - - [1] = LAYOUT_ortho_3x4( - KC_BACKSPACE, KC_KP_SLASH, KC_KP_MINUS, _______, - KC_EQUAL, KC_KP_ASTERISK, KC_KP_PLUS, _______, - KC_ENTER, _______, _______, KC_KP_DOT - ) -}; - - -/* - * Handle layer state changes by updating RGB matrix colors - * - * Sets RGB matrix colors based on active layer: - * - Layer 0: Light green (#88FB7A) - * - Layer 1: Red - * - Other layers: Red (fallback) - */ -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case 0: - rgb_matrix_sethsv(85, 255, 251); // #88FB7A for layer 0 - break; - case 1: - rgb_matrix_sethsv(0, 255, 255); // Red for layer 1 - break; - default: - rgb_matrix_sethsv(0, 255, 255); // Red for any other layer - break; - } - return state; -} diff --git a/keyboards/sdrakbs/sdrakb00/readme.md b/keyboards/sdrakbs/sdrakb00/readme.md deleted file mode 100644 index 21e56f9595..0000000000 --- a/keyboards/sdrakbs/sdrakb00/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# sdrakb00 - -![sdrakb00](https://i.imgur.com/0HfpFqW.jpeg) - -11 keys hot-swap macropad with rotary encoder. - -Macropad features: -- 11 hot-swap keys -- Rotary encoder with push button -- AtMega32U4 MCU -- Per-key RGB led for backlighting -- USB-C connector -- On PCB SPI header -- MCU reset button -- Switch mounting plate -- Power LED indicator - -* Keyboard Maintainer: [Diego Andres Rabaioli](https://github.com/drabaioli) -* Hardware Supported: Pro Micro Atmega32u4 based macropad with 11 keys, RGB LED chain and rotary encoder -* Hardware Availability: [Get the gerbers and have fun building it your self ;)](https://github.com/drabaioli/SdraKb00) - -Build SdraKb00 firmware: - - make sdrakbs/sdrakb00:default - -Flashing SdraKb00 firmware, execute: - - make sdrakbs/sdrakb00:default:flash - -Then press the reset button on the back side of the PCB. - -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: - -* **Physical reset button** (preferred): Briefly press the button on the back of the PCB -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard - -## Default Keymap - -### Base Layer (0) -- NumPad layout (1-9, 0) -- Encoder: Volume Up/Down -- Encoder Push: Mute -- Layer Switch: Hold (1,3) key for function layer - -### Function Layer (1) -- NumPad operators (+, -, *, /) -- Enter, "=" and backspace keys -- Decimal point diff --git a/keyboards/sekigon/grs_70ec/matrix.c b/keyboards/sekigon/grs_70ec/matrix.c index 718423e57b..926ed6f813 100644 --- a/keyboards/sekigon/grs_70ec/matrix.c +++ b/keyboards/sekigon/grs_70ec/matrix.c @@ -40,7 +40,7 @@ extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values // row offsets for each hand -static uint8_t thisHand, thatHand; +uint8_t thisHand, thatHand; // user-defined overridable functions __attribute__((weak)) void matrix_slave_scan_user(void) {} diff --git a/keyboards/sendyyeah/75pixels/keyboard.json b/keyboards/sendyyeah/75pixels/keyboard.json index 0d23952052..a9300bb19a 100644 --- a/keyboards/sendyyeah/75pixels/keyboard.json +++ b/keyboards/sendyyeah/75pixels/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["B6", "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x15"], "layouts": { "LAYOUT_ortho_5x15": { diff --git a/keyboards/sendyyeah/bevi/keyboard.json b/keyboards/sendyyeah/bevi/keyboard.json index e408ded1b4..e0c54f03db 100644 --- a/keyboards/sendyyeah/bevi/keyboard.json +++ b/keyboards/sendyyeah/bevi/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -19,7 +21,8 @@ "rows": ["B3", "B2", "D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sendyyeah/pix/keyboard.json b/keyboards/sendyyeah/pix/keyboard.json index 6f81d20d01..6a9864cc35 100644 --- a/keyboards/sendyyeah/pix/keyboard.json +++ b/keyboards/sendyyeah/pix/keyboard.json @@ -34,9 +34,12 @@ {"pin_a": "B1", "pin_b": "B3"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/senselessclay/ck60/keyboard.json b/keyboards/senselessclay/ck60/keyboard.json index d4fa5336e6..0208ea24bc 100644 --- a/keyboards/senselessclay/ck60/keyboard.json +++ b/keyboards/senselessclay/ck60/keyboard.json @@ -41,6 +41,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/ck65/keyboard.json b/keyboards/senselessclay/ck65/keyboard.json index 294d002c5b..150479177d 100644 --- a/keyboards/senselessclay/ck65/keyboard.json +++ b/keyboards/senselessclay/ck65/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/gos65/keyboard.json b/keyboards/senselessclay/gos65/keyboard.json index 783f3a5c82..ee6bb5727a 100644 --- a/keyboards/senselessclay/gos65/keyboard.json +++ b/keyboards/senselessclay/gos65/keyboard.json @@ -33,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/had60/keyboard.json b/keyboards/senselessclay/had60/keyboard.json index 6857ea4ab2..ca05589a2e 100644 --- a/keyboards/senselessclay/had60/keyboard.json +++ b/keyboards/senselessclay/had60/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -31,15 +33,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -321,7 +319,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/sentraq/s60_x/default/keyboard.json b/keyboards/sentraq/s60_x/default/keyboard.json index f55df16eb4..1f65b90775 100644 --- a/keyboards/sentraq/s60_x/default/keyboard.json +++ b/keyboards/sentraq/s60_x/default/keyboard.json @@ -2,6 +2,8 @@ "keyboard_name": "S60-X", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/sentraq/s60_x/info.json b/keyboards/sentraq/s60_x/info.json index f8a28d9e85..11ebdcd7d1 100644 --- a/keyboards/sentraq/s60_x/info.json +++ b/keyboards/sentraq/s60_x/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Sentraq", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/sentraq/s60_x/rgb/keyboard.json b/keyboards/sentraq/s60_x/rgb/keyboard.json index 08bd224d8e..c2be7f4356 100644 --- a/keyboards/sentraq/s60_x/rgb/keyboard.json +++ b/keyboards/sentraq/s60_x/rgb/keyboard.json @@ -3,6 +3,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sentraq/s65_plus/keyboard.json b/keyboards/sentraq/s65_plus/keyboard.json index 70c75928d7..01e2f0a275 100644 --- a/keyboards/sentraq/s65_plus/keyboard.json +++ b/keyboards/sentraq/s65_plus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "S65-Plus", "manufacturer": "Sentraq", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/sentraq/s65_x/keyboard.json b/keyboards/sentraq/s65_x/keyboard.json index a248e491e8..0d0b0fc5fd 100644 --- a/keyboards/sentraq/s65_x/keyboard.json +++ b/keyboards/sentraq/s65_x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "S65-X PCB", "manufacturer": "Sentraq", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/sergiopoverony/creator_pro/keyboard.json b/keyboards/sergiopoverony/creator_pro/keyboard.json index f5d2fb0afb..9b3cafe183 100644 --- a/keyboards/sergiopoverony/creator_pro/keyboard.json +++ b/keyboards/sergiopoverony/creator_pro/keyboard.json @@ -13,7 +13,8 @@ {"pin_a": "D2", "pin_b": "D3", "resolution": 1} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/sergiopoverony/creator_pro/keymaps/default/keymap.c b/keyboards/sergiopoverony/creator_pro/keymaps/default/keymap.c index 11ee5a85d7..d29621929b 100644 --- a/keyboards/sergiopoverony/creator_pro/keymaps/default/keymap.c +++ b/keyboards/sergiopoverony/creator_pro/keymaps/default/keymap.c @@ -39,9 +39,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { case _RED: if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } break; diff --git a/keyboards/sets3n/kk980/keyboard.json b/keyboards/sets3n/kk980/keyboard.json index 7fd2d56403..1589b0a7b4 100644 --- a/keyboards/sets3n/kk980/keyboard.json +++ b/keyboards/sets3n/kk980/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sha/keyboard.json b/keyboards/sha/keyboard.json index e361334e00..8bb4091843 100644 --- a/keyboards/sha/keyboard.json +++ b/keyboards/sha/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/shambles/keyboard.json b/keyboards/shambles/keyboard.json index ee134b721b..34ec240cae 100644 --- a/keyboards/shambles/keyboard.json +++ b/keyboards/shambles/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Shambles TKL", "manufacturer": "OsciX", + "url": "", "maintainer": "OsciX", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/shandoncodes/flygone60/rev3/keyboard.json b/keyboards/shandoncodes/flygone60/rev3/keyboard.json index 4b83963648..6e2e62701f 100644 --- a/keyboards/shandoncodes/flygone60/rev3/keyboard.json +++ b/keyboards/shandoncodes/flygone60/rev3/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/shandoncodes/mino/hotswap/keyboard.json b/keyboards/shandoncodes/mino/hotswap/keyboard.json index d9f460b391..5bd0b933ce 100644 --- a/keyboards/shandoncodes/mino/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino/hotswap/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -27,7 +29,8 @@ "rows": ["D3", "C6", "D4", "D2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json index 9103f08175..f181c610ed 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -17,6 +19,7 @@ "rows": ["B14", "B10", "F0", "C15", "C14"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json index f89fffa4c5..2b717c4c59 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -17,6 +19,7 @@ "rows": ["B9", "B8", "A2", "A1", "A0"] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/shandoncodes/riot_pad/keyboard.json b/keyboards/shandoncodes/riot_pad/keyboard.json index 2c52ee5439..7ecb52d8e0 100644 --- a/keyboards/shandoncodes/riot_pad/keyboard.json +++ b/keyboards/shandoncodes/riot_pad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "nkro": true, "rgblight": true, "extrakey": true @@ -30,6 +32,7 @@ }, "led_count": 12 }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x1000", diff --git a/keyboards/shapeshifter4060/keyboard.json b/keyboards/shapeshifter4060/keyboard.json index 5f7d7d3150..9274923088 100644 --- a/keyboards/shapeshifter4060/keyboard.json +++ b/keyboards/shapeshifter4060/keyboard.json @@ -27,7 +27,8 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sharkoon/skiller_sgk50_s2/halconf.h b/keyboards/sharkoon/skiller_sgk50_s2/halconf.h index 50251bd9cb..9d456a5106 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s2/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json index ff4ad9a4f7..39d59ffa55 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -183,6 +185,7 @@ "val_steps": 28, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3662", diff --git a/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c index 823d779b7f..01e78f3124 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( - EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_SPDD, RM_SPDU, _______, _______, KC_PSCR, KC_SCRL, _______, _______, _______, _______, _______, _______, + EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_SPD, RGB_SPI, _______, _______, KC_PSCR, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RM_HUEU, RM_VALD, RM_NEXT, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD, _______, _______ ), }; diff --git a/keyboards/sharkoon/skiller_sgk50_s3/halconf.h b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h index 872e0217df..8760386e81 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json index 9d02cc1326..6535ec63b7 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -167,6 +169,7 @@ "val_steps": 28, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3663", diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c index 38a52dad28..dd09e56060 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RM_SATU, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_SAI, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RM_HUEU, RM_VALD, RM_NEXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD ), }; diff --git a/keyboards/sharkoon/skiller_sgk50_s4/halconf.h b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h index 50251bd9cb..9d456a5106 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json index 4161e19d7c..7d36616e52 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json @@ -13,13 +13,15 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, "rgb_matrix": true }, "matrix_pins": { - "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "C6", "C7", "C8", "C9", "A8"], + "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7"], "rows": ["A0", "A1", "A2", "A3", "C13"] }, "processor": "WB32FQ95", @@ -75,15 +77,11 @@ "driver": "ws2812", "layout": [ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, - {"matrix": [4, 9], "x": 154, "y": 64, "flags": 4}, {"matrix": [4, 10], "x": 172, "y": 64, "flags": 4}, {"matrix": [4, 11], "x": 190, "y": 64, "flags": 4}, {"matrix": [4, 12], "x": 207, "y": 64, "flags": 4}, - {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4}, - {"matrix": [3, 15], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, - {"matrix": [3, 12], "x": 200, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, @@ -95,7 +93,6 @@ {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, - {"matrix": [4, 3], "x": 52, "y": 64, "flags": 4}, {"matrix": [4, 2], "x": 34, "y": 64, "flags": 4}, {"matrix": [4, 1], "x": 17, "y": 64, "flags": 4}, {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, @@ -112,10 +109,8 @@ {"matrix": [2, 9], "x": 155, "y": 32, "flags": 4}, {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 200, "y": 32, "flags": 4}, - {"matrix": [2, 13], "x": 224, "y": 32, "flags": 4}, - {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 224, "y": 16, "flags": 4}, {"matrix": [1, 12], "x": 207, "y": 16, "flags": 4}, {"matrix": [1, 11], "x": 190, "y": 16, "flags": 4}, {"matrix": [1, 10], "x": 172, "y": 16, "flags": 4}, @@ -142,22 +137,21 @@ {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 210, "y": 0, "flags": 4}, - {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, - {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4} + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4} ], "max_brightness": 110, "sleep": true, "val_steps": 28 }, + "url": "", "usb": { - "device_version": "1.1.0", + "device_version": "1.0.0", "pid": "0x1020", "suspend_wakeup_delay": 1000, "vid": "0x6332" }, "ws2812": { - "pin": "B15" + "pin": "A8" }, "community_layouts": ["60_ansi", "60_iso"], "layouts": { @@ -176,9 +170,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 0.5}, - {"matrix": [0, 14], "x": 13.5, "y": 0}, - {"matrix": [0, 15], "x": 14.5, "y": 0, "w": 0.5}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -192,8 +184,7 @@ {"matrix": [1, 10], "x": 10.5, "y": 1}, {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1}, - {"matrix": [1, 14], "x": 14.5, "y": 1, "w": 0.5}, + {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -206,34 +197,28 @@ {"matrix": [2, 9], "x": 9.75, "y": 2}, {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 0.75}, - {"matrix": [3, 1], "x": 0.75, "y": 3, "w": 0.5}, - {"matrix": [3, 2], "x": 1.25, "y": 3}, - {"matrix": [3, 3], "x": 2.25, "y": 3}, - {"matrix": [3, 4], "x": 3.25, "y": 3}, - {"matrix": [3, 5], "x": 4.25, "y": 3}, - {"matrix": [3, 6], "x": 5.25, "y": 3}, - {"matrix": [3, 7], "x": 6.25, "y": 3}, - {"matrix": [3, 8], "x": 7.25, "y": 3}, - {"matrix": [3, 9], "x": 8.25, "y": 3}, - {"matrix": [3, 10], "x": 9.25, "y": 3}, - {"matrix": [3, 11], "x": 10.25, "y": 3}, - {"matrix": [3, 12], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3}, - {"matrix": [3, 14], "x": 13.25, "y": 3, "w": 0.75}, - {"matrix": [3, 15], "x": 14, "y": 3}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 3.75, "y": 4}, - {"matrix": [4, 6], "x": 4.75, "y": 4, "w": 4.25}, - {"matrix": [4, 9], "x": 9, "y": 4}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_ansi": { @@ -251,7 +236,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -265,7 +250,7 @@ {"matrix": [1, 10], "x": 10.5, "y": 1}, {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -279,18 +264,18 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 3], "x": 2.25, "y": 3}, - {"matrix": [3, 4], "x": 3.25, "y": 3}, - {"matrix": [3, 5], "x": 4.25, "y": 3}, - {"matrix": [3, 6], "x": 5.25, "y": 3}, - {"matrix": [3, 7], "x": 6.25, "y": 3}, - {"matrix": [3, 8], "x": 7.25, "y": 3}, - {"matrix": [3, 9], "x": 8.25, "y": 3}, - {"matrix": [3, 10], "x": 9.25, "y": 3}, - {"matrix": [3, 11], "x": 10.25, "y": 3}, - {"matrix": [3, 12], "x": 11.25, "y": 3}, - {"matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -298,7 +283,7 @@ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_iso": { @@ -316,7 +301,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -343,20 +328,20 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 1.25, "y": 3}, - {"matrix": [3, 3], "x": 2.25, "y": 3}, - {"matrix": [3, 4], "x": 3.25, "y": 3}, - {"matrix": [3, 5], "x": 4.25, "y": 3}, - {"matrix": [3, 6], "x": 5.25, "y": 3}, - {"matrix": [3, 7], "x": 6.25, "y": 3}, - {"matrix": [3, 8], "x": 7.25, "y": 3}, - {"matrix": [3, 9], "x": 8.25, "y": 3}, - {"matrix": [3, 10], "x": 9.25, "y": 3}, - {"matrix": [3, 11], "x": 10.25, "y": 3}, - {"matrix": [3, 12], "x": 11.25, "y": 3}, - {"matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -364,7 +349,7 @@ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] } } diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c index 9a9e207113..84e72510d7 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c @@ -4,19 +4,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_iso( + [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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL ), - [1] = LAYOUT_60_iso( + [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, KC_DEL, - _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, - _______, _______, _______, _______, _______, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, RM_VALU, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALD, _______, - _______, GU_TOGG, _______, _______, _______, _______, RM_HUEU, RM_NEXT + _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, RGB_VAI, + _______, _______, _______, _______, _______, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAD, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_HUI, RGB_MOD ) }; diff --git a/keyboards/shiro/keyboard.json b/keyboards/shiro/keyboard.json index 141dd61847..c401126591 100644 --- a/keyboards/shiro/keyboard.json +++ b/keyboards/shiro/keyboard.json @@ -27,7 +27,8 @@ "rows": ["D4", "C6", "D7", "E6", "B4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/shk9/keyboard.json b/keyboards/shk9/keyboard.json index fc769aaec4..968f2d91f7 100644 --- a/keyboards/shk9/keyboard.json +++ b/keyboards/shk9/keyboard.json @@ -11,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/shoc/keyboard.json b/keyboards/shoc/keyboard.json index 2fbf06c5e3..f044ab1b4e 100644 --- a/keyboards/shoc/keyboard.json +++ b/keyboards/shoc/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false, @@ -21,7 +23,8 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B6", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/shorty/keyboard.json b/keyboards/shorty/keyboard.json deleted file mode 100644 index 8310891c84..0000000000 --- a/keyboards/shorty/keyboard.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "manufacturer": "Hawtkeys", - "keyboard_name": "shorty", - "maintainer": "hawtkeys", - "bootloader": "rp2040", - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "GP28", "pin_b": "GP27"}, - {"pin_a": "GP3", "pin_b": "GP4"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP14", "GP13", "GP12"], - "rows": ["GP11", "GP10", "GP9", "GP29", "GP2"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x5400", - "vid": "0x5453" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [3, 0], "x": 0, "y": 0}, - {"matrix": [4, 0], "x": 2, "y": 0}, - {"matrix": [0, 0], "x": 0, "y": 1}, - {"matrix": [0, 1], "x": 1, "y": 1}, - {"matrix": [0, 2], "x": 2, "y": 1}, - {"matrix": [1, 0], "x": 0, "y": 2}, - {"matrix": [1, 1], "x": 1, "y": 2}, - {"matrix": [1, 2], "x": 2, "y": 2}, - {"matrix": [2, 0], "x": 0, "y": 3}, - {"matrix": [2, 1], "x": 1, "y": 3}, - {"matrix": [2, 2], "x": 2, "y": 3} - ] - } - } -} diff --git a/keyboards/shorty/keymaps/default/keymap.c b/keyboards/shorty/keymaps/default/keymap.c deleted file mode 100644 index ef4bbba7ef..0000000000 --- a/keyboards/shorty/keymaps/default/keymap.c +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_A, KC_D, - KC_P7, KC_P8, KC_P9, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 - ) -}; - -#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(MS_WHLD, MS_WHLU) } -}; -#endif diff --git a/keyboards/shorty/readme.md b/keyboards/shorty/readme.md deleted file mode 100644 index 23f023b92c..0000000000 --- a/keyboards/shorty/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Shorty Zero - -![Shorty Zero by hawtkeys.com](https://i.imgur.com/hoMHYLW.png) - -The Shorty Zero is a 3x3 customizable macropad designed for productivity, gaming, and creative workflows, featuring programmable keys and rotary knobs. - -* Keyboard Maintainer: [Hawtkeys](https://github.com/hawtkeys) -* Hardware Supported: Raspberry Pi Pico, Hawtkeys Shorty Zero PCB -* Hardware Availability: [Available @ hawtkeys.com](https://hawtkeys.com) - -Make example for this keyboard (after setting up your build environment): - - make shorty:default - -Flashing example for this keyboard: - - make shorty:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/shostudio/arc/keyboard.json b/keyboards/shostudio/arc/keyboard.json index c1dd12e3db..33f9deb866 100644 --- a/keyboards/shostudio/arc/keyboard.json +++ b/keyboards/shostudio/arc/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ARC", "manufacturer": "Mechlovin Studio", + "url": "", "maintainer": "Shostudio", "usb": { "vid": "0x5050", diff --git a/keyboards/shuguet/shu89/keyboard.json b/keyboards/shuguet/shu89/keyboard.json deleted file mode 100644 index c3e0d0e61a..0000000000 --- a/keyboards/shuguet/shu89/keyboard.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "keyboard_name": "shu89", - "manufacturer": "shuguet", - "url": "https://github.com/shuguet/split89", - "maintainer": "shuguet", - "usb": { - "vid": "0x5348", - "pid": "0x0001", - "device_version": "0.0.1" - }, - "features": { - "rgb_matrix": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], - "rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6"] - }, - "ws2812": { - "driver": "vendor", - "pin": "GP7" - }, - "diode_direction": "COL2ROW", - "split": { - "enabled": true, - "serial": { - "driver": "vendor", - "pin": "GP9" - }, - "handedness": { - "pin": "GP0" - }, - "matrix_pins": { - "right": { - "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], - "rows": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1"] - } - } - }, - "processor": "RP2040", - "bootloader": "rp2040", - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "matrix": [0, 4], "x": 0, "y": 0}, - {"label": "F1", "matrix": [0, 5], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 6], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 7], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 8], "x": 5, "y": 0}, - {"label": "F5", "matrix": [0, 9], "x": 6, "y": 0}, - - {"label": "F6", "matrix": [6, 0], "x": 10, "y": 0}, - {"label": "F7", "matrix": [6, 1], "x": 11, "y": 0}, - {"label": "F8", "matrix": [6, 2], "x": 12, "y": 0}, - {"label": "F9", "matrix": [6, 3], "x": 13.5, "y": 0}, - {"label": "F10", "matrix": [6, 4], "x": 14.5, "y": 0}, - {"label": "F11", "matrix": [6, 5], "x": 15.5, "y": 0}, - {"label": "F12", "matrix": [6, 6], "x": 16.5, "y": 0}, - {"label": "PrtSc", "matrix": [6, 7], "x": 17.75, "y": 0}, - {"label": "Scroll Lock", "matrix": [6, 8], "x": 18.75, "y": 0}, - {"label": "Pause", "matrix": [6, 9], "x": 19.75, "y": 0}, - - - {"label": "~", "matrix": [2, 4], "x": 0, "y": 1.5}, - {"label": "1!", "matrix": [1, 4], "x": 1, "y": 1.5}, - {"label": "2@", "matrix": [1, 5], "x": 2, "y": 1.5}, - {"label": "3#", "matrix": [1, 6], "x": 3, "y": 1.5}, - {"label": "4$", "matrix": [1, 7], "x": 4, "y": 1.5}, - {"label": "5%", "matrix": [1, 8], "x": 5, "y": 1.5}, - {"label": "6^", "matrix": [1, 9], "x": 6, "y": 1.5}, - - {"label": "7&", "matrix": [7, 0], "x": 9.5, "y": 1.5}, - {"label": "8*", "matrix": [7, 1], "x": 10.5, "y": 1.5}, - {"label": "9(", "matrix": [7, 2], "x": 11.5, "y": 1.5}, - {"label": "0)", "matrix": [7, 3], "x": 12.5, "y": 1.5}, - {"label": "-_", "matrix": [7, 4], "x": 13.5, "y": 1.5}, - {"label": "=+", "matrix": [7, 5], "x": 14.5, "y": 1.5}, - {"label": "Backspace", "matrix": [7, 6], "x": 15.5, "y": 1.5, "w": 2}, - {"label": "Insert", "matrix": [7, 7], "x": 17.75, "y": 1.5}, - {"label": "Home", "matrix": [7, 8], "x": 18.75, "y": 1.5}, - {"label": "PgUp", "matrix": [7, 9], "x": 19.75, "y": 1.5}, - - - {"label": "Tab", "matrix": [3, 4], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "Q", "matrix": [2, 5], "x": 1.5, "y": 2.5}, - {"label": "W", "matrix": [2, 6], "x": 2.5, "y": 2.5}, - {"label": "E", "matrix": [2, 7], "x": 3.5, "y": 2.5}, - {"label": "R", "matrix": [2, 8], "x": 4.5, "y": 2.5}, - {"label": "T", "matrix": [2, 9], "x": 5.5, "y": 2.5}, - - {"label": "Y", "matrix": [9, 0], "x": 9, "y": 2.5}, - {"label": "U", "matrix": [8, 0], "x": 10, "y": 2.5}, - {"label": "I", "matrix": [8, 1], "x": 11, "y": 2.5}, - {"label": "O", "matrix": [8, 2], "x": 12, "y": 2.5}, - {"label": "P", "matrix": [8, 3], "x": 13, "y": 2.5}, - {"label": "{", "matrix": [8, 4], "x": 14, "y": 2.5}, - {"label": "}", "matrix": [8, 5], "x": 15, "y": 2.5}, - {"label": "|", "matrix": [8, 6], "x": 16, "y": 2.5, "w": 1.5}, - {"label": "Delete", "matrix": [8, 7], "x": 17.75, "y": 2.5}, - {"label": "End", "matrix": [8, 8], "x": 18.75, "y": 2.5}, - {"label": "PgDn", "matrix": [8, 9], "x": 19.75, "y": 2.5}, - - - {"label": "Caps Lock", "matrix": [4, 4], "x": 0, "y": 3.5, "w": 1.75}, - {"label": "A", "matrix": [3, 5], "x": 1.75, "y": 3.5}, - {"label": "S", "matrix": [3, 6], "x": 2.75, "y": 3.5}, - {"label": "D", "matrix": [3, 7], "x": 3.75, "y": 3.5}, - {"label": "F", "matrix": [3, 8], "x": 4.75, "y": 3.5}, - {"label": "G", "matrix": [3, 9], "x": 5.75, "y": 3.5}, - - {"label": "H", "matrix": [10, 0], "x": 9.25, "y": 3.5}, - {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3.5}, - {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3.5}, - {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3.5}, - {"label": ":", "matrix": [9, 4], "x": 13.25, "y": 3.5}, - {"label": "\"", "matrix": [9, 5], "x": 14.25, "y": 3.5}, - {"label": "Enter", "matrix": [9, 6], "x": 15.25, "y": 3.5, "w": 2.25}, - - - {"label": "Left Shift", "matrix": [5, 4], "x": 0, "y": 4.5, "w": 2.25}, - {"label": "Z", "matrix": [4, 5], "x": 2.25, "y": 4.5}, - {"label": "X", "matrix": [4, 6], "x": 3.25, "y": 4.5}, - {"label": "C", "matrix": [4, 7], "x": 4.25, "y": 4.5}, - {"label": "V", "matrix": [4, 8], "x": 5.25, "y": 4.5}, - {"label": "B", "matrix": [4, 9], "x": 6.25, "y": 4.5}, - - {"label": "N", "matrix": [11, 0], "x": 9.75, "y": 4.5}, - {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4.5}, - {"label": "<", "matrix": [10, 2], "x": 11.75, "y": 4.5}, - {"label": ">", "matrix": [10, 3], "x": 12.75, "y": 4.5}, - {"label": "?", "matrix": [10, 4], "x": 13.75, "y": 4.5}, - {"label": "Right Shift", "matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75}, - {"label": "Up", "matrix": [10, 8], "x": 18.75, "y": 4.5}, - - {"label": "Left Ctrl", "matrix": [5, 5], "x": 0, "y": 5.5, "w": 1.25}, - {"label": "Fn", "matrix": [5, 6], "x": 1.25, "y": 5.5, "w": 1.25}, - {"label": "Left Alt", "matrix": [5, 7], "x": 2.5, "y": 5.5, "w": 1.25}, - {"label": "Left Win", "matrix": [5, 8], "x": 3.75, "y": 5.5, "w": 1.25}, - {"label": "Left Space", "matrix": [5, 9], "x": 5, "y": 5.5, "w": 2.25}, - - {"label": "Right Space", "matrix": [11, 1], "x": 9.75, "y": 5.5, "w": 2.75}, - {"label": "Right Alt", "matrix": [11, 3], "x": 12.5, "y": 5.5, "w": 1.25}, - {"label": "Right Win", "matrix": [11, 4], "x": 13.75, "y": 5.5, "w": 1.25}, - {"label": "Menu", "matrix": [11, 5], "x": 15, "y": 5.5, "w": 1.25}, - {"label": "Right Ctrl", "matrix": [11, 6], "x": 16.25, "y": 5.5, "w": 1.25}, - {"label": "Left", "matrix": [11, 7], "x": 17.75, "y": 5.5}, - {"label": "Down", "matrix": [11, 8], "x": 18.75, "y": 5.5}, - {"label": "Right", "matrix": [11, 9], "x": 19.75, "y": 5.5} - ] - } - }, - "rgb_matrix": { - "driver": "ws2812", - "split_count": [ 36, 53 ], - "default": { - "hue": 85, - "val": 128 - }, - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "flower_blooming": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true, - "starlight": true, - "starlight_dual_hue": true, - "starlight_dual_sat": true, - "riverflow": true - }, - "layout": [ - {"matrix": [0, 4], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 104, "y": 0, "flags": 4}, - - {"matrix": [1, 4], "x": 0, "y": 13, "flags": 4}, - {"matrix": [2, 4], "x": 20, "y": 13, "flags": 4}, - {"matrix": [1, 5], "x": 32, "y": 13, "flags": 4}, - {"matrix": [1, 6], "x": 48, "y": 13, "flags": 4}, - {"matrix": [1, 7], "x": 64, "y": 13, "flags": 4}, - {"matrix": [1, 8], "x": 80, "y": 13, "flags": 4}, - {"matrix": [1, 9], "x": 96, "y": 13, "flags": 4}, - - {"matrix": [3, 4], "x": 0, "y": 26, "flags": 4}, - {"matrix": [2, 5], "x": 20, "y": 26, "flags": 4}, - {"matrix": [2, 6], "x": 36, "y": 26, "flags": 4}, - {"matrix": [2, 7], "x": 52, "y": 26, "flags": 4}, - {"matrix": [2, 8], "x": 68, "y": 26, "flags": 4}, - {"matrix": [2, 9], "x": 84, "y": 26, "flags": 4}, - - {"matrix": [4, 4], "x": 0, "y": 39, "flags": 5}, - {"matrix": [3, 5], "x": 24, "y": 39, "flags": 4}, - {"matrix": [3, 6], "x": 40, "y": 39, "flags": 4}, - {"matrix": [3, 7], "x": 56, "y": 39, "flags": 4}, - {"matrix": [3, 8], "x": 72, "y": 39, "flags": 4}, - {"matrix": [3, 9], "x": 88, "y": 39, "flags": 4}, - - {"matrix": [5, 4], "x": 0, "y": 51, "flags": 5}, - {"matrix": [4, 5], "x": 28, "y": 51, "flags": 4}, - {"matrix": [4, 6], "x": 44, "y": 51, "flags": 4}, - {"matrix": [4, 7], "x": 60, "y": 51, "flags": 4}, - {"matrix": [4, 8], "x": 76, "y": 51, "flags": 4}, - {"matrix": [4, 9], "x": 92, "y": 51, "flags": 4}, - - {"matrix": [5, 5], "x": 0, "y": 64, "flags": 5}, - {"matrix": [5, 6], "x": 20, "y": 64, "flags": 5}, - {"matrix": [5, 7], "x": 40, "y": 64, "flags": 5}, - {"matrix": [5, 8], "x": 60, "y": 64, "flags": 5}, - {"matrix": [5, 9], "x": 92, "y": 64, "flags": 4}, - - {"matrix": [6, 0], "x": 120, "y": 0, "flags": 4}, - {"matrix": [6, 1], "x": 136, "y": 0, "flags": 4}, - {"matrix": [6, 2], "x": 152, "y": 0, "flags": 4}, - {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4}, - {"matrix": [6, 4], "x": 184, "y": 0, "flags": 4}, - {"matrix": [6, 5], "x": 200, "y": 0, "flags": 4}, - {"matrix": [6, 6], "x": 208, "y": 0, "flags": 4}, - {"matrix": [6, 7], "x": 216, "y": 0, "flags": 4}, - {"matrix": [6, 8], "x": 220, "y": 0, "flags": 4}, - {"matrix": [6, 9], "x": 224, "y": 0, "flags": 4}, - - {"matrix": [7, 0], "x": 112, "y": 13, "flags": 4}, - {"matrix": [7, 1], "x": 128, "y": 13, "flags": 4}, - {"matrix": [7, 2], "x": 144, "y": 13, "flags": 4}, - {"matrix": [7, 3], "x": 160, "y": 13, "flags": 4}, - {"matrix": [7, 4], "x": 176, "y": 13, "flags": 4}, - {"matrix": [7, 5], "x": 192, "y": 13, "flags": 4}, - {"matrix": [7, 6], "x": 208, "y": 13, "flags": 4}, - {"matrix": [7, 7], "x": 216, "y": 13, "flags": 4}, - {"matrix": [7, 8], "x": 220, "y": 13, "flags": 4}, - {"matrix": [7, 9], "x": 224, "y": 13, "flags": 4}, - - {"matrix": [9, 0], "x": 100, "y": 26, "flags": 4}, - {"matrix": [8, 0], "x": 116, "y": 26, "flags": 4}, - {"matrix": [8, 1], "x": 132, "y": 26, "flags": 4}, - {"matrix": [8, 2], "x": 148, "y": 26, "flags": 4}, - {"matrix": [8, 3], "x": 164, "y": 26, "flags": 4}, - {"matrix": [8, 4], "x": 180, "y": 26, "flags": 4}, - {"matrix": [8, 5], "x": 196, "y": 26, "flags": 4}, - {"matrix": [8, 6], "x": 208, "y": 26, "flags": 4}, - {"matrix": [8, 7], "x": 216, "y": 26, "flags": 4}, - {"matrix": [8, 8], "x": 220, "y": 26, "flags": 4}, - {"matrix": [8, 9], "x": 224, "y": 26, "flags": 4}, - - {"matrix": [10, 0], "x": 104, "y": 39, "flags": 4}, - {"matrix": [9, 1], "x": 120, "y": 39, "flags": 4}, - {"matrix": [9, 2], "x": 136, "y": 39, "flags": 4}, - {"matrix": [9, 3], "x": 152, "y": 39, "flags": 4}, - {"matrix": [9, 4], "x": 168, "y": 39, "flags": 4}, - {"matrix": [9, 5], "x": 184, "y": 39, "flags": 4}, - {"matrix": [9, 6], "x": 200, "y": 39, "flags": 4}, - - {"matrix": [11, 0], "x": 108, "y": 51, "flags": 4}, - {"matrix": [10, 1], "x": 124, "y": 51, "flags": 4}, - {"matrix": [10, 2], "x": 140, "y": 51, "flags": 4}, - {"matrix": [10, 3], "x": 156, "y": 51, "flags": 4}, - {"matrix": [10, 4], "x": 172, "y": 51, "flags": 4}, - {"matrix": [10, 6], "x": 188, "y": 51, "flags": 5}, - {"matrix": [10, 8], "x": 216, "y": 51, "flags": 4}, - - {"matrix": [11, 1], "x": 118, "y": 64, "flags": 4}, - {"matrix": [11, 3], "x": 144, "y": 64, "flags": 5}, - {"matrix": [11, 4], "x": 164, "y": 64, "flags": 5}, - {"matrix": [11, 5], "x": 184, "y": 64, "flags": 5}, - {"matrix": [11, 6], "x": 204, "y": 64, "flags": 5}, - {"matrix": [11, 7], "x": 216, "y": 64, "flags": 4}, - {"matrix": [11, 8], "x": 220, "y": 64, "flags": 4}, - {"matrix": [11, 9], "x": 224, "y": 64, "flags": 4} - ] - } -} diff --git a/keyboards/shuguet/shu89/keymaps/default/keymap.json b/keyboards/shuguet/shu89/keymaps/default/keymap.json deleted file mode 100644 index 12cdccf3db..0000000000 --- a/keyboards/shuguet/shu89/keymaps/default/keymap.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "keyboard": "shuguet/shu89", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "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_PSCR", "KC_SCRL", "KC_PAUS", - "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_EQL" , "KC_BSPC", "KC_INS" , "KC_HOME", "KC_PGUP", - "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL" , "KC_END" , "KC_PGDN", - "KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" , - "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", "KC_UP" , - "KC_LCTL", "MO(1)" , "KC_LALT", "KC_LGUI", "KC_SPACE" , "KC_SPACE" , "KC_RALT", "KC_RGUI", "KC_APP" , "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" - ], - [ - "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "RM_VALU", "RM_VALD", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MPLY", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_VOLD", "KC_MNXT" - ] - ] -} diff --git a/keyboards/shuguet/shu89/readme.md b/keyboards/shuguet/shu89/readme.md deleted file mode 100644 index ad1da4e5ab..0000000000 --- a/keyboards/shuguet/shu89/readme.md +++ /dev/null @@ -1,20 +0,0 @@ -# SHU98 - -An 89-key split TKL with PCBs, 3D printed cases, powered by a pair of RP2040. - -* Keyboard Maintainer: [shuguet](https://github.com/shuguet) -* Based on handwiewd original Keyboard from [jurassic73](https://github.com/jurassic73/split89) -* Hardware Supported: RP2040 - -Make example for this keyboard (after setting up your build environment): - - make shuguet/shu89:default - -Flashing example for this keyboard: - - make shuguet/shu89: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). diff --git a/keyboards/sidderskb/majbritt/rev1/keyboard.json b/keyboards/sidderskb/majbritt/rev1/keyboard.json index bb18c1bb00..717b4e85a0 100644 --- a/keyboards/sidderskb/majbritt/rev1/keyboard.json +++ b/keyboards/sidderskb/majbritt/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Majbritt Rev1", "manufacturer": "SiddersKb", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x534B", diff --git a/keyboards/sidderskb/majbritt/rev2/keyboard.json b/keyboards/sidderskb/majbritt/rev2/keyboard.json index 900b3c3061..69c24b08ab 100644 --- a/keyboards/sidderskb/majbritt/rev2/keyboard.json +++ b/keyboards/sidderskb/majbritt/rev2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/signum/3_0/keymaps/default/keymap.c b/keyboards/signum/3_0/keymaps/default/keymap.c index 76a349f713..27f79e7692 100644 --- a/keyboards/signum/3_0/keymaps/default/keymap.c +++ b/keyboards/signum/3_0/keymaps/default/keymap.c @@ -750,9 +750,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ------------------------------------------------- */ LAYOUT_ortho_4x12( - KC_TRNS, MS_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLU, MS_WHLL, MS_UP, MS_WHLR, KC_NO, KC_NO, - KC_TRNS, MS_ACL2, MS_BTN2, MS_BTN3, MS_BTN1, MS_BTN1, MS_LEFT, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, KC_NO, - KC_TRNS, MS_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, MS_WHLD, KC_NO, MS_DOWN, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, KC_NO, KC_NO, + KC_TRNS, KC_ACL2, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_MS_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, + KC_TRNS, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_MS_D, KC_NO, KC_NO, KC_TRNS, TG(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/signum/3_0/keymaps/default/layout.py b/keyboards/signum/3_0/keymaps/default/layout.py index b7c07eb6a4..4691985d29 100644 --- a/keyboards/signum/3_0/keymaps/default/layout.py +++ b/keyboards/signum/3_0/keymaps/default/layout.py @@ -380,12 +380,12 @@ qmk_dict = { # Layer Switching missing, Lx -> MO(x), Tx -> TG(x) "qwertz": "DF(0)", "neo": "DF(2)", # Mouse Keys - "^ Mouse": "MS_UP", "v Mouse": "MS_DOWN", "< Mouse": "MS_LEFT", - "> Mouse": "MS_RGHT", "Mouse 1": "MS_BTN1", "Mouse 2": "MS_BTN2", - "Mouse 3": "MS_BTN3", "Mouse 4": "MS_BTN4", "Mouse 5": "MS_BTN5", - "^ Wheel": "MS_WHLU", "v Wheel": "MS_WHLD", "< Wheel": "MS_WHLL", - "> Wheel": "MS_WHLR", "acc0": "MS_ACL0", "acc1": "MS_ACL1", - "acc2": "MS_ACL2", + "^ Mouse": "KC_MS_U", "v Mouse": "KC_MS_D", "< Mouse": "KC_MS_L", + "> Mouse": "KC_MS_R", "Mouse 1": "KC_BTN1", "Mouse 2": "KC_BTN2", + "Mouse 3": "KC_BTN3", "Mouse 4": "KC_BTN4", "Mouse 5": "KC_BTN5", + "^ Wheel": "KC_WH_U", "v Wheel": "KC_WH_D", "< Wheel": "KC_WH_L", + "> Wheel": "KC_WH_R", "acc0": "KC_ACL0", "acc1": "KC_ACL1", + "acc2": "KC_ACL2", # Modifiers missinng, add entry for each specific application # Mod-Tap Keys missing, add entry for each specific application "_Sh_swp": "LSFT_T(SH_TOGG)", diff --git a/keyboards/silakka54/config.h b/keyboards/silakka54/config.h deleted file mode 100644 index 220b85cd08..0000000000 --- a/keyboards/silakka54/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Juho T. (@Squalius-cephalus) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP0 -#define SERIAL_USART_RX_PIN GP1 - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 diff --git a/keyboards/silakka54/keyboard.json b/keyboards/silakka54/keyboard.json deleted file mode 100644 index e621a10b37..0000000000 --- a/keyboards/silakka54/keyboard.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "manufacturer": "Squalius-cephalus", - "keyboard_name": "silakka54", - "maintainer": "Squalius-cephalus", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "split": { - "enabled": true, - "serial": { - "driver": "vendor" - }, - "transport": { - "watchdog": true - } - }, - "matrix_pins": { - "cols": ["GP7", "GP8", "GP9", "GP10", "GP11", "GP12"], - "rows": ["GP2", "GP3", "GP4", "GP5","GP6"] - }, - "processor": "RP2040", - "url": "https://github.com/Squalius-cephalus/silakka54", - "usb": { - "device_version": "1.0.0", - "pid": "0x1212", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [5, 5], "x": 7, "y": 0}, - {"matrix": [5, 4], "x": 8, "y": 0}, - {"matrix": [5, 3], "x": 9, "y": 0}, - {"matrix": [5, 2], "x": 10, "y": 0}, - {"matrix": [5, 1], "x": 11, "y": 0}, - {"matrix": [5, 0], "x": 12, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [6, 5], "x": 7, "y": 1}, - {"matrix": [6, 4], "x": 8, "y": 1}, - {"matrix": [6, 3], "x": 9, "y": 1}, - {"matrix": [6, 2], "x": 10, "y": 1}, - {"matrix": [6, 1], "x": 11, "y": 1}, - {"matrix": [6, 0], "x": 12, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [7, 5], "x": 7, "y": 2}, - {"matrix": [7, 4], "x": 8, "y": 2}, - {"matrix": [7, 3], "x": 9, "y": 2}, - {"matrix": [7, 2], "x": 10, "y": 2}, - {"matrix": [7, 1], "x": 11, "y": 2}, - {"matrix": [7, 0], "x": 12, "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}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [8, 5], "x": 7, "y": 3}, - {"matrix": [8, 4], "x": 8, "y": 3}, - {"matrix": [8, 3], "x": 9, "y": 3}, - {"matrix": [8, 2], "x": 10, "y": 3}, - {"matrix": [8, 1], "x": 11, "y": 3}, - {"matrix": [8, 0], "x": 12, "y": 3}, - - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - - {"matrix": [9, 5], "x": 7, "y": 4}, - {"matrix": [9, 4], "x": 8, "y": 4}, - {"matrix": [9, 3], "x": 9, "y": 4} - ] - } - } -} diff --git a/keyboards/silakka54/keymaps/default/keymap.c b/keyboards/silakka54/keymaps/default/keymap.c deleted file mode 100644 index aa5e64efa3..0000000000 --- a/keyboards/silakka54/keymaps/default/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 QMK -// 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_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, MO(1), KC_SPC, KC_ENT, KC_RCTL, KC_RALT - ), - [1] = LAYOUT( - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_DEL, KC_F12, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LBRC, KC_RBRC, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/silakka54/readme.md b/keyboards/silakka54/readme.md deleted file mode 100644 index 08a38aa473..0000000000 --- a/keyboards/silakka54/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Silakka54 - -![Silakka54](https://i.imgur.com/JrsS0kY.png) - -Silakka54 is a RP2040 Zero based 54-key column staggered split keyboard. PCB uses hotswap sockets. Design is inspired from REVIUNG41 and Corne keyboards. - -* Keyboard Maintainer: [Squalius-cephalus](https://github.com/Squalius-cephalus) -* Hardware Supported: Silakka54 PCB -* Hardware Availability: https://github.com/Squalius-cephalus/silakka54 - -Make example for this keyboard (after setting up your build environment): - - make silakka54:default - -Flashing example for this keyboard: - - make silakka54: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 2 ways: - -* **Physical boot button**: Hold BOOT button down and connect MCU to the PC -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json index 26e2bcce3a..69c291a1cc 100644 --- a/keyboards/silverbullet44/keyboard.json +++ b/keyboards/silverbullet44/keyboard.json @@ -60,7 +60,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "debounce": 10, "layouts": { "LAYOUT": { diff --git a/keyboards/singa/keyboard.json b/keyboards/singa/keyboard.json index 12962eedfe..ef9176211b 100644 --- a/keyboards/singa/keyboard.json +++ b/keyboards/singa/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/sirius/uni660/rev1/keyboard.json b/keyboards/sirius/uni660/rev1/keyboard.json index c98c121bb8..793edcc685 100644 --- a/keyboards/sirius/uni660/rev1/keyboard.json +++ b/keyboards/sirius/uni660/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Uni660", "manufacturer": "SiRius", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sirius/uni660/rev2/ansi/keyboard.json b/keyboards/sirius/uni660/rev2/ansi/keyboard.json index df039af1dc..3db9fb966a 100644 --- a/keyboards/sirius/uni660/rev2/ansi/keyboard.json +++ b/keyboards/sirius/uni660/rev2/ansi/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Uni660 V2 ANSI", "manufacturer": "SiRius", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sirius/uni660/rev2/iso/keyboard.json b/keyboards/sirius/uni660/rev2/iso/keyboard.json index 062ca4f07e..0e5958c117 100644 --- a/keyboards/sirius/uni660/rev2/iso/keyboard.json +++ b/keyboards/sirius/uni660/rev2/iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Uni660 V2 ISO", "manufacturer": "SiRius", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk index 18d234d62a..c03b052c56 100644 --- a/keyboards/sirius/uni660/rev2/rules.mk +++ b/keyboards/sirius/uni660/rev2/rules.mk @@ -3,3 +3,5 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c UART_DRIVER_REQUIRED = yes + +DEFAULT_FOLDER = sirius/uni660/rev2/ansi diff --git a/keyboards/sixkeyboard/keyboard.json b/keyboards/sixkeyboard/keyboard.json index ca846affb3..1c103e03b3 100644 --- a/keyboards/sixkeyboard/keyboard.json +++ b/keyboards/sixkeyboard/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "SixKeyBoard", "manufacturer": "TechKeys", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x746B", "pid": "0x736B", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": false, diff --git a/keyboards/skeletn87/hotswap/keyboard.json b/keyboards/skeletn87/hotswap/keyboard.json index 70747ce801..b0af230668 100644 --- a/keyboards/skeletn87/hotswap/keyboard.json +++ b/keyboards/skeletn87/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Skeletn87 Hotswap", "manufacturer": "BredWorks", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xF984", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/skeletn87/soldered/keyboard.json b/keyboards/skeletn87/soldered/keyboard.json index 81d93c42a7..292914d8b4 100644 --- a/keyboards/skeletn87/soldered/keyboard.json +++ b/keyboards/skeletn87/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Skeletn87", "manufacturer": "BredWorks", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xF984", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/skeletonkbd/frost68/keyboard.json b/keyboards/skeletonkbd/frost68/keyboard.json index 9d1173c860..28b819e0d0 100644 --- a/keyboards/skeletonkbd/frost68/keyboard.json +++ b/keyboards/skeletonkbd/frost68/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c index be7c414f8a..3d0d6dc794 100644 --- a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c +++ b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L1] = LAYOUT( 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, KC_TRNS, KC_PSCR, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LNG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), diff --git a/keyboards/skeletonkbd/skeletonnumpad/keyboard.json b/keyboards/skeletonkbd/skeletonnumpad/keyboard.json index d34d10de03..cd007f81b6 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/keyboard.json +++ b/keyboards/skeletonkbd/skeletonnumpad/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/skippys_custom_pcs/roopad/keyboard.json b/keyboards/skippys_custom_pcs/roopad/keyboard.json index 92cb0d1979..0da722ff12 100644 --- a/keyboards/skippys_custom_pcs/roopad/keyboard.json +++ b/keyboards/skippys_custom_pcs/roopad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "RooPad", "manufacturer": "ToastyStoemp", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x36B6", diff --git a/keyboards/skme/zeno/keyboard.json b/keyboards/skme/zeno/keyboard.json index d659227334..bbea513ed5 100644 --- a/keyboards/skme/zeno/keyboard.json +++ b/keyboards/skme/zeno/keyboard.json @@ -20,6 +20,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "qmk": { diff --git a/keyboards/skmt/15k/keyboard.json b/keyboards/skmt/15k/keyboard.json index 2cfb05bae6..9cf215f4d4 100644 --- a/keyboards/skmt/15k/keyboard.json +++ b/keyboards/skmt/15k/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -23,12 +25,8 @@ "usb": { "device_version": "1.1.0", "pid": "0x3488", - "vid": "0xFEFE" - }, - "host": { - "default": { - "nkro": true - } + "vid": "0xFEFE", + "force_nkro": true }, "layouts": { "LAYOUT_default": { diff --git a/keyboards/skmt/15k/keymaps/default/keymap.c b/keyboards/skmt/15k/keymaps/default/keymap.c index 093a813f95..74144f71a5 100644 --- a/keyboards/skmt/15k/keymaps/default/keymap.c +++ b/keyboards/skmt/15k/keymaps/default/keymap.c @@ -19,8 +19,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0 ), [1] = LAYOUT_default( - RM_TOGG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - RM_NEXT,RM_HUEU,RM_SATU,RM_VALU,RM_SPDU, - RM_PREV,RM_HUED,RM_SATD,RM_VALD,RM_SPDD + RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, + RGB_RMOD,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD ) }; diff --git a/keyboards/skyloong/dt40/keyboard.json b/keyboards/skyloong/dt40/keyboard.json index be0ccb2912..a79b48289a 100644 --- a/keyboards/skyloong/dt40/keyboard.json +++ b/keyboards/skyloong/dt40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skyloong/dt40/keymaps/default/keymap.c b/keyboards/skyloong/dt40/keymaps/default/keymap.c index 9f7503930b..c8f828156a 100644 --- a/keyboards/skyloong/dt40/keymaps/default/keymap.c +++ b/keyboards/skyloong/dt40/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_O, KC_I, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_L, KC_P, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, RM_TOGG, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, RGB_TOG, KC_LCTL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, KC_K, KC_SPC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/skyloong/gk61/pro/config.h b/keyboards/skyloong/gk61/pro/config.h index aeea36e0bc..db02496f8b 100644 --- a/keyboards/skyloong/gk61/pro/config.h +++ b/keyboards/skyloong/gk61/pro/config.h @@ -7,3 +7,6 @@ #define IS31FL3743A_SDB_PIN C1 #define CAPS_LOCK_INDEX 28 +#define WIN_MOD_INDEX 16 +#define MAC_MOD_INDEX 17 +#define WIN_LOCK_INDEX 54 diff --git a/keyboards/skyloong/gk61/pro/keyboard.json b/keyboards/skyloong/gk61/pro/keyboard.json index 67fa3be066..5a2302a92c 100644 --- a/keyboards/skyloong/gk61/pro/keyboard.json +++ b/keyboards/skyloong/gk61/pro/keyboard.json @@ -13,6 +13,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c index be6501fb8f..9534f25d80 100644 --- a/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c +++ b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) } + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } }; #endif diff --git a/keyboards/skyloong/gk61/pro/pro.c b/keyboards/skyloong/gk61/pro/pro.c index 11411ba2b1..49841b2ee5 100644 --- a/keyboards/skyloong/gk61/pro/pro.c +++ b/keyboards/skyloong/gk61/pro/pro.c @@ -1,8 +1,11 @@ // Copyright 2023 linlin012 (@linlin012) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +int FN_WIN = 0; +int FN_MAC = 0; +int L_WIN = 0; +int L_MAC = 0; -#if defined(RGB_MATRIX_ENABLE) const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -80,32 +83,7 @@ const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { {0, SW10_CS13, SW10_CS14, SW10_CS15} }; -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { - return false; - } - - if (host_keyboard_led_state().caps_lock) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); - } else { - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); - } - } - - return false; -} - -void suspend_power_down_kb(void) { - gpio_write_pin_low(IS31FL3743A_SDB_PIN); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - gpio_write_pin_high(IS31FL3743A_SDB_PIN); - suspend_wakeup_init_user(); -} -#endif +#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { @@ -113,7 +91,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -127,9 +105,124 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } return false; # endif + case TO(0): + if (record->event.pressed) { + L_WIN = 1; + set_single_persistent_default_layer(0); // Save default layer 0 to eeprom + } else { + L_WIN = 0; + } + return true; // continue all further processing of this key + + case MO(2): + if (record->event.pressed) { + FN_WIN = 1; + } else { + FN_WIN = 0; + } + return true; // continue all further processing of this key + + case TO(1): + if (record->event.pressed) { + L_MAC = 1; + set_single_persistent_default_layer(1); //Save default layer 1 to eeprom + } else { + L_MAC = 0; + } + return true; // continue all further processing of this key + + case MO(3): + if (record->event.pressed) { + FN_MAC = 1; + } else { + FN_MAC = 0; + } + return true; // continue all further processing of this key + default: + return true; + } + +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; } - return true; + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); + } + } + + switch (get_highest_layer(layer_state)) { + case 0:{ + if (L_WIN) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } + } break; + + case 1:{ + if (L_MAC) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } break; + + + case 2:{ + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } break; + + case 3:{ + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } break; + + default:{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } + return false; +} + +#endif + +void suspend_power_down_kb() { +# ifdef RGB_MATRIX_ENABLE + gpio_write_pin_low(IS31FL3743A_SDB_PIN); +# endif + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb() { +# ifdef RGB_MATRIX_ENABLE + gpio_write_pin_high(IS31FL3743A_SDB_PIN); +# endif + suspend_wakeup_init_user(); } void board_init(void) { diff --git a/keyboards/skyloong/gk61/pro_48/config.h b/keyboards/skyloong/gk61/pro_48/config.h index 7e45ac8354..5b4976e2da 100644 --- a/keyboards/skyloong/gk61/pro_48/config.h +++ b/keyboards/skyloong/gk61/pro_48/config.h @@ -7,3 +7,7 @@ #define IS31FL3743A_SDB_PIN A4 #define CAPS_LOCK_INDEX 28 +#define WIN_MOD_INDEX 16 +#define MAC_MOD_INDEX 17 + +#define g_suspend_state rgb_matrix_get_suspend_state() diff --git a/keyboards/skyloong/gk61/pro_48/keyboard.json b/keyboards/skyloong/gk61/pro_48/keyboard.json index 399de2f5b0..0c7065ec48 100644 --- a/keyboards/skyloong/gk61/pro_48/keyboard.json +++ b/keyboards/skyloong/gk61/pro_48/keyboard.json @@ -13,6 +13,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c index be6501fb8f..9534f25d80 100644 --- a/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c +++ b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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, _______, - _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) } + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } }; #endif diff --git a/keyboards/skyloong/gk61/pro_48/pro_48.c b/keyboards/skyloong/gk61/pro_48/pro_48.c index 11411ba2b1..ff49f5d22f 100644 --- a/keyboards/skyloong/gk61/pro_48/pro_48.c +++ b/keyboards/skyloong/gk61/pro_48/pro_48.c @@ -1,8 +1,12 @@ // Copyright 2023 linlin012 (@linlin012) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +_Bool FN_WIN = 0; +_Bool FN_MAC = 0; +_Bool L_WIN = 0; +_Bool L_MAC = 0; -#if defined(RGB_MATRIX_ENABLE) +#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -93,9 +97,57 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } } + switch (get_highest_layer(layer_state)) { + case 2:{ + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } break; + case 3:{ + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } break; + + case 0:{ + if (L_WIN) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } + } break; + + case 1:{ + if (L_MAC) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } break; + + default:{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } return false; } + void suspend_power_down_kb(void) { gpio_write_pin_low(IS31FL3743A_SDB_PIN); suspend_power_down_user(); @@ -113,7 +165,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -125,11 +177,44 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } break; } } - return false; + return false; # endif - } + case TO(0): + if (record->event.pressed) { + L_WIN = 1; + set_single_persistent_default_layer(0); // Save default layer 0 to eeprom + } else { + L_WIN = 0; + } + return true; // continue all further processing of this key - return true; + case MO(2): + if (record->event.pressed) { + FN_WIN = 1; + } else { + FN_WIN = 0; + } + return true; // continue all further processing of this key + + case TO(1): + if (record->event.pressed) { + L_MAC = 1; + set_single_persistent_default_layer(1); //Save default layer 1 to eeprom + } else { + L_MAC = 0; + } + return true; // continue all further processing of this key + + case MO(3): + if (record->event.pressed) { + FN_MAC = 1; + } else { + FN_MAC = 0; + } + return true; // continue all further processing of this key + default: + return true; + } } void board_init(void) { diff --git a/keyboards/skyloong/gk61/v1/keyboard.json b/keyboards/skyloong/gk61/v1/keyboard.json index e6ce09ae7f..0bafe1bd4e 100644 --- a/keyboards/skyloong/gk61/v1/keyboard.json +++ b/keyboards/skyloong/gk61/v1/keyboard.json @@ -9,6 +9,8 @@ "extrakey": true, "mousekey": true, "nkro": true, + "command": false, + "console": false, "rgb_matrix": true }, "processor": "STM32F103", @@ -119,12 +121,8 @@ "vid": "0x1EA7", "device_version": "1.0.0", "pid": "0x6061", - "max_power": 380 - }, - "host": { - "default": { - "nkro": true - } + "max_power": 380, + "force_nkro": true }, "community_layouts": ["60_ansi"], "layouts": { diff --git a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c index 615d66fe6f..4ddb35f6f4 100644 --- a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c +++ b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c @@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Fn+ */ [_FN] = 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_PSCR, - RM_TOGG, RM_VALD, RM_VALU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, - RM_NEXT, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, + RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, + RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT, KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO ), diff --git a/keyboards/skyloong/qk21/v1/keyboard.json b/keyboards/skyloong/qk21/v1/keyboard.json index d3d4ce0a49..3f22fc0ccb 100644 --- a/keyboards/skyloong/qk21/v1/keyboard.json +++ b/keyboards/skyloong/qk21/v1/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c index 50796d2f6e..8cb1d20085 100644 --- a/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c +++ b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c @@ -44,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───────┴───┘───┘ */ [1] = LAYOUT_numpad_6x4( - QK_BOOT, RM_NEXT, _______, _______, - _______, RM_HUED, RM_HUEU, RM_VALD, + QK_BOOT, RGB_MOD, _______, _______, + _______, RGB_HUD, RGB_HUI, RGB_VAD, KC_HOME, KC_UP, KC_PGUP, - KC_LEFT, RGB_M_SW, KC_RGHT, RM_VALU, + KC_LEFT, RGB_M_SW, KC_RGHT, RGB_VAI, KC_END, KC_DOWN, KC_PGDN, - KC_INS, KC_DEL, RM_TOGG + KC_INS, KC_DEL, RGB_TOG ) }; diff --git a/keyboards/skyloong/qk21/v1/v1.c b/keyboards/skyloong/qk21/v1/v1.c index ae85eaab39..9630d3e223 100644 --- a/keyboards/skyloong/qk21/v1/v1.c +++ b/keyboards/skyloong/qk21/v1/v1.c @@ -11,7 +11,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { # ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c b/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c index 3ac3ccbfeb..65bd5c4609 100644 --- a/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c +++ b/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c @@ -17,13 +17,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_UP, KC_DOWN, KC_LEFT, KC_RGHT ), [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, UG_NEXT, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, RGB_MOD, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), [_FN] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UG_TOGG, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RGB_TOG, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY diff --git a/keyboards/slimorta/keyboard.json b/keyboards/slimorta/keyboard.json deleted file mode 100644 index ecf3078f4e..0000000000 --- a/keyboards/slimorta/keyboard.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "manufacturer": "ASHIJANKEN", - "keyboard_name": "Slimorta", - "maintainer": "ASHIJANKEN", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "cols": ["D1", "D0", "D4", "C6", "D7", "E6"], - "rows": ["B4", "B5", "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] - }, - "url": "https://github.com/ASHIJANKEN/Slimorta", - "usb": { - "device_version": "1.0.0", - "pid": "0x0001", - "vid": "0x4153" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 0}, - {"matrix": [2, 1], "x": 1, "y": 0}, - {"matrix": [2, 2], "x": 2, "y": 0}, - {"matrix": [2, 3], "x": 3, "y": 0}, - {"matrix": [2, 4], "x": 4, "y": 0}, - {"matrix": [2, 5], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6, "y": 0}, - {"matrix": [0, 4], "x": 7, "y": 0}, - {"matrix": [0, 3], "x": 8, "y": 0}, - {"matrix": [0, 2], "x": 9, "y": 0}, - {"matrix": [0, 1], "x": 10, "y": 0}, - {"matrix": [0, 0], "x": 11, "y": 0}, - {"matrix": [3, 0], "x": 0, "y": 1}, - {"matrix": [3, 1], "x": 1, "y": 1}, - {"matrix": [3, 2], "x": 2, "y": 1}, - {"matrix": [3, 3], "x": 3, "y": 1}, - {"matrix": [3, 4], "x": 4, "y": 1}, - {"matrix": [3, 5], "x": 5, "y": 1}, - {"matrix": [1, 5], "x": 6, "y": 1}, - {"matrix": [1, 4], "x": 7, "y": 1}, - {"matrix": [1, 3], "x": 8, "y": 1}, - {"matrix": [1, 2], "x": 9, "y": 1}, - {"matrix": [1, 1], "x": 10, "y": 1}, - {"matrix": [1, 0], "x": 11, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [4, 1], "x": 1, "y": 2}, - {"matrix": [4, 2], "x": 2, "y": 2}, - {"matrix": [4, 3], "x": 3, "y": 2}, - {"matrix": [4, 4], "x": 4, "y": 2}, - {"matrix": [4, 5], "x": 5, "y": 2}, - {"matrix": [7, 5], "x": 6, "y": 2}, - {"matrix": [7, 4], "x": 7, "y": 2}, - {"matrix": [7, 3], "x": 8, "y": 2}, - {"matrix": [7, 2], "x": 9, "y": 2}, - {"matrix": [7, 1], "x": 10, "y": 2}, - {"matrix": [7, 0], "x": 11, "y": 2}, - {"matrix": [5, 0], "x": 0, "y": 3}, - {"matrix": [5, 1], "x": 1, "y": 3}, - {"matrix": [5, 2], "x": 2, "y": 3}, - {"matrix": [5, 3], "x": 3, "y": 3}, - {"matrix": [5, 4], "x": 4, "y": 3}, - {"matrix": [5, 5], "x": 5, "y": 3}, - {"matrix": [8, 5], "x": 6, "y": 3}, - {"matrix": [8, 4], "x": 7, "y": 3}, - {"matrix": [8, 3], "x": 8, "y": 3}, - {"matrix": [8, 2], "x": 9, "y": 3}, - {"matrix": [8, 1], "x": 10, "y": 3}, - {"matrix": [8, 0], "x": 11, "y": 3}, - {"matrix": [6, 1], "x": 0.5, "y": 4}, - {"matrix": [6, 2], "x": 1.5, "y": 4}, - {"matrix": [6, 3], "x": 2.5, "y": 4}, - {"matrix": [6, 4], "x": 3.5, "y": 4, "w": 1.25}, - {"matrix": [6, 5], "x": 4.75, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 6, "y": 4, "w": 1.25}, - {"matrix": [9, 4], "x": 7.25, "y": 4, "w": 1.25}, - {"matrix": [9, 3], "x": 8.5, "y": 4}, - {"matrix": [9, 2], "x": 9.5, "y": 4}, - {"matrix": [9, 1], "x": 10.5, "y": 4} - ] - } - } -} diff --git a/keyboards/slimorta/keymaps/default/keymap.c b/keyboards/slimorta/keymaps/default/keymap.c deleted file mode 100644 index 44b10cc3c8..0000000000 --- a/keyboards/slimorta/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2025 ASHIJANKEN (@ASHIJANKEN) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ - * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ BS │ - * ├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ - * ├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ - * │ Ctrl│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ - * ├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ - * │Shift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift│ - * └──┬──┴─┬─┴─┬─┴─┬─┴──┬┴───┼───┴┬──┴─┬─┴─┬─┴──┬┴───┬─┘ - * │LNG2|Alt│GUI│ │ SPC│ Ent│ │ │Ctrl│LNG1│ - * └────┴───┴───┴────┴────┴────┴────┴───┴────┴────┘ - */ - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LNG2, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_ENT, KC_NO, KC_NO, KC_LCTL, KC_LNG1 - ) -}; diff --git a/keyboards/slimorta/readme.md b/keyboards/slimorta/readme.md deleted file mode 100644 index b6ae191db0..0000000000 --- a/keyboards/slimorta/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Slimorta - -![slimorta](https://i.imgur.com/edsao2S.jpeg) - -Slimorta is a slim and portable ortholinear keyboard. - -* Keyboard Maintainer: [ASHIJANKEN](https://github.com/ASHIJANKEN) -* Hardware Supported: Slimorta PCB, ProMicro -* Hardware Availability: [PCB & Case Data](https://github.com/ASHIJANKEN/Slimorta) - -Make example for this keyboard (after setting up your build environment): - - make slimorta:default - -Flashing example for this keyboard: - - make slimorta: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 - -**Physical reset button**: Press the button on the PCB twice briefly. diff --git a/keyboards/slz40/keyboard.json b/keyboards/slz40/keyboard.json index 3ca4c1d3fc..138c7d21cf 100644 --- a/keyboards/slz40/keyboard.json +++ b/keyboards/slz40/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/smallkeyboard/keyboard.json b/keyboards/smallkeyboard/keyboard.json index dfbdee1cdd..9963d83a47 100644 --- a/keyboards/smallkeyboard/keyboard.json +++ b/keyboards/smallkeyboard/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "smallkeyboard", "manufacturer": "zhouqiong19840119", + "url": "", "maintainer": "zhouqiong19840119", "usb": { "vid": "0x7A71", diff --git a/keyboards/smallkeyboard/keymaps/default/keymap.c b/keyboards/smallkeyboard/keymaps/default/keymap.c index e39fde99c1..9ab00be05c 100644 --- a/keyboards/smallkeyboard/keymaps/default/keymap.c +++ b/keyboards/smallkeyboard/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, MO(1), KC_P3, KC_P4, KC_P3), [1] = LAYOUT_ortho_2x3( - RM_TOGG, RM_NEXT, MO(1), + RGB_TOG, RGB_MOD, MO(1), AU_ON, AU_OFF, MI_ON), [2] = LAYOUT_ortho_2x3( KC_P4, KC_P5, MO(1), diff --git a/keyboards/smithrune/iron160/iron160_h/keyboard.json b/keyboards/smithrune/iron160/iron160_h/keyboard.json index c0c0eb1221..d9ada0879d 100644 --- a/keyboards/smithrune/iron160/iron160_h/keyboard.json +++ b/keyboards/smithrune/iron160/iron160_h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "I160-H", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -32,11 +33,10 @@ }, "diode_direction": "COL2ROW", "layout_aliases": { - "LAYOUT": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], "layouts": { "LAYOUT_60_ansi_tsangan_split_rshift": { @@ -108,7 +108,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c b/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c index 524830a244..b8dc909c94 100755 --- a/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c +++ b/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c @@ -18,14 +18,14 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) , KC_LCTL, KC_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/smithrune/iron160/iron160_s/keyboard.json b/keyboards/smithrune/iron160/iron160_s/keyboard.json index d247ce3253..d6bf0a43f5 100644 --- a/keyboards/smithrune/iron160/iron160_s/keyboard.json +++ b/keyboards/smithrune/iron160/iron160_s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "I160-S", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -38,18 +39,16 @@ "caps_lock": "B0" }, "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], "layouts": { "LAYOUT_all": { @@ -333,7 +332,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/smithrune/iron165r2/f411/mcuconf.h b/keyboards/smithrune/iron165r2/f411/mcuconf.h index c35579fe1c..63f1e30e64 100644 --- a/keyboards/smithrune/iron165r2/f411/mcuconf.h +++ b/keyboards/smithrune/iron165r2/f411/mcuconf.h @@ -21,6 +21,9 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/smithrune/iron165r2/info.json b/keyboards/smithrune/iron165r2/info.json index c0fb3634c3..cff9a97cb7 100644 --- a/keyboards/smithrune/iron165r2/info.json +++ b/keyboards/smithrune/iron165r2/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iron165R2", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron180/keyboard.json b/keyboards/smithrune/iron180/keyboard.json index 23ffa323af..b0c6e1a8ff 100644 --- a/keyboards/smithrune/iron180/keyboard.json +++ b/keyboards/smithrune/iron180/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iron180 V1", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron180v2/v2h/keyboard.json b/keyboards/smithrune/iron180v2/v2h/keyboard.json index f37454e33b..1580a12b8c 100644 --- a/keyboards/smithrune/iron180v2/v2h/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iron180H v2", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -13,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/smithrune/iron180v2/v2s/keyboard.json b/keyboards/smithrune/iron180v2/v2s/keyboard.json index 455f4b3956..f8f27f4cc1 100644 --- a/keyboards/smithrune/iron180v2/v2s/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Iron180 Sv2", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -14,6 +15,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/smithrune/magnus/m75h/keyboard.json b/keyboards/smithrune/magnus/m75h/keyboard.json index b3cc371387..325db7d1da 100644 --- a/keyboards/smithrune/magnus/m75h/keyboard.json +++ b/keyboards/smithrune/magnus/m75h/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Magnus M75H", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -17,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/smithrune/magnus/m75h/mcuconf.h b/keyboards/smithrune/magnus/m75h/mcuconf.h index e9e60c9f99..8f4541a8c3 100644 --- a/keyboards/smithrune/magnus/m75h/mcuconf.h +++ b/keyboards/smithrune/magnus/m75h/mcuconf.h @@ -18,6 +18,9 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/smithrune/magnus/m75s/keyboard.json b/keyboards/smithrune/magnus/m75s/keyboard.json index 7c772a9d6f..352b529bb0 100644 --- a/keyboards/smithrune/magnus/m75s/keyboard.json +++ b/keyboards/smithrune/magnus/m75s/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Magnus M75S", "manufacturer": "SmithRune", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", @@ -18,6 +19,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/smithrune/magnus/m75s/mcuconf.h b/keyboards/smithrune/magnus/m75s/mcuconf.h index e9e60c9f99..8f4541a8c3 100644 --- a/keyboards/smithrune/magnus/m75s/mcuconf.h +++ b/keyboards/smithrune/magnus/m75s/mcuconf.h @@ -18,6 +18,9 @@ #include_next +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/smk60/keyboard.json b/keyboards/smk60/keyboard.json index 01fb309962..67265a667c 100644 --- a/keyboards/smk60/keyboard.json +++ b/keyboards/smk60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SMK60", "manufacturer": "astro", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xDEAD", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/smoll/lefty/info.json b/keyboards/smoll/lefty/info.json index c721095cee..c34e264176 100644 --- a/keyboards/smoll/lefty/info.json +++ b/keyboards/smoll/lefty/info.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/smoll/lefty/rules.mk b/keyboards/smoll/lefty/rules.mk new file mode 100644 index 0000000000..6bc5abbdc5 --- /dev/null +++ b/keyboards/smoll/lefty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = smoll/lefty/rev2 diff --git a/keyboards/snampad/keyboard.json b/keyboards/snampad/keyboard.json index 66fa76b5e8..e2a269d5c7 100644 --- a/keyboards/snampad/keyboard.json +++ b/keyboards/snampad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "snampad", "manufacturer": "Snamellit", + "url": "", "maintainer": "ptillemans", "usb": { "vid": "0xFEED", @@ -26,7 +27,8 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3"] }, "diode_direction": "ROW2COL", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { diff --git a/keyboards/snappypad/v1_3x4/config.h b/keyboards/snappypad/v1_3x4/config.h deleted file mode 100644 index 040470b933..0000000000 --- a/keyboards/snappypad/v1_3x4/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 Snappy Key -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define MATRIX_MASKED diff --git a/keyboards/snappypad/v1_3x4/keyboard.json b/keyboards/snappypad/v1_3x4/keyboard.json deleted file mode 100644 index 26a3384a6f..0000000000 --- a/keyboards/snappypad/v1_3x4/keyboard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "manufacturer": "Snappy Key", - "keyboard_name": "Snappy Pad v1", - "maintainer": "snappykey", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F4", "pin_b": "F5"} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "encoder": true - }, - "matrix_pins": { - "cols": ["E6", "B4", "D7", "C6", "B6", "F6"], - "rows": ["D4", "D0", "D1"] - }, - "url": "snappykey.eu", - "usb": { - "device_version": "1.0.0", - "pid": "0x1451", - "vid": "0x16D0" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 4], "x": 0, "y": 0}, - {"matrix": [0, 5], "x": 3, "y": 0}, - {"matrix": [0, 0], "x": 0, "y": 1}, - {"matrix": [0, 1], "x": 1, "y": 1}, - {"matrix": [0, 2], "x": 2, "y": 1}, - {"matrix": [0, 3], "x": 3, "y": 1}, - {"matrix": [1, 0], "x": 0, "y": 2}, - {"matrix": [1, 1], "x": 1, "y": 2}, - {"matrix": [1, 2], "x": 2, "y": 2}, - {"matrix": [1, 3], "x": 3, "y": 2}, - {"matrix": [2, 0], "x": 0, "y": 3}, - {"matrix": [2, 1], "x": 1, "y": 3}, - {"matrix": [2, 2], "x": 2, "y": 3}, - {"matrix": [2, 3], "x": 3, "y": 3} - ] - } - } -} diff --git a/keyboards/snappypad/v1_3x4/keymaps/default/keymap.c b/keyboards/snappypad/v1_3x4/keymaps/default/keymap.c deleted file mode 100644 index 8ebd851e77..0000000000 --- a/keyboards/snappypad/v1_3x4/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2025 Snappy Key -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - TO(1), KC_MPLY, - KC_F13, KC_F14, KC_F15, KC_F16, - KC_F17, KC_F18, KC_F19, KC_F20, - KC_F21, KC_F22, KC_F23, KC_F24 - ), - [1] = LAYOUT( - TO(2), KC_TRNS, - LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), - LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), - LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24) - ), - [2] = LAYOUT( - TO(3), KC_TRNS, - LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), - LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), - LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24) - ), - [3] = LAYOUT( - TO(0), KC_TRNS, - LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), - LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), - LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24) - ) -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case 0: - gpio_write_pin_low(F7); - gpio_write_pin_low(B2); - gpio_write_pin_low(B5); - break; - case 1: - gpio_write_pin_high(F7); - gpio_write_pin_low(B2); - gpio_write_pin_low(B5); - break; - case 2: - gpio_write_pin_high(F7); - gpio_write_pin_high(B2); - gpio_write_pin_low(B5); - break; - case 3: - gpio_write_pin_high(F7); - gpio_write_pin_high(B2); - gpio_write_pin_high(B5); - break; - } - return state; -} - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) } -}; -#endif diff --git a/keyboards/snappypad/v1_3x4/readme.md b/keyboards/snappypad/v1_3x4/readme.md deleted file mode 100644 index 8e69dc58b2..0000000000 --- a/keyboards/snappypad/v1_3x4/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Snappy Pad v.1 - -![sp](https://i.imgur.com/Xgv5qky.jpeg) - -Reliable macro pad for all use cases - -* Keyboard Maintainer: [SnappyKey](https://github.com/snappykey) -* Hardware Supported: pcb, cad files -* Hardware Availability: Will be open sourced later - -Make example for this keyboard (after setting up your build environment): - - make snappypad/v1_3x4:default - -Flashing example for this keyboard: - - make snappypad/v1_3x4:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/snappypad/v1_3x4/v1_3x4.c b/keyboards/snappypad/v1_3x4/v1_3x4.c deleted file mode 100644 index e2a62773e8..0000000000 --- a/keyboards/snappypad/v1_3x4/v1_3x4.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 Snappy Key -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -void keyboard_post_init_kb(void) { - gpio_set_pin_output(F7); - gpio_set_pin_output(B2); - gpio_set_pin_output(B5); - - keyboard_post_init_user(); -} diff --git a/keyboards/sneakbox/aliceclone/keyboard.json b/keyboards/sneakbox/aliceclone/keyboard.json index ecf6aad57c..bb0cd8e4b8 100644 --- a/keyboards/sneakbox/aliceclone/keyboard.json +++ b/keyboards/sneakbox/aliceclone/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/aliceclonergb/keyboard.json b/keyboards/sneakbox/aliceclonergb/keyboard.json index b80ba95f91..be3d48fa87 100644 --- a/keyboards/sneakbox/aliceclonergb/keyboard.json +++ b/keyboards/sneakbox/aliceclonergb/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/ava/keyboard.json b/keyboards/sneakbox/ava/keyboard.json index b871f6b14e..41712f7e95 100644 --- a/keyboards/sneakbox/ava/keyboard.json +++ b/keyboards/sneakbox/ava/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/disarray/ortho/keyboard.json b/keyboards/sneakbox/disarray/ortho/keyboard.json index c9fc1e5012..31a201e0d2 100644 --- a/keyboards/sneakbox/disarray/ortho/keyboard.json +++ b/keyboards/sneakbox/disarray/ortho/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/disarray/staggered/keyboard.json b/keyboards/sneakbox/disarray/staggered/keyboard.json index df5b0983ce..4631795130 100644 --- a/keyboards/sneakbox/disarray/staggered/keyboard.json +++ b/keyboards/sneakbox/disarray/staggered/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/lilbae/keyboard.json b/keyboards/sneakbox/lilbae/keyboard.json deleted file mode 100644 index b1aa92cb68..0000000000 --- a/keyboards/sneakbox/lilbae/keyboard.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "keyboard_name": "Lil' BAE", - "manufacturer": "Sneakbox", - "maintainer": "mujimanic", - "bootloader": "atmel-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D2", "pin_b": "D3"} - ] - }, - "bootmagic": { - "matrix": [0, 2] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true - }, - "matrix_pins": { - "cols": ["B7", "D4", "D5", "D6"], - "rows": ["B4"] - }, - "processor": "atmega32u2", - "url": "https://sneakbox.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x0012", - "vid": "0x5342" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 1.75, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [0, 2], "x": 1, "y": 1}, - {"matrix": [0, 3], "x": 2, "y": 1, "w": 1.25} - ] - }, - "LAYOUT_ansi_enter": { - "layout": [ - {"matrix": [0, 0], "x": 0.75, "y": 0, "w": 1.5}, - {"matrix": [0, 2], "x": 0, "y": 1, "w": 2.25} - ] - }, - "LAYOUT_bae": { - "layout": [ - {"matrix": [0, 2], "x": 0, "y": 0, "w": 2.25, "h": 2} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"matrix": [0, 0], "x": 1, "y": 0, "w": 1.25, "h": 2}, - {"matrix": [0, 1], "x": 0, "y": 1} - ] - }, - "LAYOUT_split_ansi_enter": { - "layout": [ - {"matrix": [0, 0], "x": 0.75, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [0, 3], "x": 1, "y": 1, "w": 1.25} - ] - } - } -} diff --git a/keyboards/sneakbox/lilbae/keymaps/ansi_enter/keymap.c b/keyboards/sneakbox/lilbae/keymaps/ansi_enter/keymap.c deleted file mode 100644 index 775d33ff15..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/ansi_enter/keymap.c +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2022 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_ansi_enter( - KC_BSLS, - KC_ENT) -}; diff --git a/keyboards/sneakbox/lilbae/keymaps/default/keymap.c b/keyboards/sneakbox/lilbae/keymaps/default/keymap.c deleted file mode 100644 index 4a4f4c80a6..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/default/keymap.c +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2022 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_bae( - KC_ENT) -}; diff --git a/keyboards/sneakbox/lilbae/keymaps/iso/keymap.c b/keyboards/sneakbox/lilbae/keymaps/iso/keymap.c deleted file mode 100644 index 3f15660c07..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/iso/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2022 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_iso( - KC_ENT, - KC_UNDO ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_1, KC_2)} -}; -#endif diff --git a/keyboards/sneakbox/lilbae/keymaps/iso/rules.mk b/keyboards/sneakbox/lilbae/keymaps/iso/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/iso/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/keymap.c b/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/keymap.c deleted file mode 100644 index 00d44fb935..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2022 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_split_ansi_enter( - KC_BSLS, - KC_UNDO, KC_LGUI) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_1, KC_2)} -}; -#endif diff --git a/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/rules.mk b/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/sneakbox/lilbae/keymaps/split_ansi_enter/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sneakbox/lilbae/readme.md b/keyboards/sneakbox/lilbae/readme.md deleted file mode 100644 index f637df1c1b..0000000000 --- a/keyboards/sneakbox/lilbae/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Sneakbox Lil' BAE - -![Lil' BAE](https://i.imgur.com/WGNgOhM.jpeg) - -A small macropad featuring key positions for a Big-Ass Enter (Reverse L-shaped enter key) - -Keyboard Maintainer: [mujimanic](https://sneakbox.com) -Hardware Supported: Lil' BAE Case -Hardware Availability: [sneakbox.design](https://sneakbox.com/products/lil-bae-macropad) - -Make example for this keyboard (after setting up your build environment): - - make sneakbox/lilbae:default - -Flashing example for this keyboard: - - make sneakbox/lilbae: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,2) in the matrix (position mapped to ANSI enter key) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/sneakbox/m4m5/keyboard.json b/keyboards/sneakbox/m4m5/keyboard.json deleted file mode 100644 index ba56a6c85d..0000000000 --- a/keyboards/sneakbox/m4m5/keyboard.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "manufacturer": "Sneakbox", - "keyboard_name": "M4 & M5", - "maintainer": "mujimanic", - "bootloader": "atmel-dfu", - "bootmagic": { - "matrix": [2, 0] - }, - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D3", "pin_b": "D2"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "D6", - "num_lock": "D4", - "scroll_lock": "D7" - }, - "matrix_pins": { - "cols": ["F0", "D0", "C7", "C6", "B6", "B5", "B4", "D1"], - "rows": ["F1", "E6", "F4", "B1", "F5", "B2", "F6", "B3", "F7", "B7"] - }, - "processor": "atmega32u4", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 16 - }, - "url": "https://sneakbox.design", - "usb": { - "device_version": "0.0.1", - "pid": "0x0005", - "vid": "0x5342" - }, - "ws2812": { - "pin": "D5" - }, - "layouts": { - "LAYOUT_alice": { - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 0}, - {"matrix": [0, 0], "x": 1.25, "y": 0}, - {"matrix": [0, 1], "x": 2.25, "y": 0}, - {"matrix": [0, 2], "x": 3.25, "y": 0}, - {"matrix": [0, 3], "x": 4.25, "y": 0}, - {"matrix": [0, 4], "x": 5.25, "y": 0}, - {"matrix": [0, 5], "x": 6.25, "y": 0}, - {"matrix": [0, 6], "x": 7.25, "y": 0}, - {"matrix": [1, 0], "x": 10.25, "y": 0}, - {"matrix": [1, 1], "x": 11.25, "y": 0}, - {"matrix": [1, 2], "x": 12.25, "y": 0}, - {"matrix": [1, 3], "x": 13.25, "y": 0}, - {"matrix": [1, 4], "x": 14.25, "y": 0}, - {"matrix": [1, 5], "x": 15.25, "y": 0}, - {"matrix": [1, 6], "x": 16.25, "y": 0, "w": 2}, - {"matrix": [4, 0], "x": 0, "y": 1}, - {"matrix": [2, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"matrix": [2, 2], "x": 2.75, "y": 1}, - {"matrix": [2, 3], "x": 3.75, "y": 1}, - {"matrix": [2, 4], "x": 4.75, "y": 1}, - {"matrix": [2, 5], "x": 5.75, "y": 1}, - {"matrix": [2, 6], "x": 6.75, "y": 1}, - {"matrix": [3, 0], "x": 9.75, "y": 1}, - {"matrix": [3, 1], "x": 10.75, "y": 1}, - {"matrix": [3, 2], "x": 11.75, "y": 1}, - {"matrix": [3, 3], "x": 12.75, "y": 1}, - {"matrix": [3, 4], "x": 13.75, "y": 1}, - {"matrix": [3, 5], "x": 14.75, "y": 1}, - {"matrix": [3, 6], "x": 15.75, "y": 1}, - {"matrix": [3, 7], "x": 16.75, "y": 1, "w": 1.5}, - {"matrix": [6, 0], "x": 0, "y": 2}, - {"matrix": [4, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"matrix": [4, 2], "x": 3, "y": 2}, - {"matrix": [4, 3], "x": 4, "y": 2}, - {"matrix": [4, 4], "x": 5, "y": 2}, - {"matrix": [4, 5], "x": 6, "y": 2}, - {"matrix": [4, 6], "x": 7, "y": 2}, - {"matrix": [5, 0], "x": 10, "y": 2}, - {"matrix": [5, 1], "x": 11, "y": 2}, - {"matrix": [5, 2], "x": 12, "y": 2}, - {"matrix": [5, 3], "x": 13, "y": 2}, - {"matrix": [5, 4], "x": 14, "y": 2}, - {"matrix": [5, 5], "x": 15, "y": 2}, - {"matrix": [5, 6], "x": 16, "y": 2, "w": 2.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 3.5, "y": 3}, - {"matrix": [6, 3], "x": 4.5, "y": 3}, - {"matrix": [6, 4], "x": 5.5, "y": 3}, - {"matrix": [6, 5], "x": 6.5, "y": 3}, - {"matrix": [6, 6], "x": 7.5, "y": 3}, - {"matrix": [7, 0], "x": 9.5, "y": 3}, - {"matrix": [7, 1], "x": 10.5, "y": 3}, - {"matrix": [7, 2], "x": 11.5, "y": 3}, - {"matrix": [7, 3], "x": 12.5, "y": 3}, - {"matrix": [7, 4], "x": 13.5, "y": 3}, - {"matrix": [7, 5], "x": 14.5, "y": 3}, - {"matrix": [7, 6], "x": 15.5, "y": 3, "w": 1.75}, - {"matrix": [7, 7], "x": 17.25, "y": 3}, - {"matrix": [8, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 5], "x": 5.5, "y": 4, "w": 2.25}, - {"matrix": [8, 6], "x": 7.75, "y": 4}, - {"matrix": [9, 1], "x": 9.75, "y": 4, "w": 1.25}, - {"matrix": [9, 2], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [9, 3], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [9, 7], "x": 16.75, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_alice_split_bs": { - "layout": [ - {"matrix": [2, 0], "x": 0, "y": 0}, - {"matrix": [0, 0], "x": 1.25, "y": 0}, - {"matrix": [0, 1], "x": 2.25, "y": 0}, - {"matrix": [0, 2], "x": 3.25, "y": 0}, - {"matrix": [0, 3], "x": 4.25, "y": 0}, - {"matrix": [0, 4], "x": 5.25, "y": 0}, - {"matrix": [0, 5], "x": 6.25, "y": 0}, - {"matrix": [0, 6], "x": 7.25, "y": 0}, - {"matrix": [1, 0], "x": 10.25, "y": 0}, - {"matrix": [1, 1], "x": 11.25, "y": 0}, - {"matrix": [1, 2], "x": 12.25, "y": 0}, - {"matrix": [1, 3], "x": 13.25, "y": 0}, - {"matrix": [1, 4], "x": 14.25, "y": 0}, - {"matrix": [1, 5], "x": 15.25, "y": 0}, - {"matrix": [1, 6], "x": 16.25, "y": 0}, - {"matrix": [1, 7], "x": 17.25, "y": 0}, - {"matrix": [4, 0], "x": 0, "y": 1}, - {"matrix": [2, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"matrix": [2, 2], "x": 2.75, "y": 1}, - {"matrix": [2, 3], "x": 3.75, "y": 1}, - {"matrix": [2, 4], "x": 4.75, "y": 1}, - {"matrix": [2, 5], "x": 5.75, "y": 1}, - {"matrix": [2, 6], "x": 6.75, "y": 1}, - {"matrix": [3, 0], "x": 9.75, "y": 1}, - {"matrix": [3, 1], "x": 10.75, "y": 1}, - {"matrix": [3, 2], "x": 11.75, "y": 1}, - {"matrix": [3, 3], "x": 12.75, "y": 1}, - {"matrix": [3, 4], "x": 13.75, "y": 1}, - {"matrix": [3, 5], "x": 14.75, "y": 1}, - {"matrix": [3, 6], "x": 15.75, "y": 1}, - {"matrix": [3, 7], "x": 16.75, "y": 1, "w": 1.5}, - {"matrix": [6, 0], "x": 0, "y": 2}, - {"matrix": [4, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"matrix": [4, 2], "x": 3, "y": 2}, - {"matrix": [4, 3], "x": 4, "y": 2}, - {"matrix": [4, 4], "x": 5, "y": 2}, - {"matrix": [4, 5], "x": 6, "y": 2}, - {"matrix": [4, 6], "x": 7, "y": 2}, - {"matrix": [5, 0], "x": 10, "y": 2}, - {"matrix": [5, 1], "x": 11, "y": 2}, - {"matrix": [5, 2], "x": 12, "y": 2}, - {"matrix": [5, 3], "x": 13, "y": 2}, - {"matrix": [5, 4], "x": 14, "y": 2}, - {"matrix": [5, 5], "x": 15, "y": 2}, - {"matrix": [5, 6], "x": 16, "y": 2, "w": 2.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 3.5, "y": 3}, - {"matrix": [6, 3], "x": 4.5, "y": 3}, - {"matrix": [6, 4], "x": 5.5, "y": 3}, - {"matrix": [6, 5], "x": 6.5, "y": 3}, - {"matrix": [6, 6], "x": 7.5, "y": 3}, - {"matrix": [7, 0], "x": 9.5, "y": 3}, - {"matrix": [7, 1], "x": 10.5, "y": 3}, - {"matrix": [7, 2], "x": 11.5, "y": 3}, - {"matrix": [7, 3], "x": 12.5, "y": 3}, - {"matrix": [7, 4], "x": 13.5, "y": 3}, - {"matrix": [7, 5], "x": 14.5, "y": 3}, - {"matrix": [7, 6], "x": 15.5, "y": 3, "w": 1.75}, - {"matrix": [7, 7], "x": 17.25, "y": 3}, - {"matrix": [8, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 5], "x": 5.5, "y": 4, "w": 2.25}, - {"matrix": [8, 6], "x": 7.75, "y": 4}, - {"matrix": [9, 1], "x": 9.75, "y": 4, "w": 1.25}, - {"matrix": [9, 2], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [9, 3], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [9, 7], "x": 16.75, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c b/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c deleted file mode 100644 index 113ebfd8b6..0000000000 --- a/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2023 Bryan Ong -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_alice( - KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI, - KC_LCTL, KC_LALT, KC_SPC, LT(_FN, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RCTL), - [_FN] = LAYOUT_alice( - KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, UG_TOGG, - QK_BOOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALD, UG_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_SATU, KC_TRNS, UG_HUEU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN] = { ENCODER_CCW_CW(_______, _______)} -}; -#endif diff --git a/keyboards/sneakbox/m4m5/keymaps/default/keymap.c b/keyboards/sneakbox/m4m5/keymaps/default/keymap.c deleted file mode 100644 index 938f073837..0000000000 --- a/keyboards/sneakbox/m4m5/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2023 Bryan Ong -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_alice_split_bs( - KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI, - KC_LCTL, KC_LALT, KC_SPC, LT(_FN, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RCTL), - [_FN] = LAYOUT_alice_split_bs( - KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, UG_TOGG, - QK_BOOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALD, UG_VALU, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_SATU, KC_TRNS, UG_HUEU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_FN] = { ENCODER_CCW_CW(_______, _______)} -}; -#endif diff --git a/keyboards/sneakbox/m4m5/readme.md b/keyboards/sneakbox/m4m5/readme.md deleted file mode 100644 index 4be06dbf98..0000000000 --- a/keyboards/sneakbox/m4m5/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Sneakbox M4 & M5 PCB - -![Sneakbox M4 & M5 PCB](https://i.imgur.com/hVLal1m.jpeg) - -An Alice-compatible PCB with hotswap with pushbutton rotary encoder socket placed at the top left key position. This PCB is the successor to the AliceCloneRGB PCB and features RGB underglow lighting along with revised hardware components such as an additional spacebar key in the right spacebar cluster. M4M5 firmware covers two physical PCBs for the MGA project (M4 PCB and M5 PCB) namely for the MGA V3 keyboard (which uses either PCB). - -* Keyboard Maintainer: [mujimanic](https://github.com/mujimanic) -* Hardware Supported: Any Alice-layout case. -* Hardware Availability: [sneakbox.design](https://sneakbox.com/products/m4-alice-pcbs-for-mga-cases) - -Make example for this keyboard (after setting up your build environment): - - make sneakbox/m4m5:default - -Flashing example for this keyboard: - - make sneakbox/m4m5: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 top left key in the nevigation cluster (Escape key) and plug in the keyboard -* **Physical reset button**: Briefly press the small metal button on the back of the PCB -* **Keycode in layout**: Press and hold the key next to the right split spacebar (to the right of the spacebar) and then press the End key (located on the bottom of the three-key navigation cluster) diff --git a/keyboards/snes_macropad/keyboard.json b/keyboards/snes_macropad/keyboard.json index a7f00f3fd8..91ee332357 100644 --- a/keyboards/snes_macropad/keyboard.json +++ b/keyboards/snes_macropad/keyboard.json @@ -6,6 +6,7 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -18,6 +19,7 @@ "driver": "vendor" }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/soda/cherish/keyboard.json b/keyboards/soda/cherish/keyboard.json index 9235fe3b3e..b256e93965 100644 --- a/keyboards/soda/cherish/keyboard.json +++ b/keyboards/soda/cherish/keyboard.json @@ -1,5 +1,6 @@ { "keyboard_name": "Cherish-75", + "url": "", "maintainer": "gezhaoyou", "manufacturer": "gezhaoyou", "usb": { diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h new file mode 100644 index 0000000000..cda0be789e --- /dev/null +++ b/keyboards/sofle/keyhive/config.h @@ -0,0 +1,23 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// OLED settings +#define OLED_TIMEOUT 80000 +#define OLED_BRIGHTNESS 90 diff --git a/keyboards/sofle/keyhive/keyboard.json b/keyboards/sofle/keyhive/keyboard.json index 720327b75d..8c76e875b0 100644 --- a/keyboards/sofle/keyhive/keyboard.json +++ b/keyboards/sofle/keyhive/keyboard.json @@ -1,4 +1,5 @@ { + "keyboard_name": "Sofle", "manufacturer": "Keyhive", "development_board": "elite_c", "usb": { diff --git a/keyboards/sofle/keyhive/readme.md b/keyboards/sofle/keyhive/readme.md new file mode 100644 index 0000000000..3847dfe6bb --- /dev/null +++ b/keyboards/sofle/keyhive/readme.md @@ -0,0 +1,54 @@ +# Keyhive Sofle Keyboard + +![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWuh.jpg) + +Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. + +For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) + +Build guide: [Keyhive Sofle RGB build guide](https://github.com/keyhive/build_guides/blob/master/docs/keyboards/sofle-rgb.md) + +* Keyboard Maintainer: [Winder](https://github.com/winder) +* Hardware Supported: Keyhive Sofle RGB, ProMicro / Elite-C +* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) + +### Acknowledgements + +* Solartempest - the image on this page and most of the code is either copied directly or inspired by their fork. [Solartempest's fork.](https://github.com/solartempest/qmk_firmware/tree/master/keyboards/solartempest/sofle). +* [Keyhive fork](https://github.com/keyhive/qmk_firmware) defined all of the board settings. + +# Supported Keymaps + +The keyhive schematic has been slightly modified compared to the open source sofle and not all keymaps are compatible. + +* **default**: Basic functionality, no rgb, no VIA. +* [keyhive_via](../keymaps/keyhive_via/readme.md) - Includes rgblighting and special support for remapping encoders with VIA. +* **Other**: may work but backwards compatibility is not guaranteed or tested. + +# VIA Support +As of 1.3.1, the VIA tool does not support Keyhive/Sofle V2 out of the box. +See [keyhive_via](../keymaps/keyhive_via/readme.md) for details about configuring and using VIA. + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make sofle/keyhive:default + +## Flashing + +Flash using the correct command below (or use QMK Toolbox). These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. + +Press reset button on the keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + + # for Pro Micro-based builds + make sofle/keyhive:default:avrdude-split-left + make sofle/keyhive:default:avrdude-split-right + + # for Elite C or DFU bootloader builds + make sofle/keyhive:default:dfu-split-left + make sofle/keyhive:default:dfu-split-right + +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). diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c index 564a624c58..37996c3e41 100644 --- a/keyboards/sofle/keymaps/default/keymap.c +++ b/keyboards/sofle/keymaps/default/keymap.c @@ -12,15 +12,14 @@ enum sofle_layers { }; enum custom_keycodes { - KC_PRVWD = QK_USER, + KC_QWERTY = QK_USER, + KC_COLEMAK, + KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND }; -#define KC_QWERTY PDF(_QWERTY) -#define KC_COLEMAK PDF(_COLEMAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -135,6 +134,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case KC_PRVWD: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h new file mode 100644 index 0000000000..564133ce7a --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/config.h @@ -0,0 +1,124 @@ + /* Copyright 2021 Dane Evans + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + #pragma once + + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ + +#define CUSTOM_FONT + +#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding + + +#define QUICK_TAP_TERM 0 +#ifdef TAPPING_TERM + #undef TAPPING_TERM + #define TAPPING_TERM 200 +#endif +#define ENCODER_DIRECTION_FLIP + + +#define RGBLIGHT_SLEEP +// +#define RGBLIGHT_LAYERS + +/* ws2812 RGB LED */ +#define WS2812_DI_PIN D3 + + +#ifdef RGB_MATRIX_ENABLE +#define RGBLIGHT_LED_COUNT 35 // Number of LEDs +#define RGBLIGHT_LED_COUNT 35 // Number of LEDs +#define RGB_MATRIX_LED_COUNT RGBLIGHT_LED_COUNT +#endif + +#ifdef RGBLIGHT_ENABLE + #undef RGBLIGHT_LED_COUNT + + //#define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + //#define RGBLIGHT_EFFECT_SNAKE + //#define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + //#define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING + //#define RGBLIGHT_EFFECT_TWINKLE + + #define RGBLIGHT_LED_COUNT 70 + #undef RGBLED_SPLIT + #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet + + //#define RGBLIGHT_LED_COUNT 30 + #undef RGBLIGHT_LIMIT_VAL + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +# define RGB_MATRIX_SLEEP // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. + +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ + // # undef ENABLE_RGB_MATRIX_ALPHAS_MODS + // # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + // # undef ENABLE_RGB_MATRIX_BREATHING + // # undef ENABLE_RGB_MATRIX_CYCLE_ALL + // # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + // # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + // # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + // # undef ENABLE_RGB_MATRIX_DUAL_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + // # undef ENABLE_RGB_MATRIX_RAINDROPS + // # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + // # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP + // # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // # undef ENABLE_RGB_MATRIX_SPLASH + // # undef ENABLE_RGB_MATRIX_MULTISPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_SPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c new file mode 100644 index 0000000000..fd2346e10b --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/keymap.c @@ -0,0 +1,573 @@ + + /* Copyright 2021 Dane Evans + * + * 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 . + */ + // SOFLE RGB +#include + +#include QMK_KEYBOARD_H + +#define INDICATOR_BRIGHTNESS 30 + +#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override +#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override) + +// Light combinations +#define SET_INDICATORS(hsv) \ + {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ + {35+0, 1, hsv} +#define SET_UNDERGLOW(hsv) \ + {1, 6, hsv}, \ + {35+1, 6,hsv} +#define SET_NUMPAD(hsv) \ + {35+15, 5, hsv},\ + {35+22, 3, hsv},\ + {35+27, 3, hsv} +#define SET_NUMROW(hsv) \ + {10, 2, hsv}, \ + {20, 2, hsv}, \ + {30, 2, hsv}, \ + {35+ 10, 2, hsv}, \ + {35+ 20, 2, hsv}, \ + {35+ 30, 2, hsv} +#define SET_INNER_COL(hsv) \ + {33, 4, hsv}, \ + {35+ 33, 4, hsv} + +#define SET_OUTER_COL(hsv) \ + {7, 4, hsv}, \ + {35+ 7, 4, hsv} +#define SET_THUMB_CLUSTER(hsv) \ + {25, 2, hsv}, \ + {35+ 25, 2, hsv} +#define SET_LAYER_ID(hsv) \ + {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ + {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ + {1, 6, hsv}, \ + {35+1, 6, hsv}, \ + {7, 4, hsv}, \ + {35+ 7, 4, hsv}, \ + {25, 2, hsv}, \ + {35+ 25, 2, hsv} + + +enum sofle_layers { + _DEFAULTS = 0, + _QWERTY = 0, + _COLEMAK, + _COLEMAKDH, + _LOWER, + _RAISE, + _ADJUST, + _NUMPAD, + _SWITCH +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_COLEMAKDH, + KC_LOWER, + KC_RAISE, + KC_ADJUST, + KC_D_MUTE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| + * | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_QWERTY] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTL, KC_RALT + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), + +/* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| + * | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_COLEMAK] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), + +/* + * COLEMAK-DH + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| + * | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_COLEMAKDH] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), + +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_LOWER] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + _______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), +/* RAISE + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_RAISE] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |UG_TOGG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_ADJUST] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + QK_BOOT, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + UG_TOGG, UG_HUEU,UG_SATU, UG_VALU, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + UG_NEXT, UG_HUED,UG_SATD, UG_VALD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), +/* NUMPAD + * ,-----------------------------------------. ,-----------------------------------------. + * | trans| | | | | | | |NumLck| | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | | | | | | | ^ | 7 | 8 | 9 | * | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_NUMPAD] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______ + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ +), + +/* SWITCH + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | qwer | cole |col_dh| low | raise| adj | |numpad| | | | |QK_BOOT | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | | | | |EE_CLR| + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | SLEEP| | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + // layer switcher +[_SWITCH] = LAYOUT( + //,------------------------------------------------. ,---------------------------------------------------. + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, + //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| + KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_SYSTEM_SLEEP,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ + + ), +}; + +#ifdef RGBLIGHT_ENABLE +char layer_state_str[70]; +// Now define the array of layers. Later layers take precedence + +// QWERTY, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_RED) + +); +const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_PINK) +); + +// _NUM, +// Light on outer column and underglow +const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_TEAL) + +); +// _SYMBOL, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_BLUE) + + ); +// _COMMAND, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_PURPLE) +); + +//_NUMPAD +const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_INDICATORS(HSV_ORANGE), + SET_UNDERGLOW(HSV_ORANGE), + SET_NUMPAD(HSV_BLUE), + {7, 4, HSV_ORANGE}, + {25, 2, HSV_ORANGE}, + {35+6, 4, HSV_ORANGE}, + {35+25, 2, HSV_ORANGE} + ); +// _SWITCHER // light up top row +const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS( + SET_LAYER_ID(HSV_GREEN), + SET_NUMROW(HSV_GREEN) +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + + layer_qwerty_lights, + layer_num_lights,// overrides layer 1 + layer_symbol_lights, + layer_command_lights, + layer_numpad_lights, + layer_switcher_lights, // Overrides other layers + layer_colemakdh_lights +); + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); + rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH)); + + + rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER)); + rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE)); + rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST)); + rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD)); + rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH)); + return state; +} +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + + rgblight_mode(10);// haven't found a way to set this in a more useful way + +} +#endif + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("Dane\nEvans"), false); + + oled_write_ln_P(PSTR(""), false); + + //snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state) + + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + case _COLEMAKDH: + oled_write_ln_P(PSTR("CmkDH"), false); + break; + + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + case _COLEMAKDH: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), false); + break; + case _NUMPAD: + oled_write_P(PSTR("Nump\n"), false); + break; + case _SWITCH: + oled_write_P(PSTR("Swit\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_COLEMAKDH: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAKDH); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case KC_D_MUTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_MEH)); + register_code(KC_UP); + } else { + unregister_mods(mod_config(MOD_MEH)); + unregister_code(KC_UP); + } + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + case _COLEMAKDH: + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + break; + case _RAISE: + case _LOWER: + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + break; + default: + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + break; + } + } + return true; +} + +#endif diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk new file mode 100644 index 0000000000..0d18161a0d --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes +LTO_ENABLE = yes +OLED_ENABLE = yes diff --git a/keyboards/sofle/readme.md b/keyboards/sofle/readme.md index 6af2a93ec5..7e8ef215c2 100644 --- a/keyboards/sofle/readme.md +++ b/keyboards/sofle/readme.md @@ -4,37 +4,24 @@ Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. -More details about the keyboard and build guides can be found here: [Sofle Keyboard Build Log and Guide](https://josefadamcik.github.io/SofleKeyboard) +More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) + +The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) * Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik) * Hardware Supported: SofleKeyboard PCB, ProMicro * Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) -## Firmware Revisions -- `sofle/rev1` is used for v1, v2, and RGB PCBs (**NOT** RGB PCBs purchased from [Keyhive](https://keyhive.xyz)) -- `sofle/keyhive` is used for PCBs purchased from [Keyhive](https://keyhive.xyz/shop/sofle) -- [`keyboards/sofle_choc`](../sofle_choc/) is used for Choc PCBs - Make example for this keyboard (after setting up your build environment): - make sofle/rev1:default - make sofle/keyhive:default + make sofle:default -Flashing example for this keyboard: +Flash the default keymap: - make sofle/rev1:default:flash - make sofle/keyhive:default:flash + make sofle:default:avrdude Press reset button on he keyboard when asked. Disconnect the first half, connect the second one and repeat the process. 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 -* **Physical reset button**: Briefly press the button near the TRRS connector. Quickly double-tap if you are using Pro Micro. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/sofle/rev1/readme.md b/keyboards/sofle/rev1/readme.md new file mode 100644 index 0000000000..1d229030c4 --- /dev/null +++ b/keyboards/sofle/rev1/readme.md @@ -0,0 +1,27 @@ +# Sofle Keyboard + +![SofleKeyboard version 1](https://i.imgur.com/S5GTKth.jpeg) + +Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. + +More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) + +The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) + +* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik) +* Hardware Supported: SofleKeyboard PCB, ProMicro +* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) + +Make example for this keyboard (after setting up your build environment): + + make sofle:default + +Flashing example for this keyboard: + + make sofle:default:flash + +Press reset button on he keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + +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). diff --git a/keyboards/sofle/rules.mk b/keyboards/sofle/rules.mk new file mode 100644 index 0000000000..a7307c3499 --- /dev/null +++ b/keyboards/sofle/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = sofle/rev1 diff --git a/keyboards/sofle/sofle.c b/keyboards/sofle/sofle.c index bbd9595def..3f88e2b5ba 100644 --- a/keyboards/sofle/sofle.c +++ b/keyboards/sofle/sofle.c @@ -85,13 +85,10 @@ void print_status_narrow(void) { oled_write_P(PSTR("Base\n"), false); break; case 2: - oled_write_P(PSTR("Lower"), false); - break; - case 3: oled_write_P(PSTR("Raise"), false); break; - case 4: - oled_write_P(PSTR("Adjust"), false); + case 3: + oled_write_P(PSTR("Lower"), false); break; default: oled_write_ln_P(PSTR("Undef"), false); diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h deleted file mode 100644 index f4f34171fa..0000000000 --- a/keyboards/sofle_pico/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Use full duplex communication (TRRS) */ -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_TX_PIN GP16 -#define SERIAL_USART_RX_PIN GP17 -/* Swap TX and RX pins if keyboard is master half. Only available on some MCU's. This _is_ available on the RP2040 */ -#define SERIAL_USART_PIN_SWAP - -/* I2C for OLEDs */ -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP6 -#define I2C1_SCL_PIN GP7 - -#define OLED_DISPLAY_128X64 -#define OLED_TIMEOUT 30000 - -#define ENCODER_MAP_KEY_DELAY 10 - -#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 diff --git a/keyboards/sofle_pico/halconf.h b/keyboards/sofle_pico/halconf.h deleted file mode 100644 index ed969d9afc..0000000000 --- a/keyboards/sofle_pico/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_I2C TRUE -#include_next diff --git a/keyboards/sofle_pico/keyboard.json b/keyboards/sofle_pico/keyboard.json deleted file mode 100644 index c57c4e8f9e..0000000000 --- a/keyboards/sofle_pico/keyboard.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "manufacturer": "Ryan Neff", - "keyboard_name": "Sofle Pico", - "maintainer": "Ryan Neff ", - "bootloader": "rp2040", - "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"], - "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"] - }, - "processor": "RP2040", - "rgb_matrix": { - "animations": { - "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_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 - }, - "default": { - "animation": "cycle_out_in_dual", - "speed": 16 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 5], "x": 95, "y": 7, "flags": 4}, - {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, - {"matrix": [2, 5], "x": 95, "y": 36, "flags": 4}, - {"matrix": [3, 5], "x": 95, "y": 50, "flags": 4}, - {"matrix": [4, 4], "x": 115, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 95, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 76, "y": 62, "flags": 4}, - {"matrix": [3, 4], "x": 76, "y": 48, "flags": 4}, - {"matrix": [2, 4], "x": 76, "y": 33, "flags": 4}, - {"matrix": [1, 4], "x": 76, "y": 19, "flags": 4}, - {"matrix": [0, 4], "x": 76, "y": 5, "flags": 4}, - {"matrix": [0, 3], "x": 57, "y": 3, "flags": 4}, - {"matrix": [1, 3], "x": 57, "y": 17, "flags": 4}, - {"matrix": [2, 3], "x": 57, "y": 31, "flags": 4}, - {"matrix": [3, 3], "x": 57, "y": 46, "flags": 4}, - {"matrix": [4, 1], "x": 57, "y": 62, "flags": 4}, - {"matrix": [4, 0], "x": 38, "y": 64, "flags": 4}, - {"matrix": [3, 2], "x": 38, "y": 48, "flags": 4}, - {"matrix": [2, 2], "x": 38, "y": 33, "flags": 4}, - {"matrix": [1, 2], "x": 38, "y": 19, "flags": 4}, - {"matrix": [0, 2], "x": 38, "y": 5, "flags": 4}, - {"matrix": [0, 1], "x": 19, "y": 7, "flags": 4}, - {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, - {"matrix": [2, 1], "x": 19, "y": 36, "flags": 4}, - {"matrix": [3, 1], "x": 19, "y": 50, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 50, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, - {"matrix": [5, 5], "x": 129, "y": 7, "flags": 4}, - {"matrix": [6, 5], "x": 129, "y": 21, "flags": 4}, - {"matrix": [7, 5], "x": 129, "y": 36, "flags": 4}, - {"matrix": [8, 5], "x": 129, "y": 50, "flags": 4}, - {"matrix": [9, 4], "x": 119, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 129, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 148, "y": 62, "flags": 4}, - {"matrix": [8, 4], "x": 148, "y": 48, "flags": 4}, - {"matrix": [7, 4], "x": 148, "y": 33, "flags": 4}, - {"matrix": [6, 4], "x": 148, "y": 19, "flags": 4}, - {"matrix": [5, 4], "x": 148, "y": 5, "flags": 4}, - {"matrix": [5, 3], "x": 167, "y": 3, "flags": 4}, - {"matrix": [6, 3], "x": 167, "y": 17, "flags": 4}, - {"matrix": [7, 3], "x": 167, "y": 31, "flags": 4}, - {"matrix": [8, 3], "x": 167, "y": 46, "flags": 4}, - {"matrix": [9, 1], "x": 167, "y": 62, "flags": 4}, - {"matrix": [9, 0], "x": 186, "y": 64, "flags": 4}, - {"matrix": [8, 2], "x": 186, "y": 48, "flags": 4}, - {"matrix": [7, 2], "x": 186, "y": 33, "flags": 4}, - {"matrix": [6, 2], "x": 186, "y": 19, "flags": 4}, - {"matrix": [5, 2], "x": 186, "y": 5, "flags": 4}, - {"matrix": [5, 1], "x": 209, "y": 7, "flags": 4}, - {"matrix": [6, 1], "x": 209, "y": 21, "flags": 4}, - {"matrix": [7, 1], "x": 209, "y": 36, "flags": 4}, - {"matrix": [8, 1], "x": 209, "y": 50, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 50, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 21, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 7, "flags": 4} - ], - "max_brightness": 127, - "sleep": true, - "split_count": [29, 29] - }, - "split": { - "bootmagic": { - "matrix": [5, 0] - }, - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15"} - ] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "layer_state": true, - "matrix_state": true - } - } - }, - "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"], - "url": "https://github.com/JellyTitan/Sofle-Pico", - "usb": { - "device_version": "3.5.4", - "pid": "0x5350", - "vid": "0x4A54" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP0" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "`", "matrix": [0, 0], "x": 0, "y": 0.7}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.7}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0.3}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0.3}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0.45}, - {"label": "6", "matrix": [5, 5], "x": 9, "y": 0.45}, - {"label": "7", "matrix": [5, 4], "x": 10, "y": 0.3}, - {"label": "8", "matrix": [5, 3], "x": 11, "y": 0}, - {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3}, - {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7}, - {"label": "`", "matrix": [5, 0], "x": 14, "y": 0.7}, - {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1.7}, - {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7}, - {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3}, - {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4, "y": 1.3}, - {"label": "T", "matrix": [1, 5], "x": 5, "y": 1.45}, - {"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.45}, - {"label": "U", "matrix": [6, 4], "x": 10, "y": 1.3}, - {"label": "I", "matrix": [6, 3], "x": 11, "y": 1}, - {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3}, - {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7}, - {"label": "Bspc", "matrix": [6, 0], "x": 14, "y": 1.7}, - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.7}, - {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7}, - {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3}, - {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4, "y": 2.3}, - {"label": "G", "matrix": [2, 5], "x": 5, "y": 2.45}, - {"label": "H", "matrix": [7, 5], "x": 9, "y": 2.45}, - {"label": "J", "matrix": [7, 4], "x": 10, "y": 2.3}, - {"label": "K", "matrix": [7, 3], "x": 11, "y": 2}, - {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.3}, - {"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7}, - {"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7}, - {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3.7}, - {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7}, - {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3}, - {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.3}, - {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.45}, - {"label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45}, - {"label": "Pause", "matrix": [9, 5], "x": 7.8, "y": 3.45}, - {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.45}, - {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.3}, - {"label": ",", "matrix": [8, 3], "x": 11, "y": 3}, - {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3}, - {"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7}, - {"label": "RShift", "matrix": [8, 0], "x": 14, "y": 3.7}, - {"label": "LCtrl", "matrix": [4, 0], "x": 2, "y": 4.3}, - {"label": "LGUI", "matrix": [4, 1], "x": 3, "y": 4}, - {"label": "LCmnd", "matrix": [4, 2], "x": 4, "y": 4.3}, - {"label": "LAlt", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5}, - {"label": "Enter", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5}, - {"label": "Space", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5}, - {"label": "RAlt", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5}, - {"label": "RCmnd", "matrix": [9, 2], "x": 10, "y": 4.3}, - {"label": "RGui", "matrix": [9, 1], "x": 11, "y": 4}, - {"label": "RCtrl", "matrix": [9, 0], "x": 12, "y": 4.3} - ] - } - } -} diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c deleted file mode 100644 index a09f32fc37..0000000000 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum sofle_layers { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [_QWERTY] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, 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_MUTE, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, KC_LALT, KC_LCTL, TL_LOWR, KC_ENT, KC_SPC , TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI - ), - [_LOWER] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, - _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC, - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, - _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, RM_VALU, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX, RM_NEXT, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, - [2] = {ENCODER_CCW_CW(_______, _______)}, - [3] = {ENCODER_CCW_CW(_______, _______)}, -}; -#endif diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md deleted file mode 100644 index a15159d07c..0000000000 --- a/keyboards/sofle_pico/keymaps/default/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -![SofleKeyboard default keymap](https://i.imgur.com/MZxVvm9.png) -![SofleKeyboard adjust layer](https://i.imgur.com/f5sKy0I.png) - - -# Default keymap for Sofle Pico Keyboard - -Adapted from the classic Sofle Keyboard by Josef Adamcik. -Simplified to serve as a starting point for further customizations. -Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) -Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. diff --git a/keyboards/sofle_pico/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk deleted file mode 100644 index 7c9bf212a6..0000000000 --- a/keyboards/sofle_pico/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TRI_LAYER_ENABLE = yes diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md deleted file mode 100644 index 34498d0c1b..0000000000 --- a/keyboards/sofle_pico/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Sofle Pico Keyboard - -![Sofle Pico](https://i.imgur.com/9VBj3T5.jpeg) -![Sofle Pico PCB](https://i.imgur.com/8SDTm4h.jpeg) -Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, per-key RGB lighting, 128x64 OLEDs and a tenting puck mount. - -- Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) -- Hardware Supported: Sofle Pico PCB v3.5.x, Raspberry Pi Pico -- Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/Sofle-Pico) - -Remember you have to flash both halves of the keyboard for it to work! - -Make example for this keyboard (after setting up your build environment): - - make sofle_pico:default - -Flashing example for this keyboard: - - make sofle_pico: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** (works after you have flashed once): Hold down the top far corner key while plugging in the keyboard (`~` left half, `-` right half). This will also clear the EEPROM. -- **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button. -- **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer. - -Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a `.uf2` firmware file to flash it. diff --git a/keyboards/sofle_pico/sofle_pico.c b/keyboards/sofle_pico/sofle_pico.c deleted file mode 100644 index b237dfc599..0000000000 --- a/keyboards/sofle_pico/sofle_pico.c +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef OLED_ENABLE - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_90; -} - -static void render_logo(void) { - static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - render_logo(); - return false; -} - -#endif diff --git a/keyboards/somei70/config.h b/keyboards/somei70/config.h deleted file mode 100644 index 1336a1f28b..0000000000 --- a/keyboards/somei70/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define OLED_BRIGHTNESS 100 diff --git a/keyboards/somei70/keyboard.json b/keyboards/somei70/keyboard.json deleted file mode 100644 index 70f57d5ff5..0000000000 --- a/keyboards/somei70/keyboard.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "manufacturer": "gzowski", - "keyboard_name": "Somei70", - "maintainer": "gzowski", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true, - "rgb_matrix": true, - "wpm": true - }, - "matrix_pins": { - "cols": ["GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21", "GP16", "GP15", "GP14", "GP13", "GP12", "GP9", "GP8", "GP7"], - "rows": ["GP1", "GP29", "GP6", "GP5", "GP4"] - }, - "processor": "RP2040", - "rgb_matrix": { - "animations": { - "band_sat": true, - "band_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "dual_beacon": true, - "gradient_left_right": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "jellybean_raindrops": true, - "rainbow_beacon": true, - "rainbow_moving_chevron": true, - "raindrops": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 212, "y": 0, "flags": 4} - ], - "led_flush_limit": 14, - "led_process_limit": 5, - "max_brightness": 200, - "sleep": true - }, - "url": "https://github.com/gzowski/somei70", - "usb": { - "device_version": "1.0.0", - "pid": "0x6F64", - "vid": "0x73CA" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP0" - }, - "layouts": { - "LAYOUT_5x15": { - "layout": [ - {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "QLOT", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "GRV", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "DEL", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"label": "PGUP", "matrix": [2, 14], "x": 15, "y": 2}, - {"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3, "w": 2}, - {"label": "Z", "matrix": [3, 1], "x": 2, "y": 3}, - {"label": "X", "matrix": [3, 2], "x": 3, "y": 3}, - {"label": "C", "matrix": [3, 3], "x": 4, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 5, "y": 3}, - {"label": "B", "matrix": [3, 5], "x": 6, "y": 3}, - {"label": "N", "matrix": [3, 6], "x": 7, "y": 3}, - {"label": "M", "matrix": [3, 7], "x": 8, "y": 3}, - {"label": "COMM", "matrix": [3, 8], "x": 9, "y": 3}, - {"label": "DOT", "matrix": [3, 9], "x": 10, "y": 3}, - {"label": "SLSH", "matrix": [3, 10], "x": 11, "y": 3}, - {"label": "RSFT", "matrix": [3, 11], "x": 12, "y": 3}, - {"label": "INS", "matrix": [3, 12], "x": 13, "y": 3}, - {"label": "UP", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "PGDN", "matrix": [3, 14], "x": 15, "y": 3}, - {"label": "RCTL", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "SPC", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, - {"label": "MUTE", "matrix": [4, 4], "x": 6, "y": 4, "w": 1.75}, - {"label": "ENT", "matrix": [4, 5], "x": 7.75, "y": 4, "w": 2.25}, - {"label": "RALT", "matrix": [4, 6], "x": 10, "y": 4}, - {"label": "MO(1)", "matrix": [4, 7], "x": 11, "y": 4}, - {"label": "RCTL", "matrix": [4, 8], "x": 12, "y": 4}, - {"label": "LEFT", "matrix": [4, 9], "x": 13, "y": 4}, - {"label": "DOWN", "matrix": [4, 10], "x": 14, "y": 4}, - {"label": "RGHT", "matrix": [4, 11], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/somei70/keymaps/default/keymap.c b/keyboards/somei70/keymaps/default/keymap.c deleted file mode 100644 index 2569b8b207..0000000000 --- a/keyboards/somei70/keymaps/default/keymap.c +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2024 James Gzowski -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H -enum custom_layer { _LAYERA, _LAYERB }; -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_LAYERA] = LAYOUT_5x15( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC, KC_BSLS, - KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , KC_GRV , KC_DEL , KC_PGUP, - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT , KC_INS , KC_UP , KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MUTE, KC_ENT, KC_RALT, MO(_LAYERB), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -), -[_LAYERB] = LAYOUT_5x15( - 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_PSCR, - KC_TAB , RM_NEXT, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, KC_P , KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_GRV , KC_DEL , KC_PGUP, - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_INS , KC_UP , KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , RM_TOGG, KC_ENT , KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -)}; diff --git a/keyboards/somei70/readme.md b/keyboards/somei70/readme.md deleted file mode 100644 index 21b80a8411..0000000000 --- a/keyboards/somei70/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Somei70 - -70 key alternative layout - -* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski) -* Hardware Supported: Elite-Pi, Frood, 0xB2 Splinky or similar, requires D9-D15 pins -* Build Guide: [Somei70](https://github.com/gzowski/somei70) - -Make example for this keyboard (after setting up your build environment): - - make somei70:default - -Flashing example for this keyboard: - - make somei70: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 - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the PCB, if using a RP2040 press repeatidly to enter boot mode. -* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard diff --git a/keyboards/somei70/somei70.c b/keyboards/somei70/somei70.c deleted file mode 100644 index 5521a67384..0000000000 --- a/keyboards/somei70/somei70.c +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2024 James Gzowski -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H -#ifdef OLED_ENABLE -static uint8_t oled_mode = 0; -static uint8_t esc_press_count = 0; -static uint16_t esc_timer = 0; -// Stats display -void render_stats(void) { - oled_write_P(PSTR("WPM: "), false); - oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); - if (host_keyboard_led_state().caps_lock) { - oled_write_P(PSTR("CAPS: On "), false); - } else { - oled_write_P(PSTR("CAPS: Off "), false); - } - if (keymap_config.nkro) { - oled_write_ln("NKRO: On", false); - } else { - oled_write_ln("NKRO: Off", false); - } - oled_write_P(PSTR("LED Brightness: "), false); - oled_write_ln(get_u8_str(rgblight_get_val(), '0'), false); - oled_write_ln(PSTR("P: 0x6F64 V: 0x73CA"), false); -} -// Static images -static void render_caps(void) { - static const char PROGMEM my_caps[] = { - 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 240, - 248, 12, 12, 12, 12, 12, 28, 56, 0, 0, 240, 248, 156, 12, 12, 12, 12, 156, 248, 240, 0, 0, 248, 252, 156, 12, 12, 12, 12, 152, 240, 0, 0, 32, 112, 216, 140, 140, 140, 12, 12, 4, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 15, 31, 48, 48, 48, 48, 48, 56, 28, 0, 0, 63, 63, 3, 1, 1, 1, 1, 3, 63, 63, 0, 0, 63, 63, 3, 3, 3, 3, 3, 1, 0, 0, 0, 16, 48, 48, 49, 49, 49, 27, 14, 4, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, - }; - oled_write_raw_P(my_caps, sizeof(my_caps)); -} -static void render_logo(void) { - static const char PROGMEM my_logo[] = { - 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 48, 120, 204, 204, 204, 204, 204, 140, 8, 0, 0, - 240, 248, 12, 12, 12, 12, 12, 248, 240, 0, 0, 248, 252, 24, 48, 96, 96, 48, 24, 252, 248, 0, 0, 248, 252, 140, 140, 140, 12, 8, 0, 0, 252, 252, 0, 0, 8, 12, 12, 12, 12, 252, 248, 0, 0, 240, 248, 12, 12, 140, 76, 248, 240, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 16, 48, 48, 48, 48, 48, 48, 63, 15, 0, 0, 15, 31, 48, 48, 48, 48, 48, 31, 15, 0, 0, 63, 31, 0, 0, 0, 0, 0, 0, 31, 63, 0, 0, 31, 63, 49, 49, 49, 48, 16, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 63, 63, - 0, 0, 15, 31, 50, 49, 48, 48, 31, 15, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, - }; - oled_write_raw_P(my_logo, sizeof(my_logo)); -} -// Render chosen display -void render_oled_display(void) { - if (oled_mode == 0) { - if (host_keyboard_led_state().caps_lock) { - render_caps(); - } else { - render_logo(); - } - } else if (oled_mode == 1) { - render_stats(); - } -} -// Rotate 180 degrees -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - render_oled_display(); - return false; -} -// Record keypress -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_ESC: - if (record->event.pressed) { - if (timer_elapsed(esc_timer) > 250) { - esc_press_count = 0; - } - esc_press_count++; - esc_timer = timer_read(); - - if (esc_press_count == 3) { - oled_clear(); - oled_mode = (oled_mode == 0) ? 1 : 0; - esc_press_count = 0; - } - } - break; - } - return process_record_user(keycode, record); -} -#endif diff --git a/keyboards/soup10/keyboard.json b/keyboards/soup10/keyboard.json index 08c1b8b5dd..f4e1947652 100644 --- a/keyboards/soup10/keyboard.json +++ b/keyboards/soup10/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -31,7 +33,8 @@ "bootmagic": { "matrix": [0, 1] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sowbug/68keys/keyboard.json b/keyboards/sowbug/68keys/keyboard.json index be4ffbf9a9..7143f341b5 100644 --- a/keyboards/sowbug/68keys/keyboard.json +++ b/keyboards/sowbug/68keys/keyboard.json @@ -63,6 +63,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sowbug/68keys/keymaps/default/keymap.c b/keyboards/sowbug/68keys/keymaps/default/keymap.c index 0fe7465c88..b8c34f9525 100644 --- a/keyboards/sowbug/68keys/keymaps/default/keymap.c +++ b/keyboards/sowbug/68keys/keymaps/default/keymap.c @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐ _______, 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_HOME, //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤ - BL_TOGG, BL_STEP, KC_UP, _______, _______, _______, _______, _______, RM_SPDU, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_BSLS, _______, KC_END, + BL_TOGG, BL_STEP, KC_UP, _______, _______, _______, _______, _______, RGB_SPI, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_BSLS, _______, KC_END, //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_QUOT, KC_ENTER, //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐ - _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_END, _______, RM_NEXT, + _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_END, _______, RGB_MOD, //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐ - _______, _______, _______, _______, _______, _______, KC_MENU, RM_VALU, RM_TOGG, RM_HUEU + _______, _______, _______, _______, _______, _______, KC_MENU, RGB_VAI, RGB_TOG, RGB_HUI //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴──────────┘ └────────┴────────┴────────┘ ) diff --git a/keyboards/sowbug/ansi_tkl/keyboard.json b/keyboards/sowbug/ansi_tkl/keyboard.json index 50b9d8095a..837e08a59e 100644 --- a/keyboards/sowbug/ansi_tkl/keyboard.json +++ b/keyboards/sowbug/ansi_tkl/keyboard.json @@ -63,6 +63,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c b/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c index 894fd67a7d..0015ae8c34 100644 --- a/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c +++ b/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c @@ -28,11 +28,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, QK_BOOT , _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, - _______, RM_SPDD, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, - _______, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* diff --git a/keyboards/soy20/keyboard.json b/keyboards/soy20/keyboard.json index 901aa9e868..77524eff6c 100644 --- a/keyboards/soy20/keyboard.json +++ b/keyboards/soy20/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Soy20", "manufacturer": "drewkeys", + "url": "", "maintainer": "twholt", "usb": { "vid": "0x4452", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/spaceholdings/nebula12/keyboard.json b/keyboards/spaceholdings/nebula12/keyboard.json index 7157cfc05b..2b170e8e61 100755 --- a/keyboards/spaceholdings/nebula12/keyboard.json +++ b/keyboards/spaceholdings/nebula12/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEBULA12", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json index 6990da485b..961e971885 100755 --- a/keyboards/spaceholdings/nebula12b/keyboard.json +++ b/keyboards/spaceholdings/nebula12b/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEBULA12B", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c index d7297e3fa9..f6c680d095 100755 --- a/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c +++ b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_P0, KC_PDOT), [1] = LAYOUT_ortho_4x3( /* FN */ - RM_TOGG, RM_NEXT, KC_TRNS, + RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PENT) diff --git a/keyboards/spaceholdings/nebula68/keyboard.json b/keyboards/spaceholdings/nebula68/keyboard.json index 8eb6d67a03..47cab7a5b0 100755 --- a/keyboards/spaceholdings/nebula68/keyboard.json +++ b/keyboards/spaceholdings/nebula68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NEBULA68", "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceholdings/nebula68b/info.json b/keyboards/spaceholdings/nebula68b/info.json index 1c279ee715..3a7f6f9b25 100644 --- a/keyboards/spaceholdings/nebula68b/info.json +++ b/keyboards/spaceholdings/nebula68b/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Yiancar-Designs", + "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c b/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c index e441b52cab..c42ca071f3 100644 --- a/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c +++ b/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_68_ansi( /* FN */ 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, KC_DEL, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______) diff --git a/keyboards/spaceholdings/nebula68b/rules.mk b/keyboards/spaceholdings/nebula68b/rules.mk new file mode 100644 index 0000000000..8fe37f83b3 --- /dev/null +++ b/keyboards/spaceholdings/nebula68b/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = spaceholdings/nebula68b/solder diff --git a/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c b/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c index 353a36d018..68fe5d22fd 100755 --- a/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c +++ b/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_68_ansi_split_bs( /* FN */ 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, _______, KC_DEL, _______, _______, - _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______) diff --git a/keyboards/spaceman/2_milk/keyboard.json b/keyboards/spaceman/2_milk/keyboard.json index 748f3e9854..4fdef6bace 100644 --- a/keyboards/spaceman/2_milk/keyboard.json +++ b/keyboards/spaceman/2_milk/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "2% Milk", "manufacturer": "Spaceman", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", @@ -13,7 +14,8 @@ "ws2812": { "pin": "B6" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/spaceman/pancake/rev1/feather/keyboard.json b/keyboards/spaceman/pancake/rev1/feather/keyboard.json index 7ba561ab61..3b82e3d499 100644 --- a/keyboards/spaceman/pancake/rev1/feather/keyboard.json +++ b/keyboards/spaceman/pancake/rev1/feather/keyboard.json @@ -1,6 +1,4 @@ { - "processor": "atmega32u4", - "bootloader": "caterina", "features": { "bluetooth": true, "bootmagic": true, diff --git a/keyboards/spaceman/pancake/rev1/info.json b/keyboards/spaceman/pancake/rev1/info.json index 29f48c672b..0814e11244 100644 --- a/keyboards/spaceman/pancake/rev1/info.json +++ b/keyboards/spaceman/pancake/rev1/info.json @@ -1,12 +1,15 @@ { "keyboard_name": "Pancake", "manufacturer": "Spaceman", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", "pid": "0x504B", "device_version": "0.0.1" }, + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x12", "planck_mit"], "layouts": { "LAYOUT_planck_mit": { diff --git a/keyboards/spaceman/pancake/rev1/promicro/keyboard.json b/keyboards/spaceman/pancake/rev1/promicro/keyboard.json index feda013255..658eaa39c1 100644 --- a/keyboards/spaceman/pancake/rev1/promicro/keyboard.json +++ b/keyboards/spaceman/pancake/rev1/promicro/keyboard.json @@ -1,5 +1,4 @@ { - "development_board": "promicro", "features": { "bootmagic": true, "command": true, diff --git a/keyboards/spaceman/pancake/rev2/keyboard.json b/keyboards/spaceman/pancake/rev2/keyboard.json index 2e7dd8f6b4..88bf2a0b9f 100644 --- a/keyboards/spaceman/pancake/rev2/keyboard.json +++ b/keyboards/spaceman/pancake/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pancake 2", "manufacturer": "Spaceman", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/spaceman/yun65/keyboard.json b/keyboards/spaceman/yun65/keyboard.json index 1f57af8e0d..017de06abb 100644 --- a/keyboards/spaceman/yun65/keyboard.json +++ b/keyboards/spaceman/yun65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Yun 65", "manufacturer": "Spaceman", + "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/spacetime/info.json b/keyboards/spacetime/info.json index b11a43f53c..4e3682a8c2 100644 --- a/keyboards/spacetime/info.json +++ b/keyboards/spacetime/info.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -32,7 +33,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk new file mode 100644 index 0000000000..ac339c2cef --- /dev/null +++ b/keyboards/spacetime/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = spacetime/rev1 diff --git a/keyboards/sparrow62/keyboard.json b/keyboards/sparrow62/keyboard.json index e732ab6539..96447b6a36 100644 --- a/keyboards/sparrow62/keyboard.json +++ b/keyboards/sparrow62/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -34,7 +36,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/specskeys/keyboard.json b/keyboards/specskeys/keyboard.json index 73d34e4a39..104b1ea13d 100644 --- a/keyboards/specskeys/keyboard.json +++ b/keyboards/specskeys/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Specskeys", "manufacturer": "Specs32", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xCAFE", diff --git a/keyboards/spiderisland/split78/keyboard.json b/keyboards/spiderisland/split78/keyboard.json index 4a818470f8..cd49755b0f 100644 --- a/keyboards/spiderisland/split78/keyboard.json +++ b/keyboards/spiderisland/split78/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Split 78-key", "manufacturer": "SpiderIsland", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/spleeb/config.h b/keyboards/spleeb/config.h index e71f0dc007..64a1fb09ba 100644 --- a/keyboards/spleeb/config.h +++ b/keyboards/spleeb/config.h @@ -28,4 +28,5 @@ #endif // OLED_ENABLE #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/spleeb/keyboard.json b/keyboards/spleeb/keyboard.json index 3b55785ee9..56b0bc83b0 100644 --- a/keyboards/spleeb/keyboard.json +++ b/keyboards/spleeb/keyboard.json @@ -18,6 +18,7 @@ "rows": ["GP5", "GP6", "GP7", "GP8", "GP9"] }, "processor": "RP2040", + "board": "QMK_PM2040", "secure": { "idle_timeout": 60000, "unlock_sequence": [ diff --git a/keyboards/spleeb/rules.mk b/keyboards/spleeb/rules.mk deleted file mode 100644 index fedac72e2e..0000000000 --- a/keyboards/spleeb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/spleeb/spleeb.c b/keyboards/spleeb/spleeb.c index 33131fa3e2..658f30df75 100644 --- a/keyboards/spleeb/spleeb.c +++ b/keyboards/spleeb/spleeb.c @@ -8,10 +8,6 @@ # include "print.h" #endif // CONSOLE_ENABLE -#ifdef POINTING_DEVICE_ENABLE -# include "drivers/sensors/cirque_pinnacle_gestures.h" -#endif // POINTING_DEVICE_ENABLE - #if defined(POINTING_DEVICE_ENABLE) || defined(SPLEEB_ENCODER_MODE_MAP_ENABLE) typedef union { uint16_t raw; diff --git a/keyboards/split67/keyboard.json b/keyboards/split67/keyboard.json index 6462149d3b..46b571420a 100644 --- a/keyboards/split67/keyboard.json +++ b/keyboards/split67/keyboard.json @@ -37,6 +37,7 @@ "pin": "D0" } }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBBBC", diff --git a/keyboards/splitish/keyboard.json b/keyboards/splitish/keyboard.json index 5984f2fd97..3df635e6bc 100644 --- a/keyboards/splitish/keyboard.json +++ b/keyboards/splitish/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Splitish", "manufacturer": "Reid Schneyer", + "url": "", "maintainer": "RSchneyer", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["B4", "B5", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/splitkb/aurora/corne/corne.c b/keyboards/splitkb/aurora/corne/corne.c index 1345429804..d95a448021 100644 --- a/keyboards/splitkb/aurora/corne/corne.c +++ b/keyboards/splitkb/aurora/corne/corne.c @@ -85,7 +85,7 @@ static void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -151,7 +151,7 @@ static void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); diff --git a/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json b/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json index 8c4861dda3..75918297c5 100644 --- a/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json @@ -24,8 +24,8 @@ ], [ "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RGB_TOG" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RGB_MOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" ] diff --git a/keyboards/splitkb/aurora/corne/rules.mk b/keyboards/splitkb/aurora/corne/rules.mk new file mode 100644 index 0000000000..9b4b90e972 --- /dev/null +++ b/keyboards/splitkb/aurora/corne/rules.mk @@ -0,0 +1,16 @@ +# Copyright 2022 splitkb.com +# +# 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 . + +DEFAULT_FOLDER = splitkb/aurora/corne/rev1 diff --git a/keyboards/splitkb/aurora/helix/helix.c b/keyboards/splitkb/aurora/helix/helix.c index 3d3002efef..3d3094cbd1 100644 --- a/keyboards/splitkb/aurora/helix/helix.c +++ b/keyboards/splitkb/aurora/helix/helix.c @@ -81,7 +81,7 @@ void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -147,7 +147,7 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); @@ -166,13 +166,13 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { void render_logo(void) { static const char PROGMEM aurora_logo[] = { - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, - 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, - 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, - 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, - 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, - 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, - 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }; oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); @@ -242,37 +242,37 @@ bool oled_task_kb(void) { } else { // clang-format off static const char PROGMEM aurora_art[] = { - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, - 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, - 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, - 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, - 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, - 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, - 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, - 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, - 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, - 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, - 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, - 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, - 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, - 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, - 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, - 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, - 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, - 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, - 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, - 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, - 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 }; // clang-format on @@ -306,4 +306,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json index 5411d34941..bc818a7322 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json @@ -43,8 +43,8 @@ "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "QK_BOOT", "_______", "EE_CLR", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_DEL", "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD" + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD" ] ], "layout": "LAYOUT", diff --git a/keyboards/splitkb/aurora/helix/rules.mk b/keyboards/splitkb/aurora/helix/rules.mk new file mode 100644 index 0000000000..8130273c1f --- /dev/null +++ b/keyboards/splitkb/aurora/helix/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/aurora/helix/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json b/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json index ed1bfcf9e7..de46093800 100644 --- a/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json @@ -28,8 +28,8 @@ [ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] ], diff --git a/keyboards/splitkb/aurora/lily58/lily58.c b/keyboards/splitkb/aurora/lily58/lily58.c index 43cf1175be..83e4ecbe08 100644 --- a/keyboards/splitkb/aurora/lily58/lily58.c +++ b/keyboards/splitkb/aurora/lily58/lily58.c @@ -85,7 +85,7 @@ void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -151,7 +151,7 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); @@ -170,13 +170,13 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { void render_logo(void) { static const char PROGMEM aurora_logo[] = { - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, - 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, - 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, - 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, - 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, - 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, - 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }; oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); @@ -246,37 +246,37 @@ bool oled_task_kb(void) { } else { // clang-format off static const char PROGMEM aurora_art[] = { - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, - 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, - 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, - 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, - 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, - 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, - 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, - 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, - 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, - 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, - 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, - 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, - 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, - 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, - 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, - 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, - 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, - 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, - 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, - 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, - 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 }; // clang-format on diff --git a/keyboards/splitkb/aurora/lily58/rules.mk b/keyboards/splitkb/aurora/lily58/rules.mk new file mode 100644 index 0000000000..1f5b922836 --- /dev/null +++ b/keyboards/splitkb/aurora/lily58/rules.mk @@ -0,0 +1,16 @@ +# Copyright 2022 splitkb.com +# +# 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 . + +DEFAULT_FOLDER = splitkb/aurora/lily58/rev1 diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json index 19146dbde1..226952964b 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json @@ -28,8 +28,8 @@ [ "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "XXXXXXX" , "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "KC_VOLD" , "KC_MUTE" , "KC_VOLU" , "XXXXXXX" , "XXXXXXX" , - "XXXXXXX" , "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RGB_TOG" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "XXXXXXX" , "XXXXXXX" , "KC_VOLD" , "KC_MUTE" , "KC_VOLU" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RGB_MOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "XXXXXXX" , "XXXXXXX" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ] ], diff --git a/keyboards/splitkb/aurora/sofle_v2/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rules.mk new file mode 100644 index 0000000000..4a50c4dbb1 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/aurora/sofle_v2/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c b/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c index 4afc89736c..4d51b88bba 100644 --- a/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c +++ b/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c @@ -85,7 +85,7 @@ void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -151,7 +151,7 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); @@ -170,13 +170,13 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { void render_logo(void) { static const char PROGMEM aurora_logo[] = { - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, - 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, - 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, - 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, - 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, - 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, - 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }; oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); @@ -246,37 +246,37 @@ bool oled_task_kb(void) { } else { // clang-format off static const char PROGMEM aurora_art[] = { - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, - 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, - 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, - 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, - 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, - 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, - 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, - 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, - 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, - 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, - 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, - 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, - 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, - 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, - 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, - 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, - 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, - 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, - 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, - 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, - 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 }; // clang-format on diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json index 12ec8170fc..ade21d5ece 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json @@ -11,9 +11,9 @@ "KC_P0" , "KC_BSPC" , "LT(7,KC_SPC)" , "KC_P1" ], [ - "RM_TOGG" , "RM_NEXT" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "RM_SPDU" , "MS_BTN1" , "MS_WHLU" , "MS_BTN2" , "KC_TRNS", - "KC_TRNS" , "MS_BTN2" , "KC_NO" , "MS_BTN1" , "KC_TRNS" , "KC_TRNS" , "MS_LEFT" , "MS_DOWN" , "MS_UP" , "MS_RGHT", - "KC_TRNS" , "RM_PREV" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "RM_SPDD" , "MS_WHLL" , "MS_WHLD" , "MS_WHLR" , "KC_TRNS", + "RGB_TOG" , "RGB_MOD" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "RGB_SPI" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS" , "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", + "KC_TRNS" , "RGB_RMOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "RGB_SPD" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" ], [ @@ -26,7 +26,7 @@ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS" , "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "RM_PREV" , "KC_TRNS" , "KC_TRNS" , "RM_NEXT" + "RGB_RMOD" , "KC_TRNS" , "KC_TRNS" , "RGB_MOD" ], [ "KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", @@ -54,16 +54,31 @@ ] ], "config": { - "mousekey": { - "interval": 16, - "time_to_max": 40, - "delay": 100, - "wheel_delay": 100 + "features": { + "oled": true, + "rgb_matrix": true, + "rgblight": false }, - "tapping": { - "term": 200, - "permissive_hold": true, - "force_hold": true + "encoder": { + "enabled": true + }, + "rgblight": { + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true } + }, + "mouse_key": { + "enabled": true, + "interval": 16, + "time_to_max": 40, + "delay": 100, + "wheel_delay": 100 + }, + "tapping": { + "term": 200, + "permissive_hold": true, + "force_hold": true } } diff --git a/keyboards/splitkb/aurora/sweep/rules.mk b/keyboards/splitkb/aurora/sweep/rules.mk new file mode 100644 index 0000000000..ec1e102039 --- /dev/null +++ b/keyboards/splitkb/aurora/sweep/rules.mk @@ -0,0 +1,16 @@ +# Copyright 2022 splitkb.com +# +# 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 . + +DEFAULT_FOLDER = splitkb/aurora/sweep/rev1 diff --git a/keyboards/splitkb/aurora/sweep/sweep.c b/keyboards/splitkb/aurora/sweep/sweep.c index afe7e9136f..80abd94eea 100644 --- a/keyboards/splitkb/aurora/sweep/sweep.c +++ b/keyboards/splitkb/aurora/sweep/sweep.c @@ -85,7 +85,7 @@ void render_mod_status_gui_alt(uint8_t modifiers) { oled_write_P(gui_off_2, false); } - if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_GUI) { oled_write_P(on_off_2, false); @@ -151,7 +151,7 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { oled_write_P(ctrl_off_2, false); } - if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { oled_write_P(on_on_2, false); } else if(modifiers & MOD_MASK_CTRL) { oled_write_P(on_off_2, false); @@ -170,13 +170,13 @@ void render_mod_status_ctrl_shift(uint8_t modifiers) { void render_logo(void) { static const char PROGMEM aurora_logo[] = { - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, - 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, - 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, - 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, - 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, - 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, - 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }; oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); @@ -246,37 +246,37 @@ bool oled_task_kb(void) { } else { // clang-format off static const char PROGMEM aurora_art[] = { - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, - 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, - 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, - 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, - 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, - 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, - 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, - 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, - 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, - 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, - 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, - 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, - 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, - 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, - 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, - 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, - 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, - 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, - 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, - 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, - 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 }; // clang-format on diff --git a/keyboards/splitkb/elora/info.json b/keyboards/splitkb/elora/info.json deleted file mode 100644 index 2ed11bfd19..0000000000 --- a/keyboards/splitkb/elora/info.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "keyboard_name": "Elora", - "maintainer": "splitkb", - "build": { - "lto": true - }, - "split": { - "enabled": true - }, - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "MX101", "matrix": [4, 1], "x": 0, "y": 0.75}, - {"label": "MX105", "matrix": [4, 2], "x": 1, "y": 0.75}, - {"label": "MX109", "matrix": [3, 1], "x": 2, "y": 0.25}, - {"label": "MX113", "matrix": [3, 2], "x": 3, "y": 0}, - {"label": "MX117", "matrix": [2, 1], "x": 4, "y": 0.25}, - {"label": "MX121", "matrix": [2, 2], "x": 5, "y": 0.5}, - {"label": "LPED1", "matrix": [0, 1], "x": 7, "y": 0}, - {"label": "RPED1", "matrix": [6, 6], "x": 8.5, "y": 0}, - {"label": "MX221", "matrix": [8, 5], "x": 10.5, "y": 0.5}, - {"label": "MX217", "matrix": [8, 6], "x": 11.5, "y": 0.25}, - {"label": "MX213", "matrix": [9, 5], "x": 12.5, "y": 0}, - {"label": "MX209", "matrix": [9, 6], "x": 13.5, "y": 0.25}, - {"label": "MX205", "matrix": [10, 5], "x": 14.5, "y": 0.75}, - {"label": "MX201", "matrix": [10, 6], "x": 15.5, "y": 0.75}, - {"label": "MX102", "matrix": [4, 0], "x": 0, "y": 1.75}, - {"label": "MX106", "matrix": [4, 3], "x": 1, "y": 1.75}, - {"label": "MX110", "matrix": [3, 0], "x": 2, "y": 1.25}, - {"label": "MX114", "matrix": [3, 3], "x": 3, "y": 1}, - {"label": "MX118", "matrix": [2, 0], "x": 4, "y": 1.25}, - {"label": "MX122", "matrix": [2, 3], "x": 5, "y": 1.5}, - {"label": "LPED2", "matrix": [0, 2], "x": 7, "y": 1}, - {"label": "RPED2", "matrix": [6, 5], "x": 8.5, "y": 1}, - {"label": "MX222", "matrix": [8, 4], "x": 10.5, "y": 1.5}, - {"label": "MX218", "matrix": [8, 7], "x": 11.5, "y": 1.25}, - {"label": "MX214", "matrix": [9, 4], "x": 12.5, "y": 1}, - {"label": "MX210", "matrix": [9, 7], "x": 13.5, "y": 1.25}, - {"label": "MX206", "matrix": [10, 4], "x": 14.5, "y": 1.75}, - {"label": "MX202", "matrix": [10, 7], "x": 15.5, "y": 1.75}, - {"label": "MX103", "matrix": [4, 7], "x": 0, "y": 2.75}, - {"label": "MX107", "matrix": [4, 4], "x": 1, "y": 2.75}, - {"label": "MX111", "matrix": [3, 7], "x": 2, "y": 2.25}, - {"label": "MX115", "matrix": [3, 4], "x": 3, "y": 2}, - {"label": "MX119", "matrix": [2, 7], "x": 4, "y": 2.25}, - {"label": "MX123", "matrix": [2, 4], "x": 5, "y": 2.5}, - {"label": "LPED3", "matrix": [0, 3], "x": 7, "y": 2}, - {"label": "RPED3", "matrix": [6, 4], "x": 8.5, "y": 2}, - {"label": "MX223", "matrix": [8, 3], "x": 10.5, "y": 2.5}, - {"label": "MX219", "matrix": [8, 0], "x": 11.5, "y": 2.25}, - {"label": "MX215", "matrix": [9, 3], "x": 12.5, "y": 2}, - {"label": "MX211", "matrix": [9, 0], "x": 13.5, "y": 2.25}, - {"label": "MX207", "matrix": [10, 3], "x": 14.5, "y": 2.75}, - {"label": "MX203", "matrix": [10, 0], "x": 15.5, "y": 2.75}, - {"label": "MX104", "matrix": [4, 6], "x": 0, "y": 3.75}, - {"label": "MX108", "matrix": [4, 5], "x": 1, "y": 3.75}, - {"label": "MX112", "matrix": [3, 6], "x": 2, "y": 3.25}, - {"label": "MX116", "matrix": [3, 5], "x": 3, "y": 3}, - {"label": "MX120", "matrix": [2, 6], "x": 4, "y": 3.25}, - {"label": "MX124", "matrix": [2, 5], "x": 5, "y": 3.5}, - {"label": "MX131", "matrix": [0, 0], "x": 6, "y": 4}, - {"label": "MX130", "matrix": [0, 4], "x": 7, "y": 4.25}, - {"label": "MX230", "matrix": [6, 3], "x": 8.5, "y": 4.25}, - {"label": "MX231", "matrix": [6, 7], "x": 9.5, "y": 4}, - {"label": "MX224", "matrix": [8, 2], "x": 10.5, "y": 3.5}, - {"label": "MX220", "matrix": [8, 1], "x": 11.5, "y": 3.25}, - {"label": "MX216", "matrix": [9, 2], "x": 12.5, "y": 3}, - {"label": "MX212", "matrix": [9, 1], "x": 13.5, "y": 3.25}, - {"label": "MX208", "matrix": [10, 2], "x": 14.5, "y": 3.75}, - {"label": "MX204", "matrix": [10, 1], "x": 15.5, "y": 3.75}, - {"label": "MX125", "matrix": [1, 7], "x": 2.5, "y": 4.25}, - {"label": "MX126", "matrix": [1, 6], "x": 3.5, "y": 4.25}, - {"label": "MX127", "matrix": [1, 5], "x": 4.5, "y": 4.5}, - {"label": "MX128", "matrix": [1, 4], "x": 5.5, "y": 5}, - {"label": "MX129", "matrix": [0, 5], "x": 6.5, "y": 5.25}, - {"label": "MX229", "matrix": [6, 2], "x": 9, "y": 5.25}, - {"label": "MX228", "matrix": [7, 3], "x": 10, "y": 5}, - {"label": "MX227", "matrix": [7, 2], "x": 11, "y": 4.5}, - {"label": "MX226", "matrix": [7, 1], "x": 12, "y": 4.25}, - {"label": "MX225", "matrix": [7, 0], "x": 13, "y": 4.25} - ] - }, - "LAYOUT_myr": { - "layout": [ - {"label": "MX101", "matrix": [4, 1], "x": 0, "y": 0.75}, - {"label": "MX105", "matrix": [4, 2], "x": 1, "y": 0.75}, - {"label": "MX109", "matrix": [3, 1], "x": 2, "y": 0.25}, - {"label": "MX113", "matrix": [3, 2], "x": 3, "y": 0}, - {"label": "MX117", "matrix": [2, 1], "x": 4, "y": 0.25}, - {"label": "MX121", "matrix": [2, 2], "x": 5, "y": 0.5}, - {"label": "LPED1", "matrix": [0, 1], "x": 7, "y": 0}, - {"label": "RPED1", "matrix": [6, 6], "x": 8.5, "y": 0}, - {"label": "MX221", "matrix": [8, 5], "x": 10.5, "y": 0.5}, - {"label": "MX217", "matrix": [8, 6], "x": 11.5, "y": 0.25}, - {"label": "MX213", "matrix": [9, 5], "x": 12.5, "y": 0}, - {"label": "MX209", "matrix": [9, 6], "x": 13.5, "y": 0.25}, - {"label": "MX205", "matrix": [10, 5], "x": 14.5, "y": 0.75}, - {"label": "MX201", "matrix": [10, 6], "x": 15.5, "y": 0.75}, - {"label": "MX102", "matrix": [4, 0], "x": 0, "y": 1.75}, - {"label": "MX106", "matrix": [4, 3], "x": 1, "y": 1.75}, - {"label": "MX110", "matrix": [3, 0], "x": 2, "y": 1.25}, - {"label": "MX114", "matrix": [3, 3], "x": 3, "y": 1}, - {"label": "MX118", "matrix": [2, 0], "x": 4, "y": 1.25}, - {"label": "MX122", "matrix": [2, 3], "x": 5, "y": 1.5}, - {"label": "LPED2", "matrix": [0, 2], "x": 7, "y": 1}, - {"label": "RPED2", "matrix": [6, 5], "x": 8.5, "y": 1}, - {"label": "MX222", "matrix": [8, 4], "x": 10.5, "y": 1.5}, - {"label": "MX218", "matrix": [8, 7], "x": 11.5, "y": 1.25}, - {"label": "MX214", "matrix": [9, 4], "x": 12.5, "y": 1}, - {"label": "MX210", "matrix": [9, 7], "x": 13.5, "y": 1.25}, - {"label": "MX206", "matrix": [10, 4], "x": 14.5, "y": 1.75}, - {"label": "MX202", "matrix": [10, 7], "x": 15.5, "y": 1.75}, - {"label": "MX103", "matrix": [4, 7], "x": 0, "y": 2.75}, - {"label": "MX107", "matrix": [4, 4], "x": 1, "y": 2.75}, - {"label": "MX111", "matrix": [3, 7], "x": 2, "y": 2.25}, - {"label": "MX115", "matrix": [3, 4], "x": 3, "y": 2}, - {"label": "MX119", "matrix": [2, 7], "x": 4, "y": 2.25}, - {"label": "MX123", "matrix": [2, 4], "x": 5, "y": 2.5}, - {"label": "LPED3", "matrix": [0, 3], "x": 7, "y": 2}, - {"label": "RPED3", "matrix": [6, 4], "x": 8.5, "y": 2}, - {"label": "MX223", "matrix": [8, 3], "x": 10.5, "y": 2.5}, - {"label": "MX219", "matrix": [8, 0], "x": 11.5, "y": 2.25}, - {"label": "MX215", "matrix": [9, 3], "x": 12.5, "y": 2}, - {"label": "MX211", "matrix": [9, 0], "x": 13.5, "y": 2.25}, - {"label": "MX207", "matrix": [10, 3], "x": 14.5, "y": 2.75}, - {"label": "MX203", "matrix": [10, 0], "x": 15.5, "y": 2.75}, - {"label": "MX104", "matrix": [4, 6], "x": 0, "y": 3.75}, - {"label": "MX108", "matrix": [4, 5], "x": 1, "y": 3.75}, - {"label": "MX112", "matrix": [3, 6], "x": 2, "y": 3.25}, - {"label": "MX116", "matrix": [3, 5], "x": 3, "y": 3}, - {"label": "MX120", "matrix": [2, 6], "x": 4, "y": 3.25}, - {"label": "MX124", "matrix": [2, 5], "x": 5, "y": 3.5}, - {"label": "MX131", "matrix": [0, 0], "x": 6, "y": 4}, - {"label": "MX130", "matrix": [0, 4], "x": 7, "y": 4.25}, - {"label": "MX230", "matrix": [6, 3], "x": 8.5, "y": 4.25}, - {"label": "MX231", "matrix": [6, 7], "x": 9.5, "y": 4}, - {"label": "MX224", "matrix": [8, 2], "x": 10.5, "y": 3.5}, - {"label": "MX220", "matrix": [8, 1], "x": 11.5, "y": 3.25}, - {"label": "MX216", "matrix": [9, 2], "x": 12.5, "y": 3}, - {"label": "MX212", "matrix": [9, 1], "x": 13.5, "y": 3.25}, - {"label": "MX208", "matrix": [10, 2], "x": 14.5, "y": 3.75}, - {"label": "MX204", "matrix": [10, 1], "x": 15.5, "y": 3.75}, - {"label": "MX125", "matrix": [1, 7], "x": 2.5, "y": 4.25}, - {"label": "MX126", "matrix": [1, 6], "x": 3.5, "y": 4.25}, - {"label": "MX127", "matrix": [1, 5], "x": 4.5, "y": 4.5}, - {"label": "MX128", "matrix": [1, 4], "x": 5.5, "y": 5}, - {"label": "MX129", "matrix": [0, 5], "x": 6.5, "y": 5.25}, - {"label": "MX229", "matrix": [6, 2], "x": 9, "y": 5.25}, - {"label": "MX228", "matrix": [7, 3], "x": 10, "y": 5}, - {"label": "MX227", "matrix": [7, 2], "x": 11, "y": 4.5}, - {"label": "MX226", "matrix": [7, 1], "x": 12, "y": 4.25}, - {"label": "MX225", "matrix": [7, 0], "x": 13, "y": 4.25}, - {"label": "MYRL1", "matrix": [5, 0], "x": 0, "y": 6}, - {"label": "MYRL2", "matrix": [5, 1], "x": 1, "y": 6}, - {"label": "MYRL3", "matrix": [5, 2], "x": 2, "y": 6}, - {"label": "MYRL4", "matrix": [5, 3], "x": 3, "y": 6}, - {"label": "MYRL5", "matrix": [5, 4], "x": 5, "y": 6}, - {"label": "MYRR1", "matrix": [11, 0], "x": 8, "y": 6}, - {"label": "MYRR2", "matrix": [11, 1], "x": 9, "y": 6}, - {"label": "MYRR3", "matrix": [11, 2], "x": 10, "y": 6}, - {"label": "MYRR4", "matrix": [11, 3], "x": 11, "y": 6}, - {"label": "MYRR5", "matrix": [11, 4], "x": 13, "y": 6} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/debug/config.h b/keyboards/splitkb/elora/keymaps/debug/config.h deleted file mode 100644 index 0024fe4dfe..0000000000 --- a/keyboards/splitkb/elora/keymaps/debug/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Myriad boilerplate -#define MYRIAD_ENABLE - -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/debug/keymap.c b/keyboards/splitkb/elora/keymaps/debug/keymap.c deleted file mode 100644 index a8a5973b00..0000000000 --- a/keyboards/splitkb/elora/keymaps/debug/keymap.c +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - _DEFAULT = 0, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT] = LAYOUT_myr( - KC_A, KC_E, KC_I, KC_M, KC_Q, KC_U, KC_9, KC_9, S(KC_U), S(KC_Q), S(KC_M), S(KC_I), S(KC_E), S(KC_A), - KC_B, KC_F, KC_J, KC_N, KC_R, KC_V, KC_8, KC_8, S(KC_V), S(KC_R), S(KC_N), S(KC_J), S(KC_F), S(KC_B), - KC_C, KC_G, KC_K, KC_O, KC_S, KC_W, KC_7, KC_7, S(KC_W), S(KC_S), S(KC_O), S(KC_K), S(KC_G), S(KC_C), - KC_D, KC_H, KC_L, KC_P, KC_T, KC_X, KC_5, KC_6, KC_6, KC_5, S(KC_X), S(KC_T), S(KC_P), S(KC_L), S(KC_H), S(KC_D), - KC_0, KC_1, KC_2, KC_3, KC_4, KC_4, KC_3, KC_2, KC_1, KC_0, - - KC_A, KC_B, KC_C, KC_D, KC_E, KC_A, KC_B, KC_C, KC_D, KC_E - ), -}; - -void keyboard_post_init_user(void) { - #ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); // enables RGB, without saving settings - rgblight_sethsv_noeeprom(HSV_RED); // sets the color to red without saving - rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // sets mode to Fast breathing without saving - #endif -} - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - // 0-3 left-half encoders - // 4-7 are right-half encoders - if (index == 0) { - tap_code(KC_0); - } else if (index == 1) { - tap_code(KC_1); - } else if (index == 2) { - tap_code(KC_2); - } else if (index == 3) { - // Myriad - tap_code(KC_3); - } else if (index == 4) { - tap_code(KC_4); - } else if (index == 5) { - tap_code(KC_5); - } else if (index == 6) { - tap_code(KC_6); - } else if (index == 7) { - // Myriad - tap_code(KC_7); - } - - if (clockwise) { - tap_code16(KC_PLUS); - } else { - tap_code(KC_MINUS); - } - - return false; -} -#endif - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // A 128x32 OLED rotated 90 degrees is 5 characters wide and 16 characters tall - // This example string should fill that neatly - oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), is_keyboard_master()); - return false; -} -#endif diff --git a/keyboards/splitkb/elora/keymaps/debug/readme.md b/keyboards/splitkb/elora/keymaps/debug/readme.md deleted file mode 100644 index ec5705070c..0000000000 --- a/keyboards/splitkb/elora/keymaps/debug/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Elora's Debug Keymap - -To make debugging your build as easy as possible, we have provided a special debugging keymap. It is not intended to actually type on, it is just here to make sure that your hardware is working correctly. - -## Keys - -The left side uses lowercase letters, the right side uses uppercase ones. - -## Encoders - -Encoders output a number, depending on the installed position. -These correspond to the index used for custom encoder code. - -The number is followed by either a `+` or a `-`, depending on the direction turned. - -## LEDs - -Underglow RGB should be fading between red and off. - -## OLEDs - -Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/elora/keymaps/debug/rules.mk b/keyboards/splitkb/elora/keymaps/debug/rules.mk deleted file mode 100644 index 6c52b64847..0000000000 --- a/keyboards/splitkb/elora/keymaps/debug/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/default/config.h b/keyboards/splitkb/elora/keymaps/default/config.h deleted file mode 100644 index e35c193957..0000000000 --- a/keyboards/splitkb/elora/keymaps/default/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Myriad boilerplate -#define MYRIAD_ENABLE \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/default/keymap.c b/keyboards/splitkb/elora/keymaps/default/keymap.c deleted file mode 100644 index 84f53561fd..0000000000 --- a/keyboards/splitkb/elora/keymaps/default/keymap.c +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY = 0, - _DVORAK, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST, -}; - -// Aliases for readability -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK_DH) -#define DVORAK DF(_DVORAK) - -#define SYM MO(_SYM) -#define NAV MO(_NAV) -#define FKEYS MO(_FUNCTION) -#define ADJUST MO(_ADJUST) - -#define CTL_ESC MT(MOD_LCTL, KC_ESC) -#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) -#define CTL_MINS MT(MOD_RCTL, KC_MINUS) -#define ALT_ENT MT(MOD_LALT, KC_ENT) - -// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. -// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and -// produces the key `tap` when tapped (i.e. pressed and released). - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Base Layer: QWERTY - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | |LCtrl | | RCtrl| | Y | U | I | O | P | Bksp | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G | | LAlt | | RAlt | | H | J | K | L | ; : |Ctrl/' "| - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,----------------------------. ,------. ,----------------------------. ,------. - * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | - * `----------------------------' `------' `----------------------------' '------' - */ - [_QWERTY] = LAYOUT_myr( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LCTL, KC_RCTL, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, - CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LALT, KC_RALT, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N , KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, - - KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE - ), - -/* - * Base Layer: Dvorak - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | Tab | ' " | , < | . > | P | Y | |LCtrl | | RCtrl| | F | G | C | R | L | Bksp | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | O | E | U | I | | LAlt | | RAlt | | D | H | T | N | S |Ctrl/- _| - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,----------------------------. ,------. ,----------------------------. ,------. - * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | - * `----------------------------' `------' `----------------------------' '------' - */ - [_DVORAK] = LAYOUT_myr( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, - KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_LCTL, KC_RCTL, KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, - CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_LALT, KC_RALT, KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, - KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, - - KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE - ), - -/* - * Base Layer: Colemak DH - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | Tab | Q | W | F | P | B | |LCtrl | | RCtrl| | J | L | U | Y | ; : | Bksp | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | R | S | T | G | | LAlt | | RAlt | | M | N | E | I | O |Ctrl/' "| - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,----------------------------. ,------. ,----------------------------. ,------. - * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | - * `----------------------------' `------' `----------------------------' '------' - */ - [_COLEMAK_DH] = LAYOUT_myr( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_LCTL, KC_RCTL, KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, - CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_LALT, KC_RALT, KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, - - KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE - ), - -/* - * Nav Layer: Media, navigation - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | | | | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | GUI | Alt | Ctrl | Shift| | | | | | | PgDn | ← | ↓ | → | VolDn| Insert | - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,----------------------------. ,------. ,----------------------------. ,------. - * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | - * `----------------------------' `------' `----------------------------' '------' - */ - [_NAV] = LAYOUT_myr( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, - _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, - _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Sym Layer: Numbers and symbols - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | ` | 1 | 2 | 3 | 4 | 5 | | | | | | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | + | - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,-----------------------------. ,------. ,---------------------------. ,------. - * | | | | | | | | | | | | | | - * `-----------------------------' `------' `---------------------------' '------' - */ - [_SYM] = LAYOUT_myr( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , - KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, - KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Function Layer: Function keys - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | F5 | F6 | F7 | F8 | | | | | | | | Shift| Ctrl | Alt | GUI | | - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,-----------------------------. ,------. ,---------------------------. ,------. - * | | | | | | | | | | | | | | - * `-----------------------------' `------' `---------------------------' '------' - */ - [_FUNCTION] = LAYOUT_myr( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Adjust Layer: Default layer settings, RGB - * - * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | | |QWERTY| | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| - * | | | |Dvorak| | | | | | | | TOG | SAI | HUI | VAI | MOD | | - * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| - * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * - * ,-----------------------------. ,------. ,---------------------------. ,------. - * | | | | | | | | | | | | | | - * `-----------------------------' `------' `---------------------------' '------' - */ - [_ADJUST] = LAYOUT_myr( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, - _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - - ), - -// /* -// * Layer template - LAYOUT -// * -// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' -// * | | | | | | | | | | | | -// * | | | | | | | | | | | | -// * `----------------------------------' `----------------------------------' -// */ -// [_LAYERINDEX] = LAYOUT( -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -// ), - -// /* -// * Layer template - LAYOUT_myr -// * -// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' -// * | | | | | | | | | | | | -// * | | | | | | | | | | | | -// * `----------------------------------' `----------------------------------' -// * -// * ,-----------------------------. ,------. ,---------------------------. ,------. -// * | | | | | | | | | | | | | | -// * `-----------------------------' `------' `---------------------------' '------' -// */ -// [_LAYERINDEX] = LAYOUT_myr( -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -// ), -}; - -/* The default OLED and rotary encoder code can be found at the bottom of qmk_firmware/keyboards/splitkb/elora/rev1/rev1.c - * These default settings can be overriden by your own settings in your keymap.c - * DO NOT edit the rev1.c file; instead override the weakly defined default functions by your own. - */ - -/* DELETE THIS LINE TO UNCOMMENT (1/2) -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Your code goes here -} -#endif - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - // Your code goes here -} -#endif -DELETE THIS LINE TO UNCOMMENT (2/2) */ diff --git a/keyboards/splitkb/elora/keymaps/default/readme.md b/keyboards/splitkb/elora/keymaps/default/readme.md deleted file mode 100644 index 7e95db3938..0000000000 --- a/keyboards/splitkb/elora/keymaps/default/readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# Elora's Default Keymap -The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. -Hardware features of the Elora such as OLEDs, rotary encoders and underglow are also supported. - -The Elora keymap is in essence identical to the [Kyria keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/splitkb/kyria/keymaps/default/readme.md), just with an additional number row. A deep dive into the keymap is provided there. - -The five different layers are the following: -1. Base layer (QWERTY, Colemak-DH or Dvorak) -2. Navigation layer -3. Symbols/Numbers layer -4. Function layer -5. Adjust layer - -## Base layer(s) -### Qwerty -![Qwerty](https://i.imgur.com/SZB1Z5gh.jpg) - -### Dvorak -![Dvorak](https://i.imgur.com/RWB5Qhnh.jpg) - -### Colemak-DH -![Colemak](https://i.imgur.com/4DjdGsGh.jpg) - -## Navigation layer -![Navigation](https://i.imgur.com/tDM1MZeh.jpg) - -## Symbols layer -![Symbol](https://i.imgur.com/9LsxnLRh.jpg) - -## Function layer -![Function](https://i.imgur.com/KMCqh7Ch.jpg) - -## Adjust layer -![Adjust](https://i.imgur.com/6WtMo8ih.jpg) - -# Hardware Features - -## Rotary Encoder -The left rotary encoders are programmed to send Left or Right whereas the right encoder sends PgUp or PgDn on every turn. - -## OLEDs -The OLEDs display the current layer at the top of the active layers stack, the Elora logo and lock status (caps lock, num lock, scroll lock). - -## Underglow -The underglow LEDs should default red. - -## Going further… -This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. - -Check out the #keymap-ideas channel on the official splitkb Discord server for inspiration. \ No newline at end of file diff --git a/keyboards/splitkb/elora/readme.md b/keyboards/splitkb/elora/readme.md deleted file mode 100644 index 2935b7bd7d..0000000000 --- a/keyboards/splitkb/elora/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -![Elora](https://i.imgur.com/AUCjyBuh.jpg) - -# Elora -The Elora is a 62-key keyboard, based on the Kyria by splitkb.com. It comes preassembled, is compatible with Vial so you don't need to program or compile your firmware, and accepts Myriad modules so you can add cool features with just a screwdriver. - -Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) -Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/elora/rev1:default - -The keyboard can be flashed by copying the resulting `splitkb_elora_rev1_default.uf2` file onto the `RPI-RP2` flash drive. - -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 -You can enter the bootloader in 3 ways: - -* **Reset button**: Double-tap the reset button on the side of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. -* **Bootloader reset**: As a last resort, hold down the small "Boot" button near the USB connector while plugging in the keyboard. - -# Features -The Elora is an evolved version of the Kyria that comes with a number row, and has an emphasis on ease of use for beginners, as well as being hackable for advanced customers. It comes preassembled: the only tool you need is a screwdriver. - -- A comfortable 62 keys, including a number row. It's perfect for beginners who want to feel what a split keyboard feels like without the layout feeling cramped, and a nice option for people who know they frequently use the number row, like typists, gamers, some software engineers and Excel warriors. -- Powered by an RP2040 controller, it’s quick enough to handle anything a keyboard should be able to do… and much more. -- 16 megabytes of flash memory ensure that it’s ready for just about everything. Putting a sped-up movie on an RGB display you’ve wired up to your prototyping Myriad module? Say no more. -- Supports MX switches with preassembled hot-swap sockets. No soldering iron needed. You can solder them to the alternative set of pads if you'd prefer to, though. -- Supports Choc switches by soldering. This does require assembly with tools like a soldering iron. Hot swap is still possible using Mill-Max sockets, which too require soldering. -- Subtle RGB underglow with 6 LEDs per half to personalise the colour of your keyboard. It can be disabled for those who don't want it. -- Supports the tenting puck, which allows you to mount it to most camera tripods so you can place your keyboard at exactly the angle you want it. -- Supports up to one Myriad module per half, so you can add a myriad of available modules without having to solder. -- Supports up to one 128x64 pixel OLED display per half, which doesn't require soldering. -- There's a TRRS jack for foot pedal or external switch support. You can use one such switch per half by default, but the wiring supports up to three external switches per half. Great for accessibility purposes, or just plain fun if you want to hook up a digital foot pedal to your voice chat software, game or whatever else you can think of. -- If you're into soldering, you can put up to three encoders per half on seven predefined locations: near the top of the thumb cluster, at the innermost thumb cluster button, or each location on the outer columns. If you don't want to solder, you can of course still use a rotary encoder Myriad module. - -# What's Myriad? - -![A collection of Myriad modules](https://i.imgur.com/86u7BLMl.jpg) - -Myriad is a system that allows you to plug in modules to add new functionality to your keyboard, all without having to solder. It's an [open standard](https://myriad.splitkb.com/), meaning that anyone will be able to create their own modules, which you can then plug into your keyboard. It's a very capable standard, so we're very curious to see what other modules you will come up with! diff --git a/keyboards/splitkb/elora/rev1/config.h b/keyboards/splitkb/elora/rev1/config.h deleted file mode 100644 index 7633cf00af..0000000000 --- a/keyboards/splitkb/elora/rev1/config.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// I2C0, onboard SSD1306 socket and I2C to Myriad module -#define I2C_DRIVER I2CD0 -#define I2C1_SDA_PIN GP0 -#define I2C1_SCL_PIN GP1 -// We need to slow down the I2C clock because the default of 400.000 -// fails to communicate with Zetta ZD24C02A EEPROM on a Myriad card. -#define I2C1_CLOCK_SPEED 100000 - -// SPI1, both for onboard matrix data and SPI to Myriad module -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP10 -#define SPI_MOSI_PIN GP11 -#define SPI_MISO_PIN GP12 - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX -#define SERIAL_USART_DRIVER SIOD1 -#define SERIAL_USART_TX_PIN GP20 -#define SERIAL_USART_RX_PIN GP21 - -// Potential onboard speaker, not populated by default -#define AUDIO_PIN GP23 - -// Transmitting pointing device status to the master side -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_COMBINED - -// VBUS detection -#define USB_VBUS_PIN GP25 - -// Define matrix size -#define MATRIX_COLS 8 -#define MATRIX_ROWS 12 - -// Encoders -// 3 onboard, 1 for Myriad -#define NUM_ENCODERS_LEFT 4 -#define NUM_ENCODERS_RIGHT 4 -#define ENCODER_RESOLUTION 2 - -// OLED display -#define OLED_DISPLAY_128X64 -// If someone has only one OLED display -// and that display was on the slave side. -// It wouldn't work at all. This fixes that -// including some code in rev1.c but makes -// it so the timeout's are not synced -// between halves. -#undef SPLIT_OLED_ENABLE -#define OLED_TIMEOUT 0 - diff --git a/keyboards/splitkb/elora/rev1/halconf.h b/keyboards/splitkb/elora/rev1/halconf.h deleted file mode 100644 index 4a2cc2c514..0000000000 --- a/keyboards/splitkb/elora/rev1/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SIO TRUE -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE -#define HAL_USE_ADC TRUE - -#include_next diff --git a/keyboards/splitkb/elora/rev1/keyboard.json b/keyboards/splitkb/elora/rev1/keyboard.json deleted file mode 100644 index 7996fdccb9..0000000000 --- a/keyboards/splitkb/elora/rev1/keyboard.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "keyboard_name": "Elora rev1", - "bootloader": "rp2040", - "features": { - "pointing_device": true, - "rgb_matrix": true, - "rgblight": false, - "encoder": true, - "oled": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "audio": false - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"x": 90, "y": 0, "flags": 2}, - {"x": 45, "y": 0, "flags": 2}, - {"x": 0, "y": 0, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 45, "y": 64, "flags": 2}, - {"x": 90, "y": 64, "flags": 2}, - {"x": 134, "y": 0, "flags": 2}, - {"x": 179, "y": 0, "flags": 2}, - {"x": 224, "y": 0, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 179, "y": 64, "flags": 2}, - {"x": 134, "y": 64, "flags": 2} - ], - "max_brightness": 150, - "split_count": [6, 6] - }, - "rgblight": { - "led_count": 12, - "split": true - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP14" - }, - "serial": { - "driver": "usart" - }, - "transport": { - "sync": { - "matrix_state": true - }, - "watchdog": true, - "watchdog_timeout": 3000 - } - }, - "usb": { - "pid": "0x9D9D" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP15" - } -} diff --git a/keyboards/splitkb/elora/rev1/matrix.c b/keyboards/splitkb/elora/rev1/matrix.c deleted file mode 100644 index 625eafcd85..0000000000 --- a/keyboards/splitkb/elora/rev1/matrix.c +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "matrix.h" -#include "spi_master.h" - -// The matrix is hooked up to a chain of 74xx165 shift registers. -// Pin F0 acts as Chip Select (active-low) -// The signal goes to a NOT gate, whose output is wired to -// a) the latch pin of the shift registers -// b) the "enable" pin of a tri-state buffer, -// attached between the shift registers and MISO -// F0 has an external pull-up. -// SCK works as usual. -// -// Note that the matrix contains a variety of data. -// In addition to the keys, it also reads the rotary encoders -// and whether the board is the left/right half. - -void matrix_init_custom(void) { - // Note: `spi_init` has already been called - // in `keyboard_pre_init_kb()`, so nothing to do here -} - -bool matrix_scan_custom(matrix_row_t current_matrix[]) { - // Enough to hold the shift registers - uint16_t length = 5; - uint8_t data[length]; - - // Matrix SPI config - // 1) Pin - // 2) Mode: Register shifts on rising clock, and clock idles low - // pol = 0 & pha = 0 => mode 0 - // 3) LSB first: Register outputs H first, and we want H as MSB, - // as this result in a neat A-H order in the layout macro. - // 4) Divisor: 2 is the fastest possible, at Fclk / 2. - // range is 2-128 - spi_start(GP13, false, 0, 128); - spi_receive(data, length); - spi_stop(); - - bool matrix_has_changed = false; - for (uint8_t i = 0; i < length; i++) { - // Bitwise NOT because we use pull-ups, - // and switches short the pin to ground, - // but the matrix uses 1 to indicate a pressed switch - uint8_t word = ~data[i]; - matrix_has_changed |= current_matrix[i] ^ word; - current_matrix[i] = word; - } -#ifdef MYRIAD_ENABLE - bool myriad_hook_matrix(matrix_row_t current_matrix[]); - return matrix_has_changed || myriad_hook_matrix(current_matrix); -#else - return matrix_has_changed; -#endif -} \ No newline at end of file diff --git a/keyboards/splitkb/elora/rev1/mcuconf.h b/keyboards/splitkb/elora/rev1/mcuconf.h deleted file mode 100644 index 58290187cf..0000000000 --- a/keyboards/splitkb/elora/rev1/mcuconf.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef RP_SIO_USE_UART1 -#define RP_SIO_USE_UART1 TRUE - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE - -#undef RP_ADC_USE_ADC1 -#define RP_ADC_USE_ADC1 TRUE diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c deleted file mode 100644 index 0263821b81..0000000000 --- a/keyboards/splitkb/elora/rev1/myriad.c +++ /dev/null @@ -1,341 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -#include "myriad.h" - -#include "i2c_master.h" -#include "analog.h" - -typedef struct __attribute__((__packed__)) { - char magic_numbers[3]; - uint8_t version_major; - uint8_t version_minor; - uint8_t version_patch; - uint32_t checksum; - uint16_t payload_length; -} myriad_header_t; - -typedef struct __attribute__((__packed__)) { - uint16_t vendor_id; - uint16_t product_id; - uint8_t revision; -} identity_record_t; - -static bool myriad_reader(uint8_t *data, uint16_t length) { - const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit - const uint16_t i2c_timeout = 100; // in milliseconds - - uint8_t num_pages = (length / 256) + 1; - uint8_t last_page_size = length % 256; - - for (int i = 0; i < num_pages; i++) { - uint8_t reg = 0; // We always start on a page boundary, so this is always zero - uint16_t read_length; - if (i == num_pages - 1) { - read_length = last_page_size; - } else { - read_length = 256; - } - i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i * 256]), read_length, i2c_timeout); - if (s != I2C_STATUS_SUCCESS) { - return false; - } - } - return true; -} - -static bool verify_header(myriad_header_t *header) { - char magic_numbers[] = {'M', 'Y', 'R'}; - uint8_t version_major = 1; - uint16_t version_minor = 0; - - for (int i = 0; i < sizeof(magic_numbers); i++) { - // Check that the header starts with 'MYR', indicating that this is indeed a Myriad card. - if (header->magic_numbers[i] != magic_numbers[i]) { - return false; - } - } - - if (header->version_major != version_major || header->version_minor > version_minor) { - // We obviously don't support cards with a different major version, because that indicates a breaking change. - // We also don't support cards with HIGHER minor version, - // as we are not guaranteed to be able to properly use all its features. - return false; - } - - if (header->payload_length > (2048 - sizeof(myriad_header_t))) { - // The EEPROM chips are *at most* 16kb / 2kB large, - // and some of that is taken up by the header. - // We obviously can't have a payload which exceeds the EEPROM's size. - return false; - } - - return true; -} - -// Sourced from https://en.wikipedia.org/wiki/Adler-32#Example_implementation -static bool verify_checksum(uint8_t *data, uint16_t length, uint32_t checksum) { - // Skip the header - data += sizeof(myriad_header_t); - length -= sizeof(myriad_header_t); - - const uint32_t MOD_ADLER = 65521; - - uint32_t a = 1, b = 0; - size_t index; - - // Process each byte of the data in order - for (index = 0; index < length; ++index) { - a = (a + data[index]) % MOD_ADLER; - b = (b + a) % MOD_ADLER; - } - uint32_t calculated = ((b << 16) | a); - - return calculated == checksum; -} - -// Locates a specific entry by type -// Returns the offset of the PAYLOAD. -static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8_t *data, uint16_t minimum, uint16_t maximum) { - if (minimum < sizeof(myriad_header_t)) { - // Records must start *after* the header. - // We silently allow this so the caller can just specify `0` as minimum for the first entry. - minimum = sizeof(myriad_header_t); - } - - uint16_t offset = minimum; - while (offset < maximum) { - if (data[offset] == entry_type) { - // Type matches! - if (data[offset + 1] == entry_data_length) { - // We found what we are looking for, so return payload reference. - return offset + 2; - } else { - // The entry is the wrong length? - return -2; - } - } else { - // No type match, so skip this one - // We skip the type byte, the length byte, and any potential data (with length stored in the length byte) - offset += 2 + data[offset + 1]; - } - } - - // We hit the maximum and didn't find what we are looking for - return -1; -} - -static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t *record) { - const uint8_t identity_type = 0x01; - const uint8_t entry_data_length = sizeof(identity_record_t); - int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length); - if (result < 0) { - return false; - } - - for (int i = 0; i < sizeof(identity_record_t); i++) { - ((uint8_t *)record)[i] = data[result + i]; - } - return true; -} - -static myriad_card_t _detect_myriad(void) { - gpio_set_pin_input(MYRIAD_PRESENT); - wait_ms(100); -// The pin has an external pull-up, and a Myriad card shorts it to ground. -#ifndef MYRIAD_OVERRIDE_PRESENCE - if (gpio_read_pin(MYRIAD_PRESENT)) { - return NONE; - } -#endif - - // Attempt to read header - myriad_header_t header; - if (!myriad_reader((uint8_t *)&header, sizeof(header))) { - return INVALID; - } - if (!verify_header(&header)) { - return INVALID; - } - - // Now that we have determined that the header is valid - // and we know the payload length, read the entire thing - uint8_t data[2048]; // Guaranteed to be large enough. - uint16_t data_size = sizeof(header) + header.payload_length; - if (!myriad_reader(data, data_size)) { - return INVALID; - } - if (!verify_checksum(data, data_size, header.checksum)) { - return INVALID; - } - - identity_record_t identity; - if (!read_card_identity(data, data_size, &identity)) { - return INVALID; - } - - if (identity.vendor_id == 0x0001 && identity.product_id == 0x0001) { - return SKB_ENCODER; - } else if (identity.vendor_id == 0x0001 && identity.product_id == 0x0002) { - return SKB_JOYSTICK; - } else if (identity.vendor_id == 0x0001 && identity.product_id == 0x0003) { - return SKB_SWITCHES; - } - - return UNKNOWN; -} - -// Determine card presence & identity -// Does NOT initialize the card for use! -myriad_card_t detect_myriad(void) { - static myriad_card_t card = UNINITIALIZED; - - if (card == UNINITIALIZED) { - i2c_init(); - card = _detect_myriad(); - } - - return card; -} - -static void myr_switches_init(void) { - gpio_set_pin_input_high(MYRIAD_GPIO1); // S4 - gpio_set_pin_input_high(MYRIAD_GPIO2); // S2 - gpio_set_pin_input_high(MYRIAD_GPIO3); // S1 - gpio_set_pin_input_high(MYRIAD_GPIO4); // S3 -} - -static void myr_encoder_init(void) { - gpio_set_pin_input_high(MYRIAD_GPIO1); // Press - gpio_set_pin_input_high(MYRIAD_GPIO2); // A - gpio_set_pin_input_high(MYRIAD_GPIO3); // B -} - -static uint16_t myr_joystick_timer; -static void myr_joystick_init(void) { - gpio_set_pin_input_high(MYRIAD_GPIO1); // Press - - myr_joystick_timer = timer_read(); -} - -// Make sure any card present is ready for use -static myriad_card_t myriad_card_init(void) { - static bool initialized = false; - - myriad_card_t card = detect_myriad(); - if (initialized) { - return card; - } - initialized = true; - - switch (card) { - case SKB_SWITCHES: - myr_switches_init(); - break; - case SKB_ENCODER: - myr_encoder_init(); - break; - case SKB_JOYSTICK: - myr_joystick_init(); - break; - default: - break; - } - return card; -} - -bool myriad_hook_matrix(matrix_row_t current_matrix[]) { - myriad_card_t card = myriad_card_init(); - uint8_t word = 0; - - if (card == SKB_SWITCHES) { - word |= ((!gpio_read_pin(MYRIAD_GPIO3)) & 1) << 0; - word |= ((!gpio_read_pin(MYRIAD_GPIO2)) & 1) << 1; - word |= ((!gpio_read_pin(MYRIAD_GPIO4)) & 1) << 2; - word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 3; - } else if (card == SKB_ENCODER) { - word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 4; - } else if (card == SKB_JOYSTICK) { - word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 4; - } else { - return false; - } - - // 5 bytes of on-board keys, so we are the 6th - bool matrix_has_changed = current_matrix[5] ^ word; - current_matrix[5] = word; - - return matrix_has_changed; -} - -static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE]; -static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE]; - -uint8_t myriad_hook_encoder(uint8_t index, bool pad_b) { - if (myriad_card_init() != SKB_ENCODER) { - return 0; - } - // 3 onboard encoders, so we are number 4 - pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index]; - encoders_pad_a[3] = MYRIAD_GPIO2; - encoders_pad_b[3] = MYRIAD_GPIO3; - return gpio_read_pin(pin) ? 1 : 0; -} - -report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { - if (myriad_card_init() != SKB_JOYSTICK) { - return mouse_report; - } - - if (timer_elapsed(myr_joystick_timer) < 10) { - wait_ms(2); - return mouse_report; - } - - myr_joystick_timer = timer_read(); - - // `analogReadPin` returns 0..1023 - int32_t y = (analogReadPin(MYRIAD_ADC1) - 512) * -1; // Note: axis is flipped - int32_t x = analogReadPin(MYRIAD_ADC2) - 512; - // Values are now -512..512 - - // Create a dead zone in the middle where the mouse doesn't move - const int16_t dead_zone = 10; - if ((y < 0 && y > -1 * dead_zone) || (y > 0 && y < dead_zone)) { - y = 0; - } - if ((x < 0 && x > -1 * dead_zone) || (x > 0 && x < dead_zone)) { - x = 0; - } - - // quadratic movement - x = abs(x) * x / 5000; - y = abs(y) * y / 5000; - - // Clamp final value to make sure we don't under/overflow - if (y < -127) { - y = -127; - } - if (y > 127) { - y = 127; - } - if (x < -127) { - x = -127; - } - if (x > 127) { - x = 127; - } - - mouse_report.x = x; - mouse_report.y = y; - - return mouse_report; -} - -bool pointing_device_driver_init(void) { - gpio_set_pin_input(MYRIAD_ADC1); // Y - gpio_set_pin_input(MYRIAD_ADC2); // X - return true; -} \ No newline at end of file diff --git a/keyboards/splitkb/elora/rev1/myriad.h b/keyboards/splitkb/elora/rev1/myriad.h deleted file mode 100644 index 03fe2b5e6b..0000000000 --- a/keyboards/splitkb/elora/rev1/myriad.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include "matrix.h" - -typedef enum { UNINITIALIZED, NONE, INVALID, UNKNOWN, SKB_SWITCHES, SKB_ENCODER, SKB_JOYSTICK } myriad_card_t; - -bool myriad_hook_matrix(matrix_row_t current_matrix[]); -uint8_t myriad_hook_encoder(uint8_t index, bool pad_b); -myriad_card_t detect_myriad(void); - -//// Elora-specific pinout - -// Control signals -#define MYRIAD_PRESENT GP3 -#define MYRIAD_MCU_OVERRIDE GP2 - -// General I/O -#define MYRIAD_ADC1 GP26 -#define MYRIAD_ADC2 GP27 -#define MYRIAD_ADC1_CHANNEL 0 -#define MYRIAD_ADC2_CHANNEL 1 -#define MYRIAD_PWM1 GP23 -#define MYRIAD_PWM2 GP24 -#define MYRIAD_GPIO1 GP4 -#define MYRIAD_GPIO2 GP5 -#define MYRIAD_GPIO3 GP6 -#define MYRIAD_GPIO4 GP8 - -// UART -#define MYRIAD_RX GP17 -#define MYRIAD_TX GP16 -#define MYRIAD_CTS GP18 -#define MYRIAD_RTS GP19 - -// SPI -#define MYRIAD_MISO GP12 -#define MYRIAD_MOSI GP11 -#define MYRIAD_SCK GP10 -#define MYRIAD_MODULE_CS GP9 -#define MYRIAD_MATRIX_CS GP13 - -// I2C -#define MYRIAD_SDA GP0 -#define MYRIAD_SCL GP1 - -// RGB -#define MYRIAD_RGB GP15 diff --git a/keyboards/splitkb/elora/rev1/rev1.c b/keyboards/splitkb/elora/rev1/rev1.c deleted file mode 100644 index 6ffc23a4cf..0000000000 --- a/keyboards/splitkb/elora/rev1/rev1.c +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "rev1.h" -#include "spi_master.h" -#include "myriad.h" - -bool is_oled_enabled = true; - -//// HW init - -// Make sure all external hardware is -// in a known-good state on powerup -void keyboard_pre_init_kb(void) { - /// SPI Chip Select pins for various hardware - // Matrix CS - gpio_set_pin_output(GP13); - gpio_write_pin_high(GP13); - // Myriad Module CS - gpio_set_pin_output(GP9); - gpio_write_pin_high(GP9); - - gpio_set_pin_output(ELORA_CC1_PIN); - gpio_write_pin_low(ELORA_CC1_PIN); - - gpio_set_pin_output(ELORA_CC2_PIN); - gpio_write_pin_low(ELORA_CC2_PIN); - - // We have to get the SPI interface working quite early, - // So make sure it is available well before we need it - spi_init(); - - keyboard_pre_init_user(); -} - -//// Encoder functionality - -// The encoders are hooked in to the same shift registers as the switch matrix, so we can just piggyback on that. - -// Clone of a variant in quantum/matrix_common.c, but matrix-agnostic -bool mat_is_on(matrix_row_t mat[], uint8_t row, uint8_t col) { - return (mat[row] & ((matrix_row_t)1 << col)); -} - -uint8_t encoder_read_pads_from(uint8_t index, bool pad_b, matrix_row_t mat[]) { - // First two matrix rows: - // - // Pin A B C D E F G H - // Left: - // { __, __, __, __, __, __, A1, B1 }, - // { A3, B3, A2, B2, __, __, __, __ } - // Right: - // { A1, B1, __, __, __, __, __, __ }, - // { __, __, __, __, A2, B2, A3, B3 } - // - // See also rev1.h - - bool pad_value = false; - - if (is_keyboard_left()) { - if (index == 0) { - pad_value = pad_b ? mat_is_on(mat, 0, 7) : mat_is_on(mat, 0, 6); // B1, A1 - } else if (index == 1) { - pad_value = pad_b ? mat_is_on(mat, 1, 3) : mat_is_on(mat, 1, 2); // B2, A2 - } else if (index == 2) { - pad_value = pad_b ? mat_is_on(mat, 1, 1) : mat_is_on(mat, 1, 0); // B3, A3 - } - } else { - if (index == 0) { - pad_value = pad_b ? mat_is_on(mat, 0, 1) : mat_is_on(mat, 0, 0); // B1, A1 - } else if (index == 1) { - pad_value = pad_b ? mat_is_on(mat, 1, 5) : mat_is_on(mat, 1, 4); // B2, A2 - } else if (index == 2) { - pad_value = pad_b ? mat_is_on(mat, 1, 7) : mat_is_on(mat, 1, 6); // B3, A3 - } - } - - return pad_value ? 1 : 0; -} - -void encoder_quadrature_init_pin(uint8_t index, bool pad_b) { - // At this point the first matrix scan hasn't happened yet, - // so we can't use raw_matrix to initialize our encoder state - // as it contains all zeroes - so we have to do our own first scan - // The pins for myriad are initialized in myriad.c - - matrix_row_t mat[MATRIX_ROWS]; - - encoder_read_pads_from(index, pad_b, mat); -} - -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // From quantum/matrix_common.c - -uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b) { - // The matrix code already keeps the raw matrix up-to-date, - // so we only have to read the values from it - if(index <= 2) { - return encoder_read_pads_from(index, pad_b, raw_matrix); - } else { - #ifdef MYRIAD_ENABLE - return myriad_hook_encoder(index, pad_b); - #endif - return 0; - } - return 0; -} - -//// Default functionality - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - if (is_keyboard_left()) { - return OLED_ROTATION_270; - } else { - return OLED_ROTATION_90; - } -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - - if (!is_oled_enabled) { - oled_off(); - return false; - } else { - oled_on(); - } - - if (is_keyboard_master()) { - oled_write_P(PSTR("Elora rev1\n\n"), false); - - // Keyboard Layer Status - // Ideally we'd print the layer name, but no way to know that for sure - // Fallback option: just print the layer number - uint8_t layer = get_highest_layer(layer_state | default_layer_state); - oled_write_P(PSTR("Layer: "), false); - oled_write(get_u8_str(layer, ' '), false); - - // Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR(" NUM") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAP") : PSTR(" "), false); - oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR(" "), false); - - // QMK Logo - // clang-format off - static const char PROGMEM qmk_logo[] = { - 0x81,0x82,0x83,0x84,0x0a, - 0xa1,0xa2,0xa3,0xa4,0x85,0x86,0x87,0x88,0x89,0x0a, - 0xc1,0xc2,0xc3,0xc4,0xa5,0xa6,0xa7,0xa8,0xa9,0x0a, - 0x8a,0x8b,0x8c,0x8d,0xc5,0xc6,0xc7,0xc8,0xc9,0x0a, - 0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0x00 - }; - // clang-format on - oled_set_cursor(0, oled_max_lines()-5); - oled_write_P(qmk_logo, false); - } else { - // Elora sigil - // clang-format off - static const char PROGMEM elora_logo[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,224,240,248,120, 56, 60,188,158,158,222,206,207,207,207,239,239,239,239,239,239,207,207,207,206,222,158,158,188, 60, 56,120,248,240,224,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,224,248,252,126, 31,143,199,227,243,249,124, 60, 30, 31, 15, 7, 7, 3, 3, 3,131,193,225,241,249,253,255,255,255,255,127, 63, 31, 15, 7, 7, 7,143,223,254,252,252,249,243,227,199,143, 31,126,252,248,224,192, 0, 0, 0, 0, 0, - 0,192,240,254,255, 63, 7,227,248,252,127, 31, 15, 3, 1, 0, 0, 0,128,192,224,240,248,252,254,255,255,255,127, 63, 31, 15, 7, 3, 1,128,192,224,240,248,252,254,255,255,255,255,127, 63, 31, 15, 7, 15, 31,255,252,248,227, 7, 63,255,254,240,192, 0,252,255,255,255, 1,224,255,255,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 15, 7, 3, 1, 0, 0, 0,240,248,252,254,255,255,255,255,127, 63, 31, 15, 7, 3, 1,128,192,224,240,248,252,254,255,255,255,255,255,255,224, 1,255,255,255,252, - 63,255,255,255,128, 7,255,255,255,224, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,240,248,248,248,248,248,248, 0, 3, 3, 3, 3, 3, 3, 1,128,192,224,240,248,252,254,255,255,255,127, 63, 31, 15, 7, 3, 1,224,255,255,255, 7,128,255,255,255, 63, 0, 3, 15,127,255,252,224,199, 31, 63,254,248,240,192,128, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 62, 63, 63, 63, 63, 63, 31, 15, 7, 3, 1, 0, 0, 0,128,192,240,248,254, 63, 31,199,224,252,255,127, 15, 3, 0, - 0, 0, 0, 0, 0, 3, 7, 31, 63,126,248,241,227,199,207,159, 62, 60,120,248,240,224,224,192,192,192,192,128,128,128,128,128,128,128,128,128,128,192,192,192,192,224,224,240,248,120, 60, 62,159,207,199,227,241,248,126, 63, 31, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15, 31, 30, 28, 60, 61,121,121,123,115,243,243,243,247,247,247,247,247,247,243,243,243,115,123,121,121, 61, 60, 28, 30, 31, 15, 7, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - // clang-format on - oled_set_cursor(0, (oled_max_lines()/2)-4); // logo is 8 lines high, so center vertically - oled_write_raw_P(elora_logo, sizeof(elora_logo)); - } - - return false; -} - -void housekeeping_task_kb(void) { - is_oled_enabled = last_input_activity_elapsed() < 60000; -} -#endif - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - - if (index == 0 || index == 1 || index == 2) { - // Left side - // Arrow keys - if (clockwise) { - tap_code(KC_RIGHT); - } else { - tap_code(KC_LEFT); - } - } else if (index == 4 || index == 5 || index == 6) { - // Right side - // Page up/Page down - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 3 || index == 7) { - // Myriad - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} -#endif diff --git a/keyboards/splitkb/elora/rev1/rev1.h b/keyboards/splitkb/elora/rev1/rev1.h deleted file mode 100644 index d4c1ffedb2..0000000000 --- a/keyboards/splitkb/elora/rev1/rev1.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "quantum.h" - -//// Custom pins, might be useful in a keymap -// Wired to input of last shift register, overrides 10k pullup/pulldown -#define ELORA_SELFTEST_PIN GP14 - -// Can be used for USB current detection -#define ELORA_CC1_PIN GP28 -#define ELORA_CC2_PIN GP29 diff --git a/keyboards/splitkb/elora/rev1/rules.mk b/keyboards/splitkb/elora/rev1/rules.mk deleted file mode 100644 index 643fdc9a1b..0000000000 --- a/keyboards/splitkb/elora/rev1/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -SPI_DRIVER_REQUIRED = yes -CUSTOM_MATRIX = lite - -# Myriad boilerplate -SRC += myriad.c matrix.c -ANALOG_DRIVER_REQUIRED = yes -POINTING_DEVICE_DRIVER = custom \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/corne/info.json b/keyboards/splitkb/halcyon/corne/info.json deleted file mode 100755 index 8b3325910d..0000000000 --- a/keyboards/splitkb/halcyon/corne/info.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "maintainer": "splitkb.com", - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x6_3" - }, - "layouts": { - "LAYOUT_split_3x6_3": { - "layout": [ - {"label": "L06", "matrix": [0, 0], "x": 0, "y": 0.3}, - {"label": "L05", "matrix": [0, 1], "x": 1, "y": 0.3}, - {"label": "L04", "matrix": [0, 2], "x": 2, "y": 0.1}, - {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L02", "matrix": [0, 4], "x": 4, "y": 0.1}, - {"label": "L01", "matrix": [0, 5], "x": 5, "y": 0.2}, - {"label": "R01", "matrix": [4, 5], "x": 9, "y": 0.2}, - {"label": "R02", "matrix": [4, 4], "x": 10, "y": 0.1}, - {"label": "R03", "matrix": [4, 3], "x": 11, "y": 0}, - {"label": "R04", "matrix": [4, 2], "x": 12, "y": 0.1}, - {"label": "R05", "matrix": [4, 1], "x": 13, "y": 0.3}, - {"label": "R06", "matrix": [4, 0], "x": 14, "y": 0.3}, - {"label": "L12", "matrix": [1, 0], "x": 0, "y": 1.3}, - {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1.3}, - {"label": "L10", "matrix": [1, 2], "x": 2, "y": 1.1}, - {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L08", "matrix": [1, 4], "x": 4, "y": 1.1}, - {"label": "L07", "matrix": [1, 5], "x": 5, "y": 1.2}, - {"label": "R07", "matrix": [5, 5], "x": 9, "y": 1.2}, - {"label": "R08", "matrix": [5, 4], "x": 10, "y": 1.1}, - {"label": "R09", "matrix": [5, 3], "x": 11, "y": 1}, - {"label": "R10", "matrix": [5, 2], "x": 12, "y": 1.1}, - {"label": "R11", "matrix": [5, 1], "x": 13, "y": 1.3}, - {"label": "R12", "matrix": [5, 0], "x": 14, "y": 1.3}, - {"label": "L18", "matrix": [2, 0], "x": 0, "y": 2.3}, - {"label": "L17", "matrix": [2, 1], "x": 1, "y": 2.3}, - {"label": "L16", "matrix": [2, 2], "x": 2, "y": 2.1}, - {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L14", "matrix": [2, 4], "x": 4, "y": 2.1}, - {"label": "L13", "matrix": [2, 5], "x": 5, "y": 2.2}, - {"label": "R13", "matrix": [6, 5], "x": 9, "y": 2.2}, - {"label": "R14", "matrix": [6, 4], "x": 10, "y": 2.1}, - {"label": "R15", "matrix": [6, 3], "x": 11, "y": 2}, - {"label": "R16", "matrix": [6, 2], "x": 12, "y": 2.1}, - {"label": "R17", "matrix": [6, 1], "x": 13, "y": 2.3}, - {"label": "R18", "matrix": [6, 0], "x": 14, "y": 2.3}, - {"label": "L21", "matrix": [3, 3], "x": 4, "y": 3.7}, - {"label": "L20", "matrix": [3, 4], "x": 5, "y": 3.7}, - {"label": "L19", "matrix": [3, 5], "w": 1.5, "x": 6, "y": 3.2}, - {"label": "R19", "matrix": [7, 5], "w": 1.5, "x": 8, "y": 3.2}, - {"label": "R20", "matrix": [7, 4], "x": 9, "y": 3.7}, - {"label": "R21", "matrix": [7, 3], "x": 10, "y": 3.7} - ] - } - } -} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json deleted file mode 100644 index ab42d0731c..0000000000 --- a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "keyboard": "splitkb/halcyon/corne/rev2", - "keymap": "default", - "version": 1, - "layout": "LAYOUT_split_3x6_3", - "layers": [ - [ - "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC" , - "KC_LCTL" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "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_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_ESC" , - "KC_LGUI" , "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_RALT" - ], - [ - "KC_TAB" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC" , - "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LEFT" , "KC_DOWN" , "KC_UP" , "KC_RIGHT", "XXXXXXX" , "XXXXXXX" , - "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "MO(3)" , "KC_RALT" - ], - [ - "KC_TAB" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_BSPC" , - "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MINS" , "KC_EQL" , "KC_LBRC" , "KC_RBRC" , "KC_BSLS" , "KC_GRV" , - "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_UNDS" , "KC_PLUS" , "KC_LCBR" , "KC_RCBR" , "KC_PIPE" , "KC_TILD" , - "KC_LGUI" , "MO(3)" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" - ], - [ - "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" - ] - ], - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] - ] -} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md deleted file mode 100755 index 8e44629494..0000000000 --- a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md +++ /dev/null @@ -1,87 +0,0 @@ -# Halcyon Corne's Default Keymap -_This keymap is a copy of the [Corne default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/default)_ - -A simple default keymap for the Halcyon Corne -============================================ - -Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. - -What do all these layers do? ----------------------------- - -### Layer 0: Base layer - -![Layer 0](https://i.imgur.com/Ri5cTHqh.png) - -This is where your basic letters live. - -The homing thumb fingers are used to access the different layers. - -* The homing left thumb finger gives access to the Numbers (or lower) layer -* The homing right thumb finger gives access to the Symbols (or raise) layer -* Pressing both homing thumb fingers gives access to the Adjust layer - -### Layer 1: Lower - -![Layer 1](https://i.imgur.com/9h6ZRQLh.png) - -The Lower layer gives access to your number keys on the top row. It also exposes the arrow keys in the usual Vim-style layout. - -### Layer 2: Raise - -![Layer 2](https://i.imgur.com/U1pf7pJh.png) - -The Raise layer gives access to the symbols. In addition to shifted number keys on the top row, the right hand also exposes the remaining symbol keys, both as shifted and non-shifted variants. - -### Layer 3: Adjust - -![Layer 3](https://i.imgur.com/A6z1DCbh.png) - -The Adjust layer exposes RGB adjustment keys on the left hand. - -Where is the keymap.c? ----------------------- - -The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. - -This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. - -How do I edit and update the keymap? ------------------------------------- - -The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. - -To edit it, you may: -* Edit it directly from a text editor. -* Edit it from the QMK Configurator. - -If you decide to use the latter workflow, here are the steps to follow: - -* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/corne/rev2/LAYOUT_split_3x5_3), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). -* Browse to the location of your keymap (for example, `/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json`) -* Perform any modification to the keymap in the web UI -* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) -* Replace your original keymap with the one you just downloaded - -I want to do more than the JSON format supports! -------------------------------------------------- - -While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. - -To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. - -First, from the root of your qmk repo, move to your keymap folder - -```bash -cd ./keyboards/splitkb/halcyon/corne/keymaps/my_personal_keymap -``` - -Next, convert your `keymap.json` to a `keymap.c` - -```bash -qmk json2c -o keymap.c keymap.json -``` - - -You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/corne/readme.md b/keyboards/splitkb/halcyon/corne/readme.md deleted file mode 100755 index b859da2edd..0000000000 --- a/keyboards/splitkb/halcyon/corne/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Halcyon Corne - -![splitkb/halcyon/corne](https://i.imgur.com/Cpo2dM8.png) - -The Halcyon Corne rev2 is the second Corne revision and the third keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: - -- Halcyon keyboards come preassembled! You won't need a soldering iron. -- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. -- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. -- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. -- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! -- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. - -* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) -* Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/halcyon/corne/rev2:default - -The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. - -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: - -* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. -* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/corne/rev2/config.h b/keyboards/splitkb/halcyon/corne/rev2/config.h deleted file mode 100755 index b5cd6f95f2..0000000000 --- a/keyboards/splitkb/halcyon/corne/rev2/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN GP28 // USART TX pin -#define SERIAL_USART_RX_PIN GP29 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - -// VBUS detection -#define USB_VBUS_PIN GP1 - -//// VIK - -// GPIO1 = GP27 -// GPIO2 = GP26 -// CS = GP13 - -#define I2C_DRIVER I2C0 -#define I2C1_SDA_PIN GP16 -#define I2C1_SCL_PIN GP17 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP14 -#define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/corne/rev2/halconf.h b/keyboards/splitkb/halcyon/corne/rev2/halconf.h deleted file mode 100644 index a6937ddf9d..0000000000 --- a/keyboards/splitkb/halcyon/corne/rev2/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//// VIK - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json deleted file mode 100755 index 33e8e7a907..0000000000 --- a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "keyboard_name": "Halcyon Corne rev2", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP24", "pin_b": "GP23", "resolution": 2} - ] - }, - "features": { - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP9", "GP4", "GP7", "GP6", "GP5", "GP10"], - "rows": ["GP20", "GP25", "GP11", "GP8"] - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"x": 93, "y": 17, "flags": 2}, - {"x": 59, "y": 3, "flags": 2}, - {"x": 25, "y": 7, "flags": 2}, - {"x": 29, "y": 49, "flags": 2}, - {"x": 70, "y": 51, "flags": 2}, - {"x": 104, "y": 55, "flags": 2}, - {"matrix": [3, 2], "x": 95, "y": 63, "flags": 4}, - {"matrix": [3, 1], "x": 80, "y": 58, "flags": 4}, - {"matrix": [3, 0], "x": 60, "y": 55, "flags": 4}, - {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, - {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, - {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, - {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, - {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, - {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, - {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, - {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, - {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, - {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, - {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4}, - {"x": 131, "y": 17, "flags": 2}, - {"x": 165, "y": 3, "flags": 2}, - {"x": 199, "y": 7, "flags": 2}, - {"x": 195, "y": 49, "flags": 2}, - {"x": 154, "y": 51, "flags": 2}, - {"x": 120, "y": 55, "flags": 2}, - {"matrix": [7, 2], "x": 129, "y": 63, "flags": 4}, - {"matrix": [7, 1], "x": 144, "y": 58, "flags": 4}, - {"matrix": [7, 0], "x": 164, "y": 55, "flags": 4}, - {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, - {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, - {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, - {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, - {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, - {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, - {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, - {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, - {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, - {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, - {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, - {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, - {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, - {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, - {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, - {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [27, 27] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP19" - }, - "matrix_pins": { - "right": { - "cols": ["GP5", "GP9", "GP7", "GP20", "GP25", "GP4"], - "rows": ["GP6", "GP10", "GP11", "GP8"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "pid": "0x3A07" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP3" - } -} diff --git a/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h deleted file mode 100644 index 126697a4a0..0000000000 --- a/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -//// VIK - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/corne/rev2/rev2.c b/keyboards/splitkb/halcyon/corne/rev2/rev2.c deleted file mode 100644 index e0a64ae9a4..0000000000 --- a/keyboards/splitkb/halcyon/corne/rev2/rev2.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - // Page up/Page down - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} -#endif diff --git a/keyboards/splitkb/halcyon/elora/info.json b/keyboards/splitkb/halcyon/elora/info.json deleted file mode 100644 index ea97888673..0000000000 --- a/keyboards/splitkb/halcyon/elora/info.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "maintainer": "splitkb", - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_4x6_5" - }, - "layouts": { - "LAYOUT_split_4x6_5": { - "layout": [ - {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, - {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, - {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, - {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, - {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, - {"label": "R01", "matrix": [5, 1], "x": 10.5, "y": 0.5}, - {"label": "R02", "matrix": [5, 2], "x": 11.5, "y": 0.25}, - {"label": "R03", "matrix": [5, 3], "x": 12.5, "y": 0}, - {"label": "R04", "matrix": [5, 4], "x": 13.5, "y": 0.25}, - {"label": "R05", "matrix": [5, 5], "x": 14.5, "y": 0.75}, - {"label": "R06", "matrix": [5, 6], "x": 15.5, "y": 0.75}, - {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, - {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, - {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, - {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, - {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, - {"label": "R07", "matrix": [6, 1], "x": 10.5, "y": 1.5}, - {"label": "R08", "matrix": [6, 2], "x": 11.5, "y": 1.25}, - {"label": "R09", "matrix": [6, 3], "x": 12.5, "y": 1}, - {"label": "R10", "matrix": [6, 4], "x": 13.5, "y": 1.25}, - {"label": "R11", "matrix": [6, 5], "x": 14.5, "y": 1.75}, - {"label": "R12", "matrix": [6, 6], "x": 15.5, "y": 1.75}, - {"label": "L18", "matrix": [2, 6], "x": 0, "y": 2.75}, - {"label": "L17", "matrix": [2, 5], "x": 1, "y": 2.75}, - {"label": "L16", "matrix": [2, 4], "x": 2, "y": 2.25}, - {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L14", "matrix": [2, 2], "x": 4, "y": 2.25}, - {"label": "L13", "matrix": [2, 1], "x": 5, "y": 2.5}, - {"label": "R13", "matrix": [7, 1], "x": 10.5, "y": 2.5}, - {"label": "R14", "matrix": [7, 2], "x": 11.5, "y": 2.25}, - {"label": "R15", "matrix": [7, 3], "x": 12.5, "y": 2}, - {"label": "R16", "matrix": [7, 4], "x": 13.5, "y": 2.25}, - {"label": "R17", "matrix": [7, 5], "x": 14.5, "y": 2.75}, - {"label": "R18", "matrix": [7, 6], "x": 15.5, "y": 2.75}, - {"label": "L26", "matrix": [3, 6], "x": 0, "y": 3.75}, - {"label": "L25", "matrix": [3, 5], "x": 1, "y": 3.75}, - {"label": "L24", "matrix": [3, 4], "x": 2, "y": 3.25}, - {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "L22", "matrix": [3, 2], "x": 4, "y": 3.25}, - {"label": "L21", "matrix": [3, 1], "x": 5, "y": 3.5}, - {"label": "L20", "matrix": [4, 3], "x": 6, "y": 4}, - {"label": "L19", "matrix": [3, 0], "x": 7, "y": 4.25}, - {"label": "R19", "matrix": [8, 0], "x": 8.5, "y": 4.25}, - {"label": "R20", "matrix": [9, 3], "x": 9.5, "y": 4}, - {"label": "R21", "matrix": [8, 1], "x": 10.5, "y": 3.5}, - {"label": "R22", "matrix": [8, 2], "x": 11.5, "y": 3.25}, - {"label": "R23", "matrix": [8, 3], "x": 12.5, "y": 3}, - {"label": "R24", "matrix": [8, 4], "x": 13.5, "y": 3.25}, - {"label": "R26", "matrix": [8, 5], "x": 14.5, "y": 3.75}, - {"label": "R27", "matrix": [8, 6], "x": 15.5, "y": 3.75}, - {"label": "L31", "matrix": [4, 4], "x": 2.5, "y": 4.25}, - {"label": "L30", "matrix": [4, 2], "x": 3.5, "y": 4.25}, - {"label": "L29", "matrix": [4, 1], "x": 4.5, "y": 4.5}, - {"label": "L28", "matrix": [4, 5], "x": 5.5, "y": 5}, - {"label": "L27", "matrix": [4, 0], "x": 6.5, "y": 5.25}, - {"label": "R27", "matrix": [9, 0], "x": 9, "y": 5.25}, - {"label": "R28", "matrix": [9, 5], "x": 10, "y": 5}, - {"label": "R29", "matrix": [9, 1], "x": 11, "y": 4.5}, - {"label": "R30", "matrix": [9, 2], "x": 12, "y": 4.25}, - {"label": "R31", "matrix": [9, 4], "x": 13, "y": 4.25} - ] - } - } -} diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c deleted file mode 100644 index 542314bf21..0000000000 --- a/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY = 0, - _DVORAK, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST, -}; - -// Aliases for readability -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK_DH) -#define DVORAK DF(_DVORAK) - -#define SYM MO(_SYM) -#define NAV MO(_NAV) -#define FKEYS MO(_FUNCTION) -#define ADJUST MO(_ADJUST) - -#define CTL_ESC MT(MOD_LCTL, KC_ESC) -#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) -#define CTL_MINS MT(MOD_RCTL, KC_MINUS) -#define ALT_ENT MT(MOD_LALT, KC_ENT) - -// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. -// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and -// produces the key `tap` when tapped (i.e. pressed and released). - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Base Layer: QWERTY - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_QWERTY] = LAYOUT( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC , - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, - CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Base Layer: Dvorak - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_DVORAK] = LAYOUT( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC , - KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, - CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, - KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Base Layer: Colemak DH - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_COLEMAK_DH] = LAYOUT( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC , - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, - CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Nav Layer: Media, navigation - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_NAV] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, - _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, - _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Sym Layer: Numbers and symbols - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_SYM] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , - KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, - KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Function Layer: Function keys - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | F9 | F10 | F11 | F12 | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_FUNCTION] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Adjust Layer: Default layer settings, RGB - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Reset | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | |QWERTY| | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_ADJUST] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, - _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ - ), - -// /* -// * Layer template -// * -// * ,-------------------------------------------. ,-------------------------------------------. -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' -// * | | | | | | | | | | | | -// * | | | | | | | | | | | | -// * `----------------------------------' `----------------------------------' -// */ -// [_LAYERINDEX] = LAYOUT( -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -// ), -// -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, - [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [5] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [6] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, -}; -#endif diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md b/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md deleted file mode 100644 index bd386bfa39..0000000000 --- a/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md +++ /dev/null @@ -1,262 +0,0 @@ -# Halcyon Elora's Default Keymap - -The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. -Hardware features of the Elora such as rotary encoders and underglow are also supported. - -The Elora keymap is in essence identical to the Kyria keymap, just with an additional number row. A deep dive into the keymap is provided there. - -The five different layers are the following: -1. Base layer (QWERTY, Colemak-DH or Dvorak) -2. Navigation layer -3. Symbols/Numbers layer -4. Function layer -5. Adjust layer - -## Base layer(s) -``` -Base Layer: - - -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` -Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). - -For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. - -``` -Base Layer: QWERTY - -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. - -![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) - -
-After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Elora, as illustrated in the animation above, the result looks like this: - -``` -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. - -The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Elora users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. - -We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? - -All of this leaves us with three blank keys. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | -`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' - | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. - -Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Elora. - - -``` -,-------------------------------------------. ,-------------------------------------------. -| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -
- -## Navigation layer - -``` -Nav Layer: Media, navigation - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. - -Useful mnemonics: -- “GACS” to remember the order of the modifiers on the left-hand home row -- Scroll Lock is on the same key as Caps Lock because they're both locks -- Delete is on the same key as Backspace because they both erase characters -- Home is the leftmost position on the current line so it is above ←. Same logic applies for End. -- Media Previous = ⏮, Media Next = ⏭ -- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. - -## Sym layer -``` -Sym Layer: Numbers, symbols - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. - -The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. - -The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. - -Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. - -In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. - -## Function layer -``` -Function Layer: Function keys - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | F9 | F10 | F11 | F12 | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. - -The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. - -Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. - - -## Adjust layer -``` -Adjust Layer: Default layer settings, RGB - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | | |QWERTY| | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -Default layer settings on the left and various RGB underglow controls on the right. - -The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. - -NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: -```c -enum layers { - _DVORAK = 0, - _QWERTY, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST -}; -``` -or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. - -## Hardware Features - -### Rotary Encoder -The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. - -## Going further… - -This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. - -Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/rules.mk b/keyboards/splitkb/halcyon/elora/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/splitkb/halcyon/elora/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/splitkb/halcyon/elora/readme.md b/keyboards/splitkb/halcyon/elora/readme.md deleted file mode 100644 index 9970d31f43..0000000000 --- a/keyboards/splitkb/halcyon/elora/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Halcyon Elora - -![splitkb/halcyon/elora](https://i.imgur.com/TbFWzsh.png) - -The Halcyon Elora rev2 is the second Elora revision and the second keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: - -- Halcyon keyboards come preassembled! You won't need a soldering iron. -- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. -- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. -- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. -- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! -- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. - -* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) -* Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/halcyon/elora/rev2:default - -The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. - -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: - -* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. -* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/elora/rev2/config.h b/keyboards/splitkb/halcyon/elora/rev2/config.h deleted file mode 100644 index b5cd6f95f2..0000000000 --- a/keyboards/splitkb/halcyon/elora/rev2/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN GP28 // USART TX pin -#define SERIAL_USART_RX_PIN GP29 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - -// VBUS detection -#define USB_VBUS_PIN GP1 - -//// VIK - -// GPIO1 = GP27 -// GPIO2 = GP26 -// CS = GP13 - -#define I2C_DRIVER I2C0 -#define I2C1_SDA_PIN GP16 -#define I2C1_SCL_PIN GP17 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP14 -#define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/elora/rev2/halconf.h b/keyboards/splitkb/halcyon/elora/rev2/halconf.h deleted file mode 100644 index a6937ddf9d..0000000000 --- a/keyboards/splitkb/halcyon/elora/rev2/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//// VIK - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/splitkb/halcyon/elora/rev2/keyboard.json b/keyboards/splitkb/halcyon/elora/rev2/keyboard.json deleted file mode 100644 index c2dc711f07..0000000000 --- a/keyboards/splitkb/halcyon/elora/rev2/keyboard.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "keyboard_name": "Halcyon Elora rev2", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP22", "pin_b": "GP18", "resolution": 2} - ] - }, - "features": { - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP24", "GP19", "GP20", "GP25", "GP4", "GP9", "GP10"], - "rows": ["GP8", "GP11", "GP7", "GP6", "GP5"] - }, - "processor": "RP2040", - "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_color": 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 - }, - "driver": "ws2812", - "layout": [ - {"x": 75, "y": 2, "flags": 2}, - {"x": 50, "y": 1, "flags": 2}, - {"x": 14, "y": 4, "flags": 2}, - {"x": 25, "y": 45, "flags": 2}, - {"x": 58, "y": 49, "flags": 2}, - {"x": 94, "y": 53, "flags": 2}, - {"matrix": [4, 0], "x": 94, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 79, "y": 61, "flags": 4}, - {"matrix": [4, 1], "x": 65, "y": 55, "flags": 4}, - {"matrix": [4, 2], "x": 51, "y": 52, "flags": 4}, - {"matrix": [4, 4], "x": 36, "y": 52, "flags": 4}, - {"matrix": [3, 0], "x": 101, "y": 52, "flags": 4}, - {"matrix": [4, 3], "x": 87, "y": 49, "flags": 4}, - {"matrix": [3, 1], "x": 72, "y": 43, "flags": 4}, - {"matrix": [3, 2], "x": 58, "y": 40, "flags": 4}, - {"matrix": [3, 3], "x": 43, "y": 37, "flags": 4}, - {"matrix": [3, 4], "x": 29, "y": 40, "flags": 4}, - {"matrix": [3, 5], "x": 14, "y": 46, "flags": 4}, - {"matrix": [3, 6], "x": 0, "y": 46, "flags": 4}, - {"matrix": [2, 1], "x": 72, "y": 30, "flags": 4}, - {"matrix": [2, 2], "x": 58, "y": 27, "flags": 4}, - {"matrix": [2, 3], "x": 43, "y": 24, "flags": 4}, - {"matrix": [2, 4], "x": 29, "y": 27, "flags": 4}, - {"matrix": [2, 5], "x": 14, "y": 34, "flags": 4}, - {"matrix": [2, 6], "x": 0, "y": 34, "flags": 4}, - {"matrix": [1, 1], "x": 72, "y": 18, "flags": 4}, - {"matrix": [1, 2], "x": 58, "y": 15, "flags": 4}, - {"matrix": [1, 3], "x": 43, "y": 12, "flags": 4}, - {"matrix": [1, 4], "x": 29, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 14, "y": 21, "flags": 4}, - {"matrix": [1, 6], "x": 0, "y": 21, "flags": 4}, - {"matrix": [0, 1], "x": 72, "y": 6, "flags": 4}, - {"matrix": [0, 2], "x": 48, "y": 3, "flags": 4}, - {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 29, "y": 3, "flags": 4}, - {"matrix": [0, 5], "x": 14, "y": 9, "flags": 4}, - {"matrix": [0, 6], "x": 0, "y": 9, "flags": 4}, - {"x": 149, "y": 2, "flags": 2}, - {"x": 174, "y": 1, "flags": 2}, - {"x": 210, "y": 4, "flags": 2}, - {"x": 199, "y": 45, "flags": 2}, - {"x": 166, "y": 49, "flags": 2}, - {"x": 130, "y": 53, "flags": 2}, - {"matrix": [9, 0], "x": 130, "y": 64, "flags": 4}, - {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, - {"matrix": [9, 1], "x": 159, "y": 55, "flags": 4}, - {"matrix": [9, 2], "x": 173, "y": 52, "flags": 4}, - {"matrix": [9, 4], "x": 188, "y": 52, "flags": 4}, - {"matrix": [8, 0], "x": 123, "y": 52, "flags": 4}, - {"matrix": [9, 3], "x": 137, "y": 49, "flags": 4}, - {"matrix": [8, 1], "x": 152, "y": 43, "flags": 4}, - {"matrix": [8, 2], "x": 166, "y": 40, "flags": 4}, - {"matrix": [8, 3], "x": 181, "y": 37, "flags": 4}, - {"matrix": [8, 4], "x": 195, "y": 40, "flags": 4}, - {"matrix": [8, 5], "x": 210, "y": 46, "flags": 4}, - {"matrix": [8, 6], "x": 224, "y": 46, "flags": 4}, - {"matrix": [7, 1], "x": 152, "y": 30, "flags": 4}, - {"matrix": [7, 2], "x": 166, "y": 27, "flags": 4}, - {"matrix": [7, 3], "x": 181, "y": 24, "flags": 4}, - {"matrix": [7, 4], "x": 195, "y": 27, "flags": 4}, - {"matrix": [7, 5], "x": 210, "y": 34, "flags": 4}, - {"matrix": [7, 6], "x": 224, "y": 34, "flags": 4}, - {"matrix": [6, 1], "x": 152, "y": 18, "flags": 4}, - {"matrix": [6, 2], "x": 166, "y": 15, "flags": 4}, - {"matrix": [6, 3], "x": 181, "y": 12, "flags": 4}, - {"matrix": [6, 4], "x": 195, "y": 15, "flags": 4}, - {"matrix": [6, 5], "x": 210, "y": 21, "flags": 4}, - {"matrix": [6, 6], "x": 224, "y": 21, "flags": 4}, - {"matrix": [5, 1], "x": 152, "y": 6, "flags": 4}, - {"matrix": [5, 2], "x": 166, "y": 3, "flags": 4}, - {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, - {"matrix": [5, 4], "x": 195, "y": 3, "flags": 4}, - {"matrix": [5, 5], "x": 210, "y": 9, "flags": 4}, - {"matrix": [5, 6], "x": 224, "y": 9, "flags": 4} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [37, 37] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP23" - }, - "matrix_pins": { - "right": { - "cols": ["GP10", "GP9", "GP4", "GP25", "GP20", "GP19", "GP24"], - "rows": ["GP8", "GP11", "GP7", "GP6", "GP5"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "pid": "0xA392" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP3" - } -} diff --git a/keyboards/splitkb/halcyon/elora/rev2/mcuconf.h b/keyboards/splitkb/halcyon/elora/rev2/mcuconf.h deleted file mode 100644 index 126697a4a0..0000000000 --- a/keyboards/splitkb/halcyon/elora/rev2/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -//// VIK - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/elora/rev2/rev2.c b/keyboards/splitkb/halcyon/elora/rev2/rev2.c deleted file mode 100644 index e0a64ae9a4..0000000000 --- a/keyboards/splitkb/halcyon/elora/rev2/rev2.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - // Page up/Page down - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} -#endif diff --git a/keyboards/splitkb/halcyon/ferris/info.json b/keyboards/splitkb/halcyon/ferris/info.json deleted file mode 100755 index 66d69f717c..0000000000 --- a/keyboards/splitkb/halcyon/ferris/info.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "maintainer": "splitkb.com", - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x5_2" - }, - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - {"label": "L01", "matrix": [0, 4], "x": 0, "y": 0.93}, - {"label": "L02", "matrix": [0, 3], "x": 1, "y": 0.31}, - {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "L04", "matrix": [0, 1], "x": 3, "y": 0.28}, - {"label": "L05", "matrix": [0, 0], "x": 4, "y": 0.42}, - {"label": "R05", "matrix": [4, 0], "x": 7, "y": 0.42}, - {"label": "R04", "matrix": [4, 1], "x": 8, "y": 0.28}, - {"label": "R03", "matrix": [4, 2], "x": 9, "y": 0}, - {"label": "R02", "matrix": [4, 3], "x": 10, "y": 0.31}, - {"label": "R01", "matrix": [4, 4], "x": 11, "y": 0.93}, - {"label": "L06", "matrix": [1, 4], "x": 0, "y": 1.93}, - {"label": "L07", "matrix": [1, 3], "x": 1, "y": 1.31}, - {"label": "L08", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "L09", "matrix": [1, 1], "x": 3, "y": 1.28}, - {"label": "L10", "matrix": [1, 0], "x": 4, "y": 1.42}, - {"label": "R10", "matrix": [5, 0], "x": 7, "y": 1.42}, - {"label": "R09", "matrix": [5, 1], "x": 8, "y": 1.28}, - {"label": "R08", "matrix": [5, 2], "x": 9, "y": 1}, - {"label": "R07", "matrix": [5, 3], "x": 10, "y": 1.31}, - {"label": "R06", "matrix": [5, 4], "x": 11, "y": 1.93}, - {"label": "L11", "matrix": [2, 4], "x": 0, "y": 2.93}, - {"label": "L12", "matrix": [2, 3], "x": 1, "y": 2.31}, - {"label": "L13", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "L14", "matrix": [2, 1], "x": 3, "y": 2.28}, - {"label": "L15", "matrix": [2, 0], "x": 4, "y": 2.42}, - {"label": "R15", "matrix": [6, 0], "x": 7, "y": 2.42}, - {"label": "R14", "matrix": [6, 1], "x": 8, "y": 2.28}, - {"label": "R13", "matrix": [6, 2], "x": 9, "y": 2}, - {"label": "R12", "matrix": [6, 3], "x": 10, "y": 2.31}, - {"label": "R11", "matrix": [6, 4], "x": 11, "y": 2.93}, - {"label": "L16", "matrix": [3, 1], "x": 3.5, "y": 3.75}, - {"label": "L17", "matrix": [3, 0], "x": 4.5, "y": 4}, - {"label": "R17", "matrix": [7, 0], "x": 6.5, "y": 4}, - {"label": "R16", "matrix": [7, 1], "x": 7.5, "y": 3.75} - ] - } - } -} diff --git a/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json deleted file mode 100644 index df28d96b42..0000000000 --- a/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "keyboard": "splitkb/halcyon/ferris/rev1", - "keymap": "default", - "version": 1, - "layout": "LAYOUT", - "layers": [ - [ - "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P", - "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G" , "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)", - "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH", - "KC_P0" , "KC_BSPC" , "LT(7,KC_SPC)" , "KC_P1" - ], - [ - "RM_TOGG" , "RM_NEXT" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "RM_SPDU" , "MS_BTN1" , "MS_WHLU" , "MS_BTN2" , "KC_TRNS", - "KC_TRNS" , "MS_BTN2" , "KC_NO" , "MS_BTN1" , "KC_TRNS" , "KC_TRNS" , "MS_LEFT" , "MS_DOWN" , "MS_UP" , "MS_RGHT", - "KC_TRNS" , "RM_PREV" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "RM_SPDD" , "MS_WHLL" , "MS_WHLD" , "MS_WHLR" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" - ], - [ - "KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS" , "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)", - "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" - ], - [ - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", - "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS" , "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "RM_PREV" , "KC_TRNS" , "KC_TRNS" , "RM_NEXT" - ], - [ - "KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT" , "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC", - "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_VOLD" , "KC_TRNS" , "KC_TRNS" , "KC_VOLU" - ], - [ - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10", - "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" - ], - [ - "KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS", - "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" - ], - [ - "KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL", - "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS" , "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", - "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS" , "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT", - "KC_TRNS" , "KC_TAB" , "KC_NO" , "KC_TRNS" - ] - ], - "config": { - "mousekey": { - "interval": 16, - "time_to_max": 40, - "delay": 100, - "wheel_delay": 100 - }, - "tapping": { - "term": 200, - "permissive_hold": true, - "force_hold": true - } - } -} diff --git a/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md b/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md deleted file mode 100644 index dcdc6b3aa1..0000000000 --- a/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md +++ /dev/null @@ -1,142 +0,0 @@ -# Halcyon Ferris's Default Keymap -_This keymap is a copy of the [Ferris default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default), with the addition of RGB modifier keys._ - -A usable default keymap for the Ferris keyboard -=============================================== - -Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. - -This keymap makes heavy use of keys behaving differently when tapped and held, so that all the keys one may need remain accessible despite the low number of thumb keys. - -It comes with a number of layers to give access to most of the keys one may need on a keyboard. It is not meant to be the best possible keymap, but rather a good base on which to build a keymap that works for you. - -This is not the only way to make 34 keys a comfortable typing experience, but it is one way to do so. If you don't already know of a better way, this may be as good a starting point as any :) - -Note that this keymap was built from the perspective that it is OK to take a steep learning curve if it results in a keymap that is easier to use in the long run. This means that it may take more effort to learn this keymap than some alternatives. "Easy to use" was assessed against the workflow of the author, so your mileage may vary on some of the details. - -What do all these layers do? ----------------------------- - -### Layer 0: Base layer - -![Layer 0](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer0.png) - -On tapping the keys, our base layer is qwerty with space on the right homing thumb and backspace on the left homing thumb. - -In this layer, the non-homing-thumb positions have 0 and 1. I recommend modifying this to some frequently accessed shortcut such as copy/paste, previous/next tab or anything that makes most sense in your own workflow. O and 1 are place-holders and make it easy to troubleshoot that all keys are working properly before soldering in the switches. -The reason I recommend convenience shortcuts instead of more commonly used keys like tab or meta is that unhoming of the thumbs was a frequent source of typos for me when I used more than one thumb key frequently in the context of typing. - -Despite being missing on this layer, "meta", "tab", "esc" and such are accessible from any other layer: see Layer 7. - -The behaviour of some keys differ when held: -* Both homing pinkies behave as shift. -* Both bottom-row ring fingers behave as ctrl. -* Both bottom-row middle fingers behave as alt. - -* The homing left ring finger gives access to the Function keys layer -* The homing right ring finger gives access to the Numbers layer -* The homing left middle finger gives access to the Mouse layer -* The homing right middle finger gives access to the Navigation layer -* The homing left index finger gives access to the Right symbols layer -* The homing right index finger gives access to the Left symbols layer -* The homing right thumb gives access to the Always accessible layer - -### Layer 1: Mouse - -![Layer 1](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer1.png) - -Layer 1 is a mouse layer: it can be used one-handed or two-handed. The most common way to use it is two handed, with left and right click on the homerow of the left hand and directions on the homerow of the right hand. -Scrolling is available on the right hand with mid finger up and down for vertical scroll and index and ring finger down for horizontal scroll. -On the right hand, left click and right click are also available with index and ring finger up to allow one handed operation. This can be particularly handy when enabling the mouse layer permanently (no need to hold the left middle finger), which can be done from Layer 7. - -**Addition**: The Halcyon Ferris allows the RGB settings to be modified on this layer. This is an extra feature over the default Ferris keymap. - -### Layer 2: Navigation - -![Layer 2](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer2.png) - -The navigation layer somewhat mirrors the mouse layer. It is accessed by holding the right middle finger and gives access to arrow keys on the left homerow. Page up and down, Home and End mirror the vertical scrolling and horizontal scrolling on the mouse layer. - -On the right hand, in addition to ctrl and alt which are available through transparency, ctrl + alt, ctrl + alt + shift and meta are accessible on the homerow to enable common shortcuts in some window managers. This part is quite workflow dependent, so make sure to adapt it to your own workflow as appropriate. - -### Layer 3: Right symbols - -![Layer 3](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer3.png) - -When holding down the left index, one may access about half of the symbols. The pinkies store `^` and `$` symbols that represent begin and end in vim. The left homerow hosts `*` and `&`, symbols which are related in the way that they represent some form of indirection in programming languages such as rust. On the right hand, most symbols used when navigating the command line are stored together, organized by columns of related symbols. - -### Layer 4: Left symbols - -![Layer 4](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer4.png) - -When holding down the right index, one may access the other symbols. On the left hand, most of the different brackets are laid out. The most frequent ones (round brackets and curly brackets) get a spot on the homerow. The rest of the layer hosts the remaining symbols that are easier to access here than on any other layers. - -### Layer 5: Function keys - -![Layer 5](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer5.png) - -By holding down the left ring finger, one may access the function keys, roughly in a numpad layout. -This means that alt+F4 is easy to type, with F4 being on the homerow. -There is a shortcut for ctrl+alt on the left hand to enable convenient switching between virtual terminals on Linux. - -### Layer 6: Numbers - -![Layer 6](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer6.png) - -The number layer is accessed by holding the right ring finger. It hosts the numbers and some duplicated symbols that are commonly accessed next to numbers, such as mathematical operators. -The number are layed out similarly to a numpad, but with the middle row and the homerow swapped so that the most used numbers: 0, 1, 2 and 3 are all available in homing positions. - -### Layer 7: Always accessible - -![Layer 7](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/sweep/keymaps/default/layer7.png) - -Layer 7 is accessed by holding the right homing thumb down. Because this position is left transparent from every other layer, this layer is always accessible. -It gives access to some essential keys that would typically be accessed on a thumb cluster or pinkies, such as meta, enter, tab, esc and delete. - -As the layer hosting esc, we duplicated some symbols here to allow for fast navigation in vim. For instance, esc, :, w, q can be done in a single roll. - -Where is the keymap.c? ----------------------- - -The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. - -This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. - -How do I edit and update the keymap? ------------------------------------- - -The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. - -To edit it, you may: -* Edit it directly from a text editor. -* Edit it from the QMK Configurator. - -If you decide to use the latter workflow, here are the steps to follow: - -* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/ferris/rev1/LAYOUT_split_3x5_2), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). -* Browse to the location of your keymap (for example, `/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json`) -* Perform any modification to the keymap in the web UI -* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) -* Replace your original keymap with the one you just downloaded - -I want to do more than the JSON format supports! -------------------------------------------------- - -While the `json` format is easy to use, it does lack certain functionality. - -To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. - -First, from the root of your qmk repo, move to your keymap folder - -```bash -cd ./keyboards/splitkb/halcyon/ferris/keymaps/my_personal_keymap -``` - -Next, convert your `keymap.json` to a `keymap.c` - -```bash -qmk json2c -o keymap.c keymap.json -``` - -You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/ferris/readme.md b/keyboards/splitkb/halcyon/ferris/readme.md deleted file mode 100755 index c19a8b16db..0000000000 --- a/keyboards/splitkb/halcyon/ferris/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Halcyon Ferris - -![splitkb/halcyon/ferris](https://i.imgur.com/TlgU8iR.png) - -The Halcyon Ferris rev1 is the first Ferris revision and the fifth keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: - -- Halcyon keyboards come preassembled! You won't need a soldering iron. -- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. -- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. -- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. -- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! -- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. - -* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) -* Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/halcyon/ferris/rev1:default - -The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. - -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: - -* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. -* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/ferris/rev1/config.h b/keyboards/splitkb/halcyon/ferris/rev1/config.h deleted file mode 100755 index b5cd6f95f2..0000000000 --- a/keyboards/splitkb/halcyon/ferris/rev1/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN GP28 // USART TX pin -#define SERIAL_USART_RX_PIN GP29 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - -// VBUS detection -#define USB_VBUS_PIN GP1 - -//// VIK - -// GPIO1 = GP27 -// GPIO2 = GP26 -// CS = GP13 - -#define I2C_DRIVER I2C0 -#define I2C1_SDA_PIN GP16 -#define I2C1_SCL_PIN GP17 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP14 -#define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/ferris/rev1/halconf.h b/keyboards/splitkb/halcyon/ferris/rev1/halconf.h deleted file mode 100644 index a6937ddf9d..0000000000 --- a/keyboards/splitkb/halcyon/ferris/rev1/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//// VIK - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json b/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json deleted file mode 100755 index 4cd0b23f4c..0000000000 --- a/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "keyboard_name": "Halcyon Ferris rev1", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP8", "GP6", "GP5", "GP9", "GP4"], - "rows": ["GP10", "GP25", "GP7", "GP11"] - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"flags": 2, "x": 71, "y": 15}, - {"flags": 2, "x": 51, "y": 8}, - {"flags": 2, "x": 10, "y": 13}, - {"flags": 2, "x": 10, "y": 42}, - {"flags": 2, "x": 41, "y": 45}, - {"flags": 2, "x": 76, "y": 50}, - {"flags": 4, "matrix": [0, 4], "x": 0, "y": 15}, - {"flags": 4, "matrix": [0, 3], "x": 20, "y": 5}, - {"flags": 4, "matrix": [0, 2], "x": 41, "y": 0}, - {"flags": 4, "matrix": [0, 1], "x": 61, "y": 4}, - {"flags": 4, "matrix": [0, 0], "x": 81, "y": 7}, - {"flags": 4, "matrix": [1, 4], "x": 0, "y": 31}, - {"flags": 4, "matrix": [1, 3], "x": 20, "y": 21}, - {"flags": 4, "matrix": [1, 2], "x": 41, "y": 16}, - {"flags": 4, "matrix": [1, 1], "x": 61, "y": 20}, - {"flags": 4, "matrix": [1, 0], "x": 81, "y": 23}, - {"flags": 4, "matrix": [2, 4], "x": 0, "y": 47}, - {"flags": 4, "matrix": [2, 3], "x": 20, "y": 37}, - {"flags": 4, "matrix": [2, 2], "x": 41, "y": 32}, - {"flags": 4, "matrix": [2, 1], "x": 61, "y": 36}, - {"flags": 4, "matrix": [2, 0], "x": 81, "y": 39}, - {"flags": 4, "matrix": [3, 1], "x": 71, "y": 60}, - {"flags": 4, "matrix": [3, 0], "x": 92, "y": 64}, - {"flags": 2, "x": 150, "y": 15}, - {"flags": 2, "x": 190, "y": 8}, - {"flags": 2, "x": 210, "y": 13}, - {"flags": 2, "x": 220, "y": 42}, - {"flags": 2, "x": 183, "y": 45}, - {"flags": 2, "x": 155, "y": 50}, - {"flags": 4, "matrix": [4, 0], "x": 143, "y": 7}, - {"flags": 4, "matrix": [4, 1], "x": 163, "y": 4}, - {"flags": 4, "matrix": [4, 2], "x": 183, "y": 0}, - {"flags": 4, "matrix": [4, 3], "x": 204, "y": 5}, - {"flags": 4, "matrix": [4, 4], "x": 224, "y": 15}, - {"flags": 4, "matrix": [5, 0], "x": 143, "y": 23}, - {"flags": 4, "matrix": [5, 1], "x": 163, "y": 20}, - {"flags": 4, "matrix": [5, 2], "x": 183, "y": 16}, - {"flags": 4, "matrix": [5, 3], "x": 204, "y": 21}, - {"flags": 4, "matrix": [5, 4], "x": 224, "y": 31}, - {"flags": 4, "matrix": [6, 0], "x": 143, "y": 39}, - {"flags": 4, "matrix": [6, 1], "x": 163, "y": 36}, - {"flags": 4, "matrix": [6, 2], "x": 183, "y": 32}, - {"flags": 4, "matrix": [6, 3], "x": 204, "y": 37}, - {"flags": 4, "matrix": [6, 4], "x": 224, "y": 47}, - {"flags": 4, "matrix": [7, 0], "x": 132, "y": 64}, - {"flags": 4, "matrix": [7, 1], "x": 153, "y": 60} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [23, 23] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP20" - }, - "matrix_pins": { - "right": { - "cols": ["GP8", "GP25", "GP7", "GP4", "GP9"], - "rows": ["GP6", "GP5", "GP10", "GP11"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "pid": "0xE050" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP3" - } -} diff --git a/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h b/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h deleted file mode 100644 index 126697a4a0..0000000000 --- a/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -//// VIK - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/kyria/info.json b/keyboards/splitkb/halcyon/kyria/info.json deleted file mode 100755 index 8e49bb12f3..0000000000 --- a/keyboards/splitkb/halcyon/kyria/info.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "maintainer": "splitkb.com", - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x6_5" - }, - "layouts": { - "LAYOUT_split_3x6_5": { - "layout": [ - {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, - {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, - {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, - {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, - {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, - {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, - {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, - {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, - {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, - {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, - {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, - {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, - {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, - {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, - {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, - {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, - {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, - {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, - {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, - {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, - {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, - {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, - {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, - {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, - {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, - {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, - {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, - {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, - {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, - {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, - {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, - {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, - {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, - {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, - {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, - {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, - {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, - {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, - {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, - {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, - {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, - {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, - {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, - {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, - {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, - {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, - {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25} - ] - } - } -} diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c deleted file mode 100755 index 78fd8d4fab..0000000000 --- a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY = 0, - _DVORAK, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST, -}; - - -// Aliases for readability -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK_DH) -#define DVORAK DF(_DVORAK) - -#define SYM MO(_SYM) -#define NAV MO(_NAV) -#define FKEYS MO(_FUNCTION) -#define ADJUST MO(_ADJUST) - -#define CTL_ESC MT(MOD_LCTL, KC_ESC) -#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) -#define CTL_MINS MT(MOD_RCTL, KC_MINUS) -#define ALT_ENT MT(MOD_LALT, KC_ENT) - -// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. -// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and -// produces the key `tap` when tapped (i.e. pressed and released). - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Base Layer: QWERTY - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_QWERTY] = LAYOUT( - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, - CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Base Layer: Dvorak - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_DVORAK] = LAYOUT( - KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, - CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, - KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Base Layer: Colemak DH - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_COLEMAK_DH] = LAYOUT( - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, - CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP - ), - -/* - * Nav Layer: Media, navigation - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_NAV] = LAYOUT( - _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, - _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, - _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Sym Layer: Numbers and symbols - * - * ,-------------------------------------------. ,-------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_SYM] = LAYOUT( - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , - KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, - KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Function Layer: Function keys - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | F9 | F10 | F11 | F12 | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_FUNCTION] = LAYOUT( - _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -/* - * Adjust Layer: Default layer settings, RGB - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | |QWERTY| | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_ADJUST] = LAYOUT( - _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, - _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ - ), - -// /* -// * Layer template -// * -// * ,-------------------------------------------. ,-------------------------------------------. -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' -// * | | | | | | | | | | | | -// * | | | | | | | | | | | | -// * `----------------------------------' `----------------------------------' -// */ -// [_LAYERINDEX] = LAYOUT( -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -// ), -// -}; \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md deleted file mode 100755 index e56bbbb773..0000000000 --- a/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md +++ /dev/null @@ -1,242 +0,0 @@ -# Halcyon Kyria's Default Keymap - -![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) - - -The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. - -The five different layers are the following: -1. Base layer (QWERTY, Colemak-DH or Dvorak) -2. Navigation layer -3. Symbols/Numbers layer -4. Function layer -5. Adjust layer - -## Base layer(s) -``` -Base Layer: - - -,-------------------------------------------. ,-------------------------------------------. -| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` -Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). - -For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. - -``` -Base Layer: QWERTY - -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. - -![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) - -
-After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. - -The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. - -We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? - -All of this leaves us with three blank keys. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | -`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' - | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. - -Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. - - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -
- -## Navigation layer - -``` -Nav Layer: Media, navigation - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. - -Useful mnemonics: -- “GACS” to remember the order of the modifiers on the left-hand home row -- Scroll Lock is on the same key as Caps Lock because they're both locks -- Delete is on the same key as Backspace because they both erase characters -- Home is the leftmost position on the current line so it is above ←. Same logic applies for End. -- Media Previous = ⏮, Media Next = ⏭ -- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. - -## Sym layer -``` -Sym Layer: Numbers, symbols - -,-------------------------------------------. ,-------------------------------------------. -| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. - -The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. - -The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. - -Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. - -In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. - -## Function layer -``` -Function Layer: Function keys - -,-------------------------------------------. ,-------------------------------------------. -| | F9 | F10 | F11 | F12 | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. - -The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. - -Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. - - -## Adjust layer -``` -Adjust Layer: Default layer settings, RGB - -,-------------------------------------------. ,-------------------------------------------. -| | | |QWERTY| | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -Default layer settings on the left and various RGB underglow controls on the right. - -The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. - -NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: -```c -enum layers { - _DVORAK = 0, - _QWERTY, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST -}; -``` -or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. - -## Hardware Features - -### Rotary Encoder -The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. - -## Going further… - -This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. - -Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/keyboards/splitkb/halcyon/kyria/readme.md b/keyboards/splitkb/halcyon/kyria/readme.md deleted file mode 100755 index 62689d35b0..0000000000 --- a/keyboards/splitkb/halcyon/kyria/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Halcyon Kyria - -![splitkb/halcyon/kyria](https://i.imgur.com/n7WuUs9.jpg) - -The Halcyon Kyria rev4 is the fourth Kyria revision and the first keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: - -- Halcyon keyboards come preassembled! You won't need a soldering iron. -- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. -- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. -- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. -- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! -- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. - -* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) -* Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/halcyon/kyria/rev4:default - -The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. - -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: - -* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. -* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h deleted file mode 100755 index c09744f923..0000000000 --- a/keyboards/splitkb/halcyon/kyria/rev4/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN GP28 // USART TX pin -#define SERIAL_USART_RX_PIN GP29 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - -// VBUS detection -#define USB_VBUS_PIN GP1 - -//// VIK - -// GPIO1 = GP27 -// GPIO2 = GP26 -// CS = GP13 - -#define I2C_DRIVER I2C0 -#define I2C1_SDA_PIN GP16 -#define I2C1_SCL_PIN GP17 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP14 -#define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h deleted file mode 100644 index 6d2db1bbd2..0000000000 --- a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//// VIK - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json deleted file mode 100755 index 7f699f2584..0000000000 --- a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "keyboard_name": "Halcyon Kyria rev4", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} - ] - }, - "features": { - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP19", "GP20", "GP25", "GP4", "GP9", "GP10", "GP5"], - "rows": ["GP8", "GP11", "GP7", "GP6"] - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"x": 75, "y": 2, "flags": 2}, - {"x": 50, "y": 1, "flags": 2}, - {"x": 14, "y": 4, "flags": 2}, - {"x": 25, "y": 45, "flags": 2}, - {"x": 58, "y": 49, "flags": 2}, - {"x": 94, "y": 53, "flags": 2}, - {"matrix": [3, 0], "x": 94, "y": 64, "flags": 4}, - {"matrix": [3, 5], "x": 79, "y": 60, "flags": 4}, - {"matrix": [3, 1], "x": 65, "y": 53, "flags": 4}, - {"matrix": [3, 2], "x": 51, "y": 49, "flags": 4}, - {"matrix": [3, 4], "x": 36, "y": 49, "flags": 4}, - {"matrix": [2, 0], "x": 101, "y": 49, "flags": 4}, - {"matrix": [3, 3], "x": 87, "y": 45, "flags": 4}, - {"matrix": [2, 1], "x": 72, "y": 38, "flags": 4}, - {"matrix": [2, 2], "x": 58, "y": 34, "flags": 4}, - {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, - {"matrix": [2, 4], "x": 29, "y": 34, "flags": 4}, - {"matrix": [2, 5], "x": 14, "y": 41, "flags": 4}, - {"matrix": [2, 6], "x": 0, "y": 41, "flags": 4}, - {"matrix": [1, 1], "x": 72, "y": 23, "flags": 4}, - {"matrix": [1, 2], "x": 58, "y": 19, "flags": 4}, - {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 29, "y": 19, "flags": 4}, - {"matrix": [1, 5], "x": 14, "y": 26, "flags": 4}, - {"matrix": [1, 6], "x": 0, "y": 26, "flags": 4}, - {"matrix": [0, 1], "x": 72, "y": 8, "flags": 4}, - {"matrix": [0, 2], "x": 58, "y": 4, "flags": 4}, - {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 29, "y": 4, "flags": 4}, - {"matrix": [0, 5], "x": 14, "y": 11, "flags": 4}, - {"matrix": [0, 6], "x": 0, "y": 11, "flags": 4}, - {"x": 149, "y": 2, "flags": 2}, - {"x": 174, "y": 1, "flags": 2}, - {"x": 210, "y": 4, "flags": 2}, - {"x": 199, "y": 45, "flags": 2}, - {"x": 166, "y": 49, "flags": 2}, - {"x": 130, "y": 53, "flags": 2}, - {"matrix": [7, 0], "x": 130, "y": 64, "flags": 4}, - {"matrix": [7, 5], "x": 145, "y": 60, "flags": 4}, - {"matrix": [7, 1], "x": 159, "y": 53, "flags": 4}, - {"matrix": [7, 2], "x": 173, "y": 49, "flags": 4}, - {"matrix": [7, 4], "x": 188, "y": 49, "flags": 4}, - {"matrix": [6, 0], "x": 123, "y": 49, "flags": 4}, - {"matrix": [7, 3], "x": 137, "y": 45, "flags": 4}, - {"matrix": [6, 1], "x": 152, "y": 38, "flags": 4}, - {"matrix": [6, 2], "x": 166, "y": 34, "flags": 4}, - {"matrix": [6, 3], "x": 181, "y": 30, "flags": 4}, - {"matrix": [6, 4], "x": 195, "y": 34, "flags": 4}, - {"matrix": [6, 5], "x": 210, "y": 41, "flags": 4}, - {"matrix": [6, 6], "x": 224, "y": 41, "flags": 4}, - {"matrix": [5, 1], "x": 152, "y": 23, "flags": 4}, - {"matrix": [5, 2], "x": 166, "y": 19, "flags": 4}, - {"matrix": [5, 3], "x": 181, "y": 15, "flags": 4}, - {"matrix": [5, 4], "x": 195, "y": 19, "flags": 4}, - {"matrix": [5, 5], "x": 210, "y": 26, "flags": 4}, - {"matrix": [5, 6], "x": 224, "y": 26, "flags": 4}, - {"matrix": [4, 1], "x": 152, "y": 8, "flags": 4}, - {"matrix": [4, 2], "x": 166, "y": 4, "flags": 4}, - {"matrix": [4, 3], "x": 181, "y": 0, "flags": 4}, - {"matrix": [4, 4], "x": 195, "y": 4, "flags": 4}, - {"matrix": [4, 5], "x": 210, "y": 11, "flags": 4}, - {"matrix": [4, 6], "x": 224, "y": 11, "flags": 4} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [31, 31] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP24" - }, - "matrix_pins": { - "right": { - "cols": ["GP5", "GP10", "GP9", "GP4", "GP25", "GP20", "GP19"], - "rows": ["GP8", "GP11", "GP7", "GP6"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "pid": "0x7FCE" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP3" - } -} diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h deleted file mode 100644 index 6792b923f1..0000000000 --- a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -//// VIK - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/rev4.c b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c deleted file mode 100644 index 27671b9d7c..0000000000 --- a/keyboards/splitkb/halcyon/kyria/rev4/rev4.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2024 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - // Page up/Page down - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} -#endif diff --git a/keyboards/splitkb/halcyon/lily58/info.json b/keyboards/splitkb/halcyon/lily58/info.json deleted file mode 100755 index 178527f838..0000000000 --- a/keyboards/splitkb/halcyon/lily58/info.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "manufacturer": "splitkb.com", - "maintainer": "splitkb.com", - "url": "https://splitkb.com", - "usb": { - "device_version": "1.0.0", - "vid": "0x8D1D" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "L01", "matrix": [0, 0], "x": 0, "y": 0.5}, - {"label": "L02", "matrix": [0, 1], "x": 1, "y": 0.375}, - {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0.125}, - {"label": "L04", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L05", "matrix": [0, 4], "x": 4, "y": 0.125}, - {"label": "L06", "matrix": [0, 5], "x": 5, "y": 0.25}, - {"label": "R06", "matrix": [5, 5], "x": 10.5, "y": 0.25}, - {"label": "R05", "matrix": [5, 4], "x": 11.5, "y": 0.125}, - {"label": "R04", "matrix": [5, 3], "x": 12.5, "y": 0}, - {"label": "R03", "matrix": [5, 2], "x": 13.5, "y": 0.125}, - {"label": "R02", "matrix": [5, 1], "x": 14.5, "y": 0.375}, - {"label": "R01", "matrix": [5, 0], "x": 15.5, "y": 0.5}, - {"label": "L07", "matrix": [1, 0], "x": 0, "y": 1.5}, - {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1.375}, - {"label": "L09", "matrix": [1, 2], "x": 2, "y": 1.125}, - {"label": "L10", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L11", "matrix": [1, 4], "x": 4, "y": 1.125}, - {"label": "L12", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "R12", "matrix": [6, 5], "x": 10.5, "y": 1.25}, - {"label": "R11", "matrix": [6, 4], "x": 11.5, "y": 1.125}, - {"label": "R10", "matrix": [6, 3], "x": 12.5, "y": 1}, - {"label": "R09", "matrix": [6, 2], "x": 13.5, "y": 1.125}, - {"label": "R08", "matrix": [6, 1], "x": 14.5, "y": 1.375}, - {"label": "R07", "matrix": [6, 0], "x": 15.5, "y": 1.5}, - {"label": "L13", "matrix": [2, 0], "x": 0, "y": 2.5}, - {"label": "L14", "matrix": [2, 1], "x": 1, "y": 2.375}, - {"label": "L15", "matrix": [2, 2], "x": 2, "y": 2.125}, - {"label": "L16", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L17", "matrix": [2, 4], "x": 4, "y": 2.125}, - {"label": "L18", "matrix": [2, 5], "x": 5, "y": 2.25}, - {"label": "R18", "matrix": [7, 5], "x": 10.5, "y": 2.25}, - {"label": "R17", "matrix": [7, 4], "x": 11.5, "y": 2.125}, - {"label": "R16", "matrix": [7, 3], "x": 12.5, "y": 2}, - {"label": "R15", "matrix": [7, 2], "x": 13.5, "y": 2.125}, - {"label": "R14", "matrix": [7, 1], "x": 14.5, "y": 2.375}, - {"label": "R13", "matrix": [7, 0], "x": 15.5, "y": 2.5}, - {"label": "L20", "matrix": [3, 0], "x": 0, "y": 3.5}, - {"label": "L21", "matrix": [3, 1], "x": 1, "y": 3.375}, - {"label": "L22", "matrix": [3, 2], "x": 2, "y": 3.125}, - {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "L24", "matrix": [3, 4], "x": 4, "y": 3.125}, - {"label": "L25", "matrix": [3, 5], "x": 5, "y": 3.25}, - {"label": "L19", "matrix": [4, 1], "x": 6, "y": 2.75}, - {"label": "R19", "matrix": [9, 1], "x": 9.5, "y": 2.75}, - {"label": "R25", "matrix": [8, 5], "x": 10.5, "y": 3.25}, - {"label": "R24", "matrix": [8, 4], "x": 11.5, "y": 3.125}, - {"label": "R23", "matrix": [8, 3], "x": 12.5, "y": 3}, - {"label": "R22", "matrix": [8, 2], "x": 13.5, "y": 3.125}, - {"label": "R21", "matrix": [8, 1], "x": 14.5, "y": 3.375}, - {"label": "R20", "matrix": [8, 0], "x": 15.5, "y": 3.5}, - {"label": "L26", "matrix": [4, 2], "x": 2.5, "y": 4.15}, - {"label": "L27", "matrix": [4, 3], "x": 3.5, "y": 4.15}, - {"label": "L28", "matrix": [4, 4], "x": 4.5, "y": 4.25}, - {"label": "L29", "matrix": [4, 5], "x": 6, "y": 4.25}, - {"label": "R29", "matrix": [9, 5], "x": 9.5, "y": 4.25}, - {"label": "R28", "matrix": [9, 4], "x": 11, "y": 4.25}, - {"label": "R27", "matrix": [9, 3], "x": 12, "y": 4.15}, - {"label": "R26", "matrix": [9, 2], "x": 13, "y": 4.15} - ] - } - } -} diff --git a/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json deleted file mode 100644 index 05c4d89bcc..0000000000 --- a/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "keyboard": "splitkb/halcyon/lily58/rev2", - "keymap": "default", - "version": 1, - "layout": "LAYOUT", - "layers": [ - [ - "KC_ESC" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_GRV" , - "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_MINS", - "KC_LCTL", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "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_LBRC", "KC_RBRC", "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", - "KC_LALT", "KC_LGUI", "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_BSPC", "KC_RGUI" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "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_GRV" , "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_TILD", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "XXXXXXX", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", - "_______", "_______", "_______", "_______", "_______", "MO(3)" , "_______", "_______" - ], - [ - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "_______", - "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "XXXXXXX", "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "XXXXXXX", - "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "_______", "_______", "KC_PLUS", "KC_MINS", "KC_EQL" , "KC_LBRC", "KC_RBRC", "KC_BSLS", - "_______", "_______", "MO(3)" , "_______", "_______", "_______", "_______", "_______" - ], - [ - "QK_BOOT", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" - ] - ], - "config": { - "features": { - "encoder_map": true - } - }, - "encoders": [ - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], - [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] - ] -} diff --git a/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md b/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md deleted file mode 100644 index d186641d1c..0000000000 --- a/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md +++ /dev/null @@ -1,88 +0,0 @@ -# Halcyon Lily58's Default Keymap -_This keymap is a copy of the [Lily58 default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/default), with slight modifications._ - -A simple default keymap for the Halcyon Lily58 -============================================= - -Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. - -What do all these layers do? ----------------------------- - -### Layer 0: Base layer - -![Layer 0](https://i.imgur.com/sq8Rql7h.png) - -This is where your basic letters live. - -The homing thumb fingers are used to access the different layers. - -* The homing left thumb finger gives access to the Symbols (or lower) layer -* The homing right thumb finger gives access to the Navigation (or raise) layer -* Pressing both homing thumb fingers gives access to the Adjust layer - -### Layer 1: Lower - -![Layer 1](https://i.imgur.com/baSE2OJh.png) - -The Lower layer gives access to the F keys on the second row, and shifted number keys on the home row. It also provides some shifted symbol keys. - -### Layer 2: Raise - -![Layer 2](https://i.imgur.com/CRnDa6Nh.png) - -The Raise layer gives access the arrow keys on the right hand, in addition to some unshifted symbols. The left hand provides an alternative set of F keys, while the second row provides an alternative set of number keys. - -### Layer 3: Adjust - -![Layer 3](https://i.imgur.com/QbCiTcyh.png) - -The Adjust layer exposes RGB adjustment keys on the right hand. - -Where is the keymap.c? ----------------------- - -The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. - -This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. - -How do I edit and update the keymap? ------------------------------------- - -The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. - -To edit it, you may: -* Edit it directly from a text editor. -* Edit it from the QMK Configurator. - -If you decide to use the latter workflow, here are the steps to follow: - -* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/lily58/rev2/LAYOUT), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). -* Browse to the location of your keymap (for example, `/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json`) -* Perform any modification to the keymap in the web UI -* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) -* Replace your original keymap with the one you just downloaded - -_**Note:** At the time of writing (the 24th of October 2022), not every feature used in the default keymap is supported by the QMK Configurator. You cannot yet upload the default `keymap.json` due to a file format mismatch - use the "Load Default" button to load the default keymap instead. Additionally, custom configuration options are still being worked on: if your keymap depends on them, please compile your firmware offline for now._ - -I want to do more than the JSON format supports! -------------------------------------------------- - -While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. - -To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. - -First, from the root of your qmk repo, move to your keymap folder - -```bash -cd ./keyboards/splitkb/halcyon/lily58/keymaps/my_personal_keymap -``` - -Next, convert your `keymap.json` to a `keymap.c` - -```bash -qmk json2c -o keymap.c keymap.json -``` - -You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/lily58/readme.md b/keyboards/splitkb/halcyon/lily58/readme.md deleted file mode 100755 index ec200fda15..0000000000 --- a/keyboards/splitkb/halcyon/lily58/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Halcyon Lily58 - -![splitkb/halcyon/lily58](https://i.imgur.com/q7VIrbz.png) - -The Halcyon Lily58 rev2 is the second Lily58 revision and the fourth keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: - -- Halcyon keyboards come preassembled! You won't need a soldering iron. -- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. -- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. -- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. -- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! -- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. - -* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) -* Hardware Availability: [splitkb.com](https://splitkb.com). - -Make example for this keyboard (after setting up your build environment): - - make splitkb/halcyon/lily58/rev2:default - -The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. - -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: - -* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. -* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/lily58/rev2/config.h b/keyboards/splitkb/halcyon/lily58/rev2/config.h deleted file mode 100755 index b5cd6f95f2..0000000000 --- a/keyboards/splitkb/halcyon/lily58/rev2/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Make it easier to enter the bootloader -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U - -// UART1, communication between the two halves -#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN GP28 // USART TX pin -#define SERIAL_USART_RX_PIN GP29 // USART RX pin -#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver - -// VBUS detection -#define USB_VBUS_PIN GP1 - -//// VIK - -// GPIO1 = GP27 -// GPIO2 = GP26 -// CS = GP13 - -#define I2C_DRIVER I2C0 -#define I2C1_SDA_PIN GP16 -#define I2C1_SCL_PIN GP17 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN GP14 -#define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/lily58/rev2/halconf.h b/keyboards/splitkb/halcyon/lily58/rev2/halconf.h deleted file mode 100644 index a6937ddf9d..0000000000 --- a/keyboards/splitkb/halcyon/lily58/rev2/halconf.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//// VIK - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json b/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json deleted file mode 100755 index 76bb538388..0000000000 --- a/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json +++ /dev/null @@ -1,170 +0,0 @@ -{ - "keyboard_name": "Halcyon Lily58 rev2", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} - ] - }, - "features": { - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP8", "GP11", "GP7", "GP6", "GP5", "GP10"], - "rows": ["GP19", "GP20", "GP25", "GP4", "GP9"] - }, - "processor": "RP2040", - "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 - }, - "driver": "ws2812", - "layout": [ - {"x": 51, "y": 13, "flags": 2}, - {"x": 22, "y": 18, "flags": 2}, - {"x": 22, "y": 53, "flags": 2}, - {"x": 58, "y": 60, "flags": 2}, - {"x": 87, "y": 56, "flags": 2}, - {"matrix": [0, 0], "x": 0, "y": 8, "flags": 4}, - {"matrix": [0, 1], "x": 14, "y": 6, "flags": 4}, - {"matrix": [0, 2], "x": 29, "y": 2, "flags": 4}, - {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 58, "y": 2, "flags": 4}, - {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 23, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, - {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 58, "y": 17, "flags": 4}, - {"matrix": [1, 5], "x": 72, "y": 19, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, - {"matrix": [2, 1], "x": 14, "y": 36, "flags": 4}, - {"matrix": [2, 2], "x": 29, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, - {"matrix": [2, 4], "x": 58, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 34, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 53, "flags": 4}, - {"matrix": [3, 1], "x": 14, "y": 51, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 47, "flags": 4}, - {"matrix": [3, 3], "x": 43, "y": 45, "flags": 4}, - {"matrix": [3, 4], "x": 58, "y": 47, "flags": 4}, - {"matrix": [3, 5], "x": 72, "y": 49, "flags": 4}, - {"matrix": [4, 1], "x": 87, "y": 41, "flags": 4}, - {"matrix": [4, 2], "x": 36, "y": 62, "flags": 4}, - {"matrix": [4, 3], "x": 51, "y": 62, "flags": 4}, - {"matrix": [4, 4], "x": 65, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 87, "y": 64, "flags": 4}, - {"x": 173, "y": 13, "flags": 2}, - {"x": 202, "y": 18, "flags": 2}, - {"x": 202, "y": 53, "flags": 2}, - {"x": 166, "y": 60, "flags": 2}, - {"x": 137, "y": 56, "flags": 2}, - {"matrix": [5, 5], "x": 152, "y": 4, "flags": 4}, - {"matrix": [5, 4], "x": 166, "y": 2, "flags": 4}, - {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, - {"matrix": [5, 2], "x": 195, "y": 2, "flags": 4}, - {"matrix": [5, 1], "x": 210, "y": 6, "flags": 4}, - {"matrix": [5, 0], "x": 224, "y": 8, "flags": 4}, - {"matrix": [6, 5], "x": 152, "y": 19, "flags": 4}, - {"matrix": [6, 4], "x": 166, "y": 17, "flags": 4}, - {"matrix": [6, 3], "x": 181, "y": 15, "flags": 4}, - {"matrix": [6, 2], "x": 195, "y": 17, "flags": 4}, - {"matrix": [6, 1], "x": 210, "y": 21, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 23, "flags": 4}, - {"matrix": [7, 5], "x": 152, "y": 34, "flags": 4}, - {"matrix": [7, 4], "x": 166, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 181, "y": 30, "flags": 4}, - {"matrix": [7, 2], "x": 195, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 210, "y": 36, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 38, "flags": 4}, - {"matrix": [9, 1], "x": 137, "y": 41, "flags": 4}, - {"matrix": [8, 5], "x": 152, "y": 49, "flags": 4}, - {"matrix": [8, 4], "x": 166, "y": 47, "flags": 4}, - {"matrix": [8, 3], "x": 181, "y": 45, "flags": 4}, - {"matrix": [8, 2], "x": 195, "y": 47, "flags": 4}, - {"matrix": [8, 1], "x": 210, "y": 51, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 53, "flags": 4}, - {"matrix": [9, 5], "x": 137, "y": 64, "flags": 4}, - {"matrix": [9, 4], "x": 159, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 173, "y": 62, "flags": 4}, - {"matrix": [9, 2], "x": 188, "y": 62, "flags": 4} - ], - "max_brightness": 128, - "sleep": true, - "split_count": [34, 34] - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP24" - }, - "matrix_pins": { - "right": { - "cols": ["GP4", "GP9", "GP10", "GP5", "GP6", "GP8"], - "rows": ["GP19", "GP20", "GP25", "GP7", "GP11"] - } - }, - "serial": { - "driver": "vendor" - }, - "transport": { - "sync": { - "matrix_state": true - } - } - }, - "usb": { - "pid": "0xEA1D" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP3" - } -} diff --git a/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h b/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h deleted file mode 100644 index 126697a4a0..0000000000 --- a/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -//// VIK - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/lily58/rev2/rev2.c b/keyboards/splitkb/halcyon/lily58/rev2/rev2.c deleted file mode 100644 index e0a64ae9a4..0000000000 --- a/keyboards/splitkb/halcyon/lily58/rev2/rev2.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2025 splitkb.com (support@splitkb.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - // Page up/Page down - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - return false; -} -#endif diff --git a/keyboards/splitkb/kyria/keymaps/default/keymap.c b/keyboards/splitkb/kyria/keymaps/default/keymap.c index 5512293078..dacbc423b2 100644 --- a/keyboards/splitkb/kyria/keymaps/default/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/default/keymap.c @@ -189,8 +189,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk new file mode 100644 index 0000000000..3a8bfbe089 --- /dev/null +++ b/keyboards/splitkb/kyria/rev1/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/kyria/rev1/base diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk new file mode 100644 index 0000000000..fb808070bf --- /dev/null +++ b/keyboards/splitkb/kyria/rev2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/kyria/rev2/base diff --git a/keyboards/splitkb/kyria/rules.mk b/keyboards/splitkb/kyria/rules.mk new file mode 100644 index 0000000000..1342089f56 --- /dev/null +++ b/keyboards/splitkb/kyria/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/kyria/rev3 diff --git a/keyboards/splitography/keyboard.json b/keyboards/splitography/keyboard.json index 3fd26500cd..947622096c 100644 --- a/keyboards/splitography/keyboard.json +++ b/keyboards/splitography/keyboard.json @@ -9,7 +9,9 @@ "nkro": true, "bootmagic": true, "mousekey": false, - "extrakey": true + "extrakey": true, + "console": false, + "command": false }, "qmk": { "locking": { diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c index 5d26eb9682..9c6c7d6b26 100644 --- a/keyboards/splitography/keymaps/default/keymap.c +++ b/keyboards/splitography/keymaps/default/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } } diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c index a3cb183758..787f448ffb 100644 --- a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c +++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } } diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c index 0edec7043c..992cfd0abb 100644 --- a/keyboards/splitography/keymaps/dvorak/keymap.c +++ b/keyboards/splitography/keymaps/dvorak/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } } diff --git a/keyboards/splitty/rules.mk b/keyboards/splitty/rules.mk new file mode 100644 index 0000000000..68b3198bfb --- /dev/null +++ b/keyboards/splitty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitty/rev1 diff --git a/keyboards/sporewoh/banime40/keyboard.json b/keyboards/sporewoh/banime40/keyboard.json index 7d0bb54db1..dfe71070a1 100644 --- a/keyboards/sporewoh/banime40/keyboard.json +++ b/keyboards/sporewoh/banime40/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -22,7 +24,8 @@ "dynamic_keymap": { "layer_count": 10 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_4x10"], "layouts": { "LAYOUT_ortho_4x10": { diff --git a/keyboards/star75/keyboard.json b/keyboards/star75/keyboard.json index 90f478ff60..e4ea684a0f 100644 --- a/keyboards/star75/keyboard.json +++ b/keyboards/star75/keyboard.json @@ -34,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/stardustn0/keyboard.json b/keyboards/stardustn0/keyboard.json deleted file mode 100644 index a13d0169a6..0000000000 --- a/keyboards/stardustn0/keyboard.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "manufacturer": "Stars", - "keyboard_name": "StarDustN0", - "maintainer": "navidyt", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP8","GP11","GP19","GP18","GP17","GP16"], - "rows": ["GP3","GP9","GP13","GP14","GP15"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0x4E54" - }, - - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "cols": ["GP15","GP14","GP13","GP12","GP20","GP26"], - "rows": ["GP28","GP22","GP18","GP17","GP16"] - } - }, - "usb_detect": { - "timeout": 2500 - }, - "serial": { - "driver":"vendor", - "pin":"GP1" - }, - "handedness":{ - "pin":"GP2" - }, - "transport": { - "watchdog": true - } - }, - "indicators":{ - "caps_lock" : "GP25" - }, - "layouts": { - "LAYOUT_split_4x6_4": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.9}, - {"matrix": [0, 1], "x": 1, "y": 0.9}, - {"matrix": [0, 2], "x": 2, "y": 0.2}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.2}, - {"matrix": [0, 5], "x": 5, "y": 0.4}, - - {"matrix": [5, 0], "x": 11, "y": 0.4}, - {"matrix": [5, 1], "x": 12, "y": 0.2}, - {"matrix": [5, 2], "x": 13, "y": 0}, - {"matrix": [5, 3], "x": 14, "y": 0.2}, - {"matrix": [5, 4], "x": 15, "y": 0.9}, - {"matrix": [5, 5], "x": 16, "y": 0.9}, - - - {"matrix": [1, 0], "x": 0, "y": 1.9}, - {"matrix": [1, 1], "x": 1, "y": 1.9}, - {"matrix": [1, 2], "x": 2, "y": 1.2}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.2}, - {"matrix": [1, 5], "x": 5, "y": 1.4}, - - {"matrix": [6, 0], "x": 11, "y": 1.4}, - {"matrix": [6, 1], "x": 12, "y": 1.2}, - {"matrix": [6, 2], "x": 13, "y": 1}, - {"matrix": [6, 3], "x": 14, "y": 1.2}, - {"matrix": [6, 4], "x": 15, "y": 1.9}, - {"matrix": [6, 5], "x": 16, "y": 1.9}, - - - {"matrix": [2, 0], "x": 0, "y": 2.9}, - {"matrix": [2, 1], "x": 1, "y": 2.9}, - {"matrix": [2, 2], "x": 2, "y": 2.2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.2}, - {"matrix": [2, 5], "x": 5, "y": 2.4}, - - {"matrix": [7, 0], "x": 11, "y": 2.4}, - {"matrix": [7, 1], "x": 12, "y": 2.2}, - {"matrix": [7, 2], "x": 13, "y": 2}, - {"matrix": [7, 3], "x": 14, "y": 2.2}, - {"matrix": [7, 4], "x": 15, "y": 2.9}, - {"matrix": [7, 5], "x": 16, "y": 2.9}, - - - {"matrix": [3, 0], "x": 0, "y": 3.9}, - {"matrix": [3, 1], "x": 1, "y": 3.9}, - {"matrix": [3, 2], "x": 2, "y": 3.2}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.2}, - {"matrix": [3, 5], "x": 5, "y": 3.4}, - - {"matrix": [8, 0], "x": 11, "y": 3.4}, - {"matrix": [8, 1], "x": 12, "y": 3.2}, - {"matrix": [8, 2], "x": 13, "y": 3}, - {"matrix": [8, 3], "x": 14, "y": 3.2}, - {"matrix": [8, 4], "x": 15, "y": 3.9}, - {"matrix": [8, 5], "x": 16, "y": 3.9}, - - - {"matrix": [4, 2], "x": 4, "y": 3.5}, - {"matrix": [4, 3], "x": 5, "y": 3.5}, - {"matrix": [4, 4], "x": 6, "y": 3.5}, - {"matrix": [4, 5], "x": 7, "y": 3.5}, - - {"matrix": [9, 0], "x": 8, "y": 3.5}, - {"matrix": [9, 1], "x": 9, "y": 3.5}, - {"matrix": [9, 2], "x": 10, "y": 3.5}, - {"matrix": [9, 3], "x": 11, "y": 3.5} - ] - } - } -} diff --git a/keyboards/stardustn0/keymaps/default/keymap.c b/keyboards/stardustn0/keymaps/default/keymap.c deleted file mode 100644 index 21547811e8..0000000000 --- a/keyboards/stardustn0/keymaps/default/keymap.c +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - -// ┌─────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬─────┐ -// │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ BSPC│ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │ TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ BSLS│ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │LSFT │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │QUOT│ ENT │ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │LCTL │ Z │ X │ C │ V │ B │ │ N │ M │COMM│DOT │SLSH│RSFT │ -// └─────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴─────┘ -// ┌─────┬─────┬─────┬────┐ ┌─────┬─────┬─────┬─────┐ -// │ LGUI│MO(1)│ SPC │LALT│ │LEFT │DOWN │ UP │RIGHT│ -// └─────┴─────┴─────┴────┘ └─────┴─────┴─────┴─────┘ -// -// -// ┌─────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬─────┐ -// │ GRV │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10│ DEL │ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │CAPS │NO │NO │NO │NO │NO │ │MINS│ EQL│LBRC│RBRC│ F11│ F12 │ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │LSFT │NO │NO │NO │NO │NO │ │ NO │ NO │ NO │ NO │SCLN│ NO │ -// ├─────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼─────┤ -// │LCTL │NO │NO │NO │NO │NO │ │ NO │ NO │ NO │ NO │ NO │RSFT │ -// └─────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴─────┘ -// ┌────┬────┬────┬────┐ ┌────┬────┬────┬────┐ -// │ NO │ NO │ NO │LALT│ │HOME│PGDN│PGUP│ END│ -// └────┴────┴────┴────┘ └────┴────┴────┴────┘ - - - [0] = LAYOUT_split_4x6_4( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, MO(1), KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - [1] = LAYOUT_split_4x6_4( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_F11, KC_F12, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCLN, KC_NO, - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, - KC_NO, KC_TRNS, KC_NO, KC_LALT, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ) -}; diff --git a/keyboards/stardustn0/readme.md b/keyboards/stardustn0/readme.md deleted file mode 100644 index 5a658e9b48..0000000000 --- a/keyboards/stardustn0/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# stardustn0 - -![stardustn0](https://i.imgur.com/9SWMHH4.jpeg) - -This project is a custom-built split ergonomic mechanical keyboard, using two Raspberry Pi Pico microcontrollers. - -* Keyboard Maintainer: [navidyt](https://github.com/navidyt) -* Hardware Supported: Raspberry Pi Pico, MX switches, Gateron hot-swap sockets, 1N4148 diodes, generic USB-C breakout board - -Make example for this keyboard (after setting up your build environment): - - make stardustn0:default - -Flashing example for this keyboard: - - make stardustn0:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the reset button on the pico while connecting USB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/steelseries/prime_plus/board.h b/keyboards/steelseries/prime_plus/board.h deleted file mode 100644 index edb9e1072c..0000000000 --- a/keyboards/steelseries/prime_plus/board.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 12000000 diff --git a/keyboards/steelseries/prime_plus/config.h b/keyboards/steelseries/prime_plus/config.h deleted file mode 100644 index db62111a18..0000000000 --- a/keyboards/steelseries/prime_plus/config.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define POINTING_DEVICE_CS_PIN A4 -#define POINTING_DEVICE_MOTION_PIN B0 -#define POINTING_DEVICE_TASK_THROTTLE_MS 1 - -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A5 -#define SPI_MOSI_PIN A7 -#define SPI_MISO_PIN A6 - -#define I2C1_SCL_PIN B8 -#define I2C1_SDA_PIN B9 - -#define OLED_RESET B7 -#define OLED_PWR B2 - -#define RGB_PWM_DRIVER PWMD1 -#define RGB_BLUE_PIN A10 -#define RGB_BLUE_PWM_CHANNEL 3 -#define RGB_GREEN_PIN A8 -#define RGB_GREEN_PWM_CHANNEL 1 -#define RGB_RED_PIN A9 -#define RGB_RED_PWM_CHANNEL 2 - -#define OPTICAL_SW_PWR A2 - -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.c b/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.c deleted file mode 100644 index b72f4899fe..0000000000 --- a/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2024 QMK -- generated source code only, image retains original copyright -// SPDX-License-Identifier: GPL-2.0-or-later - -#include - -const uint32_t gfx_primeplus_length = 317; - -// clang-format off -const uint8_t gfx_primeplus[317] = { - 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x3D, 0x01, 0x00, 0x00, 0xC2, 0xFE, 0xFF, - 0xFF, 0x60, 0x00, 0x18, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x02, 0xFD, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x0D, 0x01, 0x00, - 0x0C, 0x00, 0x82, 0x80, 0x24, 0x09, 0x09, 0x00, 0x82, 0x80, 0x24, 0x09, 0x09, 0x00, 0xA4, 0x80, - 0x24, 0x09, 0x38, 0xA6, 0x7A, 0xE7, 0x1D, 0x4E, 0xC2, 0x7C, 0x09, 0xC0, 0xFF, 0x1F, 0x48, 0xA9, - 0x0A, 0x29, 0x24, 0x52, 0x22, 0x55, 0x09, 0xE0, 0xFF, 0x3F, 0x48, 0xA9, 0x0A, 0x29, 0x24, 0x52, - 0x22, 0x55, 0x05, 0xFC, 0x02, 0xFF, 0xAF, 0x49, 0xA9, 0x3A, 0xE9, 0x24, 0xCE, 0x23, 0x55, 0x03, - 0xE0, 0xDE, 0x3B, 0x38, 0xA9, 0x0A, 0x27, 0x24, 0x12, 0x22, 0x55, 0x05, 0xE0, 0xDE, 0x3B, 0x08, - 0xA9, 0x0A, 0x29, 0x24, 0x12, 0xA2, 0x54, 0x09, 0xFC, 0xDE, 0xFB, 0x09, 0x46, 0x79, 0xE9, 0x1D, - 0xCE, 0x43, 0x55, 0x09, 0xE0, 0xDE, 0x3B, 0x09, 0x00, 0x82, 0xE0, 0xDE, 0x3B, 0x09, 0x00, 0x85, - 0xFC, 0xDC, 0xF9, 0x01, 0x00, 0xF0, 0x03, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x82, 0xE0, 0xD9, 0x3C, - 0x02, 0x00, 0x80, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x02, 0x00, 0x82, 0xE0, 0x03, 0x3E, 0x02, 0x00, - 0x84, 0x18, 0x63, 0x04, 0xE1, 0x1F, 0x02, 0x00, 0x89, 0xFC, 0xDF, 0xFF, 0x01, 0x00, 0xD8, 0xDA, - 0x56, 0xFD, 0x1E, 0x02, 0x00, 0x82, 0xE0, 0xDF, 0x3F, 0x02, 0x00, 0x84, 0xD8, 0xDA, 0x56, 0xFD, - 0x1E, 0x02, 0x00, 0x82, 0xE0, 0xDF, 0x3F, 0x02, 0x00, 0x84, 0xD8, 0xDA, 0x56, 0x31, 0x18, 0x02, - 0x00, 0x80, 0xFC, 0x02, 0xFF, 0x86, 0x01, 0x00, 0x18, 0xE3, 0x56, 0xFD, 0x1E, 0x02, 0x00, 0x82, - 0xE0, 0xFF, 0x3F, 0x02, 0x00, 0x84, 0xD8, 0xDB, 0x56, 0xFD, 0x1E, 0x02, 0x00, 0x82, 0xC0, 0xFF, - 0x1F, 0x02, 0x00, 0x84, 0xD8, 0x5B, 0x54, 0xE1, 0x1F, 0x02, 0x00, 0x82, 0x80, 0x24, 0x09, 0x02, - 0x00, 0x80, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x02, 0x00, 0x82, 0x80, 0x24, 0x09, 0x02, 0x00, 0x80, - 0xF0, 0x03, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x82, 0x80, 0x24, 0x09, 0x09, 0x00, -}; -// clang-format on diff --git a/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.h b/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.h deleted file mode 100644 index 16ff19b205..0000000000 --- a/keyboards/steelseries/prime_plus/graphics/primeplus.qgf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 QMK -- generated source code only, image retains original copyright -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -extern const uint32_t gfx_primeplus_length; -extern const uint8_t gfx_primeplus[317]; diff --git a/keyboards/steelseries/prime_plus/halconf.h b/keyboards/steelseries/prime_plus/halconf.h deleted file mode 100644 index 683d021cae..0000000000 --- a/keyboards/steelseries/prime_plus/halconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE -#define HAL_USE_I2C TRUE -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/steelseries/prime_plus/keyboard.json b/keyboards/steelseries/prime_plus/keyboard.json deleted file mode 100644 index b6acdadb1a..0000000000 --- a/keyboards/steelseries/prime_plus/keyboard.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "manufacturer": "SteelSeries", - "keyboard_name": "Prime+", - "maintainer": "Dasky", - "bootloader": "uf2boot", - "build": { - "debounce_type": "asym_eager_defer_pk", - "lto": true - }, - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B4", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "pointing_device": true, - "quantum_painter": true, - "rgblight": true - }, - "matrix_pins": { - "direct": [ - ["A0", "C15", "A1", "C13", "C14", "A3"] - ] - }, - "processor": "STM32F103", - "rgblight": { - "animations": { - "breathing": true, - "rainbow_mood": true - }, - "default": { - "animation": "rainbow_mood" - }, - "driver": "custom", - "led_count": 1 - }, - "url": "https://steelseries.com/gaming-mice/prime-plus", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 0, "y": 1}, - {"matrix": [0, 4], "x": 0, "y": 2}, - {"matrix": [0, 5], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c b/keyboards/steelseries/prime_plus/keymaps/default/keymap.c deleted file mode 100644 index 803f6b47da..0000000000 --- a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // Left, Middle, Right, - // Forward - // Back - // Underneath - [0] = LAYOUT( - MS_BTN1, MS_BTN3, MS_BTN2, - MS_BTN5, - MS_BTN4, - QK_BOOT - ) -}; -// clang-format on - -void pointing_device_init_kb(void) { - pointing_device_set_cpi(1600); -} - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD)}, -}; -#endif diff --git a/keyboards/steelseries/prime_plus/keymaps/default/rules.mk b/keyboards/steelseries/prime_plus/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/steelseries/prime_plus/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/steelseries/prime_plus/mcuconf.h b/keyboards/steelseries/prime_plus/mcuconf.h deleted file mode 100644 index 9086cf2790..0000000000 --- a/keyboards/steelseries/prime_plus/mcuconf.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE - -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE - -#undef STM32_PLLMUL_VALUE -#define STM32_PLLMUL_VALUE 6 diff --git a/keyboards/steelseries/prime_plus/prime_plus.c b/keyboards/steelseries/prime_plus/prime_plus.c deleted file mode 100644 index 69db195ef1..0000000000 --- a/keyboards/steelseries/prime_plus/prime_plus.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" -#include "graphics/primeplus.qgf.h" - -painter_image_handle_t primeplus; -painter_device_t display; - -void board_init(void) { - AFIO->MAPR |= AFIO_MAPR_I2C1_REMAP; - - gpio_set_pin_output(A15); - gpio_write_pin_high(A15); // Activate D+ pullup - - gpio_set_pin_output(OPTICAL_SW_PWR); - gpio_write_pin_low(OPTICAL_SW_PWR); // Enable power for optical switches - - gpio_set_pin_output(OLED_PWR); - gpio_write_pin_high(OLED_PWR); // Enable OLED power -} - -void keyboard_post_init_kb(void) { - wait_ms(1); // Wait for OLED - - gpio_set_pin_output(OLED_RESET); - gpio_write_pin_low(OLED_RESET); - wait_us(10); // Minimum wait 1us - - gpio_write_pin_high(OLED_RESET); - wait_ms(1); // Minimum wait 1ms - - primeplus = qp_load_image_mem(gfx_primeplus); - display = qp_ld7032_make_i2c_device(96, 24, 0x37); - - qp_init(display, QP_ROTATION_180); - qp_drawimage(display, 0, 0, primeplus); - - keyboard_post_init_user(); -} diff --git a/keyboards/steelseries/prime_plus/readme.md b/keyboards/steelseries/prime_plus/readme.md deleted file mode 100644 index a2c6366908..0000000000 --- a/keyboards/steelseries/prime_plus/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# SteelSeries Prime + - -![Prime+](https://i.imgur.com/QhNHmwxh.png) - -This firmware does not support the dedicated lift off sensor. - -Erase with an stlink and flash this [uf2boot bootloader](https://github.com/daskygit/uf2-prime-plus), this is a a one way procedure voiding any warranty so be sure you don't want to use the original manufacturers firmware. - -* Keyboard Maintainer: [Dasky](https://github.com/daskygit) -* Hardware Supported: SteelSeries Prime+ -* Hardware Availability: https://steelseries.com/gaming-mice/prime-plus - -Make example for this keyboard (after setting up your build environment): - - make steelseries/prime_plus:default - -Flashing example for this keyboard: - - make steelseries/prime_plus: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 2 ways: - -* **Bootmagic reset**: Hold down left mouse button and plug in. -* **Bootloader entry**: Hold the underneath button while plugging in. diff --git a/keyboards/steelseries/prime_plus/rgblight_custom.c b/keyboards/steelseries/prime_plus/rgblight_custom.c deleted file mode 100644 index 2736052587..0000000000 --- a/keyboards/steelseries/prime_plus/rgblight_custom.c +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include "chibios_config.h" -#include "gpio.h" -#include "color.h" -#include "rgblight_drivers.h" - -static PWMConfig pwmCFG = { - .frequency = 0xFFFF, - .period = 256, -}; - -rgb_t prime_leds[RGBLIGHT_LED_COUNT]; - -void init_custom(void) { - palSetPadMode(PAL_PORT(RGB_RED_PIN), PAL_PAD(RGB_RED_PIN), PAL_MODE_ALTERNATE_PUSHPULL); - palSetPadMode(PAL_PORT(RGB_GREEN_PIN), PAL_PAD(RGB_GREEN_PIN), PAL_MODE_ALTERNATE_PUSHPULL); - palSetPadMode(PAL_PORT(RGB_BLUE_PIN), PAL_PAD(RGB_BLUE_PIN), PAL_MODE_ALTERNATE_PUSHPULL); - pwmCFG.channels[RGB_RED_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; - pwmCFG.channels[RGB_GREEN_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; - pwmCFG.channels[RGB_BLUE_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; - pwmStart(&RGB_PWM_DRIVER, &pwmCFG); -} - -void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { - prime_leds[index].r = red; - prime_leds[index].g = green; - prime_leds[index].b = blue; -} - -void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { - set_color_custom(i, red, green, blue); - } -} - -void flush_custom(void) { - if (prime_leds[0].r == 0) { - pwmDisableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1); - } else { - uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].r) / 0xFF; - pwmEnableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); - } - if (prime_leds[0].g == 0) { - pwmDisableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1); - } else { - uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].g) / 0xFF; - pwmEnableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); - } - if (prime_leds[0].b == 0) { - pwmDisableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1); - } else { - uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].b) / 0xFF; - pwmEnableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); - } -} - -const rgblight_driver_t rgblight_driver = { - .init = init_custom, - .set_color = set_color_custom, - .set_color_all = set_color_all_custom, - .flush = flush_custom, -}; diff --git a/keyboards/steelseries/prime_plus/rules.mk b/keyboards/steelseries/prime_plus/rules.mk deleted file mode 100644 index cfcb5f7475..0000000000 --- a/keyboards/steelseries/prime_plus/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -MCU_LDSCRIPT = STM32F103xB_uf2boot - -QUANTUM_PAINTER_DRIVERS = ld7032_i2c -POINTING_DEVICE_DRIVER = pmw3389 - -SRC += graphics/primeplus.qgf.c -SRC += rgblight_custom.c diff --git a/keyboards/stello65/beta/keyboard.json b/keyboards/stello65/beta/keyboard.json index 81a4b6924f..5dbc3b1338 100644 --- a/keyboards/stello65/beta/keyboard.json +++ b/keyboards/stello65/beta/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", + "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/stello65/hs_rev1/keyboard.json b/keyboards/stello65/hs_rev1/keyboard.json index 072ccb97ca..783b73c599 100644 --- a/keyboards/stello65/hs_rev1/keyboard.json +++ b/keyboards/stello65/hs_rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", + "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/stello65/sl_rev1/keyboard.json b/keyboards/stello65/sl_rev1/keyboard.json index 0ed80b018a..8be7b07d0a 100644 --- a/keyboards/stello65/sl_rev1/keyboard.json +++ b/keyboards/stello65/sl_rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", + "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json index 770fbbb0e9..03466935b0 100644 --- a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json @@ -1,14 +1,12 @@ { "usb": { - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, @@ -25,7 +23,8 @@ "rows": ["F4", "B2", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json b/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json index 6ec92ce422..1ca94185ab 100644 --- a/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json @@ -1,14 +1,12 @@ { "usb": { - "device_version": "0.0.4" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.4", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json b/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json index 2cf1e4e324..efe3b979be 100644 --- a/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json @@ -1,14 +1,12 @@ { "usb": { - "device_version": "0.0.3" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.3", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/sthlmkb/lagom/keyboard.json b/keyboards/sthlmkb/lagom/keyboard.json index a3bacac77e..e30455109d 100644 --- a/keyboards/sthlmkb/lagom/keyboard.json +++ b/keyboards/sthlmkb/lagom/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "debug": false, "mousekey": false, diff --git a/keyboards/sthlmkb/litl/keyboard.json b/keyboards/sthlmkb/litl/keyboard.json index 32f7c1852d..50960dd6d0 100644 --- a/keyboards/sthlmkb/litl/keyboard.json +++ b/keyboards/sthlmkb/litl/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "debug": false, "mousekey": false, diff --git a/keyboards/stratos/keyboard.json b/keyboards/stratos/keyboard.json index b1a1a15da0..4d4bca3447 100644 --- a/keyboards/stratos/keyboard.json +++ b/keyboards/stratos/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "stratos", "manufacturer": "eggyolk", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xD5D0", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -43,19 +46,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_arrow", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso", - "60_iso_split_bs_rshift", - "60_iso_tsangan" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_arrow", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_split_bs_rshift", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ @@ -340,7 +331,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c b/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c index a1d4ee3a18..d8b6c552fc 100644 --- a/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c +++ b/keyboards/stratos/keymaps/tsangan_hhkb/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/strech/soulstone/keyboard.json b/keyboards/strech/soulstone/keyboard.json index 67a65fbd69..32671eba11 100644 --- a/keyboards/strech/soulstone/keyboard.json +++ b/keyboards/strech/soulstone/keyboard.json @@ -13,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "qmk": { diff --git a/keyboards/stront/keyboard.json b/keyboards/stront/keyboard.json index 6e83ffa50d..573730a12b 100644 --- a/keyboards/stront/keyboard.json +++ b/keyboards/stront/keyboard.json @@ -75,12 +75,17 @@ }, "encoder": { "rotary": [ - {"pin_a": "GP7", "pin_b": "GP8"} + { + "pin_a": "GP7", + "pin_b": "GP8", + "resolution": 4 + } ] }, "features": { "backlight": true, "bootmagic": true, + "console": false, "encoder": true, "extrakey": true, "nkro": false, diff --git a/keyboards/stront/keymaps/default/keymap.c b/keyboards/stront/keymaps/default/keymap.c index d9418c50f0..793a2495c7 100644 --- a/keyboards/stront/keymaps/default/keymap.c +++ b/keyboards/stront/keymaps/default/keymap.c @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/stront/keymaps/hid/keymap.c b/keyboards/stront/keymaps/hid/keymap.c index 806f92f7a9..11cb89c48e 100644 --- a/keyboards/stront/keymaps/hid/keymap.c +++ b/keyboards/stront/keymaps/hid/keymap.c @@ -90,9 +90,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/stront/keymaps/i2c/keymap.c b/keyboards/stront/keymaps/i2c/keymap.c index d9418c50f0..793a2495c7 100644 --- a/keyboards/stront/keymaps/i2c/keymap.c +++ b/keyboards/stront/keymaps/i2c/keymap.c @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/stront/stront.h b/keyboards/stront/stront.h index ebd0d491b9..9ca618a6fb 100644 --- a/keyboards/stront/stront.h +++ b/keyboards/stront/stront.h @@ -3,6 +3,4 @@ #pragma once -#include - bool is_display_enabled(void); diff --git a/keyboards/studiokestra/bourgeau/keyboard.json b/keyboards/studiokestra/bourgeau/keyboard.json index 22e4235415..3e0111a618 100644 --- a/keyboards/studiokestra/bourgeau/keyboard.json +++ b/keyboards/studiokestra/bourgeau/keyboard.json @@ -32,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/studiokestra/cascade/keyboard.json b/keyboards/studiokestra/cascade/keyboard.json index b6a11688c2..962276e62a 100644 --- a/keyboards/studiokestra/cascade/keyboard.json +++ b/keyboards/studiokestra/cascade/keyboard.json @@ -32,6 +32,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -50,9 +51,6 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -194,7 +192,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/keymap.c b/keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/keymap.c index 075179cb68..34a1df6909 100644 --- a/keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/keymap.c +++ b/keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/keymap.c @@ -23,14 +23,14 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */ + [_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */ + [_FN] = LAYOUT_60_tsangan_hhkb( /* FN */ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP, _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json deleted file mode 100644 index 413218e8bd..0000000000 --- a/keyboards/studiokestra/fairholme/keyboard.json +++ /dev/null @@ -1,999 +0,0 @@ -{ - "manufacturer": "Studio Kestra", - "keyboard_name": "Fairholme", - "maintainer": "Studio Kestra", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B11", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13"], - "rows": ["A0", "A1", "A2", "A9", "A10"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "pid": "0x6002", - "vid": "0x7C10" - }, - "indicators": { - "caps_lock": "B10" - }, - "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [1, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c deleted file mode 100644 index f240a1c67e..0000000000 --- a/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2024 Studio Kestra -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_ansi( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL - ), - [1] = LAYOUT_60_ansi( /* FN */ - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO - ) -}; diff --git a/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c deleted file mode 100644 index 50299b26af..0000000000 --- a/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2024 Studio Kestra -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ | │ ~ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bcksp│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_ansi_split_bs_rshift( - 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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL - ), - [1] = LAYOUT_60_ansi_split_bs_rshift( /* FN */ - KC_NO, 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_NO, KC_DEL, - KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ) -}; diff --git a/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c deleted file mode 100644 index 67468d4ffb..0000000000 --- a/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2024 Studio Kestra -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent │ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ` │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ - * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [0] = LAYOUT_60_iso( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL - ), - [1] = LAYOUT_60_iso( /* FN */ - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO - ) -}; diff --git a/keyboards/studiokestra/fairholme/keymaps/default/keymap.c b/keyboards/studiokestra/fairholme/keymaps/default/keymap.c deleted file mode 100644 index 15ad875016..0000000000 --- a/keyboards/studiokestra/fairholme/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2024 Studio Kestra -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ | │ ~ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bcksp│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ - * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - */ - [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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL - ), - [1] = LAYOUT_all( /* FN */ - KC_NO, 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_NO, KC_DEL, - KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ) -}; diff --git a/keyboards/studiokestra/fairholme/readme.md b/keyboards/studiokestra/fairholme/readme.md deleted file mode 100644 index b5b92bacc2..0000000000 --- a/keyboards/studiokestra/fairholme/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# studiokestra/fairholme - -![studiokestra/fairholme](https://i.imgur.com/Ep6wkgS.png) - -60% PCB developed as a successor to Cascade PCB powered by STM32F072. - -* Keyboard Maintainer: [studiokestra](https://github.com/studiokestra) -* Hardware Supported: Geonworks F2-60 -* Hardware Availability: https://geon.works - -Make example for this keyboard (after setting up your build environment): - - make studiokestra/fairholme:default - -Flashing example for this keyboard: - - make studiokestra/fairholme:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/studiokestra/frl84/keyboard.json b/keyboards/studiokestra/frl84/keyboard.json index c5f5f16bdb..d131b09eac 100644 --- a/keyboards/studiokestra/frl84/keyboard.json +++ b/keyboards/studiokestra/frl84/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -43,6 +45,7 @@ } }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0F84", diff --git a/keyboards/studiokestra/galatea/rev1/keyboard.json b/keyboards/studiokestra/galatea/rev1/keyboard.json index ea69d22669..ff2adbce4d 100644 --- a/keyboards/studiokestra/galatea/rev1/keyboard.json +++ b/keyboards/studiokestra/galatea/rev1/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -21,6 +23,7 @@ "rows": ["D1", "D0", "B0", "B7", "E6", "B3", "B6", "C6", "D6", "D7", "B4", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8801", diff --git a/keyboards/studiokestra/galatea/rev2/keyboard.json b/keyboards/studiokestra/galatea/rev2/keyboard.json index d324f66215..115b5684cd 100644 --- a/keyboards/studiokestra/galatea/rev2/keyboard.json +++ b/keyboards/studiokestra/galatea/rev2/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -22,6 +24,7 @@ "rows": ["D1", "D0", "B0", "B7", "E6", "B3", "B6", "C6", "D6", "D7", "B4", "D3"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8802", @@ -37,6 +40,7 @@ }, "rgblight": { "led_count": 24, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "max_brightness": 200, diff --git a/keyboards/studiokestra/galatea/rev3/keyboard.json b/keyboards/studiokestra/galatea/rev3/keyboard.json index b5a5d58762..a4b07bb4df 100644 --- a/keyboards/studiokestra/galatea/rev3/keyboard.json +++ b/keyboards/studiokestra/galatea/rev3/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -22,6 +24,7 @@ "rows": ["GP3", "GP4", "GP1", "GP2", "GP5", "GP29", "GP20", "GP19", "GP17", "GP16", "GP13", "GP12"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8803", @@ -33,6 +36,7 @@ }, "rgblight": { "led_count": 24, + "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "max_brightness": 200, diff --git a/keyboards/studiokestra/galatea/rules.mk b/keyboards/studiokestra/galatea/rules.mk new file mode 100644 index 0000000000..b5b1db4238 --- /dev/null +++ b/keyboards/studiokestra/galatea/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = studiokestra/galatea/rev1 \ No newline at end of file diff --git a/keyboards/studiokestra/line_friends_tkl/keyboard.json b/keyboards/studiokestra/line_friends_tkl/keyboard.json index 5aa286b92e..d8902e2a2f 100644 --- a/keyboards/studiokestra/line_friends_tkl/keyboard.json +++ b/keyboards/studiokestra/line_friends_tkl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,6 +20,7 @@ }, "indicators": { "caps_lock": "B6", + "on_state": 1, "scroll_lock": "D2" }, "matrix_pins": { diff --git a/keyboards/studiokestra/nue/keyboard.json b/keyboards/studiokestra/nue/keyboard.json index b12d048497..a98d838248 100644 --- a/keyboards/studiokestra/nue/keyboard.json +++ b/keyboards/studiokestra/nue/keyboard.json @@ -33,15 +33,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -323,7 +319,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/suavity/ehan/keyboard.json b/keyboards/suavity/ehan/keyboard.json index acc470c8b6..5a6675bfc3 100755 --- a/keyboards/suavity/ehan/keyboard.json +++ b/keyboards/suavity/ehan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ehan", "manufacturer": "Suavity Designs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5344", diff --git a/keyboards/subatomic/keyboard.json b/keyboards/subatomic/keyboard.json index 150bebf1cb..0816130bbb 100644 --- a/keyboards/subatomic/keyboard.json +++ b/keyboards/subatomic/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Subatomic", "manufacturer": "OLKB", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/subatomic/keymaps/default/keymap.c b/keyboards/subatomic/keymaps/default/keymap.c index fb85228fd8..9d579ac937 100644 --- a/keyboards/subatomic/keymaps/default/keymap.c +++ b/keyboards/subatomic/keymaps/default/keymap.c @@ -14,15 +14,14 @@ enum layer_names { }; enum subatomic_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, BACKLIT }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -155,6 +154,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/subrezon/la_nc/keyboard.json b/keyboards/subrezon/la_nc/keyboard.json index eb9a35fded..471bf09051 100644 --- a/keyboards/subrezon/la_nc/keyboard.json +++ b/keyboards/subrezon/la_nc/keyboard.json @@ -9,6 +9,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,7 +19,8 @@ "rows": ["D3", "F4", "D2", "B2", "B5", "B6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/subrezon/lancer/keyboard.json b/keyboards/subrezon/lancer/keyboard.json index 571cf4c8ad..cf678c84bc 100644 --- a/keyboards/subrezon/lancer/keyboard.json +++ b/keyboards/subrezon/lancer/keyboard.json @@ -14,6 +14,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/suikagiken/suika15tone/config.h b/keyboards/suikagiken/suika15tone/config.h deleted file mode 100644 index 7d35e3c436..0000000000 --- a/keyboards/suikagiken/suika15tone/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 @suikagiken -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika15tone/keyboard.json b/keyboards/suikagiken/suika15tone/keyboard.json deleted file mode 100644 index 7cfa5a4fb0..0000000000 --- a/keyboards/suikagiken/suika15tone/keyboard.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "manufacturer": "suikagiken", - "keyboard_name": "suika15tone", - "maintainer": "suikagiken", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "midi": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP24", "GP0", "GP1", "GP2", "GP3", "GP4", "GP12", "GP13", "GP14"], - "rows": ["GP25", "GP23"] - }, - "url": "https://github.com/suikagiken/suika15tone", - "usb": { - "device_version": "1.0.0", - "vid": "0x4B48", - "pid": "0x0301" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6, "y": 0}, - {"matrix": [0, 6], "x": 7, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1} - ] - } - } -} diff --git a/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json b/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json deleted file mode 100644 index 478bcc6212..0000000000 --- a/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "author": "suikagiken", - "keyboard": "suikagiken/suika15tone", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", - "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O" - ] - ] -} diff --git a/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json b/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json deleted file mode 100644 index 532f7dd5c9..0000000000 --- a/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "author": "suikagiken", - "keyboard": "suikagiken/suika15tone", - "keymap": "midi", - "layout": "LAYOUT", - "layers": [ - [ - "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", - "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2" - ] - ] -} diff --git a/keyboards/suikagiken/suika15tone/readme.md b/keyboards/suikagiken/suika15tone/readme.md deleted file mode 100644 index 39489898dd..0000000000 --- a/keyboards/suikagiken/suika15tone/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# suika15tone -(English Follows Japanese) - -## 概要 -![suika15tone1](https://i.imgur.com/r0shhWR.jpg) -![suika15tone2](https://i.imgur.com/7lCqpEX.jpg) - -suika15toneは1オクターブのピアノ鍵盤型マクロキーパッドです。 -通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 - -* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) -* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です - -## ビルドガイド - -[こちら](https://github.com/suikagiken/suika15tone/blob/main/buildguide_1.0.md)からご覧下さい。 - ---- - -## Overview - -suika15tone is a 1-octave piano shaped macro keypad. -You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. - -* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) -* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/). - -Make example for this keyboard (after setting up your build environment): - - make suikagiken/suika15tone:default - -Flashing example for this keyboard: - - make suikagiken/suika15tone: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 top left key) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/suikagiken/suika27melo/config.h b/keyboards/suikagiken/suika27melo/config.h deleted file mode 100644 index 7d35e3c436..0000000000 --- a/keyboards/suikagiken/suika27melo/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 @suikagiken -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json deleted file mode 100644 index 26b57f7001..0000000000 --- a/keyboards/suikagiken/suika27melo/keyboard.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "manufacturer": "suikagiken", - "keyboard_name": "suika27melo", - "maintainer": "suikagiken", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "midi": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["F0", "B4", "B5", "D7", "B6", "D6", "C6", "C7", "D0"], - "rows": ["F1", "F4", "D1", "D2"] - }, - "url": "https://github.com/suikagiken/suika27melo", - "usb": { - "device_version": "1.1.0", - "vid": "0x4B48", - "pid": "0x0201" - }, - "build": { - "debounce_type": "sym_eager_pk" - }, - "debounce": 50, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix":[0, 0], "x":0, "y":0}, - {"matrix":[0, 1], "x":2, "y":0}, - {"matrix":[0, 2], "x":3, "y":0}, - {"matrix":[0, 4], "x":5, "y":0}, - {"matrix":[0, 5], "x":6, "y":0}, - {"matrix":[0, 6], "x":7, "y":0}, - {"matrix":[2, 1], "x":9, "y":0}, - {"matrix":[2, 2], "x":10, "y":0}, - {"matrix":[2, 4], "x":12, "y":0}, - {"matrix":[2, 5], "x":13, "y":0}, - {"matrix":[2, 6], "x":14, "y":0}, - {"matrix":[1, 0], "x":0, "y":1}, - {"matrix":[1, 1], "x":1.5, "y":1}, - {"matrix":[1, 2], "x":2.5, "y":1}, - {"matrix":[1, 3], "x":3.5, "y":1}, - {"matrix":[1, 4], "x":4.5, "y":1}, - {"matrix":[1, 5], "x":5.5, "y":1}, - {"matrix":[1, 6], "x":6.5, "y":1}, - {"matrix":[1, 7], "x":7.5, "y":1}, - {"matrix":[3, 1], "x":8.5, "y":1}, - {"matrix":[3, 2], "x":9.5, "y":1}, - {"matrix":[3, 3], "x":10.5, "y":1}, - {"matrix":[3, 4], "x":11.5, "y":1}, - {"matrix":[3, 5], "x":12.5, "y":1}, - {"matrix":[3, 6], "x":13.5, "y":1}, - {"matrix":[3, 7], "x":14.5, "y":1}, - {"matrix":[3, 8], "x":15.5, "y":1} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json deleted file mode 100644 index 48807b2b86..0000000000 --- a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "author": "suikagiken", - "keyboard": "suikagiken/suika27melo", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", "KC_P", "KC_R", "KC_U", "KC_W", "KC_Y", - "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O", "KC_Q", "KC_S", "KC_T", "KC_V", "KC_X", "KC_Z", "KC_SPC" - ] - ] -} diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json deleted file mode 100644 index 5caad45979..0000000000 --- a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "author": "suikagiken", - "keyboard": "suikagiken/suika27melo", - "keymap": "midi", - "layout": "LAYOUT", - "layers": [ - [ - "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", "MI_Cs2", "MI_Ds2", "MI_Fs2", "MI_Gs2", "MI_As2", - "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2", "MI_D2", "MI_E2", "MI_F2", "MI_G2", "MI_A2", "MI_B2", "MI_C2" - ] - ] -} diff --git a/keyboards/suikagiken/suika27melo/readme.md b/keyboards/suikagiken/suika27melo/readme.md deleted file mode 100644 index 1aa46565f0..0000000000 --- a/keyboards/suikagiken/suika27melo/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# suika27melo -(English Follows Japanese) - -## 概要 -![suika27melo1](https://i.imgur.com/iFz3c1U.jpg) -![suika27melo2](https://i.imgur.com/xR7KpVR.jpg) - -suika27meloは2オクターブのピアノ鍵盤型マクロキーパッドです。 -通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 - -* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) -* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です - -## ビルドガイド - -[こちら](https://github.com/suikagiken/suika27melo/blob/main/buildguide_1.1.md)からご覧下さい。 - ---- - -## Overview - -suika27melo is a 2-octave piano shaped macro keypad. -You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. - -* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) -* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/) soon. - -Make example for this keyboard (after setting up your build environment): - - make suikagiken/suika27melo:default - -Flashing example for this keyboard: - - make suikagiken/suika27melo: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 top left key) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/suikagiken/suika83opti/keyboard.json b/keyboards/suikagiken/suika83opti/keyboard.json deleted file mode 100644 index 18128b05f8..0000000000 --- a/keyboards/suikagiken/suika83opti/keyboard.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "manufacturer": "suikagiken", - "keyboard_name": "suika83opti", - "maintainer": "suikagiken", - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], - "rows": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24"] - }, - "url": "https://github.com/suikagiken/suika83opti", - "usb": { - "device_version": "1.0.0", - "vid": "0x4B48", - "pid": "0x0101" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0,0], "x": 0, "y": 0}, - {"matrix": [0,1], "x": 1.5, "y": 0}, - {"matrix": [0,2], "x": 2.5, "y": 0}, - {"matrix": [0,3], "x": 3.5, "y": 0}, - {"matrix": [0,4], "x": 4.5, "y": 0}, - {"matrix": [0,5], "x": 7, "y": 0}, - {"matrix": [0,6], "x": 8, "y": 0}, - {"matrix": [0,8], "x": 9, "y": 0}, - {"matrix": [0,9], "x": 10, "y": 0}, - {"matrix": [0,10], "x": 12.75, "y": 0}, - {"matrix": [0,11], "x": 13.75, "y": 0}, - {"matrix": [0,12], "x": 14.75, "y": 0}, - {"matrix": [0,13], "x": 15.75, "y": 0}, - {"matrix": [0,15], "x": 17.25, "y": 0}, - {"matrix": [1,0], "x": 0, "y": 1.5}, - {"matrix": [1,1], "x": 1, "y": 1.5}, - {"matrix": [1,2], "x": 2, "y": 1.5}, - {"matrix": [1,3], "x": 3, "y": 1.5}, - {"matrix": [1,4], "x": 4, "y": 1.5}, - {"matrix": [1,5], "x": 5, "y": 1.5}, - {"matrix": [1,6], "x": 6, "y": 1.5}, - {"matrix": [1,7], "x": 8.5, "y": 1.5}, - {"matrix": [1,9], "x": 11.5, "y": 1.5}, - {"matrix": [1,10], "x": 12.5, "y": 1.5}, - {"matrix": [1,11], "x": 13.5, "y": 1.5}, - {"matrix": [1,12], "x": 14.5, "y": 1.5}, - {"matrix": [1,13], "x": 15.5, "y": 1.5}, - {"matrix": [1,15], "x": 17.25, "y": 1.5, "h": 1.5}, - {"matrix": [2,0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2,1], "x": 1.5, "y": 2.5}, - {"matrix": [2,2], "x": 2.5, "y": 2.5}, - {"matrix": [2,3], "x": 3.5, "y": 2.5}, - {"matrix": [2,4], "x": 4.5, "y": 2.5}, - {"matrix": [2,5], "x": 5.5, "y": 2.5}, - {"matrix": [2,7], "x": 8.5, "y": 2.5}, - {"matrix": [2,9], "x": 11, "y": 2.5}, - {"matrix": [2,10], "x": 12, "y": 2.5}, - {"matrix": [2,11], "x": 13, "y": 2.5}, - {"matrix": [2,12], "x": 14, "y": 2.5}, - {"matrix": [2,13], "x": 15, "y": 2.5}, - {"matrix": [2,14], "x": 16, "y": 2.5}, - {"matrix": [3,0], "x": 0.25, "y": 3.5, "w": 1.5}, - {"matrix": [3,1], "x": 1.75, "y": 3.5}, - {"matrix": [3,2], "x": 2.75, "y": 3.5}, - {"matrix": [3,3], "x": 3.75, "y": 3.5}, - {"matrix": [3,4], "x": 4.75, "y": 3.5}, - {"matrix": [3,5], "x": 5.75, "y": 3.5}, - {"matrix": [3,6], "x": 8, "y": 3.5}, - {"matrix": [3,8], "x": 9, "y": 3.5}, - {"matrix": [3,9], "x": 11.25, "y": 3.5}, - {"matrix": [3,10], "x": 12.25, "y": 3.5}, - {"matrix": [3,11], "x": 13.25, "y": 3.5}, - {"matrix": [3,12], "x": 14.25, "y": 3.5}, - {"matrix": [3,13], "x": 15.25, "y": 3.5}, - {"matrix": [3,14], "x": 16.25, "y": 3.5}, - {"matrix": [3,15], "x": 17.25, "y": 3, "h": 1.5}, - {"matrix": [4,0], "x": 0.75, "y": 4.5, "w": 1.5}, - {"matrix": [4,1], "x": 2.25, "y": 4.5}, - {"matrix": [4,2], "x": 3.25, "y": 4.5}, - {"matrix": [4,3], "x": 4.25, "y": 4.5}, - {"matrix": [4,4], "x": 5.25, "y": 4.5}, - {"matrix": [4,5], "x": 6.25, "y": 4.5}, - {"matrix": [4,7], "x": 8.5, "y": 4.5}, - {"matrix": [4,9], "x": 10.75, "y": 4.5}, - {"matrix": [4,10], "x": 11.75, "y": 4.5}, - {"matrix": [4,11], "x": 12.75, "y": 4.5}, - {"matrix": [4,12], "x": 13.75, "y": 4.5}, - {"matrix": [4,13], "x": 14.75, "y": 4.5}, - {"matrix": [4,14], "x": 15.75, "y": 4.5}, - {"matrix": [4,15], "x": 16.75, "y": 4.5}, - {"matrix": [5,0], "x": 1.25, "y": 5.5, "w": 1.5}, - {"matrix": [5,1], "x": 2.75, "y": 5.5}, - {"matrix": [5,2], "x": 3.75, "y": 5.5}, - {"matrix": [5,3], "x": 4.75, "y": 5.5}, - {"matrix": [5,4], "x": 5.75, "y": 5.5, "w": 1.5}, - {"matrix": [5,6], "x": 7.5, "y": 5.5}, - {"matrix": [5,7], "x": 8.5, "y": 5.5}, - {"matrix": [5,8], "x": 9.5, "y": 5.5}, - {"matrix": [5,9], "x": 10.75, "y": 5.5, "w": 1.5}, - {"matrix": [5,10], "x": 12.25, "y": 5.5}, - {"matrix": [5,11], "x": 13.25, "y": 5.5}, - {"matrix": [5,12], "x": 14.25, "y": 5.5}, - {"matrix": [5,13], "x": 15.25, "y": 5.5, "w": 1.5} - ] - } - } -} diff --git a/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json b/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json deleted file mode 100644 index 8434463eb8..0000000000 --- a/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "author": "suikagiken", - "keyboard": "suikagiken/suika83opti", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "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_DEL" , - "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_PSCR", "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_BSPC", - "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_EQL" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSLS", - "KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_LBRC", "KC_RBRC", "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" , - "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_UP" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", - "KC_LCTL", "KC_LWIN", "KC_LOPT", "MO(1)" , "KC_SPC" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_SPC" , "MO(1)" , "KC_ROPT", "KC_APP" , "KC_RCTL" - ], - [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ] - ] -} diff --git a/keyboards/suikagiken/suika83opti/readme.md b/keyboards/suikagiken/suika83opti/readme.md deleted file mode 100644 index cbd8395087..0000000000 --- a/keyboards/suikagiken/suika83opti/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -# suika83opti -(English Follows Japanese) - -## 概要 -![suika83opti1](https://imgur.com/eJOI2Ax.jpg) -![suika83opti2](https://imgur.com/kVtW5gt.jpg) - -suika83optiはロースタッガードの一体型エルゴキーボードです。 -ファンクションキーや矢印キーなど、コンパクトキーボードでは省略されがちなキーも備えており、フルキーボードからの移行も容易です。 - -* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) -* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です - -## ビルドガイド - -[こちら](https://github.com/suikagiken/suika83opti/blob/main/buildguide_1.0.md)からご覧下さい。 - ---- - -## Overview - -suika83opti is a row-staggered ergonomic keyboard with 85 keys. It has function keys or arrow keys, which are omitted in compact keyboards, making it easy to switch from a conventional full keyboard. - -* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) -* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/). - -Make example for this keyboard (after setting up your build environment): - - make suikagiken/suika83opti:default - -Flashing example for this keyboard: - - make suikagiken/suika83opti:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/suikagiken/suika85ergo/keyboard.json b/keyboards/suikagiken/suika85ergo/keyboard.json index 6274f56f7c..e0514dfab8 100644 --- a/keyboards/suikagiken/suika85ergo/keyboard.json +++ b/keyboards/suikagiken/suika85ergo/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/supersplit/keyboard.json b/keyboards/supersplit/keyboard.json index fb4babd0dd..3950d2bbce 100644 --- a/keyboards/supersplit/keyboard.json +++ b/keyboards/supersplit/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/superuser/ext/keyboard.json b/keyboards/superuser/ext/keyboard.json index d3252e47e2..c08213a13f 100644 --- a/keyboards/superuser/ext/keyboard.json +++ b/keyboards/superuser/ext/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "ext", "manufacturer": "superuser", + "url": "", "maintainer": "kaylanm", "usb": { "vid": "0x5355", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/superuser/frl/keyboard.json b/keyboards/superuser/frl/keyboard.json index 8e5775a7d1..4ede02d20d 100644 --- a/keyboards/superuser/frl/keyboard.json +++ b/keyboards/superuser/frl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "frl", "manufacturer": "superuser", + "url": "", "maintainer": "superuser", "usb": { "vid": "0x5355", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/superuser/tkl/keyboard.json b/keyboards/superuser/tkl/keyboard.json index a8828b115c..79df5bac09 100644 --- a/keyboards/superuser/tkl/keyboard.json +++ b/keyboards/superuser/tkl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "tkl", "manufacturer": "superuser", + "url": "", "maintainer": "kaylanm", "usb": { "vid": "0x5355", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/swagkeys/eave/keyboard.json b/keyboards/swagkeys/eave/keyboard.json deleted file mode 100644 index 87945ed756..0000000000 --- a/keyboards/swagkeys/eave/keyboard.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "manufacturer": "CZMAO", - "keyboard_name": "Swagkeys Eave", - "maintainer": "Swagkeys", - "bootloader": "stm32duino", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "B15", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], - "rows": ["B9", "C13", "B12", "B11", "C15"] - }, - "processor": "STM32F103", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "brightness_steps": 8, - "hue_steps": 10, - "led_count": 25, - "saturation_steps": 8, - "sleep": true - }, - "url": "NONE", - "usb": { - "device_version": "1.0.0", - "pid": "0x4A16", - "vid": "0x4A16" - }, - "ws2812": { - "pin": "B13" - }, - "layouts": { - "LAYOUT_65_ansi": { - "layout": [ - {"label": "GRV", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13.5, "y": 0}, - {"label": "BSLS", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, - {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, - {"label": "Del", "matrix": [1, 14], "x": 15, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Home", "matrix": [1, 15], "x": 15, "y": 1}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "PGUP", "matrix": [2, 15], "x": 15, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "UP", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "PGDN", "matrix": [3, 15], "x": 15, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, - {"label": "Left", "matrix": [4, 11], "x": 13, "y": 4}, - {"label": "Down", "matrix": [4, 14], "x": 14, "y": 4}, - {"label": "Right", "matrix": [4, 15], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/swagkeys/eave/keymaps/default/keymap.c b/keyboards/swagkeys/eave/keymaps/default/keymap.c deleted file mode 100644 index c0815a2400..0000000000 --- a/keyboards/swagkeys/eave/keymaps/default/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2024 Swagkeys - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSLS, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), - - [1] = LAYOUT_65_ansi( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; - - - diff --git a/keyboards/swagkeys/eave/readme.md b/keyboards/swagkeys/eave/readme.md deleted file mode 100644 index b594fe0ce2..0000000000 --- a/keyboards/swagkeys/eave/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# Swagkeys EAVE - -65% Hotswap PCB - -* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) -* Hardware Supported: Eave PCB -* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) - -Make example for this keyboard (after setting up your build environment): - - make swagkeys/eave:default - -Flashing example for this keyboard: - - make swagkeys/eave:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/swagkeys/integral/keyboard.json b/keyboards/swagkeys/integral/keyboard.json deleted file mode 100644 index 3d49671100..0000000000 --- a/keyboards/swagkeys/integral/keyboard.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "manufacturer": "CZMAO", - "keyboard_name": "Swagkeys Integral", - "maintainer": "Swagkeys", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "B15", - "on_state": 0 - }, - "matrix_pins": { - "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], - "rows": ["B9", "C13", "B12", "B11", "B10"] - }, - "processor": "STM32F103", - "url": "NONE", - "usb": { - "device_version": "1.0.0", - "pid": "0x4F21", - "vid": "0x4E21" - }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" - ], - "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "`~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "BSLS", "matrix": [0, 14], "x": 13, "y": 0}, - {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, - {"label": ",<", "matrix": [3, 8], "x": 9.25, "y": 3}, - {"label": ".>", "matrix": [3, 9], "x": 10.25, "y": 3}, - {"label": "/?", "matrix": [3, 10], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "MO", "matrix": [3, 12], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "FN", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, - {"label": ",", "matrix": [3, 8], "x": 9.25, "y": 3}, - {"label": ".", "matrix": [3, 9], "x": 10.25, "y": 3}, - {"label": "/", "matrix": [3, 10], "x": 11.25, "y": 3}, - {"label": "RShift", "matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, - - {"label": "LCtrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 7}, - {"label": "RAlt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.5}, - {"label": "FN", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.5}, - {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/swagkeys/integral/keymaps/default/keymap.c b/keyboards/swagkeys/integral/keymaps/default/keymap.c deleted file mode 100644 index dd3b473fc2..0000000000 --- a/keyboards/swagkeys/integral/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2024 Swagkeys - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL - ), - [1] = LAYOUT_60_ansi_tsangan( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) - -}; diff --git a/keyboards/swagkeys/integral/readme.md b/keyboards/swagkeys/integral/readme.md deleted file mode 100644 index e2fcd4c932..0000000000 --- a/keyboards/swagkeys/integral/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# Swagkeys Integral - -60% Soldered PCB - -* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) -* Hardware Supported: Integral PCB -* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) - -Make example for this keyboard (after setting up your build environment): - - make swagkeys/integral:default - -Flashing example for this keyboard: - - make swagkeys/integral:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/swiftrax/retropad/keyboard.json b/keyboards/swiftrax/retropad/keyboard.json index 92032ad6e3..c8dd0e3327 100644 --- a/keyboards/swiftrax/retropad/keyboard.json +++ b/keyboards/swiftrax/retropad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/swiss/keyboard.json b/keyboards/swiss/keyboard.json index bc592ba02e..039153cd7f 100644 --- a/keyboards/swiss/keyboard.json +++ b/keyboards/swiss/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["D6", "D4", "D5", "B2", "D7"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0420", diff --git a/keyboards/switchplate/southpaw_fullsize/keyboard.json b/keyboards/switchplate/southpaw_fullsize/keyboard.json index 96724e5870..84942ccfa4 100644 --- a/keyboards/switchplate/southpaw_fullsize/keyboard.json +++ b/keyboards/switchplate/southpaw_fullsize/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Southpaw Fullsize", "manufacturer": "Switchplate Peripherals", + "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/switchplate/switchplate910/keyboard.json b/keyboards/switchplate/switchplate910/keyboard.json index 6a9715b92d..47353fe81e 100644 --- a/keyboards/switchplate/switchplate910/keyboard.json +++ b/keyboards/switchplate/switchplate910/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "910", "manufacturer": "Switchplate Peripherals", + "url": "", "maintainer": "MxBluE", "usb": { "vid": "0x54F3", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/sx60/keyboard.json b/keyboards/sx60/keyboard.json index 9d3663fecf..ba5b439cec 100644 --- a/keyboards/sx60/keyboard.json +++ b/keyboards/sx60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SX60", "manufacturer": "Quantrik", + "url": "", "maintainer": "https://github.com/amnobis", "usb": { "vid": "0x5154", diff --git a/keyboards/synthandkeys/bento_box/keyboard.json b/keyboards/synthandkeys/bento_box/keyboard.json index ad662f1669..3cdc7a5870 100644 --- a/keyboards/synthandkeys/bento_box/keyboard.json +++ b/keyboards/synthandkeys/bento_box/keyboard.json @@ -16,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -29,6 +31,7 @@ ] }, "processor": "STM32F072", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/synthandkeys/the_debit_card/keyboard.json b/keyboards/synthandkeys/the_debit_card/keyboard.json index 1de96089bc..a2d0a6964f 100644 --- a/keyboards/synthandkeys/the_debit_card/keyboard.json +++ b/keyboards/synthandkeys/the_debit_card/keyboard.json @@ -5,6 +5,8 @@ "bootloader": "rp2040", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -17,6 +19,7 @@ ] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/synthlabs/060/keyboard.json b/keyboards/synthlabs/060/keyboard.json index 4183232dd1..2fe90c96fd 100644 --- a/keyboards/synthlabs/060/keyboard.json +++ b/keyboards/synthlabs/060/keyboard.json @@ -8,6 +8,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -23,12 +25,8 @@ "usb": { "vid": "0x534E", "pid": "0x3630", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -140,14 +138,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -431,7 +426,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/synthlabs/065/keyboard.json b/keyboards/synthlabs/065/keyboard.json index 1cd9e03a6a..d8d0d96c3f 100644 --- a/keyboards/synthlabs/065/keyboard.json +++ b/keyboards/synthlabs/065/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -152,14 +154,10 @@ "url": "http://065.synthlabs.io", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x3635", "vid": "0x534E" }, - "host": { - "default": { - "nkro": true - } - }, "ws2812": { "driver": "vendor", "pin": "GP18" diff --git a/keyboards/synthlabs/solo/keyboard.json b/keyboards/synthlabs/solo/keyboard.json index 09c83cec76..1aedf98185 100644 --- a/keyboards/synthlabs/solo/keyboard.json +++ b/keyboards/synthlabs/solo/keyboard.json @@ -7,6 +7,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -22,12 +24,8 @@ "usb": { "vid": "0x534E", "pid": "0x3031", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "encoder": { "rotary": [ diff --git a/keyboards/system76/launch_1/config.h b/keyboards/system76/launch_1/config.h index 674dbe75b0..7e7fa9be9c 100644 --- a/keyboards/system76/launch_1/config.h +++ b/keyboards/system76/launch_1/config.h @@ -17,6 +17,8 @@ #pragma once +#define RGB_MATRIX_DISABLE_KEYCODES // Disables control of rgb matrix by keycodes (must use code functions to control the feature) + // I2C { #define F_SCL 100000UL // Run I2C bus at 100 kHz #define I2C_START_RETRY_COUNT 20 diff --git a/keyboards/system76/launch_1/keyboard.json b/keyboards/system76/launch_1/keyboard.json index b5317dd9bc..929b8c9794 100644 --- a/keyboards/system76/launch_1/keyboard.json +++ b/keyboards/system76/launch_1/keyboard.json @@ -44,7 +44,9 @@ }, "default": { "animation": "rainbow_moving_chevron", - "hue": 142 + "hue": 142, + "sat": 255, + "speed": 127 }, "driver": "ws2812", "max_brightness": 176, diff --git a/keyboards/system76/launch_1/keymaps/default/keymap.c b/keyboards/system76/launch_1/keymaps/default/keymap.c index c44a4b5521..f3dfd3420e 100644 --- a/keyboards/system76/launch_1/keymaps/default/keymap.c +++ b/keyboards/system76/launch_1/keymaps/default/keymap.c @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_VALD, RM_VALU, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_TRNS, KC_VOLU, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c index 2cff70076e..dbe697c19d 100644 --- a/keyboards/system76/launch_1/launch_1.c +++ b/keyboards/system76/launch_1/launch_1.c @@ -16,7 +16,6 @@ */ #include "quantum.h" -#include "eeprom.h" #include "usb_mux.h" @@ -74,7 +73,7 @@ led_config_t g_led_config = { { } }; #endif // RGB_MATRIX_ENABLE -bool eeprom_is_valid(void) { +bool eeprom_is_valid(void) { return ( eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && eeprom_read_byte(((void *)EEPROM_VERSION_ADDR)) == EEPROM_VERSION @@ -124,7 +123,7 @@ void system76_ec_rgb_layer(layer_state_t layer_state); void system76_ec_unlock(void); bool system76_ec_is_unlocked(void); -extern rgb_config_t layer_rgb[DYNAMIC_KEYMAP_LAYER_COUNT]; +rgb_config_t layer_rgb[DYNAMIC_KEYMAP_LAYER_COUNT]; void matrix_init_kb(void) { usb_mux_init(); @@ -192,7 +191,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { #else return true; #endif - case QK_RGB_MATRIX_VALUE_DOWN: + case RGB_VAD: if (record->event.pressed) { uint8_t level = rgb_matrix_config.hsv.v; for (int i = sizeof(levels) - 1; i >= 0; i--) { @@ -204,7 +203,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { set_value_all_layers(level); } return false; - case QK_RGB_MATRIX_VALUE_UP: + case RGB_VAI: if (record->event.pressed) { uint8_t level = rgb_matrix_config.hsv.v; for (int i = 0; i < sizeof(levels); i++) { @@ -216,7 +215,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { set_value_all_layers(level); } return false; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { uint8_t level = 0; if (rgb_matrix_config.hsv.v == 0) { diff --git a/keyboards/system76/launch_1/rgb_matrix_kb.inc b/keyboards/system76/launch_1/rgb_matrix_kb.inc index 6ac7970ccd..f29183dde0 100644 --- a/keyboards/system76/launch_1/rgb_matrix_kb.inc +++ b/keyboards/system76/launch_1/rgb_matrix_kb.inc @@ -46,7 +46,7 @@ static bool active_keys(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); uint8_t layer = get_highest_layer(layer_state); - rgb_t rgb = hsv_to_rgb(rgb_matrix_config.hsv); + RGB rgb = hsv_to_rgb(rgb_matrix_config.hsv); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); @@ -69,7 +69,7 @@ static bool active_keys(effect_params_t* params) { return led_max < RGB_MATRIX_LED_COUNT; } -extern rgb_t raw_rgb_data[RGB_MATRIX_LED_COUNT]; +RGB raw_rgb_data[RGB_MATRIX_LED_COUNT] = {0}; static uint8_t normalize_component(uint8_t component) { uint16_t x = (uint16_t)component; @@ -78,9 +78,9 @@ static uint8_t normalize_component(uint8_t component) { return (uint8_t)x; } -static rgb_t normalize_index(uint8_t i) { - rgb_t raw = raw_rgb_data[i]; - rgb_t rgb = { +static RGB normalize_index(uint8_t i) { + RGB raw = raw_rgb_data[i]; + RGB rgb = { .r = normalize_component(raw.r), .g = normalize_component(raw.g), .b = normalize_component(raw.b), @@ -92,7 +92,7 @@ static bool raw_rgb(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = normalize_index(i); + RGB rgb = normalize_index(i); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; @@ -137,7 +137,7 @@ static bool unlocked(effect_params_t* params) { for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - hsv_t hsv = { + HSV hsv = { .h = i + unlocked_ticks, .s = 0xFF, .v = 0x70, @@ -149,7 +149,7 @@ static bool unlocked(effect_params_t* params) { } } - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return led_max < RGB_MATRIX_LED_COUNT; diff --git a/keyboards/system76/system76_ec.c b/keyboards/system76/system76_ec.c index db0401a7d4..1b7955e19b 100644 --- a/keyboards/system76/system76_ec.c +++ b/keyboards/system76/system76_ec.c @@ -135,7 +135,7 @@ static enum rgb_matrix_effects mode_map[] = { _Static_assert(sizeof(mode_map) == MODE_LAST, "mode_map_length"); -rgb_t raw_rgb_data[RGB_MATRIX_LED_COUNT] = {0}; +RGB raw_rgb_data[RGB_MATRIX_LED_COUNT]; // clang-format off rgb_config_t layer_rgb[DYNAMIC_KEYMAP_LAYER_COUNT] = { @@ -322,7 +322,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { if (!bootloader_unlocked) { uint8_t index = data[2]; - rgb_t rgb = { + RGB rgb = { .r = data[3], .g = data[4], .b = data[5], diff --git a/keyboards/tacworks/tac_k1/halconf.h b/keyboards/tacworks/tac_k1/halconf.h index 872e0217df..8760386e81 100644 --- a/keyboards/tacworks/tac_k1/halconf.h +++ b/keyboards/tacworks/tac_k1/halconf.h @@ -4,5 +4,7 @@ #pragma once #define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/tacworks/tac_k1/keyboard.json b/keyboards/tacworks/tac_k1/keyboard.json index 63cde4777f..cf098291be 100644 --- a/keyboards/tacworks/tac_k1/keyboard.json +++ b/keyboards/tacworks/tac_k1/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,15 +31,11 @@ "url": "https://tacworks.store", "usb": { "device_version": "1.0.0", + "force_nkro": true, "pid": "0xE431", "suspend_wakeup_delay": 1000, "vid": "0x342D" }, - "host": { - "default": { - "nkro": true - } - }, "community_layouts": [ "65_ansi_blocker", "65_ansi_blocker_split_bs", diff --git a/keyboards/tada68/keyboard.json b/keyboards/tada68/keyboard.json index 1daf936b53..641def01a3 100644 --- a/keyboards/tada68/keyboard.json +++ b/keyboards/tada68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TADA68", "manufacturer": "TADA", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5441", diff --git a/keyboards/tada68/keymaps/default/keymap.c b/keyboards/tada68/keymaps/default/keymap.c index f4fa3a95d3..fcc37aff6c 100755 --- a/keyboards/tada68/keymaps/default/keymap.c +++ b/keyboards/tada68/keymaps/default/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, MS_BTN1, MS_UP, MS_BTN2, - _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_BTN1, KC_MS_U, KC_BTN2, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), }; diff --git a/keyboards/tada68/keymaps/rgb/keymap.c b/keyboards/tada68/keymaps/rgb/keymap.c index 7f57c9ddfb..0f2186b0b3 100755 --- a/keyboards/tada68/keymaps/rgb/keymap.c +++ b/keyboards/tada68/keymaps/rgb/keymap.c @@ -45,6 +45,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F1 ,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS , _______,_______,KC_UP,_______,_______, UG_TOGG,UG_NEXT,UG_HUEU,UG_HUED,UG_SATU,UG_SATD,UG_VALU,UG_VALD, _______,KC_HOME, _______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______, _______,KC_END, - _______,_______,_______,BL_DOWN,BL_TOGG,BL_UP, _______,KC_VOLD,KC_VOLU,KC_MUTE,_______,MS_BTN1, MS_UP, MS_BTN2, - _______,_______,_______, _______, _______,_______,_______,MS_LEFT,MS_DOWN, MS_RGHT), + _______,_______,_______,BL_DOWN,BL_TOGG,BL_UP, _______,KC_VOLD,KC_VOLU,KC_MUTE,_______,KC_BTN1, KC_MS_U, KC_BTN2, + _______,_______,_______, _______, _______,_______,_______,KC_MS_L,KC_MS_D, KC_MS_R), }; diff --git a/keyboards/takashicompany/baumkuchen/baumkuchen.c b/keyboards/takashicompany/baumkuchen/baumkuchen.c index e7cc85f091..7d4f26b73e 100644 --- a/keyboards/takashicompany/baumkuchen/baumkuchen.c +++ b/keyboards/takashicompany/baumkuchen/baumkuchen.c @@ -10,9 +10,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } else { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } return true; diff --git a/keyboards/takashicompany/baumkuchen/keyboard.json b/keyboards/takashicompany/baumkuchen/keyboard.json index d5aa1f81e1..2c8b77851b 100644 --- a/keyboards/takashicompany/baumkuchen/keyboard.json +++ b/keyboards/takashicompany/baumkuchen/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -43,6 +45,7 @@ "ws2812": { "pin": "D3" }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0045", diff --git a/keyboards/takashicompany/center_enter/keyboard.json b/keyboards/takashicompany/center_enter/keyboard.json index 4666a91484..b8188bd718 100644 --- a/keyboards/takashicompany/center_enter/keyboard.json +++ b/keyboards/takashicompany/center_enter/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Center x Enter", "manufacturer": "takashicompany", + "url": "", "maintainer": "takashicompany", "usb": { "vid": "0x7463", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -51,7 +54,8 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 1} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/center_enter/keymaps/default/keymap.c b/keyboards/takashicompany/center_enter/keymaps/default/keymap.c index a6d9ab43a6..82fafc41c7 100644 --- a/keyboards/takashicompany/center_enter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/center_enter/keymaps/default/keymap.c @@ -88,9 +88,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } return true; diff --git a/keyboards/takashicompany/compacx/compacx.c b/keyboards/takashicompany/compacx/compacx.c index 5f4a262273..5a63210c5b 100644 --- a/keyboards/takashicompany/compacx/compacx.c +++ b/keyboards/takashicompany/compacx/compacx.c @@ -19,9 +19,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (!clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } return true; diff --git a/keyboards/takashicompany/compacx/keyboard.json b/keyboards/takashicompany/compacx/keyboard.json index 916b6bfd24..71d6d2ec74 100644 --- a/keyboards/takashicompany/compacx/keyboard.json +++ b/keyboards/takashicompany/compacx/keyboard.json @@ -64,7 +64,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/dogtag/keyboard.json b/keyboards/takashicompany/dogtag/keyboard.json index 73d138da12..af8d2119d4 100644 --- a/keyboards/takashicompany/dogtag/keyboard.json +++ b/keyboards/takashicompany/dogtag/keyboard.json @@ -40,7 +40,8 @@ } } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "rgblight": { "led_count": 8, "split_count": [4, 4], diff --git a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c index 9c966137e7..c109ee4093 100644 --- a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c +++ b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; #endif diff --git a/keyboards/takashicompany/ejectix/keyboard.json b/keyboards/takashicompany/ejectix/keyboard.json index 3f29e5c86d..560c253326 100644 --- a/keyboards/takashicompany/ejectix/keyboard.json +++ b/keyboards/takashicompany/ejectix/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -34,6 +36,7 @@ "led_count": 11, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0049", diff --git a/keyboards/takashicompany/endzone34/keyboard.json b/keyboards/takashicompany/endzone34/keyboard.json index 38379c0c46..3549d2c089 100644 --- a/keyboards/takashicompany/endzone34/keyboard.json +++ b/keyboards/takashicompany/endzone34/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -48,8 +50,9 @@ "rows": ["B3", "B2", "B6", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", - "layouts": { + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.5}, diff --git a/keyboards/takashicompany/ergomirage/keyboard.json b/keyboards/takashicompany/ergomirage/keyboard.json index 4a2e3ab5ec..1e34505b01 100644 --- a/keyboards/takashicompany/ergomirage/keyboard.json +++ b/keyboards/takashicompany/ergomirage/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -14,6 +16,7 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0044", diff --git a/keyboards/takashicompany/goat51/keyboard.json b/keyboards/takashicompany/goat51/keyboard.json index f91c5bda49..c424685713 100644 --- a/keyboards/takashicompany/goat51/keyboard.json +++ b/keyboards/takashicompany/goat51/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -30,6 +32,8 @@ "rgblight": { "led_count": 11, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/takashicompany/goat51/keymaps/default/keymap.c b/keyboards/takashicompany/goat51/keymaps/default/keymap.c index 71d623c91f..39267f596c 100644 --- a/keyboards/takashicompany/goat51/keymaps/default/keymap.c +++ b/keyboards/takashicompany/goat51/keymaps/default/keymap.c @@ -114,9 +114,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } return true; diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json deleted file mode 100644 index e99eb87c47..0000000000 --- a/keyboards/takashicompany/jourkey/keyboard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "Jourkey", - "maintainer": "takashicompany", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D1", "pin_b": "D0"} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [ - ["D4", "C6", "D7", "E6", "B4", "F5", "F6", "F7", "B5", "B1", "B3", "B2", "B6"] - ] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0062", - "vid": "0x7463" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [0, 6], "x": 1.5, "y": 1}, - {"matrix": [0, 7], "x": 2.5, "y": 1}, - {"matrix": [0, 8], "x": 3.5, "y": 1, "w": 1.5}, - {"matrix": [0, 9], "x": 0, "y": 2, "w":1.75}, - {"matrix": [0, 10], "x": 1.75, "y": 2}, - {"matrix": [0, 11], "x": 2.75, "y": 2}, - {"matrix": [0, 12], "x": 3.75, "y": 2, "w":1.25} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/keymaps/default/keymap.c b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c deleted file mode 100644 index 62650eb777..0000000000 --- a/keyboards/takashicompany/jourkey/keymaps/default/keymap.c +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2023 QMK -// 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_TAB, KC_Q, KC_W, KC_ENT, - KC_LCTL, KC_A, KC_S, KC_RSFT - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } -}; -#endif diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk deleted file mode 100644 index a40474b4d5..0000000000 --- a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/readme.md b/keyboards/takashicompany/jourkey/readme.md deleted file mode 100644 index b76dd7cbb8..0000000000 --- a/keyboards/takashicompany/jourkey/readme.md +++ /dev/null @@ -1,41 +0,0 @@ -# Joukey - -![takashicompany/jourkey](https://i.imgur.com/pCrTbKn.jpeg) - -Jourkey was designed as “a keyboard for taking pictures with scenery while traveling. - -The layout is like a smaller version of a traditional keyboard. -Decorate it with your favorite keycaps and case to make it your travel companion. - -Of course, it can also be used as a macro pad. - ---- - -Jourkeyは「旅先で景色と写真を撮るためのキーボード」としてデザインされました。 - -従来のキーボードを小さくしたようなレイアウトです。 -お気に入りのキーキャップやケースでデコレーションして貴方の旅のお供になります。 - -もちろん、マクロパッドとして使用することも可能です。 - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: Jourkey PCB, Pro Micro -* Hardware Availability: https://github.com/takashicompany/jourkey - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/jourkey:default - -Flashing example for this keyboard: - - make takashicompany/jourkey:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json deleted file mode 100644 index 88eda74f12..0000000000 --- a/keyboards/takashicompany/klec_01/keyboard.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "KLEC-01", - "maintainer": "takashicompany", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x1001", - "vid": "0x7463" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [1, 0], "x": 4, "y": 0}, - {"matrix": [1, 1], "x": 5, "y": 0}, - {"matrix": [1, 2], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [2, 0], "x": 8, "y": 0}, - {"matrix": [2, 1], "x": 9, "y": 0}, - {"matrix": [2, 2], "x": 10, "y": 0}, - {"matrix": [2, 3], "x": 11, "y": 0, "w": 1.75}, - {"matrix": [0, 4], "x": 0, "y": 1, "w": 1.25}, - {"matrix": [0, 5], "x": 1.25, "y": 1}, - {"matrix": [0, 6], "x": 2.25, "y": 1}, - {"matrix": [0, 7], "x": 3.25, "y": 1}, - {"matrix": [1, 4], "x": 4.25, "y": 1}, - {"matrix": [1, 5], "x": 5.25, "y": 1}, - {"matrix": [1, 6], "x": 6.25, "y": 1}, - {"matrix": [1, 7], "x": 7.25, "y": 1}, - {"matrix": [2, 4], "x": 8.25, "y": 1}, - {"matrix": [2, 5], "x": 9.25, "y": 1}, - {"matrix": [2, 6], "x": 10.25, "y": 1}, - {"matrix": [2, 7], "x": 11.25, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 2}, - {"matrix": [3, 2], "x": 2.75, "y": 2}, - {"matrix": [3, 3], "x": 3.75, "y": 2}, - {"matrix": [4, 0], "x": 4.75, "y": 2}, - {"matrix": [4, 1], "x": 5.75, "y": 2}, - {"matrix": [4, 2], "x": 6.75, "y": 2}, - {"matrix": [4, 3], "x": 7.75, "y": 2}, - {"matrix": [5, 0], "x": 8.75, "y": 2}, - {"matrix": [5, 1], "x": 9.75, "y": 2}, - {"matrix": [5, 2], "x": 10.75, "y": 2}, - {"matrix": [5, 3], "x": 11.75, "y": 2}, - {"matrix": [3, 4], "x": 0, "y": 3}, - {"matrix": [3, 5], "x": 1, "y": 3}, - {"matrix": [3, 6], "x": 2, "y": 3}, - {"matrix": [3, 7], "x": 3, "y": 3, "w": 1.25}, - {"matrix": [4, 4], "x": 4.25, "y": 3, "w": 2}, - {"matrix": [4, 5], "x": 6.25, "y": 3, "w": 2.25}, - {"matrix": [5, 4], "x": 8.5, "y": 3, "w": 1.25}, - {"matrix": [5, 5], "x": 9.75, "y": 3}, - {"matrix": [5, 6], "x": 10.75, "y": 3}, - {"matrix": [5, 7], "x": 11.75, "y": 3} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c deleted file mode 100644 index 551c211b73..0000000000 --- a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2023 QMK -// 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, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, - KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_UP, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, - KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, - KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - KC_TRNS, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, - KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, - KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [4] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, - KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS, - KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT( - KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [6] = LAYOUT( - KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [7] = LAYOUT( - KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [8] = LAYOUT( - KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, KC_TRNS, - KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/takashicompany/klec_01/readme.md b/keyboards/takashicompany/klec_01/readme.md deleted file mode 100644 index e907c7b68a..0000000000 --- a/keyboards/takashicompany/klec_01/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# takashicompany/klec_01 - -![takashicompany/klec_01](https://i.imgur.com/oFZHNFJ.jpeg) - -46-key integrated keyboard. - -The layout is similar to a conventional keyboard, making it a good introduction to 40% keyboards. - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: PCB, Pro Micro -* Hardware Availability: https://github.com/takashicompany/klec_01 - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/klec_01:default - -Flashing example for this keyboard: - - make takashicompany/klec_01:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/klec_02/config.h b/keyboards/takashicompany/klec_02/config.h deleted file mode 100644 index 8828e2ad72..0000000000 --- a/keyboards/takashicompany/klec_02/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2024 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define EE_HANDS \ No newline at end of file diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json deleted file mode 100644 index b659d18bc0..0000000000 --- a/keyboards/takashicompany/klec_02/keyboard.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "KLEC-02", - "maintainer": "takashicompany", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4"], - "rows": ["F4", "F5", "F6", "F7"] - }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x1002", - "vid": "0x7463" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [4, 0], "x": 6.25, "y": 0}, - {"matrix": [4, 1], "x": 7.25, "y": 0}, - {"matrix": [4, 2], "x": 8.25, "y": 0}, - {"matrix": [4, 3], "x": 9.25, "y": 0}, - {"matrix": [4, 4], "x": 10.25, "y": 0}, - {"matrix": [1, 0], "x": 0.25, "y": 1}, - {"matrix": [1, 1], "x": 1.25, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1}, - {"matrix": [1, 3], "x": 3.25, "y": 1}, - {"matrix": [1, 4], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 6.5, "y": 1}, - {"matrix": [5, 1], "x": 7.5, "y": 1}, - {"matrix": [5, 2], "x": 8.5, "y": 1}, - {"matrix": [5, 3], "x": 9.5, "y": 1}, - {"matrix": [5, 4], "x": 10.5, "y": 1}, - {"matrix": [2, 0], "x": 0.5, "y": 2}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [6, 0], "x": 6.75, "y": 2}, - {"matrix": [6, 1], "x": 7.75, "y": 2}, - {"matrix": [6, 2], "x": 8.75, "y": 2}, - {"matrix": [6, 3], "x": 9.75, "y": 2}, - {"matrix": [6, 4], "x": 10.75, "y": 2}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3}, - {"matrix": [7, 0], "x": 6.25, "y": 3}, - {"matrix": [7, 1], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [7, 2], "x": 8.5, "y": 3} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c deleted file mode 100644 index 0431b8e6b7..0000000000 --- a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, - LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, - KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI - ), - - [1] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, - LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), - KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, - LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, - KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI - ), - - [4] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, - LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT( - KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, - KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [6] = LAYOUT( - KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, - KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [7] = LAYOUT( - KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [8] = LAYOUT( - UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), - RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/takashicompany/klec_02/readme.md b/keyboards/takashicompany/klec_02/readme.md deleted file mode 100644 index 0b492a5e18..0000000000 --- a/keyboards/takashicompany/klec_02/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# KLEC-02 - -![takashicompany/klec_02](https://i.imgur.com/1w6agBI.jpeg) - -The KLEC-02 is a 36-key segmented keyboard. -The PCB can be fitted with key switch sockets, allowing easy replacement of key switches. - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: PCB, Pro Micro -* Hardware Availability: https://github.com/takashicompany/klec_02 - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/klec_02:default - -Flashing example for this keyboard: - - make takashicompany/klec_02:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/minidivide/keyboard.json b/keyboards/takashicompany/minidivide/keyboard.json index a2dea1ee65..4ae089fbee 100644 --- a/keyboards/takashicompany/minidivide/keyboard.json +++ b/keyboards/takashicompany/minidivide/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -28,6 +30,7 @@ "knight": true, "rainbow_mood": true, "rainbow_swirl": true, + "rgb_test": true, "snake": true, "static_gradient": true, "twinkle": true @@ -48,6 +51,7 @@ "pin": "D2" } }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0037", diff --git a/keyboards/takashicompany/minidivide_max/keyboard.json b/keyboards/takashicompany/minidivide_max/keyboard.json index 9cfd33373c..54f9dbaf78 100644 --- a/keyboards/takashicompany/minidivide_max/keyboard.json +++ b/keyboards/takashicompany/minidivide_max/keyboard.json @@ -9,6 +9,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -47,6 +49,7 @@ "pin": "D2" } }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0054", diff --git a/keyboards/takashicompany/mirageix/keyboard.json b/keyboards/takashicompany/mirageix/keyboard.json deleted file mode 100644 index 580bce64cb..0000000000 --- a/keyboards/takashicompany/mirageix/keyboard.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "MirageiX", - "maintainer": "takashicompany", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], - "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0065", - "vid": "0x7463" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 0], "x": 1, "y": 1.25}, - {"matrix": [2, 0], "x": 2, "y": 0.25}, - {"matrix": [3, 0], "x": 3, "y": 0}, - {"matrix": [4, 0], "x": 4, "y": 0.25}, - {"matrix": [5, 0], "x": 5, "y": 0.5}, - {"matrix": [0, 3], "x": 8, "y": 0.5}, - {"matrix": [1, 3], "x": 9, "y": 0.25}, - {"matrix": [2, 3], "x": 10, "y": 0}, - {"matrix": [3, 3], "x": 11, "y": 0.25}, - {"matrix": [4, 3], "x": 12, "y": 1.25}, - {"matrix": [5, 3], "x": 13, "y": 1.25}, - {"matrix": [0, 1], "x": 0, "y": 2.25}, - {"matrix": [1, 1], "x": 1, "y": 2.25}, - {"matrix": [2, 1], "x": 2, "y": 1.25}, - {"matrix": [3, 1], "x": 3, "y": 1}, - {"matrix": [4, 1], "x": 4, "y": 1.25}, - {"matrix": [5, 1], "x": 5, "y": 1.5}, - {"matrix": [0, 4], "x": 8, "y": 1.5}, - {"matrix": [1, 4], "x": 9, "y": 1.25}, - {"matrix": [2, 4], "x": 10, "y": 1}, - {"matrix": [3, 4], "x": 11, "y": 1.25}, - {"matrix": [4, 4], "x": 12, "y": 2.25}, - {"matrix": [5, 4], "x": 13, "y": 2.25}, - {"matrix": [0, 2], "x": 0, "y": 3.25}, - {"matrix": [1, 2], "x": 1, "y": 3.25}, - {"matrix": [2, 2], "x": 2, "y": 2.25}, - {"matrix": [3, 2], "x": 3, "y": 2}, - {"matrix": [4, 2], "x": 4, "y": 2.25}, - {"matrix": [5, 2], "x": 5, "y": 2.5}, - {"matrix": [0, 5], "x": 8, "y": 2.5}, - {"matrix": [1, 5], "x": 9, "y": 2.25}, - {"matrix": [2, 5], "x": 10, "y": 2}, - {"matrix": [3, 5], "x": 11, "y": 2.25}, - {"matrix": [4, 5], "x": 12, "y": 3.25}, - {"matrix": [5, 5], "x": 13, "y": 3.25}, - {"matrix": [6, 0], "x": 2.5, "y": 4}, - {"matrix": [6, 1], "x": 3.5, "y": 4}, - {"matrix": [6, 2], "x": 4.5, "y": 4}, - {"matrix": [6, 3], "x": 5.5, "y": 4}, - {"matrix": [7, 2], "x": 7.5, "y": 4}, - {"matrix": [7, 3], "x": 8.5, "y": 4}, - {"matrix": [7, 4], "x": 9.5, "y": 4}, - {"matrix": [7, 5], "x": 10.5, "y": 4} - ] - } - } -} diff --git a/keyboards/takashicompany/mirageix/keymaps/default/keymap.c b/keyboards/takashicompany/mirageix/keymaps/default/keymap.c deleted file mode 100644 index 9708951df4..0000000000 --- a/keyboards/takashicompany/mirageix/keymaps/default/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// 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, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, - KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_RGUI - ), - - [1] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, - KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, - KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - KC_TRNS, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, - KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, - KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, - KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RALT, KC_RGUI - ), - - [4] = LAYOUT( - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS, - KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT( - KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, - KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [6] = LAYOUT( - KC_TRNS, KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, - KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [7] = LAYOUT( - KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [8] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/takashicompany/mirageix/readme.md b/keyboards/takashicompany/mirageix/readme.md deleted file mode 100644 index dcf55c55d9..0000000000 --- a/keyboards/takashicompany/mirageix/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# MirageiX - -![takashicompany/mirageix](https://i.imgur.com/93krKWQ.jpeg) - -MirageiX is a 44-key integrated keyboard. -The PCB has been trimmed to the limit to create a visual appearance in which only the keycaps seem to float. -By using a transparent acrylic case, you can enjoy a mirage-like keyboard expression. -The key layout is based on the TRON keyboard layout, making typing smoother than it looks. - -Keyswitches are fixed with sockets, allowing easy replacement of keyswitches. - -MirageiXは44キーの一体型キーボードです。 -PCBを極限まで切り詰めたことでキーキャップのみが浮き出るようなビジュアルを実現しました。 -透明なアクリルケースを用いることで蜃気楼のようなキーボード表現が楽しめます。 -キー配列もTRONというキーボードの配置を参考にしているため、見た目以上にスムーズなタイピングを実現します。 - -キースイッチはソケットで固定されるため、キースイッチの交換を容易に行えます。 - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: MirageiX PCB, Pro Micro -* Hardware Availability: https://github.com/takashicompany/mirageix - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/mirageix:default - -Flashing example for this keyboard: - - make takashicompany/mirageix:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/palmbrain/config.h b/keyboards/takashicompany/palmbrain/config.h deleted file mode 100644 index d9d98bf85f..0000000000 --- a/keyboards/takashicompany/palmbrain/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define EE_HANDS diff --git a/keyboards/takashicompany/palmbrain/keyboard.json b/keyboards/takashicompany/palmbrain/keyboard.json deleted file mode 100644 index 830b202bed..0000000000 --- a/keyboards/takashicompany/palmbrain/keyboard.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "Palmbrain", - "maintainer": "takashicompany", - "development_board": "promicro", - "dynamic_keymap": { - "layer_count": 12 - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "direct": [ - ["F5", "D1", "F6", "E6", "F7", "F4", "D0", "C6", "B4", "B1", "D3", "D4", "D7", "B5", "B3", "B2", "B6"] - ] - }, - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "direct": [ - ["F7", "E6", "F6", "D1", "F5", "B1", "B4", "C6", "D0", "F4", "B3", "B5", "D7", "D4", "D3", "B6", "B2"] - ] - } - }, - "serial": { - "pin": "D2" - } - }, - "url": "https://github.com/takashicompany/palmbrain", - "usb": { - "device_version": "1.0.0", - "pid": "0x0066", - "vid": "0x7463" - }, - "community_layouts": ["split_3x5_2"], - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.45}, - {"matrix": [0, 1], "x": 0.9, "y": 0.225}, - {"matrix": [0, 2], "x": 1.8, "y": 0}, - {"matrix": [0, 3], "x": 2.7, "y": 0.225}, - {"matrix": [0, 4], "x": 3.6, "y": 0.45}, - {"matrix": [1, 0], "x": 7.2, "y": 0.45}, - {"matrix": [1, 1], "x": 8.1, "y": 0.225}, - {"matrix": [1, 2], "x": 9, "y": 0}, - {"matrix": [1, 3], "x": 9.9, "y": 0.225}, - {"matrix": [1, 4], "x": 10.8, "y": 0.45}, - {"matrix": [0, 5], "x": 0, "y": 1.35}, - {"matrix": [0, 6], "x": 0.9, "y": 1.125}, - {"matrix": [0, 7], "x": 1.8, "y": 0.9}, - {"matrix": [0, 8], "x": 2.7, "y": 1.125}, - {"matrix": [0, 9], "x": 3.6, "y": 1.35}, - {"matrix": [1, 5], "x": 7.2, "y": 1.35}, - {"matrix": [1, 6], "x": 8.1, "y": 1.125}, - {"matrix": [1, 7], "x": 9, "y": 0.9}, - {"matrix": [1, 8], "x": 9.9, "y": 1.125}, - {"matrix": [1, 9], "x": 10.8, "y": 1.35}, - {"matrix": [0, 10], "x": 0, "y": 2.25}, - {"matrix": [0, 11], "x": 0.9, "y": 2.025}, - {"matrix": [0, 12], "x": 1.8, "y": 1.8}, - {"matrix": [0, 13], "x": 2.7, "y": 2.025}, - {"matrix": [0, 14], "x": 3.6, "y": 2.25}, - {"matrix": [1, 10], "x": 7.2, "y": 2.25}, - {"matrix": [1, 11], "x": 8.1, "y": 2.025}, - {"matrix": [1, 12], "x": 9, "y": 1.8}, - {"matrix": [1, 13], "x": 9.9, "y": 2.025}, - {"matrix": [1, 14], "x": 10.8, "y": 2.25}, - {"matrix": [0, 15], "x": 3.6, "y": 3.375}, - {"matrix": [0, 16], "x": 4.5, "y": 3.375}, - {"matrix": [1, 15], "x": 6.3, "y": 3.375}, - {"matrix": [1, 16], "x": 7.2, "y": 3.375} - ] - } - } -} diff --git a/keyboards/takashicompany/palmbrain/keymaps/default/keymap.c b/keyboards/takashicompany/palmbrain/keymaps/default/keymap.c deleted file mode 100644 index fede7140e2..0000000000 --- a/keyboards/takashicompany/palmbrain/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_split_3x5_2( - LT(4, KC_Q), KC_W, KC_E, LT(3, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, LT(4, KC_D), KC_F, KC_G, KC_H, KC_J, LT(3, KC_K), KC_L, KC_ENT, - LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, - LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1) - ), - - [1] = LAYOUT_split_3x5_2( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, - LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT_split_3x5_2( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), - KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_split_3x5_2( - KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, - KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [4] = LAYOUT_split_3x5_2( - KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(5), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT_split_3x5_2( - UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/takashicompany/palmbrain/readme.md b/keyboards/takashicompany/palmbrain/readme.md deleted file mode 100644 index ac41ca488a..0000000000 --- a/keyboards/takashicompany/palmbrain/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Palmbrain - -![takashicompany/Palmbrain](https://i.imgur.com/Og9lYip.jpeg) - -Palmbrain is a 34-key split keyboard with a key pitch of 17 mm (0.9 u). -It can be equipped with BLE Micro Pro and is also compatible with wireless connectivity. - -Palmbrainは17mm(0.9u)のキーピッチを採用した34キーの分割型のキーボードです。 -BLE Micro Proを搭載することが可能で、無線化にも対応しています。 - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: PCB, Pro Micro development board. -* Hardware Availability: https://github.com/takashicompany/palmbrain - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/palmbrain:default - -Flashing example for this keyboard: - - make takashicompany/palmbrain:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/palmslave/config.h b/keyboards/takashicompany/palmslave/config.h deleted file mode 100644 index d9d98bf85f..0000000000 --- a/keyboards/takashicompany/palmslave/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define EE_HANDS diff --git a/keyboards/takashicompany/palmslave/keyboard.json b/keyboards/takashicompany/palmslave/keyboard.json deleted file mode 100644 index a9825767ea..0000000000 --- a/keyboards/takashicompany/palmslave/keyboard.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "manufacturer": "takashicompany", - "keyboard_name": "Palmslave", - "maintainer": "takashicompany", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4"], - "rows": ["F4", "F5", "F6", "F7"] - }, - "split": { - "enabled": true, - "matrix_pins": { - "right": { - "cols": ["B4", "E6", "D7", "C6", "D4"], - "rows": ["F4", "F5", "F6", "F7"] - } - }, - "serial": { - "pin": "D2" - } - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x0063", - "vid": "0x7463" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.42, "w": 0.84, "h":0.84 }, - {"matrix": [0, 1], "x": 0.84, "y": 0.21, "w": 0.84, "h":0.84 }, - {"matrix": [0, 2], "x": 1.68, "y": 0, "w": 0.84, "h":0.84 }, - {"matrix": [0, 3], "x": 2.52, "y": 0.21, "w": 0.84, "h":0.84 }, - {"matrix": [0, 4], "x": 3.36, "y": 0.42, "w": 0.84, "h":0.84 }, - {"matrix": [4, 0], "x": 6.3, "y": 0.42, "w": 0.84, "h":0.84 }, - {"matrix": [4, 1], "x": 7.14, "y": 0.21, "w": 0.84, "h":0.84 }, - {"matrix": [4, 2], "x": 7.98, "y": 0, "w": 0.84, "h":0.84 }, - {"matrix": [4, 3], "x": 8.82, "y": 0.21, "w": 0.84, "h":0.84 }, - {"matrix": [4, 4], "x": 9.66, "y": 0.42, "w": 0.84, "h":0.84 }, - {"matrix": [1, 0], "x": 0, "y": 1.26, "w": 0.84, "h":0.84 }, - {"matrix": [1, 1], "x": 0.84, "y": 1.05, "w": 0.84, "h":0.84 }, - {"matrix": [1, 2], "x": 1.68, "y": 0.84, "w": 0.84, "h":0.84 }, - {"matrix": [1, 3], "x": 2.52, "y": 1.05, "w": 0.84, "h":0.84 }, - {"matrix": [1, 4], "x": 3.36, "y": 1.26, "w": 0.84, "h":0.84 }, - {"matrix": [5, 0], "x": 6.3, "y": 1.26, "w": 0.84, "h":0.84 }, - {"matrix": [5, 1], "x": 7.14, "y": 1.05, "w": 0.84, "h":0.84 }, - {"matrix": [5, 2], "x": 7.98, "y": 0.84, "w": 0.84, "h":0.84 }, - {"matrix": [5, 3], "x": 8.82, "y": 1.05, "w": 0.84, "h":0.84 }, - {"matrix": [5, 4], "x": 9.66, "y": 1.26, "w": 0.84, "h":0.84 }, - {"matrix": [2, 0], "x": 0, "y": 2.1, "w": 0.84, "h":0.84 }, - {"matrix": [2, 1], "x": 0.84, "y": 1.89, "w": 0.84, "h":0.84 }, - {"matrix": [2, 2], "x": 1.68, "y": 1.68, "w": 0.84, "h":0.84 }, - {"matrix": [2, 3], "x": 2.52, "y": 1.89, "w": 0.84, "h":0.84 }, - {"matrix": [2, 4], "x": 3.36, "y": 2.1, "w": 0.84, "h":0.84 }, - {"matrix": [6, 0], "x": 6.3, "y": 2.1, "w": 0.84, "h":0.84 }, - {"matrix": [6, 1], "x": 7.14, "y": 1.89, "w": 0.84, "h":0.84 }, - {"matrix": [6, 2], "x": 7.98, "y": 1.68, "w": 0.84, "h":0.84 }, - {"matrix": [6, 3], "x": 8.82, "y": 1.89, "w": 0.84, "h":0.84 }, - {"matrix": [6, 4], "x": 9.66, "y": 2.1, "w": 0.84, "h":0.84 }, - {"matrix": [3, 1], "x": 1.68, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [3, 2], "x": 2.52, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [3, 3], "x": 3.36, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [3, 4], "x": 4.2, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [7, 0], "x": 5.46, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [7, 1], "x": 6.3, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [7, 2], "x": 7.14, "y": 3.15, "w": 0.84, "h":0.84 }, - {"matrix": [7, 3], "x": 7.98, "y": 3.15, "w": 0.84, "h":0.84 } - ] - } - } -} diff --git a/keyboards/takashicompany/palmslave/keymaps/default/keymap.c b/keyboards/takashicompany/palmslave/keymaps/default/keymap.c deleted file mode 100644 index 294aa9fde0..0000000000 --- a/keyboards/takashicompany/palmslave/keymaps/default/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2025 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - LT(4, KC_Q), KC_W, KC_E, LT(3, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, LT(3, KC_K), KC_L, KC_ENT, - LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, - KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI, KC_RCTL - ), - - [1] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, - LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), - KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, - KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, - KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [4] = LAYOUT( - KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(5), MO(6), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [5] = LAYOUT( - UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [6] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ) -}; diff --git a/keyboards/takashicompany/palmslave/readme.md b/keyboards/takashicompany/palmslave/readme.md deleted file mode 100644 index ea51a41ef7..0000000000 --- a/keyboards/takashicompany/palmslave/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Palmslave - -![Palmslave](https://i.imgur.com/oDluHBC.jpeg) - -Palmslave is a split keyboard with 0.8u (16mm) key pitch. -The size of a single key is 80% of the size of a key on a conventional keyboard. -Although the key size is more compact than usual, it has the advantage of requiring minimal finger movement. -The number of keys is 19 keys for one hand and 38 keys for two hands. -Keyswitches are compatible with Choc v1 and Choc v2. -The board can be fitted with a key switch socket, allowing the keyswitch to be replaced according to mood or fashion. - -Palmslaveは0.8u(16mm)キーピッチの分割型のキーボードです。 -一つのキーの大きさが従来のキーボードのキーと比較すると80%のサイズとなっています。 -通常よりコンパクトなキーサイズですが、指の動きが最小限で済むという強みがあります。 -キー数は片手で19キー、両手で38キーとなります。 -キースイッチはChoc v1とChoc v2に対応しています。 -基板はキースイッチソケットの取り付けが可能で、気分や流行でキースイッチを付け替えることが可能です。 - -* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: Palmslave PCB(s), x2 Pro Micro development board -* Hardware Availability: https://github.com/takashicompany/palmslave - -Make example for this keyboard (after setting up your build environment): - - make takashicompany/palmslave:default - -Flashing example for this keyboard: - - make takashicompany/palmslave:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/qoolee/keyboard.json b/keyboards/takashicompany/qoolee/keyboard.json index 873ca082ac..bce2335293 100644 --- a/keyboards/takashicompany/qoolee/keyboard.json +++ b/keyboards/takashicompany/qoolee/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, @@ -52,8 +54,9 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 1} ] }, - "development_board": "promicro", - "layouts": { + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, diff --git a/keyboards/takashicompany/qoolee/keymaps/default/keymap.c b/keyboards/takashicompany/qoolee/keymaps/default/keymap.c index 7c6f68ee5e..04595e49c1 100644 --- a/keyboards/takashicompany/qoolee/keymaps/default/keymap.c +++ b/keyboards/takashicompany/qoolee/keymaps/default/keymap.c @@ -69,9 +69,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } else { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } return true; diff --git a/keyboards/takashicompany/radialex/keyboard.json b/keyboards/takashicompany/radialex/keyboard.json index e1b88feac8..34ef3d2f1f 100644 --- a/keyboards/takashicompany/radialex/keyboard.json +++ b/keyboards/takashicompany/radialex/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -47,7 +49,8 @@ "rows": ["B6", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/rookey/keyboard.json b/keyboards/takashicompany/rookey/keyboard.json index 5e530a5a3c..9473345409 100644 --- a/keyboards/takashicompany/rookey/keyboard.json +++ b/keyboards/takashicompany/rookey/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/spreadwriter/keyboard.json b/keyboards/takashicompany/spreadwriter/keyboard.json index d544a3e13e..2c9fcd1619 100644 --- a/keyboards/takashicompany/spreadwriter/keyboard.json +++ b/keyboards/takashicompany/spreadwriter/keyboard.json @@ -2,7 +2,7 @@ "manufacturer": "takashicompany", "keyboard_name": "Spreadwriter", "maintainer": "takashicompany", - "development_board": "promicro", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -16,6 +16,7 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "D2"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, + "processor": "atmega32u4", "url": "https://github.com/takashicompany/spreadwriter", "usb": { "device_version": "1.0.0", @@ -30,6 +31,8 @@ "rgblight": { "led_count": 53, "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 5858e9d8b1..83572b124b 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -81,9 +81,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } return false; } diff --git a/keyboards/takashicompany/tightwriter/keyboard.json b/keyboards/takashicompany/tightwriter/keyboard.json index 6fb86b874b..201e3f6ed5 100644 --- a/keyboards/takashicompany/tightwriter/keyboard.json +++ b/keyboards/takashicompany/tightwriter/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -15,6 +17,7 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0025", diff --git a/keyboards/takashiski/hecomi/alpha/keyboard.json b/keyboards/takashiski/hecomi/alpha/keyboard.json index 58167f38d6..edb920c82d 100644 --- a/keyboards/takashiski/hecomi/alpha/keyboard.json +++ b/keyboards/takashiski/hecomi/alpha/keyboard.json @@ -43,7 +43,8 @@ "ws2812": { "pin": "D4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashiski/hecomi/rules.mk b/keyboards/takashiski/hecomi/rules.mk new file mode 100644 index 0000000000..41002fe272 --- /dev/null +++ b/keyboards/takashiski/hecomi/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = takashiski/hecomi/alpha diff --git a/keyboards/takashiski/namecard2x4/info.json b/keyboards/takashiski/namecard2x4/info.json index dd95017b3b..895f3e4c4b 100644 --- a/keyboards/takashiski/namecard2x4/info.json +++ b/keyboards/takashiski/namecard2x4/info.json @@ -16,7 +16,8 @@ "pid": "0x0000", "device_version": "0.0.1" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashiski/namecard2x4/rules.mk b/keyboards/takashiski/namecard2x4/rules.mk new file mode 100644 index 0000000000..f93cfc823d --- /dev/null +++ b/keyboards/takashiski/namecard2x4/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = takashiski/namecard2x4/rev2 diff --git a/keyboards/takashiski/otaku_split/rev0/keyboard.json b/keyboards/takashiski/otaku_split/rev0/keyboard.json index 911d883eb3..193254aa1a 100644 --- a/keyboards/takashiski/otaku_split/rev0/keyboard.json +++ b/keyboards/takashiski/otaku_split/rev0/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "otaku split rev.0", "manufacturer": "takashiski", + "url": "", "maintainer": "takashiski", "usb": { "vid": "0xFEED", diff --git a/keyboards/taleguers/taleguers75/keyboard.json b/keyboards/taleguers/taleguers75/keyboard.json index 0af1b2634b..8c3a1565e2 100644 --- a/keyboards/taleguers/taleguers75/keyboard.json +++ b/keyboards/taleguers/taleguers75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Taleguers75", "manufacturer": "Taleguers", + "url": "", "maintainer": "borlopjim", "usb": { "vid": "0x8476", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tanuki/keyboard.json b/keyboards/tanuki/keyboard.json index ac6b257652..0c4045e320 100644 --- a/keyboards/tanuki/keyboard.json +++ b/keyboards/tanuki/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tanuki", "manufacturer": "Seth", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -45,7 +48,8 @@ "rows": ["F7", "B1", "D4", "D0"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tanuki/keymaps/default/keymap.c b/keyboards/tanuki/keymaps/default/keymap.c index 54e0da444b..9c60cdc59e 100644 --- a/keyboards/tanuki/keymaps/default/keymap.c +++ b/keyboards/tanuki/keymaps/default/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_UL] = LAYOUT( KC_GRV, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSLS, KC_PLUS, KC_UNDS, KC_MINS, KC_EQL, KC_DEL, KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - KC_TRNS, CUSTRGB, UG_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_VALD, KC_TRNS, KC_TRNS, - KC_TRNS, UG_NEXT, UG_HUEU, KC_TRNS, KC_TRNS, UG_SATU, UG_VALU), + KC_TRNS, CUSTRGB, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_VAI), [_GL] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, @@ -96,12 +96,12 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { } return false; break; - case QK_UNDERGLOW_MODE_NEXT: - case QK_UNDERGLOW_SATURATION_DOWN: - case QK_UNDERGLOW_SATURATION_UP: - case QK_UNDERGLOW_HUE_UP: - case QK_UNDERGLOW_VALUE_DOWN: - case QK_UNDERGLOW_VALUE_UP: + case RGB_MOD: + case RGB_SAD: + case RGB_SAI: + case RGB_HUI: + case RGB_VAD: + case RGB_VAI: if(user_config.layer_rgb && record->event.pressed) { return false; // if layer RGB is on, ignore attempts to change RGB settings } diff --git a/keyboards/tau4/keyboard.json b/keyboards/tau4/keyboard.json index 9a8e280905..f5acdbddd3 100644 --- a/keyboards/tau4/keyboard.json +++ b/keyboards/tau4/keyboard.json @@ -47,6 +47,7 @@ "twinkle": true }, "brightness_steps": 8, + "hue_steps": 8, "layers": { "blink": false, "enabled": true, diff --git a/keyboards/teahouse/ayleen/keyboard.json b/keyboards/teahouse/ayleen/keyboard.json index adb1695086..4b64ba96d1 100644 --- a/keyboards/teahouse/ayleen/keyboard.json +++ b/keyboards/teahouse/ayleen/keyboard.json @@ -9,6 +9,8 @@ "features": { "rgblight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/team0110/p1800fl/keyboard.json b/keyboards/team0110/p1800fl/keyboard.json index 2e99ddeb87..681482db5b 100644 --- a/keyboards/team0110/p1800fl/keyboard.json +++ b/keyboards/team0110/p1800fl/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/technika/keyboard.json b/keyboards/technika/keyboard.json index fc894fefb5..a6f3c2bd01 100644 --- a/keyboards/technika/keyboard.json +++ b/keyboards/technika/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Technika", "manufacturer": "TealTechnik", + "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8484", diff --git a/keyboards/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c index 381228f42d..60983df435 100644 --- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_75_ansi( /* keymap for layer 2 */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, - RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, - KC_TRNS, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, + RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) @@ -57,8 +57,8 @@ and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - hsv_t hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; - rgb_t rgb_ind = hsv_to_rgb(hsv_ind); + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; + RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. This is to avoid having the LED persist on until the animation randomly refreshes it. */ @@ -70,8 +70,8 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - hsv_t hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; - rgb_t rgb_ind = hsv_to_rgb(hsv_ind); + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; + RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); rgb_matrix_set_color(A_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); @@ -85,8 +85,8 @@ bool rgb_matrix_indicators_user(void) { layer_state_t layer_state_set_user(layer_state_t state) { /* If reverting to base layer (no special LED effects) and rain animation is on, set "layer 1" mods back to matrix color to avoid single key persistence*/ if(!IS_LAYER_ON_STATE(state, 1) && rgb_matrix_get_mode() == 10) { - hsv_t hsv_mat = rgb_matrix_get_hsv(); - rgb_t rgb_mat = hsv_to_rgb(hsv_mat); + HSV hsv_mat = rgb_matrix_get_hsv(); + RGB rgb_mat = hsv_to_rgb(hsv_mat); rgb_matrix_set_color(W_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); rgb_matrix_set_color(A_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); diff --git a/keyboards/teleport/native/ansi/rules.mk b/keyboards/teleport/native/ansi/rules.mk deleted file mode 100644 index 942ef4c5db..0000000000 --- a/keyboards/teleport/native/ansi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGB_MATRIX_CUSTOM_KB = yes diff --git a/keyboards/teleport/native/board.h b/keyboards/teleport/native/board.h deleted file mode 100644 index 41efeb2c1a..0000000000 --- a/keyboards/teleport/native/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Moritz Plattner -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index cd823d725e..31d0025883 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -67,3 +67,6 @@ along with this program. If not, see . #ifdef ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_TYPING_HEATMAP_SLIM #endif + +/* Set HSE clock since it differs from F411 default */ +#define STM32_HSECLK 16000000 diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index b1cb06c942..756764ff6f 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -7,12 +7,8 @@ "processor": "STM32F411", "usb": { "vid": "0x7470", - "device_version": "1.0.0" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "1.0.0", + "force_nkro": true }, "rgb_matrix": { "animations": { @@ -38,6 +34,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/teleport/native/iso/keymaps/default/keymap.c b/keyboards/teleport/native/iso/keymaps/default/keymap.c index 1ad7cb1f62..68105f0a02 100644 --- a/keyboards/teleport/native/iso/keymaps/default/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_75_iso( /* keymap for layer 2 */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, - RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, - KC_TRNS, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, + RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -57,8 +57,8 @@ and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - hsv_t hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; - rgb_t rgb_ind = hsv_to_rgb(hsv_ind); + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; + RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. This is to avoid having the LED persist on until the animation randomly refreshes it. */ @@ -70,8 +70,8 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - hsv_t hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; - rgb_t rgb_ind = hsv_to_rgb(hsv_ind); + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; + RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); rgb_matrix_set_color(A_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); @@ -85,8 +85,8 @@ bool rgb_matrix_indicators_user(void) { layer_state_t layer_state_set_user(layer_state_t state) { /* If reverting to base layer (no special LED effects) and rain animation is on, set "layer 1" mods back to matrix color to avoid single key persistence*/ if(!IS_LAYER_ON_STATE(state, 1) && rgb_matrix_get_mode() == 10) { - hsv_t hsv_mat = rgb_matrix_get_hsv(); - rgb_t rgb_mat = hsv_to_rgb(hsv_mat); + HSV hsv_mat = rgb_matrix_get_hsv(); + RGB rgb_mat = hsv_to_rgb(hsv_mat); rgb_matrix_set_color(W_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); rgb_matrix_set_color(A_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); diff --git a/keyboards/teleport/native/iso/rules.mk b/keyboards/teleport/native/iso/rules.mk deleted file mode 100644 index 942ef4c5db..0000000000 --- a/keyboards/teleport/native/iso/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGB_MATRIX_CUSTOM_KB = yes diff --git a/keyboards/teleport/native/rgb_matrix_kb.inc b/keyboards/teleport/native/rgb_matrix_kb.inc index 383a751ee1..5df5312a42 100644 --- a/keyboards/teleport/native/rgb_matrix_kb.inc +++ b/keyboards/teleport/native/rgb_matrix_kb.inc @@ -18,13 +18,13 @@ static bool SINGLE_COLOR_RAINDROPS(effect_params_t* params) { } // Take matrix color, add between -5 and +5 to hue, random brightness between 0 and val, set to 0 if val between 0 and 5, then write to LED - hsv_t hsv = rgb_matrix_get_hsv(); + HSV hsv = rgb_matrix_get_hsv(); hsv.h = rgb_matrix_get_hue() - 2 + random8() % 5; hsv.v = random8() % rgb_matrix_get_val(); if (hsv.v < 5) { hsv.v = 0; } - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); wait_timer = g_rgb_timer + interval(); } @@ -51,7 +51,7 @@ bool STATIC_GAME_MODE(effect_params_t* params) { return; } - hsv_t hsv = rgb_matrix_get_hsv(); + HSV hsv = rgb_matrix_get_hsv(); switch (i) { case W_LED_INDEX: @@ -92,7 +92,7 @@ bool STATIC_GAME_MODE(effect_params_t* params) { break; } - rgb_t rgb = hsv_to_rgb(hsv); + RGB rgb = hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/keyboards/teleport/native/rules.mk b/keyboards/teleport/native/rules.mk new file mode 100644 index 0000000000..53dc2b1747 --- /dev/null +++ b/keyboards/teleport/native/rules.mk @@ -0,0 +1,3 @@ +RGB_MATRIX_CUSTOM_KB = yes + +DEFAULT_FOLDER = teleport/native/iso diff --git a/keyboards/teleport/numpad/keyboard.json b/keyboards/teleport/numpad/keyboard.json index 00862e4f9f..ace8e949e0 100644 --- a/keyboards/teleport/numpad/keyboard.json +++ b/keyboards/teleport/numpad/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/teleport/tkl/keyboard.json b/keyboards/teleport/tkl/keyboard.json index b6b93667f4..9fb88acb74 100644 --- a/keyboards/teleport/tkl/keyboard.json +++ b/keyboards/teleport/tkl/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/telophase/keyboard.json b/keyboards/telophase/keyboard.json index d3a86ebcbf..8efbae5519 100644 --- a/keyboards/telophase/keyboard.json +++ b/keyboards/telophase/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Telophase", "manufacturer": "Unknown", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/tempo_turtle/bradpad/keyboard.json b/keyboards/tempo_turtle/bradpad/keyboard.json index eafadc10e0..374dbeaaaf 100644 --- a/keyboards/tempo_turtle/bradpad/keyboard.json +++ b/keyboards/tempo_turtle/bradpad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tender/macrowo_pad/keyboard.json b/keyboards/tender/macrowo_pad/keyboard.json index 13f486d5b5..53e22289f6 100644 --- a/keyboards/tender/macrowo_pad/keyboard.json +++ b/keyboards/tender/macrowo_pad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -19,7 +21,8 @@ "rows": ["B5", "D7"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tenki/keyboard.json b/keyboards/tenki/keyboard.json index 394e4cbfdf..628e2068ba 100644 --- a/keyboards/tenki/keyboard.json +++ b/keyboards/tenki/keyboard.json @@ -32,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -48,7 +50,8 @@ "rows": ["B1", "B4", "F6", "B6", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x4"], "layouts": { "LAYOUT_ortho_5x4": { diff --git a/keyboards/terrazzo/keyboard.json b/keyboards/terrazzo/keyboard.json index 71aa43f7e9..fb8bc6b483 100644 --- a/keyboards/terrazzo/keyboard.json +++ b/keyboards/terrazzo/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Terrazzo", "manufacturer": "MsMustard", + "url": "", "maintainer": "MsMustard", "usb": { "vid": "0x4D4D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "led_matrix": true, diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c index a629e5dceb..2a3d2a8cc6 100644 --- a/keyboards/terrazzo/terrazzo.c +++ b/keyboards/terrazzo/terrazzo.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ -#include #include "terrazzo.h" #ifdef LED_MATRIX_ENABLE diff --git a/keyboards/tetris/keyboard.json b/keyboards/tetris/keyboard.json index 3500a9ffac..57cfd42c70 100644 --- a/keyboards/tetris/keyboard.json +++ b/keyboards/tetris/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tetris", "manufacturer": "Fengz", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -34,6 +35,8 @@ "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tetris/keymaps/default/keymap.c b/keyboards/tetris/keymaps/default/keymap.c index f68704fe37..041d928610 100755 --- a/keyboards/tetris/keymaps/default/keymap.c +++ b/keyboards/tetris/keymaps/default/keymap.c @@ -139,7 +139,7 @@ void matrix_scan_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t * record) { switch (keycode) { - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: RGB_LAYER0_mode = rgblight_config.mode; break; default: diff --git a/keyboards/tg4x/keyboard.json b/keyboards/tg4x/keyboard.json index 0cedae15d6..ae4cd53a28 100644 --- a/keyboards/tg4x/keyboard.json +++ b/keyboards/tg4x/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TG4x", "manufacturer": "MythosMann", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D4D", @@ -33,6 +34,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -49,8 +52,9 @@ "rows": ["B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", - "layouts": { + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/tg67/keyboard.json b/keyboards/tg67/keyboard.json index 308f16cc99..8c860e5996 100644 --- a/keyboards/tg67/keyboard.json +++ b/keyboards/tg67/keyboard.json @@ -33,6 +33,7 @@ "led_count": 69, "saturation_steps": 8 }, + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6667", diff --git a/keyboards/tg67/mcuconf.h b/keyboards/tg67/mcuconf.h index a4bf617885..8d8fd085d4 100644 --- a/keyboards/tg67/mcuconf.h +++ b/keyboards/tg67/mcuconf.h @@ -20,3 +20,6 @@ #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE diff --git a/keyboards/tgr/910/keyboard.json b/keyboards/tgr/910/keyboard.json index dad6cb8bd0..072eb07ea1 100644 --- a/keyboards/tgr/910/keyboard.json +++ b/keyboards/tgr/910/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TGR-910", "manufacturer": "Quadcube", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/910ce/keyboard.json b/keyboards/tgr/910ce/keyboard.json index 39dc5c3746..4d70a5b5db 100644 --- a/keyboards/tgr/910ce/keyboard.json +++ b/keyboards/tgr/910ce/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "910CE", "manufacturer": "TGR", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/alice/keyboard.json b/keyboards/tgr/alice/keyboard.json index c477d52e04..d78185106b 100644 --- a/keyboards/tgr/alice/keyboard.json +++ b/keyboards/tgr/alice/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alice", "manufacturer": "TGR", + "url": "", "maintainer": "Felipe Coury", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/jane/v2/keyboard.json b/keyboards/tgr/jane/v2/keyboard.json index 3028064cd1..dc36757eb5 100644 --- a/keyboards/tgr/jane/v2/keyboard.json +++ b/keyboards/tgr/jane/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jane v2", "manufacturer": "TGR", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/tgr/jane/v2ce/keyboard.json b/keyboards/tgr/jane/v2ce/keyboard.json index 66dcb9fd25..107e2dee9e 100644 --- a/keyboards/tgr/jane/v2ce/keyboard.json +++ b/keyboards/tgr/jane/v2ce/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Jane v2 CE", "manufacturer": "TGR", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/tgr/tris/keyboard.json b/keyboards/tgr/tris/keyboard.json index 13f2eef8a1..7776c7b2c9 100644 --- a/keyboards/tgr/tris/keyboard.json +++ b/keyboards/tgr/tris/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Tris", "manufacturer": "TGR", + "url": "", "maintainer": "halfenergized", "usb": { "vid": "0x5447", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/tris/readme.md b/keyboards/tgr/tris/readme.md index e01e7decaa..c9cc199069 100644 --- a/keyboards/tgr/tris/readme.md +++ b/keyboards/tgr/tris/readme.md @@ -1,5 +1,7 @@ # TGR Tris/Tris CE +A short description of the keyboard/project + * Keyboard Maintainer: [poisonking](https://github.com/halfenergized) * Hardware Supported: Tris PCB * Hardware Availability: https://geekhack.org/index.php?topic=86221.0 diff --git a/keyboards/the_royal/liminal/keyboard.json b/keyboards/the_royal/liminal/keyboard.json index e23c468702..0a5bd361e7 100644 --- a/keyboards/the_royal/liminal/keyboard.json +++ b/keyboards/the_royal/liminal/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Liminal", "manufacturer": "TheRoyalSweatshirt", + "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", @@ -18,6 +19,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/the_royal/schwann/keyboard.json b/keyboards/the_royal/schwann/keyboard.json index d1db1f3e41..800d45b83a 100644 --- a/keyboards/the_royal/schwann/keyboard.json +++ b/keyboards/the_royal/schwann/keyboard.json @@ -31,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json index 069a4b79fa..c67262c562 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json +++ b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/noodlepad/info.json b/keyboards/themadnoodle/noodlepad/info.json index 48f984339c..8ad698df38 100644 --- a/keyboards/themadnoodle/noodlepad/info.json +++ b/keyboards/themadnoodle/noodlepad/info.json @@ -8,6 +8,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/noodlepad/rules.mk b/keyboards/themadnoodle/noodlepad/rules.mk new file mode 100644 index 0000000000..318832e121 --- /dev/null +++ b/keyboards/themadnoodle/noodlepad/rules.mk @@ -0,0 +1,3 @@ +# Default folder for noodlepad +DEFAULT_FOLDER = themadnoodle/noodlepad/v1 + diff --git a/keyboards/themadnoodle/noodlepad_micro/keyboard.json b/keyboards/themadnoodle/noodlepad_micro/keyboard.json index 868cce3177..fe7ab9ea75 100644 --- a/keyboards/themadnoodle/noodlepad_micro/keyboard.json +++ b/keyboards/themadnoodle/noodlepad_micro/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/udon13/keyboard.json b/keyboards/themadnoodle/udon13/keyboard.json index 31ad17a367..b0ece11612 100644 --- a/keyboards/themadnoodle/udon13/keyboard.json +++ b/keyboards/themadnoodle/udon13/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "encoder": true, "mousekey": true, diff --git a/keyboards/theone/keyboard.json b/keyboards/theone/keyboard.json index be141628f0..3b4fc99d05 100644 --- a/keyboards/theone/keyboard.json +++ b/keyboards/theone/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/thepanduuh/degenpad/keyboard.json b/keyboards/thepanduuh/degenpad/keyboard.json index d74fd0dd2c..7a0edc2124 100644 --- a/keyboards/thepanduuh/degenpad/keyboard.json +++ b/keyboards/thepanduuh/degenpad/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/thevankeyboards/bananasplit/keyboard.json b/keyboards/thevankeyboards/bananasplit/keyboard.json index b8845f165c..1fb7fc5054 100644 --- a/keyboards/thevankeyboards/bananasplit/keyboard.json +++ b/keyboards/thevankeyboards/bananasplit/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BananaSplit 60", "manufacturer": "TheVan Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/thevankeyboards/caravan/keyboard.json b/keyboards/thevankeyboards/caravan/keyboard.json index 578a2b3021..a5c00abf4e 100644 --- a/keyboards/thevankeyboards/caravan/keyboard.json +++ b/keyboards/thevankeyboards/caravan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Caravan", "manufacturer": "TheVan Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", @@ -9,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/thevankeyboards/jetvan/keyboard.json b/keyboards/thevankeyboards/jetvan/keyboard.json index 4d73b04537..a5a9b96ac8 100644 --- a/keyboards/thevankeyboards/jetvan/keyboard.json +++ b/keyboards/thevankeyboards/jetvan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "JetVan", "manufacturer": "evangs", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", @@ -28,6 +29,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/thevankeyboards/minivan/keyboard.json b/keyboards/thevankeyboards/minivan/keyboard.json index 547762a7f4..53b3e0d89c 100644 --- a/keyboards/thevankeyboards/minivan/keyboard.json +++ b/keyboards/thevankeyboards/minivan/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Minivan", "manufacturer": "Evan Sailer", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", @@ -17,6 +18,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c index 221c66750a..fadf9990cd 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c @@ -18,9 +18,11 @@ #define L_CURBR LSFT(KC_LBRC) #define R_CURBR LSFT(KC_RBRC) -#define QWERTY PDF(_QW) -#define COLEMAK PDF(_CM) -#define DVORAK PDF(_DV) +enum custom_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = LAYOUT( /* Qwerty */ @@ -60,3 +62,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ ) }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DV); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QW); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_CM); + } + return false; + default: + return true; + } + return true; +}; diff --git a/keyboards/thevankeyboards/roadkit/keyboard.json b/keyboards/thevankeyboards/roadkit/keyboard.json index b6933d677d..e3c282bffe 100644 --- a/keyboards/thevankeyboards/roadkit/keyboard.json +++ b/keyboards/thevankeyboards/roadkit/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Roadkit Micro", "manufacturer": "TheVan Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/thumbsup/keymaps/default/keymap.c b/keyboards/thumbsup/keymaps/default/keymap.c deleted file mode 100644 index e9fb913248..0000000000 --- a/keyboards/thumbsup/keymaps/default/keymap.c +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright 2022 Alexander (Sasha) Karmanov - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _QWERTY, - _CURSORLEFT, - _CURSORRGHT, - _NUMBERS, - _EXTRARIGHT -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------+ +-----------------------------------------. - * | Esc | Q | W | E | R | T | | Y | U | I | O | P |BSpc | - * |------+------+------+------+------+------+ +------+------+------+------+------+------| - * | Tab | A | S | D | F | G | | H | J | K | L | ; |Enter | -Hold: - Extra-Rt - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | Z | X | C | V | B | | N | M | , | . | / |RCtrl | - * +------+------+------+------+------+------+ +------+------+------+------+------+------+ - . | GUI | Alt | | | | | | RAlt | Menu | . - | +------+------+ | | | | +------+------+ | -Hold: | | LSft |CursLt| |CursRt| RSft | | -Single hit: | | |Space | |Space | | | - | +------+------| |------+------+ | - +------------------------------> SPACE SPACE <-----------------------------+ - - */ -[_QWERTY] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - LT(_EXTRARIGHT,KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_PENT, - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, - KC_SPC, KC_LGUI, KC_LALT, KC_LSFT, LT(_CURSORLEFT,KC_SPC), LT(_CURSORRGHT ,KC_SPC), KC_RSFT, KC_RALT, KC_APP, KC_SPC -), - - -/* - -Layers below are used on top of QWERTY layer defined above. -(Except the PLOVER/STENO layers.) - +-------+ -The keys which are shown empty, like this: | |, represent a transparent key, - +-------+ -meaning the key from the underlaying layer (i.e. QWERTY) will be used. -In the keymaps those keys are defined as "_______". - - +-------+ +-------+ -The keys which are shown solid, like this: | XXXXX | or this | ... |, represent an opaque/blocking key? - +-------+ +-------+ -Such key is not doing anything in that layer nor allowing the key from the underlaying layer -to be invoked. -In the keymaps those keys are defined as "XXXXXXX". - -Most of the modifiers are the same in all layers. -So in most layers they are defined as transparent keys, -letting the keys from QWERTY layer to do the work. - -With that idea all the layers below leave the unmodified keys as transparent keys. -In the same time - the layers block the keys that have no sense to be used -in that given layer. For instance in the cursor control layers -some of the keys are not used in the layer, but they are blocked to avoid -alpha-keys from QWERTY layer to appear. - -For the same reason the keymaps below are shown simplified, -without separate thumbcluster. - -*/ - - - -/* Cursor Control on the right (Right Space) - * ,-----------------------------------------------------------------------------------. - * | Esc |Break |WheelD|MousUp|WheelU| Del | Ins | Home | Up | End | ` | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |SelAll|MousLt|MousDn|MousRt| ... | PgUp | Left | Down |Right | ... | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Undo | Cut | Copy | Paste| ... | PgDn |MsBtLe|MsBtMi|MsBtRt| ... | | - * `------+------+------+------+------+------+------+------+------+------+------+------. - * | | | | | X | | | | - * `-------------------------------------------------------' - */ -[_CURSORRGHT] = LAYOUT( - _______, KC_BRK, MS_WHLD, MS_UP, MS_WHLU, KC_DEL, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_GRV, KC_DEL, - KC_ENT, LCTL(KC_A), MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______, - _______, LCTL(KC_Z), LSFT(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, KC_INS, MS_BTN1, MS_BTN3, MS_BTN2, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - - - - /* Cursor Control on the left (Left Space) - * ,-----------------------------------------------------------------------------------. - * | |Break | Home | Up | End | Ins | Del |WheelU|MousUp|WheelD| ` | Del | - * |------+------+------+------+------+------+-------------+------+------+------+------| - * | Enter|SelAll|Right | Down | Left | PgUp | xxx |MousLt|MousDn|MousRt| xxx |Enter | - * |------+------+------+------+------+------+------|------+------+------+------+------| - * | | xxx |MsBtRt|MsBtMi|MsBtLe| PgDn | xxx | Cut | Copy | Paste| xxx | | - * `------+------+------+------+------+------+------+------+------+------+------+------. - * | | | | X | | | | | - * `-------------------------------------------------------' - */ -[_CURSORLEFT] = LAYOUT( - _______, KC_BRK, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DEL, MS_WHLU, MS_UP, MS_WHLD, KC_GRV, KC_DEL, - KC_ENT, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, MS_LEFT, MS_DOWN, MS_RGHT, XXXXXXX, _______, - _______, XXXXXXX, MS_BTN2, MS_BTN3, MS_BTN1, KC_INS, XXXXXXX, LCTL(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - - - /* Numbers on the home row, FNs on the top row, symbols in the second row - * (Lower or Raise) - * ,-----------------------------------------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BackSp| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| Enter| - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F11 | F12 | LAlt |LShift| LAlt | RAlt |RShift| , | . | / | | - * `------+------+------+------+------+------+------+------+------+------+------+------. - * | | | | | | | | | - * `-------------------------------------------------------' - */ -[_NUMBERS] = LAYOUT( - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - LT(_EXTRARIGHT,KC_TAB), 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_LALT, KC_LSFT, KC_LALT, KC_RALT, KC_RSFT, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* ExtraRightSide (the keys from the right side which did not fit into the matrix) - * ,-----------------------------------------------------------------------------------. - * | Esc |BREAK |PLOVR2|PLOVER|TxBOLT|TxBlt2| ` | = | ( | ) | - | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * |******| | | | | |PrtScr| | | | ' | | - This is the - key turning - this layer on - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |NumPad|Qwerty| | | | [ | ] | \ | | - * `------+------+------+------+------+------+------+------+------+------+------+------. - * | | | | | | | | | - * `-------------------------------------------------------' - */ -[_EXTRARIGHT] = LAYOUT( - _______, KC_BRK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, KC_EQL, KC_LPRN, KC_RPRN, KC_MINS, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _CURSORLEFT, _CURSORRGHT, _NUMBERS); -} diff --git a/keyboards/thumbsup/rev9_promicro_4x12/config.h b/keyboards/thumbsup/rev9_promicro_4x12/config.h deleted file mode 100644 index 71300e008d..0000000000 --- a/keyboards/thumbsup/rev9_promicro_4x12/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2024 Alexander (Sasha) Karmanov (ak66666) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - - -#pragma once - - -//Cirque ProGlide Touchpad configuration -#define POINTING_DEVICE_ROTATION_90 -#define CIRQUE_PINNACLE_TAP_ENABLE -#define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE -#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE - -#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE diff --git a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json deleted file mode 100644 index 95fa6664b2..0000000000 --- a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "manufacturer": "Alexander (Sasha) Karmanov", - "keyboard_name": "ThumbsUp! v9", - "maintainer": "u/ak66666", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "pointing_device": true - }, - "dynamic_keymap": { - "layer_count": 6 - }, - "matrix_pins": { - "cols": ["B2", "B6", "B5", "B4", "E6", "D7", "B3", "F4", "F5", "F6", "F7", "B1"], - "rows": ["D3", "D2", "D4", "C6"] - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0090", - "vid": "0x5361" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Q", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "W", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "E", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "R", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "T", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "Y", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "U", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "I", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "O", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "P", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "BKSPC", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "A", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "S", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "D", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "F", "matrix": [1, 4], "x": 4, "y": 1}, - {"label": "G", "matrix": [1, 5], "x": 5, "y": 1}, - {"label": "H", "matrix": [1, 6], "x": 6, "y": 1}, - {"label": "J", "matrix": [1, 7], "x": 7, "y": 1}, - {"label": "K", "matrix": [1, 8], "x": 8, "y": 1}, - {"label": "L", "matrix": [1, 9], "x": 9, "y": 1}, - {"label": ";", "matrix": [1, 10], "x": 10, "y": 1}, - {"label": "ENTER", "matrix": [1, 11], "x": 11, "y": 1}, - {"label": "LCTRL", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Z", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "X", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "C", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "V", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "B", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "N", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "M", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": ",", "matrix": [2, 8], "x": 8, "y": 2}, - {"label": ".", "matrix": [2, 9], "x": 9, "y": 2}, - {"label": "/", "matrix": [2, 10], "x": 10, "y": 2}, - {"label": "RCTRL", "matrix": [2, 11], "x": 11, "y": 2}, - {"label": "SPACE", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "WIN", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "LALT", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "LSHIFT", "matrix": [3, 5], "x": 4, "y": 3}, - {"label": "RAISE", "matrix": [3, 4], "x": 5, "y": 3}, - {"label": "LOWER", "matrix": [3, 7], "x": 6, "y": 3}, - {"label": "RSHIFT", "matrix": [3, 6], "x": 7, "y": 3}, - {"label": "RALT", "matrix": [3, 8], "x": 8, "y": 3}, - {"label": "MENU", "matrix": [3, 9], "x": 9, "y": 3}, - {"label": "SPACE", "matrix": [3, 10], "x": 10, "y": 3} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/thumbsup/rev9_promicro_4x12/readme.md b/keyboards/thumbsup/rev9_promicro_4x12/readme.md deleted file mode 100644 index e74da5cec8..0000000000 --- a/keyboards/thumbsup/rev9_promicro_4x12/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# ThumbsUp! v9 - -![ThumbsUp! v9](https://i.imgur.com/Zqc6dpQ.jpeg) - -A yet another version of the ThumbsUp! keyboard, a three-level PCB-based keyboard supporting Kailh Choc (1350) switches. -This v9 version got 4x12 key layout with 2- or 3-key thumbcluster and an optional touchpad. - - -* Keyboard Maintainer: [Alexander (Sasha) Karmanov](https://github.com/ak66666) -* Hardware Supported: AtMega32u4 ProMicro-compatibles -* Hardware Availability: https://www.etsy.com/ca/listing/1641077896/thumbsup-v9-ergonomic-mechanical - -Make example for this keyboard (after setting up your build environment): - - make thumbsup/rev9_promicro_4x12:default - -Flashing example for this keyboard: - - make thumbsup/rev9_promicro_4x12: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: - -* **Physical reset button**: Press twice the button on the bottom side of the middle PCB. diff --git a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk deleted file mode 100644 index 9bfd1498a3..0000000000 --- a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk +++ /dev/null @@ -1 +0,0 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c \ No newline at end of file diff --git a/keyboards/tkc/california/keyboard.json b/keyboards/tkc/california/keyboard.json index 7a7edecfef..465544bc03 100644 --- a/keyboards/tkc/california/keyboard.json +++ b/keyboards/tkc/california/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "California", "manufacturer": "TKC", + "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tkc/candybar/lefty/keyboard.json b/keyboards/tkc/candybar/lefty/keyboard.json index 333a4a30e9..fe8814e54b 100644 --- a/keyboards/tkc/candybar/lefty/keyboard.json +++ b/keyboards/tkc/candybar/lefty/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", + "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/lefty_r3/keyboard.json b/keyboards/tkc/candybar/lefty_r3/keyboard.json index 4e695a2156..b09412ffc9 100644 --- a/keyboards/tkc/candybar/lefty_r3/keyboard.json +++ b/keyboards/tkc/candybar/lefty_r3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", + "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/righty/keyboard.json b/keyboards/tkc/candybar/righty/keyboard.json index 19f50d9df7..f529ac936f 100644 --- a/keyboards/tkc/candybar/righty/keyboard.json +++ b/keyboards/tkc/candybar/righty/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", + "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/righty_r3/keyboard.json b/keyboards/tkc/candybar/righty_r3/keyboard.json index 80f90c30ac..8064672583 100644 --- a/keyboards/tkc/candybar/righty_r3/keyboard.json +++ b/keyboards/tkc/candybar/righty_r3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", + "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/godspeed75/keyboard.json b/keyboards/tkc/godspeed75/keyboard.json index 3379975ee4..48cf06f3ca 100644 --- a/keyboards/tkc/godspeed75/keyboard.json +++ b/keyboards/tkc/godspeed75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "GodSpeed75", "manufacturer": "The Key Company", + "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", @@ -27,6 +28,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/m0lly/keyboard.json b/keyboards/tkc/m0lly/keyboard.json index fda904c4f4..ae76f1e6d9 100644 --- a/keyboards/tkc/m0lly/keyboard.json +++ b/keyboards/tkc/m0lly/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "M0lly", "manufacturer": "The Key Company", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/osav2/keyboard.json b/keyboards/tkc/osav2/keyboard.json index 8e9c685b49..ef4c789797 100644 --- a/keyboards/tkc/osav2/keyboard.json +++ b/keyboards/tkc/osav2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "OSA v2", "manufacturer": "The Key Company", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/portico/keyboard.json b/keyboards/tkc/portico/keyboard.json index 49efe0a942..29b7d8246b 100644 --- a/keyboards/tkc/portico/keyboard.json +++ b/keyboards/tkc/portico/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Portico", "manufacturer": "TKC", + "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/portico/keymaps/default/keymap.c b/keyboards/tkc/portico/keymaps/default/keymap.c index e83249bf81..d00d0bbf2c 100644 --- a/keyboards/tkc/portico/keymaps/default/keymap.c +++ b/keyboards/tkc/portico/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_BACKLIGHT_PORTICO [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, KC_CAPS, _______, _______, _______, _______, H2_INC, H2_DEC, S2_INC, S2_DEC, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #else [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json index 087713f3a2..914dee8760 100644 --- a/keyboards/tkc/portico68v2/keyboard.json +++ b/keyboards/tkc/portico68v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Portico68 v2", "manufacturer": "TKC", + "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", @@ -62,6 +63,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/portico68v2/keymaps/default/keymap.c b/keyboards/tkc/portico68v2/keymaps/default/keymap.c index 7c190f387f..6a15b17613 100644 --- a/keyboards/tkc/portico68v2/keymaps/default/keymap.c +++ b/keyboards/tkc/portico68v2/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/tkc/portico75/keyboard.json b/keyboards/tkc/portico75/keyboard.json index 1e84f25ebe..79ead69764 100644 --- a/keyboards/tkc/portico75/keyboard.json +++ b/keyboards/tkc/portico75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Portico75", "manufacturer": "TKC", + "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", @@ -39,7 +40,11 @@ "jellybean_raindrops": true, "hue_breathing": true, "hue_pendulum": true, - "hue_wave": true + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true }, "driver": "is31fl3741", "led_flush_limit": 26, diff --git a/keyboards/tkc/tkc1800/keyboard.json b/keyboards/tkc/tkc1800/keyboard.json index ffd88d8b43..2965c61d83 100644 --- a/keyboards/tkc/tkc1800/keyboard.json +++ b/keyboards/tkc/tkc1800/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TKC1800", "manufacturer": "The Key Company", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/tkl_ab87/keyboard.json b/keyboards/tkc/tkl_ab87/keyboard.json index a7bbbc3664..c3d14bd8cf 100644 --- a/keyboards/tkc/tkl_ab87/keyboard.json +++ b/keyboards/tkc/tkl_ab87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TKL A/B87", "manufacturer": "TKC", + "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkw/grandiceps/config.h b/keyboards/tkw/grandiceps/config.h index 04c41e2a11..a02e14f91f 100644 --- a/keyboards/tkw/grandiceps/config.h +++ b/keyboards/tkw/grandiceps/config.h @@ -15,6 +15,8 @@ */ #pragma once +#define SELECT_SOFT_SERIAL_SPEED 1 + #define WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 diff --git a/keyboards/tkw/grandiceps/keymaps/default/keymap.c b/keyboards/tkw/grandiceps/keymaps/default/keymap.c index eb9ca69353..7c2cd09506 100644 --- a/keyboards/tkw/grandiceps/keymaps/default/keymap.c +++ b/keyboards/tkw/grandiceps/keymaps/default/keymap.c @@ -26,7 +26,9 @@ enum grandiceps_layers { }; enum custom_keycodes { - KC_LOWER = SAFE_RANGE, + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -37,8 +39,7 @@ enum custom_keycodes { KC_TEAMS }; -#define KC_QWERTY PDF(_QWERTY) -#define KC_COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -153,7 +154,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/tkw/grandiceps/rules.mk b/keyboards/tkw/grandiceps/rules.mk new file mode 100644 index 0000000000..ab8aeff268 --- /dev/null +++ b/keyboards/tkw/grandiceps/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tkw/grandiceps/rev1 diff --git a/keyboards/tkw/stoutgat/v2/rules.mk b/keyboards/tkw/stoutgat/v2/rules.mk new file mode 100644 index 0000000000..1a660af26c --- /dev/null +++ b/keyboards/tkw/stoutgat/v2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tkw/stoutgat/v2/f411 diff --git a/keyboards/tmo50/keyboard.json b/keyboards/tmo50/keyboard.json index f8f48f6895..dbb79802ca 100644 --- a/keyboards/tmo50/keyboard.json +++ b/keyboards/tmo50/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TMO50", "manufacturer": "funderburker", + "url": "", "maintainer": "funderburker", "usb": { "vid": "0xFBFB", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/toad/keyboard.json b/keyboards/toad/keyboard.json index 6db4e402e1..073fa6411c 100644 --- a/keyboards/toad/keyboard.json +++ b/keyboards/toad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Toad", "manufacturer": "farmakon", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/toffee_studio/blueberry/keyboard.json b/keyboards/toffee_studio/blueberry/keyboard.json index e5fa35a228..99a87b0a95 100644 --- a/keyboards/toffee_studio/blueberry/keyboard.json +++ b/keyboards/toffee_studio/blueberry/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Blueberry", "manufacturer": "Toffee Studio", + "url": "", "maintainer": "Toffee Studio", "usb": { "vid": "0x1067", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/toffee_studio/blueberry/keymaps/default/keymap.c b/keyboards/toffee_studio/blueberry/keymaps/default/keymap.c index 11bc271ea1..ee26853885 100644 --- a/keyboards/toffee_studio/blueberry/keymaps/default/keymap.c +++ b/keyboards/toffee_studio/blueberry/keymaps/default/keymap.c @@ -28,9 +28,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( 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, KC_BSPC, KC_DEL, - _______, MS_BTN1, MS_UP, MS_BTN2, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, UG_SPDU, - MS_WHLU, MS_LEFT, MS_DOWN, MS_RGHT, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, UG_SPDD, - MS_WHLD, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, UG_VALU, UG_TOGG, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, UG_SPDU, + KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, UG_SPDD, + KC_WH_D, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, UG_VALU, UG_TOGG, _______, _______, _______, KC_SPC, MO(2), _______, UG_PREV, UG_VALD, UG_NEXT ), diff --git a/keyboards/togkey/pad/keyboard.json b/keyboards/togkey/pad/keyboard.json deleted file mode 100644 index f93346deb6..0000000000 --- a/keyboards/togkey/pad/keyboard.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "manufacturer": "TogKey", - "keyboard_name": "Pad", - "maintainer": "togkey86", - "development_board": "promicro_rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["GP2", "GP3", "GP4"], - "rows": ["GP5", "GP6"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "hue_steps": 10, - "led_count": 5 - }, - "url": "https://togkey.com/products/togkey-pad", - "usb": { - "device_version": "1.0.0", - "pid": "0x8686", - "vid": "0xFEED" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP7" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0.5, "y": 0}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1} - ] - } - } -} diff --git a/keyboards/togkey/pad/keymaps/default/keymap.c b/keyboards/togkey/pad/keymaps/default/keymap.c deleted file mode 100644 index 4c55f41e69..0000000000 --- a/keyboards/togkey/pad/keymaps/default/keymap.c +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2025 TogKey -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_VOLD, KC_VOLU, - KC_MPRV, KC_MPLY, KC_MNXT - ) -}; diff --git a/keyboards/togkey/pad/readme.md b/keyboards/togkey/pad/readme.md deleted file mode 100644 index 3c34876970..0000000000 --- a/keyboards/togkey/pad/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# pad - -![pad](https://i.imgur.com/KMS1btN.jpeg) - -A simple 5-Key Macropad based off an RP2040 and custom PCB. - -* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86) -* Hardware Supported: TogKey Pad PCB, RP2040 Pro Micro Development Board -* Hardware Availability: (https://togkey.com) - -Make example for this keyboard (after setting up your build environment): - - make togkey/pad:default - -Flashing example for this keyboard: - - make togkey/pad:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/togkey/pad_plus/config.h b/keyboards/togkey/pad_plus/config.h deleted file mode 100644 index 525f02feb0..0000000000 --- a/keyboards/togkey/pad_plus/config.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 TogKey -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -//OLED -#define OLED_DISPLAY_128X64 -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP2 -#define I2C1_SCL_PIN GP3 diff --git a/keyboards/togkey/pad_plus/keyboard.json b/keyboards/togkey/pad_plus/keyboard.json deleted file mode 100644 index ca5eabf902..0000000000 --- a/keyboards/togkey/pad_plus/keyboard.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "manufacturer": "TogKey", - "keyboard_name": "Pad Plus", - "maintainer": "togkey86", - "development_board": "promicro_rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP28", "pin_b": "GP29", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["GP4", "GP5", "GP6"], - "rows": ["GP26", "GP22", "GP20"] - }, - - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "hue_steps": 10, - "led_count": 3 - }, - "url": "https://togkey.com/products/togkey-pad-plus", - "usb": { - "device_version": "1.0.0", - "pid": "0x8687", - "vid": "0xFEED" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP27" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/togkey/pad_plus/keymaps/default/keymap.c b/keyboards/togkey/pad_plus/keymaps/default/keymap.c deleted file mode 100644 index 3d1979b2e1..0000000000 --- a/keyboards/togkey/pad_plus/keymaps/default/keymap.c +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2025 TogKey -// SPDX-License-Identifier: GPL-2.0-or-later6 - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - TO(1), - KC_VOLD, KC_MUTE, KC_VOLU, - KC_MPRV, KC_MPLY, KC_MNXT - ), - - [1] = LAYOUT( - TO(2), - KC_1, KC_2, KC_3, - KC_4, KC_5, KC_6 - ), - - [2] = LAYOUT( - TO(3), - KC_A, KC_B, KC_C, - KC_D, KC_E, KC_F - ), - - [3] = LAYOUT( - TO(0), - KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O - ) -}; diff --git a/keyboards/togkey/pad_plus/pad_plus.c b/keyboards/togkey/pad_plus/pad_plus.c deleted file mode 100644 index c1db5edfe6..0000000000 --- a/keyboards/togkey/pad_plus/pad_plus.c +++ /dev/null @@ -1,731 +0,0 @@ -// Copyright 2025 TogKey -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#if defined(OLED_ENABLE) -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -static const char image_layer_1[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, - 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE, - 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE, - 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF, - 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF, - 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F, - 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF, - 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8, - 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0, - 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x07, 0x07, 0x03, 0x00, 0x01, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, - 0x03, 0x03, 0x01, 0x00, 0x00, 0x39, - 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B, - 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x00, 0x01, 0x03, - 0x03, 0x03, 0x03, 0x02, 0x00, 0x01, - 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, - 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E, - 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, - 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0, - 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xBF, 0x9F, 0xDF, 0x0F, - 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, - 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0, - 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, - 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, - 0xBF, 0x80, 0x80, 0xBF, 0xBF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7, - 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7, - 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, - 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, - 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; - -static const char image_layer_2[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, - 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE, - 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE, - 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF, - 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF, - 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F, - 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF, - 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8, - 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0, - 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x07, 0x07, 0x03, 0x00, 0x01, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, - 0x03, 0x03, 0x01, 0x00, 0x00, 0x39, - 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B, - 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x00, 0x01, 0x03, - 0x03, 0x03, 0x03, 0x02, 0x00, 0x01, - 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, - 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E, - 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, - 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, - 0xCF, 0xCF, 0xCF, 0x1F, 0x1F, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0, - 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, - 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, - 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x9F, 0x87, 0xB7, 0xB3, 0xB9, 0xBC, - 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7, - 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, - 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, - 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; - -static const char image_layer_3[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, - 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE, - 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE, - 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF, - 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF, - 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F, - 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF, - 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8, - 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0, - 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x07, 0x07, 0x03, 0x00, 0x01, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, - 0x03, 0x03, 0x01, 0x00, 0x00, 0x39, - 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B, - 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x00, 0x01, 0x03, - 0x03, 0x03, 0x03, 0x02, 0x00, 0x01, - 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, - 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E, - 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, - 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0, - 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xC0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, - 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x9F, 0xDF, 0xEF, 0xCF, 0xCF, - 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, - 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, - 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7, - 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xDF, 0x8F, 0xBF, 0xBD, - 0xBD, 0xB8, 0x82, 0xC7, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, - 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, - 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; - -static const char image_layer_4[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, - 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE, - 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE, - 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF, - 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF, - 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F, - 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF, - 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8, - 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0, - 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x07, 0x07, 0x03, 0x00, 0x01, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, - 0x03, 0x03, 0x01, 0x00, 0x00, 0x39, - 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B, - 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x00, 0x01, 0x03, - 0x03, 0x03, 0x03, 0x02, 0x00, 0x01, - 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, - 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E, - 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, - 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0, - 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, - 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0, - 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, - 0x9F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, - 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7, - 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7, - 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xE1, - 0xE4, 0xEF, 0xEF, 0x80, 0x80, 0xE7, - 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, - 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_raw_P(image_layer_1, sizeof(image_layer_1)); - break; - case 1: - oled_write_raw_P(image_layer_2, sizeof(image_layer_2)); - break; - case 2: - oled_write_raw_P(image_layer_3, sizeof(image_layer_3)); - break; - case 3: - oled_write_raw_P(image_layer_4, sizeof(image_layer_4)); - break; - default: - oled_write_ln_P(PSTR("Undefined"), false); - } - - return false; -} -#endif diff --git a/keyboards/togkey/pad_plus/readme.md b/keyboards/togkey/pad_plus/readme.md deleted file mode 100644 index 99512f07e7..0000000000 --- a/keyboards/togkey/pad_plus/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# pad_plus - -![pad_plus](https://i.imgur.com/9g3gNMZ.jpeg) - -A 6-Key Macropad featuring a Oled Screen and Rotary Encoder based off an RP2040 and custom PCB. - -* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86) -* Hardware Supported: TogKey Pad Plus PCB, RP2040 Development Board -* Hardware Availability: (https://togkey.com) - -Make example for this keyboard (after setting up your build environment): - - make togkey/pad_plus:default - -Flashing example for this keyboard: - - make togkey/pad_plus:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/togkey/pad_pocket/keyboard.json b/keyboards/togkey/pad_pocket/keyboard.json deleted file mode 100644 index 9f9d5a3aea..0000000000 --- a/keyboards/togkey/pad_pocket/keyboard.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "manufacturer": "TogKey", - "keyboard_name": "Pad Pocket", - "maintainer": "togkey86", - "development_board": "promicro_rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["GP29", "GP22"], - "rows": ["GP26"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "hue_steps": 10, - "led_count": 2 - }, - "url": "https://togkey.com/products/togkey-pad-pocket", - "usb": { - "device_version": "1.0.0", - "pid": "0x8688", - "vid": "0xFEED" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP21" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0} - ] - } - } -} diff --git a/keyboards/togkey/pad_pocket/keymaps/default/keymap.c b/keyboards/togkey/pad_pocket/keymaps/default/keymap.c deleted file mode 100644 index 500597eb08..0000000000 --- a/keyboards/togkey/pad_pocket/keymaps/default/keymap.c +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2025 TogKey -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -//Tap Dances -enum { - TD_VOLDOWN_MEDIAPREV, - TD_VOLUP_MEDIANEXT -}; - -tap_dance_action_t tap_dance_actions[] = { - [TD_VOLDOWN_MEDIAPREV] = ACTION_TAP_DANCE_DOUBLE(KC_AUDIO_VOL_DOWN, KC_MEDIA_PREV_TRACK), - [TD_VOLUP_MEDIANEXT] = ACTION_TAP_DANCE_DOUBLE(KC_AUDIO_VOL_UP, KC_MEDIA_NEXT_TRACK) -}; - -//Combos -const uint16_t PROGMEM media_combo[] = {TD(TD_VOLDOWN_MEDIAPREV), TD(TD_VOLUP_MEDIANEXT), COMBO_END}; - -combo_t key_combos[] = { - COMBO(media_combo, KC_MEDIA_PLAY_PAUSE) -}; - -//Keymap -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - TD(TD_VOLDOWN_MEDIAPREV), TD(TD_VOLUP_MEDIANEXT) - ) -}; diff --git a/keyboards/togkey/pad_pocket/keymaps/default/rules.mk b/keyboards/togkey/pad_pocket/keymaps/default/rules.mk deleted file mode 100644 index 7981fd23ac..0000000000 --- a/keyboards/togkey/pad_pocket/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -COMBO_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/togkey/pad_pocket/readme.md b/keyboards/togkey/pad_pocket/readme.md deleted file mode 100644 index 160d698ad6..0000000000 --- a/keyboards/togkey/pad_pocket/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# pad_pocket - -![pad_pocket](https://i.imgur.com/yCrqAe5.jpeg) - -A simple 2-Key Macropad Keychain based off an RP2040 Development Board and a custom PCB that is pre-programmed to control media. - -* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86) -* Hardware Supported: Togkey Pad Pocket/Duo PCB, RP2040 Pro Micro Development Board -* Hardware Availability: (https://togkey.com) - -Make example for this keyboard (after setting up your build environment): - - make togkey/pad_pocket:default - -Flashing example for this keyboard: - - make togkey/pad_pocket: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 left key closest to the USB Port) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/tokyokeyboard/alix40/config.h b/keyboards/tokyokeyboard/alix40/config.h new file mode 100644 index 0000000000..51d446c6d2 --- /dev/null +++ b/keyboards/tokyokeyboard/alix40/config.h @@ -0,0 +1,18 @@ +/* +Copyright 2021 quadcube +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Bluetooth */ +#define BATTERY_LEVEL_PIN B6 diff --git a/keyboards/tokyokeyboard/tokyo60/keyboard.json b/keyboards/tokyokeyboard/tokyo60/keyboard.json index 90734f16af..b590946a3a 100644 --- a/keyboards/tokyokeyboard/tokyo60/keyboard.json +++ b/keyboards/tokyokeyboard/tokyo60/keyboard.json @@ -13,6 +13,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/tominabox1/adalyn/keyboard.json b/keyboards/tominabox1/adalyn/keyboard.json index 0986067227..113ef690ed 100644 --- a/keyboards/tominabox1/adalyn/keyboard.json +++ b/keyboards/tominabox1/adalyn/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tominabox1/bigboy/keyboard.json b/keyboards/tominabox1/bigboy/keyboard.json index 6ecd61da3b..a25189f35e 100644 --- a/keyboards/tominabox1/bigboy/keyboard.json +++ b/keyboards/tominabox1/bigboy/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigBoy", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", @@ -35,6 +36,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tominabox1/le_chiffre/info.json b/keyboards/tominabox1/le_chiffre/info.json index c521928adf..cb4097d61d 100644 --- a/keyboards/tominabox1/le_chiffre/info.json +++ b/keyboards/tominabox1/le_chiffre/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Le Chiffre", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "features": { "bootmagic": true, diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c index 756eb06506..c7e12ebbb7 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c @@ -49,8 +49,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAV] = LAYOUT( QK_BOOT, _______, AG_NORM, AG_SWAP, DB_TOGG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS ) }; @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, - [_NUM_SYM] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU) }, + [_NUM_SYM] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }, [_NAV] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } }; #endif diff --git a/keyboards/tominabox1/le_chiffre/rules.mk b/keyboards/tominabox1/le_chiffre/rules.mk new file mode 100644 index 0000000000..57b3d94eab --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tominabox1/le_chiffre/rev1 diff --git a/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json b/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json index 9ccfb5f27b..b021ba9c8d 100644 --- a/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json +++ b/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Littlefoot LX", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json b/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json index 38d1d62345..fe1cf6e596 100644 --- a/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json +++ b/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Littlefoot LX", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/littlefoot_lx/rules.mk b/keyboards/tominabox1/littlefoot_lx/rules.mk new file mode 100644 index 0000000000..4756f7600f --- /dev/null +++ b/keyboards/tominabox1/littlefoot_lx/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tominabox1/littlefoot_lx/rev1 diff --git a/keyboards/tominabox1/qaz/keyboard.json b/keyboards/tominabox1/qaz/keyboard.json index cc0a4c5e84..9e18f0ddf4 100644 --- a/keyboards/tominabox1/qaz/keyboard.json +++ b/keyboards/tominabox1/qaz/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "qaz", "manufacturer": "whydobearsexplod", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -45,7 +48,8 @@ "rows": ["F4", "D4", "C6", "E6", "D1", "D0"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/tominabox1/underscore33/rev1/keyboard.json b/keyboards/tominabox1/underscore33/rev1/keyboard.json index d13e20a7c6..221ecccb04 100644 --- a/keyboards/tominabox1/underscore33/rev1/keyboard.json +++ b/keyboards/tominabox1/underscore33/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "underscore33", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/underscore33/rev2/keyboard.json b/keyboards/tominabox1/underscore33/rev2/keyboard.json index d4b922e240..4375116963 100644 --- a/keyboards/tominabox1/underscore33/rev2/keyboard.json +++ b/keyboards/tominabox1/underscore33/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "underscore33", "manufacturer": "tominabox1", + "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/underscore33/rules.mk b/keyboards/tominabox1/underscore33/rules.mk new file mode 100644 index 0000000000..b5e13fd420 --- /dev/null +++ b/keyboards/tominabox1/underscore33/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tominabox1/underscore33/rev1 diff --git a/keyboards/touchpad/keyboard.json b/keyboards/touchpad/keyboard.json index 0d2b450782..5429b5844d 100644 --- a/keyboards/touchpad/keyboard.json +++ b/keyboards/touchpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TouchPad", "manufacturer": "JacoBurge", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x16D0", diff --git a/keyboards/tr60w/keyboard.json b/keyboards/tr60w/keyboard.json index 4f188ae0a5..dc71e3ad7a 100644 --- a/keyboards/tr60w/keyboard.json +++ b/keyboards/tr60w/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TR60W", "manufacturer": "Triangle Lab", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -57,11 +60,8 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/tr60w/keymaps/default/keymap.c b/keyboards/tr60w/keymaps/default/keymap.c index 09523f1505..d32c9d5cd6 100644 --- a/keyboards/tr60w/keymaps/default/keymap.c +++ b/keyboards/tr60w/keymaps/default/keymap.c @@ -2,7 +2,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( 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_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_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, @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - LAYOUT_60_ansi_tsangan_split_bs_rshift( + LAYOUT_60_tsangan_hhkb( QK_BOOT, 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_UP, _______, KC_DEL, _______, _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, KC_LEFT, KC_RGHT, _______, diff --git a/keyboards/trainpad/keyboard.json b/keyboards/trainpad/keyboard.json index e03d2d59f8..e7e74b0e91 100644 --- a/keyboards/trainpad/keyboard.json +++ b/keyboards/trainpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "TrainPad", "manufacturer": "Ananya Kirti", + "url": "", "maintainer": "AnanyaKirti", "usb": { "vid": "0x416B", @@ -11,6 +12,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false }, "processor": "atmega32u2", diff --git a/keyboards/trashman/ketch/keyboard.json b/keyboards/trashman/ketch/keyboard.json index 227ae1fb9f..8f0a638e63 100644 --- a/keyboards/trashman/ketch/keyboard.json +++ b/keyboards/trashman/ketch/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/treasure/type30/hotswap/keyboard.json b/keyboards/treasure/type30/hotswap/keyboard.json deleted file mode 100644 index 54b7c6d6a7..0000000000 --- a/keyboards/treasure/type30/hotswap/keyboard.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "manufacturer": "TREASURE", - "keyboard_name": "TYPE30", - "maintainer": "TREASURE", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true, - "rgb_matrix": true - }, - - "matrix_pins": { - "cols": ["B5", "B6", "B7", "C7", "C6", "C4", "D4", "D5", "D6", "B0", "B1", "B2"], - "rows": ["D2", "C5", "B3"] - }, - "processor": "atmega32u2", - "rgb_matrix": { - "animations": { - "gradient_up_down": true, - "gradient_left_right": true - }, - "driver": "ws2812", - "default": { - "speed": 40, - "animation": "gradient_left_right" - }, - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "flags": 4 }, - { "matrix": [0, 1], "x": 20, "y": 0, "flags": 4 }, - { "matrix": [0, 2], "x": 40, "y": 0, "flags": 4 }, - { "matrix": [0, 3], "x": 60, "y": 0, "flags": 4 }, - { "matrix": [0, 4], "x": 80, "y": 0, "flags": 4 }, - { "matrix": [0, 5], "x": 100, "y": 0, "flags": 4 }, - { "matrix": [0, 6], "x": 120, "y": 0, "flags": 4 }, - { "matrix": [0, 7], "x": 140, "y": 0, "flags": 4 }, - { "matrix": [0, 8], "x": 160, "y": 0, "flags": 4 }, - { "matrix": [0, 9], "x": 180, "y": 0, "flags": 4 }, - { "matrix": [0,10], "x": 200, "y": 0, "flags": 4 }, - { "matrix": [0,11], "x": 220, "y": 0, "flags": 4 }, - { "matrix": [1, 0], "x": 0, "y": 32, "flags": 4 }, - { "matrix": [1, 1], "x": 20, "y": 32, "flags": 4 }, - { "matrix": [1, 2], "x": 40, "y": 32, "flags": 4 }, - { "matrix": [1, 3], "x": 60, "y": 32, "flags": 4 }, - { "matrix": [1, 4], "x": 80, "y": 32, "flags": 4 }, - { "matrix": [1, 5], "x": 100, "y": 32, "flags": 4 }, - { "matrix": [1, 6], "x": 120, "y": 32, "flags": 4 }, - { "matrix": [1, 7], "x": 140, "y": 32, "flags": 4 }, - { "matrix": [1, 8], "x": 160, "y": 32, "flags": 4 }, - { "matrix": [1, 9], "x": 180, "y": 32, "flags": 4 }, - { "matrix": [1,10], "x": 200, "y": 32, "flags": 4 }, - { "matrix": [1,11], "x": 220, "y": 32, "flags": 4 }, - { "matrix": [2, 0], "x": 0, "y": 64, "flags": 4 }, - { "matrix": [2, 1], "x": 20, "y": 64, "flags": 4 }, - { "matrix": [2, 2], "x": 40, "y": 64, "flags": 4 }, - { "matrix": [2, 3], "x": 60, "y": 64, "flags": 4 }, - { "matrix": [2, 4], "x": 80, "y": 64, "flags": 4 }, - { "matrix": [2, 5], "x": 100, "y": 64, "flags": 4 }, - { "matrix": [2, 6], "x": 120, "y": 64, "flags": 4 }, - { "matrix": [2, 7], "x": 140, "y": 64, "flags": 4 }, - { "matrix": [2, 8], "x": 160, "y": 64, "flags": 4 }, - { "matrix": [2, 9], "x": 180, "y": 64, "flags": 4 }, - { "matrix": [2,10], "x": 200, "y": 64, "flags": 4 }, - { "matrix": [2,11], "x": 220, "y": 64, "flags": 4 } - ], - "max_brightness": 180, - "sleep": true - }, - "url": "http://treasuretypes.com", - "usb": { - "device_version": "1.0.1", - "pid": "0x3330", - "vid": "0x5452" - }, - "ws2812": { - "pin": "B4" - }, - "layouts": { - "LAYOUT_ortho_3x12": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "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": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "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": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - {"matrix": [2, 11], "x": 11, "y": 2} - ] - } - } -} diff --git a/keyboards/treasure/type30/hotswap/keymaps/default/keymap.c b/keyboards/treasure/type30/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 24ae38af89..0000000000 --- a/keyboards/treasure/type30/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // Base - [0] = LAYOUT_ortho_3x12( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MO(1), KC_SPC, - KC_LCTL, KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RGUI, KC_UP, KC_DOWN - ), - // Fn - [1] = LAYOUT_ortho_3x12( - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, S(KC_EQL), KC_MINS, KC_SLSH, KC_PAST, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, _______, KC_ENT, - _______, _______, KC_EQL, RM_TOGG, RM_HUEU, RM_NEXT, KC_GRV, KC_COMM, KC_DOT, _______, KC_LEFT, KC_RIGHT - ) -}; diff --git a/keyboards/treasure/type30/hotswap/readme.md b/keyboards/treasure/type30/hotswap/readme.md deleted file mode 100644 index 33b95d5495..0000000000 --- a/keyboards/treasure/type30/hotswap/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Treasure TYPE-30 - -* Keyboard Maintainer: [Treasure](https://www,treasuretypes.com) -* Hardware Supported: Treasure TYPE-30 Hotswap PCB -* Hardware Availability: [Treasure Store](http://treasuretypes.com) - -Make example for this keyboard (after setting up your build environment): - - make treasure/type30/hotswap:default - -Flashing example for this keyboard: - - make treasure/type30/hotswap:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/treasure/type9/keyboard.json b/keyboards/treasure/type9/keyboard.json index ab7599730f..0c1ee1987a 100644 --- a/keyboards/treasure/type9/keyboard.json +++ b/keyboards/treasure/type9/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Type-9", "manufacturer": "Treasure", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/treasure/type9s2/keyboard.json b/keyboards/treasure/type9s2/keyboard.json index 66905bdf8e..94cc0dec95 100644 --- a/keyboards/treasure/type9s2/keyboard.json +++ b/keyboards/treasure/type9s2/keyboard.json @@ -14,6 +14,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/treasure/type9s3/keyboard.json b/keyboards/treasure/type9s3/keyboard.json index 380ad72683..cb2bcf3a7a 100644 --- a/keyboards/treasure/type9s3/keyboard.json +++ b/keyboards/treasure/type9s3/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -19,6 +21,7 @@ ] }, "processor": "atmega32u2", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x5493", diff --git a/keyboards/treasure/type9s3/keymaps/default/keymap.c b/keyboards/treasure/type9s3/keymaps/default/keymap.c index 1c789f3eba..aecf899e6c 100644 --- a/keyboards/treasure/type9s3/keymaps/default/keymap.c +++ b/keyboards/treasure/type9s3/keymaps/default/keymap.c @@ -6,15 +6,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_3x3( - MO(1), KC_MPLY, RM_TOGG, + MO(1), KC_MPLY, RGB_TOG, KC_VOLD, KC_MUTE, KC_VOLU, KC_KP_1, KC_KP_2, KC_KP_3 ), [1] = LAYOUT_ortho_3x3( KC_TRNS, RGB_M_P, MO(2), - RM_NEXT, RM_HUEU, RM_VALU, - RM_PREV, RM_HUED, RM_VALD + RGB_MOD, RGB_HUI, RGB_VAI, + RGB_RMOD, RGB_HUD, RGB_VAD ), [2] = LAYOUT_ortho_3x3( diff --git a/keyboards/trkeyboards/trk1/keyboard.json b/keyboards/trkeyboards/trk1/keyboard.json index 83af00de3a..c3190a5eee 100644 --- a/keyboards/trkeyboards/trk1/keyboard.json +++ b/keyboards/trkeyboards/trk1/keyboard.json @@ -11,6 +11,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/trnthsn/e8ghty/config.h b/keyboards/trnthsn/e8ghty/config.h deleted file mode 100644 index ae9f251eb6..0000000000 --- a/keyboards/trnthsn/e8ghty/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2024 ThanhSon.Mech - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghty/halconf.h b/keyboards/trnthsn/e8ghty/halconf.h deleted file mode 100644 index b8f0a217c4..0000000000 --- a/keyboards/trnthsn/e8ghty/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json deleted file mode 100644 index d52419d760..0000000000 --- a/keyboards/trnthsn/e8ghty/info.json +++ /dev/null @@ -1,574 +0,0 @@ -{ - "manufacturer": "ThanhSon.Mech", - "keyboard_name": "E8ghty", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A3", "A2", "A1", "A0", "C14", "C13", "B5"], - "rows": ["A15", "A10", "A9", "A4", "C15", "B9"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 26, - "sleep": true - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, - "indicators": { - "caps_lock": "B4" - }, - "usb": { - "vid": "0x5453", - "pid": "0x3830", - "device_version": "0.0.1" - }, - "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, - - {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "Shift", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, - - {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, - - {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c deleted file mode 100644 index f16b0d5eb4..0000000000 --- a/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ - // │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │Prs│Srk│Ps │ - // └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ │Ins│Hm │PgU│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ - // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ - // │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ - // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ - // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ - // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ - - [0] = 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_MPLY, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/trnthsn/e8ghty/mcuconf.h b/keyboards/trnthsn/e8ghty/mcuconf.h deleted file mode 100644 index 3bf940e0be..0000000000 --- a/keyboards/trnthsn/e8ghty/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghty/readme.md b/keyboards/trnthsn/e8ghty/readme.md deleted file mode 100644 index 7a46bf2c4c..0000000000 --- a/keyboards/trnthsn/e8ghty/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# E8ghty - -![trnthsn/e8ghty](https://imgur.com/M4Oudco.png) - -A TKL keyboard PCB compatible with various keyboard cases. Supports both right USB Type-C connector and bottom USB Type-C connector, 1 FPC header, and 3 JST SH positions for a daughter board. - -* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) -* Hardware Supported: STM32F103/STM32F072, Geon F1 xx, TKD Cycle 8, Keycult, ... -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/e8ghty:default - -Flashing example for this keyboard: - - make trnthsn/e8ghty:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json deleted file mode 100644 index b5d728b1cd..0000000000 --- a/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu", -} diff --git a/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json deleted file mode 100644 index 5b2b6bc7d9..0000000000 --- a/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot", -} diff --git a/keyboards/trnthsn/e8ghtyneo/config.h b/keyboards/trnthsn/e8ghtyneo/config.h deleted file mode 100644 index 5e5c1eb155..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2025 Tyson.Keebs - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghtyneo/e8ghtyneo.c b/keyboards/trnthsn/e8ghtyneo/e8ghtyneo.c deleted file mode 100644 index b1af2c63a8..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/e8ghtyneo.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) -const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0,4, HSV_GREEN} -); -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer -); - -void keyboard_post_init_kb(void) { - rgblight_layers = my_rgb_layers; - keyboard_post_init_user(); -} -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { - rgblight_set_layer_state(0, led_state.caps_lock); - } - return res; -} -#endif diff --git a/keyboards/trnthsn/e8ghtyneo/halconf.h b/keyboards/trnthsn/e8ghtyneo/halconf.h deleted file mode 100644 index 75fea51332..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2025 Tyson.Keebs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/trnthsn/e8ghtyneo/info.json b/keyboards/trnthsn/e8ghtyneo/info.json deleted file mode 100644 index 6bd6d5ca66..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/info.json +++ /dev/null @@ -1,992 +0,0 @@ -{ - "manufacturer": "Tyson.Keebs", - "keyboard_name": "E8ghtyNeo", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B0", "A7", "A6", "A5", "A3", "A2", "A1", "A0", "C13", "B9", "B7"], - "rows": ["B8", "A10", "B1", "A4", "C15", "C14"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_mood" - }, - "layers": { - "enabled": true, - }, - "led_count": 4, - "sleep": true - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, - "indicators": { - "caps_lock": "B3" - }, - "usb": { - "vid": "0x5453", - "pid": "0x3845", - "device_version": "0.0.1" - }, - "community_layouts": [ - "tkl_ansi_tsangan", - "tkl_ansi_tsangan_split_bs_rshift", - "tkl_iso_tsangan", - "tkl_iso_tsangan_split_bs_rshift" - ], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_iso_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_iso_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_iso_wkl_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - - {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, - {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, - {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, - - {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, - - {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, - {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, - - {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, - {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, - - {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, - {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, - - {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, - - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, - - {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, - - {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - - {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, - - {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, - {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - - {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c deleted file mode 100644 index 31f1b5208a..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - // │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │Prs│Srk│Ps │ - // └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │Ins│Hm │PgU│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ - // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ - // │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ - // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ - // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ - // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ - - [0] = 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_BSLS, KC_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/trnthsn/e8ghtyneo/mcuconf.h b/keyboards/trnthsn/e8ghtyneo/mcuconf.h deleted file mode 100644 index e96308a9a1..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2025 Tyson.Keebs - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghtyneo/readme.md b/keyboards/trnthsn/e8ghtyneo/readme.md deleted file mode 100644 index 7c7419e773..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# E8ghtyNeo - -![E8ghtyNeo](https://imgur.com/YXYfqzZ.png) - -A TKL keyboard PCB compatible with Neo80. Supports Neo80 keyboard like an out-of-the-box PCB without any modification. - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: STM32, E8ghtyNeo, Neo80 -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/e8ghtyneo/stm32f072:default - -Flashing example for this keyboard: - - make trnthsn/e8ghtyneo/stm32f072:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json deleted file mode 100644 index b5d728b1cd..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu", -} diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json deleted file mode 100644 index 5b2b6bc7d9..0000000000 --- a/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot", -} diff --git a/keyboards/trnthsn/s6xty/config.h b/keyboards/trnthsn/s6xty/config.h deleted file mode 100644 index cb72d64967..0000000000 --- a/keyboards/trnthsn/s6xty/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2024 ThanhSon.Mech - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty/halconf.h b/keyboards/trnthsn/s6xty/halconf.h deleted file mode 100644 index b8f0a217c4..0000000000 --- a/keyboards/trnthsn/s6xty/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/trnthsn/s6xty/keyboard.json b/keyboards/trnthsn/s6xty/keyboard.json deleted file mode 100644 index 2397fa0788..0000000000 --- a/keyboards/trnthsn/s6xty/keyboard.json +++ /dev/null @@ -1,501 +0,0 @@ -{ - "manufacturer": "ThanhSon.Mech", - "keyboard_name": "S6xty", - "maintainer": "trnthsn", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "B12" - }, - "matrix_pins": { - "cols": ["B14", "A0", "A10", "C15", "A2", "A1", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4"], - "rows": ["B3", "B7", "A3", "A9", "A8"] - }, - "processor": "STM32F072", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 22, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x5336", - "vid": "0x5453" - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - }, - "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_arrow": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4}, - {"matrix": [4, 11], "x": 12, "y": 4}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4}, - {"matrix": [4, 11], "x": 12, "y": 4}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/trnthsn/s6xty/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty/keymaps/default/keymap.c deleted file mode 100644 index 97dba0d749..0000000000 --- a/keyboards/trnthsn/s6xty/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - // ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - // │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │Shift │↑ │/ │ - // ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ - // │Ctrl │GUI│ Alt │ │Fn │← │↓ │→ │ - // └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ - - [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_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [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, KC_INS, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/trnthsn/s6xty/mcuconf.h b/keyboards/trnthsn/s6xty/mcuconf.h deleted file mode 100644 index 3bf940e0be..0000000000 --- a/keyboards/trnthsn/s6xty/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty/readme.md b/keyboards/trnthsn/s6xty/readme.md deleted file mode 100644 index eb518b7cee..0000000000 --- a/keyboards/trnthsn/s6xty/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# S6xty - -![trnthsn/s6xty](https://i.imgur.com/YJZxxqY.png) - -A 60% keyboard PCB compatible with various keyboard cases. Supports a left USB Type-C connector or 3 JST SH positions for a daughter board - -* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) -* Hardware Supported: s6xty PCB, STM32F072 -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/s6xty:default - -Flashing example for this keyboard: - - make trnthsn/s6xty:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/s6xty5neor2/config.h b/keyboards/trnthsn/s6xty5neor2/config.h deleted file mode 100644 index ae9f251eb6..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2024 ThanhSon.Mech - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty5neor2/halconf.h b/keyboards/trnthsn/s6xty5neor2/halconf.h deleted file mode 100644 index b8f0a217c4..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json deleted file mode 100644 index ea6544cbd3..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/info.json +++ /dev/null @@ -1,252 +0,0 @@ -{ - "manufacturer": "ThanhSon.Mech", - "keyboard_name": "S6xty5Neo Rev.2", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["A4", "A3", "A2", "A1", "A0", "A5", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6"], - "rows": ["B4", "A10", "A9", "B7", "B9"] - }, - "indicators": { - "caps_lock": "C13" - }, - "usb": { - "vid": "0x5453", - "pid": "0x4E45", - "device_version": "0.0.1" - }, - "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c deleted file mode 100644 index bc6c2e3271..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Del│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ - // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - // │Shf │Shf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ - // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ - // │Ctrl │GUI│ Alt │ │ Fn │ │ ← │ ↓ │ → │ - // └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ - - - [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_BSPC, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [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, _______, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/trnthsn/s6xty5neor2/mcuconf.h b/keyboards/trnthsn/s6xty5neor2/mcuconf.h deleted file mode 100644 index 3bf940e0be..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 ThanhSon.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty5neor2/readme.md b/keyboards/trnthsn/s6xty5neor2/readme.md deleted file mode 100644 index 6c7e595abe..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# S6xty5Neo Rev.2 - -![S6xty5Neo Rev.2](https://imgur.com/C6X3fCI.png) - -A 65% keyboard PCB compatible with Neo65. Supports Neo65 keyboard like an out-of-the-box PCB without any modification. - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: STM32, S6xty5Neo Rev.2, Neo65 -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/s6xty5neor2:default - -Flashing example for this keyboard: - - make trnthsn/s6xty5neor2:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json deleted file mode 100644 index b5d728b1cd..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu", -} diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json deleted file mode 100644 index 5b2b6bc7d9..0000000000 --- a/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot", -} diff --git a/keyboards/trnthsn/s6xtyfs/config.h b/keyboards/trnthsn/s6xtyfs/config.h deleted file mode 100644 index 5e5c1eb155..0000000000 --- a/keyboards/trnthsn/s6xtyfs/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2025 Tyson.Keebs - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xtyfs/halconf.h b/keyboards/trnthsn/s6xtyfs/halconf.h deleted file mode 100644 index 737b1927a3..0000000000 --- a/keyboards/trnthsn/s6xtyfs/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2025 Tyson.Keebs - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/trnthsn/s6xtyfs/info.json b/keyboards/trnthsn/s6xtyfs/info.json deleted file mode 100644 index 2599ff2504..0000000000 --- a/keyboards/trnthsn/s6xtyfs/info.json +++ /dev/null @@ -1,741 +0,0 @@ -{ - "manufacturer": "Tyson.Keebs", - "keyboard_name": "S6xty Tsangan", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "B0" - }, - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B14", "B12", "A6", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"], - "rows": ["C13", "C14", "C15", "A1", "B1"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_swirl" - }, - "layers": { - "enabled": true, - "override_rgb": false - }, - "led_count": 28, - "sleep": true - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x3666", - "vid": "0x5453" - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - }, - "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 0, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c b/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c deleted file mode 100644 index ecddf112d2..0000000000 --- a/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ - // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ - // │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ - // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ - // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ - // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ - - [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_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_LSFT ,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - [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, KC_INS, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, KC_PSCR, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/trnthsn/s6xtyfs/mcuconf.h b/keyboards/trnthsn/s6xtyfs/mcuconf.h deleted file mode 100644 index 03624a3d2f..0000000000 --- a/keyboards/trnthsn/s6xtyfs/mcuconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2025 Tyson.Keebs - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xtyfs/readme.md b/keyboards/trnthsn/s6xtyfs/readme.md deleted file mode 100644 index be888ece75..0000000000 --- a/keyboards/trnthsn/s6xtyfs/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# S6xty Tsangan - -![S6xtyfs](https://i.imgur.com/uS2Okww.png) - -A 60% keyboard PCB. Supports multiple layout such as split backspace, split shift, iso. - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: STM32, S6xtyfs -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/s6xtyfs/stm32f103:default - -Flashing example for this keyboard: - - make trnthsn/s6xtyfs/stm32f103:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/s6xtyfs/s6xtyfs.c b/keyboards/trnthsn/s6xtyfs/s6xtyfs.c deleted file mode 100644 index 9a9df177b9..0000000000 --- a/keyboards/trnthsn/s6xtyfs/s6xtyfs.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGBLIGHT_ENABLE -const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {5, 2, HSV_WHITE} -); -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer -); - -void keyboard_post_init_kb(void) { - rgblight_layers = my_rgb_layers; - keyboard_post_init_user(); -} -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { - rgblight_set_layer_state(0, led_state.caps_lock); - } - return res; -} -#endif diff --git a/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json b/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json deleted file mode 100644 index 8bba6f5d5d..0000000000 --- a/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu" -} diff --git a/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json b/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json deleted file mode 100644 index 4dc77604c4..0000000000 --- a/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot" -} diff --git a/keyboards/trnthsn/tyson60/config.h b/keyboards/trnthsn/tyson60/config.h deleted file mode 100644 index 8ab8c1a85f..0000000000 --- a/keyboards/trnthsn/tyson60/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/tyson60/halconf.h b/keyboards/trnthsn/tyson60/halconf.h deleted file mode 100644 index 7056539285..0000000000 --- a/keyboards/trnthsn/tyson60/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE -#include_next diff --git a/keyboards/trnthsn/tyson60/info.json b/keyboards/trnthsn/tyson60/info.json deleted file mode 100644 index 6f4df15d99..0000000000 --- a/keyboards/trnthsn/tyson60/info.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "manufacturer": "Tyson.Keebs", - "keyboard_name": "Tyson60", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "B4" - }, - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B14", "B12", "B10", "B1", "B0", "A15", "B5", "C15", "C14", "C13", "B9"], - "rows": ["B8", "B7", "B6", "B11", "A6"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 30, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x5336", - "vid": "0x5453" - }, - "ws2812": { - "driver": "spi", - "pin": "B15" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4}, - {"matrix": [4, 11], "x": 12, "y": 4}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/trnthsn/tyson60/keymaps/default/keymap.c b/keyboards/trnthsn/tyson60/keymaps/default/keymap.c deleted file mode 100644 index 30786c4b60..0000000000 --- a/keyboards/trnthsn/tyson60/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - // ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - // │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │Shift │↑ │/ │ - // ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ - // │Ctrl │GUI│ Alt │ │Fn │← │↓ │→ │ - // └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ - - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - 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, KC_INS, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MO(2) , _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/trnthsn/tyson60/mcuconf.h b/keyboards/trnthsn/tyson60/mcuconf.h deleted file mode 100644 index d131af9fdf..0000000000 --- a/keyboards/trnthsn/tyson60/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/tyson60/readme.md b/keyboards/trnthsn/tyson60/readme.md deleted file mode 100644 index d38c012aad..0000000000 --- a/keyboards/trnthsn/tyson60/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tyson60 - -![trnthsn/tyson60](https://live.staticflickr.com/65535/54831948531_6b41780afe_b.jpg) - -Tyson60 PCB, 60% keyboard PCB. - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: STM32, Tyson60 -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/tyson60/stm32f103:default - -Flashing example for this keyboard: - - make trnthsn/tyson60/stm32f103:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/tyson60/stm32f072/keyboard.json b/keyboards/trnthsn/tyson60/stm32f072/keyboard.json deleted file mode 100644 index b5d728b1cd..0000000000 --- a/keyboards/trnthsn/tyson60/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu", -} diff --git a/keyboards/trnthsn/tyson60/stm32f103/keyboard.json b/keyboards/trnthsn/tyson60/stm32f103/keyboard.json deleted file mode 100644 index 5b2b6bc7d9..0000000000 --- a/keyboards/trnthsn/tyson60/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot", -} diff --git a/keyboards/trnthsn/tyson60s/config.h b/keyboards/trnthsn/tyson60s/config.h deleted file mode 100644 index aa1f8ae9cb..0000000000 --- a/keyboards/trnthsn/tyson60s/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2024 TrnThSnMech - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/trnthsn/tyson60s/keyboard.json b/keyboards/trnthsn/tyson60s/keyboard.json deleted file mode 100644 index 310e300123..0000000000 --- a/keyboards/trnthsn/tyson60s/keyboard.json +++ /dev/null @@ -1,400 +0,0 @@ -{ - "manufacturer": "TrnThSnMech", - "keyboard_name": "Tyson60s", - "maintainer": "TrnThSnMech", - "bootloader": "rp2040", - "build": { - "debounce_type": "sym_defer_pk" - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["GP16", "GP24", "GP18", "GP19", "GP20", "GP22", "GP5", "GP6", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], - "rows": ["GP0", "GP23", "GP2", "GP4", "GP17"] - }, - "processor": "RP2040", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 20, - "max_brightness": 240, - "sleep": true - }, - "usb": { - "vid": "0x5453", - "pid": "0x2311", - "device_version": "0.0.1" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP29" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb" - ], - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [2, 13], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [3, 3], "x": 4.25, "y": 3}, - {"matrix": [3, 4], "x": 5.25, "y": 3}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - {"matrix": [3, 6], "x": 7.25, "y": 3}, - {"matrix": [3, 7], "x": 8.25, "y": 3}, - {"matrix": [3, 8], "x": 9.25, "y": 3}, - {"matrix": [3, 9], "x": 10.25, "y": 3}, - {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 12], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - } - } -} diff --git a/keyboards/trnthsn/tyson60s/keymaps/default/keymap.c b/keyboards/trnthsn/tyson60s/keymaps/default/keymap.c deleted file mode 100644 index 59cf70a51f..0000000000 --- a/keyboards/trnthsn/tyson60s/keymaps/default/keymap.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright 2024 TrnThSn.Mech - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Fn │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ - * │Ctrl │GUI│ Alt │ │ Alt │GUI│ Ctrl│ - * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ - */ - [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_GRV, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - [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, KC_INS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - MO(2) , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/trnthsn/tyson60s/readme.md b/keyboards/trnthsn/tyson60s/readme.md deleted file mode 100644 index 6a1261e70c..0000000000 --- a/keyboards/trnthsn/tyson60s/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# Tyson60s - -![Tyson60s](https://i.imgur.com/3EC4RfF.jpg) - -A Hiney H60 form factor PCB for 60% keyboards. Uses a Left USB Type C connector or 4 JST SH positions for daughter board. - -![Layout](https://i.imgur.com/baNC0u8.jpeg) - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: RP2040, Tyson60s PCB, Hiney H60 -* Hardware Availability: [Trnthsn](https://www.facebook.com/TrnThSn.Mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/tyson60s:default - -Flashing example for this keyboard: - - make trnthsn/tyson60s: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). diff --git a/keyboards/trnthsn/tyson65/config.h b/keyboards/trnthsn/tyson65/config.h deleted file mode 100644 index 8ab8c1a85f..0000000000 --- a/keyboards/trnthsn/tyson65/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WS2812_SPI_DRIVER SPID2 -#define WS2812_SPI_MOSI_PAL_MODE 0 -#define WS2812_SPI_SCK_PAL_MODE 0 -#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/tyson65/halconf.h b/keyboards/trnthsn/tyson65/halconf.h deleted file mode 100644 index 7056539285..0000000000 --- a/keyboards/trnthsn/tyson65/halconf.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_SPI TRUE -#include_next diff --git a/keyboards/trnthsn/tyson65/info.json b/keyboards/trnthsn/tyson65/info.json deleted file mode 100644 index 1828c6f832..0000000000 --- a/keyboards/trnthsn/tyson65/info.json +++ /dev/null @@ -1,353 +0,0 @@ -{ - "manufacturer": "Tyson.Keebs", - "keyboard_name": "Tyson65", - "maintainer": "trnthsn", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B14", "B12", "B11", "B10", "B1", "A15", "B8", "B7", "B6", "B5", "B4", "B3"], - "rows": ["B0", "A7", "A6", "B9", "A4"] - }, - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_swirl" - }, - "led_count": 30, - "sleep": true - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, - "indicators": { - "caps_lock": "A5" - }, - "usb": { - "vid": "0x5453", - "pid": "0x6533", - "device_version": "0.0.1" - }, - "layout_aliases": { - "LAYOUT_all": "LAYOUT_65_ansi_blocker_tsangan_split_bs" - }, - "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], - "layouts": { - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [2, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/trnthsn/tyson65/keymaps/default/keymap.c b/keyboards/trnthsn/tyson65/keymaps/default/keymap.c deleted file mode 100644 index b84bab6b63..0000000000 --- a/keyboards/trnthsn/tyson65/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Del│ - // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ - // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ - // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ - // ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - // │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ - // ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ - // │Ctrl │GUI│ Alt │ │ Fn │ │ ← │ ↓ │ → │ - // └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ - - - [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_BSPC, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [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, _______, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, - MO(2) , _______, _______, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/trnthsn/tyson65/mcuconf.h b/keyboards/trnthsn/tyson65/mcuconf.h deleted file mode 100644 index d131af9fdf..0000000000 --- a/keyboards/trnthsn/tyson65/mcuconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2025 Tyson.Keebs -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/tyson65/readme.md b/keyboards/trnthsn/tyson65/readme.md deleted file mode 100644 index b22bf95d18..0000000000 --- a/keyboards/trnthsn/tyson65/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Tyson65 - -![trnthsn/tyson65](https://live.staticflickr.com/65535/54831930681_bf79fb1761_c.jpg) - -A 65% keyboard PCB compatible with various keyboard cases. Supports a middle USB Type-C connector, 5 JST SH1.0 and 2 JST ZH1.25 positions for a daughter board. - -* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) -* Hardware Supported: STM32, Tyson65 -* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) - -Make example for this keyboard (after setting up your build environment): - - make trnthsn/tyson65/stm32f103:default - -Flashing example for this keyboard: - - make trnthsn/tyson65/stm32f103:default:flash - - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/tyson65/stm32f072/keyboard.json b/keyboards/trnthsn/tyson65/stm32f072/keyboard.json deleted file mode 100644 index 8bba6f5d5d..0000000000 --- a/keyboards/trnthsn/tyson65/stm32f072/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F072", - "bootloader": "stm32-dfu" -} diff --git a/keyboards/trnthsn/tyson65/stm32f103/keyboard.json b/keyboards/trnthsn/tyson65/stm32f103/keyboard.json deleted file mode 100644 index 4dc77604c4..0000000000 --- a/keyboards/trnthsn/tyson65/stm32f103/keyboard.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "processor": "STM32F103", - "bootloader": "uf2boot" -} diff --git a/keyboards/trojan_pinata/model_b/readme.md b/keyboards/trojan_pinata/model_b/readme.md deleted file mode 100644 index 3d6ac2199d..0000000000 --- a/keyboards/trojan_pinata/model_b/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# Model-B - -A 75% keyboard based on the RP2040. - -* Keyboard Maintainer: [Brian Hill](https://github.com/TrojanPinata) -* Hardware Supported: [GitHub](https://github.com/TrojanPinata/Model-B) - -## Revisions - -At the current moment there is only one variant of the Model-B, the rev-0 (aka the prototype board). Any others are clones and may not have the exact firmware requirements. - -## Building and Flashing - -Make example for this keyboard (after setting up your build environment): - - make trojan_pinata/model-b/rev0:default - -Flashing example for this keyboard: - - make trojan_pinata/model-b/rev0: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 top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. -* **Physical reset button**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Esc key. - -After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. diff --git a/keyboards/trojan_pinata/model_b/rev0/config.h b/keyboards/trojan_pinata/model_b/rev0/config.h deleted file mode 100644 index df90591928..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/config.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -// settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port -#define I2C_DRIVER I2CD0 -#define I2C1_SDA_PIN GP0 -#define I2C1_SCL_PIN GP1 - -#define OLED_TIMEOUT 3000000 // 5 minutes before oled turns off diff --git a/keyboards/trojan_pinata/model_b/rev0/keyboard.json b/keyboards/trojan_pinata/model_b/rev0/keyboard.json deleted file mode 100644 index fc1ba7f863..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/keyboard.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "manufacturer": "Trojan_Pinata", - "keyboard_name": "Model-B", - "maintainer": "Trojan_Pinata", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP27", "pin_b": "GP26"} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true, - "encoder": true - }, - "matrix_pins": { - "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"], - "rows": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"] - }, - "processor": "RP2040", - "url": "https://github.com/TrojanPinata/Model-B", - "usb": { - "device_version": "1.0.0", - "pid": "0xA500", - "vid": "0xE739" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.25, "y": 0}, - {"matrix": [0, 3], "x": 2.25, "y": 0}, - {"matrix": [0, 4], "x": 3.25, "y": 0}, - {"matrix": [0, 5], "x": 4.25, "y": 0}, - {"matrix": [0, 6], "x": 5.5, "y": 0}, - {"matrix": [0, 7], "x": 6.5, "y": 0}, - {"matrix": [0, 8], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 9.75, "y": 0}, - {"matrix": [0, 11], "x": 10.75, "y": 0}, - {"matrix": [0, 12], "x": 11.75, "y": 0}, - {"matrix": [0, 13], "x": 12.75, "y": 0}, - {"matrix": [0, 14], "x": 15.75, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 14, "y": 0}, - {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [3, 14], "x": 16.25, "y": 1.5}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 1], "x": 2.25, "y": 4.5}, - {"matrix": [4, 2], "x": 3.25, "y": 4.5}, - {"matrix": [4, 3], "x": 4.25, "y": 4.5}, - {"matrix": [4, 4], "x": 5.25, "y": 4.5}, - {"matrix": [4, 5], "x": 6.25, "y": 4.5}, - {"matrix": [4, 6], "x": 7.25, "y": 4.5}, - {"matrix": [4, 7], "x": 8.25, "y": 4.5}, - {"matrix": [4, 8], "x": 9.25, "y": 4.5}, - {"matrix": [4, 9], "x": 10.25, "y": 4.5}, - {"matrix": [4, 10], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, - {"matrix": [4, 13], "x": 14.3, "y": 4.6}, - {"matrix": [4, 14], "x": 16.25, "y": 2.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5}, - {"matrix": [5, 10], "x": 11, "y": 5.5}, - {"matrix": [5, 11], "x": 12, "y": 5.5}, - {"matrix": [5, 12], "x": 13.3, "y": 5.6}, - {"matrix": [5, 13], "x": 14.3, "y": 5.6}, - {"matrix": [5, 14], "x": 15.3, "y": 5.6} - ] - } - } -} diff --git a/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c b/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c deleted file mode 100644 index 56c4657e7b..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2024 Brian H (@Trojan_Pinata) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// keymaps -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - 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_MUTE, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, QK_KB, KC_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - QK_BOOT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, - - EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - DB_TOGG, _______, _______, KC_MYCM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, - _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, - _______, _______, _______, _______, _______, _______, _______, KC_EXEC, _______, _______ - ) -}; - -// encoder handling -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, -}; -#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/mcuconf.h b/keyboards/trojan_pinata/model_b/rev0/mcuconf.h deleted file mode 100644 index 57e58e14d7..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/mcuconf.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include_next - -#undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.c b/keyboards/trojan_pinata/model_b/rev0/rev0.c deleted file mode 100644 index 02cd92f0da..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/rev0.c +++ /dev/null @@ -1,397 +0,0 @@ -/* Copyright 2024 Brian H (@Trojan_Pinata) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "rev0.h" - -// NUM_MODES stays last to indicate the number of different screens possible -enum oled_modes { - MTNS, INFO, LOGO, MEW, CEL, RAY, NUM_MODES -}; - -// define the key that switches the display -enum keeb_codes { - OLED_MOD = QK_KB, -}; - -// virtual eeprom for storing last layer -typedef union { - uint32_t raw; - struct { - uint8_t display_mode_saved : 3; - }; -} keyboard_config_t; -keyboard_config_t keyboard_config; - -void keyboard_pre_init_kb(void) { - keyboard_config.raw = eeconfig_read_kb(); - keyboard_pre_init_user(); -} - -void eeconfig_init_kb(void) { - keyboard_config.raw = 0; - keyboard_config.display_mode_saved = INFO; - eeconfig_update_kb(keyboard_config.raw); - eeconfig_init_user(); -} - -// oled stuff below -#ifdef OLED_ENABLE - -// hold only let me just drop all of my embedded images rq -static const char PROGMEM bootscreen[] = { - // 'modelb-oled', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x7f, 0xfe, - 0xf0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfe, 0x3f, 0x07, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0xf0, 0xfc, 0xfe, 0x3f, 0x0f, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x1f, - 0x3f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, - 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1, - 0xe1, 0xe1, 0xe3, 0xff, 0xff, 0xbf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, - 0x1f, 0x7f, 0xfc, 0xf0, 0xfe, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x07, 0x1f, 0x3f, 0x7e, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0x7c, - 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, - 0xf8, 0x7c, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, - 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, - 0xc1, 0xc1, 0xc1, 0xe1, 0xff, 0xff, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM mnts_l0[] = { - // 'base', 128x32px - 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, - 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, - 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, - 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, - 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, - 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x04, 0xfe, 0x00, 0x00, - 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, - 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, - 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, - 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, - 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, - 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, - 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, - 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, - 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, - 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, - 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, - 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, - 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, - 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 -}; - -static const char PROGMEM mnts_l1[] = { - // 'alt', 128x32px - 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, - 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, - 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, - 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, - 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, - 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x04, 0x82, 0x42, 0x22, 0x1c, 0x00, - 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, - 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, - 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, - 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, - 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, - 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, - 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, - 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, - 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, - 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, - 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, - 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, - 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, - 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 -}; - -static const char PROGMEM mew_disp[] = { - // 'mewl2', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, - 0x60, 0x50, 0x10, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, - 0x04, 0xc4, 0xf2, 0xfa, 0x7e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0xa0, 0x20, 0x00, 0x10, - 0x10, 0x10, 0x10, 0x0c, 0x02, 0x22, 0x42, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xf2, 0xf2, 0xc2, 0x01, 0x00, 0xc0, 0xa0, 0xe0, 0x28, - 0x50, 0x00, 0x00, 0x00, 0x01, 0x1a, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0xe0, - 0xff, 0xff, 0xc7, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, 0x3c, 0x3c, 0x1c, 0x1c, 0x3c, 0x38, - 0x78, 0xf0, 0xe0, 0xc0, 0x00, 0x01, 0x06, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x41, 0xc0, 0x80, - 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x61, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x8c, 0xd9, 0x7b, 0x53, 0x10, - 0x08, 0x18, 0x38, 0x3c, 0x36, 0x2f, 0x6b, 0x75, 0x92, 0xee, 0x18, 0xe4, 0xfc, 0x78, 0x00, 0xc1, - 0xb7, 0xcf, 0xf3, 0xfc, 0xfd, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xf9, - 0xf0, 0xf9, 0xff, 0x7f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x90, - 0x08, 0x09, 0x9f, 0xff, 0xff, 0xf8, 0x00, 0x38, 0xc6, 0x81, 0x8e, 0x70, 0x50, 0x50, 0x53, 0xe2, - 0x83, 0x01, 0x62, 0xab, 0xa8, 0xa8, 0x50, 0x54, 0x50, 0x89, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0d, 0x0c, 0x04, 0x06, 0x1e, 0x6e, - 0x80, 0x00, 0x00, 0x38, 0x08, 0x84, 0xc4, 0xfe, 0x07, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x3e, 0x7f, - 0x7f, 0x3f, 0x0f, 0x01, 0x83, 0x7c, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xc8, 0x84, 0x86, 0xcf, - 0xb7, 0x81, 0x80, 0x41, 0x43, 0x8c, 0x92, 0xe1, 0x61, 0x53, 0x2e, 0x11, 0x11, 0x19, 0x2c, 0xd0, - 0x20, 0x41, 0x40, 0x40, 0x24, 0x30, 0x20, 0x20, 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM cel_disp[] = { - // 'celebi1', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, - 0x20, 0xc0, 0xe0, 0xe0, 0xf0, 0xdc, 0xee, 0xf0, 0xbe, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0xc0, 0x81, 0x80, 0x80, 0xc0, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x80, 0xc0, 0xc0, 0xc0, - 0x60, 0xb0, 0xcc, 0xf0, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfc, 0xfb, - 0xf4, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0x67, 0xe3, 0xc7, 0x0f, 0x9f, 0xff, 0x3e, 0xc0, 0xf0, 0x78, - 0x90, 0xe0, 0xf2, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, - 0x3f, 0x3b, 0x3e, 0x79, 0xfe, 0xfe, 0xff, 0xfe, 0x7c, 0xfc, 0xf8, 0xd8, 0xf0, 0xf0, 0xb0, 0xa0, - 0xa0, 0xa0, 0xe0, 0xe0, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0e, 0x31, 0x40, 0xf0, 0xf8, 0xfc, 0xfe, 0xf0, 0xff, 0xf0, 0xff, 0x7f, 0x3f, 0xbf, 0x9f, - 0x9f, 0x1f, 0x3f, 0xfe, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x87, 0x8f, 0x9f, - 0x9f, 0x9f, 0xc7, 0xcc, 0xd8, 0xd8, 0x98, 0x3c, 0xfc, 0xf7, 0xfb, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f, - 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x87, 0xcf, 0x6d, 0xf8, 0x72, 0xf4, - 0xf4, 0x90, 0x20, 0x20, 0xa7, 0x6f, 0x6f, 0x6b, 0x0b, 0x06, 0x06, 0x05, 0x05, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0xc0, 0xc0, 0xc0, 0xc0, 0x83, 0x8f, 0x9f, 0x3f, 0x7f, 0x5f, 0xff, 0x71, 0xe0, 0xe1, 0x60, 0x62, - 0x27, 0x30, 0x18, 0x9f, 0xcf, 0xc3, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0xe0, 0xe0, 0xc8, 0x9c, 0xf8, 0x60, 0x28, 0x3c, 0x7e, 0x7e, 0xfe, 0xff, 0xfc, 0xe1, - 0x07, 0x1f, 0x3f, 0x3e, 0x7d, 0x7b, 0x73, 0x72, 0xe2, 0xe0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, - 0x01, 0x01, 0xc1, 0xc1, 0x03, 0x03, 0x03, 0x23, 0x01, 0x0d, 0x06, 0x07, 0x37, 0x33, 0x01, 0x01, - 0x07, 0x0e, 0x3c, 0x39, 0x79, 0x71, 0x71, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM rayq_disp[] = { - // 'rayquaza1', 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, - 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x70, 0x70, 0x71, 0x50, 0x60, 0x60, 0x60, 0x40, 0x80, 0x80, - 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x80, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x80, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, - 0xe0, 0x60, 0x70, 0x70, 0x7b, 0x7b, 0xfb, 0xfb, 0xf8, 0xb0, 0xb0, 0xd0, 0x60, 0x30, 0x10, 0x08, - 0x0c, 0x84, 0x86, 0x83, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x30, 0x1c, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x11, 0x12, 0x10, 0x10, 0x0e, 0x0e, 0x0c, 0x0c, 0x07, - 0x07, 0x0f, 0x0f, 0x03, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9f, 0xf3, 0x3e, 0xe7, 0xfc, 0x7f, 0x3f, 0x0f, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3c, 0x2e, 0x57, 0x17, 0x1b, 0x1d, 0x36, - 0x36, 0x3d, 0x31, 0x31, 0x39, 0x3d, 0x3d, 0x1d, 0x1f, 0x1f, 0xcf, 0x3f, 0x07, 0x00, 0x00, 0x81, - 0x83, 0x83, 0x83, 0x03, 0x07, 0x07, 0x07, 0x0f, 0x0e, 0x1e, 0x1c, 0x3c, 0x78, 0xf8, 0xf0, 0xe0, - 0x00, 0x40, 0xc0, 0x00, 0x60, 0x38, 0x38, 0x20, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x7f, 0xfe, 0xec, 0xf8, 0x7c, 0x3c, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xcf, 0x80, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x08, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc1, - 0x07, 0x0f, 0x9f, 0xbe, 0x78, 0xf0, 0xc0, 0x00, 0x80, 0x00, 0x80, 0x30, 0x30, 0x30, 0x11, 0x19, - 0x18, 0x02, 0x07, 0x1f, 0x1f, 0x3c, 0x73, 0xcf, 0x0f, 0x0f, 0x0f, 0x17, 0x2f, 0x56, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1d, 0x3b, 0xff, 0xff, 0xfc, 0xf8, 0xf0, - 0x60, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x68, 0x78, 0x10, 0x00, 0x18, 0x90, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xfc, 0xf8, 0xe0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, - 0xf0, 0xf0, 0xf0, 0xf1, 0xe1, 0x41, 0x04, 0x1e, 0xcf, 0xc7, 0x44, 0x63, 0x59, 0x6d, 0x0a, 0x03, - 0x03, 0x0c, 0x0e, 0x05, 0x03, 0x02, 0x02, 0x1b, 0xec, 0x67, 0x5b, 0x1c, 0x8c, 0xcc, 0xdc, 0x30, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xc0, 0x3f, 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -// invert display based on layer -static void inv_display(void) { - switch (get_highest_layer(layer_state)) { - case 1: - oled_invert(true); - break; - default: - oled_invert(false); - break; - } -} - -// MTNS -static void mountains(void) { - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); - break; - case 1: - oled_write_raw_P(mnts_l1, sizeof(mnts_l1)); - break; - default: - oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); - break; - } -} - -// INFO -static void info(void) { - // get layer the board is on - oled_write_P(PSTR("LAYER "), false); - oled_write_P(PSTR(" "), true); - oled_write_char(get_highest_layer(layer_state) + 0x30, true); - oled_write_P(PSTR(" "), true); - - // here we do a bit of trickery - oled_write_P(PSTR(" ENC "), false); - oled_write_P(PSTR(" VOL "), true); - - // lock key statuses - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(9, 1); - oled_write_P(PSTR(" CAP "), led_state.caps_lock); - oled_set_cursor(14, 1); - oled_write_P(PSTR(" SCR "), led_state.scroll_lock); - - // write model B here in invert text - oled_set_cursor(0, 3); - oled_write_P(PSTR(" MODEL-B "), true); - - // mod masks - if you don't know what these do, don't worry about them - uint8_t mod_state = get_mods(); - oled_advance_char(); - oled_advance_char(); - oled_write_P(PSTR("S"), mod_state & MOD_MASK_SHIFT); - oled_advance_char(); - oled_write_P(PSTR("C"), mod_state & MOD_MASK_CTRL); - oled_advance_char(); - oled_write_P(PSTR("A"), mod_state & MOD_MASK_ALT); - oled_advance_char(); - oled_write_P(PSTR("G"), mod_state & MOD_MASK_GUI); - oled_advance_char(); -} - -// display logo - used on boot and exception state -static void logo(void) { - oled_write_raw_P(bootscreen, sizeof(bootscreen)); -} - -// run this whenever the oled needs to update -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - - switch (keyboard_config.display_mode_saved) { - case MTNS: - mountains(); - break; - case INFO: - info(); - break; - case LOGO: - oled_write_raw_P(bootscreen, sizeof(bootscreen)); // write image to screen - inv_display(); // invert image if necessary - remove if layer differs - break; - case MEW: - oled_write_raw_P(mew_disp, sizeof(mew_disp)); - inv_display(); - break; - case CEL: - oled_write_raw_P(cel_disp, sizeof(cel_disp)); - inv_display(); - break; - case RAY: - oled_write_raw_P(rayq_disp, sizeof(rayq_disp)); - inv_display(); - break; - default: - logo(); - } - return false; -} - -// render this on boot/reset -void oled_render_boot(bool bootloader) { - oled_clear(); - logo(); - oled_render_dirty(true); -} - -// change depending on if OLED_MOD is pressed -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - if (keycode == OLED_MOD && record->event.pressed) { - oled_clear(); - keyboard_config.display_mode_saved++; - if (keyboard_config.display_mode_saved == NUM_MODES) { - keyboard_config.display_mode_saved = 0; - } - eeconfig_update_kb(keyboard_config.raw); - } - return true; -} - -#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.h b/keyboards/trojan_pinata/model_b/rev0/rev0.h deleted file mode 100644 index 18906806c9..0000000000 --- a/keyboards/trojan_pinata/model_b/rev0/rev0.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2024 Brian H (@Trojan_Pinata) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -void oled_render_boot(bool bootloader); diff --git a/keyboards/tunks/ergo33/keyboard.json b/keyboards/tunks/ergo33/keyboard.json index b279af5c1a..2bace9cf00 100644 --- a/keyboards/tunks/ergo33/keyboard.json +++ b/keyboards/tunks/ergo33/keyboard.json @@ -27,6 +27,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tunks/ergo33/keymaps/default/keymap.c b/keyboards/tunks/ergo33/keymaps/default/keymap.c index 58e7b8ec27..8f646f08ca 100644 --- a/keyboards/tunks/ergo33/keymaps/default/keymap.c +++ b/keyboards/tunks/ergo33/keymaps/default/keymap.c @@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } } return true; diff --git a/keyboards/tweetydabird/lbs4/keyboard.json b/keyboards/tweetydabird/lbs4/keyboard.json index c7d1e7ab1b..3176520772 100644 --- a/keyboards/tweetydabird/lbs4/keyboard.json +++ b/keyboards/tweetydabird/lbs4/keyboard.json @@ -7,6 +7,8 @@ "bootloader_instructions": "Short marked pads on PCB, or hold top left key when plugging in.", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, @@ -34,6 +36,9 @@ }, "rgblight": { "led_count": 6, + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, "max_brightness": 175, "animations": { "alternating": true, diff --git a/keyboards/tweetydabird/lbs6/keyboard.json b/keyboards/tweetydabird/lbs6/keyboard.json index 105dcf9013..1714e9b6c4 100644 --- a/keyboards/tweetydabird/lbs6/keyboard.json +++ b/keyboards/tweetydabird/lbs6/keyboard.json @@ -6,6 +6,8 @@ "development_board": "promicro", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -37,6 +39,9 @@ }, "rgblight": { "led_count": 8, + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, "max_brightness": 200, "animations": { "alternating": true, diff --git a/keyboards/tweetydabird/lotus58/elite_c/keyboard.json b/keyboards/tweetydabird/lotus58/elite_c/keyboard.json new file mode 100644 index 0000000000..2a4c4a21bc --- /dev/null +++ b/keyboards/tweetydabird/lotus58/elite_c/keyboard.json @@ -0,0 +1,34 @@ +{ + "build": { + "lto": true + }, + "development_board": "elite_c", + "pin_compatible": "elite_c", + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4", "resolution": 2} + ] + }, + "matrix_pins": { + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "F4", "pin_b": "F5", "resolution": 2} + ] + } + }, + "handedness": { + "pin": "B5" + }, + "serial": { + "pin": "D2" + } + }, + "ws2812": { + "pin": "D3" + } +} diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json new file mode 100644 index 0000000000..2c3f85cdd9 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/info.json @@ -0,0 +1,120 @@ +{ + "manufacturer": "Tweetys Wild Thinking", + "keyboard_name": "Lotus 58 Glow", + "maintainer": "TweetyDaBird", + "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true, + "tri_layer": true + }, + "rgblight": { + "default": { + "val": 87 + }, + "led_count": 70, + "max_brightness": 175, + "sleep": true, + "split": true, + "split_count": [35, 35] + }, + "split": { + "bootmagic": { + "matrix": [5, 0] + }, + "enabled": true, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true, + "oled": true + } + }, + "usb_detect": { + "enabled": true + } + }, + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "usb": { + "device_version": "1.2.3", + "force_nkro": true, + "pid": "0x23B0", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0.75}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.5}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0.25}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0.25}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0.5}, + {"label": "Left ENC", "matrix": [4, 0], "x": 6.25, "y": 0.75}, + {"label": "Right ENC", "matrix": [9, 0], "x": 7.75, "y": 0.75}, + {"label": "6", "matrix": [5, 5], "x": 9, "y": 0.5}, + {"label": "7", "matrix": [5, 4], "x": 10, "y": 0.25}, + {"label": "8", "matrix": [5, 3], "x": 11, "y": 0}, + {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.25}, + {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.5}, + {"label": "-", "matrix": [5, 0], "x": 14, "y": 0.75}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.75}, + {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "T", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.5}, + {"label": "U", "matrix": [6, 4], "x": 10, "y": 1.25}, + {"label": "I", "matrix": [6, 3], "x": 11, "y": 1}, + {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.25}, + {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.5}, + {"label": "{", "matrix": [6, 0], "x": 14, "y": 1.75}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2.75}, + {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.5}, + {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.25}, + {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4, "y": 2.25}, + {"label": "G", "matrix": [2, 5], "x": 5, "y": 2.5}, + {"label": "H", "matrix": [7, 5], "x": 9, "y": 2.5}, + {"label": "J", "matrix": [7, 4], "x": 10, "y": 2.25}, + {"label": "K", "matrix": [7, 3], "x": 11, "y": 2}, + {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.25}, + {"label": ":", "matrix": [7, 1], "x": 13, "y": 2.5}, + {"label": "\"", "matrix": [7, 0], "x": 14, "y": 2.75}, + {"label": "L_Ctrl", "matrix": [3, 0], "x": 0, "y": 3.75}, + {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.5}, + {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.25}, + {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.25}, + {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.5}, + {"label": "Down", "matrix": [4, 5], "x": 6, "y": 3}, + {"label": "Up", "matrix": [9, 5], "x": 8, "y": 3}, + {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.5}, + {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.25}, + {"label": ",", "matrix": [8, 3], "x": 11, "y": 3}, + {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.25}, + {"label": "?", "matrix": [8, 1], "x": 13, "y": 3.5}, + {"label": "R_Ctrl", "matrix": [8, 0], "x": 14, "y": 3.75}, + {"label": "Win", "matrix": [4, 1], "x": 2.5, "y": 4.25}, + {"label": "Lower", "matrix": [4, 2], "x": 3.5, "y": 4.25}, + {"label": "Alt", "matrix": [4, 3], "x": 4.5, "y": 4.5}, + {"label": "Space", "matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.25}, + {"label": "Enter", "matrix": [9, 4], "x": 8, "y": 4.25, "h": 1.25}, + {"label": "AltGr", "matrix": [9, 3], "x": 9.5, "y": 4.5}, + {"label": "Raise", "matrix": [9, 2], "x": 10.5, "y": 4.25}, + {"label": "BckSp", "matrix": [9, 1], "x": 11.5, "y": 4.25} + ] + } + } +} diff --git a/keyboards/tweetydabird/lotus58/keyboard.json b/keyboards/tweetydabird/lotus58/keyboard.json deleted file mode 100644 index a74506ab29..0000000000 --- a/keyboards/tweetydabird/lotus58/keyboard.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "manufacturer": "Tweetys Wild Thinking", - "keyboard_name": "Lotus 58 Glow", - "maintainer": "TweetyDaBird", - "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "F5", "pin_b": "F4", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "oled": true, - "rgb_matrix": true, - "tri_layer": true - }, - "host": { - "default": { - "nkro": true - } - }, - "matrix_pins": { - "cols": ["B1", "B2", "B3", "B6", "F7", "F6"], - "rows": ["D4", "C6", "D7", "E6", "B4"] - }, - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, - {"x": 65, "y": 4, "flags": 2}, - {"matrix": [0, 4], "x": 58, "y": 2, "flags": 4}, - {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, - {"x": 36, "y": 4, "flags": 2}, - {"matrix": [0, 2], "x": 29, "y": 2, "flags": 4}, - {"matrix": [0, 1], "x": 14, "y": 6, "flags": 4}, - {"x": 7, "y": 4, "flags": 2}, - {"matrix": [0, 0], "x": 0, "y": 8, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 23, "flags": 4}, - {"matrix": [1, 1], "x": 14, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, - {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 58, "y": 17, "flags": 4}, - {"matrix": [1, 5], "x": 72, "y": 19, "flags": 4}, - {"matrix": [2, 5], "x": 72, "y": 34, "flags": 4}, - {"matrix": [2, 4], "x": 58, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, - {"matrix": [2, 2], "x": 29, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 14, "y": 36, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 53, "flags": 4}, - {"x": 7, "y": 52, "flags": 2}, - {"matrix": [3, 1], "x": 14, "y": 51, "flags": 4}, - {"matrix": [3, 2], "x": 29, "y": 47, "flags": 4}, - {"matrix": [3, 3], "x": 43, "y": 45, "flags": 4}, - {"matrix": [3, 4], "x": 58, "y": 47, "flags": 4}, - {"matrix": [3, 5], "x": 72, "y": 49, "flags": 4}, - {"x": 79, "y": 45, "flags": 2}, - {"matrix": [4, 5], "x": 87, "y": 41, "flags": 4}, - {"matrix": [4, 4], "x": 87, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 65, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 51, "y": 62, "flags": 4}, - {"x": 43, "y": 62, "flags": 2}, - {"matrix": [4, 1], "x": 36, "y": 62, "flags": 4}, - {"matrix": [5, 5], "x": 152, "y": 4, "flags": 4}, - {"x": 159, "y": 4, "flags": 2}, - {"matrix": [5, 4], "x": 166, "y": 2, "flags": 4}, - {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, - {"x": 188, "y": 4, "flags": 2}, - {"matrix": [5, 2], "x": 195, "y": 2, "flags": 4}, - {"matrix": [5, 1], "x": 210, "y": 6, "flags": 4}, - {"x": 217, "y": 4, "flags": 2}, - {"matrix": [5, 0], "x": 224, "y": 8, "flags": 4}, - {"matrix": [6, 0], "x": 224, "y": 23, "flags": 4}, - {"matrix": [6, 1], "x": 210, "y": 21, "flags": 4}, - {"matrix": [6, 2], "x": 195, "y": 17, "flags": 4}, - {"matrix": [6, 3], "x": 181, "y": 15, "flags": 4}, - {"matrix": [6, 4], "x": 166, "y": 17, "flags": 4}, - {"matrix": [6, 5], "x": 152, "y": 19, "flags": 4}, - {"matrix": [7, 5], "x": 152, "y": 34, "flags": 4}, - {"matrix": [7, 4], "x": 166, "y": 32, "flags": 4}, - {"matrix": [7, 3], "x": 181, "y": 30, "flags": 4}, - {"matrix": [7, 2], "x": 195, "y": 32, "flags": 4}, - {"matrix": [7, 1], "x": 210, "y": 36, "flags": 4}, - {"matrix": [7, 0], "x": 224, "y": 38, "flags": 4}, - {"matrix": [8, 0], "x": 224, "y": 53, "flags": 4}, - {"x": 217, "y": 52, "flags": 2}, - {"matrix": [8, 1], "x": 210, "y": 51, "flags": 4}, - {"matrix": [8, 2], "x": 195, "y": 47, "flags": 4}, - {"matrix": [8, 3], "x": 181, "y": 45, "flags": 4}, - {"matrix": [8, 4], "x": 166, "y": 47, "flags": 4}, - {"matrix": [8, 5], "x": 152, "y": 49, "flags": 4}, - {"x": 159, "y": 45, "flags": 2}, - {"matrix": [9, 5], "x": 137, "y": 41, "flags": 4}, - {"matrix": [9, 4], "x": 137, "y": 64, "flags": 4}, - {"matrix": [9, 3], "x": 159, "y": 64, "flags": 4}, - {"matrix": [9, 2], "x": 173, "y": 62, "flags": 4}, - {"x": 180, "y": 62, "flags": 2}, - {"matrix": [9, 1], "x": 188, "y": 62, "flags": 4} - ], - "max_brightness": 175, - "sleep": true, - "split_count": [35, 35] - }, - "split": { - "bootmagic": { - "matrix": [5, 0] - }, - "enabled": true, - "encoder": { - "right": { - "rotary": [ - {"pin_a": "F4", "pin_b": "F5", "resolution": 2} - ] - } - }, - "handedness": { - "pin": "B5" - }, - "serial": { - "pin": "D2" - }, - "transport": { - "sync": { - "indicators": true, - "layer_state": true, - "matrix_state": true, - "modifiers": true, - "oled": true - } - }, - "usb_detect": { - "enabled": true - } - }, - "url": "https://lectronz.com/stores/tweetys-wild-thinking", - "usb": { - "device_version": "1.2.3", - "pid": "0x23B0", - "vid": "0xFEED" - }, - "ws2812": { - "pin": "D3" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0.75}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.5}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0.25}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0.25}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0.5}, - {"label": "Left ENC", "matrix": [4, 0], "x": 6.25, "y": 0.75}, - {"label": "Right ENC", "matrix": [9, 0], "x": 7.75, "y": 0.75}, - {"label": "6", "matrix": [5, 5], "x": 9, "y": 0.5}, - {"label": "7", "matrix": [5, 4], "x": 10, "y": 0.25}, - {"label": "8", "matrix": [5, 3], "x": 11, "y": 0}, - {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.25}, - {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.5}, - {"label": "-", "matrix": [5, 0], "x": 14, "y": 0.75}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.75}, - {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.5}, - {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "T", "matrix": [1, 5], "x": 5, "y": 1.5}, - {"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.5}, - {"label": "U", "matrix": [6, 4], "x": 10, "y": 1.25}, - {"label": "I", "matrix": [6, 3], "x": 11, "y": 1}, - {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.25}, - {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.5}, - {"label": "{", "matrix": [6, 0], "x": 14, "y": 1.75}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2.75}, - {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.5}, - {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.25}, - {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4, "y": 2.25}, - {"label": "G", "matrix": [2, 5], "x": 5, "y": 2.5}, - {"label": "H", "matrix": [7, 5], "x": 9, "y": 2.5}, - {"label": "J", "matrix": [7, 4], "x": 10, "y": 2.25}, - {"label": "K", "matrix": [7, 3], "x": 11, "y": 2}, - {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.25}, - {"label": ":", "matrix": [7, 1], "x": 13, "y": 2.5}, - {"label": "\"", "matrix": [7, 0], "x": 14, "y": 2.75}, - {"label": "L_Ctrl", "matrix": [3, 0], "x": 0, "y": 3.75}, - {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.5}, - {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.25}, - {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.25}, - {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.5}, - {"label": "Down", "matrix": [4, 5], "x": 6, "y": 3}, - {"label": "Up", "matrix": [9, 5], "x": 8, "y": 3}, - {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.5}, - {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.25}, - {"label": ",", "matrix": [8, 3], "x": 11, "y": 3}, - {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.25}, - {"label": "?", "matrix": [8, 1], "x": 13, "y": 3.5}, - {"label": "R_Ctrl", "matrix": [8, 0], "x": 14, "y": 3.75}, - {"label": "Win", "matrix": [4, 1], "x": 2.5, "y": 4.25}, - {"label": "Lower", "matrix": [4, 2], "x": 3.5, "y": 4.25}, - {"label": "Alt", "matrix": [4, 3], "x": 4.5, "y": 4.5}, - {"label": "Space", "matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.25}, - {"label": "Enter", "matrix": [9, 4], "x": 8, "y": 4.25, "h": 1.25}, - {"label": "AltGr", "matrix": [9, 3], "x": 9.5, "y": 4.5}, - {"label": "Raise", "matrix": [9, 2], "x": 10.5, "y": 4.25}, - {"label": "BckSp", "matrix": [9, 1], "x": 11.5, "y": 4.25} - ] - } - } -} diff --git a/keyboards/tweetydabird/lotus58/nanoboot/keyboard.json b/keyboards/tweetydabird/lotus58/nanoboot/keyboard.json new file mode 100644 index 0000000000..85f37a265c --- /dev/null +++ b/keyboards/tweetydabird/lotus58/nanoboot/keyboard.json @@ -0,0 +1,34 @@ +{ + "build": { + "lto": true + }, + "pin_compatible": "promicro", + "processor": "atmega32u4", + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4", "resolution": 2} + ] + }, + "matrix_pins": { + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "F4", "pin_b": "F5", "resolution": 2} + ] + } + }, + "handedness": { + "pin": "B5" + }, + "serial": { + "pin": "D2" + } + }, + "ws2812": { + "pin": "D3" + } +} diff --git a/keyboards/tweetydabird/lotus58/nanoboot/rules.mk b/keyboards/tweetydabird/lotus58/nanoboot/rules.mk new file mode 100644 index 0000000000..1d937578bd --- /dev/null +++ b/keyboards/tweetydabird/lotus58/nanoboot/rules.mk @@ -0,0 +1,2 @@ +BOOTLOADER = qmk-hid +BOOTLOADER_SIZE = 512 diff --git a/keyboards/tweetydabird/lotus58/promicro/keyboard.json b/keyboards/tweetydabird/lotus58/promicro/keyboard.json new file mode 100644 index 0000000000..83532c8ee2 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/promicro/keyboard.json @@ -0,0 +1,33 @@ +{ + "build": { + "lto": true + }, + "development_board": "promicro", + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4", "resolution": 2} + ] + }, + "matrix_pins": { + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "F4", "pin_b": "F5", "resolution": 2} + ] + } + }, + "handedness": { + "pin": "B5" + }, + "serial": { + "pin": "D2" + } + }, + "ws2812": { + "pin": "D3" + } +} diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 637706f2ab..57a89a9b03 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -9,13 +9,22 @@ * Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) * Hardware Design: [GitHub](https://github.com/TweetyDaBird/Lotus58) + +#### This keyboard firmware contains three different versions, all for the same PCB/hardware, but depending on your choice of controller/bootloader. + + +* promicro - This uses the default Caterina bootloader. +* elite_c - This uses the Atmel-DFU bootloader. +* nanoBoot - A tiny 512 byte bootloader giving far more usable memory for features (can be used on both Elite C and Pro Micro). + + Make example for this keyboard (after setting up your build environment): - make tweetydabird/lotus58:default + make tweetydabird/lotus58/promicro:default Flashing example for this keyboard: - make tweetydabird/lotus58:default:flash + make tweetydabird/lotus58/elite_c: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). diff --git a/keyboards/tweetydabird/lotus58/rp2040_ce/config.h b/keyboards/tweetydabird/lotus58/rp2040_ce/config.h new file mode 100644 index 0000000000..e4a23b7d7f --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rp2040_ce/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP2 +#define I2C1_SCL_PIN GP3 diff --git a/keyboards/tweetydabird/lotus58/rp2040_ce/halconf.h b/keyboards/tweetydabird/lotus58/rp2040_ce/halconf.h new file mode 100644 index 0000000000..2e098f5113 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rp2040_ce/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/tweetydabird/lotus58/rp2040_ce/keyboard.json b/keyboards/tweetydabird/lotus58/rp2040_ce/keyboard.json new file mode 100644 index 0000000000..07fb343974 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rp2040_ce/keyboard.json @@ -0,0 +1,32 @@ +{ + "development_board": "promicro_rp2040", + "encoder": { + "rotary": [ + {"pin_a": "GP28", "pin_b": "GP29", "resolution": 2} + ] + }, + "matrix_pins": { + "cols": ["GP22", "GP23", "GP20", "GP21", "GP26", "GP27"], + "rows": ["GP4", "GP5", "GP6", "GP7", "GP8"] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP29", "pin_b": "GP28", "resolution": 2} + ] + } + }, + "serial": { + "driver": "vendor", + "pin": "GP1" + }, + "handedness": { + "pin": "GP9" + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + } +} diff --git a/keyboards/tweetydabird/lotus58/rp2040_ce/mcuconf.h b/keyboards/tweetydabird/lotus58/rp2040_ce/mcuconf.h new file mode 100644 index 0000000000..2ae39bf675 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rp2040_ce/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk new file mode 100644 index 0000000000..4cd2262cc7 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = tweetydabird/lotus58/promicro \ No newline at end of file diff --git a/keyboards/typek/config.h b/keyboards/typek/config.h deleted file mode 100644 index 873d74500d..0000000000 --- a/keyboards/typek/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2022 Gondolindrim - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_PWM_COMPLEMENTARY_OUTPUT -#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 - -/* LED MAP - 0 , 1 , 2 Three indicators - 3 , 4 , 5 Three RGBs on left side - 66, 67, 68 Three RGBs on right side - 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6 Left RGB wing (30 LEDs) - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65 Right RGB wing (30 LEDs) - */ diff --git a/keyboards/typek/keyboard.json b/keyboards/typek/keyboard.json deleted file mode 100644 index f579f24502..0000000000 --- a/keyboards/typek/keyboard.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "manufacturer": "gok", - "keyboard_name": "TypeK-S Rev. Zeta-RC2", - "maintainer": "Gondolindrim", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "eeprom": { - "wear_leveling": { - "backing_size": 4096 - } - }, - "features": { - "bootmagic": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A3", "B12", "A0", "A10", "B0", "B1", "B10", "B3", "C15", "C14", "C13", "B9", "B8", "B5"], - "rows": ["A7", "A8", "A15", "A1", "A2"] - }, - "processor": "STM32F411", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_swirl", - "val": 200 - }, - "led_count": 69, - "led_map": [0, 1, 2, 3, 4, 5, 66, 67, 68, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65] - }, - "url": "https://www.gok.design/type-k", - "usb": { - "device_version": "6.2.0", - "pid": "0x8475", - "vid": "0x7179" - }, - "ws2812": { - "driver": "pwm", - "pin": "B15" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0.75, "y": 0}, - {"label": "`~", "matrix": [0, 1], "x": 2.5, "y": 0}, - {"label": "1!", "matrix": [0, 2], "x": 3.5, "y": 0}, - {"label": "2@", "matrix": [0, 3], "x": 5, "y": 0}, - {"label": "3#", "matrix": [0, 4], "x": 6, "y": 0}, - {"label": "4$", "matrix": [0, 5], "x": 7, "y": 0}, - {"label": "5%", "matrix": [0, 6], "x": 8, "y": 0}, - {"label": "7&", "matrix": [0, 7], "x": 12.75, "y": 0}, - {"label": "8*", "matrix": [0, 8], "x": 13.75, "y": 0}, - {"label": "9(", "matrix": [0, 9], "x": 14.75, "y": 0}, - {"label": "0)", "matrix": [0, 10], "x": 15.75, "y": 0}, - {"label": "-_", "matrix": [0, 11], "x": 17, "y": 0}, - {"label": "=+", "matrix": [0, 12], "x": 18, "y": 0}, - {"label": "\\|", "matrix": [0, 13], "x": 19, "y": 0}, - {"label": "Page Up", "matrix": [1, 0], "x": 0.5, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 2.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 3.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 5.5, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 6.5, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 7.5, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 8.5, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 12, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 13, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 14, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 15, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 16.75, "y": 1}, - {"label": "[{", "matrix": [1, 12], "x": 17.75, "y": 1}, - {"label": "]}", "matrix": [1, 13], "x": 18.75, "y": 1}, - {"label": "Page Down", "matrix": [2, 0], "x": 0.25, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 2.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 4, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 5.75, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 6.75, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 7.75, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 8.75, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 12.25, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 13.25, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 14.25, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 15.25, "y": 2}, - {"label": ";:", "matrix": [2, 11], "x": 17.25, "y": 2}, - {"label": "\"", "matrix": [2, 12], "x": 18.25, "y": 2}, - {"label": "Del", "matrix": [2, 13], "x": 20, "y": 0}, - {"label": "End", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 3.75, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 6, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 7, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 8, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 9, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 11.75, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 12.75, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 13.75, "y": 3}, - {"label": ",<", "matrix": [3, 10], "x": 14.75, "y": 3}, - {"label": ".>", "matrix": [3, 11], "x": 17, "y": 3}, - {"label": "/?", "matrix": [3, 12], "x": 18, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 19, "y": 3, "w": 1.25}, - {"label": "Control", "matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 2], "x": 6, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 4], "x": 7.5, "y": 4, "w": 2}, - {"label": "Left GUI", "matrix": [4, 5], "x": 9.5, "y": 4}, - {"label": "^6", "matrix": [4, 6], "x": 9, "y": 0}, - {"label": "Space", "matrix": [4, 7], "x": 11.25, "y": 4}, - {"label": "Space", "matrix": [4, 8], "x": 12.25, "y": 4, "w": 2}, - {"label": "Alt", "matrix": [4, 9], "x": 14.25, "y": 4, "w": 1.5}, - {"label": "Backspace", "matrix": [4, 10], "x": 19.75, "y": 1, "w": 1.5}, - {"label": "Enter", "matrix": [4, 11], "x": 19.25, "y": 2, "w": 2.25}, - {"label": "MO(1)", "matrix": [4, 12], "x": 20.25, "y": 3}, - {"label": "Control", "matrix": [4, 13], "x": 19.25, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_nosplits": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0.75, "y": 0}, - {"label": "`~", "matrix": [0, 1], "x": 2.5, "y": 0}, - {"label": "1!", "matrix": [0, 2], "x": 3.5, "y": 0}, - {"label": "2@", "matrix": [0, 3], "x": 5, "y": 0}, - {"label": "3#", "matrix": [0, 4], "x": 6, "y": 0}, - {"label": "4$", "matrix": [0, 5], "x": 7, "y": 0}, - {"label": "5%", "matrix": [0, 6], "x": 8, "y": 0}, - {"label": "7&", "matrix": [0, 7], "x": 12.75, "y": 0}, - {"label": "8*", "matrix": [0, 8], "x": 13.75, "y": 0}, - {"label": "9(", "matrix": [0, 9], "x": 14.75, "y": 0}, - {"label": "0)", "matrix": [0, 10], "x": 15.75, "y": 0}, - {"label": "-_", "matrix": [0, 11], "x": 17, "y": 0}, - {"label": "=+", "matrix": [0, 12], "x": 18, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 19, "y": 0, "w": 2}, - {"label": "Page Up", "matrix": [1, 0], "x": 0.5, "y": 1}, - {"label": "Tab", "matrix": [1, 1], "x": 2.25, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 2], "x": 3.75, "y": 1}, - {"label": "W", "matrix": [1, 3], "x": 5.5, "y": 1}, - {"label": "E", "matrix": [1, 4], "x": 6.5, "y": 1}, - {"label": "R", "matrix": [1, 5], "x": 7.5, "y": 1}, - {"label": "T", "matrix": [1, 6], "x": 8.5, "y": 1}, - {"label": "Y", "matrix": [1, 7], "x": 12, "y": 1}, - {"label": "U", "matrix": [1, 8], "x": 13, "y": 1}, - {"label": "I", "matrix": [1, 9], "x": 14, "y": 1}, - {"label": "O", "matrix": [1, 10], "x": 15, "y": 1}, - {"label": "P", "matrix": [1, 11], "x": 16.75, "y": 1}, - {"label": "[{", "matrix": [1, 12], "x": 17.75, "y": 1}, - {"label": "]}", "matrix": [1, 13], "x": 18.75, "y": 1}, - {"label": "Page Down", "matrix": [2, 0], "x": 0.25, "y": 2}, - {"label": "Caps Lock", "matrix": [2, 1], "x": 2.25, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 2], "x": 4, "y": 2}, - {"label": "S", "matrix": [2, 3], "x": 5.75, "y": 2}, - {"label": "D", "matrix": [2, 4], "x": 6.75, "y": 2}, - {"label": "F", "matrix": [2, 5], "x": 7.75, "y": 2}, - {"label": "G", "matrix": [2, 6], "x": 8.75, "y": 2}, - {"label": "H", "matrix": [2, 7], "x": 12.25, "y": 2}, - {"label": "J", "matrix": [2, 8], "x": 13.25, "y": 2}, - {"label": "K", "matrix": [2, 9], "x": 14.25, "y": 2}, - {"label": "L", "matrix": [2, 10], "x": 15.25, "y": 2}, - {"label": ";:", "matrix": [2, 11], "x": 17.25, "y": 2}, - {"label": "\"", "matrix": [2, 12], "x": 18.25, "y": 2}, - {"label": "End", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Shift", "matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 3.75, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 6, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 7, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 8, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 9, "y": 3}, - {"label": "B", "matrix": [3, 7], "x": 11.75, "y": 3}, - {"label": "N", "matrix": [3, 8], "x": 12.75, "y": 3}, - {"label": "M", "matrix": [3, 9], "x": 13.75, "y": 3}, - {"label": ",<", "matrix": [3, 10], "x": 14.75, "y": 3}, - {"label": ".>", "matrix": [3, 11], "x": 17, "y": 3}, - {"label": "/?", "matrix": [3, 12], "x": 18, "y": 3}, - {"label": "Shift", "matrix": [3, 13], "x": 19, "y": 3, "w": 2.25}, - {"label": "Control", "matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 2], "x": 6, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 4], "x": 7.5, "y": 4, "w": 3}, - {"label": "^6", "matrix": [4, 6], "x": 9, "y": 0}, - {"label": "Space", "matrix": [4, 8], "x": 11.25, "y": 4, "w": 3}, - {"label": "Alt", "matrix": [4, 9], "x": 14.25, "y": 4, "w": 1.5}, - {"label": "Backspace", "matrix": [4, 10], "x": 19.75, "y": 1, "w": 1.5}, - {"label": "Enter", "matrix": [4, 11], "x": 19.25, "y": 2, "w": 2.25}, - {"label": "Control", "matrix": [4, 13], "x": 19.25, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/typek/keymaps/default/keymap.c b/keyboards/typek/keymaps/default/keymap.c deleted file mode 100644 index 34d9522f93..0000000000 --- a/keyboards/typek/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2023 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT_all( /* Base */ - KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL, KC_BSLS, - KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, - KC_PGDN, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_DEL , - MO(1) , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_SPC , KC_LGUI, KC_6 , KC_SPC , KC_SPC , KC_RALT, KC_BSPC, KC_ENT , MO(1) , KC_RCTL -), -[1] = LAYOUT_all( - QK_BOOT, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_TRNS, - KC_HOME, KC_TRNS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_END , KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -) -}; diff --git a/keyboards/typek/mcuconf.h b/keyboards/typek/mcuconf.h deleted file mode 100644 index bc27263930..0000000000 --- a/keyboards/typek/mcuconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once -#include_next - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/typek/readme.md b/keyboards/typek/readme.md deleted file mode 100644 index e7521e2e71..0000000000 --- a/keyboards/typek/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# gok TypeK QMK Firmware Folder - -![TK](https://i.imgur.com/0ZEbEZt.jpg) - -## Introduction - -This is the QMK Firmware repository for the Type K, the tented ergo by Gok. The TypeK went through GB on August, 2023. It is supported by a proprietary PCB ecosystem. - -## How to flash - -### Enter bootloader - -The DFU state in the bootloader can be accessed in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key, escape in the default keymap) and plug in the keyboard; -* **Physical reset button**: press the button on the front of the PCB, next to caps lock, for at least five seconds; -* **Keycode in layout**: Press the key mapped to `RESET`; in the default layout, that is top left key ('escape') in layer 1. - -### How to compile and flash - - -After setting up your build environment, you can compile the Iron 165R2 default keymap by using one of the options below. - - make typek:default - -And use dfu-util in the command line or through a GUI like QMK toolbox to upload the firmware to the PCB. To directly flash the PCB after it is put into a DFU state, use: - - make typek: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). diff --git a/keyboards/typek/typek.c b/keyboards/typek/typek.c deleted file mode 100644 index 78c0c556ed..0000000000 --- a/keyboards/typek/typek.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2023 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -// This function gets called when caps, num, scroll change -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { - led_state.caps_lock? rgblight_setrgb_at(RGB_RED, 0) : rgblight_setrgb_at(RGB_OFF, 0); - } - return res; -} - -// This function is called when layers change -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - switch(get_highest_layer(state)) { - case 1: - rgblight_setrgb_at(RGB_GREEN, 1); - break; - case 2: - rgblight_setrgb_at(RGB_BLUE, 2); - break; - default: - rgblight_setrgb_at(RGB_OFF, 1); - rgblight_setrgb_at(RGB_OFF, 2); - break; - } - return state; -} diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h index 717ce4ee50..24357b6a35 100644 --- a/keyboards/tzarc/djinn/config.h +++ b/keyboards/tzarc/djinn/config.h @@ -50,5 +50,3 @@ #ifndef STARTUP_SONG # define STARTUP_SONG SONG(STARTUP_SOUND) #endif // STARTUP_SONG - -#define RGB_MATRIX_MODE_NAME_ENABLE diff --git a/keyboards/tzarc/djinn/djinn.c b/keyboards/tzarc/djinn/djinn.c index 9723a31a60..a104710b03 100644 --- a/keyboards/tzarc/djinn/djinn.c +++ b/keyboards/tzarc/djinn/djinn.c @@ -87,7 +87,7 @@ void keyboard_post_init_kb(void) { // RGB brightness scaling dependent on USBPD state #if defined(RGB_MATRIX_ENABLE) -rgb_t rgb_matrix_hsv_to_rgb(hsv_t hsv) { +RGB rgb_matrix_hsv_to_rgb(HSV hsv) { float scale; # ifdef DJINN_SUPPORTS_3A_FUSE diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c index 03535587c4..f321308ac5 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -30,6 +30,49 @@ static painter_image_handle_t lock_scrl_on; static painter_image_handle_t lock_scrl_off; static painter_font_handle_t thintel; +//---------------------------------------------------------- +// RGB Matrix naming +#if defined(RGB_MATRIX_ENABLE) +# include + +# if defined(RGB_MATRIX_EFFECT) +# undef RGB_MATRIX_EFFECT +# endif // defined(RGB_MATRIX_EFFECT) + +# define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x, +enum { + RGB_MATRIX_EFFECT_NONE, +# include "rgb_matrix_effects.inc" +# undef RGB_MATRIX_EFFECT +# ifdef RGB_MATRIX_CUSTOM_KB +# include "rgb_matrix_kb.inc" +# endif +# ifdef RGB_MATRIX_CUSTOM_USER +# include "rgb_matrix_user.inc" +# endif +}; + +# define RGB_MATRIX_EFFECT(x) \ + case RGB_MATRIX_EFFECT_##x: \ + return #x; +const char *rgb_matrix_name(uint8_t effect) { + switch (effect) { + case RGB_MATRIX_EFFECT_NONE: + return "NONE"; +# include "rgb_matrix_effects.inc" +# undef RGB_MATRIX_EFFECT +# ifdef RGB_MATRIX_CUSTOM_KB +# include "rgb_matrix_kb.inc" +# endif +# ifdef RGB_MATRIX_CUSTOM_USER +# include "rgb_matrix_user.inc" +# endif + default: + return "UNKNOWN"; + } +} +#endif // defined(RGB_MATRIX_ENABLE) + //---------------------------------------------------------- // UI Initialisation void keyboard_post_init_display(void) { @@ -114,7 +157,7 @@ void draw_ui_user(bool force_redraw) { if (hue_redraw || rgb_effect_redraw) { static int max_rgb_xpos = 0; xpos = 16; - snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_get_mode_name(curr_effect)); + snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_name(curr_effect)); for (int i = 5; i < sizeof(buf); ++i) { if (buf[i] == 0) diff --git a/keyboards/tzarc/djinn/keymaps/default/keymap.c b/keyboards/tzarc/djinn/keymaps/default/keymap.c index 2c6fb9e1db..972b9c97a6 100644 --- a/keyboards/tzarc/djinn/keymaps/default/keymap.c +++ b/keyboards/tzarc/djinn/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LGUI, MO(_LOWER),KC_SPC, KC_NO, KC_NO, KC_SPC, MO(_RAISE),KC_LALT, - RM_PREV, RM_NEXT, + RGB_RMOD, RGB_MOD, KC_UP, KC_UP, KC_LEFT, _______, KC_RIGHT, KC_LEFT, _______, KC_RIGHT, KC_DOWN, KC_DOWN @@ -63,10 +63,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, - [_RAISE] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, - [_ADJUST] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, }; // clang-format on diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk index 91dc4fe478..d5060d9814 100644 --- a/keyboards/tzarc/djinn/rules.mk +++ b/keyboards/tzarc/djinn/rules.mk @@ -8,3 +8,5 @@ SRC += \ djinn_portscan_matrix.c \ djinn_split_sync.c \ djinn_usbpd.c + +DEFAULT_FOLDER = tzarc/djinn/rev2 diff --git a/keyboards/tzarc/ghoul/keymaps/default/keymap.c b/keyboards/tzarc/ghoul/keymaps/default/keymap.c index e572e5ab01..57010c3a7b 100644 --- a/keyboards/tzarc/ghoul/keymaps/default/keymap.c +++ b/keyboards/tzarc/ghoul/keymaps/default/keymap.c @@ -27,25 +27,25 @@ extern void ui_task(void); // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, RM_NEXT, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_Q, KC_W, KC_E, KC_R, KC_T, RGB_MOD, KC_Y, KC_U, KC_I, KC_O, KC_P, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LALT, KC_BSPC, SC_SENT ), [_LOWER] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_RAISE] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_ADJUST] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, - [_LOWER] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, - [_RAISE] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, - [_ADJUST] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, + [_QWERTY] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_LOWER] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_RAISE] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_ADJUST] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, }; layer_state_t layer_state_set_user(layer_state_t state) { diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk index a9abdfe116..4bf96d9824 100644 --- a/keyboards/tzarc/ghoul/rules.mk +++ b/keyboards/tzarc/ghoul/rules.mk @@ -1,4 +1,6 @@ CUSTOM_MATRIX = lite QUANTUM_PAINTER_DRIVERS = ssd1351_spi +DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 + ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/tzarc/kobold/config.h b/keyboards/tzarc/kobold/config.h deleted file mode 100644 index b3991ae037..0000000000 --- a/keyboards/tzarc/kobold/config.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -// Hardware-specific definitions -#define RGB_ENABLE_PIN C11 - -// WS2812 Configuration -#define WS2812_PWM_DRIVER PWMD17 -#define WS2812_PWM_CHANNEL 1 -#define WS2812_PWM_PAL_MODE 10 -#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 -#define WS2812_PWM_DMA_CHANNEL 1 -#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP - -// SPI Configuration -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A5 -#define SPI_SCK_PAL_MODE 5 -#define SPI_MOSI_PIN A7 -#define SPI_MOSI_PAL_MODE 5 -#define SPI_MISO_PIN A6 -#define SPI_MISO_PAL_MODE 5 - -// External NOR Flash config -#define EXTERNAL_FLASH_SPI_MODE 0 -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B10 -#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 4 // (160MHz/4) => 40MHz -#define EXTERNAL_FLASH_SIZE (16 * 1024 * 1024) // 128Mb/16MB capacity diff --git a/keyboards/tzarc/kobold/halconf.h b/keyboards/tzarc/kobold/halconf.h deleted file mode 100644 index 2251180c14..0000000000 --- a/keyboards/tzarc/kobold/halconf.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define HAL_USE_PWM TRUE -#define HAL_USE_SPI TRUE - -#include_next diff --git a/keyboards/tzarc/kobold/info.json b/keyboards/tzarc/kobold/info.json deleted file mode 100644 index bed8e8a23f..0000000000 --- a/keyboards/tzarc/kobold/info.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "manufacturer": "Tzarc", - "keyboard_name": "Kobold", - "url": "https://github.com/tzarc/keyboards/tree/main/Kobold", - "maintainer": "tzarc", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "dynamic_keymap": { - "layer_count": 32 - }, - "eeprom": { - "driver": "wear_leveling", - "wear_leveling": { - "backing_size": 32768, - "driver": "spi_flash" - } - }, - "features": { - "bootmagic": true, - "rgb_matrix": true - }, - "matrix_pins": { - "direct": [ - ["B14", "C6", "B9", "B7", "B13", "B15", "C13", "C15", "B12", "B0", "A2", "A0", "B11", "A4", "A3", "A1"] - ] - }, - "processor": "STM32G431", - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - {"x": 0, "y": 0, "flags": 2}, - {"x": 75, "y": 0, "flags": 2}, - {"x": 150, "y": 0, "flags": 2}, - {"x": 224, "y": 0, "flags": 2}, - {"x": 224, "y": 21, "flags": 2}, - {"x": 150, "y": 21, "flags": 2}, - {"x": 75, "y": 21, "flags": 2}, - {"x": 0, "y": 21, "flags": 2}, - {"x": 0, "y": 43, "flags": 2}, - {"x": 75, "y": 43, "flags": 2}, - {"x": 150, "y": 43, "flags": 2}, - {"x": 224, "y": 43, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 150, "y": 64, "flags": 2}, - {"x": 75, "y": 64, "flags": 2}, - {"x": 0, "y": 64, "flags": 2} - ] - }, - "usb": { - "pid": "0x4921", - "vid": "0x1209" - }, - "ws2812": { - "driver": "pwm", - "pin": "B5" - }, - "community_layouts": ["ortho_4x4"], - "layouts": { - "LAYOUT_ortho_4x4": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 0, "y": 1}, - {"matrix": [0, 5], "x": 1, "y": 1}, - {"matrix": [0, 6], "x": 2, "y": 1}, - {"matrix": [0, 7], "x": 3, "y": 1}, - {"matrix": [0, 8], "x": 0, "y": 2}, - {"matrix": [0, 9], "x": 1, "y": 2}, - {"matrix": [0, 10], "x": 2, "y": 2}, - {"matrix": [0, 11], "x": 3, "y": 2}, - {"matrix": [0, 12], "x": 0, "y": 3}, - {"matrix": [0, 13], "x": 1, "y": 3}, - {"matrix": [0, 14], "x": 2, "y": 3}, - {"matrix": [0, 15], "x": 3, "y": 3} - ] - } - } -} diff --git a/keyboards/tzarc/kobold/keymaps/default/keymap.c b/keyboards/tzarc/kobold/keymaps/default/keymap.c deleted file mode 100644 index d78325c78b..0000000000 --- a/keyboards/tzarc/kobold/keymaps/default/keymap.c +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4x4( - KC_A, KC_B, KC_C, KC_D, - KC_E, KC_F, KC_G, KC_H, - KC_I, KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O, KC_P - ), -}; -// clang-format on diff --git a/keyboards/tzarc/kobold/kobold.c b/keyboards/tzarc/kobold/kobold.c deleted file mode 100644 index 0460a4fe85..0000000000 --- a/keyboards/tzarc/kobold/kobold.c +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -void early_hardware_init_post(void) { - // Disable RGB LEDs - gpio_set_pin_output(RGB_ENABLE_PIN); - gpio_write_pin(RGB_ENABLE_PIN, 1); -} - -void housekeeping_task_kb() { - // Enable RGB LEDs after 200 milliseconds - static bool rgb_enabled = false; - if (!rgb_enabled && timer_read32() > 200) { - gpio_write_pin(RGB_ENABLE_PIN, 0); - rgb_enabled = true; - } -} diff --git a/keyboards/tzarc/kobold/mcuconf.h b/keyboards/tzarc/kobold/mcuconf.h deleted file mode 100644 index 5d7fdbe232..0000000000 --- a/keyboards/tzarc/kobold/mcuconf.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include_next - -// Used for SK6812 chain -#undef STM32_PWM_USE_TIM17 -#define STM32_PWM_USE_TIM17 TRUE - -// Used for NOR Flash -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/tzarc/kobold/r1/keyboard.json b/keyboards/tzarc/kobold/r1/keyboard.json deleted file mode 100644 index ad889c2304..0000000000 --- a/keyboards/tzarc/kobold/r1/keyboard.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "usb": { - "device_version": "1.0.0" - } -} diff --git a/keyboards/tzarc/kobold/readme.md b/keyboards/tzarc/kobold/readme.md deleted file mode 100644 index 0c73ed49e7..0000000000 --- a/keyboards/tzarc/kobold/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# Kobold - -![Kobold](https://i.imgur.com/R8nDodO.jpg) - -4x4 macropad running QMK, in the same form factor as a bm16s. Non-standard Choc key spacing. - -North-facing RGB, SPI NOR Flash, voltage and current measurement, direct pin matrix, reset to bootloader by holding top 4 keys. - -* Keyboard Maintainer: [tzarc](https://github.com/tzarc) -* Hardware Supported: Kobold, r1 -* Hardware Availability: [KiCad files](https://github.com/tzarc/keyboards/tree/main/Kobold) - -Make example for this keyboard (after setting up your build environment): - - make tzarc/kobold/r1:default - -Flashing example for this keyboard: - - make tzarc/kobold/r1: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 top left key and plug in the keyboard -* **Physical reset button**: Simultaneously press the top four keys, or press the physical button on the back marked 'D'. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ubest/vn/keyboard.json b/keyboards/ubest/vn/keyboard.json index 74da6f1ad9..c50ceebbba 100644 --- a/keyboards/ubest/vn/keyboard.json +++ b/keyboards/ubest/vn/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "vn", "manufacturer": "ubest", + "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/uk78/keyboard.json b/keyboards/uk78/keyboard.json index c30725f553..673497ca9c 100644 --- a/keyboards/uk78/keyboard.json +++ b/keyboards/uk78/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UK78", "manufacturer": "UK Keyboards", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x554B", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/umbra/hotswap/config.h b/keyboards/umbra/hotswap/config.h deleted file mode 100644 index 56ca17df40..0000000000 --- a/keyboards/umbra/hotswap/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#define WS2812_EXTERNAL_PULLUP - diff --git a/keyboards/umbra/hotswap/keyboard.json b/keyboards/umbra/hotswap/keyboard.json deleted file mode 100644 index 4b53432caa..0000000000 --- a/keyboards/umbra/hotswap/keyboard.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "manufacturer": "IV Works", - "keyboard_name": "Umbra", - "maintainer": "IV Works", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A2", "pin_b": "A1", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "key_lock": true, - "mousekey": true, - "encoder": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["B2", "A4", "A3", "A0", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"], - "rows": ["B14", "A9", "B6", "B5", "B4"] - }, - "processor": "STM32F072", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 17 - }, - "url": "https://iv-works.com/i", - "usb": { - "device_version": "0.0.5", - "pid": "0x0102", - "vid": "0x7786" - }, - "ws2812": { - "pin": "A8" - }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift", "60_hhkb"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 4], "x":4, "y":4, "w":3}, - {"label": "Space", "matrix": [4, 6], "x":7, "y":4}, - {"label": "Space", "matrix": [4, 8], "x":8, "y":4, "w":3}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Bsp", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Win", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7}, - {"label": "Win", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4} - ] - } - } -} diff --git a/keyboards/umbra/hotswap/keymaps/default/keymap.c b/keyboards/umbra/hotswap/keymaps/default/keymap.c deleted file mode 100644 index 9562681cb2..0000000000 --- a/keyboards/umbra/hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// main layer -[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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), -// basic function layer -[1] = LAYOUT_all( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, - KC_TRNS, UG_TOGG, KC_UP, UG_NEXT, UG_PREV, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_HOME, KC_PGUP, KC_VOLU, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_VOLD, - KC_TRNS, KC_SLEP, KC_MYCM, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } -}; -#endif diff --git a/keyboards/umbra/hotswap/keymaps/default/rules.mk b/keyboards/umbra/hotswap/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/umbra/hotswap/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/umbra/hotswap/matrix_diagram.md b/keyboards/umbra/hotswap/matrix_diagram.md deleted file mode 100644 index a3ff87cd21..0000000000 --- a/keyboards/umbra/hotswap/matrix_diagram.md +++ /dev/null @@ -1,24 +0,0 @@ -# Matrix Diagram for IV Works Umbra Hotswap - -``` - ┌───────┐ - 2u Backspace │1D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ -│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤ -│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB -└────┴────┴────┴─────────────────────────────┴────┴────┴────┘ -┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ -│40 │41 │42 │44 │46 │48 │4B │4C │4D │ 7u split spacebar -└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ -┌─────┬───┬───────────────────────────────────────┬───┬─────┐ -│40 │41 │46 │4C │4D │ 10u Spacebar -└─────┴───┴───────────────────────────────────────┴───┴─────┘ -``` diff --git a/keyboards/umbra/hotswap/readme.md b/keyboards/umbra/hotswap/readme.md deleted file mode 100644 index bf86db069b..0000000000 --- a/keyboards/umbra/hotswap/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# UMBRA - -![UMBRA](https://i.imgur.com/2d94i6H.jpg) - -A multi-mount 60% keyboard with PCB choice featuring popular layouts, underglow, and rotary option. - -* Keyboard Maintainer: [IV Works](https://www.iv-works.com/) -* Hardware Supported: [UMBRA](https://www.iv-works.com/i) -* Hardware Availability: [Shop](https://iv-works.com/product-category/umbra/) - -Make example for this keyboard (after setting up your build environment): - - make umbra/hotswap:default - -Flashing example for this keyboard: - - make umbra/hotswap: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 - -How to enter bootloader (DFU): -* PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. - -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file diff --git a/keyboards/umbra/hotswap/rules.mk b/keyboards/umbra/hotswap/rules.mk deleted file mode 100644 index 04fe1eba2a..0000000000 --- a/keyboards/umbra/hotswap/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -p FFFF -v FFFF diff --git a/keyboards/umbra/solder/config.h b/keyboards/umbra/solder/config.h deleted file mode 100644 index 56ca17df40..0000000000 --- a/keyboards/umbra/solder/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#define WS2812_EXTERNAL_PULLUP - diff --git a/keyboards/umbra/solder/keyboard.json b/keyboards/umbra/solder/keyboard.json deleted file mode 100644 index 4f014b2e94..0000000000 --- a/keyboards/umbra/solder/keyboard.json +++ /dev/null @@ -1,1235 +0,0 @@ -{ - "manufacturer": "IV Works", - "keyboard_name": "Umbra", - "maintainer": "IV Works", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "A2", "pin_b": "A1", "resolution": 2} - ] - }, - "features": { - "bootmagic": true, - "extrakey": true, - "key_lock": true, - "mousekey": true, - "encoder": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"], - "rows": ["B14", "A9", "B6", "B5", "B4"] - }, - "processor": "STM32F072", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 17 - }, - "url": "https://iv-works.com/", - "usb": { - "device_version": "0.0.5", - "pid": "0x0101", - "vid": "0x7786" - }, - "ws2812": { - "pin": "A8" - }, - "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 1], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 1], "x": 0, "y": 4, "w": 1.5}, - {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_6u_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, - {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, - {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, - {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, - {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} - ] - }, - "LAYOUT_6u_ansi_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, - {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, - {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, - {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, - {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} - ] - }, - "LAYOUT_6u_iso": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, - {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, - {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, - {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, - {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} - ] - }, - "LAYOUT_6u_iso_split_bs_rshift": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, - {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, - {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, - {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, - {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, - {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, - {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} - ] - }, - "LAYOUT_all": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "Backspace", "matrix": [2, 13], "x": 14, "y": 0}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, - {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, - {"label": "Space", "matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75}, - {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/umbra/solder/keymaps/default/keymap.c b/keyboards/umbra/solder/keymaps/default/keymap.c deleted file mode 100644 index d987b42da9..0000000000 --- a/keyboards/umbra/solder/keymaps/default/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// main layer -[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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), -// basic function layer -[1] = LAYOUT_all( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, - KC_TRNS, UG_TOGG, KC_UP, UG_NEXT, UG_PREV, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_HOME, KC_PGUP, KC_VOLU, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_VOLD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_SLEP, KC_MYCM, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } -}; -#endif diff --git a/keyboards/umbra/solder/keymaps/default/rules.mk b/keyboards/umbra/solder/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/umbra/solder/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/umbra/solder/matrix_diagram.md b/keyboards/umbra/solder/matrix_diagram.md deleted file mode 100644 index 4135960202..0000000000 --- a/keyboards/umbra/solder/matrix_diagram.md +++ /dev/null @@ -1,37 +0,0 @@ -# Matrix Diagram for IV Works Umbra Solder - -``` - ┌───────┐ - 2u Backspace │2D │ - └───────┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ -│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐3D │ -│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │3D │ │2C │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │4D │ ISO Enter -├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ -│40 │41 │42 │44 │46 │48 │49 │4A │4B │4C │ -└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ -┌────────┐ ┌──────────┐ -│30 │ 2.25u LShift 2.75u RShift │3C │ -└────────┘ └──────────┘ -┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ -│40 │41 │42 │46 │49 │4A │4B │4C │ Standard -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ -┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│40 │41 │42 │46 │4A │4B │4C │ Tsangan/WKL/HHKB -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐ -│40 │41 │42 │46 │49 │4A │4B │4C │ 6U bottom row -└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ -┌─────┬───┬─────┬──────────┬──────┬─────────┬─────┬───┬─────┐ -│40 │41 │42 │44 │46 │48 │4A │4B │4C │ 3U split space -└─────┴───┴─────┴──────────┴──────┴─────────┴─────┴───┴─────┘ -┌─────┬───┬───────────────────────────────────────┬───┬─────┐ -│40 │41 │46 │4B │4C │ 10U space -└─────┴───┴───────────────────────────────────────┴───┴─────┘ - -``` diff --git a/keyboards/umbra/solder/readme.md b/keyboards/umbra/solder/readme.md deleted file mode 100644 index 61a564578b..0000000000 --- a/keyboards/umbra/solder/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# UMBRA - -![UMBRA](https://i.imgur.com/2d94i6H.jpg) - -A multi-mount 60% keyboard with PCB choice featuring popular layouts, underglow, and rotary option. - -* Keyboard Maintainer: [IV Works](https://www.iv-works.com/) -* Hardware Supported: [UMBRA](https://www.iv-works.com/i) -* Hardware Availability: [Shop](https://iv-works.com/product-category/umbra/) - -Make example for this keyboard (after setting up your build environment): - - make umbra/solder:default - -Flashing example for this keyboard: - - make umbra/solder: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 - -How to enter bootloader (DFU): -* PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. - -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file diff --git a/keyboards/umbra/solder/rules.mk b/keyboards/umbra/solder/rules.mk deleted file mode 100644 index 04fe1eba2a..0000000000 --- a/keyboards/umbra/solder/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -p FFFF -v FFFF diff --git a/keyboards/umbra/solder/solder.c b/keyboards/umbra/solder/solder.c deleted file mode 100644 index de0681b229..0000000000 --- a/keyboards/umbra/solder/solder.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "quantum.h" - -#ifndef CAPS_LOCK_ENABLE -# define CAPS_LOCK_ENABLE true -#endif - -#ifndef CAPS_LOCK_COLOR -# define CAPS_LOCK_COLOR HSV_GREEN -#endif - -void keyboard_pre_init_kb(void) { - rgblight_set_effect_range(0, 16); - keyboard_pre_init_user(); -} - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (CAPS_LOCK_ENABLE && res) { - if(led_state.caps_lock) { - rgblight_sethsv_at(CAPS_LOCK_COLOR, 16); - } - else{ - rgblight_sethsv_at(HSV_OFF, 16); - } - } - return res; -} diff --git a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c index 701e3f6dc9..fb7a1e90be 100644 --- a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c +++ b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c @@ -118,10 +118,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------' */ [2] = LAYOUT_ortho_5x4( - KC_LUP, XXXXXXX, XXXXXXX, RM_TOGG, - RM_HUED, RM_HUEU, XXXXXXX, RGB_M_P, - RM_SATD, RM_SATU, XXXXXXX, RM_NEXT, - RM_VALD, RM_VALU, XXXXXXX, XXXXXXX, + KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, + RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, + RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, + RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, QK_BOOT, QK_BOOT, XXXXXXX, XXXXXXX ), }; diff --git a/keyboards/ungodly/nines/keyboard.json b/keyboards/ungodly/nines/keyboard.json index a92711c5c3..5e5418e14d 100644 --- a/keyboards/ungodly/nines/keyboard.json +++ b/keyboards/ungodly/nines/keyboard.json @@ -14,9 +14,12 @@ {"pin_a": "E6", "pin_b": "B4", "resolution": 2} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/board.h b/keyboards/unicomp/pc122/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/unicomp/pc122/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/config.h b/keyboards/unicomp/pc122/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/unicomp/pc122/overnumpad_1xb/config.h +++ b/keyboards/unicomp/pc122/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h deleted file mode 100644 index 5b80eb2230..0000000000 --- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Purdea Andrei -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h index c10d26b9b2..71e60e9cfe 100644 --- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h @@ -21,6 +21,8 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif +#define STM32_HSECLK 16000000 + #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unikeyboard/diverge3/config.h b/keyboards/unikeyboard/diverge3/config.h index c77a4f1d16..bdd2b7cbb2 100644 --- a/keyboards/unikeyboard/diverge3/config.h +++ b/keyboards/unikeyboard/diverge3/config.h @@ -17,6 +17,10 @@ along with this program. If not, see . #pragma once +#ifndef SELECT_SOFT_SERIAL_SPEED +#define SELECT_SOFT_SERIAL_SPEED 3 +#endif + /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ diff --git a/keyboards/unikeyboard/diverge3/keyboard.json b/keyboards/unikeyboard/diverge3/keyboard.json index 6a4813d115..767f44b198 100644 --- a/keyboards/unikeyboard/diverge3/keyboard.json +++ b/keyboards/unikeyboard/diverge3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Diverge3", "manufacturer": "UniKeyboard", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -34,11 +36,11 @@ "split": { "enabled": true, "serial": { - "pin": "D0", - "speed": 3 + "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/unikeyboard/divergetm2/keyboard.json b/keyboards/unikeyboard/divergetm2/keyboard.json index c0c0f15c0c..09d481149c 100644 --- a/keyboards/unikeyboard/divergetm2/keyboard.json +++ b/keyboards/unikeyboard/divergetm2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Diverge TM 2", "manufacturer": "UniKeyboard", + "url": "", "maintainer": "islandman93, xton", "usb": { "vid": "0xFEED", @@ -10,6 +11,7 @@ "features": { "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -31,7 +33,8 @@ "pin": "D0" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layout_aliases": { "LAYOUT_ortho_4x12_2x2u": "LAYOUT" }, diff --git a/keyboards/unikeyboard/felix/keyboard.json b/keyboards/unikeyboard/felix/keyboard.json index 612bccd196..b55138a15c 100644 --- a/keyboards/unikeyboard/felix/keyboard.json +++ b/keyboards/unikeyboard/felix/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Felix", "manufacturer": "UniKeyboard", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,7 +32,8 @@ "pin": "C6", "levels": 5 }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "community_layouts": ["ortho_5x4"], "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x4" diff --git a/keyboards/unikorn/keyboard.json b/keyboards/unikorn/keyboard.json index 7ba06098f3..4d50e2ad74 100644 --- a/keyboards/unikorn/keyboard.json +++ b/keyboards/unikorn/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Unikorn60", "manufacturer": "Singa x TGR", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5354", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false @@ -46,9 +48,6 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -194,7 +193,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/unikorn/keymaps/tsangan/keymap.c b/keyboards/unikorn/keymaps/tsangan/keymap.c index 0bb8918ac4..814c099285 100644 --- a/keyboards/unikorn/keymaps/tsangan/keymap.c +++ b/keyboards/unikorn/keymaps/tsangan/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/unison/rules.mk b/keyboards/unison/rules.mk new file mode 100644 index 0000000000..69c33d71a2 --- /dev/null +++ b/keyboards/unison/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = unison/v04 diff --git a/keyboards/uranuma/keyboard.json b/keyboards/uranuma/keyboard.json index 670823bda9..b24ce74d9f 100644 --- a/keyboards/uranuma/keyboard.json +++ b/keyboards/uranuma/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UraNuma", "manufacturer": "yohewi", + "url": "", "maintainer": "yohewi", "usb": { "vid": "0xFEED", diff --git a/keyboards/utd80/keyboard.json b/keyboards/utd80/keyboard.json index 5ae20b4c02..41bd35c66a 100644 --- a/keyboards/utd80/keyboard.json +++ b/keyboards/utd80/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "UTD80", "manufacturer": "UTD", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/uzu42/rev1/keyboard.json b/keyboards/uzu42/rev1/keyboard.json index 3b152c7b59..f96327daea 100644 --- a/keyboards/uzu42/rev1/keyboard.json +++ b/keyboards/uzu42/rev1/keyboard.json @@ -4,7 +4,7 @@ "url": "https://github.com/nrtkbb/Keyboards/tree/master/uzu42", "maintainer": "nrtkbb", "usb": { - "vid": "0x6E74", + "vid": "0xFEED", "pid": "0x3060", "device_version": "0.0.1" }, @@ -45,7 +45,8 @@ "twinkle": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk new file mode 100644 index 0000000000..277e74b715 --- /dev/null +++ b/keyboards/uzu42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = uzu42/rev1 diff --git a/keyboards/v4n4g0rth0n/v1/keyboard.json b/keyboards/v4n4g0rth0n/v1/keyboard.json index add06ed5db..7dec889208 100644 --- a/keyboards/v4n4g0rth0n/v1/keyboard.json +++ b/keyboards/v4n4g0rth0n/v1/keyboard.json @@ -4,6 +4,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/v60_type_r/keyboard.json b/keyboards/v60_type_r/keyboard.json index 90c7e9bb88..eba729220a 100644 --- a/keyboards/v60_type_r/keyboard.json +++ b/keyboards/v60_type_r/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "V60 Type R", "manufacturer": "KB Paradise", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7432", @@ -14,6 +15,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/vagrant_10/keyboard.json b/keyboards/vagrant_10/keyboard.json index d59095c2d7..26b68b6923 100644 --- a/keyboards/vagrant_10/keyboard.json +++ b/keyboards/vagrant_10/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -25,7 +27,8 @@ "rows": ["F7", "B1", "B3", "B2"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/varanidae/keymaps/ansi/keymap.c b/keyboards/varanidae/keymaps/ansi/keymap.c index 94ebf62048..c020bd6718 100644 --- a/keyboards/varanidae/keymaps/ansi/keymap.c +++ b/keyboards/varanidae/keymaps/ansi/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ansi( - MS_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -30,6 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; #endif diff --git a/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c index fdc0d4c526..becb812071 100644 --- a/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c +++ b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ansi_split_bs_rshift( - MS_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_DEL, KC_BSPC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -30,6 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; #endif diff --git a/keyboards/varanidae/keymaps/default/keymap.c b/keyboards/varanidae/keymaps/default/keymap.c index fff5411754..4c43532108 100644 --- a/keyboards/varanidae/keymaps/default/keymap.c +++ b/keyboards/varanidae/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - MS_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_DEL, KC_BSPC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_HOME, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -30,6 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; #endif diff --git a/keyboards/varanidae/keymaps/iso/keymap.c b/keyboards/varanidae/keymaps/iso/keymap.c index 0de8eb6c23..b1f1b0c9a4 100644 --- a/keyboards/varanidae/keymaps/iso/keymap.c +++ b/keyboards/varanidae/keymaps/iso/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_iso( - MS_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_HOME, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -30,6 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; #endif diff --git a/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c b/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c index 5d53eccab9..7324f62877 100644 --- a/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c +++ b/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_iso_split_bs_rshift( - MS_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_DEL, KC_BSPC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_HOME, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -30,6 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) } + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } }; #endif diff --git a/keyboards/vertex/angle65/keyboard.json b/keyboards/vertex/angle65/keyboard.json index 6e0a6525ba..ef0aacfef4 100644 --- a/keyboards/vertex/angle65/keyboard.json +++ b/keyboards/vertex/angle65/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "ANGLE65", "manufacturer": "vertex", + "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x9954", "pid": "0x9970", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": false, diff --git a/keyboards/vertex/angler2/keyboard.json b/keyboards/vertex/angler2/keyboard.json index 2d6e65b304..02541f6c86 100644 --- a/keyboards/vertex/angler2/keyboard.json +++ b/keyboards/vertex/angler2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/vertex/arc60/keyboard.json b/keyboards/vertex/arc60/keyboard.json index b370e699ec..c6e9f6500a 100644 --- a/keyboards/vertex/arc60/keyboard.json +++ b/keyboards/vertex/arc60/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "ARC60", "manufacturer": "vertex", + "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x8354", "pid": "0x8370", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": false, @@ -54,15 +51,11 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -345,7 +338,7 @@ {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/vertex/arc60h/keyboard.json b/keyboards/vertex/arc60h/keyboard.json index 0fc6f642a3..4d4d903dc4 100644 --- a/keyboards/vertex/arc60h/keyboard.json +++ b/keyboards/vertex/arc60h/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "ARC60H", "manufacturer": "vertex", + "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x7374", "pid": "0x9770", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "indicators": { "caps_lock": "C13", @@ -55,13 +52,7 @@ "layout_aliases": { "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" }, - "community_layouts": [ - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_ansi_wkl", - "60_ansi_wkl_split_bs_rshift", - "60_hhkb" - ], + "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/vertex/cycle7/keyboard.json b/keyboards/vertex/cycle7/keyboard.json index ef06889309..9d55b63fec 100644 --- a/keyboards/vertex/cycle7/keyboard.json +++ b/keyboards/vertex/cycle7/keyboard.json @@ -9,6 +9,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/vertex/cycle8/keyboard.json b/keyboards/vertex/cycle8/keyboard.json index d1a341df20..100c2d21f1 100644 --- a/keyboards/vertex/cycle8/keyboard.json +++ b/keyboards/vertex/cycle8/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Cycle8", "manufacturer": "vertex", + "url": "", "maintainer": "Eason", "usb": { "vid": "0x8A94", "pid": "0x8F70", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/vertex/t75/keyboard.json b/keyboards/vertex/t75/keyboard.json index 824659e827..32e85cf8b4 100644 --- a/keyboards/vertex/t75/keyboard.json +++ b/keyboards/vertex/t75/keyboard.json @@ -20,14 +20,10 @@ "processor": "STM32F103", "usb": { "device_version": "0.0.1", + "force_nkro": true, "pid": "0x3006", "vid": "0x28E9" }, - "host": { - "default": { - "nkro": true - } - }, "layouts": { "LAYOUT": { "layout": [ @@ -103,15 +99,15 @@ {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75}, {"matrix": [4, 12], "x": 14, "y": 4}, {"matrix": [4, 13], "x": 15, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5, "w": 1.25}, - {"matrix": [5, 11], "x": 13, "y": 5}, - {"matrix": [5, 12], "x": 14, "y": 5}, - {"matrix": [5, 13], "x": 15, "y": 5} + {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [5, 11], "x": 13, "y": 4}, + {"matrix": [5, 12], "x": 14, "y": 4}, + {"matrix": [5, 13], "x": 15, "y": 4} ] } } diff --git a/keyboards/viendi8l/keyboard.json b/keyboards/viendi8l/keyboard.json index d87b95a1a0..f6df59e08b 100644 --- a/keyboards/viendi8l/keyboard.json +++ b/keyboards/viendi8l/keyboard.json @@ -20,6 +20,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/viendi8l/mcuconf.h b/keyboards/viendi8l/mcuconf.h index c9aae5b9e5..6c8d8c8af9 100644 --- a/keyboards/viendi8l/mcuconf.h +++ b/keyboards/viendi8l/mcuconf.h @@ -21,5 +21,8 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/viktus/at101_bh/keyboard.json b/keyboards/viktus/at101_bh/keyboard.json index ca37ecedeb..a315288cac 100644 --- a/keyboards/viktus/at101_bh/keyboard.json +++ b/keyboards/viktus/at101_bh/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/minne/keyboard.json b/keyboards/viktus/minne/keyboard.json index 66700c47b2..bfb3f8a8a6 100644 --- a/keyboards/viktus/minne/keyboard.json +++ b/keyboards/viktus/minne/keyboard.json @@ -13,6 +13,8 @@ "features": { "rgblight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/minne_topre/keyboard.json b/keyboards/viktus/minne_topre/keyboard.json index a0e142cd57..6919e7f9cc 100644 --- a/keyboards/viktus/minne_topre/keyboard.json +++ b/keyboards/viktus/minne_topre/keyboard.json @@ -12,6 +12,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/omnikey_bh/keyboard.json b/keyboards/viktus/omnikey_bh/keyboard.json index 6bceb1e0db..3356bf1eb2 100644 --- a/keyboards/viktus/omnikey_bh/keyboard.json +++ b/keyboards/viktus/omnikey_bh/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Omnikey Blackheart", "manufacturer": "blindassassin111", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2/keyboard.json b/keyboards/viktus/osav2/keyboard.json index 07ee36e849..34c2089181 100644 --- a/keyboards/viktus/osav2/keyboard.json +++ b/keyboards/viktus/osav2/keyboard.json @@ -14,6 +14,8 @@ "backlight": true, "rgblight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_numpad/keyboard.json b/keyboards/viktus/osav2_numpad/keyboard.json index c6975faee4..941d65f367 100644 --- a/keyboards/viktus/osav2_numpad/keyboard.json +++ b/keyboards/viktus/osav2_numpad/keyboard.json @@ -13,6 +13,8 @@ "features": { "rgblight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_numpad_topre/keyboard.json b/keyboards/viktus/osav2_numpad_topre/keyboard.json index a1ccbfc251..55ca939e3f 100644 --- a/keyboards/viktus/osav2_numpad_topre/keyboard.json +++ b/keyboards/viktus/osav2_numpad_topre/keyboard.json @@ -12,6 +12,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_topre/keyboard.json b/keyboards/viktus/osav2_topre/keyboard.json index 38a2a46335..1f2120ed57 100644 --- a/keyboards/viktus/osav2_topre/keyboard.json +++ b/keyboards/viktus/osav2_topre/keyboard.json @@ -12,6 +12,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/smolka/keyboard.json b/keyboards/viktus/smolka/keyboard.json index 652d44fa8c..e2cd55a405 100644 --- a/keyboards/viktus/smolka/keyboard.json +++ b/keyboards/viktus/smolka/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Smolka", "manufacturer": "Viktus Design LLC", + "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x5644", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/viktus/sp111_v2/keyboard.json b/keyboards/viktus/sp111_v2/keyboard.json index e5e58be23e..63c531ee44 100644 --- a/keyboards/viktus/sp111_v2/keyboard.json +++ b/keyboards/viktus/sp111_v2/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/viktus/sp_mini/keyboard.json b/keyboards/viktus/sp_mini/keyboard.json index f6a54f131d..25aa4c9494 100644 --- a/keyboards/viktus/sp_mini/keyboard.json +++ b/keyboards/viktus/sp_mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SP_Mini", "manufacturer": "Viktus Design LLC", + "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x5644", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/viktus/styrka/keyboard.json b/keyboards/viktus/styrka/keyboard.json index e5f36bad58..98d46bc81a 100644 --- a/keyboards/viktus/styrka/keyboard.json +++ b/keyboards/viktus/styrka/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/viktus/styrka_topre/keyboard.json b/keyboards/viktus/styrka_topre/keyboard.json index 496bc39ca2..7095a8f484 100644 --- a/keyboards/viktus/styrka_topre/keyboard.json +++ b/keyboards/viktus/styrka_topre/keyboard.json @@ -12,6 +12,8 @@ "processor": "atmega32u4", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/vkr94/keyboard.json b/keyboards/viktus/vkr94/keyboard.json deleted file mode 100644 index e31fc62feb..0000000000 --- a/keyboards/viktus/vkr94/keyboard.json +++ /dev/null @@ -1,944 +0,0 @@ -{ - "keyboard_name": "VKR 94", - "manufacturer": "Viktus Design", - "maintainer": "BlindAssassin111", - "usb": { - "vid": "0x5644", - "pid": "0x3934", - "device_version": "1.0.0" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["D1", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6"], - "rows": ["F1", "F0", "F5", "F4", "F7", "F6", "C7", "C6", "D0"] - }, - "ws2812": { - "pin": "D2" - }, - "rgb_matrix": { - "driver": "ws2812", - "max_brightness": 150, - "layout": [ - { "flags": 8, "x": 1, "y": 2 }, - { "flags": 8, "x": 0, "y": 2 }, - { "flags": 8, "x": 0, "y": 1 }, - { "flags": 8, "x": 1, "y": 1 }, - { "flags": 8, "x": 1, "y": 0 }, - { "flags": 8, "x": 0, "y": 0 } - ], - "animations": { - "breathing": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true - }, - "sleep": true - }, - "layouts": { - "LAYOUT_splitbs_splitshift_ansi_7u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_splitbs_fullshift_ansi_7u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_splitbs_splitshift_ansi_9u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, - {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_splitbs_fullshift_ansi_9u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, - {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_splitbs_splitshift_ansi_10u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_splitbs_fullshift_ansi_10u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [0, 7], "x": 14.5, "y": 0}, - {"matrix": [1, 7], "x": 15.5, "y": 0}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_fullbs_splitshift_iso_7u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_fullbs_fullshift_iso_7u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_fullbs_splitshift_iso_9u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, - {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_fullbs_fullshift_iso_9u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, - {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_fullbs_splitshift_iso_10u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - }, - "LAYOUT_fullbs_fullshift_iso_10u": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1.5, "y": 0}, - {"matrix": [0, 1], "x": 2.5, "y": 0}, - {"matrix": [1, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [1, 2], "x": 5.5, "y": 0}, - {"matrix": [0, 3], "x": 6.5, "y": 0}, - {"matrix": [1, 3], "x": 7.5, "y": 0}, - {"matrix": [0, 4], "x": 8.5, "y": 0}, - {"matrix": [1, 4], "x": 9.5, "y": 0}, - {"matrix": [0, 5], "x": 10.5, "y": 0}, - {"matrix": [1, 5], "x": 11.5, "y": 0}, - {"matrix": [0, 6], "x": 12.5, "y": 0}, - {"matrix": [1, 6], "x": 13.5, "y": 0}, - {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, - {"matrix": [0, 8], "x": 18, "y": 0}, - - {"matrix": [2, 0], "x": 0, "y": 1}, - {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [3, 1], "x": 4, "y": 1}, - {"matrix": [2, 2], "x": 5, "y": 1}, - {"matrix": [3, 2], "x": 6, "y": 1}, - {"matrix": [2, 3], "x": 7, "y": 1}, - {"matrix": [3, 3], "x": 8, "y": 1}, - {"matrix": [2, 4], "x": 9, "y": 1}, - {"matrix": [3, 4], "x": 10, "y": 1}, - {"matrix": [2, 5], "x": 11, "y": 1}, - {"matrix": [3, 5], "x": 12, "y": 1}, - {"matrix": [2, 6], "x": 13, "y": 1}, - {"matrix": [3, 6], "x": 14, "y": 1}, - {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 8], "x": 18, "y": 1}, - - {"matrix": [4, 0], "x": 0, "y": 2}, - {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, - {"matrix": [4, 1], "x": 3.25, "y": 2}, - {"matrix": [5, 1], "x": 4.25, "y": 2}, - {"matrix": [4, 2], "x": 5.25, "y": 2}, - {"matrix": [5, 2], "x": 6.25, "y": 2}, - {"matrix": [4, 3], "x": 7.25, "y": 2}, - {"matrix": [5, 3], "x": 8.25, "y": 2}, - {"matrix": [4, 4], "x": 9.25, "y": 2}, - {"matrix": [5, 4], "x": 10.25, "y": 2}, - {"matrix": [4, 5], "x": 11.25, "y": 2}, - {"matrix": [5, 5], "x": 12.25, "y": 2}, - {"matrix": [4, 6], "x": 13.25, "y": 2}, - {"matrix": [5, 6], "x": 14.25, "y": 2}, - {"matrix": [4, 8], "x": 18, "y": 2}, - - {"matrix": [6, 0], "x": 0, "y": 3}, - {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, - {"matrix": [6, 1], "x": 3.75, "y": 3}, - {"matrix": [7, 1], "x": 4.75, "y": 3}, - {"matrix": [6, 2], "x": 5.75, "y": 3}, - {"matrix": [7, 2], "x": 6.75, "y": 3}, - {"matrix": [6, 3], "x": 7.75, "y": 3}, - {"matrix": [7, 3], "x": 8.75, "y": 3}, - {"matrix": [6, 4], "x": 9.75, "y": 3}, - {"matrix": [7, 4], "x": 10.75, "y": 3}, - {"matrix": [6, 5], "x": 11.75, "y": 3}, - {"matrix": [7, 5], "x": 12.75, "y": 3}, - {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, - {"matrix": [6, 8], "x": 18, "y": 3}, - - {"matrix": [8, 0], "x": 3, "y": 4}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, - {"matrix": [8, 6], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/viktus/vkr94/keymaps/default/keymap.c b/keyboards/viktus/vkr94/keymaps/default/keymap.c deleted file mode 100644 index 8c266deb77..0000000000 --- a/keyboards/viktus/vkr94/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2025 BlindAssassin111 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_splitbs_splitshift_ansi_7u( - KC_F1, 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_DEL, - KC_F2, 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_HOME, - KC_F3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_PGDN, - KC_LCTL, KC_LALT, LT(1,KC_SPC), KC_RALT, KC_RCTL - ), - - [1] = LAYOUT_splitbs_splitshift_ansi_7u( - QK_BOOT, _______, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_RGHT, KC_DOWN, KC_LEFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/viktus/vkr94/readme.md b/keyboards/viktus/vkr94/readme.md deleted file mode 100644 index 9a6f4d228c..0000000000 --- a/keyboards/viktus/vkr94/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Viktus VKR 94 - -![viktus/vkr94](https://i.imgur.com/ahJVciu.png) - -A small run vintage-esque design with RGB indicators. - -* Keyboard Maintainer: [BlindAssassin111](https://github.com/blindassassin111) -* Hardware Supported: VKR 94 PCBs -* Hardware Availability: BlindAssassin111 - -Make example for this keyboard (after setting up your build environment): - - make viktus/vkr94:default - -Flashing example for this keyboard: - - make viktus/vkr94:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/viktus/z150_bh/keyboard.json b/keyboards/viktus/z150_bh/keyboard.json index 912ee03bab..27754da543 100644 --- a/keyboards/viktus/z150_bh/keyboard.json +++ b/keyboards/viktus/z150_bh/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Z-150 Blackheart", "manufacturer": "blindassassin111", + "url": "", "maintainer": "qmk, blindassassin111", "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/vinhcatba/uncertainty/keyboard.json b/keyboards/vinhcatba/uncertainty/keyboard.json index d8a1b81f92..5f35a144d8 100644 --- a/keyboards/vinhcatba/uncertainty/keyboard.json +++ b/keyboards/vinhcatba/uncertainty/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "wpm": true, "encoder": true, "extrakey": true, @@ -45,8 +47,10 @@ "override_rgb": true }, "led_count": 14, + "max_brightness": 255, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/vitamins_included/info.json b/keyboards/vitamins_included/info.json index 305c740475..60907cdba3 100644 --- a/keyboards/vitamins_included/info.json +++ b/keyboards/vitamins_included/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Vitamins Included", "manufacturer": "Duckle29", + "url": "", "maintainer": "Duckle29", "build": { "lto": true @@ -8,6 +9,8 @@ "features": { "audio": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/vitamins_included/keymaps/default/keymap.c b/keyboards/vitamins_included/keymaps/default/keymap.c index 268226ae1c..1d282e1d86 100644 --- a/keyboards/vitamins_included/keymaps/default/keymap.c +++ b/keyboards/vitamins_included/keymaps/default/keymap.c @@ -10,15 +10,14 @@ enum layer_names { }; enum custom_keycodes { - LOWER = SAFE_RANGE, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, RAISE, ADJUST }; -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -135,6 +134,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/vitamins_included/rev2/rev2.c b/keyboards/vitamins_included/rev2/rev2.c index 28bd73cc75..e445a3da45 100644 --- a/keyboards/vitamins_included/rev2/rev2.c +++ b/keyboards/vitamins_included/rev2/rev2.c @@ -12,7 +12,7 @@ bool is_keyboard_left(void) { gpio_set_pin_input(SPLIT_HAND_PIN); return x; #elif defined(EE_HANDS) - return eeconfig_read_handedness(); + return eeprom_read_byte(EECONFIG_HANDEDNESS); #endif return is_keyboard_master(); diff --git a/keyboards/vitamins_included/rules.mk b/keyboards/vitamins_included/rules.mk new file mode 100644 index 0000000000..e3452d41db --- /dev/null +++ b/keyboards/vitamins_included/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = vitamins_included/rev2 diff --git a/keyboards/void/voidhhkb_hotswap/keyboard.json b/keyboards/void/voidhhkb_hotswap/keyboard.json deleted file mode 100644 index f2bdcd246e..0000000000 --- a/keyboards/void/voidhhkb_hotswap/keyboard.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "manufacturer": "James Wilson", - "keyboard_name": "voidhhkb_hotswap", - "maintainer": "JamesWilson1996", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["B12", "B13", "A3", "A4", "B14", "B15", "A8", "A5", "A9", "A10", "A6", "A7", "A15", "B3", "B4"], - "rows": ["B11", "B10", "B2", "B1", "B0"] - }, - "processor": "STM32F072", - "usb": { - "device_version": "1.0.0", - "pid": "0x0002", - "vid": "0x4A57" - }, - "community_layouts": [ "60_hhkb" ], - "layouts": { - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 6.5, "y": 1}, - {"matrix": [1, 8], "x": 7.5, "y": 1}, - {"matrix": [1, 9], "x": 8.5, "y": 1}, - {"matrix": [1, 10], "x": 9.5, "y": 1}, - {"matrix": [1, 11], "x": 10.5, "y": 1}, - {"matrix": [1, 12], "x": 11.5, "y": 1}, - {"matrix": [1, 13], "x": 12.5, "y": 1}, - {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 14.0, "y": 3}, - - {"matrix": [4, 2], "x": 1.5, "y": 4}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 6}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 11.5, "y": 4} - ] - } - } -} diff --git a/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c b/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c deleted file mode 100644 index 3b28a0c1c2..0000000000 --- a/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_hhkb( - 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT - ), - [1] = LAYOUT_60_hhkb( - KC_PWR, 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_DEL, - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_NO, KC_CLAG, - KC_NO, KC_VOLU, KC_VOLD, KC_MUTE, KC_EJCT, KC_NO, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_RETN, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_NO, KC_TRNS, - KC_NO, KC_NO, KC_NO, KC_MSTP, KC_NO - ) -}; diff --git a/keyboards/void/voidhhkb_hotswap/readme.md b/keyboards/void/voidhhkb_hotswap/readme.md deleted file mode 100644 index a9b78eefe7..0000000000 --- a/keyboards/void/voidhhkb_hotswap/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# VoidHHKB-Hotswap - -![VoidHHKB-Hotswap)](https://i.imgur.com/dxTs8gB.jpeg) - -VoidHHKB-Hotswap 60% PCB designed for the [HSKB project](https://github.com/Dev01-D/HSKB). - -* Keyboard Maintainer: [James Wilson](https://github.com/JamesWilson1996) -* Hardware Supported: STM32F072CBT6 -* Hardware Availability: [HSKB](https://github.com/Dev01-D/HSKB) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make void/voidhhkb_hotswap:default - -Flashing example for this keyboard: - - make void/voidhhkb_hotswap:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -# Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/vt40/keyboard.json b/keyboards/vt40/keyboard.json deleted file mode 100644 index 4d4455d35c..0000000000 --- a/keyboards/vt40/keyboard.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "manufacturer": "vladantrhlik", - "keyboard_name": "vt40", - "maintainer": "vladantrhlik", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP21", "GP20", "GP19", "GP18", "GP22"], - "rows": ["GP2", "GP3", "GP4", "GP5"] - }, - "encoder": { - "rotary": [ - {"pin_a": "GP26", "pin_b": "GP16"}, - {"pin_a": "GP27", "pin_b": "GP17"}, - ] - }, - "processor": "RP2040", - "url": "https://github.com/vladantrhlik/VT-40", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "community_layouts": ["ortho_4x12"], - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "Q", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "W", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "E", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "R", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "T", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "Y", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "U", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "I", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "O", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "P", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "BackSpace", "matrix": [0, 11], "x": 11, "y": 0}, - - {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "A", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "S", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "D", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "F", "matrix": [1, 4], "x": 4, "y": 1}, - {"label": "G", "matrix": [1, 5], "x": 5, "y": 1}, - {"label": "H", "matrix": [1, 6], "x": 6, "y": 1}, - {"label": "J", "matrix": [1, 7], "x": 7, "y": 1}, - {"label": "K", "matrix": [1, 8], "x": 8, "y": 1}, - {"label": "L", "matrix": [1, 9], "x": 9, "y": 1}, - {"label": ";", "matrix": [1, 10], "x": 10, "y": 1}, - {"label": "'", "matrix": [1, 11], "x": 11, "y": 1}, - - {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "Z", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "X", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "C", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "V", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "B", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "N", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "M", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": ",", "matrix": [2, 8], "x": 8, "y": 2}, - {"label": ".", "matrix": [2, 9], "x": 9, "y": 2}, - {"label": "/", "matrix": [2, 10], "x": 10, "y": 2}, - {"label": "Return", "matrix": [2, 11], "x": 11, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"label": "Ctrl", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "Alt", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "Super", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "⇓", "matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"label": "⇑", "matrix": [3, 7], "x": 7, "y": 3}, - {"label": "←", "matrix": [3, 8], "x": 8, "y": 3}, - {"label": "↓", "matrix": [3, 9], "x": 9, "y": 3}, - {"label": "↑", "matrix": [3, 10], "x": 10, "y": 3}, - {"label": "→", "matrix": [3, 11], "x": 11, "y": 3} - ] - } - } -} diff --git a/keyboards/vt40/keymaps/default/keymap.c b/keyboards/vt40/keymaps/default/keymap.c deleted file mode 100644 index 95bd31083f..0000000000 --- a/keyboards/vt40/keymaps/default/keymap.c +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - - -enum layers { - _QWERTY, - _COLEMAK, - _DVORAK, - _LOWER, - _RAISE, - _ADJUST -}; - -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) -#define ADJUST MO(_ADJUST) -#define QWERTY PDF(_QWERTY) -#define COLEMAK PDF(_COLEMAK) -#define DVORAK PDF(_DVORAK) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ - [_QWERTY] = LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ - [_COLEMAK] = LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ - [_DVORAK] = LAYOUT_ortho_4x12( - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , - KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ - [_LOWER] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - - /* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |ADJUST| | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ - [_RAISE] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - ADJUST, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ), - - /* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ - [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , - _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, - [5] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } -}; -#endif diff --git a/keyboards/vt40/keymaps/default/rules.mk b/keyboards/vt40/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/vt40/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/vt40/readme.md b/keyboards/vt40/readme.md deleted file mode 100644 index 0d87b01134..0000000000 --- a/keyboards/vt40/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# VT-40 - -* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) -* Hardware Supported: Raspberry Pi Pico (RP2040) -* Hardware Availability: https://github.com/vladantrhlik/VT-40 - -Make example for this keyboard (after setting up your build environment): - - make vt40:default - -Flashing example for this keyboard: - - make vt40:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available - diff --git a/keyboards/waldo/keyboard.json b/keyboards/waldo/keyboard.json index f2107fea31..b3076d79cc 100644 --- a/keyboards/waldo/keyboard.json +++ b/keyboards/waldo/keyboard.json @@ -10,6 +10,7 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c b/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c index 1f49641e7c..4972754d28 100644 --- a/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c +++ b/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c @@ -24,7 +24,8 @@ enum waldo_layers { }; enum waldo_keycodes { - BACKLIT = SAFE_RANGE, + QWERTY = SAFE_RANGE, + BACKLIT }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -77,6 +78,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case BACKLIT: if (record->event.pressed) { #ifdef BACKLIGHT_ENABLE diff --git a/keyboards/walletburner/cajal/keyboard.json b/keyboards/walletburner/cajal/keyboard.json index 03fb89b23e..e11c62ec87 100644 --- a/keyboards/walletburner/cajal/keyboard.json +++ b/keyboards/walletburner/cajal/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/walletburner/neuron/keyboard.json b/keyboards/walletburner/neuron/keyboard.json index d353b0b623..1d9ce89387 100644 --- a/keyboards/walletburner/neuron/keyboard.json +++ b/keyboards/walletburner/neuron/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/waterfowl/keyboard.json b/keyboards/waterfowl/keyboard.json index 9e08da57c0..73f62a77eb 100644 --- a/keyboards/waterfowl/keyboard.json +++ b/keyboards/waterfowl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Waterfowl", "manufacturer": "CyanDuck", + "url": "", "maintainer": "JW2586", "usb": { "vid": "0xFEED", diff --git a/keyboards/waterfowl/waterfowl.c b/keyboards/waterfowl/waterfowl.c index 9d9b0bf467..fb30fd0078 100644 --- a/keyboards/waterfowl/waterfowl.c +++ b/keyboards/waterfowl/waterfowl.c @@ -23,9 +23,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } if (index == 0) { // Left roller if (clockwise) { - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); } else { - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); } } else if (index == 1) { // Left encoder if (clockwise) { @@ -35,9 +35,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } else if (index == 2) { // Right roller if (clockwise) { - tap_code16(S(MS_WHLD)); + tap_code16(S(KC_MS_WH_DOWN)); } else { - tap_code16(S(MS_WHLU)); + tap_code16(S(KC_MS_WH_UP)); } } else if (index == 3) { // Right encoder if (clockwise) { diff --git a/keyboards/waveshare/rp2040_keyboard_3/keyboard.json b/keyboards/waveshare/rp2040_keyboard_3/keyboard.json deleted file mode 100644 index 1c8bd11de5..0000000000 --- a/keyboards/waveshare/rp2040_keyboard_3/keyboard.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "manufacturer": "Waveshare", - "keyboard_name": "RP2040-Keyboard-3", - "maintainer": "zvecr", - "url": "https://www.waveshare.com/wiki/RP2040-Keyboard-3", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "vid": "0xFEED", - "pid": "0x0000", - "device_version": "1.0.0" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgb_matrix": true - }, - "rgb_matrix": { - "driver": "ws2812", - "animations": { - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "layout": [ - {"flags": 4, "matrix": [0, 0], "x": 50, "y": 20}, - {"flags": 4, "matrix": [0, 1], "x": 112, "y": 20}, - {"flags": 4, "matrix": [0, 2], "x": 162, "y": 20} - ], - "sleep": true - }, - "ws2812": { - "driver": "vendor", - "pin": "GP18" - }, - "matrix_pins": { - "direct": [ - ["GP14", "GP13", "GP12"] - ] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0} - ] - } - } -} diff --git a/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c b/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c deleted file mode 100644 index 4b95bf189e..0000000000 --- a/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_LCTL, KC_C, KC_V) -}; diff --git a/keyboards/waveshare/rp2040_keyboard_3/readme.md b/keyboards/waveshare/rp2040_keyboard_3/readme.md deleted file mode 100644 index c6f5f5e122..0000000000 --- a/keyboards/waveshare/rp2040_keyboard_3/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# RP2040-Keyboard-3 - -![waveshare/rp2040_keyboard_3](https://i.imgur.com/HYoHwVk.jpeg) - -RP2040-Keyboard-3 is a high-performance, cost-effective three-key keyboard development board designed by Waveshare. -It features programmable custom key functions and RGB lighting effects. - -* Keyboard Maintainer: [zvecr](https://github.com/zvecr) -* Hardware Supported: -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make waveshare/rp2040_keyboard_3:default - -Flashing example for this keyboard: - - make waveshare/rp2040_keyboard_3: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 (top left key) and plug in the keyboard -* **Physical reset button**: Press and hold the `BOOT` button, then briefly press the `RESET` button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/wavtype/foundation/keyboard.json b/keyboards/wavtype/foundation/keyboard.json index 49c097d27a..4b1dd1d348 100644 --- a/keyboards/wavtype/foundation/keyboard.json +++ b/keyboards/wavtype/foundation/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "foundation", "manufacturer": "protozoa.studio", + "url": "", "maintainer": "wavtype", "usb": { "vid": "0x03A7", @@ -30,6 +31,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/wavtype/p01_ultra/keyboard.json b/keyboards/wavtype/p01_ultra/keyboard.json index ac56e454a8..c44f0bd3bd 100644 --- a/keyboards/wavtype/p01_ultra/keyboard.json +++ b/keyboards/wavtype/p01_ultra/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "p01_ultra", "manufacturer": "wavtype", + "url": "", "maintainer": "wavtype", "usb": { "vid": "0x03A7", @@ -29,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/weirdo/geminate60/keyboard.json b/keyboards/weirdo/geminate60/keyboard.json index 3008e2e7c6..828630725a 100644 --- a/keyboards/weirdo/geminate60/keyboard.json +++ b/keyboards/weirdo/geminate60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Geminate60", "manufacturer": "Weirdo", + "url": "", "maintainer": "Weirdo-F", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -35,18 +38,16 @@ "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_all" }, "community_layouts": [ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], "layouts": { "LAYOUT_all": { @@ -330,7 +331,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/weirdo/kelowna/rgb64/keyboard.json b/keyboards/weirdo/kelowna/rgb64/keyboard.json index 3b56deb894..4822f979fe 100644 --- a/keyboards/weirdo/kelowna/rgb64/keyboard.json +++ b/keyboards/weirdo/kelowna/rgb64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kelownaRGB64", "manufacturer": "Weirdo", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/ls_60/keyboard.json b/keyboards/weirdo/ls_60/keyboard.json index 871d1a4929..7ab1f2f6cb 100644 --- a/keyboards/weirdo/ls_60/keyboard.json +++ b/keyboards/weirdo/ls_60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "LS_60", "manufacturer": "Weirdo", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/naiping/np64/keyboard.json b/keyboards/weirdo/naiping/np64/keyboard.json index dc7ad18572..f620fb1169 100644 --- a/keyboards/weirdo/naiping/np64/keyboard.json +++ b/keyboards/weirdo/naiping/np64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NP64", "manufacturer": "Weirdo", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/naiping/nphhkb/keyboard.json b/keyboards/weirdo/naiping/nphhkb/keyboard.json index 870ad3950e..e89854f02e 100644 --- a/keyboards/weirdo/naiping/nphhkb/keyboard.json +++ b/keyboards/weirdo/naiping/nphhkb/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NPhhkb", "manufacturer": "Weirdo", + "url": "", "maintainer": "weirdo-f", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, @@ -35,12 +38,11 @@ "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", "layout_aliases": { - "LAYOUT": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT": "LAYOUT_60_tsangan_hhkb" }, - "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "community_layouts": ["60_tsangan_hhkb"], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/weirdo/naiping/nphhkb/keymaps/default/keymap.c b/keyboards/weirdo/naiping/nphhkb/keymaps/default/keymap.c index 491c28758d..2c4b6324be 100644 --- a/keyboards/weirdo/naiping/nphhkb/keymaps/default/keymap.c +++ b/keyboards/weirdo/naiping/nphhkb/keymaps/default/keymap.c @@ -23,7 +23,7 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_BASE] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LALT, KC_LCTL, KC_SPC, KC_RCTL, KC_RALT, KC_TRNS ), - [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [_FN] = LAYOUT_60_tsangan_hhkb( 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, KC_BSPC, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/weirdo/naiping/npminila/keyboard.json b/keyboards/weirdo/naiping/npminila/keyboard.json index 5e8c8d8947..b4048a52cf 100644 --- a/keyboards/weirdo/naiping/npminila/keyboard.json +++ b/keyboards/weirdo/naiping/npminila/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NPminila", "manufacturer": "Weirdo", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", @@ -15,6 +16,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/tiger910/keyboard.json b/keyboards/weirdo/tiger910/keyboard.json index 34bd01970a..ca24561ebd 100644 --- a/keyboards/weirdo/tiger910/keyboard.json +++ b/keyboards/weirdo/tiger910/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "tiger910", "manufacturer": "Weirdo", + "url": "", "maintainer": "Weirdo", "usb": { "vid": "0x7764", diff --git a/keyboards/wekey/polaris/keyboard.json b/keyboards/wekey/polaris/keyboard.json index b24a3076f9..29d79b6a0b 100644 --- a/keyboards/wekey/polaris/keyboard.json +++ b/keyboards/wekey/polaris/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Polaris", "manufacturer": "@wekey", + "url": "", "maintainer": "@wekey.dev", "usb": { "vid": "0x5559", @@ -12,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -29,14 +32,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], "layouts": { "LAYOUT_all": { "layout": [ @@ -252,7 +248,7 @@ {"matrix": [9, 6], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/wekey/we27/keyboard.json b/keyboards/wekey/we27/keyboard.json index 91731cdc39..d8cb7b0f80 100644 --- a/keyboards/wekey/we27/keyboard.json +++ b/keyboards/wekey/we27/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "We27", "manufacturer": "@wekey", + "url": "", "maintainer": "@wekey.dev", "usb": { "vid": "0x5559", diff --git a/keyboards/wekey/we27/keymaps/default/keymap.c b/keyboards/wekey/we27/keymaps/default/keymap.c index 7574c90e7c..cd2d215d2c 100644 --- a/keyboards/wekey/we27/keymaps/default/keymap.c +++ b/keyboards/wekey/we27/keymaps/default/keymap.c @@ -20,16 +20,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_numpad_6x5( KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, - RM_NEXT, KC_P7 , KC_P8 , KC_P9 , - RM_PREV, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, - RM_TOGG, KC_P1 , KC_P2 , KC_P3 , + RGB_MOD, KC_P7 , KC_P8 , KC_P9 , + RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + RGB_TOG, KC_P1 , KC_P2 , KC_P3 , MO(1) , KC_P0 , KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_6x5( _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, - RM_SPDU, RM_HUEU, RM_SATU, RM_VALU, - RM_SPDD, RM_HUED, RM_SATD, RM_VALD, _______, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), diff --git a/keyboards/wekey/we27/rgb_matrix_kb.inc b/keyboards/wekey/we27/rgb_matrix_kb.inc index 167a60fb57..a7eeffbbe9 100644 --- a/keyboards/wekey/we27/rgb_matrix_kb.inc +++ b/keyboards/wekey/we27/rgb_matrix_kb.inc @@ -6,13 +6,13 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTIWIDE2) #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_WIDE_math2(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV SOLID_REACTIVE_WIDE_math2(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick - dist > 255 || dist > 32 ? 255 : tick - dist; hsv.v = qadd8(hsv.v, 255 - effect); return hsv; } -static hsv_t SOLID_REACTIVE_NEXUS_math2(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV SOLID_REACTIVE_NEXUS_math2(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick - dist > 255 || ((dx > 8 || dx < -8) && (dy > 8 || dy < -8)) ? 255 : tick - dist; hsv.v = qadd8(hsv.v, 255 - effect); hsv.h = rgb_matrix_config.hsv.h + dy / 4; diff --git a/keyboards/werk_technica/one/board.h b/keyboards/werk_technica/one/board.h deleted file mode 100644 index 3ad450d023..0000000000 --- a/keyboards/werk_technica/one/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/werk_technica/one/config.h b/keyboards/werk_technica/one/config.h new file mode 100644 index 0000000000..765e70851b --- /dev/null +++ b/keyboards/werk_technica/one/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Set HSE clock since it differs from F411 default */ +#define STM32_HSECLK 16000000 \ No newline at end of file diff --git a/keyboards/werk_technica/one/keyboard.json b/keyboards/werk_technica/one/keyboard.json index ba5df0b136..4933c7fd7c 100644 --- a/keyboards/werk_technica/one/keyboard.json +++ b/keyboards/werk_technica/one/keyboard.json @@ -14,6 +14,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/westfoxtrot/aanzee/keyboard.json b/keyboards/westfoxtrot/aanzee/keyboard.json index 03990a3929..3a15014c4e 100644 --- a/keyboards/westfoxtrot/aanzee/keyboard.json +++ b/keyboards/westfoxtrot/aanzee/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "aanzee", "manufacturer": "westfoxtrot", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x21FF", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/westfoxtrot/cyclops/keyboard.json b/keyboards/westfoxtrot/cyclops/keyboard.json index 952b81d0e5..a74926511d 100644 --- a/keyboards/westfoxtrot/cyclops/keyboard.json +++ b/keyboards/westfoxtrot/cyclops/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "cyclops", "manufacturer": "westfoxtrot", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x21FF", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/westfoxtrot/cypher/rev1/keyboard.json b/keyboards/westfoxtrot/cypher/rev1/keyboard.json index a02c612154..30dcc625de 100644 --- a/keyboards/westfoxtrot/cypher/rev1/keyboard.json +++ b/keyboards/westfoxtrot/cypher/rev1/keyboard.json @@ -9,6 +9,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/westfoxtrot/cypher/rev5/keyboard.json b/keyboards/westfoxtrot/cypher/rev5/keyboard.json index b33222df97..278ff94b06 100644 --- a/keyboards/westfoxtrot/cypher/rev5/keyboard.json +++ b/keyboards/westfoxtrot/cypher/rev5/keyboard.json @@ -9,6 +9,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/westfoxtrot/prophet/keyboard.json b/keyboards/westfoxtrot/prophet/keyboard.json index 64a952e286..f82c6da14d 100644 --- a/keyboards/westfoxtrot/prophet/keyboard.json +++ b/keyboards/westfoxtrot/prophet/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "prophet", "manufacturer": "westfoxtrot", + "url": "", "maintainer": "westfoxtrot", "usb": { "vid": "0xFF21", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -32,13 +35,9 @@ "bootloader": "stm32-dfu", "community_layouts": [ "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb", + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -179,7 +178,7 @@ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/westm/westm68/rev1/rules.mk b/keyboards/westm/westm68/rev1/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/westm/westm68/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm68/rev2/rules.mk b/keyboards/westm/westm68/rev2/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/westm/westm68/rev2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm68/rules.mk b/keyboards/westm/westm68/rules.mk new file mode 100644 index 0000000000..2a716f41c4 --- /dev/null +++ b/keyboards/westm/westm68/rules.mk @@ -0,0 +1,4 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +DEFAULT_FOLDER = westm/westm68/rev2 diff --git a/keyboards/westm/westm9/rev1/rules.mk b/keyboards/westm/westm9/rev1/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/westm/westm9/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm9/rev2/rules.mk b/keyboards/westm/westm9/rev2/rules.mk deleted file mode 100644 index 0ab54aaaf7..0000000000 --- a/keyboards/westm/westm9/rev2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Wildcard to allow APM32 MCU -DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm9/rules.mk b/keyboards/westm/westm9/rules.mk new file mode 100644 index 0000000000..3ff78857b3 --- /dev/null +++ b/keyboards/westm/westm9/rules.mk @@ -0,0 +1,4 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +DEFAULT_FOLDER = westm/westm9/rev2 diff --git a/keyboards/whale/sk/rules.mk b/keyboards/whale/sk/rules.mk new file mode 100644 index 0000000000..1a4ddedfa7 --- /dev/null +++ b/keyboards/whale/sk/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = whale/sk/v3 diff --git a/keyboards/whirlwind_fx_element/config.h b/keyboards/whirlwind_fx_element/config.h deleted file mode 100644 index 606163cf10..0000000000 --- a/keyboards/whirlwind_fx_element/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2023 WhirlwindFX -// Copyright 2023 aedanmills -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND diff --git a/keyboards/whirlwind_fx_element/halconf.h b/keyboards/whirlwind_fx_element/halconf.h deleted file mode 100644 index 75e92dea90..0000000000 --- a/keyboards/whirlwind_fx_element/halconf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 WhirlwindFX -// Copyright 2023 aedanmills -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/whirlwind_fx_element/keyboard.json b/keyboards/whirlwind_fx_element/keyboard.json deleted file mode 100644 index f01c5859da..0000000000 --- a/keyboards/whirlwind_fx_element/keyboard.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "manufacturer": "WhirlwindFX", - "keyboard_name": "Element", - "maintainer": "aedanmills", - "bootloader": "stm32-dfu", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true, - "rgb_matrix": true - }, - "matrix_pins": { - "rows": [ "B0", "B1", "B2", "B3", "B12", "B13", "B14", "B15" ], - "cols": [ "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A13", "A14" ] - }, - "processor": "STM32F303", - "url": "https://www.whirlwindfx.com/products/element", - "usb": { - "vid": "0x0483", - "pid": "0xA33E", - "device_version": "1.0.6" - }, - "indicators": { - "caps_lock": "B9", - "num_lock": "B8", - "scroll_lock": "B10", - "on_state": 0 - }, - "community_layouts": ["fullsize_ansi"], - "layouts": { - "LAYOUT_fullsize_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [0, 10], "x": 12, "y": 0}, - {"matrix": [0, 11], "x": 13, "y": 0}, - {"matrix": [0, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 15.25, "y": 0}, - {"matrix": [1, 1], "x": 16.25, "y": 0}, - {"matrix": [1, 2], "x": 17.25, "y": 0}, - {"matrix": [1, 3], "x": 0, "y": 1.25}, - {"matrix": [1, 4], "x": 1, "y": 1.25}, - {"matrix": [1, 5], "x": 2, "y": 1.25}, - {"matrix": [1, 6], "x": 3, "y": 1.25}, - {"matrix": [1, 7], "x": 4, "y": 1.25}, - {"matrix": [1, 8], "x": 5, "y": 1.25}, - {"matrix": [1, 9], "x": 6, "y": 1.25}, - {"matrix": [1, 10], "x": 7, "y": 1.25}, - {"matrix": [1, 11], "x": 8, "y": 1.25}, - {"matrix": [1, 12], "x": 9, "y": 1.25}, - {"matrix": [2, 0], "x": 10, "y": 1.25}, - {"matrix": [2, 1], "x": 11, "y": 1.25}, - {"matrix": [2, 2], "x": 12, "y": 1.25}, - {"matrix": [2, 3], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [2, 4], "x": 15.25, "y": 1.25}, - {"matrix": [2, 5], "x": 16.25, "y": 1.25}, - {"matrix": [2, 6], "x": 17.25, "y": 1.25}, - {"matrix": [2, 7], "x": 18.5, "y": 1.25}, - {"matrix": [2, 8], "x": 19.5, "y": 1.25}, - {"matrix": [2, 9], "x": 20.5, "y": 1.25}, - {"matrix": [2, 10], "x": 21.5, "y": 1.25}, - {"matrix": [2, 11], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 12], "x": 1.5, "y": 2.25}, - {"matrix": [3, 0], "x": 2.5, "y": 2.25}, - {"matrix": [3, 1], "x": 3.5, "y": 2.25}, - {"matrix": [3, 2], "x": 4.5, "y": 2.25}, - {"matrix": [3, 3], "x": 5.5, "y": 2.25}, - {"matrix": [3, 4], "x": 6.5, "y": 2.25}, - {"matrix": [3, 5], "x": 7.5, "y": 2.25}, - {"matrix": [3, 6], "x": 8.5, "y": 2.25}, - {"matrix": [3, 7], "x": 9.5, "y": 2.25}, - {"matrix": [3, 8], "x": 10.5, "y": 2.25}, - {"matrix": [3, 9], "x": 11.5, "y": 2.25}, - {"matrix": [3, 10], "x": 12.5, "y": 2.25}, - {"matrix": [3, 11], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [3, 12], "x": 15.25, "y": 2.25}, - {"matrix": [4, 0], "x": 16.25, "y": 2.25}, - {"matrix": [4, 1], "x": 17.25, "y": 2.25}, - {"matrix": [4, 2], "x": 18.5, "y": 2.25}, - {"matrix": [4, 3], "x": 19.5, "y": 2.25}, - {"matrix": [4, 4], "x": 20.5, "y": 2.25}, - {"matrix": [5, 8], "x": 21.5, "y": 2.25, "h": 2}, - {"matrix": [4, 5], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [4, 6], "x": 1.75, "y": 3.25}, - {"matrix": [4, 7], "x": 2.75, "y": 3.25}, - {"matrix": [4, 8], "x": 3.75, "y": 3.25}, - {"matrix": [4, 9], "x": 4.75, "y": 3.25}, - {"matrix": [4, 10], "x": 5.75, "y": 3.25}, - {"matrix": [4, 11], "x": 6.75, "y": 3.25}, - {"matrix": [4, 12], "x": 7.75, "y": 3.25}, - {"matrix": [5, 0], "x": 8.75, "y": 3.25}, - {"matrix": [5, 1], "x": 9.75, "y": 3.25}, - {"matrix": [5, 2], "x": 10.75, "y": 3.25}, - {"matrix": [5, 3], "x": 11.75, "y": 3.25}, - {"matrix": [5, 4], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [5, 5], "x": 18.5, "y": 3.25}, - {"matrix": [5, 6], "x": 19.5, "y": 3.25}, - {"matrix": [5, 7], "x": 20.5, "y": 3.25}, - {"matrix": [5, 9], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [5, 10], "x": 2.25, "y": 4.25}, - {"matrix": [5, 11], "x": 3.25, "y": 4.25}, - {"matrix": [5, 12], "x": 4.25, "y": 4.25}, - {"matrix": [6, 0], "x": 5.25, "y": 4.25}, - {"matrix": [6, 1], "x": 6.25, "y": 4.25}, - {"matrix": [6, 2], "x": 7.25, "y": 4.25}, - {"matrix": [6, 3], "x": 8.25, "y": 4.25}, - {"matrix": [6, 4], "x": 9.25, "y": 4.25}, - {"matrix": [6, 5], "x": 10.25, "y": 4.25}, - {"matrix": [6, 6], "x": 11.25, "y": 4.25}, - {"matrix": [6, 7], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [6, 8], "x": 16.25, "y": 4.25}, - {"matrix": [6, 9], "x": 18.5, "y": 4.25}, - {"matrix": [6, 10], "x": 19.5, "y": 4.25}, - {"matrix": [6, 11], "x": 20.5, "y": 4.25}, - {"matrix": [6, 12], "x": 21.5, "y": 4.25, "h": 2}, - {"matrix": [7, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [7, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [7, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [7, 3], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [7, 4], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [7, 5], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [7, 6], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [7, 7], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [7, 8], "x": 15.25, "y": 5.25}, - {"matrix": [7, 9], "x": 16.25, "y": 5.25}, - {"matrix": [7, 10], "x": 17.25, "y": 5.25}, - {"matrix": [7, 11], "x": 18.5, "y": 5.25, "w": 2}, - {"matrix": [7, 12], "x": 20.5, "y": 5.25} - ] - } - }, - "rgb_matrix": { - "driver": "is31fl3741", - "max_brightness": 200, - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 68, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 78, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 89, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 99, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 115, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 125, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 136, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 146, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 159, "y": 0, "flags": 4}, - {"matrix": [1, 1], "x": 169, "y": 0, "flags": 4}, - {"matrix": [1, 2], "x": 180, "y": 0, "flags": 4}, - - {"matrix": [1, 3], "x": 0, "y": 15, "flags": 4}, - {"matrix": [1, 4], "x": 10, "y": 15, "flags": 4}, - {"matrix": [1, 5], "x": 21, "y": 15, "flags": 4}, - {"matrix": [1, 6], "x": 31, "y": 15, "flags": 4}, - {"matrix": [1, 7], "x": 42, "y": 15, "flags": 4}, - {"matrix": [1, 8], "x": 52, "y": 15, "flags": 4}, - {"matrix": [1, 9], "x": 63, "y": 15, "flags": 4}, - {"matrix": [1, 10], "x": 73, "y": 15, "flags": 4}, - {"matrix": [1, 11], "x": 83, "y": 15, "flags": 4}, - {"matrix": [1, 12], "x": 94, "y": 15, "flags": 4}, - {"matrix": [2, 0], "x": 104, "y": 15, "flags": 4}, - {"matrix": [2, 1], "x": 115, "y": 15, "flags": 4}, - {"matrix": [2, 2], "x": 125, "y": 15, "flags": 4}, - {"matrix": [2, 3], "x": 141, "y": 15, "flags": 4}, - {"matrix": [2, 4], "x": 159, "y": 15, "flags": 4}, - {"matrix": [2, 5], "x": 169, "y": 15, "flags": 4}, - {"matrix": [2, 6], "x": 180, "y": 15, "flags": 4}, - {"matrix": [2, 7], "x": 193, "y": 15, "flags": 4}, - {"matrix": [2, 8], "x": 203, "y": 15, "flags": 4}, - {"matrix": [2, 9], "x": 214, "y": 15, "flags": 4}, - {"matrix": [2, 10], "x": 224, "y": 15, "flags": 4}, - - {"matrix": [2, 11], "x": 3, "y": 27, "flags": 4}, - {"matrix": [2, 12], "x": 16, "y": 27, "flags": 4}, - {"matrix": [3, 0], "x": 26, "y": 27, "flags": 4}, - {"matrix": [3, 1], "x": 36, "y": 27, "flags": 4}, - {"matrix": [3, 2], "x": 47, "y": 27, "flags": 4}, - {"matrix": [3, 3], "x": 57, "y": 27, "flags": 4}, - {"matrix": [3, 4], "x": 68, "y": 27, "flags": 4}, - {"matrix": [3, 5], "x": 78, "y": 27, "flags": 4}, - {"matrix": [3, 6], "x": 89, "y": 27, "flags": 4}, - {"matrix": [3, 7], "x": 99, "y": 27, "flags": 4}, - {"matrix": [3, 8], "x": 109, "y": 27, "flags": 4}, - {"matrix": [3, 9], "x": 120, "y": 27, "flags": 4}, - {"matrix": [3, 10], "x": 130, "y": 27, "flags": 4}, - {"matrix": [3, 11], "x": 143, "y": 27, "flags": 4}, - {"matrix": [3, 12], "x": 159, "y": 27, "flags": 4}, - {"matrix": [4, 0], "x": 169, "y": 27, "flags": 4}, - {"matrix": [4, 1], "x": 180, "y": 27, "flags": 4}, - {"matrix": [4, 2], "x": 193, "y": 27, "flags": 4}, - {"matrix": [4, 3], "x": 203, "y": 27, "flags": 4}, - {"matrix": [4, 4], "x": 214, "y": 27, "flags": 4}, - - {"matrix": [4, 5], "x": 4, "y": 40, "flags": 4}, - {"matrix": [4, 6], "x": 18, "y": 40, "flags": 4}, - {"matrix": [4, 7], "x": 29, "y": 40, "flags": 4}, - {"matrix": [4, 8], "x": 39, "y": 40, "flags": 4}, - {"matrix": [4, 9], "x": 50, "y": 40, "flags": 4}, - {"matrix": [4, 10], "x": 60, "y": 40, "flags": 4}, - {"matrix": [4, 11], "x": 70, "y": 40, "flags": 4}, - {"matrix": [4, 12], "x": 81, "y": 40, "flags": 4}, - {"matrix": [5, 0], "x": 91, "y": 40, "flags": 4}, - {"matrix": [5, 1], "x": 102, "y": 40, "flags": 4}, - {"matrix": [5, 2], "x": 112, "y": 40, "flags": 4}, - {"matrix": [5, 3], "x": 123, "y": 40, "flags": 4}, - {"matrix": [5, 4], "x": 139, "y": 40, "flags": 4}, - {"matrix": [5, 5], "x": 193, "y": 40, "flags": 4}, - {"matrix": [5, 6], "x": 203, "y": 40, "flags": 4}, - {"matrix": [5, 7], "x": 214, "y": 40, "flags": 4}, - {"matrix": [5, 8], "x": 224, "y": 34, "flags": 4}, - - {"matrix": [5, 9], "x": 7, "y": 52, "flags": 4}, - {"matrix": [5, 10], "x": 23, "y": 52, "flags": 4}, - {"matrix": [5, 11], "x": 34, "y": 52, "flags": 4}, - {"matrix": [5, 12], "x": 44, "y": 52, "flags": 4}, - {"matrix": [6, 0], "x": 55, "y": 52, "flags": 4}, - {"matrix": [6, 1], "x": 65, "y": 52, "flags": 4}, - {"matrix": [6, 2], "x": 76, "y": 52, "flags": 4}, - {"matrix": [6, 3], "x": 86, "y": 52, "flags": 4}, - {"matrix": [6, 4], "x": 96, "y": 52, "flags": 4}, - {"matrix": [6, 5], "x": 107, "y": 52, "flags": 4}, - {"matrix": [6, 6], "x": 117, "y": 52, "flags": 4}, - {"matrix": [6, 7], "x": 137, "y": 52, "flags": 4}, - {"matrix": [6, 8], "x": 169, "y": 52, "flags": 4}, - {"matrix": [6, 9], "x": 193, "y": 52, "flags": 4}, - {"matrix": [6, 10], "x": 203, "y": 52, "flags": 4}, - {"matrix": [6, 11], "x": 214, "y": 52, "flags": 4}, - {"matrix": [6, 12], "x": 224, "y": 58, "flags": 4}, - - {"matrix": [7, 0], "x": 1, "y": 64, "flags": 4}, - {"matrix": [7, 1], "x": 14, "y": 64, "flags": 4}, - {"matrix": [7, 2], "x": 27, "y": 64, "flags": 4}, - {"matrix": [7, 3], "x": 66, "y": 64, "flags": 4}, - {"matrix": [7, 4], "x": 105, "y": 64, "flags": 4}, - {"matrix": [7, 5], "x": 118, "y": 64, "flags": 4}, - {"matrix": [7, 6], "x": 131, "y": 64, "flags": 4}, - {"matrix": [7, 7], "x": 145, "y": 64, "flags": 4}, - {"matrix": [7, 8], "x": 159, "y": 64, "flags": 4}, - {"matrix": [7, 9], "x": 169, "y": 64, "flags": 4}, - {"matrix": [7, 10], "x": 180, "y": 64, "flags": 4}, - {"matrix": [7, 11], "x": 198, "y": 64, "flags": 4}, - {"matrix": [7, 12], "x": 214, "y": 64, "flags": 4} - ], - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "rainbow_moving_chevron": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_flow": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_cross": true, - "solid_reactive_nexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true - }, - "default": { - "val": 128 - }, - "led_process_limit": 4, - "led_flush_limit": 26, - "sleep": true - } -} diff --git a/keyboards/whirlwind_fx_element/keymaps/default/keymap.c b/keyboards/whirlwind_fx_element/keymaps/default/keymap.c deleted file mode 100644 index 36690aca28..0000000000 --- a/keyboards/whirlwind_fx_element/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2023 WhirlwindFX -// Copyright 2023 aedanmills -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ - * │Ctrl│GUI │Alt │ │ Alt│ FN │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ - */ - [0] = LAYOUT_fullsize_ansi( - 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_PSCR, KC_SCRL, KC_PAUS, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - 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_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - [1] = LAYOUT_fullsize_ansi( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRID, KC_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_CALC, - - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALD, RM_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/whirlwind_fx_element/mcuconf.h b/keyboards/whirlwind_fx_element/mcuconf.h deleted file mode 100644 index c89f7275d4..0000000000 --- a/keyboards/whirlwind_fx_element/mcuconf.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023 WhirlwindFX -// Copyright 2023 aedanmills -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next - -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/whirlwind_fx_element/readme.md b/keyboards/whirlwind_fx_element/readme.md deleted file mode 100644 index 362b984772..0000000000 --- a/keyboards/whirlwind_fx_element/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# WhirlwindFX ElementV2 - -![WhirlwindFX ElementV2](https://i.imgur.com/Etso6Ni.png) - -A full-size (100%) mechanical keyboard with RGB lighting. - -* Keyboard Maintainer: [Aedan Mills](https://github.com/aedanmills) -* Hardware Supported: WhirlwindFX ElementV2 -* Hardware Availability: [WhirlwindFX](https://www.whirlwindfx.com/products/element) - -Make example for this keyboard (after setting up your build environment): - - make whirlwind_fx_element:default - -Flashing example for this keyboard: - - make whirlwind_fx_element:default:flash - -## Bootloader - -Enter the bootloader by pressing and holding the reset button on the back of the PCB while plugging in the keyboard. You will have to remove the key caps to access the screws to disassemble the keyboard and access the button. - -Don't forget to backup the original firmware before proceeding by using the following dfu-util command with the keyboard in bootloader mode: - - dfu-util --list # Check that the keyboard is listed in DFU mode - dfu-util -a 0 -U backup.bin -s 0x08000000 # Save backup as backup.bin - -After flashing with QMK, BootMagic can be used to enter the bootloader by holding ESC while plugging in the keyboard. - - -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). diff --git a/keyboards/whirlwind_fx_element/whirlwind_fx_element.c b/keyboards/whirlwind_fx_element/whirlwind_fx_element.c deleted file mode 100644 index 6f17dbda2f..0000000000 --- a/keyboards/whirlwind_fx_element/whirlwind_fx_element.c +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2023 WhirlwindFX -// Copyright 2023 aedanmills -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -#ifdef RGB_MATRIX_ENABLE -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { - {0, SW1_CS2, SW1_CS3, SW1_CS1}, - {0, SW1_CS5, SW1_CS6, SW1_CS4}, - {0, SW1_CS8, SW1_CS9, SW1_CS7}, - {0, SW1_CS11, SW1_CS12, SW1_CS10}, - {0, SW1_CS14, SW1_CS15, SW1_CS13}, - {0, SW1_CS17, SW1_CS18, SW1_CS16}, - {0, SW1_CS20, SW1_CS21, SW1_CS19}, - {0, SW1_CS23, SW1_CS24, SW1_CS22}, - {0, SW1_CS26, SW1_CS27, SW1_CS25}, - {0, SW1_CS29, SW1_CS30, SW1_CS28}, - {0, SW1_CS32, SW1_CS33, SW1_CS31}, - {0, SW1_CS35, SW1_CS36, SW1_CS34}, - {0, SW1_CS38, SW1_CS39, SW1_CS37}, - {0, SW2_CS2, SW2_CS3, SW2_CS1}, - {0, SW2_CS5, SW2_CS6, SW2_CS4}, - {0, SW2_CS8, SW2_CS9, SW2_CS7}, - {0, SW2_CS11, SW2_CS12, SW2_CS10}, - {0, SW2_CS14, SW2_CS15, SW2_CS13}, - {0, SW2_CS17, SW2_CS18, SW2_CS16}, - {0, SW2_CS20, SW2_CS21, SW2_CS19}, - {0, SW2_CS23, SW2_CS24, SW2_CS22}, - {0, SW2_CS26, SW2_CS27, SW2_CS25}, - {0, SW2_CS29, SW2_CS30, SW2_CS28}, - {0, SW2_CS32, SW2_CS33, SW2_CS31}, - {0, SW2_CS35, SW2_CS36, SW2_CS34}, - {0, SW2_CS38, SW2_CS39, SW2_CS37}, - {0, SW3_CS2, SW3_CS3, SW3_CS1}, - {0, SW3_CS5, SW3_CS6, SW3_CS4}, - {0, SW3_CS8, SW3_CS9, SW3_CS7}, - {0, SW3_CS11, SW3_CS12, SW3_CS10}, - {0, SW3_CS14, SW3_CS15, SW3_CS13}, - {0, SW3_CS17, SW3_CS18, SW3_CS16}, - {0, SW3_CS20, SW3_CS21, SW3_CS19}, - {0, SW3_CS23, SW3_CS24, SW3_CS22}, - {0, SW3_CS26, SW3_CS27, SW3_CS25}, - {0, SW3_CS29, SW3_CS30, SW3_CS28}, - {0, SW3_CS32, SW3_CS33, SW3_CS31}, - {0, SW3_CS35, SW3_CS36, SW3_CS34}, - {0, SW3_CS38, SW3_CS39, SW3_CS37}, - {0, SW4_CS2, SW4_CS3, SW4_CS1}, - {0, SW4_CS5, SW4_CS6, SW4_CS4}, - {0, SW4_CS8, SW4_CS9, SW4_CS7}, - {0, SW4_CS11, SW4_CS12, SW4_CS10}, - {0, SW4_CS14, SW4_CS15, SW4_CS13}, - {0, SW4_CS17, SW4_CS18, SW4_CS16}, - {0, SW4_CS20, SW4_CS21, SW4_CS19}, - {0, SW4_CS23, SW4_CS24, SW4_CS22}, - {0, SW4_CS26, SW4_CS27, SW4_CS25}, - {0, SW4_CS29, SW4_CS30, SW4_CS28}, - {0, SW4_CS32, SW4_CS33, SW4_CS31}, - {0, SW4_CS35, SW4_CS36, SW4_CS34}, - {0, SW4_CS38, SW4_CS39, SW4_CS37}, - {0, SW5_CS2, SW5_CS3, SW5_CS1}, - {0, SW5_CS5, SW5_CS6, SW5_CS4}, - {0, SW5_CS8, SW5_CS9, SW5_CS7}, - {0, SW5_CS11, SW5_CS12, SW5_CS10}, - {0, SW5_CS14, SW5_CS15, SW5_CS13}, - {0, SW5_CS17, SW5_CS18, SW5_CS16}, - {0, SW5_CS20, SW5_CS21, SW5_CS19}, - {0, SW5_CS23, SW5_CS24, SW5_CS22}, - {0, SW5_CS26, SW5_CS27, SW5_CS25}, - {0, SW5_CS29, SW5_CS30, SW5_CS28}, - {0, SW5_CS32, SW5_CS33, SW5_CS31}, - {0, SW5_CS35, SW5_CS36, SW5_CS34}, - {0, SW5_CS38, SW5_CS39, SW5_CS37}, - {0, SW6_CS2, SW6_CS3, SW6_CS1}, - {0, SW6_CS5, SW6_CS6, SW6_CS4}, - {0, SW6_CS8, SW6_CS9, SW6_CS7}, - {0, SW6_CS11, SW6_CS12, SW6_CS10}, - {0, SW6_CS14, SW6_CS15, SW6_CS13}, - {0, SW6_CS17, SW6_CS18, SW6_CS16}, - {0, SW6_CS20, SW6_CS21, SW6_CS19}, - {0, SW6_CS23, SW6_CS24, SW6_CS22}, - {0, SW6_CS26, SW6_CS27, SW6_CS25}, - {0, SW6_CS29, SW6_CS30, SW6_CS28}, - {0, SW6_CS32, SW6_CS33, SW6_CS31}, - {0, SW6_CS35, SW6_CS36, SW6_CS34}, - {0, SW6_CS38, SW6_CS39, SW6_CS37}, - {0, SW7_CS2, SW7_CS3, SW7_CS1}, - {0, SW7_CS5, SW7_CS6, SW7_CS4}, - {0, SW7_CS8, SW7_CS9, SW7_CS7}, - {0, SW7_CS11, SW7_CS12, SW7_CS10}, - {0, SW7_CS14, SW7_CS15, SW7_CS13}, - {0, SW7_CS17, SW7_CS18, SW7_CS16}, - {0, SW7_CS20, SW7_CS21, SW7_CS19}, - {0, SW7_CS23, SW7_CS24, SW7_CS22}, - {0, SW7_CS26, SW7_CS27, SW7_CS25}, - {0, SW7_CS29, SW7_CS30, SW7_CS28}, - {0, SW7_CS32, SW7_CS33, SW7_CS31}, - {0, SW7_CS35, SW7_CS36, SW7_CS34}, - {0, SW7_CS38, SW7_CS39, SW7_CS37}, - {0, SW8_CS2, SW8_CS3, SW8_CS1}, - {0, SW8_CS5, SW8_CS6, SW8_CS4}, - {0, SW8_CS8, SW8_CS9, SW8_CS7}, - {0, SW8_CS11, SW8_CS12, SW8_CS10}, - {0, SW8_CS14, SW8_CS15, SW8_CS13}, - {0, SW8_CS17, SW8_CS18, SW8_CS16}, - {0, SW8_CS20, SW8_CS21, SW8_CS19}, - {0, SW8_CS23, SW8_CS24, SW8_CS22}, - {0, SW8_CS26, SW8_CS27, SW8_CS25}, - {0, SW8_CS29, SW8_CS30, SW8_CS28}, - {0, SW8_CS32, SW8_CS33, SW8_CS31}, - {0, SW8_CS35, SW8_CS36, SW8_CS34}, - {0, SW8_CS38, SW8_CS39, SW8_CS37} -}; -#endif -void keyboard_pre_init_kb(void) { - gpio_set_pin_output(B11); // Required for indicators to work correctly - - keyboard_pre_init_user(); -} diff --git a/keyboards/whitefacemountain/ampersand/keyboard.json b/keyboards/whitefacemountain/ampersand/keyboard.json index b0929e2d3c..04840d05bc 100644 --- a/keyboards/whitefacemountain/ampersand/keyboard.json +++ b/keyboards/whitefacemountain/ampersand/keyboard.json @@ -64,13 +64,13 @@ {"label": ".", "matrix": [2, 9], "x": 9.75, "y": 2}, {"label": "/", "matrix": [2, 10], "x": 10.75, "y": 2}, {"label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3}, - {"label": "LGui", "matrix": [3, 2], "x": 2.75, "y": 3}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1}, + {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3, "w": 1}, + {"label": "LGui", "matrix": [3, 2], "x": 2.75, "y": 3, "w": 1}, {"label": "Space", "matrix": [3, 5], "x": 3.75, "y": 3, "w": 6}, - {"label": "RGui", "matrix": [3, 8], "x": 9.75, "y": 3}, - {"label": "RAlt", "matrix": [3, 9], "x": 10.75, "y": 3}, - {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3} + {"label": "RGui", "matrix": [3, 8], "x": 9.75, "y": 3, "w": 1}, + {"label": "RAlt", "matrix": [3, 9], "x": 10.75, "y": 3, "w": 1}, + {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3, "w": 1} ] }, "LAYOUT_split_bars": { @@ -113,14 +113,14 @@ {"label": ".", "matrix": [2, 9], "x": 9.75, "y": 2}, {"label": "/", "matrix": [2, 10], "x": 10.75, "y": 2}, {"label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1}, {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3, "w": 1.5}, - {"label": "LGui", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "LGui", "matrix": [3, 2], "x": 3.25, "y": 3, "w": 1}, {"label": "Space", "matrix": [3, 3], "x": 4.25, "y": 3, "w": 2.25}, {"label": "Space", "matrix": [3, 7], "x": 6.5, "y": 3, "w": 2.75}, - {"label": "RGui", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": "RGui", "matrix": [3, 8], "x": 9.25, "y": 3, "w": 1}, {"label": "RAlt", "matrix": [3, 9], "x": 10.25, "y": 3, "w": 1.5}, - {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3} + {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3, "w": 1} ] } } diff --git a/keyboards/wilba_tech/rama_works_m10_b/keyboard.json b/keyboards/wilba_tech/rama_works_m10_b/keyboard.json index 43df7942cb..157baa1c5a 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/keyboard.json +++ b/keyboards/wilba_tech/rama_works_m10_b/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json b/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json index 9018086906..c44032f97c 100644 --- a/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json +++ b/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt45_h1/keyboard.json b/keyboards/wilba_tech/wt45_h1/keyboard.json deleted file mode 100644 index cfe1b3d3a4..0000000000 --- a/keyboards/wilba_tech/wt45_h1/keyboard.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "manufacturer": "wilba.tech", - "keyboard_name": "WT45-H1", - "maintainer": "Wilba", - "bootloader": "atmel-dfu", - "bootloader_instructions": "Press the button labeled S1 on the back of the PCB, near the MCU.", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "caps_word": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["F5", "D2", "D3", "D5", "D4", "D6", "D7", "C7", "C6", "B6", "B5", "B4"], - "rows": ["F1", "F4", "F6", "F7"] - }, - "processor": "atmega32u4", - "usb": { - "device_version": "0.0.1", - "pid": "0x0045", - "vid": "0x6582" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, - {"matrix": [2, 1], "x": 1.25, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [2, 8], "x": 8.25, "y": 2}, - {"matrix": [2, 9], "x": 9.25, "y": 2}, - {"matrix": [2, 10], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, - {"matrix": [3, 6], "x": 5.75, "y": 3}, - {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_big_bar": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, - {"matrix": [2, 1], "x": 1.25, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [2, 8], "x": 8.25, "y": 2}, - {"matrix": [2, 9], "x": 9.25, "y": 2}, - {"matrix": [2, 10], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, - {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_big_lshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [2, 8], "x": 8.25, "y": 2}, - {"matrix": [2, 9], "x": 9.25, "y": 2}, - {"matrix": [2, 10], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, - {"matrix": [3, 6], "x": 5.75, "y": 3}, - {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_big_lshift_big_bar": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 8.75, "y": 1}, - {"matrix": [1, 9], "x": 9.75, "y": 1}, - {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 6], "x": 6.25, "y": 2}, - {"matrix": [2, 7], "x": 7.25, "y": 2}, - {"matrix": [2, 8], "x": 8.25, "y": 2}, - {"matrix": [2, 9], "x": 9.25, "y": 2}, - {"matrix": [2, 10], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, - {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} - ] - } - } -} diff --git a/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json b/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json deleted file mode 100644 index 11ae056820..0000000000 --- a/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": 1, - "keyboard": "wilba_tech/wt45_h1", - "keymap": "default", - "layout": "LAYOUT_all", - "layers": [ - [ -"LT(2,KC_ESC)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", -"KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_ENT", -"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", -"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "LT(1,KC_SPC)", "LT(1,KC_SPC)", "KC_RALT", "RGUI_T(KC_GRV)", "KC_RCTL" - ], - [ -"KC_GRV", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_LBRC", "KC_RBRC", "KC_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_DEL", -"KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END", "KC_TRNS", "KC_BSLS", "KC_SLSH", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_TRNS", -"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_ESC", "KC_QUOT", "KC_TRNS", "KC_DOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", -"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ], - [ -"KC_TRNS", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", -"KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", -"KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "CW_TOGG", -"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ] - ] -} diff --git a/keyboards/wilba_tech/wt45_h1/readme.md b/keyboards/wilba_tech/wt45_h1/readme.md deleted file mode 100644 index 3a23ac36f0..0000000000 --- a/keyboards/wilba_tech/wt45_h1/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# wilba.tech WT45-H1 - -![WT45-H1 PCB](https://i.imgur.com/33lWN3p.png) - -WT45-H1 is a mostly-base-kit-compatible hotswap 40% keyboard PCB with split left shift and split spacebar options. - -Initially designed for the [HIBI CHOPPER](https://hibi.mx/products/chopper) - -- Keyboard Maintainer: [wilba](https://github.com/wilba) -- Hardware Supported: wilba.tech WT45-H1 (atmega32u4, atmel-dfu) -- Hardware Availability: [HIBI](https://hibi.mx/products/chopper) - -Make example for this keyboard (after setting up your build environment): - - make wilba_tech/wt45_h1:default - -Flashing example for this keyboard: - - make wilba_tech/wt45_h1: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 top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. -* **Physical reset button**: Press the button labeled S1 on the back of the PCB, near the MCU. -* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. diff --git a/keyboards/wilba_tech/wt60_b/keyboard.json b/keyboards/wilba_tech/wt60_b/keyboard.json index 9b637bc021..9cbd43cdbb 100644 --- a/keyboards/wilba_tech/wt60_b/keyboard.json +++ b/keyboards/wilba_tech/wt60_b/keyboard.json @@ -28,15 +28,14 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c index c8988c78d3..968fb7ffca 100644 --- a/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( 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_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, TL_UPPR, KC_NO), // Fn1 Layer -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_INS, KC_DEL, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn2 Layer -[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[2] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn3 Layer (zeal60 Configuration) -[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[3] = LAYOUT_60_tsangan_hhkb( KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wilba_tech/wt60_bx/keyboard.json b/keyboards/wilba_tech/wt60_bx/keyboard.json index f99a2cc868..7699df7106 100644 --- a/keyboards/wilba_tech/wt60_bx/keyboard.json +++ b/keyboards/wilba_tech/wt60_bx/keyboard.json @@ -28,11 +28,10 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], "layouts": { @@ -105,7 +104,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c index a255f0105b..72721af4f5 100644 --- a/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( 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_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, TL_UPPR, KC_NO), // Fn1 Layer -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_INS, KC_DEL, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn2 Layer -[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[2] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn3 Layer (zeal60 Configuration) -[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[3] = LAYOUT_60_tsangan_hhkb( KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wilba_tech/wt60_c/keyboard.json b/keyboards/wilba_tech/wt60_c/keyboard.json index e155073c51..27a59c69ff 100644 --- a/keyboards/wilba_tech/wt60_c/keyboard.json +++ b/keyboards/wilba_tech/wt60_c/keyboard.json @@ -28,11 +28,10 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], "layouts": { @@ -105,7 +104,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c index 0aa6928521..d02327a874 100644 --- a/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c @@ -3,28 +3,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[0] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TL_LOWR, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, TL_UPPR, KC_RCTL), -[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, KC_DEL, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[2] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( +[3] = LAYOUT_60_tsangan_hhkb( KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wilba_tech/wt60_d/keyboard.json b/keyboards/wilba_tech/wt60_d/keyboard.json index 731e9b8cdc..95ecda66ed 100644 --- a/keyboards/wilba_tech/wt60_d/keyboard.json +++ b/keyboards/wilba_tech/wt60_d/keyboard.json @@ -34,16 +34,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_tsangan_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -603,7 +599,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 3], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_g/keyboard.json b/keyboards/wilba_tech/wt60_g/keyboard.json index 1838cb4809..ba8a6a4d47 100644 --- a/keyboards/wilba_tech/wt60_g/keyboard.json +++ b/keyboards/wilba_tech/wt60_g/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -31,16 +33,12 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", - "60_iso_tsangan", - "60_iso_tsangan_split_bs_rshift" + "60_iso_tsangan" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -322,7 +320,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_g2/keyboard.json b/keyboards/wilba_tech/wt60_g2/keyboard.json index a8a8b186a8..85d51d0cd7 100644 --- a/keyboards/wilba_tech/wt60_g2/keyboard.json +++ b/keyboards/wilba_tech/wt60_g2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -28,12 +30,11 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_tsangan_hhkb" }, "community_layouts": [ "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], "layouts": { @@ -105,7 +106,7 @@ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c index 9910c070fc..6901f2d676 100644 --- a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), // Fn1 Layer - [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [1] = LAYOUT_60_tsangan_hhkb( 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, KC_DEL, KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn2 Layer - [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [2] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Fn3 Layer - [3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + [3] = LAYOUT_60_tsangan_hhkb( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wilba_tech/wt60_h1/keyboard.json b/keyboards/wilba_tech/wt60_h1/keyboard.json index bd8d687a57..2832cf3cd7 100644 --- a/keyboards/wilba_tech/wt60_h1/keyboard.json +++ b/keyboards/wilba_tech/wt60_h1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_h2/keyboard.json b/keyboards/wilba_tech/wt60_h2/keyboard.json index 76c1385fcd..f48e03940c 100644 --- a/keyboards/wilba_tech/wt60_h2/keyboard.json +++ b/keyboards/wilba_tech/wt60_h2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_h3/keyboard.json b/keyboards/wilba_tech/wt60_h3/keyboard.json index cf75517fb1..9078fa9242 100644 --- a/keyboards/wilba_tech/wt60_h3/keyboard.json +++ b/keyboards/wilba_tech/wt60_h3/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_xt/keyboard.json b/keyboards/wilba_tech/wt60_xt/keyboard.json index 55229a2400..ba8e8000db 100644 --- a/keyboards/wilba_tech/wt60_xt/keyboard.json +++ b/keyboards/wilba_tech/wt60_xt/keyboard.json @@ -11,6 +11,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_d/keyboard.json b/keyboards/wilba_tech/wt65_d/keyboard.json index e4e22b1eea..3754b3788b 100644 --- a/keyboards/wilba_tech/wt65_d/keyboard.json +++ b/keyboards/wilba_tech/wt65_d/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_f/keyboard.json b/keyboards/wilba_tech/wt65_f/keyboard.json index b97e180fde..fb79856578 100644 --- a/keyboards/wilba_tech/wt65_f/keyboard.json +++ b/keyboards/wilba_tech/wt65_f/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_fx/keyboard.json b/keyboards/wilba_tech/wt65_fx/keyboard.json index a914a804e1..f53332b6af 100644 --- a/keyboards/wilba_tech/wt65_fx/keyboard.json +++ b/keyboards/wilba_tech/wt65_fx/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_g/keyboard.json b/keyboards/wilba_tech/wt65_g/keyboard.json index fee51985f2..e097477074 100644 --- a/keyboards/wilba_tech/wt65_g/keyboard.json +++ b/keyboards/wilba_tech/wt65_g/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_g2/keyboard.json b/keyboards/wilba_tech/wt65_g2/keyboard.json index 7c5610a3b4..8a7862dcbe 100644 --- a/keyboards/wilba_tech/wt65_g2/keyboard.json +++ b/keyboards/wilba_tech/wt65_g2/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_h1/keyboard.json b/keyboards/wilba_tech/wt65_h1/keyboard.json index f43f4bb8d6..d56321ce5f 100644 --- a/keyboards/wilba_tech/wt65_h1/keyboard.json +++ b/keyboards/wilba_tech/wt65_h1/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_xt/keyboard.json b/keyboards/wilba_tech/wt65_xt/keyboard.json index bc5785c3f1..5331856269 100644 --- a/keyboards/wilba_tech/wt65_xt/keyboard.json +++ b/keyboards/wilba_tech/wt65_xt/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_xtx/keyboard.json b/keyboards/wilba_tech/wt65_xtx/keyboard.json index 63660aa750..7d60043b91 100644 --- a/keyboards/wilba_tech/wt65_xtx/keyboard.json +++ b/keyboards/wilba_tech/wt65_xtx/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt70_jb/keyboard.json b/keyboards/wilba_tech/wt70_jb/keyboard.json index 8204b1850b..f922810600 100644 --- a/keyboards/wilba_tech/wt70_jb/keyboard.json +++ b/keyboards/wilba_tech/wt70_jb/keyboard.json @@ -33,6 +33,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/wilba_tech/wt80_g/keyboard.json b/keyboards/wilba_tech/wt80_g/keyboard.json index 27526e4e1f..cc148a9fa0 100644 --- a/keyboards/wilba_tech/wt80_g/keyboard.json +++ b/keyboards/wilba_tech/wt80_g/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt_main.c b/keyboards/wilba_tech/wt_main.c index 7e56d98356..92c43c794d 100644 --- a/keyboards/wilba_tech/wt_main.c +++ b/keyboards/wilba_tech/wt_main.c @@ -33,7 +33,7 @@ // Called from via_init() if VIA_ENABLE // Called from matrix_init_kb() if not VIA_ENABLE -void wt_main_init(void) +void via_init_kb(void) { // This checks both an EEPROM reset (from bootmagic lite, keycodes) // and also firmware build date (from via_eeprom_is_valid()) @@ -64,9 +64,11 @@ void wt_main_init(void) void matrix_init_kb(void) { // If VIA is disabled, we still need to load backlight settings. - // Call via_init_kb() the same way as via_init_kb() does. + // Call via_init_kb() the same way as via_init(), with setting + // EEPROM valid afterwards. #ifndef VIA_ENABLE - wt_main_init(); + via_init_kb(); + via_eeprom_set_valid(true); #endif // VIA_ENABLE matrix_init_user(); @@ -107,10 +109,6 @@ void suspend_wakeup_init_kb(void) // Moving this to the bottom of this source file is a workaround // for an intermittent compiler error for Atmel compiler. #ifdef VIA_ENABLE -void via_init_kb(void) { - wt_main_init(); -} - void via_custom_value_command_kb(uint8_t *data, uint8_t length) { uint8_t *command_id = &(data[0]); uint8_t *channel_id = &(data[1]); @@ -161,3 +159,50 @@ void via_set_device_indication(uint8_t value) } #endif // VIA_ENABLE + +// +// In the case of VIA being disabled, we still need to check if +// keyboard level EEPROM memory is valid before loading. +// Thus these are copies of the same functions in VIA, since +// the backlight settings reuse VIA's EEPROM magic/version, +// and the ones in via.c won't be compiled in. +// +// Yes, this is sub-optimal, and is only here for completeness +// (i.e. catering to the 1% of people that want wilba.tech LED bling +// AND want persistent settings BUT DON'T want to use dynamic keymaps/VIA). +// +#ifndef VIA_ENABLE + +bool via_eeprom_is_valid(void) +{ + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); + uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); + uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); + + return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 && + eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 && + eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 ); +} + +void via_eeprom_set_valid(bool valid) +{ + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); + uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); + uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); + + eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF); + eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF); + eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF); +} + +void via_eeprom_reset(void) +{ + // Set the VIA specific EEPROM state as invalid. + via_eeprom_set_valid(false); + // Set the TMK/QMK EEPROM state as invalid. + eeconfig_disable(); +} + +#endif // VIA_ENABLE diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 8359aab135..1426e09fc6 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -25,8 +25,6 @@ #include "progmem.h" #include "eeprom.h" -#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm -#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define MONO_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) @@ -152,8 +150,8 @@ void backlight_effect_cycle_all(void) void backlight_effect_indicators(void) { #if defined(MONO_BACKLIGHT_WT75_A) - hsv_t hsv = { .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness }; - rgb_t rgb = hsv_to_rgb( hsv ); + HSV hsv = { .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness }; + RGB rgb = hsv_to_rgb( hsv ); // SW7,CS8 = (6*8+7) = 55 // SW8,CS8 = (7*8+7) = 63 // SW9,CS8 = (8*8+7) = 71 diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 744bcb262d..936286c2ee 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -60,14 +60,13 @@ #if defined(RGB_BACKLIGHT_DAWN60) #include "ws2812.h" +rgb_led_t g_ws2812_leds[WS2812_LED_TOTAL]; #endif #include "progmem.h" #include "quantum/color.h" #include "eeprom.h" -#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm -#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) @@ -1012,9 +1011,6 @@ void backlight_update_pwm_buffers(void) driver = 0; } #else -#if defined(RGB_BACKLIGHT_DAWN60) - ws2812_flush(); -#endif is31fl3731_update_pwm_buffers( 0 ); is31fl3731_update_pwm_buffers( 1 ); is31fl3731_update_led_control_registers( 0 ); @@ -1041,7 +1037,10 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) if( index < IS31FL3731_LED_COUNT ) { is31fl3731_set_color( index, red, green, blue ); } else { - ws2812_set_color( index - IS31FL3731_LED_COUNT, red, green, blue ); + g_ws2812_leds[index - IS31FL3731_LED_COUNT].r = red; + g_ws2812_leds[index - IS31FL3731_LED_COUNT].g = green; + g_ws2812_leds[index - IS31FL3731_LED_COUNT].b = blue; + ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); } #else is31fl3731_set_color( index, red, green, blue ); @@ -1076,7 +1075,12 @@ void backlight_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) } #elif defined(RGB_BACKLIGHT_DAWN60) is31fl3731_set_color_all( red, green, blue ); - ws2812_set_color_all( red, green, blue ); + for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { + g_ws2812_leds[i].r = red; + g_ws2812_leds[i].g = green; + g_ws2812_leds[i].b = blue; + } + ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); #else is31fl3731_set_color_all( red, green, blue ); #endif @@ -1260,16 +1264,16 @@ void backlight_effect_all_off(void) // Solid color void backlight_effect_solid_color(void) { - hsv_t hsv = { .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness }; - rgb_t rgb = hsv_to_rgb( hsv ); + HSV hsv = { .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness }; + RGB rgb = hsv_to_rgb( hsv ); backlight_set_color_all( rgb.r, rgb.g, rgb.b ); } // alphas = color1, mods = color2 void backlight_effect_alphas_mods(void) { - rgb_t rgb1 = hsv_to_rgb( (hsv_t){ .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness } ); - rgb_t rgb2 = hsv_to_rgb( (hsv_t){ .h = g_config.color_2.h, .s = g_config.color_2.s, .v = g_config.brightness } ); + RGB rgb1 = hsv_to_rgb( (HSV){ .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness } ); + RGB rgb2 = hsv_to_rgb( (HSV){ .h = g_config.color_2.h, .s = g_config.color_2.s, .v = g_config.brightness } ); bool is_alpha = false; for ( int row = 0; row < MATRIX_ROWS; row++ ) { @@ -1321,7 +1325,7 @@ void backlight_effect_alphas_mods(void) } } #if defined(RGB_BACKLIGHT_DAWN60) - for (int i = 0; i < WS2812_LED_COUNT; i++) { + for (int i = 0; i < WS2812_LED_TOTAL; i++) { if ((RGB_UNDERGLOW_ALPHA_TOP_START <= i && i <= RGB_UNDERGLOW_ALPHA_TOP_END) || (RGB_UNDERGLOW_ALPHA_BOT_START <= i && i <= RGB_UNDERGLOW_ALPHA_BOT_END)) { backlight_set_color(i + IS31FL3731_LED_COUNT, rgb1.r, rgb1.g, rgb1.b); @@ -1354,8 +1358,8 @@ void backlight_effect_gradient_up_down(void) int16_t s2 = g_config.color_2.s; int16_t deltaS = ( s2 - s1 ) / 4; - hsv_t hsv = { .h = 0, .s = 255, .v = g_config.brightness }; - rgb_t rgb; + HSV hsv = { .h = 0, .s = 255, .v = g_config.brightness }; + RGB rgb; Point point; for ( int i=0; i. - */ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; - -// clang-format on diff --git a/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md b/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md deleted file mode 100644 index 2fa0952a83..0000000000 --- a/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Default Wind X R1 Layout - -This is the default layout that comes flashed on every Wind X R1. For the most -part it's a straightforward and easy to follow layout. The only unusual key is -the key in the upper left, which sends Escape normally, but Grave when any of -the Ctrl, Alt, or GUI modifiers are held down. diff --git a/keyboards/windstudio/wind_x/r1/readme.md b/keyboards/windstudio/wind_x/r1/readme.md deleted file mode 100644 index c501951e42..0000000000 --- a/keyboards/windstudio/wind_x/r1/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# WindX R1 by Windstudio - -![WindX R1](https://i.imgur.com/FEVczwG.jpg) -_Compact, yet feature full working or gaming keyboard_ - -A large layout keyboard without the function keys. [More info on geekhack.org](https://geekhack.org/index.php?topic=114767.0) - -- Keyboard Maintainer: [Christian C. Berclaz](https://github.com/chrisgve) -- Hardware Supported: Wind X R1 w/ ATmega32U4 microcontroller -- Hardware Availability: [windstudio.store](https://windstudio.store/collections/wind-x) - -Make example for this keyboard (after setting up your build environment): - - make windstudio/wind_x/r1:default - -Flashing example for this keyboard: - - make windstudio/wind_x/r1:default:flash - -See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -- **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/winkeyless/b87/keyboard.json b/keyboards/winkeyless/b87/keyboard.json index 82ef8555ac..a941445d72 100644 --- a/keyboards/winkeyless/b87/keyboard.json +++ b/keyboards/winkeyless/b87/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "B87", "manufacturer": "Winkeyless", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/winkeyless/bface/keyboard.json b/keyboards/winkeyless/bface/keyboard.json index 1f9685c98f..cc5194ef34 100644 --- a/keyboards/winkeyless/bface/keyboard.json +++ b/keyboards/winkeyless/bface/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "B.face", "manufacturer": "Winkeyless", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/winkeyless/bmini/keyboard.json b/keyboards/winkeyless/bmini/keyboard.json index 644870e8bc..6fdaf62182 100644 --- a/keyboards/winkeyless/bmini/keyboard.json +++ b/keyboards/winkeyless/bmini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "B.mini", "manufacturer": "Winkeyless", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/winkeyless/bminiex/keyboard.json b/keyboards/winkeyless/bminiex/keyboard.json index 2794622fc6..9e213bd1f8 100644 --- a/keyboards/winkeyless/bminiex/keyboard.json +++ b/keyboards/winkeyless/bminiex/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/winkeys/mini_winni/keyboard.json b/keyboards/winkeys/mini_winni/keyboard.json index 5bc83c5459..8f80960f24 100644 --- a/keyboards/winkeys/mini_winni/keyboard.json +++ b/keyboards/winkeys/mini_winni/keyboard.json @@ -11,6 +11,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/winry/winry25tc/keyboard.json b/keyboards/winry/winry25tc/keyboard.json index ebe3d0cc77..9a83aded2c 100644 --- a/keyboards/winry/winry25tc/keyboard.json +++ b/keyboards/winry/winry25tc/keyboard.json @@ -1,10 +1,11 @@ { "keyboard_name": "Winry 25tc", "manufacturer": "SpiderIsland", + "url": "", "maintainer": "qmk", "usb": { - "vid": "0xF1F1", - "pid": "0x0025", + "vid": "0xFEED", + "pid": "0x0000", "device_version": "0.0.1" }, "ws2812": { @@ -21,6 +22,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c index 4e22b6b751..f175f36b91 100644 --- a/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c +++ b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c @@ -82,9 +82,9 @@ void refresh_leds(void) { uint8_t tile = tiles[x][y]; uint8_t index = (y * 5) + x; if (tile) { - rgblight_setrgb_at(RGB_RED, remap[index]); + setrgb(RGB_RED, &led[remap[index]]); } else { - rgblight_setrgb_at(RGB_WHITE, remap[index]); + setrgb(RGB_WHITE, &led[remap[index]]); } } } diff --git a/keyboards/winry/winry315/keyboard.json b/keyboards/winry/winry315/keyboard.json index 44b51791e1..81971b339f 100644 --- a/keyboards/winry/winry315/keyboard.json +++ b/keyboards/winry/winry315/keyboard.json @@ -2,6 +2,7 @@ "manufacturer": "Winry", "keyboard_name": "Winry315", "maintainer": "sigprof", + "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0315", @@ -83,6 +84,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/winry/winry315/keymaps/default/keymap.c b/keyboards/winry/winry315/keymaps/default/keymap.c index d884d08ea4..a0bc2706ca 100644 --- a/keyboards/winry/winry315/keymaps/default/keymap.c +++ b/keyboards/winry/winry315/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // RGB configuration [_RGB] = LAYOUT_top( RGB_M_P, RGB_M_B, RGB_M_R, - RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, - RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, - KC_TRNS, RM_TOGG, RGB_M_P, RGB_M_B, RGB_M_R + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, + RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, + KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R ), }; // clang-format on diff --git a/keyboards/winry/winry315/keymaps/left_numpad/keymap.c b/keyboards/winry/winry315/keymaps/left_numpad/keymap.c index 0ee1774814..caa8811a5d 100644 --- a/keyboards/winry/winry315/keymaps/left_numpad/keymap.c +++ b/keyboards/winry/winry315/keymaps/left_numpad/keymap.c @@ -25,11 +25,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB configuration */ [_RGB] = LAYOUT_left( - RGB_M_R, KC_TRNS, RM_SPDD, RM_SPDU, - RM_TOGG, RM_HUED, RM_HUEU, - RGB_M_B, RGB_M_P, RM_SATD, RM_SATU, - KC_NO, RM_VALD, RM_VALU, - RGB_M_P, KC_NUM, RM_PREV, RM_NEXT + RGB_M_R, KC_TRNS, RGB_SPD, RGB_SPI, + RGB_TOG, RGB_HUD, RGB_HUI, + RGB_M_B, RGB_M_P, RGB_SAD, RGB_SAI, + KC_NO, RGB_VAD, RGB_VAI, + RGB_M_P, KC_NUM, RGB_RMOD,RGB_MOD ), }; // clang-format on diff --git a/keyboards/wiredin/protagonist/pro_h/config.h b/keyboards/wiredin/protagonist/pro_h/config.h deleted file mode 100644 index ba515a74a2..0000000000 --- a/keyboards/wiredin/protagonist/pro_h/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2024 Gondolindrim - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WS2812_PWM_COMPLEMENTARY_OUTPUT -#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 diff --git a/keyboards/wiredin/protagonist/pro_h/halconf.h b/keyboards/wiredin/protagonist/pro_h/halconf.h deleted file mode 100644 index 77e63e63ea..0000000000 --- a/keyboards/wiredin/protagonist/pro_h/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PWM TRUE -#define HAL_USE_PAL TRUE - -#include_next diff --git a/keyboards/wiredin/protagonist/pro_h/keyboard.json b/keyboards/wiredin/protagonist/pro_h/keyboard.json deleted file mode 100644 index 75c60f6ab9..0000000000 --- a/keyboards/wiredin/protagonist/pro_h/keyboard.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "manufacturer": "WiredIn", - "keyboard_name": "Protagonist PRO-H", - "maintainer": "Gondolindrim", - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A4", "A3", "A2", "A10", "A8", "B12", "A15", "B3", "B4", "B5", "C15", "C14", "B9", "C13"], - "rows": ["B1", "B10", "B14", "B8", "A0", "A1"] - }, - "processor": "STM32F411", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 22 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x5048", - "vid": "0x5749" - }, - "ws2812": { - "driver": "pwm", - "pin": "B15" - }, - "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], - "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - } - } -} diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c b/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c deleted file mode 100644 index b152af99bc..0000000000 --- a/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL - ), - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/wiredin/protagonist/pro_h/mcuconf.h b/keyboards/wiredin/protagonist/pro_h/mcuconf.h deleted file mode 100644 index 1474fe4f97..0000000000 --- a/keyboards/wiredin/protagonist/pro_h/mcuconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/wiredin/protagonist/pro_s/config.h b/keyboards/wiredin/protagonist/pro_s/config.h deleted file mode 100644 index 90b01da8cc..0000000000 --- a/keyboards/wiredin/protagonist/pro_s/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2024 Gondolindrim - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 4 - -#define WS2812_PWM_COMPLEMENTARY_OUTPUT -#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 diff --git a/keyboards/wiredin/protagonist/pro_s/halconf.h b/keyboards/wiredin/protagonist/pro_s/halconf.h deleted file mode 100644 index 77e63e63ea..0000000000 --- a/keyboards/wiredin/protagonist/pro_s/halconf.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2024 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PWM TRUE -#define HAL_USE_PAL TRUE - -#include_next diff --git a/keyboards/wiredin/protagonist/pro_s/keyboard.json b/keyboards/wiredin/protagonist/pro_s/keyboard.json deleted file mode 100644 index 01b1cb3daf..0000000000 --- a/keyboards/wiredin/protagonist/pro_s/keyboard.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "manufacturer": "WiredIn", - "keyboard_name": "Protagonist PRO-S", - "maintainer": "Gondolindrim", - "backlight": { - "as_caps_lock": true, - "levels": 20, - "pin": "B1" - }, - "bootloader": "stm32-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "backlight": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["A3", "A2", "A1", "B14", "B12", "A10", "A8", "B4", "B3", "A15", "C15", "C14", "C13", "B8"], - "rows": ["A4", "A7", "B0", "B5", "B9", "A0", "B10"] - }, - "processor": "STM32F411", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 22 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x5053", - "vid": "0x5749" - }, - "ws2812": { - "driver": "pwm", - "pin": "B15" - }, - "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_tsangan_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_iso_wkl_split_bs_rshift": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [6, 1], "x": 1.25, "y": 3}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [6, 3], "x": 3.25, "y": 3}, - {"matrix": [6, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 4}, - {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 12.5, "y": 4}, - {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c b/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c deleted file mode 100644 index 68bc778caa..0000000000 --- a/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all(/* Base */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL - ), - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/wiredin/protagonist/pro_s/mcuconf.h b/keyboards/wiredin/protagonist/pro_s/mcuconf.h deleted file mode 100644 index 0b2d6e95d8..0000000000 --- a/keyboards/wiredin/protagonist/pro_s/mcuconf.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2024 Gondolindrim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE - -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/wiredin/protagonist/readme.md b/keyboards/wiredin/protagonist/readme.md deleted file mode 100644 index 153c3fb734..0000000000 --- a/keyboards/wiredin/protagonist/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# WiredIn Protagonist - -* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) -* Hardware Supported: proprietary PCB using STM32F411 microcontroller; -* Hardware Availability: the Protagonist entered Group Buy in february 2024 and as of april 2025 there were no more public sales. - -The Protagonist is a 60% keyboard designed by WiredIn and PCB designed by [Gondolindrim](http://github.com/Gondolindrim), who is also the firwmare maintainer. - -## How to flash - -### Enter bootloader - -The DFU state in the bootloader can be accessed in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (escape in the default keymap) and plug in the keyboard; -* **Physical reset button**: press the button on the back of the PCB and hold it for 5 seconds; -* **Keycode in layout**: Press the key mapped to `RESET`; in the default layout, that is top left key ('escape') in layer 1. - -### How to compile and flash - -The Protagonist has two PCB versions: PRO-S (solderable) and PRO-H (hotswap). After checking what PCB you own and setting up your build environment, you can compile the default keymap by using one of the options below. - - make wiredin/protagonist/:default - -Where `` can be `pro_s` or `pro_h`. And use dfu-util in the command line or through a GUI like QMK toolbox to upload the firmware to the PCB. To directly flash the PCB after it is put into a DFU state, use: - - make wiredin/protagonist/: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). diff --git a/keyboards/wolf/frogpad/keyboard.json b/keyboards/wolf/frogpad/keyboard.json index b6ed0503a2..061b9221a7 100644 --- a/keyboards/wolf/frogpad/keyboard.json +++ b/keyboards/wolf/frogpad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wolf/frogpad/keymaps/default/keymap.c b/keyboards/wolf/frogpad/keymaps/default/keymap.c index 236afeab06..adc4cf77e8 100644 --- a/keyboards/wolf/frogpad/keymaps/default/keymap.c +++ b/keyboards/wolf/frogpad/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_LAYER0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } + [_LAYER0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; #endif \ No newline at end of file diff --git a/keyboards/wolf/kuku65/keyboard.json b/keyboards/wolf/kuku65/keyboard.json index 93321a2e0b..5146d77d1b 100644 --- a/keyboards/wolf/kuku65/keyboard.json +++ b/keyboards/wolf/kuku65/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "kuku65", "manufacturer": "ToastyStoemp", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/m60_b/keyboard.json b/keyboards/wolf/m60_b/keyboard.json index df2d0e2a2f..474974d383 100644 --- a/keyboards/wolf/m60_b/keyboard.json +++ b/keyboards/wolf/m60_b/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -132,6 +134,7 @@ "max_brightness": 120, "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0059", diff --git a/keyboards/wolf/m60_b/keymaps/default/keymap.c b/keyboards/wolf/m60_b/keymaps/default/keymap.c index 3c0fd2bc36..152ab88b50 100644 --- a/keyboards/wolf/m60_b/keymaps/default/keymap.c +++ b/keyboards/wolf/m60_b/keymaps/default/keymap.c @@ -31,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_60_hhkb( 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, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_TRNS, KC_TRNS, - KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/wolf/m6_c/keyboard.json b/keyboards/wolf/m6_c/keyboard.json index c1d3d1302a..f6f2416902 100644 --- a/keyboards/wolf/m6_c/keyboard.json +++ b/keyboards/wolf/m6_c/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -80,6 +82,7 @@ ], "sleep": true }, + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/wolf/neely65/keyboard.json b/keyboards/wolf/neely65/keyboard.json index b7e0d3b13a..9a90105b96 100644 --- a/keyboards/wolf/neely65/keyboard.json +++ b/keyboards/wolf/neely65/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0071", diff --git a/keyboards/wolf/ryujin/keyboard.json b/keyboards/wolf/ryujin/keyboard.json index f34cebb4f6..8e72cccd9e 100644 --- a/keyboards/wolf/ryujin/keyboard.json +++ b/keyboards/wolf/ryujin/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ryujin", "manufacturer": "Miroticaps", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/sabre/keyboard.json b/keyboards/wolf/sabre/keyboard.json index 02c298a59e..11b235efe7 100644 --- a/keyboards/wolf/sabre/keyboard.json +++ b/keyboards/wolf/sabre/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Sabre", "manufacturer": "ToastyStoemp", + "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/silhouette/keyboard.json b/keyboards/wolf/silhouette/keyboard.json index e71d0fa38c..548a89aa19 100644 --- a/keyboards/wolf/silhouette/keyboard.json +++ b/keyboards/wolf/silhouette/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -18,6 +20,7 @@ "rows": ["GP27", "GP26", "GP25", "GP13", "GP3"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0080", diff --git a/keyboards/wolf/twilight/keyboard.json b/keyboards/wolf/twilight/keyboard.json index c0bd31bbbe..ed426e85d9 100644 --- a/keyboards/wolf/twilight/keyboard.json +++ b/keyboards/wolf/twilight/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP28", "GP27", "GP26", "GP25", "GP13", "GP3"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0077", diff --git a/keyboards/wolf/ziggurat/keyboard.json b/keyboards/wolf/ziggurat/keyboard.json index 3f4eb94e8e..bb12d5ab2f 100644 --- a/keyboards/wolf/ziggurat/keyboard.json +++ b/keyboards/wolf/ziggurat/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true @@ -15,6 +17,7 @@ "rows": ["GP11", "GP10", "GP7", "GP6", "GP23", "GP24", "GP25", "GP26", "GP19", "GP18"] }, "processor": "RP2040", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0084", diff --git a/keyboards/wolfmarkclub/wm1/keyboard.json b/keyboards/wolfmarkclub/wm1/keyboard.json index 6b0c896266..0cea5546c8 100644 --- a/keyboards/wolfmarkclub/wm1/keyboard.json +++ b/keyboards/wolfmarkclub/wm1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "WM1", "manufacturer": "Wolfmark Club", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/1key/keyboard.json b/keyboards/woodkeys/bigseries/1key/keyboard.json index c3f545e53c..2440b1974b 100644 --- a/keyboards/woodkeys/bigseries/1key/keyboard.json +++ b/keyboards/woodkeys/bigseries/1key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigSeries 1-Key", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/2key/keyboard.json b/keyboards/woodkeys/bigseries/2key/keyboard.json index bb4ac4db64..9c8c34914a 100644 --- a/keyboards/woodkeys/bigseries/2key/keyboard.json +++ b/keyboards/woodkeys/bigseries/2key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigSeries 2-Key", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/3key/keyboard.json b/keyboards/woodkeys/bigseries/3key/keyboard.json index 35f94cb27f..17870d98ad 100644 --- a/keyboards/woodkeys/bigseries/3key/keyboard.json +++ b/keyboards/woodkeys/bigseries/3key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigSeries 3-Key", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/4key/keyboard.json b/keyboards/woodkeys/bigseries/4key/keyboard.json index 5637e1ab5a..1e44fc2375 100644 --- a/keyboards/woodkeys/bigseries/4key/keyboard.json +++ b/keyboards/woodkeys/bigseries/4key/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "BigSeries 4-Key", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/meira/featherble/rules.mk b/keyboards/woodkeys/meira/featherble/rules.mk index 44ebb2c1fe..3437a35bdf 100644 --- a/keyboards/woodkeys/meira/featherble/rules.mk +++ b/keyboards/woodkeys/meira/featherble/rules.mk @@ -1,5 +1,2 @@ # Processor frequency F_CPU = 8000000 - -CUSTOM_MATRIX = yes -SRC += matrix.c diff --git a/keyboards/woodkeys/meira/info.json b/keyboards/woodkeys/meira/info.json index 0b73ffd7e6..3ad2918d8e 100644 --- a/keyboards/woodkeys/meira/info.json +++ b/keyboards/woodkeys/meira/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Meira", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "colemarkham", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/meira/keymaps/default/keymap.c b/keyboards/woodkeys/meira/keymaps/default/keymap.c index cbc4aa05ae..03f5ad3406 100644 --- a/keyboards/woodkeys/meira/keymaps/default/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/default/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( BL_TOGG, QK_BOOT, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_PSCR, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, - BL_STEP, UG_NEXT, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + BL_STEP, RGB_MOD, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -277,7 +277,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; // led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c index 6442000ce1..bba1b5583e 100644 --- a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( BL_TOGG, QK_BOOT, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_PSCR, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, - BL_STEP, UG_NEXT, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + BL_STEP, RGB_MOD, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -191,7 +191,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/woodkeys/meira/promicro/rules.mk b/keyboards/woodkeys/meira/promicro/rules.mk index 32a05accc5..09057bea54 100644 --- a/keyboards/woodkeys/meira/promicro/rules.mk +++ b/keyboards/woodkeys/meira/promicro/rules.mk @@ -1,6 +1,3 @@ -CUSTOM_MATRIX = yes -SRC += matrix.c - # Disable unsupported hardware RGBLIGHT_SUPPORTED = no AUDIO_SUPPORTED = no diff --git a/keyboards/woodkeys/meira/rules.mk b/keyboards/woodkeys/meira/rules.mk new file mode 100644 index 0000000000..423c14cfb7 --- /dev/null +++ b/keyboards/woodkeys/meira/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = yes +SRC += matrix.c + +DEFAULT_FOLDER = woodkeys/meira/promicro diff --git a/keyboards/woodkeys/scarletbandana/keyboard.json b/keyboards/woodkeys/scarletbandana/keyboard.json index 439c59e38d..f6c4342efa 100644 --- a/keyboards/woodkeys/scarletbandana/keyboard.json +++ b/keyboards/woodkeys/scarletbandana/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Scarlet Bandana Version IV Mark 2", "manufacturer": "WoodKeys.click", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -31,6 +32,8 @@ "features": { "audio": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/woodkeys/scarletbandana/keymaps/default/keymap.c b/keyboards/woodkeys/scarletbandana/keymaps/default/keymap.c index 1cebaab0ed..9a96fd6f51 100644 --- a/keyboards/woodkeys/scarletbandana/keymaps/default/keymap.c +++ b/keyboards/woodkeys/scarletbandana/keymaps/default/keymap.c @@ -51,14 +51,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F9, KC_F10, KC_LCTL,KC_LGUI,KC_LALT, RAISE, KC_SPACE, LOWER, KC_RALT,KC_APP,KC_RCTL,KC_LEFT,KC_DOWN,KC_RIGHT), [_RAISE] = LAYOUT_65_xt_ansi_split_space_split_bs( - UG_NEXT, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, + RGB_MOD, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______, _______,_______,_______,_______,_______,_______), [_LOWER] = LAYOUT_65_xt_ansi_split_space_split_bs( - UG_NEXT, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, + RGB_MOD, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, @@ -149,7 +149,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released #ifdef RGBLIGHT_ENABLE - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h index 5b031c6fc1..25d390cecf 100644 --- a/keyboards/work_louder/loop/config.h +++ b/keyboards/work_louder/loop/config.h @@ -19,4 +19,20 @@ along with this program. If not, see . #define RGBLIGHT_DI_PIN E6 -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#define RGB_MATRIX_DISABLE_KEYCODES + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 70dc6cc13a..771a31d105 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -51,7 +51,8 @@ "pixel_rain": true, "pixel_flow": true, "pixel_fractal": true, - "typing_heatmap": true + "typing_heatmap": true, + "digital_rain": true }, "driver": "ws2812", "max_brightness": 120, diff --git a/keyboards/work_louder/loop/keymaps/default/keymap.c b/keyboards/work_louder/loop/keymaps/default/keymap.c index 10b34e24c0..80acd57e4a 100644 --- a/keyboards/work_louder/loop/keymaps/default/keymap.c +++ b/keyboards/work_louder/loop/keymaps/default/keymap.c @@ -18,13 +18,13 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_MUTE, KC_MPLY, RM_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, MO(1) + KC_MUTE, KC_MPLY, R_M_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, MO(1) ), [1] = LAYOUT( - QK_BOOT, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, MO(2), _______ + QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, MO(2), _______ ), [2] = LAYOUT( - QK_BOOT, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______ + QK_BOOT, _______, R_M_TOG, R_M_MOD, R_M_HUI, R_M_HUD, R_M_SAI, R_M_SAD, R_M_VAI, R_M_VAD, _______, _______ ) }; // clang-format on diff --git a/keyboards/work_louder/loop/loop.c b/keyboards/work_louder/loop/loop.c index 7880584d09..6b4af7fcb6 100644 --- a/keyboards/work_louder/loop/loop.c +++ b/keyboards/work_louder/loop/loop.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "quantum.h" +#include "loop.h" #if defined(ENCODER_ENABLE) bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/work_louder/loop/loop.h b/keyboards/work_louder/loop/loop.h new file mode 100644 index 0000000000..b2cb2410fc --- /dev/null +++ b/keyboards/work_louder/loop/loop.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Work Louder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#include "rgb_functions.h" diff --git a/keyboards/work_louder/loop/post_rules.mk b/keyboards/work_louder/loop/post_rules.mk deleted file mode 100644 index e0822c009b..0000000000 --- a/keyboards/work_louder/loop/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -SRC += rgb_functions.c diff --git a/keyboards/work_louder/loop/rules.mk b/keyboards/work_louder/loop/rules.mk new file mode 100644 index 0000000000..53c3227972 --- /dev/null +++ b/keyboards/work_louder/loop/rules.mk @@ -0,0 +1,3 @@ +SRC += rgb_functions.c + +DEFAULT_FOLDER = work_louder/loop/rev3 diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index 6748a5f595..733b226f69 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -3,11 +3,22 @@ #pragma once +#define RGB_MATRIX_DISABLE_KEYCODES + #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + #define WORK_LOUDER_LED_PIN_1 B6 #define WORK_LOUDER_LED_PIN_2 B7 #define WORK_LOUDER_LED_PIN_3 B5 - -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json index b8da74dd92..1b57ca82e8 100644 --- a/keyboards/work_louder/micro/keyboard.json +++ b/keyboards/work_louder/micro/keyboard.json @@ -5,6 +5,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -36,6 +38,7 @@ "hue": 213 }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 8, "max_brightness": 150, "saturation_steps": 8, diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c index f88ac8bb45..07ab92f7a7 100644 --- a/keyboards/work_louder/micro/micro.c +++ b/keyboards/work_louder/micro/micro.c @@ -39,9 +39,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } else if (index == 1) { if (clockwise) { - tap_code_delay(MS_WHLU, 10); + tap_code_delay(KC_WH_U, 10); } else { - tap_code_delay(MS_WHLD, 10); + tap_code_delay(KC_WH_D, 10); } } return true; diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h index 492931c559..e50f6a7e43 100644 --- a/keyboards/work_louder/nano/config.h +++ b/keyboards/work_louder/nano/config.h @@ -19,4 +19,20 @@ along with this program. If not, see . #define RGBLIGHT_DI_PIN C7 -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#define RGB_MATRIX_DISABLE_KEYCODES + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/work_louder/nano/nano.c b/keyboards/work_louder/nano/nano.c index 28db78e46d..96b633aa79 100644 --- a/keyboards/work_louder/nano/nano.c +++ b/keyboards/work_louder/nano/nano.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "quantum.h" +#include "nano.h" #if defined(ENCODER_ENABLE) bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/work_louder/nano/nano.h b/keyboards/work_louder/nano/nano.h new file mode 100644 index 0000000000..04de456eca --- /dev/null +++ b/keyboards/work_louder/nano/nano.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Drashna Jael're + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#include "rgb_functions.h" diff --git a/keyboards/work_louder/numpad/config.h b/keyboards/work_louder/numpad/config.h index 809c498dbb..f7d0039653 100644 --- a/keyboards/work_louder/numpad/config.h +++ b/keyboards/work_louder/numpad/config.h @@ -3,7 +3,23 @@ #pragma once +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define RGB_MATRIX_DISABLE_KEYCODES + #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 - -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/numpad/keyboard.json b/keyboards/work_louder/numpad/keyboard.json index fa4f3be9fe..bd615c4080 100644 --- a/keyboards/work_louder/numpad/keyboard.json +++ b/keyboards/work_louder/numpad/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -97,6 +99,7 @@ "hue": 213 }, "brightness_steps": 8, + "hue_steps": 8, "led_count": 8, "max_brightness": 120, "saturation_steps": 8, diff --git a/keyboards/work_louder/rgb_functions.c b/keyboards/work_louder/rgb_functions.c index 1ea9afc42a..bc31aab7c1 100644 --- a/keyboards/work_louder/rgb_functions.c +++ b/keyboards/work_louder/rgb_functions.c @@ -14,25 +14,65 @@ * along with this program. If not, see . */ -#ifdef RGBLIGHT_ENABLE - +#include "rgb_functions.h" +#include +#include "quantum.h" +#include "action.h" #include "rgblight.h" +#include "rgb_matrix.h" +#ifdef RGBLIGHT_ENABLE #undef WS2812_DI_PIN #define WS2812_DI_PIN RGBLIGHT_DI_PIN #define ws2812_init ws2812_rgb_init -#define ws2812_set_color ws2812_rgb_set_color -#define ws2812_set_color_all ws2812_rgb_set_color_all -#define ws2812_flush ws2812_rgb_flush -#define ws2812_leds ws2812_rgb_leds +#define ws2812_setleds ws2812_rgb_setleds #include "ws2812_bitbang.c" const rgblight_driver_t rgblight_driver = { - .init = ws2812_init, - .set_color = ws2812_set_color, - .set_color_all = ws2812_set_color_all, - .flush = ws2812_flush, + .init = ws2812_init, + .setleds = ws2812_setleds, }; #endif + +#ifdef RGB_MATRIX_ENABLE +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + + if (record->event.pressed) { + switch(keycode) { + case RGB_MATRIX_TOGGLE: // toggle rgb matrix + rgb_matrix_toggle(); + return false; + case RGB_MATRIX_MODE_INC: + rgb_matrix_step(); + return false; + case RGB_MATRIX_MODE_DEC: + rgb_matrix_step_reverse(); + return false; + case RGB_MATRIX_HUE_INC: + rgb_matrix_increase_hue(); + return false; + case RGB_MATRIX_HUE_DEC: + rgb_matrix_decrease_hue(); + return false; + case RGB_MATRIX_SAT_INC: + rgb_matrix_increase_sat(); + return false; + case RGB_MATRIX_SAT_DEC: + rgb_matrix_decrease_sat(); + return false; + case RGB_MATRIX_VAL_INC: + rgb_matrix_increase_val(); + return false; + case RGB_MATRIX_VAL_DEC: + rgb_matrix_decrease_val(); + return false; + default: + break; + } + } + return true; +} +#endif diff --git a/keyboards/work_louder/rgb_functions.h b/keyboards/work_louder/rgb_functions.h new file mode 100644 index 0000000000..20c99021fb --- /dev/null +++ b/keyboards/work_louder/rgb_functions.h @@ -0,0 +1,57 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "keycodes.h" + +#ifndef RGB_MATRIX_TOGGLE +# define RGB_MATRIX_TOGGLE QK_KB_0 +#endif +#ifndef RGB_MATRIX_MODE_INC +# define RGB_MATRIX_MODE_INC QK_KB_1 +#endif +#ifndef RGB_MATRIX_MODE_DEC +# define RGB_MATRIX_MODE_DEC QK_KB_2 +#endif +#ifndef RGB_MATRIX_HUE_INC +# define RGB_MATRIX_HUE_INC QK_KB_3 +#endif +#ifndef RGB_MATRIX_HUE_DEC +# define RGB_MATRIX_HUE_DEC QK_KB_4 +#endif +#ifndef RGB_MATRIX_SAT_INC +# define RGB_MATRIX_SAT_INC QK_KB_5 +#endif +#ifndef RGB_MATRIX_SAT_DEC +# define RGB_MATRIX_SAT_DEC QK_KB_6 +#endif +#ifndef RGB_MATRIX_VAL_INC +# define RGB_MATRIX_VAL_INC QK_KB_7 +#endif +#ifndef RGB_MATRIX_VAL_DEC +# define RGB_MATRIX_VAL_DEC QK_KB_8 +#endif + +#define R_M_TOG RGB_MATRIX_TOGGLE +#define R_M_MOD RGB_MATRIX_MODE_INC +#define R_M_RMOD RGB_MATRIX_MODE_DEC +#define R_M_HUI RGB_MATRIX_HUE_INC +#define R_M_HUD RGB_MATRIX_HUE_DEC +#define R_M_SAI RGB_MATRIX_SAT_INC +#define R_M_SAD RGB_MATRIX_SAT_DEC +#define R_M_VAI RGB_MATRIX_VAL_INC +#define R_M_VAD RGB_MATRIX_VAL_DEC diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index efd4c529cd..a643cd767d 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -21,4 +21,4 @@ along with this program. If not, see . #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 -#define RGB_MATRIX_DISABLE_SHARED_KEYCODES +#define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/work_louder/work_board/keymaps/default/keymap.c b/keyboards/work_louder/work_board/keymaps/default/keymap.c index a1e4886728..e55cd5c598 100644 --- a/keyboards/work_louder/work_board/keymaps/default/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/default/keymap.c @@ -50,8 +50,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT( - _______, QK_BOOT, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_DEL , RM_TOGG, - _______, _______, MU_NEXT, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, + _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , R_M_TOG, + _______, _______, MU_NEXT, R_M_TOG, R_M_MOD, R_M_HUI, R_M_HUD, R_M_SAI, R_M_SAD, R_M_VAI, R_M_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/work_louder/work_board/post_rules.mk b/keyboards/work_louder/work_board/post_rules.mk deleted file mode 100644 index e0822c009b..0000000000 --- a/keyboards/work_louder/work_board/post_rules.mk +++ /dev/null @@ -1 +0,0 @@ -SRC += rgb_functions.c diff --git a/keyboards/work_louder/work_board/rules.mk b/keyboards/work_louder/work_board/rules.mk new file mode 100644 index 0000000000..a4c45393c0 --- /dev/null +++ b/keyboards/work_louder/work_board/rules.mk @@ -0,0 +1,3 @@ +SRC += rgb_functions.c + +DEFAULT_FOLDER = work_louder/work_board/rev3 diff --git a/keyboards/work_louder/work_board/work_board.c b/keyboards/work_louder/work_board/work_board.c index 2c45c7a7c9..b34f31df5c 100644 --- a/keyboards/work_louder/work_board/work_board.c +++ b/keyboards/work_louder/work_board/work_board.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "quantum.h" +#include "work_board.h" #ifdef OLED_ENABLE # ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/work_louder/work_board/work_board.h b/keyboards/work_louder/work_board/work_board.h new file mode 100644 index 0000000000..04de456eca --- /dev/null +++ b/keyboards/work_louder/work_board/work_board.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Drashna Jael're + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#include "rgb_functions.h" diff --git a/keyboards/wsk/alpha9/keyboard.json b/keyboards/wsk/alpha9/keyboard.json index ff9e26b0d2..41b95130c6 100644 --- a/keyboards/wsk/alpha9/keyboard.json +++ b/keyboards/wsk/alpha9/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Alpha9", "manufacturer": "Worldspawn00", + "url": "", "maintainer": "Worldspawn00", "usb": { "vid": "0x5753", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -49,7 +52,8 @@ "ws2812": { "pin": "F4" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/g4m3ralpha/keyboard.json b/keyboards/wsk/g4m3ralpha/keyboard.json index f008a77a26..b5cdb7ce10 100644 --- a/keyboards/wsk/g4m3ralpha/keyboard.json +++ b/keyboards/wsk/g4m3ralpha/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "G4M3Ralpha", "manufacturer": "Worldspawn00", + "url": "", "maintainer": "Worldspawn00", "usb": { "vid": "0x5753", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -50,7 +53,8 @@ "rows": ["D4", "B4", "B5", "D1"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/houndstooth/keyboard.json b/keyboards/wsk/houndstooth/keyboard.json index d7596b151a..2be2b36968 100644 --- a/keyboards/wsk/houndstooth/keyboard.json +++ b/keyboards/wsk/houndstooth/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wsk/jerkin/keyboard.json b/keyboards/wsk/jerkin/keyboard.json index 4ff9701f6e..43fc8d107d 100644 --- a/keyboards/wsk/jerkin/keyboard.json +++ b/keyboards/wsk/jerkin/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true @@ -25,7 +27,8 @@ "rows": ["B3", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/kodachi50/keyboard.json b/keyboards/wsk/kodachi50/keyboard.json index d37eb965e2..3f5843fd1a 100644 --- a/keyboards/wsk/kodachi50/keyboard.json +++ b/keyboards/wsk/kodachi50/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -46,7 +48,8 @@ "rows": ["D2", "B5", "B6", "B2", "B3", "B1", "F7", "F6"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/pain27/keyboard.json b/keyboards/wsk/pain27/keyboard.json index 43a9ce5f59..a01e887e99 100644 --- a/keyboards/wsk/pain27/keyboard.json +++ b/keyboards/wsk/pain27/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -46,7 +48,8 @@ "rows": ["F4", "F5", "D0"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/sl40/keyboard.json b/keyboards/wsk/sl40/keyboard.json index 9c6752b98c..aba29855dd 100644 --- a/keyboards/wsk/sl40/keyboard.json +++ b/keyboards/wsk/sl40/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/tkl30/keyboard.json b/keyboards/wsk/tkl30/keyboard.json index 4a767c1da8..909f72d4cf 100644 --- a/keyboards/wsk/tkl30/keyboard.json +++ b/keyboards/wsk/tkl30/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wuque/creek70/keyboard.json b/keyboards/wuque/creek70/keyboard.json index 23207bf2e9..e7227ace8e 100644 --- a/keyboards/wuque/creek70/keyboard.json +++ b/keyboards/wuque/creek70/keyboard.json @@ -7,6 +7,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/ikki68/keyboard.json b/keyboards/wuque/ikki68/keyboard.json index a8ec08fd61..d666b0b5de 100644 --- a/keyboards/wuque/ikki68/keyboard.json +++ b/keyboards/wuque/ikki68/keyboard.json @@ -36,6 +36,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/mammoth20x/keyboard.json b/keyboards/wuque/mammoth20x/keyboard.json index 0626a4d4a9..6c8e252541 100644 --- a/keyboards/wuque/mammoth20x/keyboard.json +++ b/keyboards/wuque/mammoth20x/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/wuque/mammoth75x/keyboard.json b/keyboards/wuque/mammoth75x/keyboard.json index f276715960..1e0028dfe9 100644 --- a/keyboards/wuque/mammoth75x/keyboard.json +++ b/keyboards/wuque/mammoth75x/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "encoder": true, "extrakey": true, diff --git a/keyboards/wuque/nemui65/keyboard.json b/keyboards/wuque/nemui65/keyboard.json index 49c58aea06..239fe991bb 100644 --- a/keyboards/wuque/nemui65/keyboard.json +++ b/keyboards/wuque/nemui65/keyboard.json @@ -13,6 +13,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/promise87/ansi/keyboard.json b/keyboards/wuque/promise87/ansi/keyboard.json index e4a212a3d8..2c7008b646 100644 --- a/keyboards/wuque/promise87/ansi/keyboard.json +++ b/keyboards/wuque/promise87/ansi/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/wuque/promise87/wkl/keyboard.json b/keyboards/wuque/promise87/wkl/keyboard.json index b9e4396f2d..4849b238e1 100644 --- a/keyboards/wuque/promise87/wkl/keyboard.json +++ b/keyboards/wuque/promise87/wkl/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/wuque/tata80/wk/keyboard.json b/keyboards/wuque/tata80/wk/keyboard.json index a5ae56720b..957a635dcb 100644 --- a/keyboards/wuque/tata80/wk/keyboard.json +++ b/keyboards/wuque/tata80/wk/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0x2365", "pid": "0x0168", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/wuque/tata80/wkl/keyboard.json b/keyboards/wuque/tata80/wkl/keyboard.json index 3eee37ef19..4613f97f67 100644 --- a/keyboards/wuque/tata80/wkl/keyboard.json +++ b/keyboards/wuque/tata80/wkl/keyboard.json @@ -6,15 +6,13 @@ "usb": { "vid": "0x2365", "pid": "0x0169", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/x16/keyboard.json b/keyboards/x16/keyboard.json index 32c6581237..4d407e5332 100644 --- a/keyboards/x16/keyboard.json +++ b/keyboards/x16/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "x16", "manufacturer": "yinxianwei", + "url": "", "maintainer": "yinxianwei", "usb": { "vid": "0x4B50", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/x16/readme.md b/keyboards/x16/readme.md index cfe83905d7..6434af99c7 100644 --- a/keyboards/x16/readme.md +++ b/keyboards/x16/readme.md @@ -3,6 +3,7 @@ A 16 key macropad, with USB C * Keyboard Maintainer: QMK Community +* Hardware Supported: The PCBs, controllers supported * Hardware Availability: The x16 was discontinued by [x16](https://yinxianwei.github.io/x16/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/xbows/knight/keyboard.json b/keyboards/xbows/knight/keyboard.json index d7f0559370..b675ee1946 100644 --- a/keyboards/xbows/knight/keyboard.json +++ b/keyboards/xbows/knight/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KNIGHT", "manufacturer": "X-BOWS", + "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/knight/keymaps/default/keymap.c b/keyboards/xbows/knight/keymaps/default/keymap.c index 33d832f9f8..45f8afa8ff 100644 --- a/keyboards/xbows/knight/keymaps/default/keymap.c +++ b/keyboards/xbows/knight/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/knight_plus/keyboard.json b/keyboards/xbows/knight_plus/keyboard.json index 674cead21f..0d1600c614 100644 --- a/keyboards/xbows/knight_plus/keyboard.json +++ b/keyboards/xbows/knight_plus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "KNIGHT_PLUS", "manufacturer": "X-BOWS", + "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/knight_plus/keymaps/default/keymap.c b/keyboards/xbows/knight_plus/keymaps/default/keymap.c index c77980cf5b..d7b3a65672 100644 --- a/keyboards/xbows/knight_plus/keymaps/default/keymap.c +++ b/keyboards/xbows/knight_plus/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/nature/keyboard.json b/keyboards/xbows/nature/keyboard.json index 46080476ea..6e28c9de30 100644 --- a/keyboards/xbows/nature/keyboard.json +++ b/keyboards/xbows/nature/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NATURE", "manufacturer": "X-BOWS", + "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/nature/keymaps/default/keymap.c b/keyboards/xbows/nature/keymaps/default/keymap.c index edd690cdd8..4ce9eaa964 100644 --- a/keyboards/xbows/nature/keymaps/default/keymap.c +++ b/keyboards/xbows/nature/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/numpad/keyboard.json b/keyboards/xbows/numpad/keyboard.json index e2e76185ab..070cc3a288 100644 --- a/keyboards/xbows/numpad/keyboard.json +++ b/keyboards/xbows/numpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "NUMPAD", "manufacturer": "X-BOWS", + "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/numpad/keymaps/default/keymap.c b/keyboards/xbows/numpad/keymaps/default/keymap.c index 52c916114f..177478ef9f 100644 --- a/keyboards/xbows/numpad/keymaps/default/keymap.c +++ b/keyboards/xbows/numpad/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, - RM_NEXT, RM_VALU, RM_HUEU, KC_VOLD, - RM_SPDD, RM_TOGG, RM_SPDU, KC_VOLU, - KC_TRNS, RM_VALD, KC_TRNS, KC_TRNS, + RGB_MOD, RGB_VAI, RGB_HUI, KC_VOLD, + RGB_SPD, RGB_TOG, RGB_SPI, KC_VOLU, + KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/xbows/ranger/keyboard.json b/keyboards/xbows/ranger/keyboard.json index 60b7f5b892..945eaafcba 100644 --- a/keyboards/xbows/ranger/keyboard.json +++ b/keyboards/xbows/ranger/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ranger", "manufacturer": "X-BOWS", + "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", @@ -34,6 +35,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/ranger/keymaps/default/keymap.c b/keyboards/xbows/ranger/keymaps/default/keymap.c index f0e1d5c6f6..1cce103f8d 100644 --- a/keyboards/xbows/ranger/keymaps/default/keymap.c +++ b/keyboards/xbows/ranger/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/woody/keyboard.json b/keyboards/xbows/woody/keyboard.json index da403bacaf..538354507e 100644 --- a/keyboards/xbows/woody/keyboard.json +++ b/keyboards/xbows/woody/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "WOO-DY", "manufacturer": "X-BOWS", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/xbows/woody/keymaps/default/keymap.c b/keyboards/xbows/woody/keymaps/default/keymap.c index 062ac97f6c..ea2cf42e2e 100644 --- a/keyboards/xbows/woody/keymaps/default/keymap.c +++ b/keyboards/xbows/woody/keymaps/default/keymap.c @@ -9,8 +9,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, - KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, - KC_CAPS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, + KC_CAPS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xdboards/recon/config.h b/keyboards/xdboards/recon/config.h deleted file mode 100644 index 22fbc833c1..0000000000 --- a/keyboards/xdboards/recon/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2024 XD Boards -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . - */ - -#pragma once - -#define OLED_DISPLAY_128X64 diff --git a/keyboards/xdboards/recon/keyboard.json b/keyboards/xdboards/recon/keyboard.json deleted file mode 100644 index 65f3c88a32..0000000000 --- a/keyboards/xdboards/recon/keyboard.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "manufacturer": "XD Boards", - "keyboard_name": "xdboards/recon", - "maintainer": "Xanimos", - "development_board": "promicro", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "nkro": true, - "rgb_matrix": true, - "oled": true - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], - "rows": ["F4", "F5", "F6", "F7", "B1"] - }, - "url": "https://xdboards.xyz", - "tags": ["columnar", "split", "thumb cluster", "rgb", "encoder"], - "usb": { - "device_version": "1.0.0", - "pid": "0x02F7", - "vid": "0xFEED" - }, - "encoder": { - "rotary": [ - { "pin_a": "B6","pin_b": "B2" } - ] - }, - "split": { - "enabled": true, - "serial": { - "pin": "D3" - }, - "handedness": { - "pin": "D2" - }, - "transport": { - "sync": { - "layer_state": true, - "oled": true, - "matrix_state": true, - "modifiers": true - } - } - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "L01", "matrix": [0, 0], "x": 0, "y": 0.75}, - {"label": "L02", "matrix": [0, 1], "x": 1, "y": 0.75}, - {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0.25}, - {"label": "L04", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L05", "matrix": [0, 4], "x": 4, "y": 0.25}, - {"label": "L06", "matrix": [0, 5], "x": 5, "y": 0.5}, - - {"label": "R06", "matrix": [5, 5], "x": 10.5, "y": 0.5}, - {"label": "R05", "matrix": [5, 4], "x": 11.5, "y": 0.25}, - {"label": "R04", "matrix": [5, 3], "x": 12.5, "y": 0}, - {"label": "R03", "matrix": [5, 2], "x": 13.5, "y": 0.25}, - {"label": "R02", "matrix": [5, 1], "x": 14.5, "y": 0.75}, - {"label": "R01", "matrix": [5, 0], "x": 15.5, "y": 0.75}, - - {"label": "L07", "matrix": [1, 0], "x": 0, "y": 1.75}, - {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1.75}, - {"label": "L09", "matrix": [1, 2], "x": 2, "y": 1.25}, - {"label": "L10", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L11", "matrix": [1, 4], "x": 4, "y": 1.25}, - {"label": "L12", "matrix": [1, 5], "x": 5, "y": 1.5}, - - {"label": "R12", "matrix": [6, 5], "x": 10.5, "y": 1.5}, - {"label": "R11", "matrix": [6, 4], "x": 11.5, "y": 1.25}, - {"label": "R10", "matrix": [6, 3], "x": 12.5, "y": 1}, - {"label": "R09", "matrix": [6, 2], "x": 13.5, "y": 1.25}, - {"label": "R08", "matrix": [6, 1], "x": 14.5, "y": 1.75}, - {"label": "R07", "matrix": [6, 0], "x": 15.5, "y": 1.75}, - - {"label": "L13", "matrix": [2, 0], "x": 0, "y": 2.75}, - {"label": "L14", "matrix": [2, 1], "x": 1, "y": 2.75}, - {"label": "L15", "matrix": [2, 2], "x": 2, "y": 2.25}, - {"label": "L16", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L17", "matrix": [2, 4], "x": 4, "y": 2.25}, - {"label": "L18", "matrix": [2, 5], "x": 5, "y": 2.5}, - - {"label": "R18", "matrix": [7, 5], "x": 10.5, "y": 2.5}, - {"label": "R17", "matrix": [7, 4], "x": 11.5, "y": 2.25}, - {"label": "R16", "matrix": [7, 3], "x": 12.5, "y": 2}, - {"label": "R15", "matrix": [7, 2], "x": 13.5, "y": 2.25}, - {"label": "R14", "matrix": [7, 1], "x": 14.5, "y": 2.75}, - {"label": "R13", "matrix": [7, 0], "x": 15.5, "y": 2.75}, - - {"label": "L27", "encoder": 0, "matrix": [3, 0], "x": 6, "y": 2.7}, - - {"label": "R27", "encoder": 1, "matrix": [8, 0], "x": 9.5, "y": 2.7}, - - {"label": "L19", "matrix": [3, 2], "x": 4.25, "y": 3.5}, - {"label": "L20", "matrix": [3, 3], "x": 5.25, "y": 3.75}, - {"label": "L21", "matrix": [3, 4], "x": 6.25, "y": 4}, - {"label": "L22", "matrix": [3, 5], "x": 7.25, "y": 4.25}, - - {"label": "R22", "matrix": [8, 5], "x": 8, "y": 4.25}, - {"label": "R21", "matrix": [8, 4], "x": 9, "y": 4}, - {"label": "R20", "matrix": [8, 3], "x": 10, "y": 3.75}, - {"label": "R19", "matrix": [8, 2], "x": 11, "y": 3.5}, - - {"label": "L23", "matrix": [4, 2], "x": 4.25, "y": 4.5}, - {"label": "L24", "matrix": [4, 3], "x": 5.25, "y": 4.75}, - {"label": "L25", "matrix": [4, 4], "x": 6.25, "y": 5}, - {"label": "L26", "matrix": [4, 5], "x": 7.25, "y": 5.25}, - - {"label": "R26", "matrix": [9, 5], "x": 8, "y": 5.25}, - {"label": "R25", "matrix": [9, 4], "x": 9, "y": 5}, - {"label": "R24", "matrix": [9, 3], "x": 10, "y": 4.75}, - {"label": "R23", "matrix": [9, 2], "x": 11, "y": 4.5} - - ] - } - }, - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - - {"flags": 4, "matrix": [0, 0], "x": 13, "y": 16}, - {"flags": 4, "matrix": [0, 1], "x": 21, "y": 16}, - {"flags": 4, "matrix": [0, 2], "x": 30, "y": 11}, - {"flags": 4, "matrix": [0, 3], "x": 38, "y": 6}, - {"flags": 4, "matrix": [0, 4], "x": 46, "y": 11}, - {"flags": 4, "matrix": [0, 5], "x": 55, "y": 12}, - {"flags": 4, "matrix": [1, 0], "x": 13, "y": 24}, - {"flags": 4, "matrix": [1, 1], "x": 21, "y": 24}, - {"flags": 4, "matrix": [1, 2], "x": 30, "y": 19}, - {"flags": 4, "matrix": [1, 3], "x": 38, "y": 14}, - {"flags": 4, "matrix": [1, 4], "x": 46, "y": 19}, - {"flags": 4, "matrix": [1, 5], "x": 55, "y": 20}, - {"flags": 4, "matrix": [2, 0], "x": 13, "y": 32}, - {"flags": 4, "matrix": [2, 1], "x": 21, "y": 32}, - {"flags": 4, "matrix": [2, 2], "x": 30, "y": 26}, - {"flags": 4, "matrix": [2, 3], "x": 38, "y": 22}, - {"flags": 4, "matrix": [2, 4], "x": 46, "y": 27}, - {"flags": 4, "matrix": [2, 5], "x": 55, "y": 28}, - - {"flags": 4, "matrix": [3, 2], "x": 42, "y": 35}, - {"flags": 4, "matrix": [3, 3], "x": 54, "y": 37}, - {"flags": 4, "matrix": [3, 4], "x": 65, "y": 40}, - {"flags": 4, "matrix": [3, 5], "x": 76, "y": 45}, - {"flags": 4, "matrix": [4, 2], "x": 42, "y": 44}, - {"flags": 4, "matrix": [4, 3], "x": 52, "y": 45}, - {"flags": 4, "matrix": [4, 4], "x": 62, "y": 47}, - {"flags": 4, "matrix": [4, 5], "x": 71, "y": 52}, - - {"flags": 2, "x": 68, "y": 36}, - {"flags": 2, "x": 57, "y": 8}, - {"flags": 2, "x": 31, "y": 6}, - {"flags": 2, "x": 14, "y": 12}, - {"flags": 2, "x": 28, "y": 37}, - - {"flags": 4, "matrix": [5, 0], "x": 175, "y": 16}, - {"flags": 4, "matrix": [5, 1], "x": 166, "y": 16}, - {"flags": 4, "matrix": [5, 2], "x": 158, "y": 11}, - {"flags": 4, "matrix": [5, 3], "x": 149, "y": 6}, - {"flags": 4, "matrix": [5, 4], "x": 141, "y": 11}, - {"flags": 4, "matrix": [5, 5], "x": 133, "y": 12}, - {"flags": 4, "matrix": [6, 0], "x": 175, "y": 24}, - {"flags": 4, "matrix": [6, 1], "x": 166, "y": 24}, - {"flags": 4, "matrix": [6, 2], "x": 158, "y": 19}, - {"flags": 4, "matrix": [6, 3], "x": 149, "y": 14}, - {"flags": 4, "matrix": [6, 4], "x": 141, "y": 19}, - {"flags": 4, "matrix": [6, 5], "x": 133, "y": 20}, - {"flags": 4, "matrix": [7, 0], "x": 175, "y": 32}, - {"flags": 4, "matrix": [7, 1], "x": 166, "y": 32}, - {"flags": 4, "matrix": [7, 2], "x": 158, "y": 26}, - {"flags": 4, "matrix": [7, 3], "x": 149, "y": 22}, - {"flags": 4, "matrix": [7, 4], "x": 141, "y": 27}, - {"flags": 4, "matrix": [7, 5], "x": 133, "y": 28}, - - {"flags": 4, "matrix": [8, 2], "x": 146, "y": 35}, - {"flags": 4, "matrix": [8, 3], "x": 134, "y": 37}, - {"flags": 4, "matrix": [8, 4], "x": 123, "y": 40}, - {"flags": 4, "matrix": [8, 5], "x": 113, "y": 45}, - {"flags": 4, "matrix": [9, 2], "x": 146, "y": 44}, - {"flags": 4, "matrix": [9, 3], "x": 136, "y": 45}, - {"flags": 4, "matrix": [9, 4], "x": 126, "y": 47}, - {"flags": 4, "matrix": [9, 5], "x": 117, "y": 52}, - - {"flags": 2, "x": 121, "y": 36}, - {"flags": 2, "x": 130, "y": 8}, - {"flags": 2, "x": 156, "y": 6}, - {"flags": 2, "x": 172, "y": 12}, - {"flags": 2, "x": 158, "y": 37} - ], - "split_count": [31, 31], - "animations": { - "alphas_mods": true, - "solid_reactive": true - }, - "default": { - "animation": "solid_reactive", - "hue": 126 - } - } -} \ No newline at end of file diff --git a/keyboards/xdboards/recon/keymaps/default/keymap.c b/keyboards/xdboards/recon/keymaps/default/keymap.c deleted file mode 100644 index 841f8b0b6a..0000000000 --- a/keyboards/xdboards/recon/keymaps/default/keymap.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright 2024 XD Boards -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers { - _QWERTY, - _SYMBOLS, - _NUMBERS, - _FUNCTION, - _RGB -}; - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ ESC │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ Bsp │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ Tab │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ CTL │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │Shift│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Shift│ - * └─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┐ ┌─────┐ └─────┴─────┴─────┴─────┴─────┴─────┘ - * ┌─────┐ │Mute │ │P Scr│ ┌─────┐ - * │ ALT ├─────┐ └─────┘ └─────┘ ┌─────┤ Alt │ - * ├─────┤ ( ├─────┐ ┌─────┤ ) ├─────┤ - * │ GUI ├─────┤ { ├─────┐ ┌─────┤ } ├─────┤ App │ - * └─────┤Space├─────┤ [ │ │ ] ├─────┤ Ent ├─────┘ - * └─────┤ Fnc ├─────┤ ├─────┤ Sym ├─────┘ - * └─────┤Qwert│ │ Num ├─────┘ - * └─────┘ └─────┘ - */ - [_QWERTY] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_MUTE, KC_PSCR, - KC_LALT, KC_LPRN, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, KC_RPRN, KC_RALT, - KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY), TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP - ), - /* - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ ` │ ! │ @ │ # │ $ │ % │ │ + │ " │ ' │ | │ \ │ Bsp │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ Tab │ ^ │ & │ * │ ( │ ) │ │ = │ < │ > │ : │ ; │ Ctl │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │Shift│ _ │ [ │ ] │ { │ } │ │ - │ ~ │ , │ . │ ? │Shift│ - * └─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┐ ┌─────┐ └─────┴─────┴─────┴─────┴─────┴─────┘ - * ┌─────┐ │Mute │ │P Scr│ ┌─────┐ - * │ ALT ├─────┐ └─────┘ └─────┘ ┌─────┤ Alt │ - * ├─────┤ ( ├─────┐ ┌─────┤ ) ├─────┤ - * │ GUI ├─────┤ { ├─────┐ ┌─────┤ } ├─────┤ App │ - * └─────┤Space├─────┤ [ │ │ ] ├─────┤ Ent ├─────┘ - * └─────┤ Fnc ├─────┤ ├─────┤ Sym ├─────┘ - * └─────┤Qwert│ │ Num ├─────┘ - * └─────┘ └─────┘ - */ - [_SYMBOLS] = LAYOUT( - KC_GRAVE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_DQUO, KC_QUOTE,KC_PIPE, KC_BSLS, KC_BSPC, - KC_TAB, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQUAL,KC_LT, KC_GT, KC_COLN, KC_SCLN, KC_RCTL, - KC_LSFT, KC_UNDS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_MINUS,KC_TILD, KC_COMM, KC_DOT, KC_QUES, KC_NUM, - KC_MUTE, KC_PSCR, - KC_LALT, KC_LPRN, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, KC_RPRN, KC_RALT, - KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY), TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP - ), - /* - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ │ + │ 7 │ 8 │ 9 │ * │ Bsp │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ Ctl │ 6 │ 7 │ 8 │ 9 │ 0 │ │ = │ 4 │ 5 │ 6 │ \ │ : │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │Shift│ │ │ │ │ │ │ - │ 1 │ 2 │ 3 │ / │Nm Lk│ - * └─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┐ ┌─────┐ └─────┴─────┴─────┴─────┴─────┴─────┘ - * ┌─────┐ │Mute │ │P Scr│ ┌─────┐ - * │ ALT ├─────┐ └─────┘ └─────┘ ┌─────┤ 0 │ - * ├─────┤ ├─────┐ ┌─────┤ . ├─────┤ - * │ GUI ├─────┤ ├─────┐ ┌─────┤ , ├─────┤ App │ - * └─────┤Space├─────┤ │ │ ├─────┤ Ent ├─────┘ - * └─────┤ Fnc ├─────┤ ├─────┤ Sym ├─────┘ - * └─────┤Qwert│ │ Num ├─────┘ - * └─────┘ └─────┘ - */ - [_NUMBERS] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_BSPC, - KC_LCTL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_BSLS, KC_COLN, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_NUM, - KC_MUTE, KC_PSCR, - KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PDOT, KC_P0, - KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY), TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP - ), - /* - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │Caps │ │ │ ↑ │ │ │ │ Ins │ Home│Pg Up│Pause│ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │Shift│ │ ← │ ↓ │ → │ │ │ Del │ End │Pg Dn│ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┐ ┌─────┐ └─────┴─────┴─────┴─────┴─────┴─────┘ - * ┌─────┐ │Mute │ │P Scr│ ┌─────┐ - * │ ALT ├─────┐ └─────┘ └─────┘ ┌─────┤ 0 │ - * ├─────┤ ├─────┐ ┌─────┤ . ├─────┤ - * │ GUI ├─────┤ ├─────┐ ┌─────┤ ├─────┤ App │ - * └─────┤Space├─────┤ │ │ ├─────┤ Ent ├─────┘ - * └─────┤ RGB ├─────┤ ├─────┤ Sym ├─────┘ - * └─────┤Qwert│ │ Num ├─────┘ - * └─────┘ └─────┘ - */ - [_FUNCTION] = 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_CAPS, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_INS, KC_HOME, KC_PGUP, KC_PAUS, KC_NO, KC_NO, - KC_LSFT, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_DEL, KC_END, KC_PGDN, KC_NO, KC_NO, KC_RSFT, - KC_MUTE, KC_PSCR, - KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_0, - KC_LGUI, KC_SPC,MO(_RGB),TO(_QWERTY), TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP - ), -/* - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │Mode↑│Hue ↑│Sat ↑│Val ↑│Spd ↑│ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │OnOff│Mode↓│Hue ↓│Sat ↓│Val ↓│Spd ↓│ │ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┐ ┌─────┐ └─────┴─────┴─────┴─────┴─────┴─────┘ - * ┌─────┐ │ │ │ │ ┌─────┐ - * │ ├─────┐ └─────┘ └─────┘ ┌─────┤ │ - * ├─────┤ ├─────┐ ┌─────┤ ├─────┤ - * │ ├─────┤ ├─────┐ ┌─────┤ ├─────┤ │ - * └─────┤ ├─────┤ │ │ ├─────┤ ├─────┘ - * └─────┤ ├─────┤ ├─────┤ ├─────┘ - * └─────┤ │ │ ├─────┘ - * └─────┘ └─────┘ - */ - [_RGB] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RM_TOGG, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, - KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO - ) -}; -// clang-format on diff --git a/keyboards/xdboards/recon/post_config.h b/keyboards/xdboards/recon/post_config.h deleted file mode 100644 index 9e4950e04a..0000000000 --- a/keyboards/xdboards/recon/post_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2024 XD Boards -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . - */ - -#pragma once - -#ifdef USE_SEA_PICRO_RGB_PIN - // Dedicated 5V RGB signal pin on sea-picro -# define WS2812_DI_PIN 25U -#else -# define WS2812_DI_PIN B3 -#endif \ No newline at end of file diff --git a/keyboards/xdboards/recon/post_rules.mk b/keyboards/xdboards/recon/post_rules.mk deleted file mode 100644 index 8b9382b32a..0000000000 --- a/keyboards/xdboards/recon/post_rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(strip $(USE_SEA_PICRO_RGB_PIN)), yes) - OPT_DEFS += -DUSE_SEA_PICRO_RGB_PIN -endif \ No newline at end of file diff --git a/keyboards/xdboards/recon/readme.md b/keyboards/xdboards/recon/readme.md deleted file mode 100644 index 49dbddbbfb..0000000000 --- a/keyboards/xdboards/recon/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# xdboards/recon - -![xdboards/recon](https://imgur.com/a/HcjT4yq) - -A split low profile keyboard with hotswap sockets that is built around the Sea-Picro microcontroller for it's dedicated RGB pin. - -* Keyboard Maintainer: [Daniel Weeks](https://github.com/Xanimos) -* Hardware Supported: Recon PCB, Sea-Picro, backwards compatibility with ProMicro pin layout. -* Hardware Availability: [xdboards.xyz shop](https://www.xdboards.xyz) - -Make example for this keyboard (after setting up your build environment): - - make xdboards/recon:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Physical reset button**: Briefly press the button on the side of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Boot Magic**: Hold down the boot magic key while plugging in the USB cable - -## Setup for Sea-Picro microcontrollers - -To take advantage of the dedicated 5v RGB pin on the sea-picro you must create your keymap -and then add a `rules.mk` file and copy and paste the following: -``` -CONVERT_TO = rp2040_ce -USE_SEA_PICRO_RGB_PIN = yes -``` - -If you do not want to use the dedicated 5v RGB header then follow the Setup for non Sea-Picro microcontrollers. - -## Setup for non Sea-Picro microcontrollers - -Solder the "Pro-Micro Compatibility" jumper on the bottom of both boards. - -In your keymap directory: - - add/modify a `rules.mk` file - - Remove or set `CONVERT_TO` to desired converter see [QMK Documentation](https://docs.qmk.fm/#/feature_converters) - - Remove or set `USE_SEA_PICRO_RGB_PIN` to `no` - - -## Setup for Underglow rgb only - - -Solder the "Per-Key RGB Skip" jumper on the bottom of both boards. Do not install per key RGBs. - -In your keymap directory: - - add/modify a `config.h` file and insert - ``` - #define RGB_MATRIX_SPLIT { 5, 5 } - #define RGB_MATRIX_LED_COUNT 10 - ``` - \ No newline at end of file diff --git a/keyboards/xdboards/recon/recon.c b/keyboards/xdboards/recon/recon.c deleted file mode 100644 index 823f3df7bf..0000000000 --- a/keyboards/xdboards/recon/recon.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Copyright 2024 XD Boards -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (is_keyboard_master()) { - // Host Keyboard Layer Status - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state | default_layer_state)) { - case 0: - oled_write_P(PSTR("QWERTY\n"), false); - break; - case 1: - oled_write_P(PSTR("Symbols\n"), false); - break; - case 2: - oled_write_P(PSTR("Numbers\n"), false); - break; - case 3: - oled_write_P(PSTR("Function\n"), false); - break; - case 4: - oled_write_P(PSTR("RGB\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - } - // Host Keyboard LED Status - led_t led_usb_state = host_keyboard_led_state(); - oled_write_P(PSTR("CAPSLCK"), led_usb_state.caps_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("NUMLCK"), led_usb_state.num_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("SCRLCK"), led_usb_state.scroll_lock); - oled_write_P(PSTR("\n"), false); - - oled_write_P(PSTR("\n"), false); - - static const char PROGMEM qmk_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - - oled_write_P(qmk_logo, false); - - } else { - // clang-format off - static const char PROGMEM recon_logo[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,240,240,248,252,124,126, 62, 62, 31, 31, 31, 0, 0, 0,255,255,255, 0, 0, 31, 31, 31, 62, 62, 62,124,252,248,248,240,224,192,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128,224,248,252,255,127, 31, 15, 7, 3, 1, 0, 0, 0, 0,128,192,224,224,240,240,240,115,115,115,240,240,224,224,192,192,128, 0, 0, 0, 0, 1, 3, 7, 15, 63,255,254,252,240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192,192,192,192,192,192,192,204,207,207,207,207,193,192,192,192,192, 0, 0,224,248,254,255, 15, 7, 3, 1, 0,192,224,224,224,224,192, 0, 1, 1, 3, 7, 63,255,252,240, 0, 0,192,192,192,192,192,199,207,207,207,207,192,192,192,192,192,192,192,128, 0,254,254,254,254,254, 0,134,254,254,252,124, 48, 0, 0,254,254,254,254,254,252,134,230,222, 62, 0,224,248,252,252,254, 6, 2, 6, 14, 62,126, 0,224,248,252,254,254, 6, 6,254,254,252,248,240, 0, 6,238,254,126,254,254,252,240,224,134,254, 14, 6, 0, - 3, 3, 3, 3, 3, 3, 3, 51,243,243,243,243,131, 3, 3, 3, 3, 0, 0, 7, 31,127,255,240,224,192,128, 0, 1, 7, 7, 7, 7, 3, 0,128,128,192,224,252,255, 63, 15, 0, 0, 3, 3, 3, 3, 3,227,243,243,243,243, 3, 3, 3, 3, 3, 3, 3, 1, 64,127,127,127,127,127, 97, 3,127,127,127,126,120, 48, 0,127,127,127,127,127, 63, 97,103,119,124, 48, 15, 31, 63,127,127, 96, 64, 96, 96, 48, 24, 0, 15, 31, 63,127,127, 64, 64,127,127, 63, 63, 15, 0, 64,127,127, 96, 1, 7, 15, 63,127,127,127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 31, 63,255,254,248,240,224,192,128, 0, 0, 0, 0, 1, 3, 7, 7, 7, 15, 15,207,206,207, 15, 15, 7, 7, 3, 3, 1, 0, 0, 0, 0,128,192,224,248,252,255,127, 63, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 15, 15, 31, 63, 62,126,124,124,248,248,248, 0, 0, 0,255,255,255, 0, 0,248,248,248,124,124,124, 62, 63, 31, 15, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,127,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - // clang-format on - oled_write_raw_P(recon_logo, sizeof(recon_logo)); - } - return false; -} -#endif -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } - - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - // Page up/Page down - if (clockwise) { -#ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLU); -#else - tap_code(KC_PGUP); -#endif - } else { -#ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLD); -#else - tap_code(KC_PGDN); -#endif - } - } - return true; -} -#endif \ No newline at end of file diff --git a/keyboards/xelus/akis/keyboard.json b/keyboards/xelus/akis/keyboard.json index 25b4f958d7..da072b6379 100644 --- a/keyboards/xelus/akis/keyboard.json +++ b/keyboards/xelus/akis/keyboard.json @@ -34,6 +34,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/xelus/dawn60/info.json b/keyboards/xelus/dawn60/info.json index 2eca36e46c..aafac25e05 100644 --- a/keyboards/xelus/dawn60/info.json +++ b/keyboards/xelus/dawn60/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "Dawn60", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -16,7 +17,6 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT_60_all": "LAYOUT_all", - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_all": "LAYOUT_all" } } diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index 7ff2294ddd..e64b0895fa 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -42,7 +42,7 @@ #define RGB_BACKLIGHT_DAWN60 //RGB Underglow defines -#define WS2812_LED_COUNT 20 +#define WS2812_LED_TOTAL 20 #define RGB_UNDERGLOW_ALPHA_TOP_START 0 #define RGB_UNDERGLOW_ALPHA_TOP_END 6 diff --git a/keyboards/xelus/dawn60/rev1/keyboard.json b/keyboards/xelus/dawn60/rev1/keyboard.json index a865ac3119..bfdaf26e76 100644 --- a/keyboards/xelus/dawn60/rev1/keyboard.json +++ b/keyboards/xelus/dawn60/rev1/keyboard.json @@ -85,7 +85,7 @@ {"matrix": [4, 13], "x": 14, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index 12f0dad8df..b54fcaee2a 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -16,14 +16,14 @@ #pragma once //RGB Underglow defines -#define WS2812_LED_COUNT 20 +#define WS2812_LED_TOTAL 20 //RGB Matrix defines #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_LED_COUNT 64 -#define RGB_MATRIX_LED_COUNT (IS31FL3731_LED_COUNT + WS2812_LED_COUNT) +#define RGB_MATRIX_LED_COUNT (IS31FL3731_LED_COUNT + WS2812_LED_TOTAL) // enable/disable LEDs based on layout // switch between split backspace (1) or normal backspace(0) diff --git a/keyboards/xelus/dawn60/rev1_qmk/keyboard.json b/keyboards/xelus/dawn60/rev1_qmk/keyboard.json index 0045879a1f..7c3aa607df 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/keyboard.json +++ b/keyboards/xelus/dawn60/rev1_qmk/keyboard.json @@ -139,7 +139,7 @@ {"matrix": [4, 13], "x": 14, "y": 4} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index 746c68950b..a153a7cf83 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -23,6 +23,8 @@ #include "ws2812.h" #ifdef RGB_MATRIX_ENABLE +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -159,20 +161,26 @@ static void init(void) { static void flush(void) { is31fl3731_update_pwm_buffers(0); is31fl3731_update_pwm_buffers(1); - ws2812_flush(); + ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); } static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3731_LED_COUNT) { is31fl3731_set_color(index, red, green, blue); } else { - ws2812_set_color(index - IS31FL3731_LED_COUNT, red, green, blue); + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].b = blue; } } static void set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3731_set_color_all( red, green, blue ); - ws2812_set_color_all( red, green, blue ); + for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { + rgb_matrix_ws2812_array[i].r = red; + rgb_matrix_ws2812_array[i].g = green; + rgb_matrix_ws2812_array[i].b = blue; + } } diff --git a/keyboards/xelus/dharma/keyboard.json b/keyboards/xelus/dharma/keyboard.json index 373db3f84e..8d6b746527 100644 --- a/keyboards/xelus/dharma/keyboard.json +++ b/keyboards/xelus/dharma/keyboard.json @@ -1,19 +1,18 @@ { "keyboard_name": "Dharma", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", "pid": "0xDAAA", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/la_plus/keyboard.json b/keyboards/xelus/la_plus/keyboard.json index 78e16d59dc..902364471f 100644 --- a/keyboards/xelus/la_plus/keyboard.json +++ b/keyboards/xelus/la_plus/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MechaMaker La+", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/la_plus/rgb_matrix_kb.inc b/keyboards/xelus/la_plus/rgb_matrix_kb.inc index 93d52ec9d0..aee484cdb8 100644 --- a/keyboards/xelus/la_plus/rgb_matrix_kb.inc +++ b/keyboards/xelus/la_plus/rgb_matrix_kb.inc @@ -13,8 +13,8 @@ RGB_MATRIX_EFFECT(startup_animation_solid) static void startup_animation_setleds(effect_params_t* params, bool dots) { uint8_t factor = 5; - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); if (dots) { rgb_matrix_set_color_all(0, 0, 0); } @@ -31,7 +31,7 @@ static void startup_animation_setleds(effect_params_t* params, bool dots) { } else if (num == 0 || num == 1 || num == 2) { return; } else if (num >= 22) { - eeconfig_read_rgb_matrix(&rgb_matrix_config); + eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } diff --git a/keyboards/xelus/ninjin/keyboard.json b/keyboards/xelus/ninjin/keyboard.json index cf601d8a80..2e7b1640df 100644 --- a/keyboards/xelus/ninjin/keyboard.json +++ b/keyboards/xelus/ninjin/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ninjin", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/pachi/mini_32u4/keyboard.json b/keyboards/xelus/pachi/mini_32u4/keyboard.json index 2156e10101..590b32de6b 100644 --- a/keyboards/xelus/pachi/mini_32u4/keyboard.json +++ b/keyboards/xelus/pachi/mini_32u4/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pachi Mini", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/pachi/rev1/keyboard.json b/keyboards/xelus/pachi/rev1/keyboard.json index 84e0fee39a..98b59c8641 100644 --- a/keyboards/xelus/pachi/rev1/keyboard.json +++ b/keyboards/xelus/pachi/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pachi Rev 1", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/pachi/rgb/info.json b/keyboards/xelus/pachi/rgb/info.json index 20c895f4bc..9bf3ca04ef 100644 --- a/keyboards/xelus/pachi/rgb/info.json +++ b/keyboards/xelus/pachi/rgb/info.json @@ -4,6 +4,7 @@ }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c index 8031a750d7..3f41f8ca40 100644 --- a/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c +++ b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c @@ -27,9 +27,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi_tsangan( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, RM_TOGG, RM_HUEU, RM_SATU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, RM_HUED, RM_SATD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , RGB_TOG, RGB_HUI, RGB_SAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUD, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) }; diff --git a/keyboards/xelus/pachi/rgb/rev1/keyboard.json b/keyboards/xelus/pachi/rgb/rev1/keyboard.json index 59d335d6e7..fe88e695be 100644 --- a/keyboards/xelus/pachi/rgb/rev1/keyboard.json +++ b/keyboards/xelus/pachi/rgb/rev1/keyboard.json @@ -1,16 +1,13 @@ { "keyboard_name": "Pachi RGB Rev 1", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", "pid": "0x5052", - "device_version": "0.0.1" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.0.1", + "force_nkro": true }, "rgb_matrix": { "animations": { diff --git a/keyboards/xelus/pachi/rgb/rev2/keyboard.json b/keyboards/xelus/pachi/rgb/rev2/keyboard.json index 8d97dfe49b..ea712b78d8 100644 --- a/keyboards/xelus/pachi/rgb/rev2/keyboard.json +++ b/keyboards/xelus/pachi/rgb/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Pachi RGB Rev 2", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/rs108/board.h b/keyboards/xelus/rs108/board.h deleted file mode 100644 index cce4af40f9..0000000000 --- a/keyboards/xelus/rs108/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Harrison Chan (Xelus) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h index 883ed2b9aa..3d3bc49228 100644 --- a/keyboards/xelus/rs108/config.h +++ b/keyboards/xelus/rs108/config.h @@ -28,3 +28,6 @@ // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +// HSE CLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/rs108/keyboard.json b/keyboards/xelus/rs108/keyboard.json index b1964e0577..12ffbb3fdc 100644 --- a/keyboards/xelus/rs108/keyboard.json +++ b/keyboards/xelus/rs108/keyboard.json @@ -1,20 +1,17 @@ { "keyboard_name": "RS108", "manufacturer": "Xelus", + "url": "", "maintainer": "xelus22", "usb": { "vid": "0x5845", "pid": "0x5208", "device_version": "0.0.2", + "force_nkro": true, "shared_endpoint": { "keyboard": true } }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, "console": true, diff --git a/keyboards/xelus/rs60/info.json b/keyboards/xelus/rs60/info.json index a62157826e..c1771427f1 100644 --- a/keyboards/xelus/rs60/info.json +++ b/keyboards/xelus/rs60/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "RS60", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -12,13 +13,5 @@ "resync": true } }, - "community_layouts": [ - "60_ansi", - "60_ansi_split_bs_rshift", - "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift" - ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - } + "community_layouts": ["60_ansi_split_bs_rshift", "60_ansi", "60_ansi_tsangan", "60_tsangan_hhkb"] } diff --git a/keyboards/xelus/rs60/rev1/keyboard.json b/keyboards/xelus/rs60/rev1/keyboard.json index c8a1afa790..df872967fb 100644 --- a/keyboards/xelus/rs60/rev1/keyboard.json +++ b/keyboards/xelus/rs60/rev1/keyboard.json @@ -1,14 +1,11 @@ { "usb": { - "device_version": "0.1.0" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "0.1.0", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -234,7 +231,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/xelus/rs60/rev2_0/board.h b/keyboards/xelus/rs60/rev2_0/board.h deleted file mode 100644 index cce4af40f9..0000000000 --- a/keyboards/xelus/rs60/rev2_0/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Harrison Chan (Xelus) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h index 883ed2b9aa..3d3bc49228 100644 --- a/keyboards/xelus/rs60/rev2_0/config.h +++ b/keyboards/xelus/rs60/rev2_0/config.h @@ -28,3 +28,6 @@ // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +// HSE CLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/rs60/rev2_0/keyboard.json b/keyboards/xelus/rs60/rev2_0/keyboard.json index 1ec1e71d42..9cb7b24043 100644 --- a/keyboards/xelus/rs60/rev2_0/keyboard.json +++ b/keyboards/xelus/rs60/rev2_0/keyboard.json @@ -1,17 +1,14 @@ { "usb": { "device_version": "0.2.0", + "force_nkro": true, "shared_endpoint": { "keyboard": true } }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -239,7 +236,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/xelus/rs60/rev2_1/keyboard.json b/keyboards/xelus/rs60/rev2_1/keyboard.json index 86f3c2fa3d..d7e56fe1cf 100644 --- a/keyboards/xelus/rs60/rev2_1/keyboard.json +++ b/keyboards/xelus/rs60/rev2_1/keyboard.json @@ -1,17 +1,14 @@ { "usb": { "device_version": "0.2.1", + "force_nkro": true, "shared_endpoint": { "keyboard": true } }, - "host": { - "default": { - "nkro": true - } - }, "features": { "bootmagic": true, + "command": false, "console": true, "extrakey": true, "mousekey": true, @@ -242,7 +239,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/xelus/snap96/keyboard.json b/keyboards/xelus/snap96/keyboard.json index eb0538eff4..0be9968c5a 100644 --- a/keyboards/xelus/snap96/keyboard.json +++ b/keyboards/xelus/snap96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Snap96", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/trinityxttkl/keyboard.json b/keyboards/xelus/trinityxttkl/keyboard.json index c650626e4b..eea94c5979 100644 --- a/keyboards/xelus/trinityxttkl/keyboard.json +++ b/keyboards/xelus/trinityxttkl/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Trinity XT TKL", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev1/keyboard.json b/keyboards/xelus/valor/rev1/keyboard.json index cb69b0eef2..5b5695f34b 100644 --- a/keyboards/xelus/valor/rev1/keyboard.json +++ b/keyboards/xelus/valor/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Valor Rev1", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", @@ -31,6 +32,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xelus/valor/rev2/keyboard.json b/keyboards/xelus/valor/rev2/keyboard.json index 451eeb99ff..21de5fb4a2 100644 --- a/keyboards/xelus/valor/rev2/keyboard.json +++ b/keyboards/xelus/valor/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Valor Rev2", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c index b51d9d5d3e..af6823a5a4 100644 --- a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c +++ b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( - RM_TOGG, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboards/xelus/valor/rev3/keyboard.json b/keyboards/xelus/valor/rev3/keyboard.json deleted file mode 100644 index 002cdeff5c..0000000000 --- a/keyboards/xelus/valor/rev3/keyboard.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "manufacturer": "Xelus", - "keyboard_name": "Valor Rev3", - "maintainer": "Xelus22", - "bootloader": "atmel-dfu", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "matrix_pins": { - "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], - "rows": ["B1", "B2", "C7", "C6", "B6"] - }, - "processor": "atmega32u4", - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "rgblight": { - "default": { - "animation": "rainbow_swirl" - }, - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "rgb_test": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "led_count": 32, - "max_brightness": 200, - "saturation_steps": 8 - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x5652", - "vid": "0x5845" - }, - "ws2812": { - "pin": "B0" - }, - "community_layouts": ["alice_split_bs"], - "layouts": { - "LAYOUT_alice_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [0, 8], "x": 10.25, "y": 0}, - {"matrix": [0, 9], "x": 11.25, "y": 0}, - {"matrix": [0, 10], "x": 12.25, "y": 0}, - {"matrix": [0, 11], "x": 13.25, "y": 0}, - {"matrix": [0, 12], "x": 14.25, "y": 0}, - {"matrix": [0, 13], "x": 15.25, "y": 0}, - {"matrix": [0, 14], "x": 16.25, "y": 0}, - {"matrix": [2, 14], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 2.75, "y": 1}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 9.75, "y": 1}, - {"matrix": [1, 8], "x": 10.75, "y": 1}, - {"matrix": [1, 9], "x": 11.75, "y": 1}, - {"matrix": [1, 10], "x": 12.75, "y": 1}, - {"matrix": [1, 11], "x": 13.75, "y": 1}, - {"matrix": [1, 12], "x": 14.75, "y": 1}, - {"matrix": [1, 13], "x": 15.75, "y": 1}, - {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 3, "y": 2}, - {"matrix": [2, 3], "x": 4, "y": 2}, - {"matrix": [2, 4], "x": 5, "y": 2}, - {"matrix": [2, 5], "x": 6, "y": 2}, - {"matrix": [2, 6], "x": 7, "y": 2}, - {"matrix": [2, 7], "x": 10, "y": 2}, - {"matrix": [2, 8], "x": 11, "y": 2}, - {"matrix": [2, 9], "x": 12, "y": 2}, - {"matrix": [2, 10], "x": 13, "y": 2}, - {"matrix": [2, 11], "x": 14, "y": 2}, - {"matrix": [2, 12], "x": 15, "y": 2}, - {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.5, "y": 3}, - {"matrix": [3, 3], "x": 4.5, "y": 3}, - {"matrix": [3, 4], "x": 5.5, "y": 3}, - {"matrix": [3, 5], "x": 6.5, "y": 3}, - {"matrix": [3, 6], "x": 7.5, "y": 3}, - {"matrix": [3, 7], "x": 9.5, "y": 3}, - {"matrix": [3, 8], "x": 10.5, "y": 3}, - {"matrix": [3, 9], "x": 11.5, "y": 3}, - {"matrix": [3, 10], "x": 12.5, "y": 3}, - {"matrix": [3, 11], "x": 13.5, "y": 3}, - {"matrix": [3, 12], "x": 14.5, "y": 3}, - {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 17.25, "y": 3}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, - {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, - {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, - {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, - {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, - {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, - {"matrix": [4, 13], "x": 16.75, "y": 4, "w": 1.5} - ] - } - } -} diff --git a/keyboards/xelus/valor/rev3/keymaps/default/keymap.c b/keyboards/xelus/valor/rev3/keymaps/default/keymap.c deleted file mode 100644 index f663bc9589..0000000000 --- a/keyboards/xelus/valor/rev3/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2023 Harrison Chan (Xelus) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_alice_split_bs( - KC_ESC, 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_BSPC, - KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, - KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL - ), - - [1] = LAYOUT_alice_split_bs( - UG_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/xelus/valor/rev3/readme.md b/keyboards/xelus/valor/rev3/readme.md deleted file mode 100644 index 63b938003e..0000000000 --- a/keyboards/xelus/valor/rev3/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Valor Rev 3 - -An Alice replacement keyboard PCB. - -* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) -* Hardware Supported: Valor Rev 3 -* Hardware Availability: Custom keyboard group buys - -Make example for this keyboard (after setting up your build environment): - - make xelus/valor/rev3:default - -Flashing example for this keyboard: - - make xelus/valor/rev3: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 top left key and plug in the keyboard -* **Physical Reset**: The AVR ISP is exposed. Short the RST pad with GND. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/xelus/valor_frl_tkl/info.json b/keyboards/xelus/valor_frl_tkl/info.json index 9c909634f7..a0b7a70a89 100644 --- a/keyboards/xelus/valor_frl_tkl/info.json +++ b/keyboards/xelus/valor_frl_tkl/info.json @@ -1,5 +1,6 @@ { "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/board.h b/keyboards/xelus/valor_frl_tkl/rev2_0/board.h deleted file mode 100644 index cce4af40f9..0000000000 --- a/keyboards/xelus/valor_frl_tkl/rev2_0/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Harrison Chan (Xelus) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/config.h b/keyboards/xelus/valor_frl_tkl/rev2_0/config.h new file mode 100644 index 0000000000..b085b99d88 --- /dev/null +++ b/keyboards/xelus/valor_frl_tkl/rev2_0/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json b/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json index 17e3191da0..36db1d4398 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json +++ b/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/board.h b/keyboards/xelus/valor_frl_tkl/rev2_1/board.h deleted file mode 100644 index cce4af40f9..0000000000 --- a/keyboards/xelus/valor_frl_tkl/rev2_1/board.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Harrison Chan (Xelus) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include_next - -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/config.h b/keyboards/xelus/valor_frl_tkl/rev2_1/config.h new file mode 100644 index 0000000000..b085b99d88 --- /dev/null +++ b/keyboards/xelus/valor_frl_tkl/rev2_1/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json b/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json index 378511474d..376d73a429 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json +++ b/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json @@ -8,6 +8,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/xs108/keyboard.json b/keyboards/xelus/xs108/keyboard.json index d4a022ce7f..14d442d197 100644 --- a/keyboards/xelus/xs108/keyboard.json +++ b/keyboards/xelus/xs108/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XS108", "manufacturer": "Xelus", + "url": "", "maintainer": "xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/xs60/hotswap/keyboard.json b/keyboards/xelus/xs60/hotswap/keyboard.json index 3cceb144ae..45a5e57542 100644 --- a/keyboards/xelus/xs60/hotswap/keyboard.json +++ b/keyboards/xelus/xs60/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XS60 Hotswap", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/xs60/soldered/keyboard.json b/keyboards/xelus/xs60/soldered/keyboard.json index 8dace88ce8..41af87ba7c 100644 --- a/keyboards/xelus/xs60/soldered/keyboard.json +++ b/keyboards/xelus/xs60/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XS60 Soldered", "manufacturer": "Xelus", + "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xenon/keyboard.json b/keyboards/xenon/keyboard.json index 72d2a5b0d8..0229f73ebd 100644 --- a/keyboards/xenon/keyboard.json +++ b/keyboards/xenon/keyboard.json @@ -39,7 +39,8 @@ "pin": "D2" } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/xiaomi/mk02/keyboard.json b/keyboards/xiaomi/mk02/keyboard.json index 60326a335b..28d5d8a17d 100644 --- a/keyboards/xiaomi/mk02/keyboard.json +++ b/keyboards/xiaomi/mk02/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "MK02", "manufacturer": "Xiaomi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/config.h b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/config.h new file mode 100644 index 0000000000..f478baf3b3 --- /dev/null +++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 elmo-space + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +/*enable layers*/ +#undef NO_ACTION_LAYER + +/* increase tap duration (spotify doesn't like very short taps)*/ +#define TAP_CODE_DELAY 100 diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/keymap.c b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/keymap.c new file mode 100644 index 0000000000..d74678d76a --- /dev/null +++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/keymap.c @@ -0,0 +1,174 @@ +/* Copyright 2020 elmo-space + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "rgblite.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FUNC, +}; + +// set your keycodes here +#define layer1_left KC_PAUS +#define layer1_right KC_MPLY +#define layer2_left KC_MPRV +#define layer2_right KC_MNXT + + +enum custom_keycodes { + LEFT1 = SAFE_RANGE, + RIGHT1, + LEFT2, + RIGHT2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + LEFT1, RIGHT1 + ), + [_FUNC] = LAYOUT( + LEFT2, RIGHT2 + ) +}; + +static bool key1_down = false; +static bool key2_down = false; +static char layer_switched = 0; // this prevents the individual keys getting triggered after a layerchange + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { + case LEFT1: + if (record->event.pressed) + { + if (key2_down) + { + layer_on(1); + layer_switched = 2; + return false; + break; + } + key1_down = true; + } + else { + if (layer_switched > 0) { + --layer_switched; + key1_down = false; + } + else { + tap_code(layer1_left); + key1_down = false; + } + } + return false; + break; + case RIGHT1: + if (record->event.pressed) + { + if (key1_down) + { + layer_on(1); + layer_switched = 2; + return false; + break; + } + key2_down = true; + } + else { + if (layer_switched > 0) { + --layer_switched; + key2_down = false; + } + else { + tap_code(layer1_right); + key2_down = false; + } + } + return false; + break; + case LEFT2: + if (record->event.pressed) + { + if (key2_down) + { + layer_off(1); + layer_switched = 2; + return false; + break; + } + key1_down = true; + } + else { + if (layer_switched > 0) { + --layer_switched; + key1_down = false; + } + else { + tap_code(layer2_left); + key1_down = false; + } + } + return false; + break; + case RIGHT2: + if (record->event.pressed) + { + if (key1_down) + { + layer_off(1); + layer_switched = 2; + return false; + break; + } + key2_down = true; + } + else { + if (layer_switched > 0) { + --layer_switched; + key2_down = false; + } + else { + tap_code(layer2_right); + key2_down = false; + } + } + return false; + break; + } + return true; +}; + +// layer colors +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _FUNC: + rgblite_setrgb(RGB_RED); + break; + default: // for any other layers, or the default layer + rgblite_setrgb(RGB_GREEN); + break; + } + return state; +} + +// default color +void keyboard_post_init_user(void) { + rgblite_init(); + rgblite_setrgb(RGB_GREEN); +} diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h new file mode 100644 index 0000000000..103b228d33 --- /dev/null +++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h @@ -0,0 +1,13 @@ +#pragma once + +#include "ws2812.h" +#include "color.h" + +static inline void rgblite_init(void) { + ws2812_init(); +} + +static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) { + rgb_led_t leds[RGBLIGHT_LED_COUNT] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; + ws2812_setleds(leds, RGBLIGHT_LED_COUNT); +} diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rules.mk b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rules.mk new file mode 100644 index 0000000000..07c75adb47 --- /dev/null +++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rules.mk @@ -0,0 +1,2 @@ +WS2812_DRIVER_REQUIRED = yes +EXTRAKEY_ENABLE = yes diff --git a/keyboards/xiudi/xd002/keymaps/rgb_lite/config.h b/keyboards/xiudi/xd002/keymaps/rgb_lite/config.h deleted file mode 100644 index bb9f2fc153..0000000000 --- a/keyboards/xiudi/xd002/keymaps/rgb_lite/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define WS2812_LED_COUNT 2 diff --git a/keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c b/keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c index 96595b1e2f..aac4dc6fde 100644 --- a/keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c +++ b/keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c @@ -8,14 +8,14 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - UG_HUEU, QMKURL + RGB_HUI, QMKURL ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (keycode) { - case QK_UNDERGLOW_HUE_UP: + case RGB_HUI: rgblite_increase_hue(); break; case QMKURL: diff --git a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h index 3ee8c44b87..0bb0582415 100644 --- a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h +++ b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h @@ -7,9 +7,9 @@ static inline void rgblite_init(void) { ws2812_init(); } -static inline void rgblite_setrgb(uint8_t r, uint8_t g, uint8_t b) { - ws2812_set_color_all(r, g, b); - ws2812_flush(); +static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) { + rgb_led_t leds[RGBLIGHT_LED_COUNT] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; + ws2812_setleds(leds, RGBLIGHT_LED_COUNT); } static void rgblite_increase_hue(void) { diff --git a/keyboards/xiudi/xd004/v1/keyboard.json b/keyboards/xiudi/xd004/v1/keyboard.json index 7dc5c9fffc..a6211edfec 100644 --- a/keyboards/xiudi/xd004/v1/keyboard.json +++ b/keyboards/xiudi/xd004/v1/keyboard.json @@ -12,6 +12,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c index e3a54e714e..ad54ef0c86 100644 --- a/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_split_bs_rshift_space( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, - KC_NO, MS_WHLU, KC_UP, MS_WHLD, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, KC_SPC, KC_ESC, KC_RGUI, MO(1), KC_HOME, KC_PGDN, KC_END diff --git a/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c b/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c index 9cd135176c..a5be75c180 100644 --- a/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = LAYOUT_60_ansi( 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_DEL, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, QK_BOOT, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, UG_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, UG_VALD, UG_VALU, UG_NEXT, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/xiudi/xd60/keymaps/default/keymap.c b/keyboards/xiudi/xd60/keymaps/default/keymap.c index f6dce2c5c7..af133d9b3a 100644 --- a/keyboards/xiudi/xd60/keymaps/default/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 1: Function Layer LAYOUT_all( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, - KC_NO, MS_WHLU, KC_UP, MS_WHLD, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDN, KC_END), diff --git a/keyboards/xiudi/xd60/rev2/keyboard.json b/keyboards/xiudi/xd60/rev2/keyboard.json index f4c550c806..8e03fdba20 100644 --- a/keyboards/xiudi/xd60/rev2/keyboard.json +++ b/keyboards/xiudi/xd60/rev2/keyboard.json @@ -6,6 +6,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd60/rev3/keyboard.json b/keyboards/xiudi/xd60/rev3/keyboard.json index 1320ef80f4..09af3681af 100644 --- a/keyboards/xiudi/xd60/rev3/keyboard.json +++ b/keyboards/xiudi/xd60/rev3/keyboard.json @@ -6,6 +6,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd68/keyboard.json b/keyboards/xiudi/xd68/keyboard.json index 828aa1888d..620c0b5963 100644 --- a/keyboards/xiudi/xd68/keyboard.json +++ b/keyboards/xiudi/xd68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD68", "manufacturer": "xiudi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd75/keyboard.json b/keyboards/xiudi/xd75/keyboard.json index 4644c9f826..df1ec33577 100644 --- a/keyboards/xiudi/xd75/keyboard.json +++ b/keyboards/xiudi/xd75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD75", "manufacturer": "xiudi", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", @@ -10,6 +11,7 @@ "features": { "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/xiudi/xd84/keyboard.json b/keyboards/xiudi/xd84/keyboard.json index 7c9fc32865..0411869633 100644 --- a/keyboards/xiudi/xd84/keyboard.json +++ b/keyboards/xiudi/xd84/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD84", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xiudi/xd84pro/keyboard.json b/keyboards/xiudi/xd84pro/keyboard.json index 54c45774dd..5388d8f7c2 100644 --- a/keyboards/xiudi/xd84pro/keyboard.json +++ b/keyboards/xiudi/xd84pro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD84 Pro", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/xiudi/xd96/keyboard.json b/keyboards/xiudi/xd96/keyboard.json index cae3f223b0..df1fd1cfd4 100644 --- a/keyboards/xiudi/xd96/keyboard.json +++ b/keyboards/xiudi/xd96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD96", "manufacturer": "KPrepublic", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xmmx/keyboard.json b/keyboards/xmmx/keyboard.json index d75b6f21a1..2e6813520c 100644 --- a/keyboards/xmmx/keyboard.json +++ b/keyboards/xmmx/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XMMX", "manufacturer": "farmakon", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/xw60/keyboard.json b/keyboards/xw60/keyboard.json index 5c428f4f5b..3bd11e21c1 100644 --- a/keyboards/xw60/keyboard.json +++ b/keyboards/xw60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "XW60", "manufacturer": "Drclick", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/yampad/keyboard.json b/keyboards/yampad/keyboard.json index becdc2204d..76efef72ad 100644 --- a/keyboards/yampad/keyboard.json +++ b/keyboards/yampad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Yampad", "manufacturer": "Mattia Dal Ben", + "url": "", "maintainer": "mattdibi", "usb": { "vid": "0x5950", @@ -40,7 +41,8 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "debounce": 2, "layouts": { "LAYOUT": { diff --git a/keyboards/yandrstudio/nz64/keyboard.json b/keyboards/yandrstudio/nz64/keyboard.json index 8c36b73c1e..8169449a10 100644 --- a/keyboards/yandrstudio/nz64/keyboard.json +++ b/keyboards/yandrstudio/nz64/keyboard.json @@ -64,6 +64,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/yandrstudio/nz64/keymaps/default/keymap.c b/keyboards/yandrstudio/nz64/keymaps/default/keymap.c index 26f9a0c748..9283a3f975 100644 --- a/keyboards/yandrstudio/nz64/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/nz64/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( 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, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, URGB_K, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c index 01d3781d4f..522b8d1043 100644 --- a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, URGB_K, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/yandrstudio/tg67/keymaps/default/keymap.c b/keyboards/yandrstudio/tg67/keymaps/default/keymap.c index e5d11b0178..17e31d90c5 100644 --- a/keyboards/yandrstudio/tg67/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/tg67/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( 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, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/yandrstudio/transition80/keyboard.json b/keyboards/yandrstudio/transition80/keyboard.json index e0a9eb7588..7f9364a18f 100644 --- a/keyboards/yandrstudio/transition80/keyboard.json +++ b/keyboards/yandrstudio/transition80/keyboard.json @@ -22,7 +22,8 @@ }, "indicators": { "caps_lock": "A15", - "scroll_lock": "B14" + "scroll_lock": "B14", + "on_state": 1 }, "layout_aliases": { "LAYOUT": "LAYOUT_all" diff --git a/keyboards/yandrstudio/zhou65/keyboard.json b/keyboards/yandrstudio/zhou65/keyboard.json index 0766bd3eca..f15cdfb0a2 100644 --- a/keyboards/yandrstudio/zhou65/keyboard.json +++ b/keyboards/yandrstudio/zhou65/keyboard.json @@ -2,15 +2,13 @@ "keyboard_name": "zhou65", "usb": { "pid": "0xAAAD", - "device_version": "1.0.0" - }, - "host": { - "default": { - "nkro": true - } + "device_version": "1.0.0", + "force_nkro": true }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/yanghu/unicorne/keymaps/default/keymap.c b/keyboards/yanghu/unicorne/keymaps/default/keymap.c index 590f4a16ba..48e3b9a343 100644 --- a/keyboards/yanghu/unicorne/keymaps/default/keymap.c +++ b/keyboards/yanghu/unicorne/keymaps/default/keymap.c @@ -59,13 +59,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLD); + tap_code(KC_MS_WH_DOWN); #else tap_code(KC_PGDN); #endif } else { #ifdef MOUSEKEY_ENABLE - tap_code(MS_WHLU); + tap_code(KC_MS_WH_UP); #else tap_code(KC_PGUP); #endif diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk new file mode 100644 index 0000000000..96852c8abf --- /dev/null +++ b/keyboards/yanghu/unicorne/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = yanghu/unicorne/f411 diff --git a/keyboards/yatara/drink_me/keyboard.json b/keyboards/yatara/drink_me/keyboard.json index c297867709..970aa4f5d3 100644 --- a/keyboards/yatara/drink_me/keyboard.json +++ b/keyboards/yatara/drink_me/keyboard.json @@ -12,6 +12,8 @@ "bootloader": "atmel-dfu", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/ydkb/chili/keyboard.json b/keyboards/ydkb/chili/keyboard.json index c9d4540f64..92552d96a3 100644 --- a/keyboards/ydkb/chili/keyboard.json +++ b/keyboards/ydkb/chili/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Chili", "manufacturer": "YDKB", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5945", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ydkb/grape/keymaps/default/keymap.c b/keyboards/ydkb/grape/keymaps/default/keymap.c index d468c44028..62a9e55433 100644 --- a/keyboards/ydkb/grape/keymaps/default/keymap.c +++ b/keyboards/ydkb/grape/keymaps/default/keymap.c @@ -24,6 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P0, KC_P0, KC_PDOT, KC_PENT, 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_F13, KC_F14, KC_F15, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_F16, KC_F17, KC_F18, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, MS_BTN1, MS_BTN2 + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BTN1, KC_BTN2 ) }; diff --git a/keyboards/ydkb/just60/keyboard.json b/keyboards/ydkb/just60/keyboard.json index f8bd5a3503..586ea80f21 100644 --- a/keyboards/ydkb/just60/keyboard.json +++ b/keyboards/ydkb/just60/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Just60", "manufacturer": "YDKB", + "url": "", "maintainer": "thinxer", "usb": { "vid": "0xFEED", diff --git a/keyboards/ydkb/yd68/keyboard.json b/keyboards/ydkb/yd68/keyboard.json index 6b28f1b0bf..a3542e72c2 100644 --- a/keyboards/ydkb/yd68/keyboard.json +++ b/keyboards/ydkb/yd68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YD68v2", "manufacturer": "YANG", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ydkb/ydpm40/keyboard.json b/keyboards/ydkb/ydpm40/keyboard.json index 1f750060ac..b0916f297c 100644 --- a/keyboards/ydkb/ydpm40/keyboard.json +++ b/keyboards/ydkb/ydpm40/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false @@ -15,6 +17,7 @@ "rows": ["D4", "D5", "D6", "D7"] }, "processor": "atmega328p", + "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0240", diff --git a/keyboards/yeehaw/keyboard.json b/keyboards/yeehaw/keyboard.json index 86db217fe1..aa20239c9d 100644 --- a/keyboards/yeehaw/keyboard.json +++ b/keyboards/yeehaw/keyboard.json @@ -34,9 +34,12 @@ "ws2812": { "pin": "B2" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ymdk/bface/keyboard.json b/keyboards/ymdk/bface/keyboard.json index 42c5ef5461..8a0025c01a 100644 --- a/keyboards/ymdk/bface/keyboard.json +++ b/keyboards/ymdk/bface/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "B.face", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": false, "command": true, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/id75/f103/board.h b/keyboards/ymdk/id75/board.h similarity index 100% rename from keyboards/ymdk/id75/f103/board.h rename to keyboards/ymdk/id75/board.h diff --git a/keyboards/ymdk/id75/f103/config.h b/keyboards/ymdk/id75/config.h similarity index 100% rename from keyboards/ymdk/id75/f103/config.h rename to keyboards/ymdk/id75/config.h diff --git a/keyboards/ymdk/id75/f103/halconf.h b/keyboards/ymdk/id75/f103/halconf.h deleted file mode 100644 index 612ce4fc4a..0000000000 --- a/keyboards/ymdk/id75/f103/halconf.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_PWM TRUE - -#include_next diff --git a/keyboards/ymdk/id75/f103/keyboard.json b/keyboards/ymdk/id75/f103/keyboard.json deleted file mode 100644 index 07088ee7cc..0000000000 --- a/keyboards/ymdk/id75/f103/keyboard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "bootloader": "uf2boot", - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "A5", "A6", "A4", "A3", "A2", "A1", "A0", "A15"], - "rows": ["B2", "B1", "B0", "A7", "B10"] - }, - "processor": "STM32F103", - "ws2812": { - "driver": "pwm", - "pin": "B9" - } -} diff --git a/keyboards/typek/halconf.h b/keyboards/ymdk/id75/halconf.h similarity index 100% rename from keyboards/typek/halconf.h rename to keyboards/ymdk/id75/halconf.h diff --git a/keyboards/ymdk/id75/info.json b/keyboards/ymdk/id75/info.json deleted file mode 100644 index e409743abb..0000000000 --- a/keyboards/ymdk/id75/info.json +++ /dev/null @@ -1,242 +0,0 @@ -{ - "manufacturer": "YMDK", - "keyboard_name": "Idobao x YMDK ID75", - "maintainer": "qmk", - "bootloader_instructions": "Press the button on the back of the PCB twice in quick succession.", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "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 - }, - "driver": "ws2812", - "layout": [ - {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, - {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, - {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, - {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, - {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, - {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, - {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, - {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, - {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, - {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, - {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, - {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, - {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, - {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, - {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, - {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, - {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, - {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, - {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, - {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, - {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, - {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, - {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, - {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, - {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, - {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, - {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, - {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, - {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, - {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, - {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, - {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, - {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, - {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, - {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, - {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, - {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, - {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, - {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, - {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, - {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, - {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, - {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, - {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, - {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, - {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, - {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, - {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, - {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, - {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, - {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, - {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, - {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, - {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, - {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, - {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, - {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, - {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, - {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, - {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, - {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, - {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, - {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, - {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, - {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, - {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, - {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 38, "y": 64, "flags": 2}, - {"x": 76, "y": 64, "flags": 2}, - {"x": 114, "y": 64, "flags": 2}, - {"x": 152, "y": 64, "flags": 2}, - {"x": 190, "y": 64, "flags": 2}, - {"x": 224, "y": 64, "flags": 2}, - {"x": 0, "y": 0, "flags": 2}, - {"x": 38, "y": 0, "flags": 2}, - {"x": 76, "y": 0, "flags": 2}, - {"x": 114, "y": 0, "flags": 2}, - {"x": 152, "y": 0, "flags": 2}, - {"x": 190, "y": 0, "flags": 2}, - {"x": 224, "y": 0, "flags": 2} - ], - "max_brightness": 128, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x0075", - "vid": "0x594D" - }, - "community_layouts": ["ortho_5x15"], - "layouts": { - "LAYOUT_ortho_5x15": { - "layout": [ - {"label": "k00", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "k01", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "k02", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "k03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "k04", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "k05", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "k06", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "k07", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "k08", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "k09", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "k0A", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "k0B", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "k0C", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "k0D", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "k0E", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "k10", "matrix": [1, 0], "x": 0, "y": 1}, - {"label": "k11", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "k12", "matrix": [1, 2], "x": 2, "y": 1}, - {"label": "k13", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "k14", "matrix": [1, 4], "x": 4, "y": 1}, - {"label": "k15", "matrix": [1, 5], "x": 5, "y": 1}, - {"label": "k16", "matrix": [1, 6], "x": 6, "y": 1}, - {"label": "k17", "matrix": [1, 7], "x": 7, "y": 1}, - {"label": "k18", "matrix": [1, 8], "x": 8, "y": 1}, - {"label": "k19", "matrix": [1, 9], "x": 9, "y": 1}, - {"label": "k1A", "matrix": [1, 10], "x": 10, "y": 1}, - {"label": "k1B", "matrix": [1, 11], "x": 11, "y": 1}, - {"label": "k1C", "matrix": [1, 12], "x": 12, "y": 1}, - {"label": "k1D", "matrix": [1, 13], "x": 13, "y": 1}, - {"label": "k1E", "matrix": [1, 14], "x": 14, "y": 1}, - {"label": "k20", "matrix": [2, 0], "x": 0, "y": 2}, - {"label": "k21", "matrix": [2, 1], "x": 1, "y": 2}, - {"label": "k22", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "k23", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "k24", "matrix": [2, 4], "x": 4, "y": 2}, - {"label": "k25", "matrix": [2, 5], "x": 5, "y": 2}, - {"label": "k26", "matrix": [2, 6], "x": 6, "y": 2}, - {"label": "k27", "matrix": [2, 7], "x": 7, "y": 2}, - {"label": "k28", "matrix": [2, 8], "x": 8, "y": 2}, - {"label": "k29", "matrix": [2, 9], "x": 9, "y": 2}, - {"label": "k2A", "matrix": [2, 10], "x": 10, "y": 2}, - {"label": "k2B", "matrix": [2, 11], "x": 11, "y": 2}, - {"label": "k2C", "matrix": [2, 12], "x": 12, "y": 2}, - {"label": "k2D", "matrix": [2, 13], "x": 13, "y": 2}, - {"label": "k2E", "matrix": [2, 14], "x": 14, "y": 2}, - {"label": "k30", "matrix": [3, 0], "x": 0, "y": 3}, - {"label": "k31", "matrix": [3, 1], "x": 1, "y": 3}, - {"label": "k32", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "k33", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "k34", "matrix": [3, 4], "x": 4, "y": 3}, - {"label": "k35", "matrix": [3, 5], "x": 5, "y": 3}, - {"label": "k36", "matrix": [3, 6], "x": 6, "y": 3}, - {"label": "k37", "matrix": [3, 7], "x": 7, "y": 3}, - {"label": "k38", "matrix": [3, 8], "x": 8, "y": 3}, - {"label": "k39", "matrix": [3, 9], "x": 9, "y": 3}, - {"label": "k3A", "matrix": [3, 10], "x": 10, "y": 3}, - {"label": "k3B", "matrix": [3, 11], "x": 11, "y": 3}, - {"label": "k3C", "matrix": [3, 12], "x": 12, "y": 3}, - {"label": "k3D", "matrix": [3, 13], "x": 13, "y": 3}, - {"label": "k3E", "matrix": [3, 14], "x": 14, "y": 3}, - {"label": "k40", "matrix": [4, 0], "x": 0, "y": 4}, - {"label": "k41", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "k42", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "k43", "matrix": [4, 3], "x": 3, "y": 4}, - {"label": "k44", "matrix": [4, 4], "x": 4, "y": 4}, - {"label": "k45", "matrix": [4, 5], "x": 5, "y": 4}, - {"label": "k46", "matrix": [4, 6], "x": 6, "y": 4}, - {"label": "k47", "matrix": [4, 7], "x": 7, "y": 4}, - {"label": "k48", "matrix": [4, 8], "x": 8, "y": 4}, - {"label": "k49", "matrix": [4, 9], "x": 9, "y": 4}, - {"label": "k4A", "matrix": [4, 10], "x": 10, "y": 4}, - {"label": "k4B", "matrix": [4, 11], "x": 11, "y": 4}, - {"label": "k4C", "matrix": [4, 12], "x": 12, "y": 4}, - {"label": "k4D", "matrix": [4, 13], "x": 13, "y": 4}, - {"label": "k4E", "matrix": [4, 14], "x": 14, "y": 4} - ] - } - } -} diff --git a/keyboards/ymdk/id75/keyboard.json b/keyboards/ymdk/id75/keyboard.json new file mode 100644 index 0000000000..db0c108542 --- /dev/null +++ b/keyboards/ymdk/id75/keyboard.json @@ -0,0 +1,251 @@ +{ + "manufacturer": "YMDK", + "keyboard_name": "Idobao x YMDK ID75", + "maintainer": "qmk", + "bootloader": "uf2boot", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "A5", "A6", "A4", "A3", "A2", "A1", "A0", "A15"], + "rows": ["B2", "B1", "B0", "A7", "B10"] + }, + "processor": "STM32F103", + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 4, "matrix": [4, 14], "x": 224, "y": 64}, + {"flags": 4, "matrix": [4, 13], "x": 208, "y": 64}, + {"flags": 4, "matrix": [4, 12], "x": 192, "y": 64}, + {"flags": 4, "matrix": [4, 11], "x": 176, "y": 64}, + {"flags": 4, "matrix": [4, 10], "x": 160, "y": 64}, + {"flags": 4, "matrix": [4, 9], "x": 144, "y": 64}, + {"flags": 4, "matrix": [4, 8], "x": 128, "y": 64}, + {"flags": 4, "matrix": [4, 7], "x": 112, "y": 64}, + {"flags": 4, "matrix": [4, 6], "x": 96, "y": 64}, + {"flags": 4, "matrix": [4, 5], "x": 80, "y": 64}, + {"flags": 4, "matrix": [4, 4], "x": 64, "y": 64}, + {"flags": 4, "matrix": [4, 3], "x": 48, "y": 64}, + {"flags": 4, "matrix": [4, 2], "x": 32, "y": 64}, + {"flags": 4, "matrix": [4, 1], "x": 16, "y": 64}, + {"flags": 4, "matrix": [4, 0], "x": 0, "y": 64}, + {"flags": 4, "matrix": [3, 14], "x": 224, "y": 48}, + {"flags": 4, "matrix": [3, 13], "x": 208, "y": 48}, + {"flags": 4, "matrix": [3, 12], "x": 192, "y": 48}, + {"flags": 4, "matrix": [3, 11], "x": 176, "y": 48}, + {"flags": 4, "matrix": [3, 10], "x": 160, "y": 48}, + {"flags": 4, "matrix": [3, 9], "x": 144, "y": 48}, + {"flags": 4, "matrix": [3, 8], "x": 128, "y": 48}, + {"flags": 4, "matrix": [3, 7], "x": 112, "y": 48}, + {"flags": 4, "matrix": [3, 6], "x": 96, "y": 48}, + {"flags": 4, "matrix": [3, 5], "x": 80, "y": 48}, + {"flags": 4, "matrix": [3, 4], "x": 64, "y": 48}, + {"flags": 4, "matrix": [3, 3], "x": 48, "y": 48}, + {"flags": 4, "matrix": [3, 2], "x": 32, "y": 48}, + {"flags": 4, "matrix": [3, 1], "x": 16, "y": 48}, + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, + {"flags": 4, "matrix": [2, 14], "x": 224, "y": 32}, + {"flags": 4, "matrix": [2, 13], "x": 208, "y": 32}, + {"flags": 4, "matrix": [2, 12], "x": 192, "y": 32}, + {"flags": 4, "matrix": [2, 11], "x": 176, "y": 32}, + {"flags": 4, "matrix": [2, 10], "x": 160, "y": 32}, + {"flags": 4, "matrix": [2, 9], "x": 144, "y": 32}, + {"flags": 4, "matrix": [2, 8], "x": 128, "y": 32}, + {"flags": 4, "matrix": [2, 7], "x": 112, "y": 32}, + {"flags": 4, "matrix": [2, 6], "x": 96, "y": 32}, + {"flags": 4, "matrix": [2, 5], "x": 80, "y": 32}, + {"flags": 4, "matrix": [2, 4], "x": 64, "y": 32}, + {"flags": 4, "matrix": [2, 3], "x": 48, "y": 32}, + {"flags": 4, "matrix": [2, 2], "x": 32, "y": 32}, + {"flags": 4, "matrix": [2, 1], "x": 16, "y": 32}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, + {"flags": 4, "matrix": [1, 14], "x": 224, "y": 16}, + {"flags": 4, "matrix": [1, 13], "x": 208, "y": 16}, + {"flags": 4, "matrix": [1, 12], "x": 192, "y": 16}, + {"flags": 4, "matrix": [1, 11], "x": 176, "y": 16}, + {"flags": 4, "matrix": [1, 10], "x": 160, "y": 16}, + {"flags": 4, "matrix": [1, 9], "x": 144, "y": 16}, + {"flags": 4, "matrix": [1, 8], "x": 128, "y": 16}, + {"flags": 4, "matrix": [1, 7], "x": 112, "y": 16}, + {"flags": 4, "matrix": [1, 6], "x": 96, "y": 16}, + {"flags": 4, "matrix": [1, 5], "x": 80, "y": 16}, + {"flags": 4, "matrix": [1, 4], "x": 64, "y": 16}, + {"flags": 4, "matrix": [1, 3], "x": 48, "y": 16}, + {"flags": 4, "matrix": [1, 2], "x": 32, "y": 16}, + {"flags": 4, "matrix": [1, 1], "x": 16, "y": 16}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, + {"flags": 4, "matrix": [0, 14], "x": 224, "y": 0}, + {"flags": 4, "matrix": [0, 13], "x": 208, "y": 0}, + {"flags": 4, "matrix": [0, 12], "x": 192, "y": 0}, + {"flags": 4, "matrix": [0, 11], "x": 176, "y": 0}, + {"flags": 4, "matrix": [0, 10], "x": 160, "y": 0}, + {"flags": 4, "matrix": [0, 9], "x": 144, "y": 0}, + {"flags": 4, "matrix": [0, 8], "x": 128, "y": 0}, + {"flags": 4, "matrix": [0, 7], "x": 112, "y": 0}, + {"flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, + {"flags": 4, "matrix": [0, 5], "x": 80, "y": 0}, + {"flags": 4, "matrix": [0, 4], "x": 64, "y": 0}, + {"flags": 4, "matrix": [0, 3], "x": 48, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 32, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 16, "y": 0}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 2, "x": 0, "y": 64}, + {"flags": 2, "x": 38, "y": 64}, + {"flags": 2, "x": 76, "y": 64}, + {"flags": 2, "x": 114, "y": 64}, + {"flags": 2, "x": 152, "y": 64}, + {"flags": 2, "x": 190, "y": 64}, + {"flags": 2, "x": 224, "y": 64}, + {"flags": 2, "x": 0, "y": 0}, + {"flags": 2, "x": 38, "y": 0}, + {"flags": 2, "x": 76, "y": 0}, + {"flags": 2, "x": 114, "y": 0}, + {"flags": 2, "x": 152, "y": 0}, + {"flags": 2, "x": 190, "y": 0}, + {"flags": 2, "x": 224, "y": 0} + ], + "max_brightness": 128, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0075", + "vid": "0x594D" + }, + "community_layouts": ["ortho_5x15"], + "layouts": { + "LAYOUT_ortho_5x15": { + "layout": [ + {"label": "k00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "k01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "k02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "k03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "k04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "k05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "k06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "k07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "k08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "k09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "k0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "k0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "k0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "k0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "k0E", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "k10", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "k11", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "k12", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "k13", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "k14", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "k15", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "k16", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "k17", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "k18", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "k19", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "k1A", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "k1B", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "k1C", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "k1D", "matrix": [1, 13], "x": 13, "y": 1}, + {"label": "k1E", "matrix": [1, 14], "x": 14, "y": 1}, + {"label": "k20", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "k21", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "k22", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "k23", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "k24", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "k25", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "k26", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "k27", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "k28", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "k29", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": "k2A", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "k2B", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "k2C", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": "k2D", "matrix": [2, 13], "x": 13, "y": 2}, + {"label": "k2E", "matrix": [2, 14], "x": 14, "y": 2}, + {"label": "k30", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "k31", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "k32", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "k33", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "k34", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "k35", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "k36", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "k37", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "k38", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": "k39", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": "k3A", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "k3B", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": "k3C", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "k3D", "matrix": [3, 13], "x": 13, "y": 3}, + {"label": "k3E", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "k40", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "k41", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "k42", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "k43", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "k44", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "k45", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "k46", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "k47", "matrix": [4, 7], "x": 7, "y": 4}, + {"label": "k48", "matrix": [4, 8], "x": 8, "y": 4}, + {"label": "k49", "matrix": [4, 9], "x": 9, "y": 4}, + {"label": "k4A", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "k4B", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "k4C", "matrix": [4, 12], "x": 12, "y": 4}, + {"label": "k4D", "matrix": [4, 13], "x": 13, "y": 4}, + {"label": "k4E", "matrix": [4, 14], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/ymdk/id75/keymaps/default/keymap.json b/keyboards/ymdk/id75/keymaps/default/keymap.json index 595841449e..cfea8be494 100644 --- a/keyboards/ymdk/id75/keymaps/default/keymap.json +++ b/keyboards/ymdk/id75/keymaps/default/keymap.json @@ -2,7 +2,7 @@ "version": 1, "author": "qmk", "notes": "", - "keyboard": "ymdk/id75/f103", + "keyboard": "ymdk/id75", "keymap": "default", "layout": "LAYOUT_ortho_5x15", "layers": [ @@ -16,7 +16,7 @@ [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "RM_NEXT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT" ] diff --git a/keyboards/ymdk/id75/f103/mcuconf.h b/keyboards/ymdk/id75/mcuconf.h similarity index 100% rename from keyboards/ymdk/id75/f103/mcuconf.h rename to keyboards/ymdk/id75/mcuconf.h diff --git a/keyboards/ymdk/id75/readme.md b/keyboards/ymdk/id75/readme.md index f94d4c14cf..9315745f71 100644 --- a/keyboards/ymdk/id75/readme.md +++ b/keyboards/ymdk/id75/readme.md @@ -5,21 +5,17 @@ A 75-key, 5-row ortholinear keyboard with per-key and underglow RGB LEDs. * Keyboard Maintainer: [The QMK Community](https://github.com/qmk) -* Hardware Supported: [Idobao x YMDK ID75](https://www.aliexpress.com/item/3256804537842097.html). **This is not the same PCB as `idobao/id75` or `ymdk/ymd75`.** - This keyboard has had multiple PCB revisions, some of which may not work with the firmware in this repository. **Check your PCB before flashing.** - * `f103`: (Geehy APM32F103CBT6, uf2boot) - * `rp2040`: (RP2040, rp2040) +* Hardware Supported: [Idobao x YMDK ID75 PCB (APM32F103CBT6)](https://www.aliexpress.com/item/3256804537842097.html) + * This PCB uses an ARM Cortex-M3 MCU with 128kb flash. **It is not the same as `idobao/id75` or `ymdk/ymd75`.** * Hardware Availability: [YMDK](https://ymdkey.com/products/id75-75-keys-ortholinear-layout-qmk-anodized-aluminum-case-plate-hot-swappable-hot-swap-type-c-pcb-mechanical-keyboard-kit), [AliExpress (YMDK Store)](https://www.aliexpress.com/item/2255800125183974.html), [Amazon](https://www.amazon.com/Ortholinear-Anodized-Aluminum-hot-swappable-Mechanical/dp/B07ZQ8CD88) Make example for this keyboard (after setting up your build environment): - make ymdk/id75/f103:default - make ymdk/id75/rp2040:default + make ymdk/id75:default Flashing example for this keyboard: - make ymdk/id75/f103:default:flash - make ymdk/id75/rp2040:default:flash + make ymdk/id75: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). @@ -31,6 +27,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the button on the back of the PCB twice in quick succession. * **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, in the bottom-right corner. -After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. -- `f103`: The volume name is `MT.KEY`. -- `rp2040`: The volume name is `RPI-RP2`. +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `MT.KEY`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. diff --git a/keyboards/ymdk/id75/rp2040/config.h b/keyboards/ymdk/id75/rp2040/config.h deleted file mode 100644 index b7a25de160..0000000000 --- a/keyboards/ymdk/id75/rp2040/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2021 Mike Tsao - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/ymdk/id75/rp2040/keyboard.json b/keyboards/ymdk/id75/rp2040/keyboard.json deleted file mode 100644 index f153203cd0..0000000000 --- a/keyboards/ymdk/id75/rp2040/keyboard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "bootloader": "rp2040", - "matrix_pins": { - "cols": ["GP26", "GP27", "GP4", "GP5", "GP1", "GP23", "GP22", "GP21", "GP28", "GP3", "GP7", "GP12", "GP13", "GP14", "GP15"], - "rows": ["GP8", "GP6", "GP19", "GP20", "GP18"] - }, - "processor": "RP2040", - "ws2812": { - "driver": "vendor", - "pin": "GP2" - } -} diff --git a/keyboards/ymdk/id75/f103/rules.mk b/keyboards/ymdk/id75/rules.mk similarity index 100% rename from keyboards/ymdk/id75/f103/rules.mk rename to keyboards/ymdk/id75/rules.mk diff --git a/keyboards/ymdk/melody96/hotswap/keyboard.json b/keyboards/ymdk/melody96/hotswap/keyboard.json index f9b0c723e9..6a00e05050 100644 --- a/keyboards/ymdk/melody96/hotswap/keyboard.json +++ b/keyboards/ymdk/melody96/hotswap/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Melody96 Hotswap", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", @@ -15,6 +16,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/melody96/rules.mk b/keyboards/ymdk/melody96/rules.mk new file mode 100644 index 0000000000..806543977b --- /dev/null +++ b/keyboards/ymdk/melody96/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ymdk/melody96/soldered diff --git a/keyboards/ymdk/melody96/soldered/keyboard.json b/keyboards/ymdk/melody96/soldered/keyboard.json index 6a47c6c685..dbb2ddc32b 100644 --- a/keyboards/ymdk/melody96/soldered/keyboard.json +++ b/keyboards/ymdk/melody96/soldered/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Melody96 Soldered", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/np21/keyboard.json b/keyboards/ymdk/np21/keyboard.json index 8527fc5596..a1997161ee 100644 --- a/keyboards/ymdk/np21/keyboard.json +++ b/keyboards/ymdk/np21/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ymdk/np24/u4rgb6/keyboard.json b/keyboards/ymdk/np24/u4rgb6/keyboard.json index 41ae2fd27b..3dcd9d63b3 100644 --- a/keyboards/ymdk/np24/u4rgb6/keyboard.json +++ b/keyboards/ymdk/np24/u4rgb6/keyboard.json @@ -10,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ymdk/sp64/keyboard.json b/keyboards/ymdk/sp64/keyboard.json index d1d0d8296c..bfb140873a 100644 --- a/keyboards/ymdk/sp64/keyboard.json +++ b/keyboards/ymdk/sp64/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "SP64", "manufacturer": "YMDK", + "url": "", "maintainer": "walston", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/wings/keyboard.json b/keyboards/ymdk/wings/keyboard.json index 304f2a1e95..30c8439b45 100644 --- a/keyboards/ymdk/wings/keyboard.json +++ b/keyboards/ymdk/wings/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/wingshs/keyboard.json b/keyboards/ymdk/wingshs/keyboard.json index a2b8be2c4e..487d61cc2e 100644 --- a/keyboards/ymdk/wingshs/keyboard.json +++ b/keyboards/ymdk/wingshs/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/yd60mq/info.json b/keyboards/ymdk/yd60mq/info.json index 7fa7b6b4f3..1af04be687 100644 --- a/keyboards/ymdk/yd60mq/info.json +++ b/keyboards/ymdk/yd60mq/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "YD60MQ", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", @@ -9,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c b/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c index 310549c07d..9c437680df 100644 --- a/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c +++ b/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c @@ -19,8 +19,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,: Function Layer [1] = LAYOUT_60_iso( 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, KC_DEL, - XXXXXXX, MS_BTN1, MS_UP, MS_BTN2, MS_WHLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, KC_HOME, KC_PSCR, - KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, MS_WHLD, UG_HUEU, UG_SATU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, XXXXXXX, KC_MNXT, + XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, KC_HOME, KC_PSCR, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, UG_HUEU, UG_SATU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, XXXXXXX, KC_MNXT, KC_TRNS, UG_NEXT, UG_PREV, UG_VALU, UG_VALD, UG_HUED, UG_SATD, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_SPDU, UG_SPDD, XXXXXXX, KC_TRNS ) diff --git a/keyboards/ymdk/yd60mq/rules.mk b/keyboards/ymdk/yd60mq/rules.mk new file mode 100644 index 0000000000..c37722c8bb --- /dev/null +++ b/keyboards/ymdk/yd60mq/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ymdk/yd60mq/12led diff --git a/keyboards/ymdk/ym68/keyboard.json b/keyboards/ymdk/ym68/keyboard.json index 4deb5e0cfa..5bea9b2e48 100644 --- a/keyboards/ymdk/ym68/keyboard.json +++ b/keyboards/ymdk/ym68/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YM68", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/ymd09/keyboard.json b/keyboards/ymdk/ymd09/keyboard.json index 644b4fb8f4..571aa8c45f 100644 --- a/keyboards/ymdk/ymd09/keyboard.json +++ b/keyboards/ymdk/ymd09/keyboard.json @@ -19,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/ymdk/ymd09/keymaps/default/keymap.c b/keyboards/ymdk/ymd09/keymaps/default/keymap.c index 820235abcf..035bc079b8 100644 --- a/keyboards/ymdk/ymd09/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd09/keymaps/default/keymap.c @@ -21,8 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_4, LT(1, KC_KP_5), KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3), - [1] = LAYOUT(RM_PREV, RM_VALU, RM_NEXT, - RM_HUEU, KC_TRNS, RM_SATU, - RM_HUED, RM_VALD, RM_SATD), + [1] = LAYOUT(RGB_RMOD, RGB_VAI, RGB_MOD, + RGB_HUI, KC_TRNS, RGB_SAI, + RGB_HUD, RGB_VAD, RGB_SAD), }; diff --git a/keyboards/ymdk/ymd21/v2/keyboard.json b/keyboards/ymdk/ymd21/v2/keyboard.json index e292fca3de..3e2e992ccc 100644 --- a/keyboards/ymdk/ymd21/v2/keyboard.json +++ b/keyboards/ymdk/ymd21/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD21 v2", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x45D4", @@ -10,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/ymd40/air40/keyboard.json b/keyboards/ymdk/ymd40/air40/keyboard.json index 0adc965cc7..aaca80156b 100644 --- a/keyboards/ymdk/ymd40/air40/keyboard.json +++ b/keyboards/ymdk/ymd40/air40/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMDK Air40", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x45D4", diff --git a/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c index ea09ee215a..b798dce7b2 100644 --- a/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), [_ADJUST] = LAYOUT_ortho_4x12( - QK_BOOT, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, DB_TOGG, - _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, DB_TOGG, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/ymdk/ymd40/v2/keyboard.json b/keyboards/ymdk/ymd40/v2/keyboard.json index baecfbb579..08f5f0a4e3 100644 --- a/keyboards/ymdk/ymd40/v2/keyboard.json +++ b/keyboards/ymdk/ymd40/v2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD40 v2", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/ymd62/keymaps/default/keymap.c b/keyboards/ymdk/ymd62/keymaps/default/keymap.c index e5be1d7910..79c128295e 100644 --- a/keyboards/ymdk/ymd62/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd62/keymaps/default/keymap.c @@ -14,6 +14,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_DEL , KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RGB_M_P, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_M_P, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; \ No newline at end of file diff --git a/keyboards/ymdk/ymd67/keyboard.json b/keyboards/ymdk/ymd67/keyboard.json index 4818a79b50..5f9ba275f9 100644 --- a/keyboards/ymdk/ymd67/keyboard.json +++ b/keyboards/ymdk/ymd67/keyboard.json @@ -12,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/ymdk/ymd75/rev1/keyboard.json b/keyboards/ymdk/ymd75/rev1/keyboard.json index 3c9022ccdb..f2b664c67f 100644 --- a/keyboards/ymdk/ymd75/rev1/keyboard.json +++ b/keyboards/ymdk/ymd75/rev1/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev2/keyboard.json b/keyboards/ymdk/ymd75/rev2/keyboard.json index 8bfebf0207..272140fd82 100644 --- a/keyboards/ymdk/ymd75/rev2/keyboard.json +++ b/keyboards/ymdk/ymd75/rev2/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev3/keyboard.json b/keyboards/ymdk/ymd75/rev3/keyboard.json index eb5979c566..ae8c20990b 100644 --- a/keyboards/ymdk/ymd75/rev3/keyboard.json +++ b/keyboards/ymdk/ymd75/rev3/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", @@ -11,6 +12,7 @@ "backlight": true, "bootmagic": true, "command": true, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json index 1ff9130019..180c68beaa 100644 --- a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json +++ b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD75 V4", "manufacturer": "YMDK", + "url": "", "maintainer": "zvecr", "processor": "STM32F103", "bootloader": "uf2boot", @@ -17,6 +18,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c index 3f5225c432..15dc1dc8b7 100644 --- a/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_75_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ymdk/ymd96/keyboard.json b/keyboards/ymdk/ymd96/keyboard.json index 437609f8c8..ed7edd490a 100644 --- a/keyboards/ymdk/ymd96/keyboard.json +++ b/keyboards/ymdk/ymd96/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "YMD96", "manufacturer": "YMDK", + "url": "", "maintainer": "sparkyman215", "usb": { "vid": "0x20A0", @@ -11,6 +12,8 @@ "features": { "backlight": true, "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json index 3e62042a4e..06a1f9b090 100644 --- a/keyboards/yncognito/batpad/keyboard.json +++ b/keyboards/yncognito/batpad/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Batpad", "manufacturer": "Yncognito", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x7979", @@ -64,6 +65,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/yncognito/batpad/keymaps/default/keymap.c b/keyboards/yncognito/batpad/keymaps/default/keymap.c index 26ad7e81eb..6cf40a182e 100644 --- a/keyboards/yncognito/batpad/keymaps/default/keymap.c +++ b/keyboards/yncognito/batpad/keymaps/default/keymap.c @@ -19,15 +19,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT + KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD ), [1] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT + KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD ), [2] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT + KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD ), diff --git a/keyboards/yoichiro/lunakey_macro/keyboard.json b/keyboards/yoichiro/lunakey_macro/keyboard.json index c41f7e9d3c..7268dd3143 100644 --- a/keyboards/yoichiro/lunakey_macro/keyboard.json +++ b/keyboards/yoichiro/lunakey_macro/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lunakey Macro", "manufacturer": "yoichiro", + "url": "", "maintainer": "Yoichiro Tanaka", "usb": { "vid": "0x5954", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/yoichiro/lunakey_mini/keyboard.json b/keyboards/yoichiro/lunakey_mini/keyboard.json index 41503fe598..177b3afaa6 100644 --- a/keyboards/yoichiro/lunakey_mini/keyboard.json +++ b/keyboards/yoichiro/lunakey_mini/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Lunakey Mini", "manufacturer": "yoichiro", + "url": "", "maintainer": "qmk", "usb": { "vid": "0x5954", diff --git a/keyboards/yoichiro/lunakey_pico/keyboard.json b/keyboards/yoichiro/lunakey_pico/keyboard.json index e8326706dc..39070d615a 100644 --- a/keyboards/yoichiro/lunakey_pico/keyboard.json +++ b/keyboards/yoichiro/lunakey_pico/keyboard.json @@ -8,6 +8,8 @@ "bootmagic": false, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, @@ -39,8 +41,10 @@ "static_gradient": true, "twinkle": true }, + "hue_steps": 8, "saturation_steps": 8, - "brightness_steps": 8 + "brightness_steps": 8, + "max_brightness": 255 }, "split": { "enabled": true, diff --git a/keyboards/yosino58/keymaps/default/keymap.c b/keyboards/yosino58/keymaps/default/keymap.c index ff1f8ca5d4..88320c2898 100644 --- a/keyboards/yosino58/keymaps/default/keymap.c +++ b/keyboards/yosino58/keymaps/default/keymap.c @@ -106,8 +106,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLU, KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_SCRL, KC_PAUS, KC_MPRV, KC_VOLD, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, - XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGBRST, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, + XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGBRST, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; @@ -265,7 +265,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case QK_UNDERGLOW_MODE_NEXT: + case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); diff --git a/keyboards/yosino58/rev1/keyboard.json b/keyboards/yosino58/rev1/keyboard.json index 939a11c49d..ffc1a5d827 100644 --- a/keyboards/yosino58/rev1/keyboard.json +++ b/keyboards/yosino58/rev1/keyboard.json @@ -25,7 +25,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yosino58/rules.mk b/keyboards/yosino58/rules.mk new file mode 100644 index 0000000000..c700b6f5b5 --- /dev/null +++ b/keyboards/yosino58/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = yosino58/rev1 diff --git a/keyboards/yushakobo/ergo68/keyboard.json b/keyboards/yushakobo/ergo68/keyboard.json index ac86eae70b..bc61e979b7 100644 --- a/keyboards/yushakobo/ergo68/keyboard.json +++ b/keyboards/yushakobo/ergo68/keyboard.json @@ -14,6 +14,7 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], "rows": ["D4", "C6", "D7", "E6", "B4"] }, + "url": "", "usb": { "vid": "0x3265", "pid": "0x0011", diff --git a/keyboards/yushakobo/navpad/10/info.json b/keyboards/yushakobo/navpad/10/info.json index 355cec2347..e28a2e2cb1 100644 --- a/keyboards/yushakobo/navpad/10/info.json +++ b/keyboards/yushakobo/navpad/10/info.json @@ -37,5 +37,6 @@ "rgb_test": true } }, - "development_board": "promicro" + "processor": "atmega32u4", + "bootloader": "caterina" } diff --git a/keyboards/yushakobo/navpad/10/keymaps/default/keymap.c b/keyboards/yushakobo/navpad/10/keymaps/default/keymap.c index c0e194aeda..a0c62cc4ce 100644 --- a/keyboards/yushakobo/navpad/10/keymaps/default/keymap.c +++ b/keyboards/yushakobo/navpad/10/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, EE_CLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NUM, KC_QUOT, KC_PEQL, KC_NO, KC_CAPS, KC_NUM, KC_SCRL, S(KC_9), KC_UP, S(KC_0), S(KC_SPC), - KC_LEFT, MS_BTN3, KC_RGHT, S(KC_SPC), + KC_LEFT, KC_BTN3, KC_RGHT, S(KC_SPC), KC_TRNS, S(KC_ENT), KC_TRNS, KC_BSPC, KC_DOWN, KC_DEL, KC_TRNS, - MS_BTN1, KC_ENT, S(KC_SPC),LT(2,KC_SPC),KC_SPC, KC_COMM, KC_TRNS + KC_BTN1, KC_ENT, S(KC_SPC),LT(2,KC_SPC),KC_SPC, KC_COMM, KC_TRNS ), [_FN2] =LAYOUT ( diff --git a/keyboards/yushakobo/navpad/10/keymaps/default/readme.md b/keyboards/yushakobo/navpad/10/keymaps/default/readme.md index 42e3df9506..b9cf727e24 100644 --- a/keyboards/yushakobo/navpad/10/keymaps/default/readme.md +++ b/keyboards/yushakobo/navpad/10/keymaps/default/readme.md @@ -25,11 +25,11 @@ |----------+----------+----------+----------+-----------+----------+---------------| | KC_CAPS | KC_NUM | KC_SCRL | S(KC_9) | KC_UP | S(KC_0) | S(KC_SPC) | `--------------------------------+----------+-----------+----------+---------------| - | KC_LEFT | MS_BTN3 | KC_RGHT | S(KC_SPC) | + | KC_LEFT | KC_BTN3 | KC_RGHT | S(KC_SPC) | ,--------------------------------+----------+-----------+----------+---------------| | KC_TRNS | S(KC_ENT)| KC_TRNS | KC_BSPC | KC_DOWN | KC_DEL | KC_TRNS | |----------+----------+----------+----------+-----------+----------+---------------| - | MS_BTN1 | KC_ENT |S(KC_SPC)|LT(2,KC_SPC)|KC_SPC | KC_COMM | KC_TRNS | + | KC_BTN1 | KC_ENT |S(KC_SPC)|LT(2,KC_SPC)|KC_SPC | KC_COMM | KC_TRNS | '----------------------------------------------------------------------------------` ``` ### FN2 layer diff --git a/keyboards/yushakobo/navpad/10/rules.mk b/keyboards/yushakobo/navpad/10/rules.mk new file mode 100644 index 0000000000..32daeef814 --- /dev/null +++ b/keyboards/yushakobo/navpad/10/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = yushakobo/navpad/10/rev1 diff --git a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json index 89004dd0d3..e91f96f0ac 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json +++ b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "navpad 1.0 with helix keyboard", "manufacturer": "yushakobo", + "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", @@ -63,7 +64,8 @@ "rgb_test": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/keymap.c b/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/keymap.c index 18c34677d0..5c5d1110a1 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/keymap.c +++ b/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/keymap.c @@ -31,9 +31,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, EE_CLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NUM, KC_QUOT, KC_PEQL, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL, KC_CAPS, KC_NUM, KC_SCRL, S(KC_9), KC_UP, S(KC_0), S(KC_SPC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, - KC_LEFT, MS_BTN3, KC_RGHT, S(KC_SPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_QUOT, + KC_LEFT, KC_BTN3, KC_RGHT, S(KC_SPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_QUOT, KC_TRNS, S(KC_ENT), KC_TRNS, KC_BSPC, KC_DOWN, KC_DEL, KC_TRNS, KC_RBRC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, - MS_BTN1, KC_ENT, S(KC_SPC),LT(2,KC_SPC),KC_SPC, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_BTN1, KC_ENT, S(KC_SPC),LT(2,KC_SPC),KC_SPC, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_FN2] =LAYOUT ( diff --git a/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/readme.md b/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/readme.md index f18c01d8ef..48eeee421f 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/readme.md +++ b/keyboards/yushakobo/navpad/10_helix_r/keymaps/default/readme.md @@ -25,11 +25,11 @@ `--------------------------------+----------+-----------+----------+---------------| |------------+----------+-----------+-----------+-----------+-----------| | KC_CAPS | KC_NUM | KC_SCRL | S(KC_9) | KC_UP | S(KC_0) | S(KC_SPC) | | KC_Q | KC_W | KC_E | KC_R | KC_T | KC_BSPC | `--------------------------------+----------+-----------+----------+---------------| |------------+----------+-----------+-----------+-----------+-----------| - | KC_LEFT | MS_BTN3 | KC_RGHT | S(KC_SPC) | | KC_A | KC_S | KC_D | KC_F | KC_G | KC_QUOT | + | KC_LEFT | KC_BTN3 | KC_RGHT | S(KC_SPC) | | KC_A | KC_S | KC_D | KC_F | KC_G | KC_QUOT | ,--------------------------------+----------+-----------+----------+---------------| ,-------------+------------+----------+-----------+-----------+-----------+-----------| | KC_TRNS | S(KC_ENT)| KC_TRNS | KC_BSPC | KC_DOWN | KC_DEL | KC_TRNS | | KC_RBRC | KC_Z | KC_X | KC_C | KC_V | KC_B | KC_ENT | |----------+----------+----------+----------+-----------+----------+---------------| |-------------+------------+----------+-----------+-----------+-----------+-----------| - | MS_BTN1 | KC_ENT |S(KC_SPC)|LT(2,KC_SPC)|KC_SPC | KC_COMM | KC_TRNS | | KC_TRNS | KC_TRNS | KC_NO | KC_LEFT | KC_DOWN | KC_UP | KC_RGHT | + | KC_BTN1 | KC_ENT |S(KC_SPC)|LT(2,KC_SPC)|KC_SPC | KC_COMM | KC_TRNS | | KC_TRNS | KC_TRNS | KC_NO | KC_LEFT | KC_DOWN | KC_UP | KC_RGHT | '----------------------------------------------------------------------------------` '-------------------------------------------------------------------------------------` ``` ### FN2 layer diff --git a/keyboards/yushakobo/quick17/keyboard.json b/keyboards/yushakobo/quick17/keyboard.json index 627642a179..aa0d39756d 100644 --- a/keyboards/yushakobo/quick17/keyboard.json +++ b/keyboards/yushakobo/quick17/keyboard.json @@ -51,7 +51,8 @@ "ws2812": { "pin": "D2" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yushakobo/quick17/keymaps/default/keymap.c b/keyboards/yushakobo/quick17/keymaps/default/keymap.c index 8b3cd6fff1..2bde382cae 100644 --- a/keyboards/yushakobo/quick17/keymaps/default/keymap.c +++ b/keyboards/yushakobo/quick17/keymaps/default/keymap.c @@ -33,13 +33,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT,KC_X, KC_V, KC_B, LT(2,KC_SPC),LCTL(KC_S) ), [_EDIT2] = LAYOUT( - KC_ESC, KC_Q, MS_BTN3,KC_INS, KC_ENT, KC_DEL, + KC_ESC, KC_Q, KC_BTN3,KC_INS, KC_ENT, KC_DEL, KC_LCTL,KC_LBRC,KC_RBRC,KC_PGDN,KC_PGUP,LCTL(KC_Y), - KC_LSFT,TO(3), RM_TOGG,TO(0), _______,KC_NO + KC_LSFT,TO(3), RGB_TOG,TO(0), _______,KC_NO ), [_FN] = LAYOUT( - KC_ESC, KC_LANG,KC_NO, RM_TOGG,KC_MNXT,KC_VOLU, - KC_CAPS,KC_NUM, KC_NO, RM_NEXT,KC_MPRV,KC_VOLD, + KC_ESC, KC_LANG,KC_NO, RGB_TOG,KC_MNXT,KC_VOLU, + KC_CAPS,KC_NUM, KC_NO, RGB_MOD,KC_MPRV,KC_VOLD, CG_NORM,CG_LSWP,EE_CLR, QK_BOOT,TO(0), KC_MUTE ) }; @@ -92,9 +92,9 @@ bool encoder_update_user(uint8_t index, bool clockwise){ } } else { // IS_LAYER_ON(_CONTROL) if (clockwise) { - tap_code(MS_WHLU); + tap_code(KC_WH_U); } else { - tap_code(MS_WHLD); + tap_code(KC_WH_D); } } } diff --git a/keyboards/yushakobo/quick17/quick17_prefs.h b/keyboards/yushakobo/quick17/quick17_prefs.h index 1c95e2efb9..a498381cee 100644 --- a/keyboards/yushakobo/quick17/quick17_prefs.h +++ b/keyboards/yushakobo/quick17/quick17_prefs.h @@ -27,7 +27,7 @@ enum layer_names { _FN }; -#define _HSV(H, S, V) (hsv_t){ .h = H, .s = S, .v = V } +#define _HSV(H, S, V) (HSV){ .h = H, .s = S, .v = V } #define _RGB(rgb) rgb.r, rgb.g, rgb.b bool input_mode(void); diff --git a/keyboards/yushakobo/quick17/rgb_matrix_kb.inc b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc index 170cf8a8d7..4998cce029 100644 --- a/keyboards/yushakobo/quick17/rgb_matrix_kb.inc +++ b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc @@ -52,17 +52,17 @@ const uint8_t rgb_keymaps [][RGB_MATRIX_LED_COUNT] = { }; static void led_color_set(uint8_t index, uint8_t color_patterns) { - hsv_t hsv = rgb_matrix_config.hsv; // 'quantum/color.h' - rgb_t rgb_white = hsv_to_rgb(_HSV( 0, 0, hsv.v)); // HSV_WHITE - rgb_t rgb_indc1 = hsv_to_rgb(_HSV(128, 255, hsv.v)); // HSV_TEAL - rgb_t rgb_indc2 = hsv_to_rgb(_HSV(191, 255, hsv.v)); // HSV_PURPLE - rgb_t rgb_indc3 = hsv_to_rgb(_HSV( 64, 255, hsv.v)); // HSV_CHARTREUSE - rgb_t rgb_indc4 = hsv_to_rgb(_HSV(106, 255, hsv.v)); // HSV_SPRINGGREEN - rgb_t rgb_indc5 = hsv_to_rgb(_HSV(234, 128, hsv.v)); // HSV_PINK - rgb_t rgb_indc6 = hsv_to_rgb(_HSV(213, 255, hsv.v)); // HSV_MAGENTA - rgb_t rgb_indc_ja = hsv_to_rgb(_HSV( 0, 255, hsv.v)); // HSV_RED - rgb_t rgb_indc_en = hsv_to_rgb(_HSV( 85, 255, hsv.v)); // HSV_GREEN - rgb_t rgb_indc_win = hsv_to_rgb(_HSV(170, 255, hsv.v)); // HSV_BLUE + HSV hsv = rgb_matrix_config.hsv; // 'quantum/color.h' + RGB rgb_white = hsv_to_rgb(_HSV( 0, 0, hsv.v)); // HSV_WHITE + RGB rgb_indc1 = hsv_to_rgb(_HSV(128, 255, hsv.v)); // HSV_TEAL + RGB rgb_indc2 = hsv_to_rgb(_HSV(191, 255, hsv.v)); // HSV_PURPLE + RGB rgb_indc3 = hsv_to_rgb(_HSV( 64, 255, hsv.v)); // HSV_CHARTREUSE + RGB rgb_indc4 = hsv_to_rgb(_HSV(106, 255, hsv.v)); // HSV_SPRINGGREEN + RGB rgb_indc5 = hsv_to_rgb(_HSV(234, 128, hsv.v)); // HSV_PINK + RGB rgb_indc6 = hsv_to_rgb(_HSV(213, 255, hsv.v)); // HSV_MAGENTA + RGB rgb_indc_ja = hsv_to_rgb(_HSV( 0, 255, hsv.v)); // HSV_RED + RGB rgb_indc_en = hsv_to_rgb(_HSV( 85, 255, hsv.v)); // HSV_GREEN + RGB rgb_indc_win = hsv_to_rgb(_HSV(170, 255, hsv.v)); // HSV_BLUE switch(color_patterns){ case BOUT: rgb_matrix_set_color(index, RGB_BLACK); break; case _____: rgb_matrix_set_color(index, _RGB(rgb_white)); break; diff --git a/keyboards/yushakobo/quick7/keyboard.json b/keyboards/yushakobo/quick7/keyboard.json index 4bd42a2f16..ba4854015b 100644 --- a/keyboards/yushakobo/quick7/keyboard.json +++ b/keyboards/yushakobo/quick7/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "quick7", "manufacturer": "yushakobo", + "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", @@ -28,7 +29,8 @@ "ws2812": { "pin": "D3" }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bootmagic": true, "command": true, diff --git a/keyboards/yynmt/acperience12/rules.mk b/keyboards/yynmt/acperience12/rules.mk new file mode 100644 index 0000000000..cfe8b8ac18 --- /dev/null +++ b/keyboards/yynmt/acperience12/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = yynmt/acperience12/rev1 diff --git a/keyboards/yynmt/dozen0/keyboard.json b/keyboards/yynmt/dozen0/keyboard.json index 84b62cce5c..1ad2b13be0 100644 --- a/keyboards/yynmt/dozen0/keyboard.json +++ b/keyboards/yynmt/dozen0/keyboard.json @@ -30,6 +30,8 @@ }, "features": { "bootmagic": false, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false, @@ -46,7 +48,8 @@ "rows": ["F4"] }, "diode_direction": "COL2ROW", - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/zeix/acidandco/stellaron/config.h b/keyboards/zeix/acidandco/stellaron/config.h deleted file mode 100644 index 77970ce4d3..0000000000 --- a/keyboards/zeix/acidandco/stellaron/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2023 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/acidandco/stellaron/keyboard.json b/keyboards/zeix/acidandco/stellaron/keyboard.json deleted file mode 100644 index 2f794744ed..0000000000 --- a/keyboards/zeix/acidandco/stellaron/keyboard.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "manufacturer": "Acid & Co", - "keyboard_name": "Stellaron TKL", - "maintainer": "itsme-zeix", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "indicators": { - "caps_lock": "GP27", - "scroll_lock": "GP1" - }, - "matrix_pins": { - "cols": ["GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP6", "GP5", "GP0"], - "rows": ["GP2", "GP3", "GP4", "GP29", "GP12", "GP13"] - }, - "processor": "RP2040", - "usb": { - "device_version": "0.0.1", - "pid": "0x2902", - "vid": "0x4C27" - }, - "community_layouts": ["tkl_ansi", "tkl_ansi_tsangan", "tkl_f13_ansi", "tkl_f13_ansi_tsangan"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - {"matrix": [0, 5], "x": 6.25, "y": 0}, - {"matrix": [0, 6], "x": 7.25, "y": 0}, - {"matrix": [0, 7], "x": 8.25, "y": 0}, - {"matrix": [0, 8], "x": 9.25, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.75, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.5}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5}, - {"matrix": [5, 12], "x": 13.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_f13_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - }, - "LAYOUT_tkl_f13_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.5}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, - {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5}, - {"matrix": [5, 12], "x": 13.5, "y": 5.5, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/zeix/acidandco/stellaron/keymaps/default/keymap.c b/keyboards/zeix/acidandco/stellaron/keymaps/default/keymap.c deleted file mode 100644 index 21cd4d412d..0000000000 --- a/keyboards/zeix/acidandco/stellaron/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2023 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT_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_F13, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_F13, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT) -}; diff --git a/keyboards/zeix/acidandco/stellaron/readme.md b/keyboards/zeix/acidandco/stellaron/readme.md deleted file mode 100644 index 0b865aeee4..0000000000 --- a/keyboards/zeix/acidandco/stellaron/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Stellaron TKL - -![PCB Compatibility](https://i.imgur.com/fIBX8kF.png) - -PCB that supports Stellaron TKL - -* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) -* Hardware Supported: Stellaron PCB -* Hardware Availability: Private Group Buy - -Make example for this keyboard (after setting up your build environment): - - make zeix/acidandco/stellaron:default - -Flashing example for this keyboard: - - make zeix/acidandco/stellaron: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 top left key and plug in the keyboard. -* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. \ No newline at end of file diff --git a/keyboards/zeix/eden/keyboard.json b/keyboards/zeix/eden/keyboard.json index ba0faeac27..2b5fd6eae7 100644 --- a/keyboards/zeix/eden/keyboard.json +++ b/keyboards/zeix/eden/keyboard.json @@ -13,10 +13,13 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "indicators": { - "caps_lock": "GP29" + "caps_lock": "GP29", + "on_state": 1 }, "diode_direction": "COL2ROW", "matrix_pins": { @@ -27,7 +30,7 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", @@ -38,9 +41,6 @@ "60_iso_wkl", "60_iso_wkl_split_bs_rshift" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -323,7 +323,7 @@ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/zeix/qwertyqop60hs/keyboard.json b/keyboards/zeix/qwertyqop60hs/keyboard.json index f28fe49ca1..8a3e06f2eb 100644 --- a/keyboards/zeix/qwertyqop60hs/keyboard.json +++ b/keyboards/zeix/qwertyqop60hs/keyboard.json @@ -13,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "diode_direction": "COL2ROW", @@ -24,12 +26,9 @@ "60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", - "60_ansi_tsangan_split_bs_rshift", + "60_tsangan_hhkb", "60_hhkb" ], - "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" - }, "layouts": { "LAYOUT_all": { "layout": [ @@ -311,7 +310,7 @@ { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } ] }, - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/zeix/singa/kohaku/config.h b/keyboards/zeix/singa/kohaku/config.h deleted file mode 100644 index 77970ce4d3..0000000000 --- a/keyboards/zeix/singa/kohaku/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2023 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/singa/kohaku/keyboard.json b/keyboards/zeix/singa/kohaku/keyboard.json deleted file mode 100644 index 542bad9c6f..0000000000 --- a/keyboards/zeix/singa/kohaku/keyboard.json +++ /dev/null @@ -1,698 +0,0 @@ -{ - "manufacturer": "SINGA", - "keyboard_name": "Kohaku", - "maintainer": "itsme-zeix", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "rgblight": true, - "bootmagic": true, - "extrakey": true, - "mousekey": true - }, - "indicators": { - "caps_lock": "GP29" - }, - "matrix_pins": { - "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"] - }, - "processor": "RP2040", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "brightness_steps": 8, - "led_count": 28, - "saturation_steps": 8, - "sleep": true - }, - "usb": { - "device_version": "0.0.1", - "pid": "0x8888", - "vid": "0x4C27" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP20" - }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75}, - {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, - {"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_65_iso_blocker_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [1, 7], "x": 15, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c b/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c deleted file mode 100644 index e58dd0c18a..0000000000 --- a/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2024 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT_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_BSPC, 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_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - -[1] = LAYOUT_all( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/zeix/singa/kohaku/matrix_diagram.md b/keyboards/zeix/singa/kohaku/matrix_diagram.md deleted file mode 100644 index 79cd5d0784..0000000000 --- a/keyboards/zeix/singa/kohaku/matrix_diagram.md +++ /dev/null @@ -1,30 +0,0 @@ -# Matrix Diagram for Singa Kohaku (Designed by Zeix) - -``` - ┌───┬───┐ - Split Backspace │16 │07 │ - └───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ -│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │17 │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ -│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter -│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ -│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ -│80 │90 │81 │83 │95 │ │86 │96 │97 │ -└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ -┌────┬───┐ -│60 │70 │ Split Left Shift -└────┴───┘ -┌────┬────┬────┬────────────────────────┬────┬────┐ -│80 │90 │81 │83 │85 │95 │ 6.25u -└────┴────┴────┴────────────────────────┴────┴────┘ -┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ -│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u) -└────┴────┴────┴───────────┴────┴───────┴────┴────┘ -┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ -│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u) -└────┴────┴────┴───────┴────┴───────────┴────┴────┘ -``` diff --git a/keyboards/zeix/singa/kohaku/readme.md b/keyboards/zeix/singa/kohaku/readme.md deleted file mode 100644 index 864f660e5c..0000000000 --- a/keyboards/zeix/singa/kohaku/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# SINGA Kohaku R2 (PCB designed by Zeix) - -![Layout Compatibility](https://i.imgur.com/2RaSZxG.png) - -65% PCB designed to support Kohaku R2. - -- Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) -- Hardware Supported: Singa Kohaku R2 (PCB designed by Zeix) -- Hardware Availability: https://singakbd.com/ - -Make example for this keyboard (after setting up your build environment): - - make zeix/singa/kohaku:default - -Flashing example for this keyboard: - - make zeix/singa/kohaku: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 top left key and plug in the keyboard. -- **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard. -- **Keycode in layout**: Press the key mapped to `QK_BOOT`. diff --git a/keyboards/zeix/singa/rubrehaku/config.h b/keyboards/zeix/singa/rubrehaku/config.h deleted file mode 100644 index e47dae35e6..0000000000 --- a/keyboards/zeix/singa/rubrehaku/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2024 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/singa/rubrehaku/keyboard.json b/keyboards/zeix/singa/rubrehaku/keyboard.json deleted file mode 100644 index 3dbed82aab..0000000000 --- a/keyboards/zeix/singa/rubrehaku/keyboard.json +++ /dev/null @@ -1,694 +0,0 @@ -{ - "manufacturer": "KLC", - "keyboard_name": "Rubrehaku", - "maintainer": "itsme-zeix", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgblight": true - }, - "indicators": { - "caps_lock": "GP29" - }, - "matrix_pins": { - "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], - "rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"] - }, - "processor": "RP2040", - "rgblight": { - "animations": { - "alternating": true, - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true, - "twinkle": true - }, - "default": { - "hue": 210, - "sat": 100, - "val": 8 - }, - "driver": "ws2812", - "led_count": 16, - "sleep": true - }, - "url": "https://klc-playground.com", - "usb": { - "device_version": "0.0.1", - "pid": "0x8889", - "vid": "0x4C27" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP20" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75}, - {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, - {"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_ansi_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_ansi_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_iso_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_iso_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - }, - "LAYOUT_iso_tsangan_split_bs": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 1, "y": 0}, - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [1, 1], "x": 3, "y": 0}, - {"matrix": [0, 2], "x": 4, "y": 0}, - {"matrix": [1, 2], "x": 5, "y": 0}, - {"matrix": [0, 3], "x": 6, "y": 0}, - {"matrix": [1, 3], "x": 7, "y": 0}, - {"matrix": [0, 4], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [0, 5], "x": 10, "y": 0}, - {"matrix": [1, 5], "x": 11, "y": 0}, - {"matrix": [0, 6], "x": 12, "y": 0}, - {"matrix": [1, 6], "x": 13, "y": 0}, - {"matrix": [0, 7], "x": 14, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [3, 0], "x": 1.5, "y": 1}, - {"matrix": [2, 1], "x": 2.5, "y": 1}, - {"matrix": [3, 1], "x": 3.5, "y": 1}, - {"matrix": [2, 2], "x": 4.5, "y": 1}, - {"matrix": [3, 2], "x": 5.5, "y": 1}, - {"matrix": [2, 3], "x": 6.5, "y": 1}, - {"matrix": [3, 3], "x": 7.5, "y": 1}, - {"matrix": [2, 4], "x": 8.5, "y": 1}, - {"matrix": [3, 4], "x": 9.5, "y": 1}, - {"matrix": [2, 5], "x": 10.5, "y": 1}, - {"matrix": [3, 5], "x": 11.5, "y": 1}, - {"matrix": [2, 6], "x": 12.5, "y": 1}, - {"matrix": [3, 7], "x": 15, "y": 1}, - {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [5, 0], "x": 1.75, "y": 2}, - {"matrix": [4, 1], "x": 2.75, "y": 2}, - {"matrix": [5, 1], "x": 3.75, "y": 2}, - {"matrix": [4, 2], "x": 4.75, "y": 2}, - {"matrix": [5, 2], "x": 5.75, "y": 2}, - {"matrix": [4, 3], "x": 6.75, "y": 2}, - {"matrix": [5, 3], "x": 7.75, "y": 2}, - {"matrix": [4, 4], "x": 8.75, "y": 2}, - {"matrix": [5, 4], "x": 9.75, "y": 2}, - {"matrix": [4, 5], "x": 10.75, "y": 2}, - {"matrix": [5, 5], "x": 11.75, "y": 2}, - {"matrix": [4, 6], "x": 12.75, "y": 2}, - {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [5, 7], "x": 15, "y": 2}, - {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 3}, - {"matrix": [6, 1], "x": 2.25, "y": 3}, - {"matrix": [7, 1], "x": 3.25, "y": 3}, - {"matrix": [6, 2], "x": 4.25, "y": 3}, - {"matrix": [7, 2], "x": 5.25, "y": 3}, - {"matrix": [6, 3], "x": 6.25, "y": 3}, - {"matrix": [7, 3], "x": 7.25, "y": 3}, - {"matrix": [6, 4], "x": 8.25, "y": 3}, - {"matrix": [7, 4], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [7, 5], "x": 11.25, "y": 3}, - {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 6], "x": 14, "y": 3}, - {"matrix": [7, 7], "x": 15, "y": 3}, - {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4}, - {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, - {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [8, 6], "x": 13, "y": 4}, - {"matrix": [9, 6], "x": 14, "y": 4}, - {"matrix": [9, 7], "x": 15, "y": 4} - ] - } - } -} diff --git a/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c b/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c deleted file mode 100644 index 17e226b98c..0000000000 --- a/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2024 zeix (@itsme-zeix) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[0] = LAYOUT_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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - -[1] = LAYOUT_all( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; diff --git a/keyboards/zeix/singa/rubrehaku/matrix_diagram.md b/keyboards/zeix/singa/rubrehaku/matrix_diagram.md deleted file mode 100644 index cd11c0070a..0000000000 --- a/keyboards/zeix/singa/rubrehaku/matrix_diagram.md +++ /dev/null @@ -1,30 +0,0 @@ -# Matrix Diagram for Rubrehaku - -``` - ┌───┬───┐ - Split Backspace │16 │07 │ - └───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ -│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ ┌─────┐ -│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter -│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ -│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ -│80 │90 │81 │83 │95 │ │86 │96 │97 │ -└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ -┌────┬───┐ -│60 │70 │ Split Left Shift -└────┴───┘ -┌────┬────┬────┬────────────────────────┬────┬────┐ -│80 │90 │81 │83 │85 │95 │ 6.25u -└────┴────┴────┴────────────────────────┴────┴────┘ -┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ -│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u) -└────┴────┴────┴───────────┴────┴───────┴────┴────┘ -┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ -│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u) -└────┴────┴────┴───────┴────┴───────────┴────┴────┘ -``` diff --git a/keyboards/zeix/singa/rubrehaku/readme.md b/keyboards/zeix/singa/rubrehaku/readme.md deleted file mode 100644 index f7fcc1f871..0000000000 --- a/keyboards/zeix/singa/rubrehaku/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# SINGA Rubrehaku (PCB designed by Zeix) - -![Layout Compatibility](https://i.imgur.com/jTkWkJd.png) - -65% PCB designed to support Rubrehaku - -* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) -* Hardware Supported: KLC x SINGA x Rubrehose Rubrehaku -* Hardware Availability: https://klc-playground.com/ - -Make example for this keyboard (after setting up your build environment): - - make zeix/singa/rubrehaku:default - -Flashing example for this keyboard: - - make zeix/singa/rubrehaku: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 top left key and plug in the keyboard. -* **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. diff --git a/keyboards/zfrontier/big_switch/keyboard.json b/keyboards/zfrontier/big_switch/keyboard.json index 48b6336887..2b2ceec094 100644 --- a/keyboards/zfrontier/big_switch/keyboard.json +++ b/keyboards/zfrontier/big_switch/keyboard.json @@ -10,6 +10,7 @@ }, "features": { "bootmagic": false, + "command": false, "console": true, "extrakey": false, "mousekey": false, diff --git a/keyboards/zicodia/tklfrlnrlmlao/keyboard.json b/keyboards/zicodia/tklfrlnrlmlao/keyboard.json index 6c592295e0..e7c7322f7e 100644 --- a/keyboards/zicodia/tklfrlnrlmlao/keyboard.json +++ b/keyboards/zicodia/tklfrlnrlmlao/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ziggurat/keyboard.json b/keyboards/ziggurat/keyboard.json index 873760bade..11ae657256 100644 --- a/keyboards/ziggurat/keyboard.json +++ b/keyboards/ziggurat/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Ziggurat", "manufacturer": "LaminarWoob", + "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x8F5D", @@ -9,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/zigotica/z12/keyboard.json b/keyboards/zigotica/z12/keyboard.json index 9af7b86eb0..2d3e92d6e2 100644 --- a/keyboards/zigotica/z12/keyboard.json +++ b/keyboards/zigotica/z12/keyboard.json @@ -14,12 +14,15 @@ {"pin_a": "B6", "pin_b": "B2"} ] }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "build": { "lto": true }, "features": { "bootmagic": false, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/zigotica/z34/keyboard.json b/keyboards/zigotica/z34/keyboard.json index c5d2cc8ae9..0a96fa0091 100644 --- a/keyboards/zigotica/z34/keyboard.json +++ b/keyboards/zigotica/z34/keyboard.json @@ -20,7 +20,8 @@ "resync": true } }, - "development_board": "promicro", + "processor": "atmega32u4", + "bootloader": "caterina", "matrix_pins": { "direct": [ ["C6", "F7", "F6", "F5", "F4"], diff --git a/keyboards/ziptyze/lets_split_v3/keyboard.json b/keyboards/ziptyze/lets_split_v3/keyboard.json index b3a22c8b2f..ca53b42240 100644 --- a/keyboards/ziptyze/lets_split_v3/keyboard.json +++ b/keyboards/ziptyze/lets_split_v3/keyboard.json @@ -7,6 +7,8 @@ "processor": "RP2040", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "rgb_matrix": true diff --git a/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c b/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c index cd899c8a89..d640e1bf23 100644 --- a/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c +++ b/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [3] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/zj68/keyboard.json b/keyboards/zj68/keyboard.json index cc53f87cf6..9273b81cd5 100644 --- a/keyboards/zj68/keyboard.json +++ b/keyboards/zj68/keyboard.json @@ -10,6 +10,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/zlabkeeb/vrynboard/config.h b/keyboards/zlabkeeb/vrynboard/config.h deleted file mode 100644 index 329e5a8757..0000000000 --- a/keyboards/zlabkeeb/vrynboard/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2024 zlabkeeb (zlabkeeb@gmail.com) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define OLED_TIMEOUT 180000 -#define I2C1_SDA_PIN GP26 -#define I2C1_SCL_PIN GP27 -#define I2C_DRIVER I2CD1 -#define DYNAMIC_KEYMAP_MACRO_COUNT 30 -#define WEAR_LEVELING_BACKING_SIZE 16384 diff --git a/keyboards/zlabkeeb/vrynboard/keyboard.json b/keyboards/zlabkeeb/vrynboard/keyboard.json deleted file mode 100644 index e1f0881504..0000000000 --- a/keyboards/zlabkeeb/vrynboard/keyboard.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "manufacturer": "zlabkeeb", - "keyboard_name": "VRYNBOARD", - "maintainer": "zlabkeeb", - "bootloader": "rp2040", - "build": { - "lto": true - }, - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["GP13", "GP11", "GP9"], - "rows": ["GP14", "GP12", "GP10", "GP8"] - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "cycle_all": true, - "cycle_up_down": true, - "cycle_out_in": true, - "cycle_pinwheel": true, - "dual_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_fractal": true, - "pixel_flow": true, - "pixel_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_multiwide": true, - "solid_reactive_multicross": true, - "solid_reactive_multinexus": true, - "multisplash": true, - "solid_multisplash": true - }, - "driver": "ws2812", - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, - {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, - {"matrix": [1, 1], "x": 112, "y": 21, "flags": 4}, - {"matrix": [1, 2], "x": 224, "y": 21, "flags": 4}, - {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, - {"matrix": [2, 1], "x": 112, "y": 43, "flags": 4}, - {"matrix": [2, 2], "x": 224, "y": 43, "flags": 4}, - {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, - {"matrix": [3, 1], "x": 112, "y": 64, "flags": 4}, - {"matrix": [3, 2], "x": 224, "y": 64, "flags": 4} - ], - "max_brightness": 200, - "sat_steps": 8, - "speed_steps": 10, - "val_steps": 8, - "react_on_keyup": true, - "sleep": true - }, - "ws2812": { - "driver": "vendor", - "pin": "GP15" - }, - "processor": "RP2040", - "url": "https://github.com/zlabkeeb", - "usb": { - "device_version": "1.0.0", - "pid": "0x4445", - "vid": "0x4154" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3} - ] - } - } -} diff --git a/keyboards/zlabkeeb/vrynboard/keymaps/default/keymap.c b/keyboards/zlabkeeb/vrynboard/keymaps/default/keymap.c deleted file mode 100644 index b6bb1b95eb..0000000000 --- a/keyboards/zlabkeeb/vrynboard/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2024 zlabkeeb (zlabkeeb@gmail.com) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT( - QK_KB_0, - KC_VOLD, KC_MUTE, KC_VOLU, - KC_LEFT, KC_MPLY, KC_RGHT, - KC_ESC, KC_PSCR, KC_DEL - ), - - [1] = LAYOUT( - QK_KB_0, - KC_1, KC_2, KC_3, - KC_4, KC_6, KC_7, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT( - QK_KB_0, - KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT( - QK_KB_0, - UG_NEXT, UG_TOGG, UG_PREV, - UG_HUED, KC_ESC, UG_HUEU, - UG_VALD, KC_ENT, UG_VALU - ) -}; diff --git a/keyboards/zlabkeeb/vrynboard/readme.md b/keyboards/zlabkeeb/vrynboard/readme.md deleted file mode 100644 index a7b8e2e86c..0000000000 --- a/keyboards/zlabkeeb/vrynboard/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# VRYNBOARD - -![VRYNBOARD](https://i.imgur.com/GFtvJ2S.jpg) - -VRYNBOARD is a Macropad With 10 Keys & Oled Layer Indicator - -- Keyboard Maintainer: [zlabkeeb](https://github.com/zlabkeeb) -- Hardware Supported: VRYNBOARD PCB, RP2040 ZERO -- Hardware Availability: (INDONESIA ONLY) Will be available at [Tokopedia](https://www.tokopedia.com/zahranetid) - -Make example for this keyboard (after setting up your build environment): - - make zlabkeeb/vrynboard:default - -Flashing example for this keyboard: - - make zlabkeeb/vrynboard: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 2 ways: - -- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zlabkeeb/vrynboard/vrynboard.c b/keyboards/zlabkeeb/vrynboard/vrynboard.c deleted file mode 100644 index 5a1a3717f0..0000000000 --- a/keyboards/zlabkeeb/vrynboard/vrynboard.c +++ /dev/null @@ -1,284 +0,0 @@ -/* -Copyright 2024 zlabkeeb (zlabkeeb@gmail.com) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - - -#include "quantum.h" - -#define LOGO_TIMEOUT 3000 -static uint32_t logo_timer = 0; -static bool display_logo = true; - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -static void render_logo(void) { - static const char zlabkeeb[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF8, 0xF8, 0xF0, 0x80, 0xF8, - 0xF8, 0xF8, 0x80, 0x80, 0xF8, 0xF8, 0xF0, 0x80, 0xF0, 0xF8, 0xF8, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEF, - 0xEF, 0xFF, 0xFF, 0x41, 0x41, 0x41, 0x61, 0x71, 0x3D, 0x1D, 0x19, 0x81, - 0xC1, 0xE1, 0xF1, 0x3F, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xEF, 0xEF, 0xEE, - 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, - 0xF0, 0x70, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x80, 0x00, - 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xF0, - 0xE0, 0xC0, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x80, 0xE0, 0xF0, 0xF0, - 0x70, 0x30, 0x10, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xF0, - 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x9C, 0x9C, 0xFF, 0xFF, 0x00, - 0x0C, 0x1C, 0x1C, 0x38, 0xE0, 0x00, 0x00, 0x60, 0x71, 0x71, 0x38, 0x0C, - 0x0C, 0x0C, 0x0C, 0xFF, 0xFF, 0x9C, 0x9C, 0x9C, 0x00, 0x00, 0x00, 0xC0, - 0xF0, 0xF8, 0xFC, 0xFF, 0xFF, 0xEF, 0xE7, 0xE3, 0xE0, 0xE0, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xF0, 0xFC, 0xFF, - 0x7F, 0x3F, 0x3B, 0x3B, 0x3F, 0x7F, 0xFF, 0xFC, 0xF0, 0xC0, 0xFF, 0xFF, - 0xFF, 0xFF, 0xEF, 0xEF, 0xEF, 0xEF, 0xFF, 0xFF, 0xFF, 0x78, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x3F, 0xFF, 0xF9, 0xF0, 0xE0, 0x80, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xE0, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xE0, 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0xEF, 0xEF, 0xEF, 0xEF, 0xFF, 0xFF, 0xFF, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x03, 0x03, 0x07, 0x0F, 0x7C, 0x7C, 0x7C, 0x0C, 0x7C, - 0x7F, 0x7E, 0x0C, 0x0C, 0x7C, 0x7C, 0x7C, 0x0C, 0x7C, 0x7C, 0x7C, 0x0F, - 0x07, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(zlabkeeb, sizeof(zlabkeeb)); -} - -void layer0(void) { - static const char iniLayer0[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, - 0x01, 0x03, 0x07, 0xff, 0xff, 0xc7, 0xc3, 0xe1, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, - 0x80, 0xc0, 0xe0, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, - 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, - 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, - 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(iniLayer0, sizeof(iniLayer0)); -} -void layer1(void) { - static const char iniLayer1[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, - 0x03, 0x07, 0xff, 0xff, 0xe3, 0xe1, 0xf0, 0xf8, 0xf8, 0x78, 0x30, 0x01, 0x03, 0x87, 0xff, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, - 0xc0, 0xe0, 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x21, 0x30, 0x38, 0x3c, 0x3e, 0x3f, 0x3f, 0xff, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, - 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, - 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(iniLayer1, sizeof(iniLayer1)); -} -void layer2(void) { - static const char iniLayer2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, 0x07, - 0xff, 0xff, 0xf3, 0xf1, 0xf0, 0x78, 0x78, 0x78, 0x38, 0x00, 0x01, 0x83, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, 0xe0, - 0xff, 0xff, 0xcf, 0x8f, 0x0f, 0x1e, 0x3e, 0x3e, 0x3e, 0x1c, 0x00, 0x80, 0xc3, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, - 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, - 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, 0x00, - 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(iniLayer2, sizeof(iniLayer2)); -} -void layer3(void) { - static const char iniLayer3[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, 0x07, 0xff, - 0xff, 0xff, 0x3f, 0x1f, 0x0f, 0x83, 0xc1, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, 0xe0, 0xff, - 0xe3, 0xe0, 0xe0, 0xe0, 0xe2, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, - 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, - 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, - 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(iniLayer3, sizeof(iniLayer3)); -} - -void default_status(void) { - switch (get_highest_layer(layer_state)) { - case 0: - layer0(); - break; - case 1: - layer1(); - break; - case 2: - layer2(); - break; - case 3: - layer3(); - break; - default: - layer0(); - break; - } -} - -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - if (display_logo && timer_elapsed32(logo_timer) > LOGO_TIMEOUT) { - display_logo = false; - oled_clear(); - logo_timer = 0; - } - if (display_logo) { - render_logo(); - } else { - default_status(); - } - - return false; -} - -enum custom_keycodes { - OLED_LAYER_UPDATE = QK_KB_0, -}; - - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { - case OLED_LAYER_UPDATE: - layer_move((get_highest_layer(layer_state) + 1) % 4); - return false; - } - } - return process_record_user(keycode, record); -} diff --git a/keyboards/zlant/keyboard.json b/keyboards/zlant/keyboard.json index 4185d22d94..965a259c3b 100644 --- a/keyboards/zlant/keyboard.json +++ b/keyboards/zlant/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Zlant", "manufacturer": "Matthew Cordier", + "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/zlant_xl/keyboard.json b/keyboards/zlant_xl/keyboard.json deleted file mode 100644 index 540f1e7506..0000000000 --- a/keyboards/zlant_xl/keyboard.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "manufacturer": "Ziptyze", - "keyboard_name": "ZlantXL", - "maintainer": "chrisgve", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D6", "D5", "C7", "C5", "D3", "D4"], - "rows": ["C4", "C6", "B1", "B0", "B3", "B2", "B5", "B4", "B7", "B6"] - }, - "processor": "atmega32u2", - "usb": { - "device_version": "0.0.1", - "pid": "0x6800", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [1, 0], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 1], "x": 2, "y": 0}, - {"label": "3", "matrix": [1, 1], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 2], "x": 4, "y": 0}, - {"label": "5", "matrix": [1, 2], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 3], "x": 6, "y": 0}, - {"label": "7", "matrix": [1, 3], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 4], "x": 8, "y": 0}, - {"label": "9", "matrix": [1, 4], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 5], "x": 10, "y": 0}, - {"label": "Del", "matrix": [1, 5], "x": 11, "y": 0}, - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1}, - {"label": "Q", "matrix": [3, 0], "x": 1, "y": 1}, - {"label": "W", "matrix": [2, 1], "x": 2, "y": 1}, - {"label": "E", "matrix": [3, 1], "x": 3, "y": 1}, - {"label": "R", "matrix": [2, 2], "x": 4, "y": 1}, - {"label": "T", "matrix": [3, 2], "x": 5, "y": 1}, - {"label": "Y", "matrix": [2, 3], "x": 6, "y": 1}, - {"label": "U", "matrix": [3, 3], "x": 7, "y": 1}, - {"label": "I", "matrix": [2, 4], "x": 8, "y": 1}, - {"label": "O", "matrix": [3, 4], "x": 9, "y": 1}, - {"label": "P", "matrix": [2, 5], "x": 10, "y": 1}, - {"label": "Backspace", "matrix": [3, 5], "x": 11, "y": 1}, - {"label": "Keycaps", "matrix": [4, 0], "x": 0, "y": 2}, - {"label": "A", "matrix": [5, 0], "x": 1, "y": 2}, - {"label": "S", "matrix": [4, 1], "x": 2, "y": 2}, - {"label": "D", "matrix": [5, 1], "x": 3, "y": 2}, - {"label": "F", "matrix": [4, 2], "x": 4, "y": 2}, - {"label": "G", "matrix": [5, 2], "x": 5, "y": 2}, - {"label": "H", "matrix": [4, 3], "x": 6, "y": 2}, - {"label": "J", "matrix": [5, 3], "x": 7, "y": 2}, - {"label": "K", "matrix": [4, 4], "x": 8, "y": 2}, - {"label": "L", "matrix": [5, 4], "x": 9, "y": 2}, - {"label": ";", "matrix": [4, 5], "x": 10, "y": 2}, - {"label": "'", "matrix": [5, 5], "x": 11, "y": 2}, - {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3}, - {"label": "Z", "matrix": [7, 0], "x": 1, "y": 3}, - {"label": "X", "matrix": [6, 1], "x": 2, "y": 3}, - {"label": "C", "matrix": [7, 1], "x": 3, "y": 3}, - {"label": "V", "matrix": [6, 2], "x": 4, "y": 3}, - {"label": "B", "matrix": [7, 2], "x": 5, "y": 3}, - {"label": "N", "matrix": [6, 3], "x": 6, "y": 3}, - {"label": "M", "matrix": [7, 3], "x": 7, "y": 3}, - {"label": ",", "matrix": [6, 4], "x": 8, "y": 3}, - {"label": ".", "matrix": [7, 4], "x": 9, "y": 3}, - {"label": "/", "matrix": [6, 5], "x": 10, "y": 3}, - {"label": "Enter", "matrix": [7, 5], "x": 11, "y": 3}, - {"label": "", "matrix": [8, 0], "x": 0, "y": 4}, - {"label": "Ctrl", "matrix": [9, 0], "x": 1, "y": 4}, - {"label": "Alt", "matrix": [8, 1], "x": 2, "y": 4}, - {"label": "GUI", "matrix": [9, 1], "x": 3, "y": 4}, - {"label": "MO(2)", "matrix": [8, 2], "x": 4, "y": 4}, - {"label": " ", "matrix": [9, 2], "x": 5, "y": 4}, - {"label": " ", "matrix": [8, 3], "x": 6, "y": 4}, - {"label": "MO(1)", "matrix": [9, 3], "x": 7, "y": 4}, - {"label": "Left", "matrix": [8, 4], "x": 8, "y": 4}, - {"label": "Down", "matrix": [9, 4], "x": 9, "y": 4}, - {"label": "Up", "matrix": [8, 5], "x": 10, "y": 4}, - {"label": "Right", "matrix": [9, 5], "x": 11, "y": 4} - ] - } - } -} diff --git a/keyboards/zlant_xl/keymaps/default/keymap.c b/keyboards/zlant_xl/keymaps/default/keymap.c deleted file mode 100644 index c92960048f..0000000000 --- a/keyboards/zlant_xl/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2024 Christian C. Berclaz - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum layers { - BASE, - FN -}; - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - _______, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - [FN] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY - ) -}; -// clang-format on diff --git a/keyboards/zlant_xl/readme.md b/keyboards/zlant_xl/readme.md deleted file mode 100644 index aab5746096..0000000000 --- a/keyboards/zlant_xl/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# ZLANT XL - -![ZLANT XL](https://imgur.com/Vcmjwro.jpg) -_A unique 50% mechanical keyboard that uses a slanted ortholinear layout_ - -- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve) -- Hardware Supported: Zlant XL w/Ziptyze's atmega32u2 powered controller [The Rune](https://1upkeyboards.com/shop/controllers/the-rune-by-ziptyze/) -- Hardware Availability: [1UP Keyboards](https://1upkeyboards.com/shop/keyboard-kits/diy-40-kits/zlantxl-50-mechanical-keyboard-kit/) - -Make example for this keyboard (after setting up your build environment): - - make zlant_xl:default - -Flashing example for this keyboard: - - make zlant_xl:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -- **Physical reset button**: Briefly press the button on the back of the board (button on The Rune) -- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zoo/wampus/keyboard.json b/keyboards/zoo/wampus/keyboard.json index 966adbf592..3e65c50231 100644 --- a/keyboards/zoo/wampus/keyboard.json +++ b/keyboards/zoo/wampus/keyboard.json @@ -11,6 +11,8 @@ "features": { "backlight": true, "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/zos/65s/keyboard.json b/keyboards/zos/65s/keyboard.json index dbaa2ac418..eaf8a97f86 100644 --- a/keyboards/zos/65s/keyboard.json +++ b/keyboards/zos/65s/keyboard.json @@ -6,6 +6,8 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/zsa/moonlander/keymaps/default/keymap.c b/keyboards/zsa/moonlander/keymaps/default/keymap.c index 899b2d559b..ad7705eff8 100644 --- a/keyboards/zsa/moonlander/keymaps/default/keymap.c +++ b/keyboards/zsa/moonlander/keymaps/default/keymap.c @@ -47,16 +47,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______, _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______, - EE_CLR, _______, _______, _______, _______, RM_VALU, RM_TOGG, _______, KC_DOT, KC_0, KC_EQL, _______, - RM_HUED, RM_VALD, RM_HUEU, TOGGLE_LAYER_COLOR,_______, _______ + EE_CLR, _______, _______, _______, _______, RGB_VAI, RGB_TOG, _______, KC_DOT, KC_0, KC_EQL, _______, + RGB_HUD, RGB_VAD, RGB_HUI, TOGGLE_LAYER_COLOR,_______, _______ ), [MDIA] = LAYOUT( LED_LEVEL,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, MS_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______, - _______, _______, _______, MS_BTN1, MS_BTN2, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, + _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/zsa/moonlander/matrix.c b/keyboards/zsa/moonlander/matrix.c index 4e5c120950..867fa85a66 100644 --- a/keyboards/zsa/moonlander/matrix.c +++ b/keyboards/zsa/moonlander/matrix.c @@ -127,7 +127,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { matrix_io_delay(); } // read col data - data = ((gpio_read_pin(A0) << 0) | (gpio_read_pin(A1) << 1) | (gpio_read_pin(A2) << 2) | (gpio_read_pin(A3) << 3) | (gpio_read_pin(A6) << 4) | (gpio_read_pin(A7) << 5) | (gpio_read_pin(B0) << 6)); + data = ((readPin(A0) << 0) | (readPin(A1) << 1) | (readPin(A2) << 2) | (readPin(A3) << 3) | (readPin(A6) << 4) | (readPin(A7) << 5) | (readPin(B0) << 6)); // unstrobe row switch (row) { case 0: diff --git a/keyboards/zsa/moonlander/moonlander.c b/keyboards/zsa/moonlander/moonlander.c index 999fcbe1dd..14405fc412 100644 --- a/keyboards/zsa/moonlander/moonlander.c +++ b/keyboards/zsa/moonlander/moonlander.c @@ -275,7 +275,6 @@ bool music_mask_kb(uint16_t keycode) { case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: @@ -369,7 +368,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { eeconfig_update_kb(keyboard_config.raw); } break; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -405,7 +404,7 @@ void keyboard_post_init_kb(void) { is_launching = true; defer_exec(500, startup_exec, NULL); #endif - keyboard_post_init_user(); + matrix_init_user(); } void eeconfig_init_kb(void) { // EEPROM is getting reset! diff --git a/keyboards/zsa/planck_ez/base/rules.mk b/keyboards/zsa/planck_ez/base/rules.mk deleted file mode 100644 index c0b951fba9..0000000000 --- a/keyboards/zsa/planck_ez/base/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_SUPPORTED = no -BACKLIGHT_SUPPORTED = no diff --git a/keyboards/zsa/planck_ez/glow/rules.mk b/keyboards/zsa/planck_ez/glow/rules.mk deleted file mode 100644 index c0b951fba9..0000000000 --- a/keyboards/zsa/planck_ez/glow/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_SUPPORTED = no -BACKLIGHT_SUPPORTED = no diff --git a/keyboards/zsa/planck_ez/keymaps/default/keymap.json b/keyboards/zsa/planck_ez/keymaps/default/keymap.json index b9f0cd2ae4..4b27cc2970 100644 --- a/keyboards/zsa/planck_ez/keymaps/default/keymap.json +++ b/keyboards/zsa/planck_ez/keymaps/default/keymap.json @@ -5,7 +5,7 @@ ["KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "KC_ESC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "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_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT", "CW_TOGG", "KC_LCTL", "KC_LALT", "KC_LGUI", "TL_LOWR", "KC_SPC", "TL_UPPR", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"], ["KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "S(KC_NUHS)", "S(KC_NUBS)", "KC_HOME", "KC_END", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"], ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_NUHS", "KC_NUBS", "KC_PGUP", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"], - ["KC_TRNS", "QK_BOOT", "DB_TOGG", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "KC_DEL", "KC_TRNS", "KC_TRNS", "MU_NEXT", "AU_ON", "AU_OFF", "AG_NORM", "AG_SWAP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "AU_PREV", "AU_NEXT", "MU_ON", "MU_OFF", "MI_ON", "MI_OFF", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] + ["KC_TRNS", "QK_BOOT", "DB_TOGG", "RGB_TOG", "RGB_MOD", "RGB_HUI", "RGB_HUD", "RGB_SAI", "RGB_SAD", "RGB_VAI", "RGB_VAD", "KC_DEL", "KC_TRNS", "KC_TRNS", "MU_NEXT", "AU_ON", "AU_OFF", "AG_NORM", "AG_SWAP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "AU_PREV", "AU_NEXT", "MU_ON", "MU_OFF", "MI_ON", "MI_OFF", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] ], "layout": "LAYOUT_planck_1x2uC", "config": { diff --git a/keyboards/zsa/planck_ez/planck_ez.c b/keyboards/zsa/planck_ez/planck_ez.c index ff82f43c66..9c0e911654 100644 --- a/keyboards/zsa/planck_ez/planck_ez.c +++ b/keyboards/zsa/planck_ez/planck_ez.c @@ -206,7 +206,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { eeconfig_update_kb(keyboard_config.raw); } break; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { @@ -237,7 +237,6 @@ bool music_mask_kb(uint16_t keycode) { case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: diff --git a/keyboards/zsa/planck_ez/rules.mk b/keyboards/zsa/planck_ez/rules.mk new file mode 100644 index 0000000000..67921c96ed --- /dev/null +++ b/keyboards/zsa/planck_ez/rules.mk @@ -0,0 +1,4 @@ +RGBLIGHT_SUPPORTED = no +BAKCLIGHT_SUPPORTED = no + +DEFAULT_FOLDER = zsa/planck_ez/base diff --git a/keyboards/zsa/voyager/keymaps/default/keymap.c b/keyboards/zsa/voyager/keymaps/default/keymap.c index 3004c33222..e05794de75 100644 --- a/keyboards/zsa/voyager/keymaps/default/keymap.c +++ b/keyboards/zsa/voyager/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_0 ), [2] = LAYOUT( - RM_TOGG, QK_KB, RM_NEXT, RGB_M_P, RM_VALD, RM_VALU, _______, _______, _______, _______, _______, QK_BOOT, + RGB_TOG, QK_KB, RGB_MOD, RGB_M_P, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MSTP, KC_MPLY, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, C(S(KC_TAB)), C(KC_TAB), _______, _______, _______, diff --git a/keyboards/zsa/voyager/voyager.c b/keyboards/zsa/voyager/voyager.c index b7ca8f748f..69d42bba1a 100644 --- a/keyboards/zsa/voyager/voyager.c +++ b/keyboards/zsa/voyager/voyager.c @@ -121,7 +121,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -249,7 +249,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (keyboard_config.disable_layer_led) rgb_matrix_set_color_all(0, 0, 0); } break; - case QK_RGB_MATRIX_TOGGLE: + case RGB_TOG: if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { diff --git a/keyboards/ztboards/after/keyboard.json b/keyboards/ztboards/after/keyboard.json index fe80cd848e..1b02390837 100644 --- a/keyboards/ztboards/after/keyboard.json +++ b/keyboards/ztboards/after/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ztboards/noon/keyboard.json b/keyboards/ztboards/noon/keyboard.json index e0f8253394..a3f9912acc 100644 --- a/keyboards/ztboards/noon/keyboard.json +++ b/keyboards/ztboards/noon/keyboard.json @@ -10,6 +10,8 @@ }, "features": { "bootmagic": true, + "command": false, + "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/zvecr/split_blackpill/config.h b/keyboards/zvecr/split_blackpill/config.h index 59582a9726..efc3bbe66a 100644 --- a/keyboards/zvecr/split_blackpill/config.h +++ b/keyboards/zvecr/split_blackpill/config.h @@ -2,6 +2,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +#define SELECT_SOFT_SERIAL_SPEED 0 + #define WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 1 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 diff --git a/keyboards/zvecr/split_blackpill/keyboard.json b/keyboards/zvecr/split_blackpill/keyboard.json index 2884b790d7..d22914d3bd 100644 --- a/keyboards/zvecr/split_blackpill/keyboard.json +++ b/keyboards/zvecr/split_blackpill/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "split_blackpill", "manufacturer": "zvecr", + "url": "", "maintainer": "zvecr", "usb": { "vid": "0x5A56", @@ -27,8 +28,7 @@ }, "serial": { "driver": "usart", - "pin": "B6", - "speed": 0 + "pin": "B6" }, "bootmagic": { "matrix": [4, 0] diff --git a/keyboards/zvecr/zv48/config.h b/keyboards/zvecr/zv48/config.h index ab9ca3355b..9e8c2656a9 100644 --- a/keyboards/zvecr/zv48/config.h +++ b/keyboards/zvecr/zv48/config.h @@ -3,6 +3,7 @@ #pragma once +//#define SELECT_SOFT_SERIAL_SPEED 0 #define SERIAL_USART_SPEED 921600 #define WS2812_PWM_DRIVER PWMD3 diff --git a/keyboards/zvecr/zv48/info.json b/keyboards/zvecr/zv48/info.json index 0a6e8f7ae9..39a05a61e6 100644 --- a/keyboards/zvecr/zv48/info.json +++ b/keyboards/zvecr/zv48/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "zv48", "manufacturer": "zvecr", + "url": "", "maintainer": "zvecr", "usb": { "vid": "0x5A56", diff --git a/keyboards/zwag/zwag75/keyboard.json b/keyboards/zwag/zwag75/keyboard.json index 646431dcfe..03b97cefc8 100644 --- a/keyboards/zwag/zwag75/keyboard.json +++ b/keyboards/zwag/zwag75/keyboard.json @@ -1,6 +1,7 @@ { "keyboard_name": "Zwag75", "manufacturer": "Zwag.gg", + "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5102", @@ -18,6 +19,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": false, "rgblight": true }, diff --git a/keyboards/zwerg/keyboard.json b/keyboards/zwerg/keyboard.json deleted file mode 100644 index 8239269b79..0000000000 --- a/keyboards/zwerg/keyboard.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "manufacturer": "floookay", - "keyboard_name": "zwerg", - "maintainer": "floookay", - "bootloader_instructions": "Press the reset button on the Gemini controller or right-side-bottom-right + esc", - "tags": ["ortho", "split", "40%", "OSHW"], - "processor": "RP2040", - "bootloader": "rp2040", - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], - "rows": ["GP28", "GP27", "GP26", "GP15", "GP14"] - }, - "split": { - "enabled": true, - "serial": { - "driver": "vendor", - "pin": "GP13" - } - }, - "usb": { - "device_version": "1.0.0", - "pid": "0x7EEE", - "vid": "0xF100" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [5, 5], "x": 8, "y": 0}, - {"matrix": [5, 4], "x": 9, "y": 0}, - {"matrix": [5, 3], "x": 10, "y": 0}, - {"matrix": [5, 2], "x": 11, "y": 0}, - {"matrix": [5, 1], "x": 12, "y": 0}, - {"matrix": [5, 0], "x": 13, "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": [1, 5], "x": 5, "y": 1}, - - {"matrix": [6, 5], "x": 8, "y": 1}, - {"matrix": [6, 4], "x": 9, "y": 1}, - {"matrix": [6, 3], "x": 10, "y": 1}, - {"matrix": [6, 2], "x": 11, "y": 1}, - {"matrix": [6, 1], "x": 12, "y": 1}, - {"matrix": [6, 0], "x": 13, "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": [2, 5], "x": 5, "y": 2}, - - {"matrix": [7, 5], "x": 8, "y": 2}, - {"matrix": [7, 4], "x": 9, "y": 2}, - {"matrix": [7, 3], "x": 10, "y": 2}, - {"matrix": [7, 2], "x": 11, "y": 2}, - {"matrix": [7, 1], "x": 12, "y": 2}, - {"matrix": [7, 0], "x": 13, "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}, - - {"matrix": [8, 4], "x": 9, "y": 3}, - {"matrix": [8, 3], "x": 10, "y": 3}, - {"matrix": [8, 2], "x": 11, "y": 3}, - {"matrix": [8, 1], "x": 12, "y": 3}, - {"matrix": [8, 0], "x": 13, "y": 3}, - - {"matrix": [4, 4], "x": 5, "y": 5, "h": 1.5}, - {"matrix": [4, 5], "x": 6, "y": 5, "h": 1.5}, - - {"matrix": [9, 5], "x": 8, "y": 5, "h": 1.5}, - {"matrix": [9, 4], "x": 9, "y": 5, "h": 1.5} - ] - } - } -} diff --git a/keyboards/zwerg/keymaps/default/keymap.c b/keyboards/zwerg/keymaps/default/keymap.c deleted file mode 100644 index 81132bbe96..0000000000 --- a/keyboards/zwerg/keymaps/default/keymap.c +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - * │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│ - * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - * │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - * │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│ - * ├───┼───┼───┼───┼───┼───┘ └───┼───┼───┼───┼───┼───┤ - * │Esc│lsu│rcl│Alt│Rai| ┌───┬───┐ ┌───┬───┐ │Low│AGr│Men│rcl│Cnf│ - * └───┴───┴───┴───┴───┘ │Spc│Del│ │Ent│Spc│ └───┴───┴───┴───┴───┘ - * │ │ │ │ │ │ - * └───┴───┘ └───┴───┘ - */ - [0] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_ESC, KC_LGUI, KC_RCTL, KC_LALT, MO(2), MO(1), KC_RALT, KC_APP, KC_RCTL, MO(3), - KC_SPC, KC_DEL, KC_ENT, KC_SPC - ), - [1] = LAYOUT( - _______, _______, KC_VOLU, KC_MUTE, KC_VOLD, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, - _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, - _______, _______, _______, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ - ), - [2] = LAYOUT( - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ - ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ - ) -}; diff --git a/keyboards/zwerg/readme.md b/keyboards/zwerg/readme.md deleted file mode 100644 index 5fe045bffc..0000000000 --- a/keyboards/zwerg/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# zwerg - -![zwerg](https://i.imgur.com/hkFLvd2.jpeg) - -A 40% ortholinear split keyboard. - -* Keyboard Maintainer: [floookay](https://github.com/floookay) -* Hardware Supported: zwerg pcbs with 0xcb Gemini -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make zwerg:default - -Flashing example for this keyboard: - - make zwerg:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the Gemini controller -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zykrah/fuyu/keyboard.json b/keyboards/zykrah/fuyu/keyboard.json index db4236b698..01053d4821 100644 --- a/keyboards/zykrah/fuyu/keyboard.json +++ b/keyboards/zykrah/fuyu/keyboard.json @@ -13,6 +13,8 @@ "bootmagic": false, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/zykrah/fuyu_hs/config.h b/keyboards/zykrah/fuyu_hs/config.h deleted file mode 100644 index 767cc3f69a..0000000000 --- a/keyboards/zykrah/fuyu_hs/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2024 Zykrah - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zykrah/fuyu_hs/keyboard.json b/keyboards/zykrah/fuyu_hs/keyboard.json deleted file mode 100644 index de5530b8de..0000000000 --- a/keyboards/zykrah/fuyu_hs/keyboard.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "keyboard_name": "Fuyu Hotswap", - "maintainer": "zykrah", - "manufacturer": "Zykrah", - "processor": "RP2040", - "bootloader": "rp2040", - "usb": { - "device_version": "0.0.1", - "pid": "0x4648", - "vid": "0x7A79" - }, - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 6 - }, - "matrix_pins": { - "rows": ["GP13", "GP12", "GP11", "GP10", "GP15", "GP14"], - "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP2", "GP1", "GP0"] - }, - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true - }, - "default": { - "val": 150 - }, - "driver": "ws2812", - "max_brightness": 200, - "layout": [ - {"x": 112, "y": 32, "flags": 8}, - {"x": 138, "y": 17, "flags": 8}, - {"x": 112, "y": 2, "flags": 8}, - {"x": 86, "y": 17, "flags": 8}, - {"x": 86, "y": 47, "flags": 8}, - {"x": 112, "y": 62, "flags": 8}, - {"x": 138, "y": 47, "flags": 8}, - {"x": 0, "y": 0, "flags": 2}, - {"x": 16, "y": 0, "flags": 2}, - {"x": 32, "y": 0, "flags": 2}, - {"x": 48, "y": 0, "flags": 2}, - {"x": 64, "y": 0, "flags": 2}, - {"x": 80, "y": 0, "flags": 2}, - {"x": 96, "y": 0, "flags": 2}, - {"x": 112, "y": 0, "flags": 2}, - {"x": 128, "y": 0, "flags": 2}, - {"x": 144, "y": 0, "flags": 2}, - {"x": 160, "y": 0, "flags": 2}, - {"x": 176, "y": 0, "flags": 2}, - {"x": 192, "y": 0, "flags": 2}, - {"x": 208, "y": 0, "flags": 2}, - {"x": 208, "y": 16, "flags": 2}, - {"x": 208, "y": 32, "flags": 2}, - {"x": 208, "y": 48, "flags": 2}, - {"x": 208, "y": 64, "flags": 2}, - {"x": 192, "y": 64, "flags": 2}, - {"x": 176, "y": 64, "flags": 2}, - {"x": 160, "y": 64, "flags": 2}, - {"x": 144, "y": 64, "flags": 2}, - {"x": 128, "y": 64, "flags": 2}, - {"x": 112, "y": 64, "flags": 2}, - {"x": 96, "y": 64, "flags": 2}, - {"x": 80, "y": 64, "flags": 2}, - {"x": 64, "y": 64, "flags": 2}, - {"x": 48, "y": 64, "flags": 2}, - {"x": 32, "y": 64, "flags": 2}, - {"x": 16, "y": 64, "flags": 2}, - {"x": 0, "y": 64, "flags": 2}, - {"x": 0, "y": 48, "flags": 2}, - {"x": 0, "y": 32, "flags": 2}, - {"x": 0, "y": 16, "flags": 2} - ] - }, - "url": "https://github.com/zykrah/fuyu", - "ws2812": { - "driver": "vendor", - "pin": "GP3" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25}, - {"matrix": [3, 13], "x": 14, "y": 1.25}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 14], "x": 15.25, "y": 3.25}, - {"matrix": [3, 15], "x": 16.25, "y": 3.25}, - {"matrix": [3, 16], "x": 17.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4.25}, - {"matrix": [4, 14], "x": 15.25, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [4, 16], "x": 17.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_numpad": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 14], "x": 15.25, "y": 3.25}, - {"matrix": [3, 15], "x": 16.25, "y": 3.25}, - {"matrix": [3, 16], "x": 17.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 14], "x": 15.25, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [4, 16], "x": 17.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - }, - "LAYOUT_tkl_ansi_tsangan_numpad": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - {"matrix": [1, 15], "x": 16.25, "y": 1.25}, - {"matrix": [1, 16], "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - {"matrix": [2, 15], "x": 16.25, "y": 2.25}, - {"matrix": [2, 16], "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 14], "x": 15.25, "y": 3.25}, - {"matrix": [3, 15], "x": 16.25, "y": 3.25}, - {"matrix": [3, 16], "x": 17.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, - {"matrix": [4, 14], "x": 15.25, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - {"matrix": [4, 16], "x": 17.25, "y": 4.25}, - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"matrix": [5, 1], "x": 1.5, "y": 5.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25}, - {"matrix": [5, 15], "x": 16.25, "y": 5.25}, - {"matrix": [5, 16], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c b/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c deleted file mode 100644 index e04c98a9fb..0000000000 --- a/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2024 Zykrah - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - 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_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - - [1] = LAYOUT_all( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - -}; diff --git a/keyboards/zykrah/fuyu_hs/readme.md b/keyboards/zykrah/fuyu_hs/readme.md deleted file mode 100644 index 41c5cded51..0000000000 --- a/keyboards/zykrah/fuyu_hs/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# FUYU HOTSWAP - -![FUYU HS 7U](https://i.imgur.com/8zjDNJT.jpg) - -An F12 TKL Hotswappable H87-Compat Type-C PCB for the Geon F1-8K - -* Keyboard Maintainer: [Zykrah](https://github.com/zykrah) -* Hardware Supported: Fuyu HS 7u rev1, Fuyu HS 6.25u rev1 -* Hardware Availability: [Github Repo](https://github.com/zykrah/fuyu), [GEON Store](https://geon.works/products/fuyu-pcb-for-f1-8k), [Cafege](https://cafege.com.au/products/fuyu-8k-pcb) - -Make example for this keyboard (after setting up your build environment): - - make zykrah/fuyu_hs:default - -Flashing example for this keyboard: - - make zykrah/fuyu_hs:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly short the `RST` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zykrah/slime88/keyboard.json b/keyboards/zykrah/slime88/keyboard.json index e3c946b776..8b15524cca 100644 --- a/keyboards/zykrah/slime88/keyboard.json +++ b/keyboards/zykrah/slime88/keyboard.json @@ -13,6 +13,8 @@ "bootmagic": true, "mousekey": true, "extrakey": true, + "console": false, + "command": false, "nkro": true }, "diode_direction": "COL2ROW", diff --git a/layouts/community/60_tsangan_hhkb/readme.md b/layouts/community/60_tsangan_hhkb/readme.md new file mode 100644 index 0000000000..78a0b82bee --- /dev/null +++ b/layouts/community/60_tsangan_hhkb/readme.md @@ -0,0 +1,3 @@ +# 60_tsangan_hhkb + + LAYOUT_60_tsangan_hhkb diff --git a/layouts/community/75_ansi/layout.json b/layouts/community/75_ansi/layout.json index 72be23b486..4b7c5a0d88 100644 --- a/layouts/community/75_ansi/layout.json +++ b/layouts/community/75_ansi/layout.json @@ -3,4 +3,4 @@ [{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""], [{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""], [{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""], -[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""] +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""] \ No newline at end of file diff --git a/layouts/community/ortho_1x4/layout.json b/layouts/community/ortho_1x4/layout.json index 833ff19d4f..6103c7e248 100644 --- a/layouts/community/ortho_1x4/layout.json +++ b/layouts/community/ortho_1x4/layout.json @@ -1 +1 @@ -["","","",""] +["","","",""] \ No newline at end of file diff --git a/layouts/community/ortho_4x12/layout.json b/layouts/community/ortho_4x12/layout.json index 961b080642..9439b6e0be 100644 --- a/layouts/community/ortho_4x12/layout.json +++ b/layouts/community/ortho_4x12/layout.json @@ -1,4 +1,4 @@ ["","","","","","","","","","","",""], ["","","","","","","","","","","",""], ["","","","","","","","","","","",""], -["","","","","","","","","","","",""] +["","","","","","","","","","","",""] \ No newline at end of file diff --git a/layouts/default/60_ansi_arrow/layout.json b/layouts/default/60_ansi_arrow/layout.json index 163107fda4..7fc631c3d1 100644 --- a/layouts/default/60_ansi_arrow/layout.json +++ b/layouts/default/60_ansi_arrow/layout.json @@ -3,4 +3,4 @@ [{w:1.75},"","","","","","","","","","","","",{w:2.25},""], [{w:2.25},"","","","","","","","","","",{w:1.75},"","",""], [{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","",""] - + \ No newline at end of file diff --git a/layouts/default/60_ansi_tsangan_split_bs_rshift/default_60_ansi_tsangan_split_bs_rshift/keymap.c b/layouts/default/60_ansi_tsangan_split_bs_rshift/default_60_ansi_tsangan_split_bs_rshift/keymap.c deleted file mode 100644 index f6dac0999f..0000000000 --- a/layouts/default/60_ansi_tsangan_split_bs_rshift/default_60_ansi_tsangan_split_bs_rshift/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ - * │Ctrl │GUI│ Alt │ │ Alt │GUI│ Ctrl│ - * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ - */ - [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ) -}; diff --git a/layouts/default/60_ansi_tsangan_split_bs_rshift/info.json b/layouts/default/60_ansi_tsangan_split_bs_rshift/info.json deleted file mode 100644 index 94f91530d2..0000000000 --- a/layouts/default/60_ansi_tsangan_split_bs_rshift/info.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "keyboard_name": "60% ANSI layout with split Backspace, split Right Shift, and Tsangan Bottom Row", - "url": "", - "maintainer": "qmk", - "layouts": { - "LAYOUT_60_ansi_tsangan_split_bs_rshift": { - "layout": [ - {"x":0, "y":0}, - {"x":1, "y":0}, - {"x":2, "y":0}, - {"x":3, "y":0}, - {"x":4, "y":0}, - {"x":5, "y":0}, - {"x":6, "y":0}, - {"x":7, "y":0}, - {"x":8, "y":0}, - {"x":9, "y":0}, - {"x":10, "y":0}, - {"x":11, "y":0}, - {"x":12, "y":0}, - {"x":13, "y":0}, - {"x":14, "y":0}, - - {"x":0, "y":1, "w":1.5}, - {"x":1.5, "y":1}, - {"x":2.5, "y":1}, - {"x":3.5, "y":1}, - {"x":4.5, "y":1}, - {"x":5.5, "y":1}, - {"x":6.5, "y":1}, - {"x":7.5, "y":1}, - {"x":8.5, "y":1}, - {"x":9.5, "y":1}, - {"x":10.5, "y":1}, - {"x":11.5, "y":1}, - {"x":12.5, "y":1}, - {"x":13.5, "y":1, "w":1.5}, - - {"x":0, "y":2, "w":1.75}, - {"x":1.75, "y":2}, - {"x":2.75, "y":2}, - {"x":3.75, "y":2}, - {"x":4.75, "y":2}, - {"x":5.75, "y":2}, - {"x":6.75, "y":2}, - {"x":7.75, "y":2}, - {"x":8.75, "y":2}, - {"x":9.75, "y":2}, - {"x":10.75, "y":2}, - {"x":11.75, "y":2}, - {"x":12.75, "y":2, "w":2.25}, - - {"x":0, "y":3, "w":2.25}, - {"x":2.25, "y":3}, - {"x":3.25, "y":3}, - {"x":4.25, "y":3}, - {"x":5.25, "y":3}, - {"x":6.25, "y":3}, - {"x":7.25, "y":3}, - {"x":8.25, "y":3}, - {"x":9.25, "y":3}, - {"x":10.25, "y":3}, - {"x":11.25, "y":3}, - {"x":12.25, "y":3, "w":1.75}, - {"x":14, "y":3}, - - {"x":0, "y":4, "w":1.5}, - {"x":1.5, "y":4}, - {"x":2.5, "y":4, "w":1.5}, - {"x":4, "y":4, "w":7}, - {"x":11, "y":4, "w":1.5}, - {"x":12.5, "y":4}, - {"x":13.5, "y":4, "w":1.5} - ] - } - } -} diff --git a/layouts/default/60_ansi_tsangan_split_bs_rshift/readme.md b/layouts/default/60_ansi_tsangan_split_bs_rshift/readme.md deleted file mode 100644 index f086e5d3d6..0000000000 --- a/layouts/default/60_ansi_tsangan_split_bs_rshift/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# 60_ansi_tsangan_split_bs_rshift - - LAYOUT_60_ansi_tsangan_split_bs_rshift diff --git a/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c b/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c new file mode 100644 index 0000000000..1327639590 --- /dev/null +++ b/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ + * │Ctrl │GUI│ Alt │ │ Alt │GUI│ Ctrl│ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + [0] = LAYOUT_60_tsangan_hhkb( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ) +}; diff --git a/layouts/default/60_tsangan_hhkb/info.json b/layouts/default/60_tsangan_hhkb/info.json new file mode 100644 index 0000000000..091456eb70 --- /dev/null +++ b/layouts/default/60_tsangan_hhkb/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "60% ANSI Tsangan HHKB layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_ansi_tsangan_split_bs_rshift/layout.json b/layouts/default/60_tsangan_hhkb/layout.json similarity index 100% rename from layouts/default/60_ansi_tsangan_split_bs_rshift/layout.json rename to layouts/default/60_tsangan_hhkb/layout.json diff --git a/layouts/default/60_tsangan_hhkb/readme.md b/layouts/default/60_tsangan_hhkb/readme.md new file mode 100644 index 0000000000..78a0b82bee --- /dev/null +++ b/layouts/default/60_tsangan_hhkb/readme.md @@ -0,0 +1,3 @@ +# 60_tsangan_hhkb + + LAYOUT_60_tsangan_hhkb diff --git a/layouts/default/fullsize_extended_jis/info.json b/layouts/default/fullsize_extended_jis/info.json index b410273cd9..8267b4c54f 100644 --- a/layouts/default/fullsize_extended_jis/info.json +++ b/layouts/default/fullsize_extended_jis/info.json @@ -48,8 +48,8 @@ {"x": 19.5, "y": 1.25}, {"x": 20.5, "y": 1.25}, {"x": 21.5, "y": 1.25}, - {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 1.5, "y": 2.25}, {"x": 2.5, "y": 2.25}, {"x": 3.5, "y": 2.25}, @@ -62,7 +62,7 @@ {"x": 10.5, "y": 2.25}, {"x": 11.5, "y": 2.25}, {"x": 12.5, "y": 2.25}, - + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 15.25, "y": 2.25}, {"x": 16.25, "y": 2.25}, {"x": 17.25, "y": 2.25}, @@ -84,7 +84,6 @@ {"x": 10.75, "y": 3.25}, {"x": 11.75, "y": 3.25}, {"x": 12.75, "y": 3.25}, - {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 18.5, "y": 3.25}, {"x": 19.5, "y": 3.25}, {"x": 20.5, "y": 3.25}, @@ -107,7 +106,7 @@ {"x": 19.5, "y": 4.25}, {"x": 20.5, "y": 4.25}, {"x": 21.5, "y": 4.25, "h": 2}, - + {"x": 0, "y": 5.25, "w": 1.25}, {"x": 1.25, "y": 5.25, "w": 1.25}, {"x": 2.5, "y": 5.25, "w": 1.25}, diff --git a/layouts/default/fullsize_jis/info.json b/layouts/default/fullsize_jis/info.json index f573125a08..8acd5f2fe3 100644 --- a/layouts/default/fullsize_jis/info.json +++ b/layouts/default/fullsize_jis/info.json @@ -44,8 +44,8 @@ {"x": 19.5, "y": 1.25}, {"x": 20.5, "y": 1.25}, {"x": 21.5, "y": 1.25}, - {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 1.5, "y": 2.25}, {"x": 2.5, "y": 2.25}, {"x": 3.5, "y": 2.25}, @@ -58,6 +58,7 @@ {"x": 10.5, "y": 2.25}, {"x": 11.5, "y": 2.25}, {"x": 12.5, "y": 2.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 15.25, "y": 2.25}, {"x": 16.25, "y": 2.25}, {"x": 17.25, "y": 2.25}, @@ -79,7 +80,6 @@ {"x": 10.75, "y": 3.25}, {"x": 11.75, "y": 3.25}, {"x": 12.75, "y": 3.25}, - {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 18.5, "y": 3.25}, {"x": 19.5, "y": 3.25}, {"x": 20.5, "y": 3.25}, @@ -102,7 +102,7 @@ {"x": 19.5, "y": 4.25}, {"x": 20.5, "y": 4.25}, {"x": 21.5, "y": 4.25, "h": 2}, - + {"x": 0, "y": 5.25, "w": 1.25}, {"x": 1.25, "y": 5.25, "w": 1.25}, {"x": 2.5, "y": 5.25, "w": 1.25}, diff --git a/layouts/default/ortho_5x13/default_ortho_5x13/keymap.c b/layouts/default/ortho_5x13/default_ortho_5x13/keymap.c index 1ab20cdc25..11958f3700 100644 --- a/layouts/default/ortho_5x13/default_ortho_5x13/keymap.c +++ b/layouts/default/ortho_5x13/default_ortho_5x13/keymap.c @@ -26,16 +26,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_5x13( KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL , - MS_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, MS_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______ , - _______, MS_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ , + _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), [2] = LAYOUT_ortho_5x13( 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 , _______, _______, _______, _______, QK_RBT, _______, _______, _______, _______, _______, _______, _______, _______ , KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, MS_WHLU, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR + _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, KC_WH_U, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R ), }; diff --git a/layouts/default/ortho_5x5/readme.md b/layouts/default/ortho_5x5/readme.md index 2922976d3a..3dd75765d1 100644 --- a/layouts/default/ortho_5x5/readme.md +++ b/layouts/default/ortho_5x5/readme.md @@ -1,3 +1,3 @@ # ortho_5x5 - LAYOUT_ortho_5x5 + LAYOUT_ortho_5x5 \ No newline at end of file diff --git a/layouts/default/ortho_6x13/default_ortho_6x13/keymap.c b/layouts/default/ortho_6x13/default_ortho_6x13/keymap.c index 013b3ba987..527f87f84b 100644 --- a/layouts/default/ortho_6x13/default_ortho_6x13/keymap.c +++ b/layouts/default/ortho_6x13/default_ortho_6x13/keymap.c @@ -26,21 +26,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NUHS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, TT(0), KC_LALT, TT(2), KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT - ), + ) [1] = LAYOUT_ortho_6x13( KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, _______, _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - MS_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, MS_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______ , - _______, MS_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT + KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ , + _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R ), [2] = LAYOUT_ortho_6x13( 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 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, QK_RBT, _______, _______, _______, _______, _______, _______, _______, _______ , KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, MS_WHLU, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_WHLL, MS_WHLD, MS_WHLR + _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, KC_WH_U, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R ), }; diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 3c6da941fb..2460f64701 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -2,14 +2,10 @@ ## Summary of Layouts -
-60% Form Factor - -### `LAYOUT_60_abnt2` - -60% ABNT2 layout +### 60% Form Factor ``` +LAYOUT_60_abnt2 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -23,11 +19,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` -### `LAYOUT_60_ansi` - -60% ANSI layout - ``` +LAYOUT_60_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -41,11 +34,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` -### `LAYOUT_60_ansi_arrow` - -60% ANSI layout with arrow cluster - ``` +LAYOUT_60_ansi_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -59,11 +49,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_60_ansi_arrow_split_bs` - -60% ANSI layout with arrow cluster and split backspace - ``` +LAYOUT_60_ansi_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -77,11 +64,23 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_60_ansi_split_bs_rshift` - -60% ANSI layout with split backspace and split right shift +``` +LAYOUT_60_ansi_arrow_split_bs_7u_spc +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ +``` ``` +LAYOUT_60_ansi_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -95,11 +94,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` -### `LAYOUT_60_ansi_tsangan` - -60% ANSI layout with Tsangan bottom row - ``` +LAYOUT_60_ansi_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -113,29 +109,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` -### `LAYOUT_60_ansi_tsangan_split_bs_rshift` - -60% ANSI layout with Tsangan bottom row, split backspace, and split right shift - -``` -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ -│ │ │ │ │ │ │ │ -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` - -### `LAYOUT_60_ansi_wkl` - -60% ANSI layout with no Windows (GUI) keys - ``` +LAYOUT_60_ansi_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -149,11 +124,8 @@ └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` -### `LAYOUT_60_ansi_wkl_split_bs_rshift` - -60% ANSI layout with no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_60_ansi_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -167,11 +139,8 @@ └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` -### `LAYOUT_60_hhkb` - -60% ANSI layout with HHKB bottom row, split backspace, and split right shift - ``` +LAYOUT_60_hhkb ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -185,11 +154,8 @@ └───┴─────┴───────────────────────────┴─────┴───┘ ``` -### `LAYOUT_60_iso` - -60% ISO layout - ``` +LAYOUT_60_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -203,11 +169,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` -### `LAYOUT_60_iso_arrow` - -60% ISO layout with arrow cluster - ``` +LAYOUT_60_iso_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -221,11 +184,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_60_iso_arrow_split_bs` - -60% ISO layout with arrow cluster and split backspace - ``` +LAYOUT_60_iso_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -239,11 +199,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_60_iso_split_bs_rshift` - -60% ISO layout with split backspace and split right shift - ``` +LAYOUT_60_iso_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -257,11 +214,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` -### `LAYOUT_60_iso_tsangan` - -60% ISO layout with Tsangan bottom row - ``` +LAYOUT_60_iso_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -275,11 +229,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` -### `LAYOUT_60_iso_tsangan_split_bs_rshift` - -60% ISO layout with Tsangan bottom row, split backspace, and split right shift - ``` +LAYOUT_60_iso_tsangan_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -293,11 +244,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` -### `LAYOUT_60_iso_wkl` - -60% ISO layout with no Windows (GUI) keys - ``` +LAYOUT_60_iso_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -311,11 +259,8 @@ └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` -### `LAYOUT_60_iso_wkl_split_bs_rshift` - -60% ISO layout with no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_60_iso_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -329,11 +274,8 @@ └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` -### `LAYOUT_60_jis` - -60% JIS layout - ``` +LAYOUT_60_jis ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -347,11 +289,23 @@ └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ ``` -### `LAYOUT_64_ansi` - -64% ANSI layout +``` +LAYOUT_60_tsangan_hhkb +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` ``` +LAYOUT_64_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -365,11 +319,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_64_iso` - -64% ISO layout - ``` +LAYOUT_64_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -382,16 +333,11 @@ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -
-
-65%+ Form Factor - -### `LAYOUT_65_ansi` - -65% ANSI layout +### 65%+ Form Factor ``` +LAYOUT_65_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -405,11 +351,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_65_ansi_blocker` - -65% ANSI layout with blocker - ``` +LAYOUT_65_ansi_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -423,11 +366,8 @@ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_ansi_blocker_split_bs` - -65% ANSI layout with blocker and split backspace - ``` +LAYOUT_65_ansi_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -441,11 +381,8 @@ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_ansi_blocker_tsangan` - -65% ANSI layout with blocker and Tsangan bottom row - ``` +LAYOUT_65_ansi_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -459,11 +396,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_ansi_blocker_tsangan_split_bs` - -65% ANSI layout with blocker, Tsangan bottom row, and split backspace - ``` +LAYOUT_65_ansi_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -477,11 +411,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_ansi_split_bs` - -65% ANSI layout with split backspace - ``` +LAYOUT_65_ansi_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -495,11 +426,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_65_iso` - -65% ISO layout - ``` +LAYOUT_65_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -513,11 +441,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_65_iso_blocker` - -65% ISO layout with blocker - ``` +LAYOUT_65_iso_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -531,11 +456,8 @@ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_iso_blocker_split_bs` - -65% ISO layout with blocker and split backspace - ``` +LAYOUT_65_iso_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -549,11 +471,8 @@ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_iso_blocker_tsangan` - -65% ISO layout with blocker and Tsangan bottom row - ``` +LAYOUT_65_iso_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -567,11 +486,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_iso_blocker_tsangan_split_bs` - -65% ISO layout with blocker, Tsangan bottom row, and split backspace - ``` +LAYOUT_65_iso_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -585,11 +501,8 @@ └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_65_iso_split_bs` - -65% ISO layout with split backspace - ``` +LAYOUT_65_iso_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -603,11 +516,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_66_ansi` - -66% ANSI layout - ``` +LAYOUT_66_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -621,11 +531,8 @@ └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` -### `LAYOUT_66_iso` - -66% ISO layout - ``` +LAYOUT_66_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -639,11 +546,8 @@ └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` -### `LAYOUT_68_ansi` - -68% ANSI layout - ``` +LAYOUT_68_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -657,11 +561,8 @@ └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_68_iso` - -68% ISO layout - ``` +LAYOUT_68_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -674,16 +575,11 @@ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` -
-
-75% Form Factor - -### `LAYOUT_75_ansi` - -75% ANSI layout +### 75% Form Factor ``` +LAYOUT_75_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -699,11 +595,8 @@ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_75_iso` - -75% ISO layout - ``` +LAYOUT_75_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -718,16 +611,11 @@ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` -
-
-Tenkeyless (TKL) Form Factor - -### `LAYOUT_tkl_ansi` - -TKL ANSI layout +### Tenkeyless Layouts ``` +LAYOUT_tkl_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -744,11 +632,8 @@ TKL ANSI layout └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_ansi_split_bs_rshift` - -TKL ANSI layout with split backspace and split right shift - ``` +LAYOUT_tkl_ansi_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -765,11 +650,8 @@ TKL ANSI layout with split backspace and split right shift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_ansi_tsangan` - -TKL ANSI layout with Tsangan bottom row - ``` +LAYOUT_tkl_ansi_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -786,11 +668,8 @@ TKL ANSI layout with Tsangan bottom row └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` - -TKL ANSI layout with Tsangan bottom row, split backspace, and split right shift - ``` +LAYOUT_tkl_ansi_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -807,11 +686,8 @@ TKL ANSI layout with Tsangan bottom row, split backspace, and split right shift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_ansi_wkl` - -TKL ANSI layout with no Windows (GUI) keys - ``` +LAYOUT_tkl_ansi_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -828,11 +704,8 @@ TKL ANSI layout with no Windows (GUI) keys └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_ansi_wkl_split_bs_rshift` - -TKL ANSI layout with no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_tkl_ansi_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -849,11 +722,8 @@ TKL ANSI layout with no Windows (GUI) keys, split backspace, and split right shi └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso` - -TKL ISO layout - ``` +LAYOUT_tkl_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -870,11 +740,8 @@ TKL ISO layout └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso_split_bs_rshift` - -TKL ISO layout with split backspace and split right shift - ``` +LAYOUT_tkl_iso_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -891,11 +758,8 @@ TKL ISO layout with split backspace and split right shift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso_tsangan` - -TKL ISO layout with Tsangan bottom row - ``` +LAYOUT_tkl_iso_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -912,11 +776,8 @@ TKL ISO layout with Tsangan bottom row └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso_tsangan_split_bs_rshift` - -TKL ISO layout with Tsangan bottom row, split backspace, and split right shift - ``` +LAYOUT_tkl_iso_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -933,11 +794,8 @@ TKL ISO layout with Tsangan bottom row, split backspace, and split right shift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso_wkl` - -TKL ISO layout with no Windows (GUI) keys - ``` +LAYOUT_tkl_iso_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -954,11 +812,8 @@ TKL ISO layout with no Windows (GUI) keys └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_iso_wkl_split_bs_rshift` - -TKL ISO layout with no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_tkl_iso_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -975,11 +830,8 @@ TKL ISO layout with no Windows (GUI) keys, split backspace, and split right shif └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_jis` - -TKL JIS layout - ``` +LAYOUT_tkl_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -996,11 +848,8 @@ TKL JIS layout └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi` - -TKL ANSI layout with F13 key - ``` +LAYOUT_tkl_f13_ansi ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1017,11 +866,8 @@ TKL ANSI layout with F13 key └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi_split_bs_rshift` - -TKL ANSI layout with F13 key, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_ansi_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1038,11 +884,8 @@ TKL ANSI layout with F13 key, split backspace, and split right shift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi_tsangan` - -TKL ANSI layout with F13 key and Tsangan bottom row - ``` +LAYOUT_tkl_f13_ansi_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1059,11 +902,8 @@ TKL ANSI layout with F13 key and Tsangan bottom row └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift` - -TKL ANSI layout with F13 key, Tsangan bottom row, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1080,11 +920,8 @@ TKL ANSI layout with F13 key, Tsangan bottom row, split backspace, and split rig └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi_wkl` - -TKL ANSI layout with F13 key and no Windows (GUI) keys - ``` +LAYOUT_tkl_f13_ansi_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1101,11 +938,8 @@ TKL ANSI layout with F13 key and no Windows (GUI) keys └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift` - -TKL ANSI layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1122,11 +956,8 @@ TKL ANSI layout with F13 key, no Windows (GUI) keys, split backspace, and split └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso` - -TKL ISO layout with F13 key - ``` +LAYOUT_tkl_f13_iso ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1143,11 +974,8 @@ TKL ISO layout with F13 key └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso_split_bs_rshift` - -TKL ISO layout with F13 key, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_iso_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1164,11 +992,8 @@ TKL ISO layout with F13 key, split backspace, and split right shift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso_tsangan` - -TKL ISO layout with F13 key and Tsangan bottom row - ``` +LAYOUT_tkl_f13_iso_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1185,11 +1010,8 @@ TKL ISO layout with F13 key and Tsangan bottom row └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift` - -TKL ISO layout with F13 key, Tsangan bottom row, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1206,11 +1028,8 @@ TKL ISO layout with F13 key, Tsangan bottom row, split backspace, and split righ └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso_wkl` - -TKL ISO layout with F13 key and no Windows (GUI) keys - ``` +LAYOUT_tkl_f13_iso_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1227,11 +1046,8 @@ TKL ISO layout with F13 key and no Windows (GUI) keys └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_iso_wkl_split_bs_rshift` - -TKL ISO layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift - ``` +LAYOUT_tkl_f13_iso_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1248,11 +1064,8 @@ TKL ISO layout with F13 key, no Windows (GUI) keys, split backspace, and split r └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_f13_jis` - -TKL JIS layout with F13 key - ``` +LAYOUT_tkl_f13_jis ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1269,11 +1082,8 @@ TKL JIS layout with F13 key └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_nofrow_ansi` - -TKL ANSI layout with no function row - ``` +LAYOUT_tkl_nofrow_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1287,11 +1097,8 @@ TKL ANSI layout with no function row └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -### `LAYOUT_tkl_nofrow_iso` - -TKL ISO layout with no function row - ``` +LAYOUT_tkl_nofrow_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1304,16 +1111,11 @@ TKL ISO layout with no function row │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` -
-
-96% Form Factor - -### `LAYOUT_96_ansi` - -96% ANSI layout +### 96% Form Factor ``` +LAYOUT_96_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1329,11 +1131,8 @@ TKL ISO layout with no function row └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_96_iso` - -96% ISO layout - ``` +LAYOUT_96_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1348,16 +1147,12 @@ TKL ISO layout with no function row │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -
-
-Fullsize (100%+) Form Factor -### `LAYOUT_fullsize_ansi` - -Fullsize ANSI layout +### Fullsize Form Factor ``` +LAYOUT_fullsize_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1374,11 +1169,8 @@ Fullsize ANSI layout └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -### `LAYOUT_fullsize_iso` - -Fullsize ISO layout - ``` +LAYOUT_fullsize_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1395,11 +1187,8 @@ Fullsize ISO layout └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -### `LAYOUT_fullsize_jis` - -Fullsize JIS layout - ``` +LAYOUT_fullsize_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1416,11 +1205,8 @@ Fullsize JIS layout └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -### `LAYOUT_fullsize_extended_ansi` - -Fullsize ANSI layout with additional keys above numpad - ``` +LAYOUT_fullsize_extended_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1437,11 +1223,8 @@ Fullsize ANSI layout with additional keys above numpad └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -### `LAYOUT_fullsize_extended_iso` - -Fullsize ISO layout with additional keys above numpad - ``` +LAYOUT_fullsize_extended_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1458,11 +1241,8 @@ Fullsize ISO layout with additional keys above numpad └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -### `LAYOUT_fullsize_extended_jis` - -Fullsize JIS layout with additional keys above numpad - ``` +LAYOUT_fullsize_extended_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1478,16 +1258,11 @@ Fullsize JIS layout with additional keys above numpad │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` -
-
-Split Layouts - -### `LAYOUT_alice` - -Alice-style split layout +### Split Layouts ``` +LAYOUT_alice ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ @@ -1501,11 +1276,8 @@ Alice-style split layout └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` -### `LAYOUT_alice_split_bs` - -Alice-style split layout with split backspace - ``` +LAYOUT_alice_split_bs ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ @@ -1519,11 +1291,8 @@ Alice-style split layout with split backspace └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` -### `LAYOUT_ergodox` - -Ergodox-style split layout - ``` +LAYOUT_ergodox ┌─────┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬─────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┼─────┤ @@ -1542,11 +1311,8 @@ Ergodox-style split layout └───┴───┴───┘ └───┴───┴───┘ ``` -### `LAYOUT_split_3x5_2` - -3x5 split layout with two thumb keys - ``` +LAYOUT_split_3x5_2 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1559,11 +1325,8 @@ Ergodox-style split layout └───┴───┘ └───┴───┘ ``` -### `LAYOUT_split_3x5_3` - -3x5 split layout with three thumb keys - ``` +LAYOUT_split_3x5_3 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1576,11 +1339,8 @@ Ergodox-style split layout └───┴───┴───┘ └───┴───┴───┘ ``` -### `LAYOUT_split_3x6_3` - -3x6 split layout with three thumb keys - ``` +LAYOUT_split_3x6_3 ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ @@ -1592,16 +1352,11 @@ Ergodox-style split layout │ │ │ │ │ │ │ │ └───┴───┴───┘ └───┴───┴───┘ ``` -
-
-Number Pads - -### `LAYOUT_numpad_4x4` - -4x4 number pad +### Numpads ``` +LAYOUT_numpad_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┤ │ @@ -1613,11 +1368,8 @@ Ergodox-style split layout └───────┴───┴───┘ ``` -### `LAYOUT_numpad_5x4` - -5x4 number pad - ``` +LAYOUT_numpad_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1631,11 +1383,8 @@ Ergodox-style split layout └───────┴───┴───┘ ``` -### `LAYOUT_numpad_5x6` - -5x6 number pad - ``` +LAYOUT_numpad_5x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1649,11 +1398,8 @@ Ergodox-style split layout └───┴───┴───────┴───┴───┘ ``` -### `LAYOUT_numpad_6x4` - -6x4 number pad - ``` +LAYOUT_numpad_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1669,11 +1415,8 @@ Ergodox-style split layout └───────┴───┴───┘ ``` -### `LAYOUT_numpad_6x5` - -6x5 number pad - ``` +LAYOUT_numpad_6x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1688,26 +1431,18 @@ Ergodox-style split layout │ │ │ │ │ └───┴───────┴───┴───┘ ``` -
-
-Ortholinear Layouts - -### `LAYOUT_ortho_1x1` - -1x1 ortholinear layout +### Ortholinear Layouts ``` +LAYOUT_ortho_1x1 ┌───┐ │ │ └───┘ ``` -### `LAYOUT_ortho_2x3` - -2x3 ortholinear layout - ``` +LAYOUT_ortho_2x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1715,11 +1450,8 @@ Ergodox-style split layout └───┴───┴───┘ ``` -### `LAYOUT_ortho_2x6` - -2x6 ortholinear layout - ``` +LAYOUT_ortho_2x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1727,11 +1459,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_3x3` - -3x3 ortholinear layout - ``` +LAYOUT_ortho_3x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1741,11 +1470,8 @@ Ergodox-style split layout └───┴───┴───┘ ``` -### `LAYOUT_ortho_3x10` - -3x10 ortholinear layout - ``` +LAYOUT_ortho_3x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1755,11 +1481,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_4x10` - -4x10 ortholinear layout - ``` +LAYOUT_ortho_4x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1771,11 +1494,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_4x12` - -4x12 ortholinear layout - ``` +LAYOUT_ortho_4x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1787,11 +1507,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_4x16` - -4x16 ortholinear layout - ``` +LAYOUT_ortho_4x16 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1803,11 +1520,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_4x4` - -4x4 ortholinear layout - ``` +LAYOUT_ortho_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1819,11 +1533,8 @@ Ergodox-style split layout └───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_4x6` - -4x6 ortholinear layout - ``` +LAYOUT_ortho_4x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1835,11 +1546,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x5` - -5x5 ortholinear layout - ``` +LAYOUT_ortho_5x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1853,11 +1561,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x10` - -5x10 ortholinear layout - ``` +LAYOUT_ortho_5x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1871,11 +1576,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x12` - -5x12 ortholinear layout - ``` +LAYOUT_ortho_5x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1889,11 +1591,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x13` - -5x13 ortholinear layout - ``` +LAYOUT_ortho_5x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1907,11 +1606,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x14` - -5x14 ortholinear layout - ``` +LAYOUT_ortho_5x14 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1925,11 +1621,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x15` - -5x15 ortholinear layout - ``` +LAYOUT_ortho_5x15 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1943,11 +1636,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_5x4` - -5x4 ortholinear layout - ``` +LAYOUT_ortho_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1961,11 +1651,8 @@ Ergodox-style split layout └───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_6x4` - -6x4 ortholinear layout - ``` +LAYOUT_ortho_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1981,11 +1668,8 @@ Ergodox-style split layout └───┴───┴───┴───┘ ``` -### `LAYOUT_ortho_6x13` - -6x13 ortholinear layout - ``` +LAYOUT_ortho_6x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -2001,11 +1685,8 @@ Ergodox-style split layout └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` -### `LAYOUT_planck_mit` - -4x12 ortholinear layout with center 2u space - ``` +LAYOUT_planck_mit ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -2016,4 +1697,3 @@ Ergodox-style split layout │ │ │ │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ ``` -
diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h new file mode 100644 index 0000000000..4be7e8c848 --- /dev/null +++ b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h @@ -0,0 +1,7226 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_math.h + * Description: Public header file for CMSIS DSP Library + * + * $Date: 27. January 2017 + * $Revision: V.1.5.1 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + \mainpage CMSIS DSP Software Library + * + * Introduction + * ------------ + * + * This user manual describes the CMSIS DSP software library, + * a suite of common signal processing functions for use on Cortex-M processor based devices. + * + * The library is divided into a number of functions each covering a specific category: + * - Basic math functions + * - Fast math functions + * - Complex math functions + * - Filters + * - Matrix functions + * - Transforms + * - Motor control functions + * - Statistical functions + * - Support functions + * - Interpolation functions + * + * The library has separate functions for operating on 8-bit integers, 16-bit integers, + * 32-bit integer and 32-bit floating-point values. + * + * Using the Library + * ------------ + * + * The library installer contains prebuilt versions of the libraries in the Lib folder. + * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit) + * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit) + * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit) + * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on) + * - arm_cortexM7l_math.lib (Cortex-M7, Little endian) + * - arm_cortexM7b_math.lib (Cortex-M7, Big endian) + * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit) + * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit) + * - arm_cortexM4l_math.lib (Cortex-M4, Little endian) + * - arm_cortexM4b_math.lib (Cortex-M4, Big endian) + * - arm_cortexM3l_math.lib (Cortex-M3, Little endian) + * - arm_cortexM3b_math.lib (Cortex-M3, Big endian) + * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian) + * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian) + * - arm_ARMv8MBLl_math.lib (ARMv8M Baseline, Little endian) + * - arm_ARMv8MMLl_math.lib (ARMv8M Mainline, Little endian) + * - arm_ARMv8MMLlfsp_math.lib (ARMv8M Mainline, Little endian, Single Precision Floating Point Unit) + * - arm_ARMv8MMLld_math.lib (ARMv8M Mainline, Little endian, DSP instructions) + * - arm_ARMv8MMLldfsp_math.lib (ARMv8M Mainline, Little endian, DSP instructions, Single Precision Floating Point Unit) + * + * The library functions are declared in the public file arm_math.h which is placed in the Include folder. + * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single + * public header file arm_math.h for Cortex-M cores with little endian and big endian. Same header file will be used for floating point unit(FPU) variants. + * Define the appropriate pre processor MACRO ARM_MATH_CM7 or ARM_MATH_CM4 or ARM_MATH_CM3 or + * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application. + * For ARMv8M cores define pre processor MACRO ARM_MATH_ARMV8MBL or ARM_MATH_ARMV8MML. + * Set Pre processor MACRO __DSP_PRESENT if ARMv8M Mainline core supports DSP instructions. + * + * + * Examples + * -------- + * + * The library ships with a number of examples which demonstrate how to use the library functions. + * + * Toolchain Support + * ------------ + * + * The library has been developed and tested with MDK-ARM version 5.14.0.0 + * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly. + * + * Building the Library + * ------------ + * + * The library installer contains a project file to re build libraries on MDK-ARM Tool chain in the CMSIS\\DSP_Lib\\Source\\ARM folder. + * - arm_cortexM_math.uvprojx + * + * + * The libraries can be built by opening the arm_cortexM_math.uvprojx project in MDK-ARM, selecting a specific target, and defining the optional pre processor MACROs detailed above. + * + * Pre-processor Macros + * ------------ + * + * Each library project have differant pre-processor macros. + * + * - UNALIGNED_SUPPORT_DISABLE: + * + * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access + * + * - ARM_MATH_BIG_ENDIAN: + * + * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. + * + * - ARM_MATH_MATRIX_CHECK: + * + * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices + * + * - ARM_MATH_ROUNDING: + * + * Define macro ARM_MATH_ROUNDING for rounding on support functions + * + * - ARM_MATH_CMx: + * + * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target + * and ARM_MATH_CM0 for building library on Cortex-M0 target, ARM_MATH_CM0PLUS for building library on Cortex-M0+ target, and + * ARM_MATH_CM7 for building the library on cortex-M7. + * + * - ARM_MATH_ARMV8MxL: + * + * Define macro ARM_MATH_ARMV8MBL for building the library on ARMv8M Baseline target, ARM_MATH_ARMV8MBL for building library + * on ARMv8M Mainline target. + * + * - __FPU_PRESENT: + * + * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for floating point libraries. + * + * - __DSP_PRESENT: + * + * Initialize macro __DSP_PRESENT = 1 when ARMv8M Mainline core supports DSP instructions. + * + *
+ * CMSIS-DSP in ARM::CMSIS Pack + * ----------------------------- + * + * The following files relevant to CMSIS-DSP are present in the ARM::CMSIS Pack directories: + * |File/Folder |Content | + * |------------------------------|------------------------------------------------------------------------| + * |\b CMSIS\\Documentation\\DSP | This documentation | + * |\b CMSIS\\DSP_Lib | Software license agreement (license.txt) | + * |\b CMSIS\\DSP_Lib\\Examples | Example projects demonstrating the usage of the library functions | + * |\b CMSIS\\DSP_Lib\\Source | Source files for rebuilding the library | + * + *
+ * Revision History of CMSIS-DSP + * ------------ + * Please refer to \ref ChangeLog_pg. + * + * Copyright Notice + * ------------ + * + * Copyright (C) 2010-2015 ARM Limited. All rights reserved. + */ + + +/** + * @defgroup groupMath Basic Math Functions + */ + +/** + * @defgroup groupFastMath Fast Math Functions + * This set of functions provides a fast approximation to sine, cosine, and square root. + * As compared to most of the other functions in the CMSIS math library, the fast math functions + * operate on individual values and not arrays. + * There are separate functions for Q15, Q31, and floating-point data. + * + */ + +/** + * @defgroup groupCmplxMath Complex Math Functions + * This set of functions operates on complex data vectors. + * The data in the complex arrays is stored in an interleaved fashion + * (real, imag, real, imag, ...). + * In the API functions, the number of samples in a complex array refers + * to the number of complex values; the array contains twice this number of + * real values. + */ + +/** + * @defgroup groupFilters Filtering Functions + */ + +/** + * @defgroup groupMatrix Matrix Functions + * + * This set of functions provides basic matrix math operations. + * The functions operate on matrix data structures. For example, + * the type + * definition for the floating-point matrix structure is shown + * below: + *
+ *     typedef struct
+ *     {
+ *       uint16_t numRows;     // number of rows of the matrix.
+ *       uint16_t numCols;     // number of columns of the matrix.
+ *       float32_t *pData;     // points to the data of the matrix.
+ *     } arm_matrix_instance_f32;
+ * 
+ * There are similar definitions for Q15 and Q31 data types. + * + * The structure specifies the size of the matrix and then points to + * an array of data. The array is of size numRows X numCols + * and the values are arranged in row order. That is, the + * matrix element (i, j) is stored at: + *
+ *     pData[i*numCols + j]
+ * 
+ * + * \par Init Functions + * There is an associated initialization function for each type of matrix + * data structure. + * The initialization function sets the values of the internal structure fields. + * Refer to the function arm_mat_init_f32(), arm_mat_init_q31() + * and arm_mat_init_q15() for floating-point, Q31 and Q15 types, respectively. + * + * \par + * Use of the initialization function is optional. However, if initialization function is used + * then the instance structure cannot be placed into a const data section. + * To place the instance structure in a const data + * section, manually initialize the data structure. For example: + *
+ * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
+ * 
+ * where nRows specifies the number of rows, nColumns + * specifies the number of columns, and pData points to the + * data array. + * + * \par Size Checking + * By default all of the matrix functions perform size checking on the input and + * output matrices. For example, the matrix addition function verifies that the + * two input matrices and the output matrix all have the same number of rows and + * columns. If the size check fails the functions return: + *
+ *     ARM_MATH_SIZE_MISMATCH
+ * 
+ * Otherwise the functions return + *
+ *     ARM_MATH_SUCCESS
+ * 
+ * There is some overhead associated with this matrix size checking. + * The matrix size checking is enabled via the \#define + *
+ *     ARM_MATH_MATRIX_CHECK
+ * 
+ * within the library project settings. By default this macro is defined + * and size checking is enabled. By changing the project settings and + * undefining this macro size checking is eliminated and the functions + * run a bit faster. With size checking disabled the functions always + * return ARM_MATH_SUCCESS. + */ + +/** + * @defgroup groupTransforms Transform Functions + */ + +/** + * @defgroup groupController Controller Functions + */ + +/** + * @defgroup groupStats Statistics Functions + */ +/** + * @defgroup groupSupport Support Functions + */ + +/** + * @defgroup groupInterpolation Interpolation Functions + * These functions perform 1- and 2-dimensional interpolation of data. + * Linear interpolation is used for 1-dimensional data and + * bilinear interpolation is used for 2-dimensional data. + */ + +/** + * @defgroup groupExamples Examples + */ +#ifndef _ARM_MATH_H +#define _ARM_MATH_H + +/* ignore some GCC warnings */ +#if defined ( __GNUC__ ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +#define __CMSIS_GENERIC /* disable NVIC and Systick functions */ + +#if defined(ARM_MATH_CM7) + #include "core_cm7.h" + #define ARM_MATH_DSP +#elif defined (ARM_MATH_CM4) + #include "core_cm4.h" + #define ARM_MATH_DSP +#elif defined (ARM_MATH_CM3) + #include "core_cm3.h" +#elif defined (ARM_MATH_CM0) + #include "core_cm0.h" + #define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_CM0PLUS) + #include "core_cm0plus.h" + #define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_ARMV8MBL) + #include "core_armv8mbl.h" + #define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_ARMV8MML) + #include "core_armv8mml.h" + #if (defined (__DSP_PRESENT) && (__DSP_PRESENT == 1)) + #define ARM_MATH_DSP + #endif +#else + #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_MATH_ARMV8MBL, ARM_MATH_ARMV8MML" +#endif + +#undef __CMSIS_GENERIC /* enable NVIC and Systick functions */ +#include "string.h" +#include "math.h" +#ifdef __cplusplus +extern "C" +{ +#endif + + + /** + * @brief Macros required for reciprocal calculation in Normalized LMS + */ + +#define DELTA_Q31 (0x100) +#define DELTA_Q15 0x5 +#define INDEX_MASK 0x0000003F +#ifndef PI + #define PI 3.14159265358979f +#endif + + /** + * @brief Macros required for SINE and COSINE Fast math approximations + */ + +#define FAST_MATH_TABLE_SIZE 512 +#define FAST_MATH_Q31_SHIFT (32 - 10) +#define FAST_MATH_Q15_SHIFT (16 - 10) +#define CONTROLLER_Q31_SHIFT (32 - 9) +#define TABLE_SPACING_Q31 0x400000 +#define TABLE_SPACING_Q15 0x80 + + /** + * @brief Macros required for SINE and COSINE Controller functions + */ + /* 1.31(q31) Fixed value of 2/360 */ + /* -1 to +1 is divided into 360 values so total spacing is (2/360) */ +#define INPUT_SPACING 0xB60B61 + + /** + * @brief Macro for Unaligned Support + */ +#ifndef UNALIGNED_SUPPORT_DISABLE + #define ALIGN4 +#else + #if defined (__GNUC__) + #define ALIGN4 __attribute__((aligned(4))) + #else + #define ALIGN4 __align(4) + #endif +#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ + + /** + * @brief Error status returned by some functions in the library. + */ + + typedef enum + { + ARM_MATH_SUCCESS = 0, /**< No error */ + ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ + ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ + ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */ + ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ + ARM_MATH_SINGULAR = -5, /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */ + ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */ + } arm_status; + + /** + * @brief 8-bit fractional data type in 1.7 format. + */ + typedef int8_t q7_t; + + /** + * @brief 16-bit fractional data type in 1.15 format. + */ + typedef int16_t q15_t; + + /** + * @brief 32-bit fractional data type in 1.31 format. + */ + typedef int32_t q31_t; + + /** + * @brief 64-bit fractional data type in 1.63 format. + */ + typedef int64_t q63_t; + + /** + * @brief 32-bit floating-point type definition. + */ + typedef float float32_t; + + /** + * @brief 64-bit floating-point type definition. + */ + typedef double float64_t; + + /** + * @brief definition to read/write two 16 bit values. + */ +#if defined ( __CC_ARM ) + #define __SIMD32_TYPE int32_t __packed + #define CMSIS_UNUSED __attribute__((unused)) + #define CMSIS_INLINE __attribute__((always_inline)) + +#elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) + #define __SIMD32_TYPE int32_t + #define CMSIS_UNUSED __attribute__((unused)) + #define CMSIS_INLINE __attribute__((always_inline)) + +#elif defined ( __GNUC__ ) + #define __SIMD32_TYPE int32_t + #define CMSIS_UNUSED __attribute__((unused)) + #define CMSIS_INLINE __attribute__((always_inline)) + +#elif defined ( __ICCARM__ ) + #define __SIMD32_TYPE int32_t __packed + #define CMSIS_UNUSED + #define CMSIS_INLINE + +#elif defined ( __TI_ARM__ ) + #define __SIMD32_TYPE int32_t + #define CMSIS_UNUSED __attribute__((unused)) + #define CMSIS_INLINE + +#elif defined ( __CSMC__ ) + #define __SIMD32_TYPE int32_t + #define CMSIS_UNUSED + #define CMSIS_INLINE + +#elif defined ( __TASKING__ ) + #define __SIMD32_TYPE __unaligned int32_t + #define CMSIS_UNUSED + #define CMSIS_INLINE + +#else + #error Unknown compiler +#endif + +#define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) +#define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr)) +#define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr)) +#define __SIMD64(addr) (*(int64_t **) & (addr)) + +/* #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ +#if !defined (ARM_MATH_DSP) + /** + * @brief definition to pack two 16 bit values. + */ +#define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ + (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) +#define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ + (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) + +/* #endif // defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ +#endif /* !defined (ARM_MATH_DSP) */ + + /** + * @brief definition to pack four 8 bit values. + */ +#ifndef ARM_MATH_BIG_ENDIAN + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) +#else + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) + +#endif + + + /** + * @brief Clips Q63 to Q31 values. + */ + CMSIS_INLINE __STATIC_INLINE q31_t clip_q63_to_q31( + q63_t x) + { + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x; + } + + /** + * @brief Clips Q63 to Q15 values. + */ + CMSIS_INLINE __STATIC_INLINE q15_t clip_q63_to_q15( + q63_t x) + { + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15); + } + + /** + * @brief Clips Q31 to Q7 values. + */ + CMSIS_INLINE __STATIC_INLINE q7_t clip_q31_to_q7( + q31_t x) + { + return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ? + ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x; + } + + /** + * @brief Clips Q31 to Q15 values. + */ + CMSIS_INLINE __STATIC_INLINE q15_t clip_q31_to_q15( + q31_t x) + { + return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ? + ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x; + } + + /** + * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format. + */ + + CMSIS_INLINE __STATIC_INLINE q63_t mult32x64( + q63_t x, + q31_t y) + { + return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) + + (((q63_t) (x >> 32) * y))); + } + +/* + #if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM ) + #define __CLZ __clz + #endif + */ +/* note: function can be removed when all toolchain support __CLZ for Cortex-M0 */ +#if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ) + CMSIS_INLINE __STATIC_INLINE uint32_t __CLZ( + q31_t data); + + CMSIS_INLINE __STATIC_INLINE uint32_t __CLZ( + q31_t data) + { + uint32_t count = 0; + uint32_t mask = 0x80000000; + + while ((data & mask) == 0) + { + count += 1u; + mask = mask >> 1u; + } + + return (count); + } +#endif + + /** + * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type. + */ + + CMSIS_INLINE __STATIC_INLINE uint32_t arm_recip_q31( + q31_t in, + q31_t * dst, + q31_t * pRecipTable) + { + q31_t out; + uint32_t tempVal; + uint32_t index, i; + uint32_t signBits; + + if (in > 0) + { + signBits = ((uint32_t) (__CLZ( in) - 1)); + } + else + { + signBits = ((uint32_t) (__CLZ(-in) - 1)); + } + + /* Convert input sample to 1.31 format */ + in = (in << signBits); + + /* calculation of index for initial approximated Val */ + index = (uint32_t)(in >> 24); + index = (index & INDEX_MASK); + + /* 1.31 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0u; i < 2u; i++) + { + tempVal = (uint32_t) (((q63_t) in * out) >> 31); + tempVal = 0x7FFFFFFFu - tempVal; + /* 1.31 with exp 1 */ + /* out = (q31_t) (((q63_t) out * tempVal) >> 30); */ + out = clip_q63_to_q31(((q63_t) out * tempVal) >> 30); + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1u); + } + + + /** + * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type. + */ + CMSIS_INLINE __STATIC_INLINE uint32_t arm_recip_q15( + q15_t in, + q15_t * dst, + q15_t * pRecipTable) + { + q15_t out = 0; + uint32_t tempVal = 0; + uint32_t index = 0, i = 0; + uint32_t signBits = 0; + + if (in > 0) + { + signBits = ((uint32_t)(__CLZ( in) - 17)); + } + else + { + signBits = ((uint32_t)(__CLZ(-in) - 17)); + } + + /* Convert input sample to 1.15 format */ + in = (in << signBits); + + /* calculation of index for initial approximated Val */ + index = (uint32_t)(in >> 8); + index = (index & INDEX_MASK); + + /* 1.15 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0u; i < 2u; i++) + { + tempVal = (uint32_t) (((q31_t) in * out) >> 15); + tempVal = 0x7FFFu - tempVal; + /* 1.15 with exp 1 */ + out = (q15_t) (((q31_t) out * tempVal) >> 14); + /* out = clip_q31_to_q15(((q31_t) out * tempVal) >> 14); */ + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1); + } + + + /* + * @brief C custom defined intrinisic function for only M0 processors + */ +#if defined(ARM_MATH_CM0_FAMILY) + CMSIS_INLINE __STATIC_INLINE q31_t __SSAT( + q31_t x, + uint32_t y) + { + int32_t posMax, negMin; + uint32_t i; + + posMax = 1; + for (i = 0; i < (y - 1); i++) + { + posMax = posMax * 2; + } + + if (x > 0) + { + posMax = (posMax - 1); + + if (x > posMax) + { + x = posMax; + } + } + else + { + negMin = -posMax; + + if (x < negMin) + { + x = negMin; + } + } + return (x); + } +#endif /* end of ARM_MATH_CM0_FAMILY */ + + + /* + * @brief C custom defined intrinsic function for M3 and M0 processors + */ +/* #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ +#if !defined (ARM_MATH_DSP) + + /* + * @brief C custom defined QADD8 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QADD8( + uint32_t x, + uint32_t y) + { + q31_t r, s, t, u; + + r = __SSAT(((((q31_t)x << 24) >> 24) + (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF; + s = __SSAT(((((q31_t)x << 16) >> 24) + (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF; + t = __SSAT(((((q31_t)x << 8) >> 24) + (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF; + u = __SSAT(((((q31_t)x ) >> 24) + (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF; + + return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r ))); + } + + + /* + * @brief C custom defined QSUB8 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QSUB8( + uint32_t x, + uint32_t y) + { + q31_t r, s, t, u; + + r = __SSAT(((((q31_t)x << 24) >> 24) - (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF; + s = __SSAT(((((q31_t)x << 16) >> 24) - (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF; + t = __SSAT(((((q31_t)x << 8) >> 24) - (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF; + u = __SSAT(((((q31_t)x ) >> 24) - (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF; + + return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r ))); + } + + + /* + * @brief C custom defined QADD16 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QADD16( + uint32_t x, + uint32_t y) + { +/* q31_t r, s; without initialisation 'arm_offset_q15 test' fails but 'intrinsic' tests pass! for armCC */ + q31_t r = 0, s = 0; + + r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; + s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined SHADD16 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SHADD16( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = (((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; + s = (((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined QSUB16 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QSUB16( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; + s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined SHSUB16 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SHSUB16( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = (((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; + s = (((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined QASX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QASX( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; + s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined SHASX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SHASX( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = (((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; + s = (((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined QSAX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __QSAX( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; + s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined SHSAX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SHSAX( + uint32_t x, + uint32_t y) + { + q31_t r, s; + + r = (((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; + s = (((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; + + return ((uint32_t)((s << 16) | (r ))); + } + + + /* + * @brief C custom defined SMUSDX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMUSDX( + uint32_t x, + uint32_t y) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) - + ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) )); + } + + /* + * @brief C custom defined SMUADX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMUADX( + uint32_t x, + uint32_t y) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) )); + } + + + /* + * @brief C custom defined QADD for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE int32_t __QADD( + int32_t x, + int32_t y) + { + return ((int32_t)(clip_q63_to_q31((q63_t)x + (q31_t)y))); + } + + + /* + * @brief C custom defined QSUB for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE int32_t __QSUB( + int32_t x, + int32_t y) + { + return ((int32_t)(clip_q63_to_q31((q63_t)x - (q31_t)y))); + } + + + /* + * @brief C custom defined SMLAD for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMLAD( + uint32_t x, + uint32_t y, + uint32_t sum) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) + + ( ((q31_t)sum ) ) )); + } + + + /* + * @brief C custom defined SMLADX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMLADX( + uint32_t x, + uint32_t y, + uint32_t sum) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + + ( ((q31_t)sum ) ) )); + } + + + /* + * @brief C custom defined SMLSDX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMLSDX( + uint32_t x, + uint32_t y, + uint32_t sum) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) - + ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + + ( ((q31_t)sum ) ) )); + } + + + /* + * @brief C custom defined SMLALD for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint64_t __SMLALD( + uint32_t x, + uint32_t y, + uint64_t sum) + { +/* return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + ((q15_t) x * (q15_t) y)); */ + return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) + + ( ((q63_t)sum ) ) )); + } + + + /* + * @brief C custom defined SMLALDX for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint64_t __SMLALDX( + uint32_t x, + uint32_t y, + uint64_t sum) + { +/* return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + ((q15_t) x * (q15_t) (y >> 16)); */ + return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + + ( ((q63_t)sum ) ) )); + } + + + /* + * @brief C custom defined SMUAD for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMUAD( + uint32_t x, + uint32_t y) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + + ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) )); + } + + + /* + * @brief C custom defined SMUSD for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SMUSD( + uint32_t x, + uint32_t y) + { + return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) - + ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) )); + } + + + /* + * @brief C custom defined SXTB16 for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __SXTB16( + uint32_t x) + { + return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) | + ((((q31_t)x << 8) >> 8) & (q31_t)0xFFFF0000) )); + } + + /* + * @brief C custom defined SMMLA for M3 and M0 processors + */ + CMSIS_INLINE __STATIC_INLINE int32_t __SMMLA( + int32_t x, + int32_t y, + int32_t sum) + { + return (sum + (int32_t) (((int64_t) x * y) >> 32)); + } + +#if 0 + /* + * @brief C custom defined PKHBT for unavailable DSP extension + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __PKHBT( + uint32_t x, + uint32_t y, + uint32_t leftshift) + { + return ( ((x ) & 0x0000FFFFUL) | + ((y << leftshift) & 0xFFFF0000UL) ); + } + + /* + * @brief C custom defined PKHTB for unavailable DSP extension + */ + CMSIS_INLINE __STATIC_INLINE uint32_t __PKHTB( + uint32_t x, + uint32_t y, + uint32_t rightshift) + { + return ( ((x ) & 0xFFFF0000UL) | + ((y >> rightshift) & 0x0000FFFFUL) ); + } +#endif + +/* #endif // defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ +#endif /* !defined (ARM_MATH_DSP) */ + + + /** + * @brief Instance structure for the Q7 FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q7_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + } arm_fir_instance_q7; + + /** + * @brief Instance structure for the Q15 FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + } arm_fir_instance_q15; + + /** + * @brief Instance structure for the Q31 FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + } arm_fir_instance_q31; + + /** + * @brief Instance structure for the floating-point FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + } arm_fir_instance_f32; + + + /** + * @brief Processing function for the Q7 FIR filter. + * @param[in] S points to an instance of the Q7 FIR filter structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_q7( + const arm_fir_instance_q7 * S, + q7_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q7 FIR filter. + * @param[in,out] S points to an instance of the Q7 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of samples that are processed. + */ + void arm_fir_init_q7( + arm_fir_instance_q7 * S, + uint16_t numTaps, + q7_t * pCoeffs, + q7_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q15 FIR filter. + * @param[in] S points to an instance of the Q15 FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_q15( + const arm_fir_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q15 FIR filter structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_fast_q15( + const arm_fir_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q15 FIR filter. + * @param[in,out] S points to an instance of the Q15 FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_ARGUMENT_ERROR if + * numTaps is not a supported value. + */ + arm_status arm_fir_init_q15( + arm_fir_instance_q15 * S, + uint16_t numTaps, + q15_t * pCoeffs, + q15_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 FIR filter. + * @param[in] S points to an instance of the Q31 FIR filter structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_q31( + const arm_fir_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q31 FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_fast_q31( + const arm_fir_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 FIR filter. + * @param[in,out] S points to an instance of the Q31 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + */ + void arm_fir_init_q31( + arm_fir_instance_q31 * S, + uint16_t numTaps, + q31_t * pCoeffs, + q31_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the floating-point FIR filter. + * @param[in] S points to an instance of the floating-point FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_f32( + const arm_fir_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point FIR filter. + * @param[in,out] S points to an instance of the floating-point FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + */ + void arm_fir_init_f32( + arm_fir_instance_f32 * S, + uint16_t numTaps, + float32_t * pCoeffs, + float32_t * pState, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q15 Biquad cascade filter. + */ + typedef struct + { + int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q15_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q15_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + int8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + } arm_biquad_casd_df1_inst_q15; + + /** + * @brief Instance structure for the Q31 Biquad cascade filter. + */ + typedef struct + { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q31_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + } arm_biquad_casd_df1_inst_q31; + + /** + * @brief Instance structure for the floating-point Biquad cascade filter. + */ + typedef struct + { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + float32_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + } arm_biquad_casd_df1_inst_f32; + + + /** + * @brief Processing function for the Q15 Biquad cascade filter. + * @param[in] S points to an instance of the Q15 Biquad cascade structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df1_q15( + const arm_biquad_casd_df1_inst_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q15 Biquad cascade filter. + * @param[in,out] S points to an instance of the Q15 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + */ + void arm_biquad_cascade_df1_init_q15( + arm_biquad_casd_df1_inst_q15 * S, + uint8_t numStages, + q15_t * pCoeffs, + q15_t * pState, + int8_t postShift); + + + /** + * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q15 Biquad cascade structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df1_fast_q15( + const arm_biquad_casd_df1_inst_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 Biquad cascade filter + * @param[in] S points to an instance of the Q31 Biquad cascade structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df1_q31( + const arm_biquad_casd_df1_inst_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q31 Biquad cascade structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df1_fast_q31( + const arm_biquad_casd_df1_inst_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 Biquad cascade filter. + * @param[in,out] S points to an instance of the Q31 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + */ + void arm_biquad_cascade_df1_init_q31( + arm_biquad_casd_df1_inst_q31 * S, + uint8_t numStages, + q31_t * pCoeffs, + q31_t * pState, + int8_t postShift); + + + /** + * @brief Processing function for the floating-point Biquad cascade filter. + * @param[in] S points to an instance of the floating-point Biquad cascade structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df1_f32( + const arm_biquad_casd_df1_inst_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point Biquad cascade filter. + * @param[in,out] S points to an instance of the floating-point Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + */ + void arm_biquad_cascade_df1_init_f32( + arm_biquad_casd_df1_inst_f32 * S, + uint8_t numStages, + float32_t * pCoeffs, + float32_t * pState); + + + /** + * @brief Instance structure for the floating-point matrix structure. + */ + typedef struct + { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + float32_t *pData; /**< points to the data of the matrix. */ + } arm_matrix_instance_f32; + + + /** + * @brief Instance structure for the floating-point matrix structure. + */ + typedef struct + { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + float64_t *pData; /**< points to the data of the matrix. */ + } arm_matrix_instance_f64; + + /** + * @brief Instance structure for the Q15 matrix structure. + */ + typedef struct + { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q15_t *pData; /**< points to the data of the matrix. */ + } arm_matrix_instance_q15; + + /** + * @brief Instance structure for the Q31 matrix structure. + */ + typedef struct + { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q31_t *pData; /**< points to the data of the matrix. */ + } arm_matrix_instance_q31; + + + /** + * @brief Floating-point matrix addition. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_add_f32( + const arm_matrix_instance_f32 * pSrcA, + const arm_matrix_instance_f32 * pSrcB, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15 matrix addition. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_add_q15( + const arm_matrix_instance_q15 * pSrcA, + const arm_matrix_instance_q15 * pSrcB, + arm_matrix_instance_q15 * pDst); + + + /** + * @brief Q31 matrix addition. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_add_q31( + const arm_matrix_instance_q31 * pSrcA, + const arm_matrix_instance_q31 * pSrcB, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Floating-point, complex, matrix multiplication. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_cmplx_mult_f32( + const arm_matrix_instance_f32 * pSrcA, + const arm_matrix_instance_f32 * pSrcB, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15, complex, matrix multiplication. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_cmplx_mult_q15( + const arm_matrix_instance_q15 * pSrcA, + const arm_matrix_instance_q15 * pSrcB, + arm_matrix_instance_q15 * pDst, + q15_t * pScratch); + + + /** + * @brief Q31, complex, matrix multiplication. + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_cmplx_mult_q31( + const arm_matrix_instance_q31 * pSrcA, + const arm_matrix_instance_q31 * pSrcB, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Floating-point matrix transpose. + * @param[in] pSrc points to the input matrix + * @param[out] pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_trans_f32( + const arm_matrix_instance_f32 * pSrc, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15 matrix transpose. + * @param[in] pSrc points to the input matrix + * @param[out] pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_trans_q15( + const arm_matrix_instance_q15 * pSrc, + arm_matrix_instance_q15 * pDst); + + + /** + * @brief Q31 matrix transpose. + * @param[in] pSrc points to the input matrix + * @param[out] pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_trans_q31( + const arm_matrix_instance_q31 * pSrc, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Floating-point matrix multiplication + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_mult_f32( + const arm_matrix_instance_f32 * pSrcA, + const arm_matrix_instance_f32 * pSrcB, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15 matrix multiplication + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @param[in] pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_mult_q15( + const arm_matrix_instance_q15 * pSrcA, + const arm_matrix_instance_q15 * pSrcB, + arm_matrix_instance_q15 * pDst, + q15_t * pState); + + + /** + * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @param[in] pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_mult_fast_q15( + const arm_matrix_instance_q15 * pSrcA, + const arm_matrix_instance_q15 * pSrcB, + arm_matrix_instance_q15 * pDst, + q15_t * pState); + + + /** + * @brief Q31 matrix multiplication + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_mult_q31( + const arm_matrix_instance_q31 * pSrcA, + const arm_matrix_instance_q31 * pSrcB, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_mult_fast_q31( + const arm_matrix_instance_q31 * pSrcA, + const arm_matrix_instance_q31 * pSrcB, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Floating-point matrix subtraction + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_sub_f32( + const arm_matrix_instance_f32 * pSrcA, + const arm_matrix_instance_f32 * pSrcB, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15 matrix subtraction + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_sub_q15( + const arm_matrix_instance_q15 * pSrcA, + const arm_matrix_instance_q15 * pSrcB, + arm_matrix_instance_q15 * pDst); + + + /** + * @brief Q31 matrix subtraction + * @param[in] pSrcA points to the first input matrix structure + * @param[in] pSrcB points to the second input matrix structure + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_sub_q31( + const arm_matrix_instance_q31 * pSrcA, + const arm_matrix_instance_q31 * pSrcB, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Floating-point matrix scaling. + * @param[in] pSrc points to the input matrix + * @param[in] scale scale factor + * @param[out] pDst points to the output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_scale_f32( + const arm_matrix_instance_f32 * pSrc, + float32_t scale, + arm_matrix_instance_f32 * pDst); + + + /** + * @brief Q15 matrix scaling. + * @param[in] pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] pDst points to output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_scale_q15( + const arm_matrix_instance_q15 * pSrc, + q15_t scaleFract, + int32_t shift, + arm_matrix_instance_q15 * pDst); + + + /** + * @brief Q31 matrix scaling. + * @param[in] pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + arm_status arm_mat_scale_q31( + const arm_matrix_instance_q31 * pSrc, + q31_t scaleFract, + int32_t shift, + arm_matrix_instance_q31 * pDst); + + + /** + * @brief Q31 matrix initialization. + * @param[in,out] S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] pData points to the matrix data array. + */ + void arm_mat_init_q31( + arm_matrix_instance_q31 * S, + uint16_t nRows, + uint16_t nColumns, + q31_t * pData); + + + /** + * @brief Q15 matrix initialization. + * @param[in,out] S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] pData points to the matrix data array. + */ + void arm_mat_init_q15( + arm_matrix_instance_q15 * S, + uint16_t nRows, + uint16_t nColumns, + q15_t * pData); + + + /** + * @brief Floating-point matrix initialization. + * @param[in,out] S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] pData points to the matrix data array. + */ + void arm_mat_init_f32( + arm_matrix_instance_f32 * S, + uint16_t nRows, + uint16_t nColumns, + float32_t * pData); + + + + /** + * @brief Instance structure for the Q15 PID Control. + */ + typedef struct + { + q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ +#if !defined (ARM_MATH_DSP) + q15_t A1; + q15_t A2; +#else + q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/ +#endif + q15_t state[3]; /**< The state array of length 3. */ + q15_t Kp; /**< The proportional gain. */ + q15_t Ki; /**< The integral gain. */ + q15_t Kd; /**< The derivative gain. */ + } arm_pid_instance_q15; + + /** + * @brief Instance structure for the Q31 PID Control. + */ + typedef struct + { + q31_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + q31_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + q31_t A2; /**< The derived gain, A2 = Kd . */ + q31_t state[3]; /**< The state array of length 3. */ + q31_t Kp; /**< The proportional gain. */ + q31_t Ki; /**< The integral gain. */ + q31_t Kd; /**< The derivative gain. */ + } arm_pid_instance_q31; + + /** + * @brief Instance structure for the floating-point PID Control. + */ + typedef struct + { + float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + float32_t A2; /**< The derived gain, A2 = Kd . */ + float32_t state[3]; /**< The state array of length 3. */ + float32_t Kp; /**< The proportional gain. */ + float32_t Ki; /**< The integral gain. */ + float32_t Kd; /**< The derivative gain. */ + } arm_pid_instance_f32; + + + + /** + * @brief Initialization function for the floating-point PID Control. + * @param[in,out] S points to an instance of the PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + */ + void arm_pid_init_f32( + arm_pid_instance_f32 * S, + int32_t resetStateFlag); + + + /** + * @brief Reset function for the floating-point PID Control. + * @param[in,out] S is an instance of the floating-point PID Control structure + */ + void arm_pid_reset_f32( + arm_pid_instance_f32 * S); + + + /** + * @brief Initialization function for the Q31 PID Control. + * @param[in,out] S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + */ + void arm_pid_init_q31( + arm_pid_instance_q31 * S, + int32_t resetStateFlag); + + + /** + * @brief Reset function for the Q31 PID Control. + * @param[in,out] S points to an instance of the Q31 PID Control structure + */ + + void arm_pid_reset_q31( + arm_pid_instance_q31 * S); + + + /** + * @brief Initialization function for the Q15 PID Control. + * @param[in,out] S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + */ + void arm_pid_init_q15( + arm_pid_instance_q15 * S, + int32_t resetStateFlag); + + + /** + * @brief Reset function for the Q15 PID Control. + * @param[in,out] S points to an instance of the q15 PID Control structure + */ + void arm_pid_reset_q15( + arm_pid_instance_q15 * S); + + + /** + * @brief Instance structure for the floating-point Linear Interpolate function. + */ + typedef struct + { + uint32_t nValues; /**< nValues */ + float32_t x1; /**< x1 */ + float32_t xSpacing; /**< xSpacing */ + float32_t *pYData; /**< pointer to the table of Y values */ + } arm_linear_interp_instance_f32; + + /** + * @brief Instance structure for the floating-point bilinear interpolation function. + */ + typedef struct + { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + float32_t *pData; /**< points to the data table. */ + } arm_bilinear_interp_instance_f32; + + /** + * @brief Instance structure for the Q31 bilinear interpolation function. + */ + typedef struct + { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q31_t *pData; /**< points to the data table. */ + } arm_bilinear_interp_instance_q31; + + /** + * @brief Instance structure for the Q15 bilinear interpolation function. + */ + typedef struct + { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q15_t *pData; /**< points to the data table. */ + } arm_bilinear_interp_instance_q15; + + /** + * @brief Instance structure for the Q15 bilinear interpolation function. + */ + typedef struct + { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q7_t *pData; /**< points to the data table. */ + } arm_bilinear_interp_instance_q7; + + + /** + * @brief Q7 vector multiplication. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_mult_q7( + q7_t * pSrcA, + q7_t * pSrcB, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q15 vector multiplication. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_mult_q15( + q15_t * pSrcA, + q15_t * pSrcB, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q31 vector multiplication. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_mult_q31( + q31_t * pSrcA, + q31_t * pSrcB, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Floating-point vector multiplication. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_mult_f32( + float32_t * pSrcA, + float32_t * pSrcB, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t *pTwiddle; /**< points to the Sin twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix2_instance_q15; + +/* Deprecated */ + arm_status arm_cfft_radix2_init_q15( + arm_cfft_radix2_instance_q15 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ + void arm_cfft_radix2_q15( + const arm_cfft_radix2_instance_q15 * S, + q15_t * pSrc); + + + /** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t *pTwiddle; /**< points to the twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix4_instance_q15; + +/* Deprecated */ + arm_status arm_cfft_radix4_init_q15( + arm_cfft_radix4_instance_q15 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ + void arm_cfft_radix4_q15( + const arm_cfft_radix4_instance_q15 * S, + q15_t * pSrc); + + /** + * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t *pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix2_instance_q31; + +/* Deprecated */ + arm_status arm_cfft_radix2_init_q31( + arm_cfft_radix2_instance_q31 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ + void arm_cfft_radix2_q31( + const arm_cfft_radix2_instance_q31 * S, + q31_t * pSrc); + + /** + * @brief Instance structure for the Q31 CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t *pTwiddle; /**< points to the twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix4_instance_q31; + +/* Deprecated */ + void arm_cfft_radix4_q31( + const arm_cfft_radix4_instance_q31 * S, + q31_t * pSrc); + +/* Deprecated */ + arm_status arm_cfft_radix4_init_q31( + arm_cfft_radix4_instance_q31 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + /** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t *pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ + } arm_cfft_radix2_instance_f32; + +/* Deprecated */ + arm_status arm_cfft_radix2_init_f32( + arm_cfft_radix2_instance_f32 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ + void arm_cfft_radix2_f32( + const arm_cfft_radix2_instance_f32 * S, + float32_t * pSrc); + + /** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t *pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ + } arm_cfft_radix4_instance_f32; + +/* Deprecated */ + arm_status arm_cfft_radix4_init_f32( + arm_cfft_radix4_instance_f32 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ + void arm_cfft_radix4_f32( + const arm_cfft_radix4_instance_f32 * S, + float32_t * pSrc); + + /** + * @brief Instance structure for the fixed-point CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + const q15_t *pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ + } arm_cfft_instance_q15; + +void arm_cfft_q15( + const arm_cfft_instance_q15 * S, + q15_t * p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + /** + * @brief Instance structure for the fixed-point CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + const q31_t *pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ + } arm_cfft_instance_q31; + +void arm_cfft_q31( + const arm_cfft_instance_q31 * S, + q31_t * p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + /** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + const float32_t *pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ + } arm_cfft_instance_f32; + + void arm_cfft_f32( + const arm_cfft_instance_f32 * S, + float32_t * p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + /** + * @brief Instance structure for the Q15 RFFT/RIFFT function. + */ + typedef struct + { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q15_t *pTwiddleAReal; /**< points to the real twiddle factor table. */ + q15_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */ + const arm_cfft_instance_q15 *pCfft; /**< points to the complex FFT instance. */ + } arm_rfft_instance_q15; + + arm_status arm_rfft_init_q15( + arm_rfft_instance_q15 * S, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + + void arm_rfft_q15( + const arm_rfft_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst); + + /** + * @brief Instance structure for the Q31 RFFT/RIFFT function. + */ + typedef struct + { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q31_t *pTwiddleAReal; /**< points to the real twiddle factor table. */ + q31_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */ + const arm_cfft_instance_q31 *pCfft; /**< points to the complex FFT instance. */ + } arm_rfft_instance_q31; + + arm_status arm_rfft_init_q31( + arm_rfft_instance_q31 * S, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + + void arm_rfft_q31( + const arm_rfft_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst); + + /** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + typedef struct + { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint16_t fftLenBy2; /**< length of the complex FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + float32_t *pTwiddleAReal; /**< points to the real twiddle factor table. */ + float32_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */ + arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */ + } arm_rfft_instance_f32; + + arm_status arm_rfft_init_f32( + arm_rfft_instance_f32 * S, + arm_cfft_radix4_instance_f32 * S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + + void arm_rfft_f32( + const arm_rfft_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst); + + /** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ +typedef struct + { + arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */ + uint16_t fftLenRFFT; /**< length of the real sequence */ + float32_t * pTwiddleRFFT; /**< Twiddle factors real stage */ + } arm_rfft_fast_instance_f32 ; + +arm_status arm_rfft_fast_init_f32 ( + arm_rfft_fast_instance_f32 * S, + uint16_t fftLen); + +void arm_rfft_fast_f32( + arm_rfft_fast_instance_f32 * S, + float32_t * p, float32_t * pOut, + uint8_t ifftFlag); + + /** + * @brief Instance structure for the floating-point DCT4/IDCT4 function. + */ + typedef struct + { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + float32_t normalize; /**< normalizing factor. */ + float32_t *pTwiddle; /**< points to the twiddle factor table. */ + float32_t *pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_f32 *pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */ + } arm_dct4_instance_f32; + + + /** + * @brief Initialization function for the floating-point DCT4/IDCT4. + * @param[in,out] S points to an instance of floating-point DCT4/IDCT4 structure. + * @param[in] S_RFFT points to an instance of floating-point RFFT/RIFFT structure. + * @param[in] S_CFFT points to an instance of floating-point CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length. + */ + arm_status arm_dct4_init_f32( + arm_dct4_instance_f32 * S, + arm_rfft_instance_f32 * S_RFFT, + arm_cfft_radix4_instance_f32 * S_CFFT, + uint16_t N, + uint16_t Nby2, + float32_t normalize); + + + /** + * @brief Processing function for the floating-point DCT4/IDCT4. + * @param[in] S points to an instance of the floating-point DCT4/IDCT4 structure. + * @param[in] pState points to state buffer. + * @param[in,out] pInlineBuffer points to the in-place input and output buffer. + */ + void arm_dct4_f32( + const arm_dct4_instance_f32 * S, + float32_t * pState, + float32_t * pInlineBuffer); + + + /** + * @brief Instance structure for the Q31 DCT4/IDCT4 function. + */ + typedef struct + { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q31_t normalize; /**< normalizing factor. */ + q31_t *pTwiddle; /**< points to the twiddle factor table. */ + q31_t *pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q31 *pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q31 *pCfft; /**< points to the complex FFT instance. */ + } arm_dct4_instance_q31; + + + /** + * @brief Initialization function for the Q31 DCT4/IDCT4. + * @param[in,out] S points to an instance of Q31 DCT4/IDCT4 structure. + * @param[in] S_RFFT points to an instance of Q31 RFFT/RIFFT structure + * @param[in] S_CFFT points to an instance of Q31 CFFT/CIFFT structure + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + arm_status arm_dct4_init_q31( + arm_dct4_instance_q31 * S, + arm_rfft_instance_q31 * S_RFFT, + arm_cfft_radix4_instance_q31 * S_CFFT, + uint16_t N, + uint16_t Nby2, + q31_t normalize); + + + /** + * @brief Processing function for the Q31 DCT4/IDCT4. + * @param[in] S points to an instance of the Q31 DCT4 structure. + * @param[in] pState points to state buffer. + * @param[in,out] pInlineBuffer points to the in-place input and output buffer. + */ + void arm_dct4_q31( + const arm_dct4_instance_q31 * S, + q31_t * pState, + q31_t * pInlineBuffer); + + + /** + * @brief Instance structure for the Q15 DCT4/IDCT4 function. + */ + typedef struct + { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q15_t normalize; /**< normalizing factor. */ + q15_t *pTwiddle; /**< points to the twiddle factor table. */ + q15_t *pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q15 *pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q15 *pCfft; /**< points to the complex FFT instance. */ + } arm_dct4_instance_q15; + + + /** + * @brief Initialization function for the Q15 DCT4/IDCT4. + * @param[in,out] S points to an instance of Q15 DCT4/IDCT4 structure. + * @param[in] S_RFFT points to an instance of Q15 RFFT/RIFFT structure. + * @param[in] S_CFFT points to an instance of Q15 CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + arm_status arm_dct4_init_q15( + arm_dct4_instance_q15 * S, + arm_rfft_instance_q15 * S_RFFT, + arm_cfft_radix4_instance_q15 * S_CFFT, + uint16_t N, + uint16_t Nby2, + q15_t normalize); + + + /** + * @brief Processing function for the Q15 DCT4/IDCT4. + * @param[in] S points to an instance of the Q15 DCT4 structure. + * @param[in] pState points to state buffer. + * @param[in,out] pInlineBuffer points to the in-place input and output buffer. + */ + void arm_dct4_q15( + const arm_dct4_instance_q15 * S, + q15_t * pState, + q15_t * pInlineBuffer); + + + /** + * @brief Floating-point vector addition. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_add_f32( + float32_t * pSrcA, + float32_t * pSrcB, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q7 vector addition. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_add_q7( + q7_t * pSrcA, + q7_t * pSrcB, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q15 vector addition. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_add_q15( + q15_t * pSrcA, + q15_t * pSrcB, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q31 vector addition. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_add_q31( + q31_t * pSrcA, + q31_t * pSrcB, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Floating-point vector subtraction. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_sub_f32( + float32_t * pSrcA, + float32_t * pSrcB, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q7 vector subtraction. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_sub_q7( + q7_t * pSrcA, + q7_t * pSrcB, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q15 vector subtraction. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_sub_q15( + q15_t * pSrcA, + q15_t * pSrcB, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q31 vector subtraction. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in each vector + */ + void arm_sub_q31( + q31_t * pSrcA, + q31_t * pSrcB, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Multiplies a floating-point vector by a scalar. + * @param[in] pSrc points to the input vector + * @param[in] scale scale factor to be applied + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_scale_f32( + float32_t * pSrc, + float32_t scale, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Multiplies a Q7 vector by a scalar. + * @param[in] pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_scale_q7( + q7_t * pSrc, + q7_t scaleFract, + int8_t shift, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Multiplies a Q15 vector by a scalar. + * @param[in] pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_scale_q15( + q15_t * pSrc, + q15_t scaleFract, + int8_t shift, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Multiplies a Q31 vector by a scalar. + * @param[in] pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_scale_q31( + q31_t * pSrc, + q31_t scaleFract, + int8_t shift, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q7 vector absolute value. + * @param[in] pSrc points to the input buffer + * @param[out] pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + */ + void arm_abs_q7( + q7_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Floating-point vector absolute value. + * @param[in] pSrc points to the input buffer + * @param[out] pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + */ + void arm_abs_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q15 vector absolute value. + * @param[in] pSrc points to the input buffer + * @param[out] pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + */ + void arm_abs_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Q31 vector absolute value. + * @param[in] pSrc points to the input buffer + * @param[out] pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + */ + void arm_abs_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Dot product of floating-point vectors. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] result output result returned here + */ + void arm_dot_prod_f32( + float32_t * pSrcA, + float32_t * pSrcB, + uint32_t blockSize, + float32_t * result); + + + /** + * @brief Dot product of Q7 vectors. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] result output result returned here + */ + void arm_dot_prod_q7( + q7_t * pSrcA, + q7_t * pSrcB, + uint32_t blockSize, + q31_t * result); + + + /** + * @brief Dot product of Q15 vectors. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] result output result returned here + */ + void arm_dot_prod_q15( + q15_t * pSrcA, + q15_t * pSrcB, + uint32_t blockSize, + q63_t * result); + + + /** + * @brief Dot product of Q31 vectors. + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] result output result returned here + */ + void arm_dot_prod_q31( + q31_t * pSrcA, + q31_t * pSrcB, + uint32_t blockSize, + q63_t * result); + + + /** + * @brief Shifts the elements of a Q7 vector a specified number of bits. + * @param[in] pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_shift_q7( + q7_t * pSrc, + int8_t shiftBits, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Shifts the elements of a Q15 vector a specified number of bits. + * @param[in] pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_shift_q15( + q15_t * pSrc, + int8_t shiftBits, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Shifts the elements of a Q31 vector a specified number of bits. + * @param[in] pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_shift_q31( + q31_t * pSrc, + int8_t shiftBits, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Adds a constant offset to a floating-point vector. + * @param[in] pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_offset_f32( + float32_t * pSrc, + float32_t offset, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Adds a constant offset to a Q7 vector. + * @param[in] pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_offset_q7( + q7_t * pSrc, + q7_t offset, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Adds a constant offset to a Q15 vector. + * @param[in] pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_offset_q15( + q15_t * pSrc, + q15_t offset, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Adds a constant offset to a Q31 vector. + * @param[in] pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_offset_q31( + q31_t * pSrc, + q31_t offset, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Negates the elements of a floating-point vector. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_negate_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Negates the elements of a Q7 vector. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_negate_q7( + q7_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Negates the elements of a Q15 vector. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_negate_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Negates the elements of a Q31 vector. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] blockSize number of samples in the vector + */ + void arm_negate_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Copies the elements of a floating-point vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_copy_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Copies the elements of a Q7 vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_copy_q7( + q7_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Copies the elements of a Q15 vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_copy_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Copies the elements of a Q31 vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_copy_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Fills a constant value into a floating-point vector. + * @param[in] value input value to be filled + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_fill_f32( + float32_t value, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Fills a constant value into a Q7 vector. + * @param[in] value input value to be filled + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_fill_q7( + q7_t value, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Fills a constant value into a Q15 vector. + * @param[in] value input value to be filled + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_fill_q15( + q15_t value, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Fills a constant value into a Q31 vector. + * @param[in] value input value to be filled + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_fill_q31( + q31_t value, + q31_t * pDst, + uint32_t blockSize); + + +/** + * @brief Convolution of floating-point sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + */ + void arm_conv_f32( + float32_t * pSrcA, + uint32_t srcALen, + float32_t * pSrcB, + uint32_t srcBLen, + float32_t * pDst); + + + /** + * @brief Convolution of Q15 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + */ + void arm_conv_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + q15_t * pScratch1, + q15_t * pScratch2); + + +/** + * @brief Convolution of Q15 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + */ + void arm_conv_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst); + + + /** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + */ + void arm_conv_fast_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst); + + + /** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + */ + void arm_conv_fast_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + q15_t * pScratch1, + q15_t * pScratch2); + + + /** + * @brief Convolution of Q31 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + */ + void arm_conv_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst); + + + /** + * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + */ + void arm_conv_fast_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst); + + + /** + * @brief Convolution of Q7 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + */ + void arm_conv_opt_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst, + q15_t * pScratch1, + q15_t * pScratch2); + + + /** + * @brief Convolution of Q7 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. + */ + void arm_conv_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst); + + + /** + * @brief Partial convolution of floating-point sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_f32( + float32_t * pSrcA, + uint32_t srcALen, + float32_t * pSrcB, + uint32_t srcBLen, + float32_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Partial convolution of Q15 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t * pScratch1, + q15_t * pScratch2); + + + /** + * @brief Partial convolution of Q15 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_fast_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_fast_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t * pScratch1, + q15_t * pScratch2); + + + /** + * @brief Partial convolution of Q31 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_fast_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Partial convolution of Q7 sequences + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_opt_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t * pScratch1, + q15_t * pScratch2); + + +/** + * @brief Partial convolution of Q7 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + arm_status arm_conv_partial_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + /** + * @brief Instance structure for the Q15 FIR decimator. + */ + typedef struct + { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + } arm_fir_decimate_instance_q15; + + /** + * @brief Instance structure for the Q31 FIR decimator. + */ + typedef struct + { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + } arm_fir_decimate_instance_q31; + + /** + * @brief Instance structure for the floating-point FIR decimator. + */ + typedef struct + { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + } arm_fir_decimate_instance_f32; + + + /** + * @brief Processing function for the floating-point FIR decimator. + * @param[in] S points to an instance of the floating-point FIR decimator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_decimate_f32( + const arm_fir_decimate_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point FIR decimator. + * @param[in,out] S points to an instance of the floating-point FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + arm_status arm_fir_decimate_init_f32( + arm_fir_decimate_instance_f32 * S, + uint16_t numTaps, + uint8_t M, + float32_t * pCoeffs, + float32_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q15 FIR decimator. + * @param[in] S points to an instance of the Q15 FIR decimator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_decimate_q15( + const arm_fir_decimate_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q15 FIR decimator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_decimate_fast_q15( + const arm_fir_decimate_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q15 FIR decimator. + * @param[in,out] S points to an instance of the Q15 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + arm_status arm_fir_decimate_init_q15( + arm_fir_decimate_instance_q15 * S, + uint16_t numTaps, + uint8_t M, + q15_t * pCoeffs, + q15_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 FIR decimator. + * @param[in] S points to an instance of the Q31 FIR decimator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_decimate_q31( + const arm_fir_decimate_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + /** + * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] S points to an instance of the Q31 FIR decimator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_decimate_fast_q31( + arm_fir_decimate_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 FIR decimator. + * @param[in,out] S points to an instance of the Q31 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + arm_status arm_fir_decimate_init_q31( + arm_fir_decimate_instance_q31 * S, + uint16_t numTaps, + uint8_t M, + q31_t * pCoeffs, + q31_t * pState, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q15 FIR interpolator. + */ + typedef struct + { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q15_t *pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ + } arm_fir_interpolate_instance_q15; + + /** + * @brief Instance structure for the Q31 FIR interpolator. + */ + typedef struct + { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q31_t *pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ + } arm_fir_interpolate_instance_q31; + + /** + * @brief Instance structure for the floating-point FIR interpolator. + */ + typedef struct + { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + float32_t *pState; /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */ + } arm_fir_interpolate_instance_f32; + + + /** + * @brief Processing function for the Q15 FIR interpolator. + * @param[in] S points to an instance of the Q15 FIR interpolator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_interpolate_q15( + const arm_fir_interpolate_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q15 FIR interpolator. + * @param[in,out] S points to an instance of the Q15 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficient buffer. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + arm_status arm_fir_interpolate_init_q15( + arm_fir_interpolate_instance_q15 * S, + uint8_t L, + uint16_t numTaps, + q15_t * pCoeffs, + q15_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 FIR interpolator. + * @param[in] S points to an instance of the Q15 FIR interpolator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_interpolate_q31( + const arm_fir_interpolate_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 FIR interpolator. + * @param[in,out] S points to an instance of the Q31 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficient buffer. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + arm_status arm_fir_interpolate_init_q31( + arm_fir_interpolate_instance_q31 * S, + uint8_t L, + uint16_t numTaps, + q31_t * pCoeffs, + q31_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the floating-point FIR interpolator. + * @param[in] S points to an instance of the floating-point FIR interpolator structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_interpolate_f32( + const arm_fir_interpolate_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point FIR interpolator. + * @param[in,out] S points to an instance of the floating-point FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] pCoeffs points to the filter coefficient buffer. + * @param[in] pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + arm_status arm_fir_interpolate_init_f32( + arm_fir_interpolate_instance_f32 * S, + uint8_t L, + uint16_t numTaps, + float32_t * pCoeffs, + float32_t * pState, + uint32_t blockSize); + + + /** + * @brief Instance structure for the high precision Q31 Biquad cascade filter. + */ + typedef struct + { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q63_t *pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< additional shift, in bits, applied to each output sample. */ + } arm_biquad_cas_df1_32x64_ins_q31; + + + /** + * @param[in] S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cas_df1_32x64_q31( + const arm_biquad_cas_df1_32x64_ins_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @param[in,out] S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] postShift shift to be applied to the output. Varies according to the coefficients format + */ + void arm_biquad_cas_df1_32x64_init_q31( + arm_biquad_cas_df1_32x64_ins_q31 * S, + uint8_t numStages, + q31_t * pCoeffs, + q63_t * pState, + uint8_t postShift); + + + /** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + typedef struct + { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t *pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */ + float32_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + } arm_biquad_cascade_df2T_instance_f32; + + /** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + typedef struct + { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t *pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */ + float32_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + } arm_biquad_cascade_stereo_df2T_instance_f32; + + /** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + typedef struct + { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float64_t *pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */ + float64_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + } arm_biquad_cascade_df2T_instance_f64; + + + /** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in] S points to an instance of the filter data structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df2T_f32( + const arm_biquad_cascade_df2T_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. 2 channels + * @param[in] S points to an instance of the filter data structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_stereo_df2T_f32( + const arm_biquad_cascade_stereo_df2T_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in] S points to an instance of the filter data structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_biquad_cascade_df2T_f64( + const arm_biquad_cascade_df2T_instance_f64 * S, + float64_t * pSrc, + float64_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + */ + void arm_biquad_cascade_df2T_init_f32( + arm_biquad_cascade_df2T_instance_f32 * S, + uint8_t numStages, + float32_t * pCoeffs, + float32_t * pState); + + + /** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + */ + void arm_biquad_cascade_stereo_df2T_init_f32( + arm_biquad_cascade_stereo_df2T_instance_f32 * S, + uint8_t numStages, + float32_t * pCoeffs, + float32_t * pState); + + + /** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] pCoeffs points to the filter coefficients. + * @param[in] pState points to the state buffer. + */ + void arm_biquad_cascade_df2T_init_f64( + arm_biquad_cascade_df2T_instance_f64 * S, + uint8_t numStages, + float64_t * pCoeffs, + float64_t * pState); + + + /** + * @brief Instance structure for the Q15 FIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of filter stages. */ + q15_t *pState; /**< points to the state variable array. The array is of length numStages. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ + } arm_fir_lattice_instance_q15; + + /** + * @brief Instance structure for the Q31 FIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of filter stages. */ + q31_t *pState; /**< points to the state variable array. The array is of length numStages. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ + } arm_fir_lattice_instance_q31; + + /** + * @brief Instance structure for the floating-point FIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of filter stages. */ + float32_t *pState; /**< points to the state variable array. The array is of length numStages. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ + } arm_fir_lattice_instance_f32; + + + /** + * @brief Initialization function for the Q15 FIR lattice filter. + * @param[in] S points to an instance of the Q15 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] pState points to the state buffer. The array is of length numStages. + */ + void arm_fir_lattice_init_q15( + arm_fir_lattice_instance_q15 * S, + uint16_t numStages, + q15_t * pCoeffs, + q15_t * pState); + + + /** + * @brief Processing function for the Q15 FIR lattice filter. + * @param[in] S points to an instance of the Q15 FIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_fir_lattice_q15( + const arm_fir_lattice_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 FIR lattice filter. + * @param[in] S points to an instance of the Q31 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] pState points to the state buffer. The array is of length numStages. + */ + void arm_fir_lattice_init_q31( + arm_fir_lattice_instance_q31 * S, + uint16_t numStages, + q31_t * pCoeffs, + q31_t * pState); + + + /** + * @brief Processing function for the Q31 FIR lattice filter. + * @param[in] S points to an instance of the Q31 FIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_fir_lattice_q31( + const arm_fir_lattice_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the floating-point FIR lattice filter. + * @param[in] S points to an instance of the floating-point FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] pState points to the state buffer. The array is of length numStages. + */ + void arm_fir_lattice_init_f32( + arm_fir_lattice_instance_f32 * S, + uint16_t numStages, + float32_t * pCoeffs, + float32_t * pState); + + + /** + * @brief Processing function for the floating-point FIR lattice filter. + * @param[in] S points to an instance of the floating-point FIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] blockSize number of samples to process. + */ + void arm_fir_lattice_f32( + const arm_fir_lattice_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q15 IIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of stages in the filter. */ + q15_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q15_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q15_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ + } arm_iir_lattice_instance_q15; + + /** + * @brief Instance structure for the Q31 IIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of stages in the filter. */ + q31_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q31_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q31_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ + } arm_iir_lattice_instance_q31; + + /** + * @brief Instance structure for the floating-point IIR lattice filter. + */ + typedef struct + { + uint16_t numStages; /**< number of stages in the filter. */ + float32_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + float32_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + float32_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ + } arm_iir_lattice_instance_f32; + + + /** + * @brief Processing function for the floating-point IIR lattice filter. + * @param[in] S points to an instance of the floating-point IIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_iir_lattice_f32( + const arm_iir_lattice_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point IIR lattice filter. + * @param[in] S points to an instance of the floating-point IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] pState points to the state buffer. The array is of length numStages+blockSize-1. + * @param[in] blockSize number of samples to process. + */ + void arm_iir_lattice_init_f32( + arm_iir_lattice_instance_f32 * S, + uint16_t numStages, + float32_t * pkCoeffs, + float32_t * pvCoeffs, + float32_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 IIR lattice filter. + * @param[in] S points to an instance of the Q31 IIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_iir_lattice_q31( + const arm_iir_lattice_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 IIR lattice filter. + * @param[in] S points to an instance of the Q31 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] pState points to the state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process. + */ + void arm_iir_lattice_init_q31( + arm_iir_lattice_instance_q31 * S, + uint16_t numStages, + q31_t * pkCoeffs, + q31_t * pvCoeffs, + q31_t * pState, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q15 IIR lattice filter. + * @param[in] S points to an instance of the Q15 IIR lattice structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + */ + void arm_iir_lattice_q15( + const arm_iir_lattice_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 IIR lattice filter. + * @param[in] S points to an instance of the fixed-point Q15 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] pkCoeffs points to reflection coefficient buffer. The array is of length numStages. + * @param[in] pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. + * @param[in] pState points to state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process per call. + */ + void arm_iir_lattice_init_q15( + arm_iir_lattice_instance_q15 * S, + uint16_t numStages, + q15_t * pkCoeffs, + q15_t * pvCoeffs, + q15_t * pState, + uint32_t blockSize); + + + /** + * @brief Instance structure for the floating-point LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that controls filter coefficient updates. */ + } arm_lms_instance_f32; + + + /** + * @brief Processing function for floating-point LMS filter. + * @param[in] S points to an instance of the floating-point LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_f32( + const arm_lms_instance_f32 * S, + float32_t * pSrc, + float32_t * pRef, + float32_t * pOut, + float32_t * pErr, + uint32_t blockSize); + + + /** + * @brief Initialization function for floating-point LMS filter. + * @param[in] S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to the coefficient buffer. + * @param[in] pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_init_f32( + arm_lms_instance_f32 * S, + uint16_t numTaps, + float32_t * pCoeffs, + float32_t * pState, + float32_t mu, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q15 LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ + } arm_lms_instance_q15; + + + /** + * @brief Initialization function for the Q15 LMS filter. + * @param[in] S points to an instance of the Q15 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to the coefficient buffer. + * @param[in] pState points to the state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + */ + void arm_lms_init_q15( + arm_lms_instance_q15 * S, + uint16_t numTaps, + q15_t * pCoeffs, + q15_t * pState, + q15_t mu, + uint32_t blockSize, + uint32_t postShift); + + + /** + * @brief Processing function for Q15 LMS filter. + * @param[in] S points to an instance of the Q15 LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_q15( + const arm_lms_instance_q15 * S, + q15_t * pSrc, + q15_t * pRef, + q15_t * pOut, + q15_t * pErr, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q31 LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ + } arm_lms_instance_q31; + + + /** + * @brief Processing function for Q31 LMS filter. + * @param[in] S points to an instance of the Q15 LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_q31( + const arm_lms_instance_q31 * S, + q31_t * pSrc, + q31_t * pRef, + q31_t * pOut, + q31_t * pErr, + uint32_t blockSize); + + + /** + * @brief Initialization function for Q31 LMS filter. + * @param[in] S points to an instance of the Q31 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to coefficient buffer. + * @param[in] pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + */ + void arm_lms_init_q31( + arm_lms_instance_q31 * S, + uint16_t numTaps, + q31_t * pCoeffs, + q31_t * pState, + q31_t mu, + uint32_t blockSize, + uint32_t postShift); + + + /** + * @brief Instance structure for the floating-point normalized LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that control filter coefficient updates. */ + float32_t energy; /**< saves previous frame energy. */ + float32_t x0; /**< saves previous input sample. */ + } arm_lms_norm_instance_f32; + + + /** + * @brief Processing function for floating-point normalized LMS filter. + * @param[in] S points to an instance of the floating-point normalized LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_norm_f32( + arm_lms_norm_instance_f32 * S, + float32_t * pSrc, + float32_t * pRef, + float32_t * pOut, + float32_t * pErr, + uint32_t blockSize); + + + /** + * @brief Initialization function for floating-point normalized LMS filter. + * @param[in] S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to coefficient buffer. + * @param[in] pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_norm_init_f32( + arm_lms_norm_instance_f32 * S, + uint16_t numTaps, + float32_t * pCoeffs, + float32_t * pState, + float32_t mu, + uint32_t blockSize); + + + /** + * @brief Instance structure for the Q31 normalized LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q31_t *recipTable; /**< points to the reciprocal initial value table. */ + q31_t energy; /**< saves previous frame energy. */ + q31_t x0; /**< saves previous input sample. */ + } arm_lms_norm_instance_q31; + + + /** + * @brief Processing function for Q31 normalized LMS filter. + * @param[in] S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_norm_q31( + arm_lms_norm_instance_q31 * S, + q31_t * pSrc, + q31_t * pRef, + q31_t * pOut, + q31_t * pErr, + uint32_t blockSize); + + + /** + * @brief Initialization function for Q31 normalized LMS filter. + * @param[in] S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to coefficient buffer. + * @param[in] pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + */ + void arm_lms_norm_init_q31( + arm_lms_norm_instance_q31 * S, + uint16_t numTaps, + q31_t * pCoeffs, + q31_t * pState, + q31_t mu, + uint32_t blockSize, + uint8_t postShift); + + + /** + * @brief Instance structure for the Q15 normalized LMS filter. + */ + typedef struct + { + uint16_t numTaps; /**< Number of coefficients in the filter. */ + q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q15_t *recipTable; /**< Points to the reciprocal initial value table. */ + q15_t energy; /**< saves previous frame energy. */ + q15_t x0; /**< saves previous input sample. */ + } arm_lms_norm_instance_q15; + + + /** + * @brief Processing function for Q15 normalized LMS filter. + * @param[in] S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] pSrc points to the block of input data. + * @param[in] pRef points to the block of reference data. + * @param[out] pOut points to the block of output data. + * @param[out] pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + */ + void arm_lms_norm_q15( + arm_lms_norm_instance_q15 * S, + q15_t * pSrc, + q15_t * pRef, + q15_t * pOut, + q15_t * pErr, + uint32_t blockSize); + + + /** + * @brief Initialization function for Q15 normalized LMS filter. + * @param[in] S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] pCoeffs points to coefficient buffer. + * @param[in] pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + */ + void arm_lms_norm_init_q15( + arm_lms_norm_instance_q15 * S, + uint16_t numTaps, + q15_t * pCoeffs, + q15_t * pState, + q15_t mu, + uint32_t blockSize, + uint8_t postShift); + + + /** + * @brief Correlation of floating-point sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + void arm_correlate_f32( + float32_t * pSrcA, + uint32_t srcALen, + float32_t * pSrcB, + uint32_t srcBLen, + float32_t * pDst); + + + /** + * @brief Correlation of Q15 sequences + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + */ + void arm_correlate_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + q15_t * pScratch); + + + /** + * @brief Correlation of Q15 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + + void arm_correlate_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst); + + + /** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + + void arm_correlate_fast_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst); + + + /** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + */ + void arm_correlate_fast_opt_q15( + q15_t * pSrcA, + uint32_t srcALen, + q15_t * pSrcB, + uint32_t srcBLen, + q15_t * pDst, + q15_t * pScratch); + + + /** + * @brief Correlation of Q31 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + void arm_correlate_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst); + + + /** + * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + void arm_correlate_fast_q31( + q31_t * pSrcA, + uint32_t srcALen, + q31_t * pSrcB, + uint32_t srcBLen, + q31_t * pDst); + + + /** + * @brief Correlation of Q7 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + */ + void arm_correlate_opt_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst, + q15_t * pScratch1, + q15_t * pScratch2); + + + /** + * @brief Correlation of Q7 sequences. + * @param[in] pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + */ + void arm_correlate_q7( + q7_t * pSrcA, + uint32_t srcALen, + q7_t * pSrcB, + uint32_t srcBLen, + q7_t * pDst); + + + /** + * @brief Instance structure for the floating-point sparse FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + float32_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ + } arm_fir_sparse_instance_f32; + + /** + * @brief Instance structure for the Q31 sparse FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q31_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ + } arm_fir_sparse_instance_q31; + + /** + * @brief Instance structure for the Q15 sparse FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q15_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ + } arm_fir_sparse_instance_q15; + + /** + * @brief Instance structure for the Q7 sparse FIR filter. + */ + typedef struct + { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q7_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ + } arm_fir_sparse_instance_q7; + + + /** + * @brief Processing function for the floating-point sparse FIR filter. + * @param[in] S points to an instance of the floating-point sparse FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_sparse_f32( + arm_fir_sparse_instance_f32 * S, + float32_t * pSrc, + float32_t * pDst, + float32_t * pScratchIn, + uint32_t blockSize); + + + /** + * @brief Initialization function for the floating-point sparse FIR filter. + * @param[in,out] S points to an instance of the floating-point sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] pCoeffs points to the array of filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + */ + void arm_fir_sparse_init_f32( + arm_fir_sparse_instance_f32 * S, + uint16_t numTaps, + float32_t * pCoeffs, + float32_t * pState, + int32_t * pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q31 sparse FIR filter. + * @param[in] S points to an instance of the Q31 sparse FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_sparse_q31( + arm_fir_sparse_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst, + q31_t * pScratchIn, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q31 sparse FIR filter. + * @param[in,out] S points to an instance of the Q31 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] pCoeffs points to the array of filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + */ + void arm_fir_sparse_init_q31( + arm_fir_sparse_instance_q31 * S, + uint16_t numTaps, + q31_t * pCoeffs, + q31_t * pState, + int32_t * pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q15 sparse FIR filter. + * @param[in] S points to an instance of the Q15 sparse FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] pScratchIn points to a temporary buffer of size blockSize. + * @param[in] pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_sparse_q15( + arm_fir_sparse_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst, + q15_t * pScratchIn, + q31_t * pScratchOut, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q15 sparse FIR filter. + * @param[in,out] S points to an instance of the Q15 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] pCoeffs points to the array of filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + */ + void arm_fir_sparse_init_q15( + arm_fir_sparse_instance_q15 * S, + uint16_t numTaps, + q15_t * pCoeffs, + q15_t * pState, + int32_t * pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + + /** + * @brief Processing function for the Q7 sparse FIR filter. + * @param[in] S points to an instance of the Q7 sparse FIR structure. + * @param[in] pSrc points to the block of input data. + * @param[out] pDst points to the block of output data + * @param[in] pScratchIn points to a temporary buffer of size blockSize. + * @param[in] pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + */ + void arm_fir_sparse_q7( + arm_fir_sparse_instance_q7 * S, + q7_t * pSrc, + q7_t * pDst, + q7_t * pScratchIn, + q31_t * pScratchOut, + uint32_t blockSize); + + + /** + * @brief Initialization function for the Q7 sparse FIR filter. + * @param[in,out] S points to an instance of the Q7 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] pCoeffs points to the array of filter coefficients. + * @param[in] pState points to the state buffer. + * @param[in] pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + */ + void arm_fir_sparse_init_q7( + arm_fir_sparse_instance_q7 * S, + uint16_t numTaps, + q7_t * pCoeffs, + q7_t * pState, + int32_t * pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + + /** + * @brief Floating-point sin_cos function. + * @param[in] theta input value in degrees + * @param[out] pSinVal points to the processed sine output. + * @param[out] pCosVal points to the processed cos output. + */ + void arm_sin_cos_f32( + float32_t theta, + float32_t * pSinVal, + float32_t * pCosVal); + + + /** + * @brief Q31 sin_cos function. + * @param[in] theta scaled input value in degrees + * @param[out] pSinVal points to the processed sine output. + * @param[out] pCosVal points to the processed cosine output. + */ + void arm_sin_cos_q31( + q31_t theta, + q31_t * pSinVal, + q31_t * pCosVal); + + + /** + * @brief Floating-point complex conjugate. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_conj_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t numSamples); + + /** + * @brief Q31 complex conjugate. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_conj_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q15 complex conjugate. + * @param[in] pSrc points to the input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_conj_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t numSamples); + + + /** + * @brief Floating-point complex magnitude squared + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_squared_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q31 complex magnitude squared + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_squared_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q15 complex magnitude squared + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_squared_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t numSamples); + + + /** + * @ingroup groupController + */ + + /** + * @defgroup PID PID Motor Control + * + * A Proportional Integral Derivative (PID) controller is a generic feedback control + * loop mechanism widely used in industrial control systems. + * A PID controller is the most commonly used type of feedback controller. + * + * This set of functions implements (PID) controllers + * for Q15, Q31, and floating-point data types. The functions operate on a single sample + * of data and each call to the function returns a single processed value. + * S points to an instance of the PID control data structure. in + * is the input sample value. The functions return the output value. + * + * \par Algorithm: + *
+   *    y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]
+   *    A0 = Kp + Ki + Kd
+   *    A1 = (-Kp ) - (2 * Kd )
+   *    A2 = Kd  
+ * + * \par + * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative constant + * + * \par + * \image html PID.gif "Proportional Integral Derivative Controller" + * + * \par + * The PID controller calculates an "error" value as the difference between + * the measured output and the reference input. + * The controller attempts to minimize the error by adjusting the process control inputs. + * The proportional value determines the reaction to the current error, + * the integral value determines the reaction based on the sum of recent errors, + * and the derivative value determines the reaction based on the rate at which the error has been changing. + * + * \par Instance Structure + * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure. + * A separate instance structure must be defined for each PID Controller. + * There are separate instance structure declarations for each of the 3 supported data types. + * + * \par Reset Functions + * There is also an associated reset function for each data type which clears the state array. + * + * \par Initialization Functions + * There is also an associated initialization function for each data type. + * The initialization function performs the following operations: + * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains. + * - Zeros out the values in the state buffer. + * + * \par + * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. + * + * \par Fixed-Point Behavior + * Care must be taken when using the fixed-point versions of the PID Controller functions. + * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + + /** + * @addtogroup PID + * @{ + */ + + /** + * @brief Process function for the floating-point PID Control. + * @param[in,out] S is an instance of the floating-point PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + */ + CMSIS_INLINE __STATIC_INLINE float32_t arm_pid_f32( + arm_pid_instance_f32 * S, + float32_t in) + { + float32_t out; + + /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */ + out = (S->A0 * in) + + (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + + } + + /** + * @brief Process function for the Q31 PID Control. + * @param[in,out] S points to an instance of the Q31 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 64-bit accumulator. + * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. + * Thus, if the accumulator result overflows it wraps around rather than clip. + * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions. + * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. + */ + CMSIS_INLINE __STATIC_INLINE q31_t arm_pid_q31( + arm_pid_instance_q31 * S, + q31_t in) + { + q63_t acc; + q31_t out; + + /* acc = A0 * x[n] */ + acc = (q63_t) S->A0 * in; + + /* acc += A1 * x[n-1] */ + acc += (q63_t) S->A1 * S->state[0]; + + /* acc += A2 * x[n-2] */ + acc += (q63_t) S->A2 * S->state[1]; + + /* convert output to 1.31 format to add y[n-1] */ + out = (q31_t) (acc >> 31u); + + /* out += y[n-1] */ + out += S->state[2]; + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + } + + + /** + * @brief Process function for the Q15 PID Control. + * @param[in,out] S points to an instance of the Q15 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using a 64-bit internal accumulator. + * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result. + * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. + * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. + * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. + * Lastly, the accumulator is saturated to yield a result in 1.15 format. + */ + CMSIS_INLINE __STATIC_INLINE q15_t arm_pid_q15( + arm_pid_instance_q15 * S, + q15_t in) + { + q63_t acc; + q15_t out; + +#if defined (ARM_MATH_DSP) + __SIMD32_TYPE *vstate; + + /* Implementation of PID controller */ + + /* acc = A0 * x[n] */ + acc = (q31_t) __SMUAD((uint32_t)S->A0, (uint32_t)in); + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + vstate = __SIMD32_CONST(S->state); + acc = (q63_t)__SMLALD((uint32_t)S->A1, (uint32_t)*vstate, (uint64_t)acc); +#else + /* acc = A0 * x[n] */ + acc = ((q31_t) S->A0) * in; + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + acc += (q31_t) S->A1 * S->state[0]; + acc += (q31_t) S->A2 * S->state[1]; +#endif + + /* acc += y[n-1] */ + acc += (q31_t) S->state[2] << 15; + + /* saturate the output */ + out = (q15_t) (__SSAT((acc >> 15), 16)); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + } + + /** + * @} end of PID group + */ + + + /** + * @brief Floating-point matrix inverse. + * @param[in] src points to the instance of the input floating-point matrix structure. + * @param[out] dst points to the instance of the output floating-point matrix structure. + * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. + * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR. + */ + arm_status arm_mat_inverse_f32( + const arm_matrix_instance_f32 * src, + arm_matrix_instance_f32 * dst); + + + /** + * @brief Floating-point matrix inverse. + * @param[in] src points to the instance of the input floating-point matrix structure. + * @param[out] dst points to the instance of the output floating-point matrix structure. + * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. + * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR. + */ + arm_status arm_mat_inverse_f64( + const arm_matrix_instance_f64 * src, + arm_matrix_instance_f64 * dst); + + + + /** + * @ingroup groupController + */ + + /** + * @defgroup clarke Vector Clarke Transform + * Forward Clarke transform converts the instantaneous stator phases into a two-coordinate time invariant vector. + * Generally the Clarke transform uses three-phase currents Ia, Ib and Ic to calculate currents + * in the two-phase orthogonal stator axis Ialpha and Ibeta. + * When Ialpha is superposed with Ia as shown in the figure below + * \image html clarke.gif Stator current space vector and its components in (a,b). + * and Ia + Ib + Ic = 0, in this condition Ialpha and Ibeta + * can be calculated using only Ia and Ib. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeFormula.gif + * where Ia and Ib are the instantaneous stator phases and + * pIalpha and pIbeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + + /** + * @addtogroup clarke + * @{ + */ + + /** + * + * @brief Floating-point Clarke transform + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] pIbeta points to output two-phase orthogonal vector axis beta + */ + CMSIS_INLINE __STATIC_INLINE void arm_clarke_f32( + float32_t Ia, + float32_t Ib, + float32_t * pIalpha, + float32_t * pIbeta) + { + /* Calculate pIalpha using the equation, pIalpha = Ia */ + *pIalpha = Ia; + + /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */ + *pIbeta = ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib); + } + + + /** + * @brief Clarke transform for Q31 version + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] pIbeta points to output two-phase orthogonal vector axis beta + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + CMSIS_INLINE __STATIC_INLINE void arm_clarke_q31( + q31_t Ia, + q31_t Ib, + q31_t * pIalpha, + q31_t * pIbeta) + { + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIalpha from Ia by equation pIalpha = Ia */ + *pIalpha = Ia; + + /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30); + + /* Intermediate product is calculated by (2/sqrt(3) * Ib) */ + product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30); + + /* pIbeta is calculated by adding the intermediate products */ + *pIbeta = __QADD(product1, product2); + } + + /** + * @} end of clarke group + */ + + /** + * @brief Converts the elements of the Q7 vector to Q31 vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_q7_to_q31( + q7_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + + /** + * @ingroup groupController + */ + + /** + * @defgroup inv_clarke Vector Inverse Clarke Transform + * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeInvFormula.gif + * where pIa and pIb are the instantaneous stator phases and + * Ialpha and Ibeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + + /** + * @addtogroup inv_clarke + * @{ + */ + + /** + * @brief Floating-point Inverse Clarke transform + * @param[in] Ialpha input two-phase orthogonal vector axis alpha + * @param[in] Ibeta input two-phase orthogonal vector axis beta + * @param[out] pIa points to output three-phase coordinate a + * @param[out] pIb points to output three-phase coordinate b + */ + CMSIS_INLINE __STATIC_INLINE void arm_inv_clarke_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t * pIa, + float32_t * pIb) + { + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */ + *pIb = -0.5f * Ialpha + 0.8660254039f * Ibeta; + } + + + /** + * @brief Inverse Clarke transform for Q31 version + * @param[in] Ialpha input two-phase orthogonal vector axis alpha + * @param[in] Ibeta input two-phase orthogonal vector axis beta + * @param[out] pIa points to output three-phase coordinate a + * @param[out] pIb points to output three-phase coordinate b + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the subtraction, hence there is no risk of overflow. + */ + CMSIS_INLINE __STATIC_INLINE void arm_inv_clarke_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t * pIa, + q31_t * pIb) + { + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31); + + /* Intermediate product is calculated by (1/sqrt(3) * pIb) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31); + + /* pIb is calculated by subtracting the products */ + *pIb = __QSUB(product2, product1); + } + + /** + * @} end of inv_clarke group + */ + + /** + * @brief Converts the elements of the Q7 vector to Q15 vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ + void arm_q7_to_q15( + q7_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + + /** + * @ingroup groupController + */ + + /** + * @defgroup park Vector Park Transform + * + * Forward Park transform converts the input two-coordinate vector to flux and torque components. + * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents + * from the stationary to the moving reference frame and control the spatial relationship between + * the stator vector current and rotor flux vector. + * If we consider the d axis aligned with the rotor flux, the diagram below shows the + * current vector and the relationship from the two reference frames: + * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rotating reference frame" + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkFormula.gif + * where Ialpha and Ibeta are the stator vector components, + * pId and pIq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + + /** + * @addtogroup park + * @{ + */ + + /** + * @brief Floating-point Park transform + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] pId points to output rotor reference frame d + * @param[out] pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * + * The function implements the forward Park transform. + * + */ + CMSIS_INLINE __STATIC_INLINE void arm_park_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t * pId, + float32_t * pIq, + float32_t sinVal, + float32_t cosVal) + { + /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */ + *pId = Ialpha * cosVal + Ibeta * sinVal; + + /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */ + *pIq = -Ialpha * sinVal + Ibeta * cosVal; + } + + + /** + * @brief Park transform for Q31 version + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] pId points to output rotor reference frame d + * @param[out] pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition and subtraction, hence there is no risk of overflow. + */ + CMSIS_INLINE __STATIC_INLINE void arm_park_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t * pId, + q31_t * pIq, + q31_t sinVal, + q31_t cosVal) + { + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Ialpha * cosVal) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * sinVal) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Ialpha * sinVal) */ + product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * cosVal) */ + product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31); + + /* Calculate pId by adding the two intermediate products 1 and 2 */ + *pId = __QADD(product1, product2); + + /* Calculate pIq by subtracting the two intermediate products 3 from 4 */ + *pIq = __QSUB(product4, product3); + } + + /** + * @} end of park group + */ + + /** + * @brief Converts the elements of the Q7 vector to floating-point vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q7_to_float( + q7_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @ingroup groupController + */ + + /** + * @defgroup inv_park Vector Inverse Park transform + * Inverse Park transform converts the input flux and torque components to two-coordinate vector. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkInvFormula.gif + * where pIalpha and pIbeta are the stator vector components, + * Id and Iq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + + /** + * @addtogroup inv_park + * @{ + */ + + /** + * @brief Floating-point Inverse Park transform + * @param[in] Id input coordinate of rotor reference frame d + * @param[in] Iq input coordinate of rotor reference frame q + * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] pIbeta points to output two-phase orthogonal vector axis beta + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + */ + CMSIS_INLINE __STATIC_INLINE void arm_inv_park_f32( + float32_t Id, + float32_t Iq, + float32_t * pIalpha, + float32_t * pIbeta, + float32_t sinVal, + float32_t cosVal) + { + /* Calculate pIalpha using the equation, pIalpha = Id * cosVal - Iq * sinVal */ + *pIalpha = Id * cosVal - Iq * sinVal; + + /* Calculate pIbeta using the equation, pIbeta = Id * sinVal + Iq * cosVal */ + *pIbeta = Id * sinVal + Iq * cosVal; + } + + + /** + * @brief Inverse Park transform for Q31 version + * @param[in] Id input coordinate of rotor reference frame d + * @param[in] Iq input coordinate of rotor reference frame q + * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] pIbeta points to output two-phase orthogonal vector axis beta + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + CMSIS_INLINE __STATIC_INLINE void arm_inv_park_q31( + q31_t Id, + q31_t Iq, + q31_t * pIalpha, + q31_t * pIbeta, + q31_t sinVal, + q31_t cosVal) + { + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Id * cosVal) */ + product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Iq * sinVal) */ + product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Id * sinVal) */ + product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Iq * cosVal) */ + product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31); + + /* Calculate pIalpha by using the two intermediate products 1 and 2 */ + *pIalpha = __QSUB(product1, product2); + + /* Calculate pIbeta by using the two intermediate products 3 and 4 */ + *pIbeta = __QADD(product4, product3); + } + + /** + * @} end of Inverse park group + */ + + + /** + * @brief Converts the elements of the Q31 vector to floating-point vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q31_to_float( + q31_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + /** + * @ingroup groupInterpolation + */ + + /** + * @defgroup LinearInterpolate Linear Interpolation + * + * Linear interpolation is a method of curve fitting using linear polynomials. + * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line + * + * \par + * \image html LinearInterp.gif "Linear interpolation" + * + * \par + * A Linear Interpolate function calculates an output value(y), for the input(x) + * using linear interpolation of the input values x0, x1( nearest input values) and the output values y0 and y1(nearest output values) + * + * \par Algorithm: + *
+   *       y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
+   *       where x0, x1 are nearest values of input x
+   *             y0, y1 are nearest values to output y
+   * 
+ * + * \par + * This set of functions implements Linear interpolation process + * for Q7, Q15, Q31, and floating-point data types. The functions operate on a single + * sample of data and each call to the function returns a single processed value. + * S points to an instance of the Linear Interpolate function data structure. + * x is the input sample value. The functions returns the output value. + * + * \par + * if x is outside of the table boundary, Linear interpolation returns first value of the table + * if x is below input range and returns last value of table if x is above range. + */ + + /** + * @addtogroup LinearInterpolate + * @{ + */ + + /** + * @brief Process function for the floating-point Linear Interpolation Function. + * @param[in,out] S is an instance of the floating-point Linear Interpolation structure + * @param[in] x input sample to process + * @return y processed output sample. + * + */ + CMSIS_INLINE __STATIC_INLINE float32_t arm_linear_interp_f32( + arm_linear_interp_instance_f32 * S, + float32_t x) + { + float32_t y; + float32_t x0, x1; /* Nearest input values */ + float32_t y0, y1; /* Nearest output values */ + float32_t xSpacing = S->xSpacing; /* spacing between input values */ + int32_t i; /* Index variable */ + float32_t *pYData = S->pYData; /* pointer to output table */ + + /* Calculation of index */ + i = (int32_t) ((x - S->x1) / xSpacing); + + if (i < 0) + { + /* Iniatilize output for below specified range as least output value of table */ + y = pYData[0]; + } + else if ((uint32_t)i >= S->nValues) + { + /* Iniatilize output for above specified range as last output value of table */ + y = pYData[S->nValues - 1]; + } + else + { + /* Calculation of nearest input values */ + x0 = S->x1 + i * xSpacing; + x1 = S->x1 + (i + 1) * xSpacing; + + /* Read of nearest output values */ + y0 = pYData[i]; + y1 = pYData[i + 1]; + + /* Calculation of output */ + y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0)); + + } + + /* returns output value */ + return (y); + } + + + /** + * + * @brief Process function for the Q31 Linear Interpolation Function. + * @param[in] pYData pointer to Q31 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + * + */ + CMSIS_INLINE __STATIC_INLINE q31_t arm_linear_interp_q31( + q31_t * pYData, + q31_t x, + uint32_t nValues) + { + q31_t y; /* output */ + q31_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & (q31_t)0xFFF00000) >> 20); + + if (index >= (int32_t)(nValues - 1)) + { + return (pYData[nValues - 1]); + } + else if (index < 0) + { + return (pYData[0]); + } + else + { + /* 20 bits for the fractional part */ + /* shift left by 11 to keep fract in 1.31 format */ + fract = (x & 0x000FFFFF) << 11; + + /* Read two nearest output values from the index in 1.31(q31) format */ + y0 = pYData[index]; + y1 = pYData[index + 1]; + + /* Calculation of y0 * (1-fract) and y is in 2.30 format */ + y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32)); + + /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ + y += ((q31_t) (((q63_t) y1 * fract) >> 32)); + + /* Convert y to 1.31 format */ + return (y << 1u); + } + } + + + /** + * + * @brief Process function for the Q15 Linear Interpolation Function. + * @param[in] pYData pointer to Q15 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + * + */ + CMSIS_INLINE __STATIC_INLINE q15_t arm_linear_interp_q15( + q15_t * pYData, + q31_t x, + uint32_t nValues) + { + q63_t y; /* output */ + q15_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & (int32_t)0xFFF00000) >> 20); + + if (index >= (int32_t)(nValues - 1)) + { + return (pYData[nValues - 1]); + } + else if (index < 0) + { + return (pYData[0]); + } + else + { + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y0 = pYData[index]; + y1 = pYData[index + 1]; + + /* Calculation of y0 * (1-fract) and y is in 13.35 format */ + y = ((q63_t) y0 * (0xFFFFF - fract)); + + /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ + y += ((q63_t) y1 * (fract)); + + /* convert y to 1.15 format */ + return (q15_t) (y >> 20); + } + } + + + /** + * + * @brief Process function for the Q7 Linear Interpolation Function. + * @param[in] pYData pointer to Q7 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + */ + CMSIS_INLINE __STATIC_INLINE q7_t arm_linear_interp_q7( + q7_t * pYData, + q31_t x, + uint32_t nValues) + { + q31_t y; /* output */ + q7_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + uint32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + if (x < 0) + { + return (pYData[0]); + } + index = (x >> 20) & 0xfff; + + if (index >= (nValues - 1)) + { + return (pYData[nValues - 1]); + } + else + { + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index and are in 1.7(q7) format */ + y0 = pYData[index]; + y1 = pYData[index + 1]; + + /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ + y = ((y0 * (0xFFFFF - fract))); + + /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ + y += (y1 * fract); + + /* convert y to 1.7(q7) format */ + return (q7_t) (y >> 20); + } + } + + /** + * @} end of LinearInterpolate group + */ + + /** + * @brief Fast approximation to the trigonometric sine function for floating-point data. + * @param[in] x input value in radians. + * @return sin(x). + */ + float32_t arm_sin_f32( + float32_t x); + + + /** + * @brief Fast approximation to the trigonometric sine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + q31_t arm_sin_q31( + q31_t x); + + + /** + * @brief Fast approximation to the trigonometric sine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + q15_t arm_sin_q15( + q15_t x); + + + /** + * @brief Fast approximation to the trigonometric cosine function for floating-point data. + * @param[in] x input value in radians. + * @return cos(x). + */ + float32_t arm_cos_f32( + float32_t x); + + + /** + * @brief Fast approximation to the trigonometric cosine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + q31_t arm_cos_q31( + q31_t x); + + + /** + * @brief Fast approximation to the trigonometric cosine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + q15_t arm_cos_q15( + q15_t x); + + + /** + * @ingroup groupFastMath + */ + + + /** + * @defgroup SQRT Square Root + * + * Computes the square root of a number. + * There are separate functions for Q15, Q31, and floating-point data types. + * The square root function is computed using the Newton-Raphson algorithm. + * This is an iterative algorithm of the form: + *
+   *      x1 = x0 - f(x0)/f'(x0)
+   * 
+ * where x1 is the current estimate, + * x0 is the previous estimate, and + * f'(x0) is the derivative of f() evaluated at x0. + * For the square root function, the algorithm reduces to: + *
+   *     x0 = in/2                         [initial guess]
+   *     x1 = 1/2 * ( x0 + in / x0)        [each iteration]
+   * 
+ */ + + + /** + * @addtogroup SQRT + * @{ + */ + + /** + * @brief Floating-point square root function. + * @param[in] in input value. + * @param[out] pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ + CMSIS_INLINE __STATIC_INLINE arm_status arm_sqrt_f32( + float32_t in, + float32_t * pOut) + { + if (in >= 0.0f) + { + +#if (__FPU_USED == 1) && defined ( __CC_ARM ) + *pOut = __sqrtf(in); +#elif (__FPU_USED == 1) && (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) + *pOut = __builtin_sqrtf(in); +#elif (__FPU_USED == 1) && defined(__GNUC__) + *pOut = __builtin_sqrtf(in); +#elif (__FPU_USED == 1) && defined ( __ICCARM__ ) && (__VER__ >= 6040000) + __ASM("VSQRT.F32 %0,%1" : "=t"(*pOut) : "t"(in)); +#else + *pOut = sqrtf(in); +#endif + + return (ARM_MATH_SUCCESS); + } + else + { + *pOut = 0.0f; + return (ARM_MATH_ARGUMENT_ERROR); + } + } + + + /** + * @brief Q31 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF. + * @param[out] pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ + arm_status arm_sqrt_q31( + q31_t in, + q31_t * pOut); + + + /** + * @brief Q15 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF. + * @param[out] pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ + arm_status arm_sqrt_q15( + q15_t in, + q15_t * pOut); + + /** + * @} end of SQRT group + */ + + + /** + * @brief floating-point Circular write function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_f32( + int32_t * circBuffer, + int32_t L, + uint16_t * writeOffset, + int32_t bufferInc, + const int32_t * src, + int32_t srcInc, + uint32_t blockSize) + { + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if (wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = (uint16_t)wOffset; + } + + + + /** + * @brief floating-point Circular Read function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularRead_f32( + int32_t * circBuffer, + int32_t L, + int32_t * readOffset, + int32_t bufferInc, + int32_t * dst, + int32_t * dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) + { + uint32_t i = 0u; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if (dst == (int32_t *) dst_end) + { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if (rOffset >= L) + { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; + } + + + /** + * @brief Q15 Circular write function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_q15( + q15_t * circBuffer, + int32_t L, + uint16_t * writeOffset, + int32_t bufferInc, + const q15_t * src, + int32_t srcInc, + uint32_t blockSize) + { + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if (wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = (uint16_t)wOffset; + } + + + /** + * @brief Q15 Circular Read function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularRead_q15( + q15_t * circBuffer, + int32_t L, + int32_t * readOffset, + int32_t bufferInc, + q15_t * dst, + q15_t * dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) + { + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if (dst == (q15_t *) dst_end) + { + dst = dst_base; + } + + /* Circularly update wOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if (rOffset >= L) + { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; + } + + + /** + * @brief Q7 Circular write function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_q7( + q7_t * circBuffer, + int32_t L, + uint16_t * writeOffset, + int32_t bufferInc, + const q7_t * src, + int32_t srcInc, + uint32_t blockSize) + { + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if (wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = (uint16_t)wOffset; + } + + + /** + * @brief Q7 Circular Read function. + */ + CMSIS_INLINE __STATIC_INLINE void arm_circularRead_q7( + q7_t * circBuffer, + int32_t L, + int32_t * readOffset, + int32_t bufferInc, + q7_t * dst, + q7_t * dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) + { + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while (i > 0u) + { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if (dst == (q7_t *) dst_end) + { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if (rOffset >= L) + { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; + } + + + /** + * @brief Sum of the squares of the elements of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_power_q31( + q31_t * pSrc, + uint32_t blockSize, + q63_t * pResult); + + + /** + * @brief Sum of the squares of the elements of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_power_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult); + + + /** + * @brief Sum of the squares of the elements of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_power_q15( + q15_t * pSrc, + uint32_t blockSize, + q63_t * pResult); + + + /** + * @brief Sum of the squares of the elements of a Q7 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_power_q7( + q7_t * pSrc, + uint32_t blockSize, + q31_t * pResult); + + + /** + * @brief Mean value of a Q7 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_mean_q7( + q7_t * pSrc, + uint32_t blockSize, + q7_t * pResult); + + + /** + * @brief Mean value of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_mean_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult); + + + /** + * @brief Mean value of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_mean_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult); + + + /** + * @brief Mean value of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_mean_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult); + + + /** + * @brief Variance of the elements of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_var_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult); + + + /** + * @brief Variance of the elements of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_var_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult); + + + /** + * @brief Variance of the elements of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_var_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult); + + + /** + * @brief Root Mean Square of the elements of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_rms_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult); + + + /** + * @brief Root Mean Square of the elements of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_rms_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult); + + + /** + * @brief Root Mean Square of the elements of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_rms_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult); + + + /** + * @brief Standard deviation of the elements of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_std_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult); + + + /** + * @brief Standard deviation of the elements of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_std_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult); + + + /** + * @brief Standard deviation of the elements of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output value. + */ + void arm_std_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult); + + + /** + * @brief Floating-point complex magnitude + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_f32( + float32_t * pSrc, + float32_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q31 complex magnitude + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_q31( + q31_t * pSrc, + q31_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q15 complex magnitude + * @param[in] pSrc points to the complex input vector + * @param[out] pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + */ + void arm_cmplx_mag_q15( + q15_t * pSrc, + q15_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q15 complex dot product + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] realResult real part of the result returned here + * @param[out] imagResult imaginary part of the result returned here + */ + void arm_cmplx_dot_prod_q15( + q15_t * pSrcA, + q15_t * pSrcB, + uint32_t numSamples, + q31_t * realResult, + q31_t * imagResult); + + + /** + * @brief Q31 complex dot product + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] realResult real part of the result returned here + * @param[out] imagResult imaginary part of the result returned here + */ + void arm_cmplx_dot_prod_q31( + q31_t * pSrcA, + q31_t * pSrcB, + uint32_t numSamples, + q63_t * realResult, + q63_t * imagResult); + + + /** + * @brief Floating-point complex dot product + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] realResult real part of the result returned here + * @param[out] imagResult imaginary part of the result returned here + */ + void arm_cmplx_dot_prod_f32( + float32_t * pSrcA, + float32_t * pSrcB, + uint32_t numSamples, + float32_t * realResult, + float32_t * imagResult); + + + /** + * @brief Q15 complex-by-real multiplication + * @param[in] pSrcCmplx points to the complex input vector + * @param[in] pSrcReal points to the real input vector + * @param[out] pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + */ + void arm_cmplx_mult_real_q15( + q15_t * pSrcCmplx, + q15_t * pSrcReal, + q15_t * pCmplxDst, + uint32_t numSamples); + + + /** + * @brief Q31 complex-by-real multiplication + * @param[in] pSrcCmplx points to the complex input vector + * @param[in] pSrcReal points to the real input vector + * @param[out] pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + */ + void arm_cmplx_mult_real_q31( + q31_t * pSrcCmplx, + q31_t * pSrcReal, + q31_t * pCmplxDst, + uint32_t numSamples); + + + /** + * @brief Floating-point complex-by-real multiplication + * @param[in] pSrcCmplx points to the complex input vector + * @param[in] pSrcReal points to the real input vector + * @param[out] pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + */ + void arm_cmplx_mult_real_f32( + float32_t * pSrcCmplx, + float32_t * pSrcReal, + float32_t * pCmplxDst, + uint32_t numSamples); + + + /** + * @brief Minimum value of a Q7 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] result is output pointer + * @param[in] index is the array index of the minimum value in the input buffer. + */ + void arm_min_q7( + q7_t * pSrc, + uint32_t blockSize, + q7_t * result, + uint32_t * index); + + + /** + * @brief Minimum value of a Q15 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output pointer + * @param[in] pIndex is the array index of the minimum value in the input buffer. + */ + void arm_min_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult, + uint32_t * pIndex); + + + /** + * @brief Minimum value of a Q31 vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output pointer + * @param[out] pIndex is the array index of the minimum value in the input buffer. + */ + void arm_min_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult, + uint32_t * pIndex); + + + /** + * @brief Minimum value of a floating-point vector. + * @param[in] pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] pResult is output pointer + * @param[out] pIndex is the array index of the minimum value in the input buffer. + */ + void arm_min_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult, + uint32_t * pIndex); + + +/** + * @brief Maximum value of a Q7 vector. + * @param[in] pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] pResult maximum value returned here + * @param[out] pIndex index of maximum value returned here + */ + void arm_max_q7( + q7_t * pSrc, + uint32_t blockSize, + q7_t * pResult, + uint32_t * pIndex); + + +/** + * @brief Maximum value of a Q15 vector. + * @param[in] pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] pResult maximum value returned here + * @param[out] pIndex index of maximum value returned here + */ + void arm_max_q15( + q15_t * pSrc, + uint32_t blockSize, + q15_t * pResult, + uint32_t * pIndex); + + +/** + * @brief Maximum value of a Q31 vector. + * @param[in] pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] pResult maximum value returned here + * @param[out] pIndex index of maximum value returned here + */ + void arm_max_q31( + q31_t * pSrc, + uint32_t blockSize, + q31_t * pResult, + uint32_t * pIndex); + + +/** + * @brief Maximum value of a floating-point vector. + * @param[in] pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] pResult maximum value returned here + * @param[out] pIndex index of maximum value returned here + */ + void arm_max_f32( + float32_t * pSrc, + uint32_t blockSize, + float32_t * pResult, + uint32_t * pIndex); + + + /** + * @brief Q15 complex-by-complex multiplication + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_mult_cmplx_q15( + q15_t * pSrcA, + q15_t * pSrcB, + q15_t * pDst, + uint32_t numSamples); + + + /** + * @brief Q31 complex-by-complex multiplication + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_mult_cmplx_q31( + q31_t * pSrcA, + q31_t * pSrcB, + q31_t * pDst, + uint32_t numSamples); + + + /** + * @brief Floating-point complex-by-complex multiplication + * @param[in] pSrcA points to the first input vector + * @param[in] pSrcB points to the second input vector + * @param[out] pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + */ + void arm_cmplx_mult_cmplx_f32( + float32_t * pSrcA, + float32_t * pSrcB, + float32_t * pDst, + uint32_t numSamples); + + + /** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] pSrc points to the floating-point input vector + * @param[out] pDst points to the Q31 output vector + * @param[in] blockSize length of the input vector + */ + void arm_float_to_q31( + float32_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the floating-point vector to Q15 vector. + * @param[in] pSrc points to the floating-point input vector + * @param[out] pDst points to the Q15 output vector + * @param[in] blockSize length of the input vector + */ + void arm_float_to_q15( + float32_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the floating-point vector to Q7 vector. + * @param[in] pSrc points to the floating-point input vector + * @param[out] pDst points to the Q7 output vector + * @param[in] blockSize length of the input vector + */ + void arm_float_to_q7( + float32_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the Q31 vector to Q15 vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q31_to_q15( + q31_t * pSrc, + q15_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the Q31 vector to Q7 vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q31_to_q7( + q31_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the Q15 vector to floating-point vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q15_to_float( + q15_t * pSrc, + float32_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the Q15 vector to Q31 vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q15_to_q31( + q15_t * pSrc, + q31_t * pDst, + uint32_t blockSize); + + + /** + * @brief Converts the elements of the Q15 vector to Q7 vector. + * @param[in] pSrc is input pointer + * @param[out] pDst is output pointer + * @param[in] blockSize is the number of samples to process + */ + void arm_q15_to_q7( + q15_t * pSrc, + q7_t * pDst, + uint32_t blockSize); + + + /** + * @ingroup groupInterpolation + */ + + /** + * @defgroup BilinearInterpolate Bilinear Interpolation + * + * Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid. + * The underlying function f(x, y) is sampled on a regular grid and the interpolation process + * determines values between the grid points. + * Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension. + * Bilinear interpolation is often used in image processing to rescale images. + * The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types. + * + * Algorithm + * \par + * The instance structure used by the bilinear interpolation functions describes a two dimensional data table. + * For floating-point, the instance structure is defined as: + *
+   *   typedef struct
+   *   {
+   *     uint16_t numRows;
+   *     uint16_t numCols;
+   *     float32_t *pData;
+   * } arm_bilinear_interp_instance_f32;
+   * 
+ * + * \par + * where numRows specifies the number of rows in the table; + * numCols specifies the number of columns in the table; + * and pData points to an array of size numRows*numCols values. + * The data table pTable is organized in row order and the supplied data values fall on integer indexes. + * That is, table element (x,y) is located at pTable[x + y*numCols] where x and y are integers. + * + * \par + * Let (x, y) specify the desired interpolation point. Then define: + *
+   *     XF = floor(x)
+   *     YF = floor(y)
+   * 
+ * \par + * The interpolated output point is computed as: + *
+   *  f(x, y) = f(XF, YF) * (1-(x-XF)) * (1-(y-YF))
+   *           + f(XF+1, YF) * (x-XF)*(1-(y-YF))
+   *           + f(XF, YF+1) * (1-(x-XF))*(y-YF)
+   *           + f(XF+1, YF+1) * (x-XF)*(y-YF)
+   * 
+ * Note that the coordinates (x, y) contain integer and fractional components. + * The integer components specify which portion of the table to use while the + * fractional components control the interpolation processor. + * + * \par + * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output. + */ + + /** + * @addtogroup BilinearInterpolate + * @{ + */ + + + /** + * + * @brief Floating-point bilinear interpolation. + * @param[in,out] S points to an instance of the interpolation structure. + * @param[in] X interpolation coordinate. + * @param[in] Y interpolation coordinate. + * @return out interpolated value. + */ + CMSIS_INLINE __STATIC_INLINE float32_t arm_bilinear_interp_f32( + const arm_bilinear_interp_instance_f32 * S, + float32_t X, + float32_t Y) + { + float32_t out; + float32_t f00, f01, f10, f11; + float32_t *pData = S->pData; + int32_t xIndex, yIndex, index; + float32_t xdiff, ydiff; + float32_t b1, b2, b3, b4; + + xIndex = (int32_t) X; + yIndex = (int32_t) Y; + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if (xIndex < 0 || xIndex > (S->numRows - 1) || yIndex < 0 || yIndex > (S->numCols - 1)) + { + return (0); + } + + /* Calculation of index for two nearest points in X-direction */ + index = (xIndex - 1) + (yIndex - 1) * S->numCols; + + + /* Read two nearest points in X-direction */ + f00 = pData[index]; + f01 = pData[index + 1]; + + /* Calculation of index for two nearest points in Y-direction */ + index = (xIndex - 1) + (yIndex) * S->numCols; + + + /* Read two nearest points in Y-direction */ + f10 = pData[index]; + f11 = pData[index + 1]; + + /* Calculation of intermediate values */ + b1 = f00; + b2 = f01 - f00; + b3 = f10 - f00; + b4 = f00 - f01 - f10 + f11; + + /* Calculation of fractional part in X */ + xdiff = X - xIndex; + + /* Calculation of fractional part in Y */ + ydiff = Y - yIndex; + + /* Calculation of bi-linear interpolated output */ + out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff; + + /* return to application */ + return (out); + } + + + /** + * + * @brief Q31 bilinear interpolation. + * @param[in,out] S points to an instance of the interpolation structure. + * @param[in] X interpolation coordinate in 12.20 format. + * @param[in] Y interpolation coordinate in 12.20 format. + * @return out interpolated value. + */ + CMSIS_INLINE __STATIC_INLINE q31_t arm_bilinear_interp_q31( + arm_bilinear_interp_instance_q31 * S, + q31_t X, + q31_t Y) + { + q31_t out; /* Temporary output */ + q31_t acc = 0; /* output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q31_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q31_t *pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & (q31_t)0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & (q31_t)0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) + { + return (0); + } + + /* 20 bits for the fractional part */ + /* shift left xfract by 11 to keep 1.31 format */ + xfract = (X & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + (int32_t)nCols * (cI) ]; + x2 = pYData[(rI) + (int32_t)nCols * (cI) + 1]; + + /* 20 bits for the fractional part */ + /* shift left yfract by 11 to keep 1.31 format */ + yfract = (Y & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + (int32_t)nCols * (cI + 1) ]; + y2 = pYData[(rI) + (int32_t)nCols * (cI + 1) + 1]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */ + out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32)); + acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32)); + + /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (xfract) >> 32)); + + /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y2 * (xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* Convert acc to 1.31(q31) format */ + return ((q31_t)(acc << 2)); + } + + + /** + * @brief Q15 bilinear interpolation. + * @param[in,out] S points to an instance of the interpolation structure. + * @param[in] X interpolation coordinate in 12.20 format. + * @param[in] Y interpolation coordinate in 12.20 format. + * @return out interpolated value. + */ + CMSIS_INLINE __STATIC_INLINE q15_t arm_bilinear_interp_q15( + arm_bilinear_interp_instance_q15 * S, + q31_t X, + q31_t Y) + { + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q15_t x1, x2, y1, y2; /* Nearest output values */ + q31_t xfract, yfract; /* X, Y fractional parts */ + int32_t rI, cI; /* Row and column indices */ + q15_t *pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & (q31_t)0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & (q31_t)0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) + { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & 0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ]; + x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1]; + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ]; + y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */ + + /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */ + /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */ + out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u); + acc = ((q63_t) out * (0xFFFFF - yfract)); + + /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u); + acc += ((q63_t) out * (xfract)); + + /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y2 * (xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* acc is in 13.51 format and down shift acc by 36 times */ + /* Convert out to 1.15 format */ + return ((q15_t)(acc >> 36)); + } + + + /** + * @brief Q7 bilinear interpolation. + * @param[in,out] S points to an instance of the interpolation structure. + * @param[in] X interpolation coordinate in 12.20 format. + * @param[in] Y interpolation coordinate in 12.20 format. + * @return out interpolated value. + */ + CMSIS_INLINE __STATIC_INLINE q7_t arm_bilinear_interp_q7( + arm_bilinear_interp_instance_q7 * S, + q31_t X, + q31_t Y) + { + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q7_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q7_t *pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & (q31_t)0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & (q31_t)0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) + { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & (q31_t)0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ]; + x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1]; + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & (q31_t)0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ]; + y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */ + out = ((x1 * (0xFFFFF - xfract))); + acc = (((q63_t) out * (0xFFFFF - yfract))); + + /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */ + out = ((x2 * (0xFFFFF - yfract))); + acc += (((q63_t) out * (xfract))); + + /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y1 * (0xFFFFF - xfract))); + acc += (((q63_t) out * (yfract))); + + /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y2 * (yfract))); + acc += (((q63_t) out * (xfract))); + + /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */ + return ((q7_t)(acc >> 40)); + } + + /** + * @} end of BilinearInterpolate group + */ + + +/* SMMLAR */ +#define multAcc_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32) + +/* SMMLSR */ +#define multSub_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32) + +/* SMMULR */ +#define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32) + +/* SMMLA */ +#define multAcc_32x32_keep32(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + +/* SMMLS */ +#define multSub_32x32_keep32(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +/* SMMUL */ +#define mult_32x32_keep32(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + + +#if defined ( __CC_ARM ) + /* Enter low optimization region - place directly above function definition */ + #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7) + #define LOW_OPTIMIZATION_ENTER \ + _Pragma ("push") \ + _Pragma ("O1") + #else + #define LOW_OPTIMIZATION_ENTER + #endif + + /* Exit low optimization region - place directly after end of function definition */ + #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 ) + #define LOW_OPTIMIZATION_EXIT \ + _Pragma ("pop") + #else + #define LOW_OPTIMIZATION_EXIT + #endif + + /* Enter low optimization region - place directly above function definition */ + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + + /* Exit low optimization region - place directly after end of function definition */ + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined (__ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) + #define LOW_OPTIMIZATION_ENTER + #define LOW_OPTIMIZATION_EXIT + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined ( __GNUC__ ) + #define LOW_OPTIMIZATION_ENTER \ + __attribute__(( optimize("-O1") )) + #define LOW_OPTIMIZATION_EXIT + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined ( __ICCARM__ ) + /* Enter low optimization region - place directly above function definition */ + #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 ) + #define LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + #else + #define LOW_OPTIMIZATION_ENTER + #endif + + /* Exit low optimization region - place directly after end of function definition */ + #define LOW_OPTIMIZATION_EXIT + + /* Enter low optimization region - place directly above function definition */ + #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 ) + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + #else + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #endif + + /* Exit low optimization region - place directly after end of function definition */ + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined ( __TI_ARM__ ) + #define LOW_OPTIMIZATION_ENTER + #define LOW_OPTIMIZATION_EXIT + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined ( __CSMC__ ) + #define LOW_OPTIMIZATION_ENTER + #define LOW_OPTIMIZATION_EXIT + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined ( __TASKING__ ) + #define LOW_OPTIMIZATION_ENTER + #define LOW_OPTIMIZATION_EXIT + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#endif + + +#ifdef __cplusplus +} +#endif + + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic pop +#endif + +#endif /* _ARM_MATH_H */ + +/** + * + * End of file. + */ diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h new file mode 100644 index 0000000000..8b989f851a --- /dev/null +++ b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h @@ -0,0 +1,223 @@ +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.0.1 + * @date 30. January 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * ARM Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * ARM Compiler 6 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + + #include + + #ifndef __NO_RETURN + #define __NO_RETURN __noreturn + #endif + #ifndef __USED + #define __USED __root + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __UNALIGNED_UINT32 + __packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __PACKED + #define __PACKED __packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT __packed struct + #endif + + +/* + * TI ARM Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __UNALIGNED_UINT32 + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __UNALIGNED_UINT32 + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __UNALIGNED_UINT32 + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h new file mode 100644 index 0000000000..074cd7ab32 --- /dev/null +++ b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h @@ -0,0 +1,1899 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.0.1 + * @date 02. February 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __UNALIGNED_UINT32 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpacked" +#pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; +#pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__((always_inline)) __STATIC_INLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__((always_inline)) __STATIC_INLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__((always_inline)) __STATIC_INLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__((always_inline)) __STATIC_INLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Process Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Main Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Main Stack Pointer Limit (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__attribute__((always_inline)) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#else + (void)fpscr; +#endif +} + +#endif /* ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +//__attribute__((always_inline)) __STATIC_INLINE void __NOP(void) +//{ +// __ASM volatile ("nop"); +//} +#define __NOP() __ASM volatile ("nop") /* This implementation generates debug information */ + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +//__attribute__((always_inline)) __STATIC_INLINE void __WFI(void) +//{ +// __ASM volatile ("wfi"); +//} +#define __WFI() __ASM volatile ("wfi") /* This implementation generates debug information */ + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +//__attribute__((always_inline)) __STATIC_INLINE void __WFE(void) +//{ +// __ASM volatile ("wfe"); +//} +#define __WFE() __ASM volatile ("wfe") /* This implementation generates debug information */ + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +//__attribute__((always_inline)) __STATIC_INLINE void __SEV(void) +//{ +// __ASM volatile ("sev"); +//} +#define __SEV() __ASM volatile ("sev") /* This implementation generates debug information */ + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__attribute__((always_inline)) __STATIC_INLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__attribute__((always_inline)) __STATIC_INLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__attribute__((always_inline)) __STATIC_INLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in integer value. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in two unsigned short values. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief Reverse byte order in signed short value + \details Reverses the byte order in a signed short value with sign extension to integer. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else + int32_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + int32_t s = (4 /*sizeof(v)*/ * 8) - 1; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return(result); +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __builtin_clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__attribute__((always_inline)) __STATIC_INLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (__ARM_FEATURE_DSP == 1) /* ToDo ARMCLANG: This should be ARCH >= ARMv7-M + SIMD */ + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__((always_inline)) __STATIC_INLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__attribute__((always_inline)) __STATIC_INLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000000..2da78d3983 --- /dev/null +++ b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h @@ -0,0 +1,2103 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.0.1 + * @date 30. January 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2016 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB ( 0U) /*!< [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (4U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IOM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt b/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld new file mode 100644 index 0000000000..1c63547863 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld @@ -0,0 +1,185 @@ +/** + * \file + * + * \brief Linker script for running in internal FLASH on the SAMD51J18A + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +SEARCH_DIR(.) + +/* Memory Spaces Definitions */ +MEMORY +{ +/*rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000*/ + rom (rx) : ORIGIN = 0x00004000, LENGTH = 0x0003C000 + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00020000 + bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 + qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 +} + +/* The stack size used by the application. NOTE: you need to adjust according to your application. */ +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x8000; + +/* The heap size used by the application. */ +HEAP_SIZE = DEFINED(HEAP_SIZE) ? HEAP_SIZE : DEFINED(__heap_size__) ? __heap_size__ : 0x800; + +_srom = ORIGIN(rom); +_lrom = LENGTH(rom); +_erom = ORIGIN(rom) + LENGTH(rom); +_sram = ORIGIN(ram); +_lram = LENGTH(ram); +_eram = ORIGIN(ram) + LENGTH(ram); + +/* Section Definitions */ +SECTIONS +{ + .text : + { + . = ALIGN(4); + _sfixed = .; + KEEP(*(.vectors .vectors.*)) + *(.text .text.* .gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) + *(.rodata .rodata* .gnu.linkonce.r.*) + *(.ARM.extab* .gnu.linkonce.armextab.*) + + /* Support C constructors, and C destructors in both user code + and the C library. This also provides support for C++ code. */ + . = ALIGN(4); + KEEP(*(.init)) + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + _efixed = .; /* End of text section */ + } > rom + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + PROVIDE_HIDDEN (__exidx_start = .); + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > rom + PROVIDE_HIDDEN (__exidx_end = .); + + . = ALIGN(4); + _etext = .; + + .relocate : AT (_etext) + { + . = ALIGN(4); + _srelocate = .; + *(.ramfunc .ramfunc.*); + *(.data .data.*); + . = ALIGN(4); + _erelocate = .; + } > ram + + .bkupram (NOLOAD): + { + . = ALIGN(8); + _sbkupram = .; + *(.bkupram .bkupram.*); + . = ALIGN(8); + _ebkupram = .; + } > bkupram + + .qspi (NOLOAD): + { + . = ALIGN(8); + _sqspi = .; + *(.qspi .qspi.*); + . = ALIGN(8); + _eqspi = .; + } > qspi + + /* .bss section which is used for uninitialized data */ + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = . ; + _szero = .; + *(.bss .bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = . ; + _ezero = .; + } > ram + + /* .heap section for syscalls */ + .heap (NOLOAD) : + { + . = ALIGN(4); + _end = .; + end = .; + _heap_start = .; + . = . + HEAP_SIZE; + _heap_end = .; + } > ram + + /* stack section */ + .stack (NOLOAD): + { + . = ALIGN(8); + _sstack = .; + . = . + STACK_SIZE; + . = ALIGN(8); + _estack = .; + } > ram + + . = ALIGN(4); + _end = . ; +} diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h new file mode 100644 index 0000000000..80801fc128 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h @@ -0,0 +1,65 @@ +/** + * \file + * + * \brief Component version header file + * + * Copyright (c) 2017 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. + * + * \license_start + * + * \page License + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \license_stop + * + */ + +#ifndef _COMPONENT_VERSION_H_INCLUDED +#define _COMPONENT_VERSION_H_INCLUDED + +#define COMPONENT_VERSION_MAJOR 1 +#define COMPONENT_VERSION_MINOR 0 + +// +// The COMPONENT_VERSION define is composed of the major and the minor version number. +// +// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. +// The rest of the COMPONENT_VERSION is the major version, with leading zeros. The COMPONENT_VERSION +// is at least 8 digits long. +// +#define COMPONENT_VERSION 00010000 + +// +// The build number does not refer to the component, but to the build number +// of the device pack that provides the component. +// +#define BUILD_NUMBER 70 + +// +// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. +// +#define COMPONENT_VERSION_STRING "1.0" + +// +// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. +// +// The COMPONENT_DATE_STRING is written out using the following strftime pattern. +// +// "%Y-%m-%d %H:%M:%S" +// +// +#define COMPONENT_DATE_STRING "2017-08-09 09:59:41" + +#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ + diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h new file mode 100644 index 0000000000..24623d00ac --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h @@ -0,0 +1,598 @@ +/** + * \file + * + * \brief Component description for AC + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_AC_COMPONENT_ +#define _SAMD51_AC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR AC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_AC Analog Comparators */ +/*@{*/ + +#define AC_U2501 +#define REV_AC 0x100 + +/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */ +#define AC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLA reset_value) Control A */ + +#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */ +#define AC_CTRLA_SWRST (_U_(0x1) << AC_CTRLA_SWRST_Pos) +#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */ +#define AC_CTRLA_ENABLE (_U_(0x1) << AC_CTRLA_ENABLE_Pos) +#define AC_CTRLA_MASK _U_(0x03) /**< \brief (AC_CTRLA) MASK Register */ + +/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */ + uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */ +#define AC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLB reset_value) Control B */ + +#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */ +#define AC_CTRLB_START0 (_U_(1) << AC_CTRLB_START0_Pos) +#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */ +#define AC_CTRLB_START1 (_U_(1) << AC_CTRLB_START1_Pos) +#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */ +#define AC_CTRLB_START_Msk (_U_(0x3) << AC_CTRLB_START_Pos) +#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos)) +#define AC_CTRLB_MASK _U_(0x03) /**< \brief (AC_CTRLB) MASK Register */ + +/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */ + uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input Enable */ + uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input Enable */ + uint16_t :2; /*!< bit: 10..11 Reserved */ + uint16_t INVEI0:1; /*!< bit: 12 Comparator 0 Input Event Invert Enable */ + uint16_t INVEI1:1; /*!< bit: 13 Comparator 1 Input Event Invert Enable */ + uint16_t :2; /*!< bit: 14..15 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input Enable */ + uint16_t :2; /*!< bit: 10..11 Reserved */ + uint16_t INVEI:2; /*!< bit: 12..13 Comparator x Input Event Invert Enable */ + uint16_t :2; /*!< bit: 14..15 Reserved */ + } vec; /*!< Structure used for vec access */ + uint16_t reg; /*!< Type used for register access */ +} AC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */ +#define AC_EVCTRL_RESETVALUE _U_(0x0000) /**< \brief (AC_EVCTRL reset_value) Event Control */ + +#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */ +#define AC_EVCTRL_COMPEO0 (_U_(1) << AC_EVCTRL_COMPEO0_Pos) +#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */ +#define AC_EVCTRL_COMPEO1 (_U_(1) << AC_EVCTRL_COMPEO1_Pos) +#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */ +#define AC_EVCTRL_COMPEO_Msk (_U_(0x3) << AC_EVCTRL_COMPEO_Pos) +#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos)) +#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */ +#define AC_EVCTRL_WINEO0 (_U_(1) << AC_EVCTRL_WINEO0_Pos) +#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */ +#define AC_EVCTRL_WINEO_Msk (_U_(0x1) << AC_EVCTRL_WINEO_Pos) +#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos)) +#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input Enable */ +#define AC_EVCTRL_COMPEI0 (_U_(1) << AC_EVCTRL_COMPEI0_Pos) +#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input Enable */ +#define AC_EVCTRL_COMPEI1 (_U_(1) << AC_EVCTRL_COMPEI1_Pos) +#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input Enable */ +#define AC_EVCTRL_COMPEI_Msk (_U_(0x3) << AC_EVCTRL_COMPEI_Pos) +#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos)) +#define AC_EVCTRL_INVEI0_Pos 12 /**< \brief (AC_EVCTRL) Comparator 0 Input Event Invert Enable */ +#define AC_EVCTRL_INVEI0 (_U_(1) << AC_EVCTRL_INVEI0_Pos) +#define AC_EVCTRL_INVEI1_Pos 13 /**< \brief (AC_EVCTRL) Comparator 1 Input Event Invert Enable */ +#define AC_EVCTRL_INVEI1 (_U_(1) << AC_EVCTRL_INVEI1_Pos) +#define AC_EVCTRL_INVEI_Pos 12 /**< \brief (AC_EVCTRL) Comparator x Input Event Invert Enable */ +#define AC_EVCTRL_INVEI_Msk (_U_(0x3) << AC_EVCTRL_INVEI_Pos) +#define AC_EVCTRL_INVEI(value) (AC_EVCTRL_INVEI_Msk & ((value) << AC_EVCTRL_INVEI_Pos)) +#define AC_EVCTRL_MASK _U_(0x3313) /**< \brief (AC_EVCTRL) MASK Register */ + +/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */ +#define AC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */ +#define AC_INTENCLR_COMP0 (_U_(1) << AC_INTENCLR_COMP0_Pos) +#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */ +#define AC_INTENCLR_COMP1 (_U_(1) << AC_INTENCLR_COMP1_Pos) +#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */ +#define AC_INTENCLR_COMP_Msk (_U_(0x3) << AC_INTENCLR_COMP_Pos) +#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos)) +#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */ +#define AC_INTENCLR_WIN0 (_U_(1) << AC_INTENCLR_WIN0_Pos) +#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */ +#define AC_INTENCLR_WIN_Msk (_U_(0x1) << AC_INTENCLR_WIN_Pos) +#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos)) +#define AC_INTENCLR_MASK _U_(0x13) /**< \brief (AC_INTENCLR) MASK Register */ + +/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */ +#define AC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */ + +#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */ +#define AC_INTENSET_COMP0 (_U_(1) << AC_INTENSET_COMP0_Pos) +#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */ +#define AC_INTENSET_COMP1 (_U_(1) << AC_INTENSET_COMP1_Pos) +#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */ +#define AC_INTENSET_COMP_Msk (_U_(0x3) << AC_INTENSET_COMP_Pos) +#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos)) +#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */ +#define AC_INTENSET_WIN0 (_U_(1) << AC_INTENSET_WIN0_Pos) +#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */ +#define AC_INTENSET_WIN_Msk (_U_(0x1) << AC_INTENSET_WIN_Pos) +#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos)) +#define AC_INTENSET_MASK _U_(0x13) /**< \brief (AC_INTENSET) MASK Register */ + +/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */ + __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN:1; /*!< bit: 4 Window x */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define AC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */ +#define AC_INTFLAG_COMP0 (_U_(1) << AC_INTFLAG_COMP0_Pos) +#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */ +#define AC_INTFLAG_COMP1 (_U_(1) << AC_INTFLAG_COMP1_Pos) +#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */ +#define AC_INTFLAG_COMP_Msk (_U_(0x3) << AC_INTFLAG_COMP_Pos) +#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos)) +#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */ +#define AC_INTFLAG_WIN0 (_U_(1) << AC_INTFLAG_WIN0_Pos) +#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */ +#define AC_INTFLAG_WIN_Msk (_U_(0x1) << AC_INTFLAG_WIN_Pos) +#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos)) +#define AC_INTFLAG_MASK _U_(0x13) /**< \brief (AC_INTFLAG) MASK Register */ + +/* -------- AC_STATUSA : (AC Offset: 0x07) (R/ 8) Status A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ + uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSA_OFFSET 0x07 /**< \brief (AC_STATUSA offset) Status A */ +#define AC_STATUSA_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSA reset_value) Status A */ + +#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */ +#define AC_STATUSA_STATE0 (_U_(1) << AC_STATUSA_STATE0_Pos) +#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */ +#define AC_STATUSA_STATE1 (_U_(1) << AC_STATUSA_STATE1_Pos) +#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */ +#define AC_STATUSA_STATE_Msk (_U_(0x3) << AC_STATUSA_STATE_Pos) +#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos)) +#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */ +#define AC_STATUSA_WSTATE0_Msk (_U_(0x3) << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos)) +#define AC_STATUSA_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSA) Signal is above window */ +#define AC_STATUSA_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSA) Signal is inside window */ +#define AC_STATUSA_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSA) Signal is below window */ +#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_MASK _U_(0x33) /**< \brief (AC_STATUSA) MASK Register */ + +/* -------- AC_STATUSB : (AC Offset: 0x08) (R/ 8) Status B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */ + uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSB_OFFSET 0x08 /**< \brief (AC_STATUSB offset) Status B */ +#define AC_STATUSB_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSB reset_value) Status B */ + +#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */ +#define AC_STATUSB_READY0 (_U_(1) << AC_STATUSB_READY0_Pos) +#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */ +#define AC_STATUSB_READY1 (_U_(1) << AC_STATUSB_READY1_Pos) +#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */ +#define AC_STATUSB_READY_Msk (_U_(0x3) << AC_STATUSB_READY_Pos) +#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos)) +#define AC_STATUSB_MASK _U_(0x03) /**< \brief (AC_STATUSB) MASK Register */ + +/* -------- AC_DBGCTRL : (AC Offset: 0x09) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_DBGCTRL_OFFSET 0x09 /**< \brief (AC_DBGCTRL offset) Debug Control */ +#define AC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_DBGCTRL reset_value) Debug Control */ + +#define AC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AC_DBGCTRL) Debug Run */ +#define AC_DBGCTRL_DBGRUN (_U_(0x1) << AC_DBGCTRL_DBGRUN_Pos) +#define AC_DBGCTRL_MASK _U_(0x01) /**< \brief (AC_DBGCTRL) MASK Register */ + +/* -------- AC_WINCTRL : (AC Offset: 0x0A) (R/W 8) Window Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */ + uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_WINCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_WINCTRL_OFFSET 0x0A /**< \brief (AC_WINCTRL offset) Window Control */ +#define AC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_WINCTRL reset_value) Window Control */ + +#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */ +#define AC_WINCTRL_WEN0 (_U_(0x1) << AC_WINCTRL_WEN0_Pos) +#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */ +#define AC_WINCTRL_WINTSEL0_Msk (_U_(0x3) << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos)) +#define AC_WINCTRL_WINTSEL0_ABOVE_Val _U_(0x0) /**< \brief (AC_WINCTRL) Interrupt on signal above window */ +#define AC_WINCTRL_WINTSEL0_INSIDE_Val _U_(0x1) /**< \brief (AC_WINCTRL) Interrupt on signal inside window */ +#define AC_WINCTRL_WINTSEL0_BELOW_Val _U_(0x2) /**< \brief (AC_WINCTRL) Interrupt on signal below window */ +#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val _U_(0x3) /**< \brief (AC_WINCTRL) Interrupt on signal outside window */ +#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_MASK _U_(0x07) /**< \brief (AC_WINCTRL) MASK Register */ + +/* -------- AC_SCALER : (AC Offset: 0x0C) (R/W 8) Scaler n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_SCALER_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_SCALER_OFFSET 0x0C /**< \brief (AC_SCALER offset) Scaler n */ +#define AC_SCALER_RESETVALUE _U_(0x00) /**< \brief (AC_SCALER reset_value) Scaler n */ + +#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */ +#define AC_SCALER_VALUE_Msk (_U_(0x3F) << AC_SCALER_VALUE_Pos) +#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos)) +#define AC_SCALER_MASK _U_(0x3F) /**< \brief (AC_SCALER) MASK Register */ + +/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ENABLE:1; /*!< bit: 1 Enable */ + uint32_t SINGLE:1; /*!< bit: 2 Single-Shot Mode */ + uint32_t INTSEL:2; /*!< bit: 3.. 4 Interrupt Selection */ + uint32_t :1; /*!< bit: 5 Reserved */ + uint32_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */ + uint32_t :1; /*!< bit: 11 Reserved */ + uint32_t MUXPOS:3; /*!< bit: 12..14 Positive Input Mux Selection */ + uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */ + uint32_t SPEED:2; /*!< bit: 16..17 Speed Selection */ + uint32_t :1; /*!< bit: 18 Reserved */ + uint32_t HYSTEN:1; /*!< bit: 19 Hysteresis Enable */ + uint32_t HYST:2; /*!< bit: 20..21 Hysteresis Level */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */ + uint32_t :1; /*!< bit: 27 Reserved */ + uint32_t OUT:2; /*!< bit: 28..29 Output */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} AC_COMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */ +#define AC_COMPCTRL_RESETVALUE _U_(0x00000000) /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */ + +#define AC_COMPCTRL_ENABLE_Pos 1 /**< \brief (AC_COMPCTRL) Enable */ +#define AC_COMPCTRL_ENABLE (_U_(0x1) << AC_COMPCTRL_ENABLE_Pos) +#define AC_COMPCTRL_SINGLE_Pos 2 /**< \brief (AC_COMPCTRL) Single-Shot Mode */ +#define AC_COMPCTRL_SINGLE (_U_(0x1) << AC_COMPCTRL_SINGLE_Pos) +#define AC_COMPCTRL_INTSEL_Pos 3 /**< \brief (AC_COMPCTRL) Interrupt Selection */ +#define AC_COMPCTRL_INTSEL_Msk (_U_(0x3) << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos)) +#define AC_COMPCTRL_INTSEL_TOGGLE_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */ +#define AC_COMPCTRL_INTSEL_RISING_Val _U_(0x1) /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */ +#define AC_COMPCTRL_INTSEL_FALLING_Val _U_(0x2) /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */ +#define AC_COMPCTRL_INTSEL_EOC_Val _U_(0x3) /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */ +#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_RUNSTDBY_Pos 6 /**< \brief (AC_COMPCTRL) Run in Standby */ +#define AC_COMPCTRL_RUNSTDBY (_U_(0x1) << AC_COMPCTRL_RUNSTDBY_Pos) +#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */ +#define AC_COMPCTRL_MUXNEG_Msk (_U_(0x7) << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos)) +#define AC_COMPCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXNEG_GND_Val _U_(0x4) /**< \brief (AC_COMPCTRL) Ground */ +#define AC_COMPCTRL_MUXNEG_VSCALE_Val _U_(0x5) /**< \brief (AC_COMPCTRL) VDD scaler */ +#define AC_COMPCTRL_MUXNEG_BANDGAP_Val _U_(0x6) /**< \brief (AC_COMPCTRL) Internal bandgap voltage */ +#define AC_COMPCTRL_MUXNEG_DAC_Val _U_(0x7) /**< \brief (AC_COMPCTRL) DAC output */ +#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */ +#define AC_COMPCTRL_MUXPOS_Msk (_U_(0x7) << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos)) +#define AC_COMPCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXPOS_VSCALE_Val _U_(0x4) /**< \brief (AC_COMPCTRL) VDD Scaler */ +#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_VSCALE (AC_COMPCTRL_MUXPOS_VSCALE_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */ +#define AC_COMPCTRL_SWAP (_U_(0x1) << AC_COMPCTRL_SWAP_Pos) +#define AC_COMPCTRL_SPEED_Pos 16 /**< \brief (AC_COMPCTRL) Speed Selection */ +#define AC_COMPCTRL_SPEED_Msk (_U_(0x3) << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos)) +#define AC_COMPCTRL_SPEED_HIGH_Val _U_(0x3) /**< \brief (AC_COMPCTRL) High speed */ +#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_HYSTEN_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */ +#define AC_COMPCTRL_HYSTEN (_U_(0x1) << AC_COMPCTRL_HYSTEN_Pos) +#define AC_COMPCTRL_HYST_Pos 20 /**< \brief (AC_COMPCTRL) Hysteresis Level */ +#define AC_COMPCTRL_HYST_Msk (_U_(0x3) << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST(value) (AC_COMPCTRL_HYST_Msk & ((value) << AC_COMPCTRL_HYST_Pos)) +#define AC_COMPCTRL_HYST_HYST50_Val _U_(0x0) /**< \brief (AC_COMPCTRL) 50mV */ +#define AC_COMPCTRL_HYST_HYST100_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 100mV */ +#define AC_COMPCTRL_HYST_HYST150_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 150mV */ +#define AC_COMPCTRL_HYST_HYST50 (AC_COMPCTRL_HYST_HYST50_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST_HYST100 (AC_COMPCTRL_HYST_HYST100_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST_HYST150 (AC_COMPCTRL_HYST_HYST150_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */ +#define AC_COMPCTRL_FLEN_Msk (_U_(0x7) << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos)) +#define AC_COMPCTRL_FLEN_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) No filtering */ +#define AC_COMPCTRL_FLEN_MAJ3_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */ +#define AC_COMPCTRL_FLEN_MAJ5_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */ +#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_OUT_Pos 28 /**< \brief (AC_COMPCTRL) Output */ +#define AC_COMPCTRL_OUT_Msk (_U_(0x3) << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos)) +#define AC_COMPCTRL_OUT_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_ASYNC_Val _U_(0x1) /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_SYNC_Val _U_(0x2) /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_MASK _U_(0x373BF75E) /**< \brief (AC_COMPCTRL) MASK Register */ + +/* -------- AC_SYNCBUSY : (AC Offset: 0x20) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset Synchronization Busy */ + uint32_t ENABLE:1; /*!< bit: 1 Enable Synchronization Busy */ + uint32_t WINCTRL:1; /*!< bit: 2 WINCTRL Synchronization Busy */ + uint32_t COMPCTRL0:1; /*!< bit: 3 COMPCTRL 0 Synchronization Busy */ + uint32_t COMPCTRL1:1; /*!< bit: 4 COMPCTRL 1 Synchronization Busy */ + uint32_t :27; /*!< bit: 5..31 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t :3; /*!< bit: 0.. 2 Reserved */ + uint32_t COMPCTRL:2; /*!< bit: 3.. 4 COMPCTRL x Synchronization Busy */ + uint32_t :27; /*!< bit: 5..31 Reserved */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} AC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_SYNCBUSY_OFFSET 0x20 /**< \brief (AC_SYNCBUSY offset) Synchronization Busy */ +#define AC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (AC_SYNCBUSY reset_value) Synchronization Busy */ + +#define AC_SYNCBUSY_SWRST_Pos 0 /**< \brief (AC_SYNCBUSY) Software Reset Synchronization Busy */ +#define AC_SYNCBUSY_SWRST (_U_(0x1) << AC_SYNCBUSY_SWRST_Pos) +#define AC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (AC_SYNCBUSY) Enable Synchronization Busy */ +#define AC_SYNCBUSY_ENABLE (_U_(0x1) << AC_SYNCBUSY_ENABLE_Pos) +#define AC_SYNCBUSY_WINCTRL_Pos 2 /**< \brief (AC_SYNCBUSY) WINCTRL Synchronization Busy */ +#define AC_SYNCBUSY_WINCTRL (_U_(0x1) << AC_SYNCBUSY_WINCTRL_Pos) +#define AC_SYNCBUSY_COMPCTRL0_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL 0 Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL0 (_U_(1) << AC_SYNCBUSY_COMPCTRL0_Pos) +#define AC_SYNCBUSY_COMPCTRL1_Pos 4 /**< \brief (AC_SYNCBUSY) COMPCTRL 1 Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL1 (_U_(1) << AC_SYNCBUSY_COMPCTRL1_Pos) +#define AC_SYNCBUSY_COMPCTRL_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL x Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL_Msk (_U_(0x3) << AC_SYNCBUSY_COMPCTRL_Pos) +#define AC_SYNCBUSY_COMPCTRL(value) (AC_SYNCBUSY_COMPCTRL_Msk & ((value) << AC_SYNCBUSY_COMPCTRL_Pos)) +#define AC_SYNCBUSY_MASK _U_(0x0000001F) /**< \brief (AC_SYNCBUSY) MASK Register */ + +/* -------- AC_CALIB : (AC Offset: 0x24) (R/W 16) Calibration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t BIAS0:2; /*!< bit: 0.. 1 COMP0/1 Bias Scaling */ + uint16_t :14; /*!< bit: 2..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} AC_CALIB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CALIB_OFFSET 0x24 /**< \brief (AC_CALIB offset) Calibration */ +#define AC_CALIB_RESETVALUE _U_(0x0101) /**< \brief (AC_CALIB reset_value) Calibration */ + +#define AC_CALIB_BIAS0_Pos 0 /**< \brief (AC_CALIB) COMP0/1 Bias Scaling */ +#define AC_CALIB_BIAS0_Msk (_U_(0x3) << AC_CALIB_BIAS0_Pos) +#define AC_CALIB_BIAS0(value) (AC_CALIB_BIAS0_Msk & ((value) << AC_CALIB_BIAS0_Pos)) +#define AC_CALIB_MASK _U_(0x0003) /**< \brief (AC_CALIB) MASK Register */ + +/** \brief AC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */ + __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */ + __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ + __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ + __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ + __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x07 (R/ 8) Status A */ + __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x08 (R/ 8) Status B */ + __IO AC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug Control */ + __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0A (R/W 8) Window Control */ + RoReg8 Reserved1[0x1]; + __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x0C (R/W 8) Scaler n */ + RoReg8 Reserved2[0x2]; + __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */ + RoReg8 Reserved3[0x8]; + __I AC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x20 (R/ 32) Synchronization Busy */ + __IO AC_CALIB_Type CALIB; /**< \brief Offset: 0x24 (R/W 16) Calibration */ +} Ac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_AC_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h new file mode 100644 index 0000000000..33c38ae3f8 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h @@ -0,0 +1,871 @@ +/** + * \file + * + * \brief Component description for ADC + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_ADC_COMPONENT_ +#define _SAMD51_ADC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR ADC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_ADC Analog Digital Converter */ +/*@{*/ + +#define ADC_U2500 +#define REV_ADC 0x100 + +/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 16) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t SWRST:1; /*!< bit: 0 Software Reset */ + uint16_t ENABLE:1; /*!< bit: 1 Enable */ + uint16_t :1; /*!< bit: 2 Reserved */ + uint16_t DUALSEL:2; /*!< bit: 3.. 4 Dual Mode Trigger Selection */ + uint16_t SLAVEEN:1; /*!< bit: 5 Slave Enable */ + uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint16_t ONDEMAND:1; /*!< bit: 7 On Demand Control */ + uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */ + uint16_t :4; /*!< bit: 11..14 Reserved */ + uint16_t R2R:1; /*!< bit: 15 Rail to Rail Operation Enable */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */ +#define ADC_CTRLA_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLA reset_value) Control A */ + +#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */ +#define ADC_CTRLA_SWRST (_U_(0x1) << ADC_CTRLA_SWRST_Pos) +#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */ +#define ADC_CTRLA_ENABLE (_U_(0x1) << ADC_CTRLA_ENABLE_Pos) +#define ADC_CTRLA_DUALSEL_Pos 3 /**< \brief (ADC_CTRLA) Dual Mode Trigger Selection */ +#define ADC_CTRLA_DUALSEL_Msk (_U_(0x3) << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_DUALSEL(value) (ADC_CTRLA_DUALSEL_Msk & ((value) << ADC_CTRLA_DUALSEL_Pos)) +#define ADC_CTRLA_DUALSEL_BOTH_Val _U_(0x0) /**< \brief (ADC_CTRLA) Start event or software trigger will start a conversion on both ADCs */ +#define ADC_CTRLA_DUALSEL_INTERLEAVE_Val _U_(0x1) /**< \brief (ADC_CTRLA) START event or software trigger will alternatingly start a conversion on ADC0 and ADC1 */ +#define ADC_CTRLA_DUALSEL_BOTH (ADC_CTRLA_DUALSEL_BOTH_Val << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_DUALSEL_INTERLEAVE (ADC_CTRLA_DUALSEL_INTERLEAVE_Val << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_SLAVEEN_Pos 5 /**< \brief (ADC_CTRLA) Slave Enable */ +#define ADC_CTRLA_SLAVEEN (_U_(0x1) << ADC_CTRLA_SLAVEEN_Pos) +#define ADC_CTRLA_RUNSTDBY_Pos 6 /**< \brief (ADC_CTRLA) Run in Standby */ +#define ADC_CTRLA_RUNSTDBY (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos) +#define ADC_CTRLA_ONDEMAND_Pos 7 /**< \brief (ADC_CTRLA) On Demand Control */ +#define ADC_CTRLA_ONDEMAND (_U_(0x1) << ADC_CTRLA_ONDEMAND_Pos) +#define ADC_CTRLA_PRESCALER_Pos 8 /**< \brief (ADC_CTRLA) Prescaler Configuration */ +#define ADC_CTRLA_PRESCALER_Msk (_U_(0x7) << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER(value) (ADC_CTRLA_PRESCALER_Msk & ((value) << ADC_CTRLA_PRESCALER_Pos)) +#define ADC_CTRLA_PRESCALER_DIV2_Val _U_(0x0) /**< \brief (ADC_CTRLA) Peripheral clock divided by 2 */ +#define ADC_CTRLA_PRESCALER_DIV4_Val _U_(0x1) /**< \brief (ADC_CTRLA) Peripheral clock divided by 4 */ +#define ADC_CTRLA_PRESCALER_DIV8_Val _U_(0x2) /**< \brief (ADC_CTRLA) Peripheral clock divided by 8 */ +#define ADC_CTRLA_PRESCALER_DIV16_Val _U_(0x3) /**< \brief (ADC_CTRLA) Peripheral clock divided by 16 */ +#define ADC_CTRLA_PRESCALER_DIV32_Val _U_(0x4) /**< \brief (ADC_CTRLA) Peripheral clock divided by 32 */ +#define ADC_CTRLA_PRESCALER_DIV64_Val _U_(0x5) /**< \brief (ADC_CTRLA) Peripheral clock divided by 64 */ +#define ADC_CTRLA_PRESCALER_DIV128_Val _U_(0x6) /**< \brief (ADC_CTRLA) Peripheral clock divided by 128 */ +#define ADC_CTRLA_PRESCALER_DIV256_Val _U_(0x7) /**< \brief (ADC_CTRLA) Peripheral clock divided by 256 */ +#define ADC_CTRLA_PRESCALER_DIV2 (ADC_CTRLA_PRESCALER_DIV2_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV4 (ADC_CTRLA_PRESCALER_DIV4_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV8 (ADC_CTRLA_PRESCALER_DIV8_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV16 (ADC_CTRLA_PRESCALER_DIV16_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV32 (ADC_CTRLA_PRESCALER_DIV32_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV64 (ADC_CTRLA_PRESCALER_DIV64_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV128 (ADC_CTRLA_PRESCALER_DIV128_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV256 (ADC_CTRLA_PRESCALER_DIV256_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_R2R_Pos 15 /**< \brief (ADC_CTRLA) Rail to Rail Operation Enable */ +#define ADC_CTRLA_R2R (_U_(0x1) << ADC_CTRLA_R2R_Pos) +#define ADC_CTRLA_MASK _U_(0x87FB) /**< \brief (ADC_CTRLA) MASK Register */ + +/* -------- ADC_EVCTRL : (ADC Offset: 0x02) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t FLUSHEI:1; /*!< bit: 0 Flush Event Input Enable */ + uint8_t STARTEI:1; /*!< bit: 1 Start Conversion Event Input Enable */ + uint8_t FLUSHINV:1; /*!< bit: 2 Flush Event Invert Enable */ + uint8_t STARTINV:1; /*!< bit: 3 Start Conversion Event Invert Enable */ + uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */ + uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_EVCTRL_OFFSET 0x02 /**< \brief (ADC_EVCTRL offset) Event Control */ +#define ADC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_EVCTRL reset_value) Event Control */ + +#define ADC_EVCTRL_FLUSHEI_Pos 0 /**< \brief (ADC_EVCTRL) Flush Event Input Enable */ +#define ADC_EVCTRL_FLUSHEI (_U_(0x1) << ADC_EVCTRL_FLUSHEI_Pos) +#define ADC_EVCTRL_STARTEI_Pos 1 /**< \brief (ADC_EVCTRL) Start Conversion Event Input Enable */ +#define ADC_EVCTRL_STARTEI (_U_(0x1) << ADC_EVCTRL_STARTEI_Pos) +#define ADC_EVCTRL_FLUSHINV_Pos 2 /**< \brief (ADC_EVCTRL) Flush Event Invert Enable */ +#define ADC_EVCTRL_FLUSHINV (_U_(0x1) << ADC_EVCTRL_FLUSHINV_Pos) +#define ADC_EVCTRL_STARTINV_Pos 3 /**< \brief (ADC_EVCTRL) Start Conversion Event Invert Enable */ +#define ADC_EVCTRL_STARTINV (_U_(0x1) << ADC_EVCTRL_STARTINV_Pos) +#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */ +#define ADC_EVCTRL_RESRDYEO (_U_(0x1) << ADC_EVCTRL_RESRDYEO_Pos) +#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */ +#define ADC_EVCTRL_WINMONEO (_U_(0x1) << ADC_EVCTRL_WINMONEO_Pos) +#define ADC_EVCTRL_MASK _U_(0x3F) /**< \brief (ADC_EVCTRL) MASK Register */ + +/* -------- ADC_DBGCTRL : (ADC Offset: 0x03) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DBGCTRL_OFFSET 0x03 /**< \brief (ADC_DBGCTRL offset) Debug Control */ +#define ADC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_DBGCTRL reset_value) Debug Control */ + +#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */ +#define ADC_DBGCTRL_DBGRUN (_U_(0x1) << ADC_DBGCTRL_DBGRUN_Pos) +#define ADC_DBGCTRL_MASK _U_(0x01) /**< \brief (ADC_DBGCTRL) MASK Register */ + +/* -------- ADC_INPUTCTRL : (ADC Offset: 0x04) (R/W 16) Input Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */ + uint16_t :2; /*!< bit: 5.. 6 Reserved */ + uint16_t DIFFMODE:1; /*!< bit: 7 Differential Mode */ + uint16_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */ + uint16_t :2; /*!< bit: 13..14 Reserved */ + uint16_t DSEQSTOP:1; /*!< bit: 15 Stop DMA Sequencing */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_INPUTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INPUTCTRL_OFFSET 0x04 /**< \brief (ADC_INPUTCTRL offset) Input Control */ +#define ADC_INPUTCTRL_RESETVALUE _U_(0x0000) /**< \brief (ADC_INPUTCTRL reset_value) Input Control */ + +#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */ +#define ADC_INPUTCTRL_MUXPOS_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos)) +#define ADC_INPUTCTRL_MUXPOS_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN8_Val _U_(0x8) /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN9_Val _U_(0x9) /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN10_Val _U_(0xA) /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN11_Val _U_(0xB) /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN12_Val _U_(0xC) /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN13_Val _U_(0xD) /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN14_Val _U_(0xE) /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN15_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN16_Val _U_(0x10) /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN17_Val _U_(0x11) /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN18_Val _U_(0x12) /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN19_Val _U_(0x13) /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN20_Val _U_(0x14) /**< \brief (ADC_INPUTCTRL) ADC AIN20 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN21_Val _U_(0x15) /**< \brief (ADC_INPUTCTRL) ADC AIN21 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN22_Val _U_(0x16) /**< \brief (ADC_INPUTCTRL) ADC AIN22 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN23_Val _U_(0x17) /**< \brief (ADC_INPUTCTRL) ADC AIN23 Pin */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled VBAT Supply */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val _U_(0x1A) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */ +#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val _U_(0x1B) /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */ +#define ADC_INPUTCTRL_MUXPOS_PTAT_Val _U_(0x1C) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ +#define ADC_INPUTCTRL_MUXPOS_CTAT_Val _U_(0x1D) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ +#define ADC_INPUTCTRL_MUXPOS_DAC_Val _U_(0x1E) /**< \brief (ADC_INPUTCTRL) DAC Output */ +#define ADC_INPUTCTRL_MUXPOS_PTC_Val _U_(0x1F) /**< \brief (ADC_INPUTCTRL) PTC output (only on ADC0) */ +#define ADC_INPUTCTRL_MUXPOS_AIN0 (ADC_INPUTCTRL_MUXPOS_AIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN1 (ADC_INPUTCTRL_MUXPOS_AIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN2 (ADC_INPUTCTRL_MUXPOS_AIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN3 (ADC_INPUTCTRL_MUXPOS_AIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN4 (ADC_INPUTCTRL_MUXPOS_AIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN5 (ADC_INPUTCTRL_MUXPOS_AIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN6 (ADC_INPUTCTRL_MUXPOS_AIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN7 (ADC_INPUTCTRL_MUXPOS_AIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN8 (ADC_INPUTCTRL_MUXPOS_AIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN9 (ADC_INPUTCTRL_MUXPOS_AIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN10 (ADC_INPUTCTRL_MUXPOS_AIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN11 (ADC_INPUTCTRL_MUXPOS_AIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN12 (ADC_INPUTCTRL_MUXPOS_AIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN13 (ADC_INPUTCTRL_MUXPOS_AIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN14 (ADC_INPUTCTRL_MUXPOS_AIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN15 (ADC_INPUTCTRL_MUXPOS_AIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN16 (ADC_INPUTCTRL_MUXPOS_AIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN17 (ADC_INPUTCTRL_MUXPOS_AIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN18 (ADC_INPUTCTRL_MUXPOS_AIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN19 (ADC_INPUTCTRL_MUXPOS_AIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN20 (ADC_INPUTCTRL_MUXPOS_AIN20_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN21 (ADC_INPUTCTRL_MUXPOS_AIN21_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN22 (ADC_INPUTCTRL_MUXPOS_AIN22_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN23 (ADC_INPUTCTRL_MUXPOS_AIN23_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT (ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PTAT (ADC_INPUTCTRL_MUXPOS_PTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_CTAT (ADC_INPUTCTRL_MUXPOS_CTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PTC (ADC_INPUTCTRL_MUXPOS_PTC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_DIFFMODE_Pos 7 /**< \brief (ADC_INPUTCTRL) Differential Mode */ +#define ADC_INPUTCTRL_DIFFMODE (_U_(0x1) << ADC_INPUTCTRL_DIFFMODE_Pos) +#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */ +#define ADC_INPUTCTRL_MUXNEG_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos)) +#define ADC_INPUTCTRL_MUXNEG_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXNEG_GND_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Internal Ground */ +#define ADC_INPUTCTRL_MUXNEG_AIN0 (ADC_INPUTCTRL_MUXNEG_AIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN1 (ADC_INPUTCTRL_MUXNEG_AIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN2 (ADC_INPUTCTRL_MUXNEG_AIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN3 (ADC_INPUTCTRL_MUXNEG_AIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN4 (ADC_INPUTCTRL_MUXNEG_AIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN5 (ADC_INPUTCTRL_MUXNEG_AIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN6 (ADC_INPUTCTRL_MUXNEG_AIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN7 (ADC_INPUTCTRL_MUXNEG_AIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_DSEQSTOP_Pos 15 /**< \brief (ADC_INPUTCTRL) Stop DMA Sequencing */ +#define ADC_INPUTCTRL_DSEQSTOP (_U_(0x1) << ADC_INPUTCTRL_DSEQSTOP_Pos) +#define ADC_INPUTCTRL_MASK _U_(0x9F9F) /**< \brief (ADC_INPUTCTRL) MASK Register */ + +/* -------- ADC_CTRLB : (ADC Offset: 0x06) (R/W 16) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t LEFTADJ:1; /*!< bit: 0 Left-Adjusted Result */ + uint16_t FREERUN:1; /*!< bit: 1 Free Running Mode */ + uint16_t CORREN:1; /*!< bit: 2 Digital Correction Logic Enable */ + uint16_t RESSEL:2; /*!< bit: 3.. 4 Conversion Result Resolution */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t WINMODE:3; /*!< bit: 8..10 Window Monitor Mode */ + uint16_t WINSS:1; /*!< bit: 11 Window Single Sample */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLB_OFFSET 0x06 /**< \brief (ADC_CTRLB offset) Control B */ +#define ADC_CTRLB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLB reset_value) Control B */ + +#define ADC_CTRLB_LEFTADJ_Pos 0 /**< \brief (ADC_CTRLB) Left-Adjusted Result */ +#define ADC_CTRLB_LEFTADJ (_U_(0x1) << ADC_CTRLB_LEFTADJ_Pos) +#define ADC_CTRLB_FREERUN_Pos 1 /**< \brief (ADC_CTRLB) Free Running Mode */ +#define ADC_CTRLB_FREERUN (_U_(0x1) << ADC_CTRLB_FREERUN_Pos) +#define ADC_CTRLB_CORREN_Pos 2 /**< \brief (ADC_CTRLB) Digital Correction Logic Enable */ +#define ADC_CTRLB_CORREN (_U_(0x1) << ADC_CTRLB_CORREN_Pos) +#define ADC_CTRLB_RESSEL_Pos 3 /**< \brief (ADC_CTRLB) Conversion Result Resolution */ +#define ADC_CTRLB_RESSEL_Msk (_U_(0x3) << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos)) +#define ADC_CTRLB_RESSEL_12BIT_Val _U_(0x0) /**< \brief (ADC_CTRLB) 12-bit result */ +#define ADC_CTRLB_RESSEL_16BIT_Val _U_(0x1) /**< \brief (ADC_CTRLB) For averaging mode output */ +#define ADC_CTRLB_RESSEL_10BIT_Val _U_(0x2) /**< \brief (ADC_CTRLB) 10-bit result */ +#define ADC_CTRLB_RESSEL_8BIT_Val _U_(0x3) /**< \brief (ADC_CTRLB) 8-bit result */ +#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_WINMODE_Pos 8 /**< \brief (ADC_CTRLB) Window Monitor Mode */ +#define ADC_CTRLB_WINMODE_Msk (_U_(0x7) << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE(value) (ADC_CTRLB_WINMODE_Msk & ((value) << ADC_CTRLB_WINMODE_Pos)) +#define ADC_CTRLB_WINMODE_DISABLE_Val _U_(0x0) /**< \brief (ADC_CTRLB) No window mode (default) */ +#define ADC_CTRLB_WINMODE_MODE1_Val _U_(0x1) /**< \brief (ADC_CTRLB) RESULT > WINLT */ +#define ADC_CTRLB_WINMODE_MODE2_Val _U_(0x2) /**< \brief (ADC_CTRLB) RESULT < WINUT */ +#define ADC_CTRLB_WINMODE_MODE3_Val _U_(0x3) /**< \brief (ADC_CTRLB) WINLT < RESULT < WINUT */ +#define ADC_CTRLB_WINMODE_MODE4_Val _U_(0x4) /**< \brief (ADC_CTRLB) !(WINLT < RESULT < WINUT) */ +#define ADC_CTRLB_WINMODE_DISABLE (ADC_CTRLB_WINMODE_DISABLE_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE1 (ADC_CTRLB_WINMODE_MODE1_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE2 (ADC_CTRLB_WINMODE_MODE2_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE3 (ADC_CTRLB_WINMODE_MODE3_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE4 (ADC_CTRLB_WINMODE_MODE4_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINSS_Pos 11 /**< \brief (ADC_CTRLB) Window Single Sample */ +#define ADC_CTRLB_WINSS (_U_(0x1) << ADC_CTRLB_WINSS_Pos) +#define ADC_CTRLB_MASK _U_(0x0F1F) /**< \brief (ADC_CTRLB) MASK Register */ + +/* -------- ADC_REFCTRL : (ADC Offset: 0x08) (R/W 8) Reference Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */ + uint8_t :3; /*!< bit: 4.. 6 Reserved */ + uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_REFCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_REFCTRL_OFFSET 0x08 /**< \brief (ADC_REFCTRL offset) Reference Control */ +#define ADC_REFCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_REFCTRL reset_value) Reference Control */ + +#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */ +#define ADC_REFCTRL_REFSEL_Msk (_U_(0xF) << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos)) +#define ADC_REFCTRL_REFSEL_INTREF_Val _U_(0x0) /**< \brief (ADC_REFCTRL) Internal Bandgap Reference */ +#define ADC_REFCTRL_REFSEL_INTVCC0_Val _U_(0x2) /**< \brief (ADC_REFCTRL) 1/2 VDDANA */ +#define ADC_REFCTRL_REFSEL_INTVCC1_Val _U_(0x3) /**< \brief (ADC_REFCTRL) VDDANA */ +#define ADC_REFCTRL_REFSEL_AREFA_Val _U_(0x4) /**< \brief (ADC_REFCTRL) External Reference */ +#define ADC_REFCTRL_REFSEL_AREFB_Val _U_(0x5) /**< \brief (ADC_REFCTRL) External Reference */ +#define ADC_REFCTRL_REFSEL_AREFC_Val _U_(0x6) /**< \brief (ADC_REFCTRL) External Reference (only on ADC1) */ +#define ADC_REFCTRL_REFSEL_INTREF (ADC_REFCTRL_REFSEL_INTREF_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFC (ADC_REFCTRL_REFSEL_AREFC_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */ +#define ADC_REFCTRL_REFCOMP (_U_(0x1) << ADC_REFCTRL_REFCOMP_Pos) +#define ADC_REFCTRL_MASK _U_(0x8F) /**< \brief (ADC_REFCTRL) MASK Register */ + +/* -------- ADC_AVGCTRL : (ADC Offset: 0x0A) (R/W 8) Average Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */ + uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */ + uint8_t :1; /*!< bit: 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_AVGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_AVGCTRL_OFFSET 0x0A /**< \brief (ADC_AVGCTRL offset) Average Control */ +#define ADC_AVGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_AVGCTRL reset_value) Average Control */ + +#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */ +#define ADC_AVGCTRL_SAMPLENUM_Msk (_U_(0xF) << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos)) +#define ADC_AVGCTRL_SAMPLENUM_1_Val _U_(0x0) /**< \brief (ADC_AVGCTRL) 1 sample */ +#define ADC_AVGCTRL_SAMPLENUM_2_Val _U_(0x1) /**< \brief (ADC_AVGCTRL) 2 samples */ +#define ADC_AVGCTRL_SAMPLENUM_4_Val _U_(0x2) /**< \brief (ADC_AVGCTRL) 4 samples */ +#define ADC_AVGCTRL_SAMPLENUM_8_Val _U_(0x3) /**< \brief (ADC_AVGCTRL) 8 samples */ +#define ADC_AVGCTRL_SAMPLENUM_16_Val _U_(0x4) /**< \brief (ADC_AVGCTRL) 16 samples */ +#define ADC_AVGCTRL_SAMPLENUM_32_Val _U_(0x5) /**< \brief (ADC_AVGCTRL) 32 samples */ +#define ADC_AVGCTRL_SAMPLENUM_64_Val _U_(0x6) /**< \brief (ADC_AVGCTRL) 64 samples */ +#define ADC_AVGCTRL_SAMPLENUM_128_Val _U_(0x7) /**< \brief (ADC_AVGCTRL) 128 samples */ +#define ADC_AVGCTRL_SAMPLENUM_256_Val _U_(0x8) /**< \brief (ADC_AVGCTRL) 256 samples */ +#define ADC_AVGCTRL_SAMPLENUM_512_Val _U_(0x9) /**< \brief (ADC_AVGCTRL) 512 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1024_Val _U_(0xA) /**< \brief (ADC_AVGCTRL) 1024 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */ +#define ADC_AVGCTRL_ADJRES_Msk (_U_(0x7) << ADC_AVGCTRL_ADJRES_Pos) +#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos)) +#define ADC_AVGCTRL_MASK _U_(0x7F) /**< \brief (ADC_AVGCTRL) MASK Register */ + +/* -------- ADC_SAMPCTRL : (ADC Offset: 0x0B) (R/W 8) Sample Time Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */ + uint8_t :1; /*!< bit: 6 Reserved */ + uint8_t OFFCOMP:1; /*!< bit: 7 Comparator Offset Compensation Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SAMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SAMPCTRL_OFFSET 0x0B /**< \brief (ADC_SAMPCTRL offset) Sample Time Control */ +#define ADC_SAMPCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_SAMPCTRL reset_value) Sample Time Control */ + +#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */ +#define ADC_SAMPCTRL_SAMPLEN_Msk (_U_(0x3F) << ADC_SAMPCTRL_SAMPLEN_Pos) +#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos)) +#define ADC_SAMPCTRL_OFFCOMP_Pos 7 /**< \brief (ADC_SAMPCTRL) Comparator Offset Compensation Enable */ +#define ADC_SAMPCTRL_OFFCOMP (_U_(0x1) << ADC_SAMPCTRL_OFFCOMP_Pos) +#define ADC_SAMPCTRL_MASK _U_(0xBF) /**< \brief (ADC_SAMPCTRL) MASK Register */ + +/* -------- ADC_WINLT : (ADC Offset: 0x0C) (R/W 16) Window Monitor Lower Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINLT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINLT_OFFSET 0x0C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */ +#define ADC_WINLT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */ + +#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */ +#define ADC_WINLT_WINLT_Msk (_U_(0xFFFF) << ADC_WINLT_WINLT_Pos) +#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos)) +#define ADC_WINLT_MASK _U_(0xFFFF) /**< \brief (ADC_WINLT) MASK Register */ + +/* -------- ADC_WINUT : (ADC Offset: 0x0E) (R/W 16) Window Monitor Upper Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINUT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINUT_OFFSET 0x0E /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */ +#define ADC_WINUT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */ + +#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */ +#define ADC_WINUT_WINUT_Msk (_U_(0xFFFF) << ADC_WINUT_WINUT_Pos) +#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos)) +#define ADC_WINUT_MASK _U_(0xFFFF) /**< \brief (ADC_WINUT) MASK Register */ + +/* -------- ADC_GAINCORR : (ADC Offset: 0x10) (R/W 16) Gain Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_GAINCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_GAINCORR_OFFSET 0x10 /**< \brief (ADC_GAINCORR offset) Gain Correction */ +#define ADC_GAINCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_GAINCORR reset_value) Gain Correction */ + +#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */ +#define ADC_GAINCORR_GAINCORR_Msk (_U_(0xFFF) << ADC_GAINCORR_GAINCORR_Pos) +#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos)) +#define ADC_GAINCORR_MASK _U_(0x0FFF) /**< \brief (ADC_GAINCORR) MASK Register */ + +/* -------- ADC_OFFSETCORR : (ADC Offset: 0x12) (R/W 16) Offset Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_OFFSETCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_OFFSETCORR_OFFSET 0x12 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */ +#define ADC_OFFSETCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */ + +#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */ +#define ADC_OFFSETCORR_OFFSETCORR_Msk (_U_(0xFFF) << ADC_OFFSETCORR_OFFSETCORR_Pos) +#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos)) +#define ADC_OFFSETCORR_MASK _U_(0x0FFF) /**< \brief (ADC_OFFSETCORR) MASK Register */ + +/* -------- ADC_SWTRIG : (ADC Offset: 0x14) (R/W 8) Software Trigger -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */ + uint8_t START:1; /*!< bit: 1 Start ADC Conversion */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SWTRIG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SWTRIG_OFFSET 0x14 /**< \brief (ADC_SWTRIG offset) Software Trigger */ +#define ADC_SWTRIG_RESETVALUE _U_(0x00) /**< \brief (ADC_SWTRIG reset_value) Software Trigger */ + +#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */ +#define ADC_SWTRIG_FLUSH (_U_(0x1) << ADC_SWTRIG_FLUSH_Pos) +#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) Start ADC Conversion */ +#define ADC_SWTRIG_START (_U_(0x1) << ADC_SWTRIG_START_Pos) +#define ADC_SWTRIG_MASK _U_(0x03) /**< \brief (ADC_SWTRIG) MASK Register */ + +/* -------- ADC_INTENCLR : (ADC Offset: 0x2C) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Disable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Disable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Disable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENCLR_OFFSET 0x2C /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */ +#define ADC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Disable */ +#define ADC_INTENCLR_RESRDY (_U_(0x1) << ADC_INTENCLR_RESRDY_Pos) +#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Disable */ +#define ADC_INTENCLR_OVERRUN (_U_(0x1) << ADC_INTENCLR_OVERRUN_Pos) +#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Disable */ +#define ADC_INTENCLR_WINMON (_U_(0x1) << ADC_INTENCLR_WINMON_Pos) +#define ADC_INTENCLR_MASK _U_(0x07) /**< \brief (ADC_INTENCLR) MASK Register */ + +/* -------- ADC_INTENSET : (ADC Offset: 0x2D) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENSET_OFFSET 0x2D /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */ +#define ADC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */ + +#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */ +#define ADC_INTENSET_RESRDY (_U_(0x1) << ADC_INTENSET_RESRDY_Pos) +#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */ +#define ADC_INTENSET_OVERRUN (_U_(0x1) << ADC_INTENSET_OVERRUN_Pos) +#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */ +#define ADC_INTENSET_WINMON (_U_(0x1) << ADC_INTENSET_WINMON_Pos) +#define ADC_INTENSET_MASK _U_(0x07) /**< \brief (ADC_INTENSET) MASK Register */ + +/* -------- ADC_INTFLAG : (ADC Offset: 0x2E) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Flag */ + __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Flag */ + __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Flag */ + __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTFLAG_OFFSET 0x2E /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define ADC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready Interrupt Flag */ +#define ADC_INTFLAG_RESRDY (_U_(0x1) << ADC_INTFLAG_RESRDY_Pos) +#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun Interrupt Flag */ +#define ADC_INTFLAG_OVERRUN (_U_(0x1) << ADC_INTFLAG_OVERRUN_Pos) +#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor Interrupt Flag */ +#define ADC_INTFLAG_WINMON (_U_(0x1) << ADC_INTFLAG_WINMON_Pos) +#define ADC_INTFLAG_MASK _U_(0x07) /**< \brief (ADC_INTFLAG) MASK Register */ + +/* -------- ADC_STATUS : (ADC Offset: 0x2F) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ADCBUSY:1; /*!< bit: 0 ADC Busy Status */ + uint8_t :1; /*!< bit: 1 Reserved */ + uint8_t WCC:6; /*!< bit: 2.. 7 Window Comparator Counter */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_STATUS_OFFSET 0x2F /**< \brief (ADC_STATUS offset) Status */ +#define ADC_STATUS_RESETVALUE _U_(0x00) /**< \brief (ADC_STATUS reset_value) Status */ + +#define ADC_STATUS_ADCBUSY_Pos 0 /**< \brief (ADC_STATUS) ADC Busy Status */ +#define ADC_STATUS_ADCBUSY (_U_(0x1) << ADC_STATUS_ADCBUSY_Pos) +#define ADC_STATUS_WCC_Pos 2 /**< \brief (ADC_STATUS) Window Comparator Counter */ +#define ADC_STATUS_WCC_Msk (_U_(0x3F) << ADC_STATUS_WCC_Pos) +#define ADC_STATUS_WCC(value) (ADC_STATUS_WCC_Msk & ((value) << ADC_STATUS_WCC_Pos)) +#define ADC_STATUS_MASK _U_(0xFD) /**< \brief (ADC_STATUS) MASK Register */ + +/* -------- ADC_SYNCBUSY : (ADC Offset: 0x30) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 SWRST Synchronization Busy */ + uint32_t ENABLE:1; /*!< bit: 1 ENABLE Synchronization Busy */ + uint32_t INPUTCTRL:1; /*!< bit: 2 Input Control Synchronization Busy */ + uint32_t CTRLB:1; /*!< bit: 3 Control B Synchronization Busy */ + uint32_t REFCTRL:1; /*!< bit: 4 Reference Control Synchronization Busy */ + uint32_t AVGCTRL:1; /*!< bit: 5 Average Control Synchronization Busy */ + uint32_t SAMPCTRL:1; /*!< bit: 6 Sampling Time Control Synchronization Busy */ + uint32_t WINLT:1; /*!< bit: 7 Window Monitor Lower Threshold Synchronization Busy */ + uint32_t WINUT:1; /*!< bit: 8 Window Monitor Upper Threshold Synchronization Busy */ + uint32_t GAINCORR:1; /*!< bit: 9 Gain Correction Synchronization Busy */ + uint32_t OFFSETCORR:1; /*!< bit: 10 Offset Correction Synchronization Busy */ + uint32_t SWTRIG:1; /*!< bit: 11 Software Trigger Synchronization Busy */ + uint32_t :20; /*!< bit: 12..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SYNCBUSY_OFFSET 0x30 /**< \brief (ADC_SYNCBUSY offset) Synchronization Busy */ +#define ADC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (ADC_SYNCBUSY reset_value) Synchronization Busy */ + +#define ADC_SYNCBUSY_SWRST_Pos 0 /**< \brief (ADC_SYNCBUSY) SWRST Synchronization Busy */ +#define ADC_SYNCBUSY_SWRST (_U_(0x1) << ADC_SYNCBUSY_SWRST_Pos) +#define ADC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (ADC_SYNCBUSY) ENABLE Synchronization Busy */ +#define ADC_SYNCBUSY_ENABLE (_U_(0x1) << ADC_SYNCBUSY_ENABLE_Pos) +#define ADC_SYNCBUSY_INPUTCTRL_Pos 2 /**< \brief (ADC_SYNCBUSY) Input Control Synchronization Busy */ +#define ADC_SYNCBUSY_INPUTCTRL (_U_(0x1) << ADC_SYNCBUSY_INPUTCTRL_Pos) +#define ADC_SYNCBUSY_CTRLB_Pos 3 /**< \brief (ADC_SYNCBUSY) Control B Synchronization Busy */ +#define ADC_SYNCBUSY_CTRLB (_U_(0x1) << ADC_SYNCBUSY_CTRLB_Pos) +#define ADC_SYNCBUSY_REFCTRL_Pos 4 /**< \brief (ADC_SYNCBUSY) Reference Control Synchronization Busy */ +#define ADC_SYNCBUSY_REFCTRL (_U_(0x1) << ADC_SYNCBUSY_REFCTRL_Pos) +#define ADC_SYNCBUSY_AVGCTRL_Pos 5 /**< \brief (ADC_SYNCBUSY) Average Control Synchronization Busy */ +#define ADC_SYNCBUSY_AVGCTRL (_U_(0x1) << ADC_SYNCBUSY_AVGCTRL_Pos) +#define ADC_SYNCBUSY_SAMPCTRL_Pos 6 /**< \brief (ADC_SYNCBUSY) Sampling Time Control Synchronization Busy */ +#define ADC_SYNCBUSY_SAMPCTRL (_U_(0x1) << ADC_SYNCBUSY_SAMPCTRL_Pos) +#define ADC_SYNCBUSY_WINLT_Pos 7 /**< \brief (ADC_SYNCBUSY) Window Monitor Lower Threshold Synchronization Busy */ +#define ADC_SYNCBUSY_WINLT (_U_(0x1) << ADC_SYNCBUSY_WINLT_Pos) +#define ADC_SYNCBUSY_WINUT_Pos 8 /**< \brief (ADC_SYNCBUSY) Window Monitor Upper Threshold Synchronization Busy */ +#define ADC_SYNCBUSY_WINUT (_U_(0x1) << ADC_SYNCBUSY_WINUT_Pos) +#define ADC_SYNCBUSY_GAINCORR_Pos 9 /**< \brief (ADC_SYNCBUSY) Gain Correction Synchronization Busy */ +#define ADC_SYNCBUSY_GAINCORR (_U_(0x1) << ADC_SYNCBUSY_GAINCORR_Pos) +#define ADC_SYNCBUSY_OFFSETCORR_Pos 10 /**< \brief (ADC_SYNCBUSY) Offset Correction Synchronization Busy */ +#define ADC_SYNCBUSY_OFFSETCORR (_U_(0x1) << ADC_SYNCBUSY_OFFSETCORR_Pos) +#define ADC_SYNCBUSY_SWTRIG_Pos 11 /**< \brief (ADC_SYNCBUSY) Software Trigger Synchronization Busy */ +#define ADC_SYNCBUSY_SWTRIG (_U_(0x1) << ADC_SYNCBUSY_SWTRIG_Pos) +#define ADC_SYNCBUSY_MASK _U_(0x00000FFF) /**< \brief (ADC_SYNCBUSY) MASK Register */ + +/* -------- ADC_DSEQDATA : (ADC Offset: 0x34) ( /W 32) DMA Sequencial Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DATA:32; /*!< bit: 0..31 DMA Sequential Data */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQDATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQDATA_OFFSET 0x34 /**< \brief (ADC_DSEQDATA offset) DMA Sequencial Data */ +#define ADC_DSEQDATA_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQDATA reset_value) DMA Sequencial Data */ + +#define ADC_DSEQDATA_DATA_Pos 0 /**< \brief (ADC_DSEQDATA) DMA Sequential Data */ +#define ADC_DSEQDATA_DATA_Msk (_U_(0xFFFFFFFF) << ADC_DSEQDATA_DATA_Pos) +#define ADC_DSEQDATA_DATA(value) (ADC_DSEQDATA_DATA_Msk & ((value) << ADC_DSEQDATA_DATA_Pos)) +#define ADC_DSEQDATA_MASK _U_(0xFFFFFFFF) /**< \brief (ADC_DSEQDATA) MASK Register */ + +/* -------- ADC_DSEQCTRL : (ADC Offset: 0x38) (R/W 32) DMA Sequential Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ + uint32_t CTRLB:1; /*!< bit: 1 Control B */ + uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ + uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ + uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ + uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ + uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ + uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ + uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ + uint32_t :22; /*!< bit: 9..30 Reserved */ + uint32_t AUTOSTART:1; /*!< bit: 31 ADC Auto-Start Conversion */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQCTRL_OFFSET 0x38 /**< \brief (ADC_DSEQCTRL offset) DMA Sequential Control */ +#define ADC_DSEQCTRL_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQCTRL reset_value) DMA Sequential Control */ + +#define ADC_DSEQCTRL_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQCTRL) Input Control */ +#define ADC_DSEQCTRL_INPUTCTRL (_U_(0x1) << ADC_DSEQCTRL_INPUTCTRL_Pos) +#define ADC_DSEQCTRL_CTRLB_Pos 1 /**< \brief (ADC_DSEQCTRL) Control B */ +#define ADC_DSEQCTRL_CTRLB (_U_(0x1) << ADC_DSEQCTRL_CTRLB_Pos) +#define ADC_DSEQCTRL_REFCTRL_Pos 2 /**< \brief (ADC_DSEQCTRL) Reference Control */ +#define ADC_DSEQCTRL_REFCTRL (_U_(0x1) << ADC_DSEQCTRL_REFCTRL_Pos) +#define ADC_DSEQCTRL_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQCTRL) Average Control */ +#define ADC_DSEQCTRL_AVGCTRL (_U_(0x1) << ADC_DSEQCTRL_AVGCTRL_Pos) +#define ADC_DSEQCTRL_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQCTRL) Sampling Time Control */ +#define ADC_DSEQCTRL_SAMPCTRL (_U_(0x1) << ADC_DSEQCTRL_SAMPCTRL_Pos) +#define ADC_DSEQCTRL_WINLT_Pos 5 /**< \brief (ADC_DSEQCTRL) Window Monitor Lower Threshold */ +#define ADC_DSEQCTRL_WINLT (_U_(0x1) << ADC_DSEQCTRL_WINLT_Pos) +#define ADC_DSEQCTRL_WINUT_Pos 6 /**< \brief (ADC_DSEQCTRL) Window Monitor Upper Threshold */ +#define ADC_DSEQCTRL_WINUT (_U_(0x1) << ADC_DSEQCTRL_WINUT_Pos) +#define ADC_DSEQCTRL_GAINCORR_Pos 7 /**< \brief (ADC_DSEQCTRL) Gain Correction */ +#define ADC_DSEQCTRL_GAINCORR (_U_(0x1) << ADC_DSEQCTRL_GAINCORR_Pos) +#define ADC_DSEQCTRL_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQCTRL) Offset Correction */ +#define ADC_DSEQCTRL_OFFSETCORR (_U_(0x1) << ADC_DSEQCTRL_OFFSETCORR_Pos) +#define ADC_DSEQCTRL_AUTOSTART_Pos 31 /**< \brief (ADC_DSEQCTRL) ADC Auto-Start Conversion */ +#define ADC_DSEQCTRL_AUTOSTART (_U_(0x1) << ADC_DSEQCTRL_AUTOSTART_Pos) +#define ADC_DSEQCTRL_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQCTRL) MASK Register */ + +/* -------- ADC_DSEQSTAT : (ADC Offset: 0x3C) (R/ 32) DMA Sequencial Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ + uint32_t CTRLB:1; /*!< bit: 1 Control B */ + uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ + uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ + uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ + uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ + uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ + uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ + uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ + uint32_t :22; /*!< bit: 9..30 Reserved */ + uint32_t BUSY:1; /*!< bit: 31 DMA Sequencing Busy */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQSTAT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQSTAT_OFFSET 0x3C /**< \brief (ADC_DSEQSTAT offset) DMA Sequencial Status */ +#define ADC_DSEQSTAT_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQSTAT reset_value) DMA Sequencial Status */ + +#define ADC_DSEQSTAT_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQSTAT) Input Control */ +#define ADC_DSEQSTAT_INPUTCTRL (_U_(0x1) << ADC_DSEQSTAT_INPUTCTRL_Pos) +#define ADC_DSEQSTAT_CTRLB_Pos 1 /**< \brief (ADC_DSEQSTAT) Control B */ +#define ADC_DSEQSTAT_CTRLB (_U_(0x1) << ADC_DSEQSTAT_CTRLB_Pos) +#define ADC_DSEQSTAT_REFCTRL_Pos 2 /**< \brief (ADC_DSEQSTAT) Reference Control */ +#define ADC_DSEQSTAT_REFCTRL (_U_(0x1) << ADC_DSEQSTAT_REFCTRL_Pos) +#define ADC_DSEQSTAT_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQSTAT) Average Control */ +#define ADC_DSEQSTAT_AVGCTRL (_U_(0x1) << ADC_DSEQSTAT_AVGCTRL_Pos) +#define ADC_DSEQSTAT_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQSTAT) Sampling Time Control */ +#define ADC_DSEQSTAT_SAMPCTRL (_U_(0x1) << ADC_DSEQSTAT_SAMPCTRL_Pos) +#define ADC_DSEQSTAT_WINLT_Pos 5 /**< \brief (ADC_DSEQSTAT) Window Monitor Lower Threshold */ +#define ADC_DSEQSTAT_WINLT (_U_(0x1) << ADC_DSEQSTAT_WINLT_Pos) +#define ADC_DSEQSTAT_WINUT_Pos 6 /**< \brief (ADC_DSEQSTAT) Window Monitor Upper Threshold */ +#define ADC_DSEQSTAT_WINUT (_U_(0x1) << ADC_DSEQSTAT_WINUT_Pos) +#define ADC_DSEQSTAT_GAINCORR_Pos 7 /**< \brief (ADC_DSEQSTAT) Gain Correction */ +#define ADC_DSEQSTAT_GAINCORR (_U_(0x1) << ADC_DSEQSTAT_GAINCORR_Pos) +#define ADC_DSEQSTAT_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQSTAT) Offset Correction */ +#define ADC_DSEQSTAT_OFFSETCORR (_U_(0x1) << ADC_DSEQSTAT_OFFSETCORR_Pos) +#define ADC_DSEQSTAT_BUSY_Pos 31 /**< \brief (ADC_DSEQSTAT) DMA Sequencing Busy */ +#define ADC_DSEQSTAT_BUSY (_U_(0x1) << ADC_DSEQSTAT_BUSY_Pos) +#define ADC_DSEQSTAT_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQSTAT) MASK Register */ + +/* -------- ADC_RESULT : (ADC Offset: 0x40) (R/ 16) Result Conversion Value -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_RESULT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_RESULT_OFFSET 0x40 /**< \brief (ADC_RESULT offset) Result Conversion Value */ +#define ADC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESULT reset_value) Result Conversion Value */ + +#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */ +#define ADC_RESULT_RESULT_Msk (_U_(0xFFFF) << ADC_RESULT_RESULT_Pos) +#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos)) +#define ADC_RESULT_MASK _U_(0xFFFF) /**< \brief (ADC_RESULT) MASK Register */ + +/* -------- ADC_RESS : (ADC Offset: 0x44) (R/ 16) Last Sample Result -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESS:16; /*!< bit: 0..15 Last ADC conversion result */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_RESS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_RESS_OFFSET 0x44 /**< \brief (ADC_RESS offset) Last Sample Result */ +#define ADC_RESS_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESS reset_value) Last Sample Result */ + +#define ADC_RESS_RESS_Pos 0 /**< \brief (ADC_RESS) Last ADC conversion result */ +#define ADC_RESS_RESS_Msk (_U_(0xFFFF) << ADC_RESS_RESS_Pos) +#define ADC_RESS_RESS(value) (ADC_RESS_RESS_Msk & ((value) << ADC_RESS_RESS_Pos)) +#define ADC_RESS_MASK _U_(0xFFFF) /**< \brief (ADC_RESS) MASK Register */ + +/* -------- ADC_CALIB : (ADC Offset: 0x48) (R/W 16) Calibration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t BIASCOMP:3; /*!< bit: 0.. 2 Bias Comparator Scaling */ + uint16_t :1; /*!< bit: 3 Reserved */ + uint16_t BIASR2R:3; /*!< bit: 4.. 6 Bias R2R Ampli scaling */ + uint16_t :1; /*!< bit: 7 Reserved */ + uint16_t BIASREFBUF:3; /*!< bit: 8..10 Bias Reference Buffer Scaling */ + uint16_t :5; /*!< bit: 11..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CALIB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CALIB_OFFSET 0x48 /**< \brief (ADC_CALIB offset) Calibration */ +#define ADC_CALIB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CALIB reset_value) Calibration */ + +#define ADC_CALIB_BIASCOMP_Pos 0 /**< \brief (ADC_CALIB) Bias Comparator Scaling */ +#define ADC_CALIB_BIASCOMP_Msk (_U_(0x7) << ADC_CALIB_BIASCOMP_Pos) +#define ADC_CALIB_BIASCOMP(value) (ADC_CALIB_BIASCOMP_Msk & ((value) << ADC_CALIB_BIASCOMP_Pos)) +#define ADC_CALIB_BIASR2R_Pos 4 /**< \brief (ADC_CALIB) Bias R2R Ampli scaling */ +#define ADC_CALIB_BIASR2R_Msk (_U_(0x7) << ADC_CALIB_BIASR2R_Pos) +#define ADC_CALIB_BIASR2R(value) (ADC_CALIB_BIASR2R_Msk & ((value) << ADC_CALIB_BIASR2R_Pos)) +#define ADC_CALIB_BIASREFBUF_Pos 8 /**< \brief (ADC_CALIB) Bias Reference Buffer Scaling */ +#define ADC_CALIB_BIASREFBUF_Msk (_U_(0x7) << ADC_CALIB_BIASREFBUF_Pos) +#define ADC_CALIB_BIASREFBUF(value) (ADC_CALIB_BIASREFBUF_Msk & ((value) << ADC_CALIB_BIASREFBUF_Pos)) +#define ADC_CALIB_MASK _U_(0x0777) /**< \brief (ADC_CALIB) MASK Register */ + +/** \brief ADC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) Control A */ + __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ + __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x03 (R/W 8) Debug Control */ + __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x04 (R/W 16) Input Control */ + __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x06 (R/W 16) Control B */ + __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x08 (R/W 8) Reference Control */ + RoReg8 Reserved1[0x1]; + __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x0A (R/W 8) Average Control */ + __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x0B (R/W 8) Sample Time Control */ + __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x0C (R/W 16) Window Monitor Lower Threshold */ + __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x0E (R/W 16) Window Monitor Upper Threshold */ + __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x10 (R/W 16) Gain Correction */ + __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x12 (R/W 16) Offset Correction */ + __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x14 (R/W 8) Software Trigger */ + RoReg8 Reserved2[0x17]; + __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x2C (R/W 8) Interrupt Enable Clear */ + __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x2D (R/W 8) Interrupt Enable Set */ + __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x2E (R/W 8) Interrupt Flag Status and Clear */ + __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x2F (R/ 8) Status */ + __I ADC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x30 (R/ 32) Synchronization Busy */ + __O ADC_DSEQDATA_Type DSEQDATA; /**< \brief Offset: 0x34 ( /W 32) DMA Sequencial Data */ + __IO ADC_DSEQCTRL_Type DSEQCTRL; /**< \brief Offset: 0x38 (R/W 32) DMA Sequential Control */ + __I ADC_DSEQSTAT_Type DSEQSTAT; /**< \brief Offset: 0x3C (R/ 32) DMA Sequencial Status */ + __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x40 (R/ 16) Result Conversion Value */ + RoReg8 Reserved3[0x2]; + __I ADC_RESS_Type RESS; /**< \brief Offset: 0x44 (R/ 16) Last Sample Result */ + RoReg8 Reserved4[0x2]; + __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x48 (R/W 16) Calibration */ +} Adc; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_ADC_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h new file mode 100644 index 0000000000..5a74eac28b --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h @@ -0,0 +1,375 @@ +/** + * \file + * + * \brief Component description for AES + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_AES_COMPONENT_ +#define _SAMD51_AES_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR AES */ +/* ========================================================================== */ +/** \addtogroup SAMD51_AES Advanced Encryption Standard */ +/*@{*/ + +#define AES_U2238 +#define REV_AES 0x220 + +/* -------- AES_CTRLA : (AES Offset: 0x00) (R/W 32) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset */ + uint32_t ENABLE:1; /*!< bit: 1 Enable */ + uint32_t AESMODE:3; /*!< bit: 2.. 4 AES Modes of operation */ + uint32_t CFBS:3; /*!< bit: 5.. 7 Cipher Feedback Block Size */ + uint32_t KEYSIZE:2; /*!< bit: 8.. 9 Encryption Key Size */ + uint32_t CIPHER:1; /*!< bit: 10 Cipher Mode */ + uint32_t STARTMODE:1; /*!< bit: 11 Start Mode Select */ + uint32_t LOD:1; /*!< bit: 12 Last Output Data Mode */ + uint32_t KEYGEN:1; /*!< bit: 13 Last Key Generation */ + uint32_t XORKEY:1; /*!< bit: 14 XOR Key Operation */ + uint32_t :1; /*!< bit: 15 Reserved */ + uint32_t CTYPE:4; /*!< bit: 16..19 Counter Measure Type */ + uint32_t :12; /*!< bit: 20..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} AES_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CTRLA_OFFSET 0x00 /**< \brief (AES_CTRLA offset) Control A */ +#define AES_CTRLA_RESETVALUE _U_(0x00000000) /**< \brief (AES_CTRLA reset_value) Control A */ + +#define AES_CTRLA_SWRST_Pos 0 /**< \brief (AES_CTRLA) Software Reset */ +#define AES_CTRLA_SWRST (_U_(0x1) << AES_CTRLA_SWRST_Pos) +#define AES_CTRLA_ENABLE_Pos 1 /**< \brief (AES_CTRLA) Enable */ +#define AES_CTRLA_ENABLE (_U_(0x1) << AES_CTRLA_ENABLE_Pos) +#define AES_CTRLA_AESMODE_Pos 2 /**< \brief (AES_CTRLA) AES Modes of operation */ +#define AES_CTRLA_AESMODE_Msk (_U_(0x7) << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE(value) (AES_CTRLA_AESMODE_Msk & ((value) << AES_CTRLA_AESMODE_Pos)) +#define AES_CTRLA_AESMODE_ECB_Val _U_(0x0) /**< \brief (AES_CTRLA) Electronic code book mode */ +#define AES_CTRLA_AESMODE_CBC_Val _U_(0x1) /**< \brief (AES_CTRLA) Cipher block chaining mode */ +#define AES_CTRLA_AESMODE_OFB_Val _U_(0x2) /**< \brief (AES_CTRLA) Output feedback mode */ +#define AES_CTRLA_AESMODE_CFB_Val _U_(0x3) /**< \brief (AES_CTRLA) Cipher feedback mode */ +#define AES_CTRLA_AESMODE_COUNTER_Val _U_(0x4) /**< \brief (AES_CTRLA) Counter mode */ +#define AES_CTRLA_AESMODE_CCM_Val _U_(0x5) /**< \brief (AES_CTRLA) CCM mode */ +#define AES_CTRLA_AESMODE_GCM_Val _U_(0x6) /**< \brief (AES_CTRLA) Galois counter mode */ +#define AES_CTRLA_AESMODE_ECB (AES_CTRLA_AESMODE_ECB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CBC (AES_CTRLA_AESMODE_CBC_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_OFB (AES_CTRLA_AESMODE_OFB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CFB (AES_CTRLA_AESMODE_CFB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_COUNTER (AES_CTRLA_AESMODE_COUNTER_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CCM (AES_CTRLA_AESMODE_CCM_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_GCM (AES_CTRLA_AESMODE_GCM_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_CFBS_Pos 5 /**< \brief (AES_CTRLA) Cipher Feedback Block Size */ +#define AES_CTRLA_CFBS_Msk (_U_(0x7) << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS(value) (AES_CTRLA_CFBS_Msk & ((value) << AES_CTRLA_CFBS_Pos)) +#define AES_CTRLA_CFBS_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_64BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 64-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_32BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 32-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_16BIT_Val _U_(0x3) /**< \brief (AES_CTRLA) 16-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_8BIT_Val _U_(0x4) /**< \brief (AES_CTRLA) 8-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_128BIT (AES_CTRLA_CFBS_128BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_64BIT (AES_CTRLA_CFBS_64BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_32BIT (AES_CTRLA_CFBS_32BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_16BIT (AES_CTRLA_CFBS_16BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_8BIT (AES_CTRLA_CFBS_8BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_KEYSIZE_Pos 8 /**< \brief (AES_CTRLA) Encryption Key Size */ +#define AES_CTRLA_KEYSIZE_Msk (_U_(0x3) << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE(value) (AES_CTRLA_KEYSIZE_Msk & ((value) << AES_CTRLA_KEYSIZE_Pos)) +#define AES_CTRLA_KEYSIZE_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_192BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 192-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_256BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 256-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_128BIT (AES_CTRLA_KEYSIZE_128BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE_192BIT (AES_CTRLA_KEYSIZE_192BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE_256BIT (AES_CTRLA_KEYSIZE_256BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_CIPHER_Pos 10 /**< \brief (AES_CTRLA) Cipher Mode */ +#define AES_CTRLA_CIPHER (_U_(0x1) << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_CIPHER_DEC_Val _U_(0x0) /**< \brief (AES_CTRLA) Decryption */ +#define AES_CTRLA_CIPHER_ENC_Val _U_(0x1) /**< \brief (AES_CTRLA) Encryption */ +#define AES_CTRLA_CIPHER_DEC (AES_CTRLA_CIPHER_DEC_Val << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_CIPHER_ENC (AES_CTRLA_CIPHER_ENC_Val << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_STARTMODE_Pos 11 /**< \brief (AES_CTRLA) Start Mode Select */ +#define AES_CTRLA_STARTMODE (_U_(0x1) << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_STARTMODE_MANUAL_Val _U_(0x0) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Manual mode */ +#define AES_CTRLA_STARTMODE_AUTO_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Auto mode */ +#define AES_CTRLA_STARTMODE_MANUAL (AES_CTRLA_STARTMODE_MANUAL_Val << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_STARTMODE_AUTO (AES_CTRLA_STARTMODE_AUTO_Val << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_LOD_Pos 12 /**< \brief (AES_CTRLA) Last Output Data Mode */ +#define AES_CTRLA_LOD (_U_(0x1) << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_LOD_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_LOD_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start encryption in Last Output Data mode */ +#define AES_CTRLA_LOD_NONE (AES_CTRLA_LOD_NONE_Val << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_LOD_LAST (AES_CTRLA_LOD_LAST_Val << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_KEYGEN_Pos 13 /**< \brief (AES_CTRLA) Last Key Generation */ +#define AES_CTRLA_KEYGEN (_U_(0x1) << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_KEYGEN_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_KEYGEN_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Computation of the last NK words of the expanded key */ +#define AES_CTRLA_KEYGEN_NONE (AES_CTRLA_KEYGEN_NONE_Val << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_KEYGEN_LAST (AES_CTRLA_KEYGEN_LAST_Val << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_XORKEY_Pos 14 /**< \brief (AES_CTRLA) XOR Key Operation */ +#define AES_CTRLA_XORKEY (_U_(0x1) << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_XORKEY_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_XORKEY_XOR_Val _U_(0x1) /**< \brief (AES_CTRLA) The user keyword gets XORed with the previous keyword register content. */ +#define AES_CTRLA_XORKEY_NONE (AES_CTRLA_XORKEY_NONE_Val << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_XORKEY_XOR (AES_CTRLA_XORKEY_XOR_Val << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_CTYPE_Pos 16 /**< \brief (AES_CTRLA) Counter Measure Type */ +#define AES_CTRLA_CTYPE_Msk (_U_(0xF) << AES_CTRLA_CTYPE_Pos) +#define AES_CTRLA_CTYPE(value) (AES_CTRLA_CTYPE_Msk & ((value) << AES_CTRLA_CTYPE_Pos)) +#define AES_CTRLA_MASK _U_(0x000F7FFF) /**< \brief (AES_CTRLA) MASK Register */ + +/* -------- AES_CTRLB : (AES Offset: 0x04) (R/W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t START:1; /*!< bit: 0 Start Encryption/Decryption */ + uint8_t NEWMSG:1; /*!< bit: 1 New message */ + uint8_t EOM:1; /*!< bit: 2 End of message */ + uint8_t GFMUL:1; /*!< bit: 3 GF Multiplication */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CTRLB_OFFSET 0x04 /**< \brief (AES_CTRLB offset) Control B */ +#define AES_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AES_CTRLB reset_value) Control B */ + +#define AES_CTRLB_START_Pos 0 /**< \brief (AES_CTRLB) Start Encryption/Decryption */ +#define AES_CTRLB_START (_U_(0x1) << AES_CTRLB_START_Pos) +#define AES_CTRLB_NEWMSG_Pos 1 /**< \brief (AES_CTRLB) New message */ +#define AES_CTRLB_NEWMSG (_U_(0x1) << AES_CTRLB_NEWMSG_Pos) +#define AES_CTRLB_EOM_Pos 2 /**< \brief (AES_CTRLB) End of message */ +#define AES_CTRLB_EOM (_U_(0x1) << AES_CTRLB_EOM_Pos) +#define AES_CTRLB_GFMUL_Pos 3 /**< \brief (AES_CTRLB) GF Multiplication */ +#define AES_CTRLB_GFMUL (_U_(0x1) << AES_CTRLB_GFMUL_Pos) +#define AES_CTRLB_MASK _U_(0x0F) /**< \brief (AES_CTRLB) MASK Register */ + +/* -------- AES_INTENCLR : (AES Offset: 0x05) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ + uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTENCLR_OFFSET 0x05 /**< \brief (AES_INTENCLR offset) Interrupt Enable Clear */ +#define AES_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AES_INTENCLR reset_value) Interrupt Enable Clear */ + +#define AES_INTENCLR_ENCCMP_Pos 0 /**< \brief (AES_INTENCLR) Encryption Complete Interrupt Enable */ +#define AES_INTENCLR_ENCCMP (_U_(0x1) << AES_INTENCLR_ENCCMP_Pos) +#define AES_INTENCLR_GFMCMP_Pos 1 /**< \brief (AES_INTENCLR) GF Multiplication Complete Interrupt Enable */ +#define AES_INTENCLR_GFMCMP (_U_(0x1) << AES_INTENCLR_GFMCMP_Pos) +#define AES_INTENCLR_MASK _U_(0x03) /**< \brief (AES_INTENCLR) MASK Register */ + +/* -------- AES_INTENSET : (AES Offset: 0x06) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ + uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTENSET_OFFSET 0x06 /**< \brief (AES_INTENSET offset) Interrupt Enable Set */ +#define AES_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AES_INTENSET reset_value) Interrupt Enable Set */ + +#define AES_INTENSET_ENCCMP_Pos 0 /**< \brief (AES_INTENSET) Encryption Complete Interrupt Enable */ +#define AES_INTENSET_ENCCMP (_U_(0x1) << AES_INTENSET_ENCCMP_Pos) +#define AES_INTENSET_GFMCMP_Pos 1 /**< \brief (AES_INTENSET) GF Multiplication Complete Interrupt Enable */ +#define AES_INTENSET_GFMCMP (_U_(0x1) << AES_INTENSET_GFMCMP_Pos) +#define AES_INTENSET_MASK _U_(0x03) /**< \brief (AES_INTENSET) MASK Register */ + +/* -------- AES_INTFLAG : (AES Offset: 0x07) (R/W 8) Interrupt Flag Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete */ + __I uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete */ + __I uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTFLAG_OFFSET 0x07 /**< \brief (AES_INTFLAG offset) Interrupt Flag Status */ +#define AES_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AES_INTFLAG reset_value) Interrupt Flag Status */ + +#define AES_INTFLAG_ENCCMP_Pos 0 /**< \brief (AES_INTFLAG) Encryption Complete */ +#define AES_INTFLAG_ENCCMP (_U_(0x1) << AES_INTFLAG_ENCCMP_Pos) +#define AES_INTFLAG_GFMCMP_Pos 1 /**< \brief (AES_INTFLAG) GF Multiplication Complete */ +#define AES_INTFLAG_GFMCMP (_U_(0x1) << AES_INTFLAG_GFMCMP_Pos) +#define AES_INTFLAG_MASK _U_(0x03) /**< \brief (AES_INTFLAG) MASK Register */ + +/* -------- AES_DATABUFPTR : (AES Offset: 0x08) (R/W 8) Data buffer pointer -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t INDATAPTR:2; /*!< bit: 0.. 1 Input Data Pointer */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_DATABUFPTR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_DATABUFPTR_OFFSET 0x08 /**< \brief (AES_DATABUFPTR offset) Data buffer pointer */ +#define AES_DATABUFPTR_RESETVALUE _U_(0x00) /**< \brief (AES_DATABUFPTR reset_value) Data buffer pointer */ + +#define AES_DATABUFPTR_INDATAPTR_Pos 0 /**< \brief (AES_DATABUFPTR) Input Data Pointer */ +#define AES_DATABUFPTR_INDATAPTR_Msk (_U_(0x3) << AES_DATABUFPTR_INDATAPTR_Pos) +#define AES_DATABUFPTR_INDATAPTR(value) (AES_DATABUFPTR_INDATAPTR_Msk & ((value) << AES_DATABUFPTR_INDATAPTR_Pos)) +#define AES_DATABUFPTR_MASK _U_(0x03) /**< \brief (AES_DATABUFPTR) MASK Register */ + +/* -------- AES_DBGCTRL : (AES Offset: 0x09) (R/W 8) Debug control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_DBGCTRL_OFFSET 0x09 /**< \brief (AES_DBGCTRL offset) Debug control */ +#define AES_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AES_DBGCTRL reset_value) Debug control */ + +#define AES_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AES_DBGCTRL) Debug Run */ +#define AES_DBGCTRL_DBGRUN (_U_(0x1) << AES_DBGCTRL_DBGRUN_Pos) +#define AES_DBGCTRL_MASK _U_(0x01) /**< \brief (AES_DBGCTRL) MASK Register */ + +/* -------- AES_KEYWORD : (AES Offset: 0x0C) ( /W 32) Keyword n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_KEYWORD_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_KEYWORD_OFFSET 0x0C /**< \brief (AES_KEYWORD offset) Keyword n */ +#define AES_KEYWORD_RESETVALUE _U_(0x00000000) /**< \brief (AES_KEYWORD reset_value) Keyword n */ +#define AES_KEYWORD_MASK _U_(0xFFFFFFFF) /**< \brief (AES_KEYWORD) MASK Register */ + +/* -------- AES_INDATA : (AES Offset: 0x38) (R/W 32) Indata -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_INDATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INDATA_OFFSET 0x38 /**< \brief (AES_INDATA offset) Indata */ +#define AES_INDATA_RESETVALUE _U_(0x00000000) /**< \brief (AES_INDATA reset_value) Indata */ +#define AES_INDATA_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INDATA) MASK Register */ + +/* -------- AES_INTVECTV : (AES Offset: 0x3C) ( /W 32) Initialisation Vector n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_INTVECTV_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTVECTV_OFFSET 0x3C /**< \brief (AES_INTVECTV offset) Initialisation Vector n */ +#define AES_INTVECTV_RESETVALUE _U_(0x00000000) /**< \brief (AES_INTVECTV reset_value) Initialisation Vector n */ +#define AES_INTVECTV_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INTVECTV) MASK Register */ + +/* -------- AES_HASHKEY : (AES Offset: 0x5C) (R/W 32) Hash key n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_HASHKEY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_HASHKEY_OFFSET 0x5C /**< \brief (AES_HASHKEY offset) Hash key n */ +#define AES_HASHKEY_RESETVALUE _U_(0x00000000) /**< \brief (AES_HASHKEY reset_value) Hash key n */ +#define AES_HASHKEY_MASK _U_(0xFFFFFFFF) /**< \brief (AES_HASHKEY) MASK Register */ + +/* -------- AES_GHASH : (AES Offset: 0x6C) (R/W 32) Galois Hash n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_GHASH_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_GHASH_OFFSET 0x6C /**< \brief (AES_GHASH offset) Galois Hash n */ +#define AES_GHASH_RESETVALUE _U_(0x00000000) /**< \brief (AES_GHASH reset_value) Galois Hash n */ +#define AES_GHASH_MASK _U_(0xFFFFFFFF) /**< \brief (AES_GHASH) MASK Register */ + +/* -------- AES_CIPLEN : (AES Offset: 0x80) (R/W 32) Cipher Length -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_CIPLEN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CIPLEN_OFFSET 0x80 /**< \brief (AES_CIPLEN offset) Cipher Length */ +#define AES_CIPLEN_RESETVALUE _U_(0x00000000) /**< \brief (AES_CIPLEN reset_value) Cipher Length */ +#define AES_CIPLEN_MASK _U_(0xFFFFFFFF) /**< \brief (AES_CIPLEN) MASK Register */ + +/* -------- AES_RANDSEED : (AES Offset: 0x84) (R/W 32) Random Seed -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_RANDSEED_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_RANDSEED_OFFSET 0x84 /**< \brief (AES_RANDSEED offset) Random Seed */ +#define AES_RANDSEED_RESETVALUE _U_(0x00000000) /**< \brief (AES_RANDSEED reset_value) Random Seed */ +#define AES_RANDSEED_MASK _U_(0xFFFFFFFF) /**< \brief (AES_RANDSEED) MASK Register */ + +/** \brief AES hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO AES_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 32) Control A */ + __IO AES_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 8) Control B */ + __IO AES_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Clear */ + __IO AES_INTENSET_Type INTENSET; /**< \brief Offset: 0x06 (R/W 8) Interrupt Enable Set */ + __IO AES_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x07 (R/W 8) Interrupt Flag Status */ + __IO AES_DATABUFPTR_Type DATABUFPTR; /**< \brief Offset: 0x08 (R/W 8) Data buffer pointer */ + __IO AES_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug control */ + RoReg8 Reserved1[0x2]; + __O AES_KEYWORD_Type KEYWORD[8]; /**< \brief Offset: 0x0C ( /W 32) Keyword n */ + RoReg8 Reserved2[0xC]; + __IO AES_INDATA_Type INDATA; /**< \brief Offset: 0x38 (R/W 32) Indata */ + __O AES_INTVECTV_Type INTVECTV[4]; /**< \brief Offset: 0x3C ( /W 32) Initialisation Vector n */ + RoReg8 Reserved3[0x10]; + __IO AES_HASHKEY_Type HASHKEY[4]; /**< \brief Offset: 0x5C (R/W 32) Hash key n */ + __IO AES_GHASH_Type GHASH[4]; /**< \brief Offset: 0x6C (R/W 32) Galois Hash n */ + RoReg8 Reserved4[0x4]; + __IO AES_CIPLEN_Type CIPLEN; /**< \brief Offset: 0x80 (R/W 32) Cipher Length */ + __IO AES_RANDSEED_Type RANDSEED; /**< \brief Offset: 0x84 (R/W 32) Random Seed */ +} Aes; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_AES_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h new file mode 100644 index 0000000000..9d6754998c --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h @@ -0,0 +1,3207 @@ +/** + * \file + * + * \brief Component description for CAN + * + * Copyright (c) 2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_CAN_COMPONENT_ +#define _SAMD51_CAN_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR CAN */ +/* ========================================================================== */ +/** \addtogroup SAMD51_CAN Control Area Network */ +/*@{*/ + +#define CAN_U2003 +#define REV_CAN 0x321 + +/* -------- CAN_CREL : (CAN Offset: 0x00) (R/ 32) Core Release -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :20; /*!< bit: 0..19 Reserved */ + uint32_t SUBSTEP:4; /*!< bit: 20..23 Sub-step of Core Release */ + uint32_t STEP:4; /*!< bit: 24..27 Step of Core Release */ + uint32_t REL:4; /*!< bit: 28..31 Core Release */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_CREL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_CREL_OFFSET 0x00 /**< \brief (CAN_CREL offset) Core Release */ +#define CAN_CREL_RESETVALUE 0x32100000u /**< \brief (CAN_CREL reset_value) Core Release */ + +#define CAN_CREL_SUBSTEP_Pos 20 /**< \brief (CAN_CREL) Sub-step of Core Release */ +#define CAN_CREL_SUBSTEP_Msk (0xFu << CAN_CREL_SUBSTEP_Pos) +#define CAN_CREL_SUBSTEP(value) (CAN_CREL_SUBSTEP_Msk & ((value) << CAN_CREL_SUBSTEP_Pos)) +#define CAN_CREL_STEP_Pos 24 /**< \brief (CAN_CREL) Step of Core Release */ +#define CAN_CREL_STEP_Msk (0xFu << CAN_CREL_STEP_Pos) +#define CAN_CREL_STEP(value) (CAN_CREL_STEP_Msk & ((value) << CAN_CREL_STEP_Pos)) +#define CAN_CREL_REL_Pos 28 /**< \brief (CAN_CREL) Core Release */ +#define CAN_CREL_REL_Msk (0xFu << CAN_CREL_REL_Pos) +#define CAN_CREL_REL(value) (CAN_CREL_REL_Msk & ((value) << CAN_CREL_REL_Pos)) +#define CAN_CREL_MASK 0xFFF00000u /**< \brief (CAN_CREL) MASK Register */ + +/* -------- CAN_ENDN : (CAN Offset: 0x04) (R/ 32) Endian -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ETV:32; /*!< bit: 0..31 Endianness Test Value */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_ENDN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_ENDN_OFFSET 0x04 /**< \brief (CAN_ENDN offset) Endian */ +#define CAN_ENDN_RESETVALUE 0x87654321u /**< \brief (CAN_ENDN reset_value) Endian */ + +#define CAN_ENDN_ETV_Pos 0 /**< \brief (CAN_ENDN) Endianness Test Value */ +#define CAN_ENDN_ETV_Msk (0xFFFFFFFFu << CAN_ENDN_ETV_Pos) +#define CAN_ENDN_ETV(value) (CAN_ENDN_ETV_Msk & ((value) << CAN_ENDN_ETV_Pos)) +#define CAN_ENDN_MASK 0xFFFFFFFFu /**< \brief (CAN_ENDN) MASK Register */ + +/* -------- CAN_MRCFG : (CAN Offset: 0x08) (R/W 32) Message RAM Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t QOS:2; /*!< bit: 0.. 1 Quality of Service */ + uint32_t :30; /*!< bit: 2..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_MRCFG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_MRCFG_OFFSET 0x08 /**< \brief (CAN_MRCFG offset) Message RAM Configuration */ +#define CAN_MRCFG_RESETVALUE 0x00000002u /**< \brief (CAN_MRCFG reset_value) Message RAM Configuration */ + +#define CAN_MRCFG_QOS_Pos 0 /**< \brief (CAN_MRCFG) Quality of Service */ +#define CAN_MRCFG_QOS_Msk (0x3u << CAN_MRCFG_QOS_Pos) +#define CAN_MRCFG_QOS(value) (CAN_MRCFG_QOS_Msk & ((value) << CAN_MRCFG_QOS_Pos)) +#define CAN_MRCFG_QOS_DISABLE_Val 0x0u /**< \brief (CAN_MRCFG) Background (no sensitive operation) */ +#define CAN_MRCFG_QOS_LOW_Val 0x1u /**< \brief (CAN_MRCFG) Sensitive Bandwidth */ +#define CAN_MRCFG_QOS_MEDIUM_Val 0x2u /**< \brief (CAN_MRCFG) Sensitive Latency */ +#define CAN_MRCFG_QOS_HIGH_Val 0x3u /**< \brief (CAN_MRCFG) Critical Latency */ +#define CAN_MRCFG_QOS_DISABLE (CAN_MRCFG_QOS_DISABLE_Val << CAN_MRCFG_QOS_Pos) +#define CAN_MRCFG_QOS_LOW (CAN_MRCFG_QOS_LOW_Val << CAN_MRCFG_QOS_Pos) +#define CAN_MRCFG_QOS_MEDIUM (CAN_MRCFG_QOS_MEDIUM_Val << CAN_MRCFG_QOS_Pos) +#define CAN_MRCFG_QOS_HIGH (CAN_MRCFG_QOS_HIGH_Val << CAN_MRCFG_QOS_Pos) +#define CAN_MRCFG_MASK 0x00000003u /**< \brief (CAN_MRCFG) MASK Register */ + +/* -------- CAN_DBTP : (CAN Offset: 0x0C) (R/W 32) Fast Bit Timing and Prescaler -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DSJW:4; /*!< bit: 0.. 3 Data (Re)Synchronization Jump Width */ + uint32_t DTSEG2:4; /*!< bit: 4.. 7 Data time segment after sample point */ + uint32_t DTSEG1:5; /*!< bit: 8..12 Data time segment before sample point */ + uint32_t :3; /*!< bit: 13..15 Reserved */ + uint32_t DBRP:5; /*!< bit: 16..20 Data Baud Rate Prescaler */ + uint32_t :2; /*!< bit: 21..22 Reserved */ + uint32_t TDC:1; /*!< bit: 23 Tranceiver Delay Compensation */ + uint32_t :8; /*!< bit: 24..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_DBTP_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_DBTP_OFFSET 0x0C /**< \brief (CAN_DBTP offset) Fast Bit Timing and Prescaler */ +#define CAN_DBTP_RESETVALUE 0x00000A33u /**< \brief (CAN_DBTP reset_value) Fast Bit Timing and Prescaler */ + +#define CAN_DBTP_DSJW_Pos 0 /**< \brief (CAN_DBTP) Data (Re)Synchronization Jump Width */ +#define CAN_DBTP_DSJW_Msk (0xFu << CAN_DBTP_DSJW_Pos) +#define CAN_DBTP_DSJW(value) (CAN_DBTP_DSJW_Msk & ((value) << CAN_DBTP_DSJW_Pos)) +#define CAN_DBTP_DTSEG2_Pos 4 /**< \brief (CAN_DBTP) Data time segment after sample point */ +#define CAN_DBTP_DTSEG2_Msk (0xFu << CAN_DBTP_DTSEG2_Pos) +#define CAN_DBTP_DTSEG2(value) (CAN_DBTP_DTSEG2_Msk & ((value) << CAN_DBTP_DTSEG2_Pos)) +#define CAN_DBTP_DTSEG1_Pos 8 /**< \brief (CAN_DBTP) Data time segment before sample point */ +#define CAN_DBTP_DTSEG1_Msk (0x1Fu << CAN_DBTP_DTSEG1_Pos) +#define CAN_DBTP_DTSEG1(value) (CAN_DBTP_DTSEG1_Msk & ((value) << CAN_DBTP_DTSEG1_Pos)) +#define CAN_DBTP_DBRP_Pos 16 /**< \brief (CAN_DBTP) Data Baud Rate Prescaler */ +#define CAN_DBTP_DBRP_Msk (0x1Fu << CAN_DBTP_DBRP_Pos) +#define CAN_DBTP_DBRP(value) (CAN_DBTP_DBRP_Msk & ((value) << CAN_DBTP_DBRP_Pos)) +#define CAN_DBTP_TDC_Pos 23 /**< \brief (CAN_DBTP) Tranceiver Delay Compensation */ +#define CAN_DBTP_TDC (0x1u << CAN_DBTP_TDC_Pos) +#define CAN_DBTP_MASK 0x009F1FFFu /**< \brief (CAN_DBTP) MASK Register */ + +/* -------- CAN_TEST : (CAN Offset: 0x10) (R/W 32) Test -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :4; /*!< bit: 0.. 3 Reserved */ + uint32_t LBCK:1; /*!< bit: 4 Loop Back Mode */ + uint32_t TX:2; /*!< bit: 5.. 6 Control of Transmit Pin */ + uint32_t RX:1; /*!< bit: 7 Receive Pin */ + uint32_t :24; /*!< bit: 8..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TEST_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TEST_OFFSET 0x10 /**< \brief (CAN_TEST offset) Test */ +#define CAN_TEST_RESETVALUE 0x00000000u /**< \brief (CAN_TEST reset_value) Test */ + +#define CAN_TEST_LBCK_Pos 4 /**< \brief (CAN_TEST) Loop Back Mode */ +#define CAN_TEST_LBCK (0x1u << CAN_TEST_LBCK_Pos) +#define CAN_TEST_TX_Pos 5 /**< \brief (CAN_TEST) Control of Transmit Pin */ +#define CAN_TEST_TX_Msk (0x3u << CAN_TEST_TX_Pos) +#define CAN_TEST_TX(value) (CAN_TEST_TX_Msk & ((value) << CAN_TEST_TX_Pos)) +#define CAN_TEST_TX_CORE_Val 0x0u /**< \brief (CAN_TEST) TX controlled by CAN core */ +#define CAN_TEST_TX_SAMPLE_Val 0x1u /**< \brief (CAN_TEST) TX monitoring sample point */ +#define CAN_TEST_TX_DOMINANT_Val 0x2u /**< \brief (CAN_TEST) Dominant (0) level at pin CAN_TX */ +#define CAN_TEST_TX_RECESSIVE_Val 0x3u /**< \brief (CAN_TEST) Recessive (1) level at pin CAN_TX */ +#define CAN_TEST_TX_CORE (CAN_TEST_TX_CORE_Val << CAN_TEST_TX_Pos) +#define CAN_TEST_TX_SAMPLE (CAN_TEST_TX_SAMPLE_Val << CAN_TEST_TX_Pos) +#define CAN_TEST_TX_DOMINANT (CAN_TEST_TX_DOMINANT_Val << CAN_TEST_TX_Pos) +#define CAN_TEST_TX_RECESSIVE (CAN_TEST_TX_RECESSIVE_Val << CAN_TEST_TX_Pos) +#define CAN_TEST_RX_Pos 7 /**< \brief (CAN_TEST) Receive Pin */ +#define CAN_TEST_RX (0x1u << CAN_TEST_RX_Pos) +#define CAN_TEST_MASK 0x000000F0u /**< \brief (CAN_TEST) MASK Register */ + +/* -------- CAN_RWD : (CAN Offset: 0x14) (R/W 32) RAM Watchdog -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t WDC:8; /*!< bit: 0.. 7 Watchdog Configuration */ + uint32_t WDV:8; /*!< bit: 8..15 Watchdog Value */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RWD_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RWD_OFFSET 0x14 /**< \brief (CAN_RWD offset) RAM Watchdog */ +#define CAN_RWD_RESETVALUE 0x00000000u /**< \brief (CAN_RWD reset_value) RAM Watchdog */ + +#define CAN_RWD_WDC_Pos 0 /**< \brief (CAN_RWD) Watchdog Configuration */ +#define CAN_RWD_WDC_Msk (0xFFu << CAN_RWD_WDC_Pos) +#define CAN_RWD_WDC(value) (CAN_RWD_WDC_Msk & ((value) << CAN_RWD_WDC_Pos)) +#define CAN_RWD_WDV_Pos 8 /**< \brief (CAN_RWD) Watchdog Value */ +#define CAN_RWD_WDV_Msk (0xFFu << CAN_RWD_WDV_Pos) +#define CAN_RWD_WDV(value) (CAN_RWD_WDV_Msk & ((value) << CAN_RWD_WDV_Pos)) +#define CAN_RWD_MASK 0x0000FFFFu /**< \brief (CAN_RWD) MASK Register */ + +/* -------- CAN_CCCR : (CAN Offset: 0x18) (R/W 32) CC Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INIT:1; /*!< bit: 0 Initialization */ + uint32_t CCE:1; /*!< bit: 1 Configuration Change Enable */ + uint32_t ASM:1; /*!< bit: 2 ASM Restricted Operation Mode */ + uint32_t CSA:1; /*!< bit: 3 Clock Stop Acknowledge */ + uint32_t CSR:1; /*!< bit: 4 Clock Stop Request */ + uint32_t MON:1; /*!< bit: 5 Bus Monitoring Mode */ + uint32_t DAR:1; /*!< bit: 6 Disable Automatic Retransmission */ + uint32_t TEST:1; /*!< bit: 7 Test Mode Enable */ + uint32_t FDOE:1; /*!< bit: 8 FD Operation Enable */ + uint32_t BRSE:1; /*!< bit: 9 Bit Rate Switch Enable */ + uint32_t :2; /*!< bit: 10..11 Reserved */ + uint32_t PXHD:1; /*!< bit: 12 Protocol Exception Handling Disable */ + uint32_t EFBI:1; /*!< bit: 13 Edge Filtering during Bus Integration */ + uint32_t TXP:1; /*!< bit: 14 Transmit Pause */ + uint32_t NISO:1; /*!< bit: 15 Non ISO Operation */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_CCCR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_CCCR_OFFSET 0x18 /**< \brief (CAN_CCCR offset) CC Control */ +#define CAN_CCCR_RESETVALUE 0x00000001u /**< \brief (CAN_CCCR reset_value) CC Control */ + +#define CAN_CCCR_INIT_Pos 0 /**< \brief (CAN_CCCR) Initialization */ +#define CAN_CCCR_INIT (0x1u << CAN_CCCR_INIT_Pos) +#define CAN_CCCR_CCE_Pos 1 /**< \brief (CAN_CCCR) Configuration Change Enable */ +#define CAN_CCCR_CCE (0x1u << CAN_CCCR_CCE_Pos) +#define CAN_CCCR_ASM_Pos 2 /**< \brief (CAN_CCCR) ASM Restricted Operation Mode */ +#define CAN_CCCR_ASM (0x1u << CAN_CCCR_ASM_Pos) +#define CAN_CCCR_CSA_Pos 3 /**< \brief (CAN_CCCR) Clock Stop Acknowledge */ +#define CAN_CCCR_CSA (0x1u << CAN_CCCR_CSA_Pos) +#define CAN_CCCR_CSR_Pos 4 /**< \brief (CAN_CCCR) Clock Stop Request */ +#define CAN_CCCR_CSR (0x1u << CAN_CCCR_CSR_Pos) +#define CAN_CCCR_MON_Pos 5 /**< \brief (CAN_CCCR) Bus Monitoring Mode */ +#define CAN_CCCR_MON (0x1u << CAN_CCCR_MON_Pos) +#define CAN_CCCR_DAR_Pos 6 /**< \brief (CAN_CCCR) Disable Automatic Retransmission */ +#define CAN_CCCR_DAR (0x1u << CAN_CCCR_DAR_Pos) +#define CAN_CCCR_TEST_Pos 7 /**< \brief (CAN_CCCR) Test Mode Enable */ +#define CAN_CCCR_TEST (0x1u << CAN_CCCR_TEST_Pos) +#define CAN_CCCR_FDOE_Pos 8 /**< \brief (CAN_CCCR) FD Operation Enable */ +#define CAN_CCCR_FDOE (0x1u << CAN_CCCR_FDOE_Pos) +#define CAN_CCCR_BRSE_Pos 9 /**< \brief (CAN_CCCR) Bit Rate Switch Enable */ +#define CAN_CCCR_BRSE (0x1u << CAN_CCCR_BRSE_Pos) +#define CAN_CCCR_PXHD_Pos 12 /**< \brief (CAN_CCCR) Protocol Exception Handling Disable */ +#define CAN_CCCR_PXHD (0x1u << CAN_CCCR_PXHD_Pos) +#define CAN_CCCR_EFBI_Pos 13 /**< \brief (CAN_CCCR) Edge Filtering during Bus Integration */ +#define CAN_CCCR_EFBI (0x1u << CAN_CCCR_EFBI_Pos) +#define CAN_CCCR_TXP_Pos 14 /**< \brief (CAN_CCCR) Transmit Pause */ +#define CAN_CCCR_TXP (0x1u << CAN_CCCR_TXP_Pos) +#define CAN_CCCR_NISO_Pos 15 /**< \brief (CAN_CCCR) Non ISO Operation */ +#define CAN_CCCR_NISO (0x1u << CAN_CCCR_NISO_Pos) +#define CAN_CCCR_MASK 0x0000F3FFu /**< \brief (CAN_CCCR) MASK Register */ + +/* -------- CAN_NBTP : (CAN Offset: 0x1C) (R/W 32) Nominal Bit Timing and Prescaler -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t NTSEG2:7; /*!< bit: 0.. 6 Nominal Time segment after sample point */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t NTSEG1:8; /*!< bit: 8..15 Nominal Time segment before sample point */ + uint32_t NBRP:9; /*!< bit: 16..24 Nominal Baud Rate Prescaler */ + uint32_t NSJW:7; /*!< bit: 25..31 Nominal (Re)Synchronization Jump Width */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_NBTP_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_NBTP_OFFSET 0x1C /**< \brief (CAN_NBTP offset) Nominal Bit Timing and Prescaler */ +#define CAN_NBTP_RESETVALUE 0x06000A03u /**< \brief (CAN_NBTP reset_value) Nominal Bit Timing and Prescaler */ + +#define CAN_NBTP_NTSEG2_Pos 0 /**< \brief (CAN_NBTP) Nominal Time segment after sample point */ +#define CAN_NBTP_NTSEG2_Msk (0x7Fu << CAN_NBTP_NTSEG2_Pos) +#define CAN_NBTP_NTSEG2(value) (CAN_NBTP_NTSEG2_Msk & ((value) << CAN_NBTP_NTSEG2_Pos)) +#define CAN_NBTP_NTSEG1_Pos 8 /**< \brief (CAN_NBTP) Nominal Time segment before sample point */ +#define CAN_NBTP_NTSEG1_Msk (0xFFu << CAN_NBTP_NTSEG1_Pos) +#define CAN_NBTP_NTSEG1(value) (CAN_NBTP_NTSEG1_Msk & ((value) << CAN_NBTP_NTSEG1_Pos)) +#define CAN_NBTP_NBRP_Pos 16 /**< \brief (CAN_NBTP) Nominal Baud Rate Prescaler */ +#define CAN_NBTP_NBRP_Msk (0x1FFu << CAN_NBTP_NBRP_Pos) +#define CAN_NBTP_NBRP(value) (CAN_NBTP_NBRP_Msk & ((value) << CAN_NBTP_NBRP_Pos)) +#define CAN_NBTP_NSJW_Pos 25 /**< \brief (CAN_NBTP) Nominal (Re)Synchronization Jump Width */ +#define CAN_NBTP_NSJW_Msk (0x7Fu << CAN_NBTP_NSJW_Pos) +#define CAN_NBTP_NSJW(value) (CAN_NBTP_NSJW_Msk & ((value) << CAN_NBTP_NSJW_Pos)) +#define CAN_NBTP_MASK 0xFFFFFF7Fu /**< \brief (CAN_NBTP) MASK Register */ + +/* -------- CAN_TSCC : (CAN Offset: 0x20) (R/W 32) Timestamp Counter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TSS:2; /*!< bit: 0.. 1 Timestamp Select */ + uint32_t :14; /*!< bit: 2..15 Reserved */ + uint32_t TCP:4; /*!< bit: 16..19 Timestamp Counter Prescaler */ + uint32_t :12; /*!< bit: 20..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TSCC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TSCC_OFFSET 0x20 /**< \brief (CAN_TSCC offset) Timestamp Counter Configuration */ +#define CAN_TSCC_RESETVALUE 0x00000000u /**< \brief (CAN_TSCC reset_value) Timestamp Counter Configuration */ + +#define CAN_TSCC_TSS_Pos 0 /**< \brief (CAN_TSCC) Timestamp Select */ +#define CAN_TSCC_TSS_Msk (0x3u << CAN_TSCC_TSS_Pos) +#define CAN_TSCC_TSS(value) (CAN_TSCC_TSS_Msk & ((value) << CAN_TSCC_TSS_Pos)) +#define CAN_TSCC_TSS_ZERO_Val 0x0u /**< \brief (CAN_TSCC) Timestamp counter value always 0x0000 */ +#define CAN_TSCC_TSS_INC_Val 0x1u /**< \brief (CAN_TSCC) Timestamp counter value incremented by TCP */ +#define CAN_TSCC_TSS_EXT_Val 0x2u /**< \brief (CAN_TSCC) External timestamp counter value used */ +#define CAN_TSCC_TSS_ZERO (CAN_TSCC_TSS_ZERO_Val << CAN_TSCC_TSS_Pos) +#define CAN_TSCC_TSS_INC (CAN_TSCC_TSS_INC_Val << CAN_TSCC_TSS_Pos) +#define CAN_TSCC_TSS_EXT (CAN_TSCC_TSS_EXT_Val << CAN_TSCC_TSS_Pos) +#define CAN_TSCC_TCP_Pos 16 /**< \brief (CAN_TSCC) Timestamp Counter Prescaler */ +#define CAN_TSCC_TCP_Msk (0xFu << CAN_TSCC_TCP_Pos) +#define CAN_TSCC_TCP(value) (CAN_TSCC_TCP_Msk & ((value) << CAN_TSCC_TCP_Pos)) +#define CAN_TSCC_MASK 0x000F0003u /**< \brief (CAN_TSCC) MASK Register */ + +/* -------- CAN_TSCV : (CAN Offset: 0x24) (R/ 32) Timestamp Counter Value -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TSC:16; /*!< bit: 0..15 Timestamp Counter */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TSCV_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TSCV_OFFSET 0x24 /**< \brief (CAN_TSCV offset) Timestamp Counter Value */ +#define CAN_TSCV_RESETVALUE 0x00000000u /**< \brief (CAN_TSCV reset_value) Timestamp Counter Value */ + +#define CAN_TSCV_TSC_Pos 0 /**< \brief (CAN_TSCV) Timestamp Counter */ +#define CAN_TSCV_TSC_Msk (0xFFFFu << CAN_TSCV_TSC_Pos) +#define CAN_TSCV_TSC(value) (CAN_TSCV_TSC_Msk & ((value) << CAN_TSCV_TSC_Pos)) +#define CAN_TSCV_MASK 0x0000FFFFu /**< \brief (CAN_TSCV) MASK Register */ + +/* -------- CAN_TOCC : (CAN Offset: 0x28) (R/W 32) Timeout Counter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ETOC:1; /*!< bit: 0 Enable Timeout Counter */ + uint32_t TOS:2; /*!< bit: 1.. 2 Timeout Select */ + uint32_t :13; /*!< bit: 3..15 Reserved */ + uint32_t TOP:16; /*!< bit: 16..31 Timeout Period */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TOCC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TOCC_OFFSET 0x28 /**< \brief (CAN_TOCC offset) Timeout Counter Configuration */ +#define CAN_TOCC_RESETVALUE 0xFFFF0000u /**< \brief (CAN_TOCC reset_value) Timeout Counter Configuration */ + +#define CAN_TOCC_ETOC_Pos 0 /**< \brief (CAN_TOCC) Enable Timeout Counter */ +#define CAN_TOCC_ETOC (0x1u << CAN_TOCC_ETOC_Pos) +#define CAN_TOCC_TOS_Pos 1 /**< \brief (CAN_TOCC) Timeout Select */ +#define CAN_TOCC_TOS_Msk (0x3u << CAN_TOCC_TOS_Pos) +#define CAN_TOCC_TOS(value) (CAN_TOCC_TOS_Msk & ((value) << CAN_TOCC_TOS_Pos)) +#define CAN_TOCC_TOS_CONT_Val 0x0u /**< \brief (CAN_TOCC) Continuout operation */ +#define CAN_TOCC_TOS_TXEF_Val 0x1u /**< \brief (CAN_TOCC) Timeout controlled by TX Event FIFO */ +#define CAN_TOCC_TOS_RXF0_Val 0x2u /**< \brief (CAN_TOCC) Timeout controlled by Rx FIFO 0 */ +#define CAN_TOCC_TOS_RXF1_Val 0x3u /**< \brief (CAN_TOCC) Timeout controlled by Rx FIFO 1 */ +#define CAN_TOCC_TOS_CONT (CAN_TOCC_TOS_CONT_Val << CAN_TOCC_TOS_Pos) +#define CAN_TOCC_TOS_TXEF (CAN_TOCC_TOS_TXEF_Val << CAN_TOCC_TOS_Pos) +#define CAN_TOCC_TOS_RXF0 (CAN_TOCC_TOS_RXF0_Val << CAN_TOCC_TOS_Pos) +#define CAN_TOCC_TOS_RXF1 (CAN_TOCC_TOS_RXF1_Val << CAN_TOCC_TOS_Pos) +#define CAN_TOCC_TOP_Pos 16 /**< \brief (CAN_TOCC) Timeout Period */ +#define CAN_TOCC_TOP_Msk (0xFFFFu << CAN_TOCC_TOP_Pos) +#define CAN_TOCC_TOP(value) (CAN_TOCC_TOP_Msk & ((value) << CAN_TOCC_TOP_Pos)) +#define CAN_TOCC_MASK 0xFFFF0007u /**< \brief (CAN_TOCC) MASK Register */ + +/* -------- CAN_TOCV : (CAN Offset: 0x2C) (R/W 32) Timeout Counter Value -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TOC:16; /*!< bit: 0..15 Timeout Counter */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TOCV_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TOCV_OFFSET 0x2C /**< \brief (CAN_TOCV offset) Timeout Counter Value */ +#define CAN_TOCV_RESETVALUE 0x0000FFFFu /**< \brief (CAN_TOCV reset_value) Timeout Counter Value */ + +#define CAN_TOCV_TOC_Pos 0 /**< \brief (CAN_TOCV) Timeout Counter */ +#define CAN_TOCV_TOC_Msk (0xFFFFu << CAN_TOCV_TOC_Pos) +#define CAN_TOCV_TOC(value) (CAN_TOCV_TOC_Msk & ((value) << CAN_TOCV_TOC_Pos)) +#define CAN_TOCV_MASK 0x0000FFFFu /**< \brief (CAN_TOCV) MASK Register */ + +/* -------- CAN_ECR : (CAN Offset: 0x40) (R/ 32) Error Counter -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TEC:8; /*!< bit: 0.. 7 Transmit Error Counter */ + uint32_t REC:7; /*!< bit: 8..14 Receive Error Counter */ + uint32_t RP:1; /*!< bit: 15 Receive Error Passive */ + uint32_t CEL:8; /*!< bit: 16..23 CAN Error Logging */ + uint32_t :8; /*!< bit: 24..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_ECR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_ECR_OFFSET 0x40 /**< \brief (CAN_ECR offset) Error Counter */ +#define CAN_ECR_RESETVALUE 0x00000000u /**< \brief (CAN_ECR reset_value) Error Counter */ + +#define CAN_ECR_TEC_Pos 0 /**< \brief (CAN_ECR) Transmit Error Counter */ +#define CAN_ECR_TEC_Msk (0xFFu << CAN_ECR_TEC_Pos) +#define CAN_ECR_TEC(value) (CAN_ECR_TEC_Msk & ((value) << CAN_ECR_TEC_Pos)) +#define CAN_ECR_REC_Pos 8 /**< \brief (CAN_ECR) Receive Error Counter */ +#define CAN_ECR_REC_Msk (0x7Fu << CAN_ECR_REC_Pos) +#define CAN_ECR_REC(value) (CAN_ECR_REC_Msk & ((value) << CAN_ECR_REC_Pos)) +#define CAN_ECR_RP_Pos 15 /**< \brief (CAN_ECR) Receive Error Passive */ +#define CAN_ECR_RP (0x1u << CAN_ECR_RP_Pos) +#define CAN_ECR_CEL_Pos 16 /**< \brief (CAN_ECR) CAN Error Logging */ +#define CAN_ECR_CEL_Msk (0xFFu << CAN_ECR_CEL_Pos) +#define CAN_ECR_CEL(value) (CAN_ECR_CEL_Msk & ((value) << CAN_ECR_CEL_Pos)) +#define CAN_ECR_MASK 0x00FFFFFFu /**< \brief (CAN_ECR) MASK Register */ + +/* -------- CAN_PSR : (CAN Offset: 0x44) (R/ 32) Protocol Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t LEC:3; /*!< bit: 0.. 2 Last Error Code */ + uint32_t ACT:2; /*!< bit: 3.. 4 Activity */ + uint32_t EP:1; /*!< bit: 5 Error Passive */ + uint32_t EW:1; /*!< bit: 6 Warning Status */ + uint32_t BO:1; /*!< bit: 7 Bus_Off Status */ + uint32_t DLEC:3; /*!< bit: 8..10 Data Phase Last Error Code */ + uint32_t RESI:1; /*!< bit: 11 ESI flag of last received CAN FD Message */ + uint32_t RBRS:1; /*!< bit: 12 BRS flag of last received CAN FD Message */ + uint32_t RFDF:1; /*!< bit: 13 Received a CAN FD Message */ + uint32_t PXE:1; /*!< bit: 14 Protocol Exception Event */ + uint32_t :1; /*!< bit: 15 Reserved */ + uint32_t TDCV:7; /*!< bit: 16..22 Transmitter Delay Compensation Value */ + uint32_t :9; /*!< bit: 23..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_PSR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_PSR_OFFSET 0x44 /**< \brief (CAN_PSR offset) Protocol Status */ +#define CAN_PSR_RESETVALUE 0x00000707u /**< \brief (CAN_PSR reset_value) Protocol Status */ + +#define CAN_PSR_LEC_Pos 0 /**< \brief (CAN_PSR) Last Error Code */ +#define CAN_PSR_LEC_Msk (0x7u << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC(value) (CAN_PSR_LEC_Msk & ((value) << CAN_PSR_LEC_Pos)) +#define CAN_PSR_LEC_NONE_Val 0x0u /**< \brief (CAN_PSR) No Error */ +#define CAN_PSR_LEC_STUFF_Val 0x1u /**< \brief (CAN_PSR) Stuff Error */ +#define CAN_PSR_LEC_FORM_Val 0x2u /**< \brief (CAN_PSR) Form Error */ +#define CAN_PSR_LEC_ACK_Val 0x3u /**< \brief (CAN_PSR) Ack Error */ +#define CAN_PSR_LEC_BIT1_Val 0x4u /**< \brief (CAN_PSR) Bit1 Error */ +#define CAN_PSR_LEC_BIT0_Val 0x5u /**< \brief (CAN_PSR) Bit0 Error */ +#define CAN_PSR_LEC_CRC_Val 0x6u /**< \brief (CAN_PSR) CRC Error */ +#define CAN_PSR_LEC_NC_Val 0x7u /**< \brief (CAN_PSR) No Change */ +#define CAN_PSR_LEC_NONE (CAN_PSR_LEC_NONE_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_STUFF (CAN_PSR_LEC_STUFF_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_FORM (CAN_PSR_LEC_FORM_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_ACK (CAN_PSR_LEC_ACK_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_BIT1 (CAN_PSR_LEC_BIT1_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_BIT0 (CAN_PSR_LEC_BIT0_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_CRC (CAN_PSR_LEC_CRC_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_LEC_NC (CAN_PSR_LEC_NC_Val << CAN_PSR_LEC_Pos) +#define CAN_PSR_ACT_Pos 3 /**< \brief (CAN_PSR) Activity */ +#define CAN_PSR_ACT_Msk (0x3u << CAN_PSR_ACT_Pos) +#define CAN_PSR_ACT(value) (CAN_PSR_ACT_Msk & ((value) << CAN_PSR_ACT_Pos)) +#define CAN_PSR_ACT_SYNC_Val 0x0u /**< \brief (CAN_PSR) Node is synchronizing on CAN communication */ +#define CAN_PSR_ACT_IDLE_Val 0x1u /**< \brief (CAN_PSR) Node is neither receiver nor transmitter */ +#define CAN_PSR_ACT_RX_Val 0x2u /**< \brief (CAN_PSR) Node is operating as receiver */ +#define CAN_PSR_ACT_TX_Val 0x3u /**< \brief (CAN_PSR) Node is operating as transmitter */ +#define CAN_PSR_ACT_SYNC (CAN_PSR_ACT_SYNC_Val << CAN_PSR_ACT_Pos) +#define CAN_PSR_ACT_IDLE (CAN_PSR_ACT_IDLE_Val << CAN_PSR_ACT_Pos) +#define CAN_PSR_ACT_RX (CAN_PSR_ACT_RX_Val << CAN_PSR_ACT_Pos) +#define CAN_PSR_ACT_TX (CAN_PSR_ACT_TX_Val << CAN_PSR_ACT_Pos) +#define CAN_PSR_EP_Pos 5 /**< \brief (CAN_PSR) Error Passive */ +#define CAN_PSR_EP (0x1u << CAN_PSR_EP_Pos) +#define CAN_PSR_EW_Pos 6 /**< \brief (CAN_PSR) Warning Status */ +#define CAN_PSR_EW (0x1u << CAN_PSR_EW_Pos) +#define CAN_PSR_BO_Pos 7 /**< \brief (CAN_PSR) Bus_Off Status */ +#define CAN_PSR_BO (0x1u << CAN_PSR_BO_Pos) +#define CAN_PSR_DLEC_Pos 8 /**< \brief (CAN_PSR) Data Phase Last Error Code */ +#define CAN_PSR_DLEC_Msk (0x7u << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC(value) (CAN_PSR_DLEC_Msk & ((value) << CAN_PSR_DLEC_Pos)) +#define CAN_PSR_DLEC_NONE_Val 0x0u /**< \brief (CAN_PSR) No Error */ +#define CAN_PSR_DLEC_STUFF_Val 0x1u /**< \brief (CAN_PSR) Stuff Error */ +#define CAN_PSR_DLEC_FORM_Val 0x2u /**< \brief (CAN_PSR) Form Error */ +#define CAN_PSR_DLEC_ACK_Val 0x3u /**< \brief (CAN_PSR) Ack Error */ +#define CAN_PSR_DLEC_BIT1_Val 0x4u /**< \brief (CAN_PSR) Bit1 Error */ +#define CAN_PSR_DLEC_BIT0_Val 0x5u /**< \brief (CAN_PSR) Bit0 Error */ +#define CAN_PSR_DLEC_CRC_Val 0x6u /**< \brief (CAN_PSR) CRC Error */ +#define CAN_PSR_DLEC_NC_Val 0x7u /**< \brief (CAN_PSR) No Change */ +#define CAN_PSR_DLEC_NONE (CAN_PSR_DLEC_NONE_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_STUFF (CAN_PSR_DLEC_STUFF_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_FORM (CAN_PSR_DLEC_FORM_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_ACK (CAN_PSR_DLEC_ACK_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_BIT1 (CAN_PSR_DLEC_BIT1_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_BIT0 (CAN_PSR_DLEC_BIT0_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_CRC (CAN_PSR_DLEC_CRC_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_DLEC_NC (CAN_PSR_DLEC_NC_Val << CAN_PSR_DLEC_Pos) +#define CAN_PSR_RESI_Pos 11 /**< \brief (CAN_PSR) ESI flag of last received CAN FD Message */ +#define CAN_PSR_RESI (0x1u << CAN_PSR_RESI_Pos) +#define CAN_PSR_RBRS_Pos 12 /**< \brief (CAN_PSR) BRS flag of last received CAN FD Message */ +#define CAN_PSR_RBRS (0x1u << CAN_PSR_RBRS_Pos) +#define CAN_PSR_RFDF_Pos 13 /**< \brief (CAN_PSR) Received a CAN FD Message */ +#define CAN_PSR_RFDF (0x1u << CAN_PSR_RFDF_Pos) +#define CAN_PSR_PXE_Pos 14 /**< \brief (CAN_PSR) Protocol Exception Event */ +#define CAN_PSR_PXE (0x1u << CAN_PSR_PXE_Pos) +#define CAN_PSR_TDCV_Pos 16 /**< \brief (CAN_PSR) Transmitter Delay Compensation Value */ +#define CAN_PSR_TDCV_Msk (0x7Fu << CAN_PSR_TDCV_Pos) +#define CAN_PSR_TDCV(value) (CAN_PSR_TDCV_Msk & ((value) << CAN_PSR_TDCV_Pos)) +#define CAN_PSR_MASK 0x007F7FFFu /**< \brief (CAN_PSR) MASK Register */ + +/* -------- CAN_TDCR : (CAN Offset: 0x48) (R/W 32) Extended ID Filter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TDCF:7; /*!< bit: 0.. 6 Transmitter Delay Compensation Filter Length */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t TDCO:7; /*!< bit: 8..14 Transmitter Delay Compensation Offset */ + uint32_t :17; /*!< bit: 15..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TDCR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TDCR_OFFSET 0x48 /**< \brief (CAN_TDCR offset) Extended ID Filter Configuration */ +#define CAN_TDCR_RESETVALUE 0x00000000u /**< \brief (CAN_TDCR reset_value) Extended ID Filter Configuration */ + +#define CAN_TDCR_TDCF_Pos 0 /**< \brief (CAN_TDCR) Transmitter Delay Compensation Filter Length */ +#define CAN_TDCR_TDCF_Msk (0x7Fu << CAN_TDCR_TDCF_Pos) +#define CAN_TDCR_TDCF(value) (CAN_TDCR_TDCF_Msk & ((value) << CAN_TDCR_TDCF_Pos)) +#define CAN_TDCR_TDCO_Pos 8 /**< \brief (CAN_TDCR) Transmitter Delay Compensation Offset */ +#define CAN_TDCR_TDCO_Msk (0x7Fu << CAN_TDCR_TDCO_Pos) +#define CAN_TDCR_TDCO(value) (CAN_TDCR_TDCO_Msk & ((value) << CAN_TDCR_TDCO_Pos)) +#define CAN_TDCR_MASK 0x00007F7Fu /**< \brief (CAN_TDCR) MASK Register */ + +/* -------- CAN_IR : (CAN Offset: 0x50) (R/W 32) Interrupt -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RF0N:1; /*!< bit: 0 Rx FIFO 0 New Message */ + uint32_t RF0W:1; /*!< bit: 1 Rx FIFO 0 Watermark Reached */ + uint32_t RF0F:1; /*!< bit: 2 Rx FIFO 0 Full */ + uint32_t RF0L:1; /*!< bit: 3 Rx FIFO 0 Message Lost */ + uint32_t RF1N:1; /*!< bit: 4 Rx FIFO 1 New Message */ + uint32_t RF1W:1; /*!< bit: 5 Rx FIFO 1 Watermark Reached */ + uint32_t RF1F:1; /*!< bit: 6 Rx FIFO 1 FIFO Full */ + uint32_t RF1L:1; /*!< bit: 7 Rx FIFO 1 Message Lost */ + uint32_t HPM:1; /*!< bit: 8 High Priority Message */ + uint32_t TC:1; /*!< bit: 9 Timestamp Completed */ + uint32_t TCF:1; /*!< bit: 10 Transmission Cancellation Finished */ + uint32_t TFE:1; /*!< bit: 11 Tx FIFO Empty */ + uint32_t TEFN:1; /*!< bit: 12 Tx Event FIFO New Entry */ + uint32_t TEFW:1; /*!< bit: 13 Tx Event FIFO Watermark Reached */ + uint32_t TEFF:1; /*!< bit: 14 Tx Event FIFO Full */ + uint32_t TEFL:1; /*!< bit: 15 Tx Event FIFO Element Lost */ + uint32_t TSW:1; /*!< bit: 16 Timestamp Wraparound */ + uint32_t MRAF:1; /*!< bit: 17 Message RAM Access Failure */ + uint32_t TOO:1; /*!< bit: 18 Timeout Occurred */ + uint32_t DRX:1; /*!< bit: 19 Message stored to Dedicated Rx Buffer */ + uint32_t BEC:1; /*!< bit: 20 Bit Error Corrected */ + uint32_t BEU:1; /*!< bit: 21 Bit Error Uncorrected */ + uint32_t ELO:1; /*!< bit: 22 Error Logging Overflow */ + uint32_t EP:1; /*!< bit: 23 Error Passive */ + uint32_t EW:1; /*!< bit: 24 Warning Status */ + uint32_t BO:1; /*!< bit: 25 Bus_Off Status */ + uint32_t WDI:1; /*!< bit: 26 Watchdog Interrupt */ + uint32_t PEA:1; /*!< bit: 27 Protocol Error in Arbitration Phase */ + uint32_t PED:1; /*!< bit: 28 Protocol Error in Data Phase */ + uint32_t ARA:1; /*!< bit: 29 Access to Reserved Address */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_IR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_IR_OFFSET 0x50 /**< \brief (CAN_IR offset) Interrupt */ +#define CAN_IR_RESETVALUE 0x00000000u /**< \brief (CAN_IR reset_value) Interrupt */ + +#define CAN_IR_RF0N_Pos 0 /**< \brief (CAN_IR) Rx FIFO 0 New Message */ +#define CAN_IR_RF0N (0x1u << CAN_IR_RF0N_Pos) +#define CAN_IR_RF0W_Pos 1 /**< \brief (CAN_IR) Rx FIFO 0 Watermark Reached */ +#define CAN_IR_RF0W (0x1u << CAN_IR_RF0W_Pos) +#define CAN_IR_RF0F_Pos 2 /**< \brief (CAN_IR) Rx FIFO 0 Full */ +#define CAN_IR_RF0F (0x1u << CAN_IR_RF0F_Pos) +#define CAN_IR_RF0L_Pos 3 /**< \brief (CAN_IR) Rx FIFO 0 Message Lost */ +#define CAN_IR_RF0L (0x1u << CAN_IR_RF0L_Pos) +#define CAN_IR_RF1N_Pos 4 /**< \brief (CAN_IR) Rx FIFO 1 New Message */ +#define CAN_IR_RF1N (0x1u << CAN_IR_RF1N_Pos) +#define CAN_IR_RF1W_Pos 5 /**< \brief (CAN_IR) Rx FIFO 1 Watermark Reached */ +#define CAN_IR_RF1W (0x1u << CAN_IR_RF1W_Pos) +#define CAN_IR_RF1F_Pos 6 /**< \brief (CAN_IR) Rx FIFO 1 FIFO Full */ +#define CAN_IR_RF1F (0x1u << CAN_IR_RF1F_Pos) +#define CAN_IR_RF1L_Pos 7 /**< \brief (CAN_IR) Rx FIFO 1 Message Lost */ +#define CAN_IR_RF1L (0x1u << CAN_IR_RF1L_Pos) +#define CAN_IR_HPM_Pos 8 /**< \brief (CAN_IR) High Priority Message */ +#define CAN_IR_HPM (0x1u << CAN_IR_HPM_Pos) +#define CAN_IR_TC_Pos 9 /**< \brief (CAN_IR) Timestamp Completed */ +#define CAN_IR_TC (0x1u << CAN_IR_TC_Pos) +#define CAN_IR_TCF_Pos 10 /**< \brief (CAN_IR) Transmission Cancellation Finished */ +#define CAN_IR_TCF (0x1u << CAN_IR_TCF_Pos) +#define CAN_IR_TFE_Pos 11 /**< \brief (CAN_IR) Tx FIFO Empty */ +#define CAN_IR_TFE (0x1u << CAN_IR_TFE_Pos) +#define CAN_IR_TEFN_Pos 12 /**< \brief (CAN_IR) Tx Event FIFO New Entry */ +#define CAN_IR_TEFN (0x1u << CAN_IR_TEFN_Pos) +#define CAN_IR_TEFW_Pos 13 /**< \brief (CAN_IR) Tx Event FIFO Watermark Reached */ +#define CAN_IR_TEFW (0x1u << CAN_IR_TEFW_Pos) +#define CAN_IR_TEFF_Pos 14 /**< \brief (CAN_IR) Tx Event FIFO Full */ +#define CAN_IR_TEFF (0x1u << CAN_IR_TEFF_Pos) +#define CAN_IR_TEFL_Pos 15 /**< \brief (CAN_IR) Tx Event FIFO Element Lost */ +#define CAN_IR_TEFL (0x1u << CAN_IR_TEFL_Pos) +#define CAN_IR_TSW_Pos 16 /**< \brief (CAN_IR) Timestamp Wraparound */ +#define CAN_IR_TSW (0x1u << CAN_IR_TSW_Pos) +#define CAN_IR_MRAF_Pos 17 /**< \brief (CAN_IR) Message RAM Access Failure */ +#define CAN_IR_MRAF (0x1u << CAN_IR_MRAF_Pos) +#define CAN_IR_TOO_Pos 18 /**< \brief (CAN_IR) Timeout Occurred */ +#define CAN_IR_TOO (0x1u << CAN_IR_TOO_Pos) +#define CAN_IR_DRX_Pos 19 /**< \brief (CAN_IR) Message stored to Dedicated Rx Buffer */ +#define CAN_IR_DRX (0x1u << CAN_IR_DRX_Pos) +#define CAN_IR_BEC_Pos 20 /**< \brief (CAN_IR) Bit Error Corrected */ +#define CAN_IR_BEC (0x1u << CAN_IR_BEC_Pos) +#define CAN_IR_BEU_Pos 21 /**< \brief (CAN_IR) Bit Error Uncorrected */ +#define CAN_IR_BEU (0x1u << CAN_IR_BEU_Pos) +#define CAN_IR_ELO_Pos 22 /**< \brief (CAN_IR) Error Logging Overflow */ +#define CAN_IR_ELO (0x1u << CAN_IR_ELO_Pos) +#define CAN_IR_EP_Pos 23 /**< \brief (CAN_IR) Error Passive */ +#define CAN_IR_EP (0x1u << CAN_IR_EP_Pos) +#define CAN_IR_EW_Pos 24 /**< \brief (CAN_IR) Warning Status */ +#define CAN_IR_EW (0x1u << CAN_IR_EW_Pos) +#define CAN_IR_BO_Pos 25 /**< \brief (CAN_IR) Bus_Off Status */ +#define CAN_IR_BO (0x1u << CAN_IR_BO_Pos) +#define CAN_IR_WDI_Pos 26 /**< \brief (CAN_IR) Watchdog Interrupt */ +#define CAN_IR_WDI (0x1u << CAN_IR_WDI_Pos) +#define CAN_IR_PEA_Pos 27 /**< \brief (CAN_IR) Protocol Error in Arbitration Phase */ +#define CAN_IR_PEA (0x1u << CAN_IR_PEA_Pos) +#define CAN_IR_PED_Pos 28 /**< \brief (CAN_IR) Protocol Error in Data Phase */ +#define CAN_IR_PED (0x1u << CAN_IR_PED_Pos) +#define CAN_IR_ARA_Pos 29 /**< \brief (CAN_IR) Access to Reserved Address */ +#define CAN_IR_ARA (0x1u << CAN_IR_ARA_Pos) +#define CAN_IR_MASK 0x3FFFFFFFu /**< \brief (CAN_IR) MASK Register */ + +/* -------- CAN_IE : (CAN Offset: 0x54) (R/W 32) Interrupt Enable -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RF0NE:1; /*!< bit: 0 Rx FIFO 0 New Message Interrupt Enable */ + uint32_t RF0WE:1; /*!< bit: 1 Rx FIFO 0 Watermark Reached Interrupt Enable */ + uint32_t RF0FE:1; /*!< bit: 2 Rx FIFO 0 Full Interrupt Enable */ + uint32_t RF0LE:1; /*!< bit: 3 Rx FIFO 0 Message Lost Interrupt Enable */ + uint32_t RF1NE:1; /*!< bit: 4 Rx FIFO 1 New Message Interrupt Enable */ + uint32_t RF1WE:1; /*!< bit: 5 Rx FIFO 1 Watermark Reached Interrupt Enable */ + uint32_t RF1FE:1; /*!< bit: 6 Rx FIFO 1 FIFO Full Interrupt Enable */ + uint32_t RF1LE:1; /*!< bit: 7 Rx FIFO 1 Message Lost Interrupt Enable */ + uint32_t HPME:1; /*!< bit: 8 High Priority Message Interrupt Enable */ + uint32_t TCE:1; /*!< bit: 9 Timestamp Completed Interrupt Enable */ + uint32_t TCFE:1; /*!< bit: 10 Transmission Cancellation Finished Interrupt Enable */ + uint32_t TFEE:1; /*!< bit: 11 Tx FIFO Empty Interrupt Enable */ + uint32_t TEFNE:1; /*!< bit: 12 Tx Event FIFO New Entry Interrupt Enable */ + uint32_t TEFWE:1; /*!< bit: 13 Tx Event FIFO Watermark Reached Interrupt Enable */ + uint32_t TEFFE:1; /*!< bit: 14 Tx Event FIFO Full Interrupt Enable */ + uint32_t TEFLE:1; /*!< bit: 15 Tx Event FIFO Element Lost Interrupt Enable */ + uint32_t TSWE:1; /*!< bit: 16 Timestamp Wraparound Interrupt Enable */ + uint32_t MRAFE:1; /*!< bit: 17 Message RAM Access Failure Interrupt Enable */ + uint32_t TOOE:1; /*!< bit: 18 Timeout Occurred Interrupt Enable */ + uint32_t DRXE:1; /*!< bit: 19 Message stored to Dedicated Rx Buffer Interrupt Enable */ + uint32_t BECE:1; /*!< bit: 20 Bit Error Corrected Interrupt Enable */ + uint32_t BEUE:1; /*!< bit: 21 Bit Error Uncorrected Interrupt Enable */ + uint32_t ELOE:1; /*!< bit: 22 Error Logging Overflow Interrupt Enable */ + uint32_t EPE:1; /*!< bit: 23 Error Passive Interrupt Enable */ + uint32_t EWE:1; /*!< bit: 24 Warning Status Interrupt Enable */ + uint32_t BOE:1; /*!< bit: 25 Bus_Off Status Interrupt Enable */ + uint32_t WDIE:1; /*!< bit: 26 Watchdog Interrupt Interrupt Enable */ + uint32_t PEAE:1; /*!< bit: 27 Protocol Error in Arbitration Phase Enable */ + uint32_t PEDE:1; /*!< bit: 28 Protocol Error in Data Phase Enable */ + uint32_t ARAE:1; /*!< bit: 29 Access to Reserved Address Enable */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_IE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_IE_OFFSET 0x54 /**< \brief (CAN_IE offset) Interrupt Enable */ +#define CAN_IE_RESETVALUE 0x00000000u /**< \brief (CAN_IE reset_value) Interrupt Enable */ + +#define CAN_IE_RF0NE_Pos 0 /**< \brief (CAN_IE) Rx FIFO 0 New Message Interrupt Enable */ +#define CAN_IE_RF0NE (0x1u << CAN_IE_RF0NE_Pos) +#define CAN_IE_RF0WE_Pos 1 /**< \brief (CAN_IE) Rx FIFO 0 Watermark Reached Interrupt Enable */ +#define CAN_IE_RF0WE (0x1u << CAN_IE_RF0WE_Pos) +#define CAN_IE_RF0FE_Pos 2 /**< \brief (CAN_IE) Rx FIFO 0 Full Interrupt Enable */ +#define CAN_IE_RF0FE (0x1u << CAN_IE_RF0FE_Pos) +#define CAN_IE_RF0LE_Pos 3 /**< \brief (CAN_IE) Rx FIFO 0 Message Lost Interrupt Enable */ +#define CAN_IE_RF0LE (0x1u << CAN_IE_RF0LE_Pos) +#define CAN_IE_RF1NE_Pos 4 /**< \brief (CAN_IE) Rx FIFO 1 New Message Interrupt Enable */ +#define CAN_IE_RF1NE (0x1u << CAN_IE_RF1NE_Pos) +#define CAN_IE_RF1WE_Pos 5 /**< \brief (CAN_IE) Rx FIFO 1 Watermark Reached Interrupt Enable */ +#define CAN_IE_RF1WE (0x1u << CAN_IE_RF1WE_Pos) +#define CAN_IE_RF1FE_Pos 6 /**< \brief (CAN_IE) Rx FIFO 1 FIFO Full Interrupt Enable */ +#define CAN_IE_RF1FE (0x1u << CAN_IE_RF1FE_Pos) +#define CAN_IE_RF1LE_Pos 7 /**< \brief (CAN_IE) Rx FIFO 1 Message Lost Interrupt Enable */ +#define CAN_IE_RF1LE (0x1u << CAN_IE_RF1LE_Pos) +#define CAN_IE_HPME_Pos 8 /**< \brief (CAN_IE) High Priority Message Interrupt Enable */ +#define CAN_IE_HPME (0x1u << CAN_IE_HPME_Pos) +#define CAN_IE_TCE_Pos 9 /**< \brief (CAN_IE) Timestamp Completed Interrupt Enable */ +#define CAN_IE_TCE (0x1u << CAN_IE_TCE_Pos) +#define CAN_IE_TCFE_Pos 10 /**< \brief (CAN_IE) Transmission Cancellation Finished Interrupt Enable */ +#define CAN_IE_TCFE (0x1u << CAN_IE_TCFE_Pos) +#define CAN_IE_TFEE_Pos 11 /**< \brief (CAN_IE) Tx FIFO Empty Interrupt Enable */ +#define CAN_IE_TFEE (0x1u << CAN_IE_TFEE_Pos) +#define CAN_IE_TEFNE_Pos 12 /**< \brief (CAN_IE) Tx Event FIFO New Entry Interrupt Enable */ +#define CAN_IE_TEFNE (0x1u << CAN_IE_TEFNE_Pos) +#define CAN_IE_TEFWE_Pos 13 /**< \brief (CAN_IE) Tx Event FIFO Watermark Reached Interrupt Enable */ +#define CAN_IE_TEFWE (0x1u << CAN_IE_TEFWE_Pos) +#define CAN_IE_TEFFE_Pos 14 /**< \brief (CAN_IE) Tx Event FIFO Full Interrupt Enable */ +#define CAN_IE_TEFFE (0x1u << CAN_IE_TEFFE_Pos) +#define CAN_IE_TEFLE_Pos 15 /**< \brief (CAN_IE) Tx Event FIFO Element Lost Interrupt Enable */ +#define CAN_IE_TEFLE (0x1u << CAN_IE_TEFLE_Pos) +#define CAN_IE_TSWE_Pos 16 /**< \brief (CAN_IE) Timestamp Wraparound Interrupt Enable */ +#define CAN_IE_TSWE (0x1u << CAN_IE_TSWE_Pos) +#define CAN_IE_MRAFE_Pos 17 /**< \brief (CAN_IE) Message RAM Access Failure Interrupt Enable */ +#define CAN_IE_MRAFE (0x1u << CAN_IE_MRAFE_Pos) +#define CAN_IE_TOOE_Pos 18 /**< \brief (CAN_IE) Timeout Occurred Interrupt Enable */ +#define CAN_IE_TOOE (0x1u << CAN_IE_TOOE_Pos) +#define CAN_IE_DRXE_Pos 19 /**< \brief (CAN_IE) Message stored to Dedicated Rx Buffer Interrupt Enable */ +#define CAN_IE_DRXE (0x1u << CAN_IE_DRXE_Pos) +#define CAN_IE_BECE_Pos 20 /**< \brief (CAN_IE) Bit Error Corrected Interrupt Enable */ +#define CAN_IE_BECE (0x1u << CAN_IE_BECE_Pos) +#define CAN_IE_BEUE_Pos 21 /**< \brief (CAN_IE) Bit Error Uncorrected Interrupt Enable */ +#define CAN_IE_BEUE (0x1u << CAN_IE_BEUE_Pos) +#define CAN_IE_ELOE_Pos 22 /**< \brief (CAN_IE) Error Logging Overflow Interrupt Enable */ +#define CAN_IE_ELOE (0x1u << CAN_IE_ELOE_Pos) +#define CAN_IE_EPE_Pos 23 /**< \brief (CAN_IE) Error Passive Interrupt Enable */ +#define CAN_IE_EPE (0x1u << CAN_IE_EPE_Pos) +#define CAN_IE_EWE_Pos 24 /**< \brief (CAN_IE) Warning Status Interrupt Enable */ +#define CAN_IE_EWE (0x1u << CAN_IE_EWE_Pos) +#define CAN_IE_BOE_Pos 25 /**< \brief (CAN_IE) Bus_Off Status Interrupt Enable */ +#define CAN_IE_BOE (0x1u << CAN_IE_BOE_Pos) +#define CAN_IE_WDIE_Pos 26 /**< \brief (CAN_IE) Watchdog Interrupt Interrupt Enable */ +#define CAN_IE_WDIE (0x1u << CAN_IE_WDIE_Pos) +#define CAN_IE_PEAE_Pos 27 /**< \brief (CAN_IE) Protocol Error in Arbitration Phase Enable */ +#define CAN_IE_PEAE (0x1u << CAN_IE_PEAE_Pos) +#define CAN_IE_PEDE_Pos 28 /**< \brief (CAN_IE) Protocol Error in Data Phase Enable */ +#define CAN_IE_PEDE (0x1u << CAN_IE_PEDE_Pos) +#define CAN_IE_ARAE_Pos 29 /**< \brief (CAN_IE) Access to Reserved Address Enable */ +#define CAN_IE_ARAE (0x1u << CAN_IE_ARAE_Pos) +#define CAN_IE_MASK 0x3FFFFFFFu /**< \brief (CAN_IE) MASK Register */ + +/* -------- CAN_ILS : (CAN Offset: 0x58) (R/W 32) Interrupt Line Select -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RF0NL:1; /*!< bit: 0 Rx FIFO 0 New Message Interrupt Line */ + uint32_t RF0WL:1; /*!< bit: 1 Rx FIFO 0 Watermark Reached Interrupt Line */ + uint32_t RF0FL:1; /*!< bit: 2 Rx FIFO 0 Full Interrupt Line */ + uint32_t RF0LL:1; /*!< bit: 3 Rx FIFO 0 Message Lost Interrupt Line */ + uint32_t RF1NL:1; /*!< bit: 4 Rx FIFO 1 New Message Interrupt Line */ + uint32_t RF1WL:1; /*!< bit: 5 Rx FIFO 1 Watermark Reached Interrupt Line */ + uint32_t RF1FL:1; /*!< bit: 6 Rx FIFO 1 FIFO Full Interrupt Line */ + uint32_t RF1LL:1; /*!< bit: 7 Rx FIFO 1 Message Lost Interrupt Line */ + uint32_t HPML:1; /*!< bit: 8 High Priority Message Interrupt Line */ + uint32_t TCL:1; /*!< bit: 9 Timestamp Completed Interrupt Line */ + uint32_t TCFL:1; /*!< bit: 10 Transmission Cancellation Finished Interrupt Line */ + uint32_t TFEL:1; /*!< bit: 11 Tx FIFO Empty Interrupt Line */ + uint32_t TEFNL:1; /*!< bit: 12 Tx Event FIFO New Entry Interrupt Line */ + uint32_t TEFWL:1; /*!< bit: 13 Tx Event FIFO Watermark Reached Interrupt Line */ + uint32_t TEFFL:1; /*!< bit: 14 Tx Event FIFO Full Interrupt Line */ + uint32_t TEFLL:1; /*!< bit: 15 Tx Event FIFO Element Lost Interrupt Line */ + uint32_t TSWL:1; /*!< bit: 16 Timestamp Wraparound Interrupt Line */ + uint32_t MRAFL:1; /*!< bit: 17 Message RAM Access Failure Interrupt Line */ + uint32_t TOOL:1; /*!< bit: 18 Timeout Occurred Interrupt Line */ + uint32_t DRXL:1; /*!< bit: 19 Message stored to Dedicated Rx Buffer Interrupt Line */ + uint32_t BECL:1; /*!< bit: 20 Bit Error Corrected Interrupt Line */ + uint32_t BEUL:1; /*!< bit: 21 Bit Error Uncorrected Interrupt Line */ + uint32_t ELOL:1; /*!< bit: 22 Error Logging Overflow Interrupt Line */ + uint32_t EPL:1; /*!< bit: 23 Error Passive Interrupt Line */ + uint32_t EWL:1; /*!< bit: 24 Warning Status Interrupt Line */ + uint32_t BOL:1; /*!< bit: 25 Bus_Off Status Interrupt Line */ + uint32_t WDIL:1; /*!< bit: 26 Watchdog Interrupt Interrupt Line */ + uint32_t PEAL:1; /*!< bit: 27 Protocol Error in Arbitration Phase Line */ + uint32_t PEDL:1; /*!< bit: 28 Protocol Error in Data Phase Line */ + uint32_t ARAL:1; /*!< bit: 29 Access to Reserved Address Line */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_ILS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_ILS_OFFSET 0x58 /**< \brief (CAN_ILS offset) Interrupt Line Select */ +#define CAN_ILS_RESETVALUE 0x00000000u /**< \brief (CAN_ILS reset_value) Interrupt Line Select */ + +#define CAN_ILS_RF0NL_Pos 0 /**< \brief (CAN_ILS) Rx FIFO 0 New Message Interrupt Line */ +#define CAN_ILS_RF0NL (0x1u << CAN_ILS_RF0NL_Pos) +#define CAN_ILS_RF0WL_Pos 1 /**< \brief (CAN_ILS) Rx FIFO 0 Watermark Reached Interrupt Line */ +#define CAN_ILS_RF0WL (0x1u << CAN_ILS_RF0WL_Pos) +#define CAN_ILS_RF0FL_Pos 2 /**< \brief (CAN_ILS) Rx FIFO 0 Full Interrupt Line */ +#define CAN_ILS_RF0FL (0x1u << CAN_ILS_RF0FL_Pos) +#define CAN_ILS_RF0LL_Pos 3 /**< \brief (CAN_ILS) Rx FIFO 0 Message Lost Interrupt Line */ +#define CAN_ILS_RF0LL (0x1u << CAN_ILS_RF0LL_Pos) +#define CAN_ILS_RF1NL_Pos 4 /**< \brief (CAN_ILS) Rx FIFO 1 New Message Interrupt Line */ +#define CAN_ILS_RF1NL (0x1u << CAN_ILS_RF1NL_Pos) +#define CAN_ILS_RF1WL_Pos 5 /**< \brief (CAN_ILS) Rx FIFO 1 Watermark Reached Interrupt Line */ +#define CAN_ILS_RF1WL (0x1u << CAN_ILS_RF1WL_Pos) +#define CAN_ILS_RF1FL_Pos 6 /**< \brief (CAN_ILS) Rx FIFO 1 FIFO Full Interrupt Line */ +#define CAN_ILS_RF1FL (0x1u << CAN_ILS_RF1FL_Pos) +#define CAN_ILS_RF1LL_Pos 7 /**< \brief (CAN_ILS) Rx FIFO 1 Message Lost Interrupt Line */ +#define CAN_ILS_RF1LL (0x1u << CAN_ILS_RF1LL_Pos) +#define CAN_ILS_HPML_Pos 8 /**< \brief (CAN_ILS) High Priority Message Interrupt Line */ +#define CAN_ILS_HPML (0x1u << CAN_ILS_HPML_Pos) +#define CAN_ILS_TCL_Pos 9 /**< \brief (CAN_ILS) Timestamp Completed Interrupt Line */ +#define CAN_ILS_TCL (0x1u << CAN_ILS_TCL_Pos) +#define CAN_ILS_TCFL_Pos 10 /**< \brief (CAN_ILS) Transmission Cancellation Finished Interrupt Line */ +#define CAN_ILS_TCFL (0x1u << CAN_ILS_TCFL_Pos) +#define CAN_ILS_TFEL_Pos 11 /**< \brief (CAN_ILS) Tx FIFO Empty Interrupt Line */ +#define CAN_ILS_TFEL (0x1u << CAN_ILS_TFEL_Pos) +#define CAN_ILS_TEFNL_Pos 12 /**< \brief (CAN_ILS) Tx Event FIFO New Entry Interrupt Line */ +#define CAN_ILS_TEFNL (0x1u << CAN_ILS_TEFNL_Pos) +#define CAN_ILS_TEFWL_Pos 13 /**< \brief (CAN_ILS) Tx Event FIFO Watermark Reached Interrupt Line */ +#define CAN_ILS_TEFWL (0x1u << CAN_ILS_TEFWL_Pos) +#define CAN_ILS_TEFFL_Pos 14 /**< \brief (CAN_ILS) Tx Event FIFO Full Interrupt Line */ +#define CAN_ILS_TEFFL (0x1u << CAN_ILS_TEFFL_Pos) +#define CAN_ILS_TEFLL_Pos 15 /**< \brief (CAN_ILS) Tx Event FIFO Element Lost Interrupt Line */ +#define CAN_ILS_TEFLL (0x1u << CAN_ILS_TEFLL_Pos) +#define CAN_ILS_TSWL_Pos 16 /**< \brief (CAN_ILS) Timestamp Wraparound Interrupt Line */ +#define CAN_ILS_TSWL (0x1u << CAN_ILS_TSWL_Pos) +#define CAN_ILS_MRAFL_Pos 17 /**< \brief (CAN_ILS) Message RAM Access Failure Interrupt Line */ +#define CAN_ILS_MRAFL (0x1u << CAN_ILS_MRAFL_Pos) +#define CAN_ILS_TOOL_Pos 18 /**< \brief (CAN_ILS) Timeout Occurred Interrupt Line */ +#define CAN_ILS_TOOL (0x1u << CAN_ILS_TOOL_Pos) +#define CAN_ILS_DRXL_Pos 19 /**< \brief (CAN_ILS) Message stored to Dedicated Rx Buffer Interrupt Line */ +#define CAN_ILS_DRXL (0x1u << CAN_ILS_DRXL_Pos) +#define CAN_ILS_BECL_Pos 20 /**< \brief (CAN_ILS) Bit Error Corrected Interrupt Line */ +#define CAN_ILS_BECL (0x1u << CAN_ILS_BECL_Pos) +#define CAN_ILS_BEUL_Pos 21 /**< \brief (CAN_ILS) Bit Error Uncorrected Interrupt Line */ +#define CAN_ILS_BEUL (0x1u << CAN_ILS_BEUL_Pos) +#define CAN_ILS_ELOL_Pos 22 /**< \brief (CAN_ILS) Error Logging Overflow Interrupt Line */ +#define CAN_ILS_ELOL (0x1u << CAN_ILS_ELOL_Pos) +#define CAN_ILS_EPL_Pos 23 /**< \brief (CAN_ILS) Error Passive Interrupt Line */ +#define CAN_ILS_EPL (0x1u << CAN_ILS_EPL_Pos) +#define CAN_ILS_EWL_Pos 24 /**< \brief (CAN_ILS) Warning Status Interrupt Line */ +#define CAN_ILS_EWL (0x1u << CAN_ILS_EWL_Pos) +#define CAN_ILS_BOL_Pos 25 /**< \brief (CAN_ILS) Bus_Off Status Interrupt Line */ +#define CAN_ILS_BOL (0x1u << CAN_ILS_BOL_Pos) +#define CAN_ILS_WDIL_Pos 26 /**< \brief (CAN_ILS) Watchdog Interrupt Interrupt Line */ +#define CAN_ILS_WDIL (0x1u << CAN_ILS_WDIL_Pos) +#define CAN_ILS_PEAL_Pos 27 /**< \brief (CAN_ILS) Protocol Error in Arbitration Phase Line */ +#define CAN_ILS_PEAL (0x1u << CAN_ILS_PEAL_Pos) +#define CAN_ILS_PEDL_Pos 28 /**< \brief (CAN_ILS) Protocol Error in Data Phase Line */ +#define CAN_ILS_PEDL (0x1u << CAN_ILS_PEDL_Pos) +#define CAN_ILS_ARAL_Pos 29 /**< \brief (CAN_ILS) Access to Reserved Address Line */ +#define CAN_ILS_ARAL (0x1u << CAN_ILS_ARAL_Pos) +#define CAN_ILS_MASK 0x3FFFFFFFu /**< \brief (CAN_ILS) MASK Register */ + +/* -------- CAN_ILE : (CAN Offset: 0x5C) (R/W 32) Interrupt Line Enable -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EINT0:1; /*!< bit: 0 Enable Interrupt Line 0 */ + uint32_t EINT1:1; /*!< bit: 1 Enable Interrupt Line 1 */ + uint32_t :30; /*!< bit: 2..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_ILE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_ILE_OFFSET 0x5C /**< \brief (CAN_ILE offset) Interrupt Line Enable */ +#define CAN_ILE_RESETVALUE 0x00000000u /**< \brief (CAN_ILE reset_value) Interrupt Line Enable */ + +#define CAN_ILE_EINT0_Pos 0 /**< \brief (CAN_ILE) Enable Interrupt Line 0 */ +#define CAN_ILE_EINT0 (0x1u << CAN_ILE_EINT0_Pos) +#define CAN_ILE_EINT1_Pos 1 /**< \brief (CAN_ILE) Enable Interrupt Line 1 */ +#define CAN_ILE_EINT1 (0x1u << CAN_ILE_EINT1_Pos) +#define CAN_ILE_MASK 0x00000003u /**< \brief (CAN_ILE) MASK Register */ + +/* -------- CAN_GFC : (CAN Offset: 0x80) (R/W 32) Global Filter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RRFE:1; /*!< bit: 0 Reject Remote Frames Extended */ + uint32_t RRFS:1; /*!< bit: 1 Reject Remote Frames Standard */ + uint32_t ANFE:2; /*!< bit: 2.. 3 Accept Non-matching Frames Extended */ + uint32_t ANFS:2; /*!< bit: 4.. 5 Accept Non-matching Frames Standard */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_GFC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_GFC_OFFSET 0x80 /**< \brief (CAN_GFC offset) Global Filter Configuration */ +#define CAN_GFC_RESETVALUE 0x00000000u /**< \brief (CAN_GFC reset_value) Global Filter Configuration */ + +#define CAN_GFC_RRFE_Pos 0 /**< \brief (CAN_GFC) Reject Remote Frames Extended */ +#define CAN_GFC_RRFE (0x1u << CAN_GFC_RRFE_Pos) +#define CAN_GFC_RRFS_Pos 1 /**< \brief (CAN_GFC) Reject Remote Frames Standard */ +#define CAN_GFC_RRFS (0x1u << CAN_GFC_RRFS_Pos) +#define CAN_GFC_ANFE_Pos 2 /**< \brief (CAN_GFC) Accept Non-matching Frames Extended */ +#define CAN_GFC_ANFE_Msk (0x3u << CAN_GFC_ANFE_Pos) +#define CAN_GFC_ANFE(value) (CAN_GFC_ANFE_Msk & ((value) << CAN_GFC_ANFE_Pos)) +#define CAN_GFC_ANFE_RXF0_Val 0x0u /**< \brief (CAN_GFC) Accept in Rx FIFO 0 */ +#define CAN_GFC_ANFE_RXF1_Val 0x1u /**< \brief (CAN_GFC) Accept in Rx FIFO 1 */ +#define CAN_GFC_ANFE_REJECT_Val 0x2u /**< \brief (CAN_GFC) Reject */ +#define CAN_GFC_ANFE_RXF0 (CAN_GFC_ANFE_RXF0_Val << CAN_GFC_ANFE_Pos) +#define CAN_GFC_ANFE_RXF1 (CAN_GFC_ANFE_RXF1_Val << CAN_GFC_ANFE_Pos) +#define CAN_GFC_ANFE_REJECT (CAN_GFC_ANFE_REJECT_Val << CAN_GFC_ANFE_Pos) +#define CAN_GFC_ANFS_Pos 4 /**< \brief (CAN_GFC) Accept Non-matching Frames Standard */ +#define CAN_GFC_ANFS_Msk (0x3u << CAN_GFC_ANFS_Pos) +#define CAN_GFC_ANFS(value) (CAN_GFC_ANFS_Msk & ((value) << CAN_GFC_ANFS_Pos)) +#define CAN_GFC_ANFS_RXF0_Val 0x0u /**< \brief (CAN_GFC) Accept in Rx FIFO 0 */ +#define CAN_GFC_ANFS_RXF1_Val 0x1u /**< \brief (CAN_GFC) Accept in Rx FIFO 1 */ +#define CAN_GFC_ANFS_REJECT_Val 0x2u /**< \brief (CAN_GFC) Reject */ +#define CAN_GFC_ANFS_RXF0 (CAN_GFC_ANFS_RXF0_Val << CAN_GFC_ANFS_Pos) +#define CAN_GFC_ANFS_RXF1 (CAN_GFC_ANFS_RXF1_Val << CAN_GFC_ANFS_Pos) +#define CAN_GFC_ANFS_REJECT (CAN_GFC_ANFS_REJECT_Val << CAN_GFC_ANFS_Pos) +#define CAN_GFC_MASK 0x0000003Fu /**< \brief (CAN_GFC) MASK Register */ + +/* -------- CAN_SIDFC : (CAN Offset: 0x84) (R/W 32) Standard ID Filter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t FLSSA:16; /*!< bit: 0..15 Filter List Standard Start Address */ + uint32_t LSS:8; /*!< bit: 16..23 List Size Standard */ + uint32_t :8; /*!< bit: 24..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_SIDFC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_SIDFC_OFFSET 0x84 /**< \brief (CAN_SIDFC offset) Standard ID Filter Configuration */ +#define CAN_SIDFC_RESETVALUE 0x00000000u /**< \brief (CAN_SIDFC reset_value) Standard ID Filter Configuration */ + +#define CAN_SIDFC_FLSSA_Pos 0 /**< \brief (CAN_SIDFC) Filter List Standard Start Address */ +#define CAN_SIDFC_FLSSA_Msk (0xFFFFu << CAN_SIDFC_FLSSA_Pos) +#define CAN_SIDFC_FLSSA(value) (CAN_SIDFC_FLSSA_Msk & ((value) << CAN_SIDFC_FLSSA_Pos)) +#define CAN_SIDFC_LSS_Pos 16 /**< \brief (CAN_SIDFC) List Size Standard */ +#define CAN_SIDFC_LSS_Msk (0xFFu << CAN_SIDFC_LSS_Pos) +#define CAN_SIDFC_LSS(value) (CAN_SIDFC_LSS_Msk & ((value) << CAN_SIDFC_LSS_Pos)) +#define CAN_SIDFC_MASK 0x00FFFFFFu /**< \brief (CAN_SIDFC) MASK Register */ + +/* -------- CAN_XIDFC : (CAN Offset: 0x88) (R/W 32) Extended ID Filter Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t FLESA:16; /*!< bit: 0..15 Filter List Extended Start Address */ + uint32_t LSE:7; /*!< bit: 16..22 List Size Extended */ + uint32_t :9; /*!< bit: 23..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_XIDFC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_XIDFC_OFFSET 0x88 /**< \brief (CAN_XIDFC offset) Extended ID Filter Configuration */ +#define CAN_XIDFC_RESETVALUE 0x00000000u /**< \brief (CAN_XIDFC reset_value) Extended ID Filter Configuration */ + +#define CAN_XIDFC_FLESA_Pos 0 /**< \brief (CAN_XIDFC) Filter List Extended Start Address */ +#define CAN_XIDFC_FLESA_Msk (0xFFFFu << CAN_XIDFC_FLESA_Pos) +#define CAN_XIDFC_FLESA(value) (CAN_XIDFC_FLESA_Msk & ((value) << CAN_XIDFC_FLESA_Pos)) +#define CAN_XIDFC_LSE_Pos 16 /**< \brief (CAN_XIDFC) List Size Extended */ +#define CAN_XIDFC_LSE_Msk (0x7Fu << CAN_XIDFC_LSE_Pos) +#define CAN_XIDFC_LSE(value) (CAN_XIDFC_LSE_Msk & ((value) << CAN_XIDFC_LSE_Pos)) +#define CAN_XIDFC_MASK 0x007FFFFFu /**< \brief (CAN_XIDFC) MASK Register */ + +/* -------- CAN_XIDAM : (CAN Offset: 0x90) (R/W 32) Extended ID AND Mask -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EIDM:29; /*!< bit: 0..28 Extended ID Mask */ + uint32_t :3; /*!< bit: 29..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_XIDAM_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_XIDAM_OFFSET 0x90 /**< \brief (CAN_XIDAM offset) Extended ID AND Mask */ +#define CAN_XIDAM_RESETVALUE 0x1FFFFFFFu /**< \brief (CAN_XIDAM reset_value) Extended ID AND Mask */ + +#define CAN_XIDAM_EIDM_Pos 0 /**< \brief (CAN_XIDAM) Extended ID Mask */ +#define CAN_XIDAM_EIDM_Msk (0x1FFFFFFFu << CAN_XIDAM_EIDM_Pos) +#define CAN_XIDAM_EIDM(value) (CAN_XIDAM_EIDM_Msk & ((value) << CAN_XIDAM_EIDM_Pos)) +#define CAN_XIDAM_MASK 0x1FFFFFFFu /**< \brief (CAN_XIDAM) MASK Register */ + +/* -------- CAN_HPMS : (CAN Offset: 0x94) (R/ 32) High Priority Message Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t BIDX:6; /*!< bit: 0.. 5 Buffer Index */ + uint32_t MSI:2; /*!< bit: 6.. 7 Message Storage Indicator */ + uint32_t FIDX:7; /*!< bit: 8..14 Filter Index */ + uint32_t FLST:1; /*!< bit: 15 Filter List */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_HPMS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_HPMS_OFFSET 0x94 /**< \brief (CAN_HPMS offset) High Priority Message Status */ +#define CAN_HPMS_RESETVALUE 0x00000000u /**< \brief (CAN_HPMS reset_value) High Priority Message Status */ + +#define CAN_HPMS_BIDX_Pos 0 /**< \brief (CAN_HPMS) Buffer Index */ +#define CAN_HPMS_BIDX_Msk (0x3Fu << CAN_HPMS_BIDX_Pos) +#define CAN_HPMS_BIDX(value) (CAN_HPMS_BIDX_Msk & ((value) << CAN_HPMS_BIDX_Pos)) +#define CAN_HPMS_MSI_Pos 6 /**< \brief (CAN_HPMS) Message Storage Indicator */ +#define CAN_HPMS_MSI_Msk (0x3u << CAN_HPMS_MSI_Pos) +#define CAN_HPMS_MSI(value) (CAN_HPMS_MSI_Msk & ((value) << CAN_HPMS_MSI_Pos)) +#define CAN_HPMS_MSI_NONE_Val 0x0u /**< \brief (CAN_HPMS) No FIFO selected */ +#define CAN_HPMS_MSI_LOST_Val 0x1u /**< \brief (CAN_HPMS) FIFO message lost */ +#define CAN_HPMS_MSI_FIFO0_Val 0x2u /**< \brief (CAN_HPMS) Message stored in FIFO 0 */ +#define CAN_HPMS_MSI_FIFO1_Val 0x3u /**< \brief (CAN_HPMS) Message stored in FIFO 1 */ +#define CAN_HPMS_MSI_NONE (CAN_HPMS_MSI_NONE_Val << CAN_HPMS_MSI_Pos) +#define CAN_HPMS_MSI_LOST (CAN_HPMS_MSI_LOST_Val << CAN_HPMS_MSI_Pos) +#define CAN_HPMS_MSI_FIFO0 (CAN_HPMS_MSI_FIFO0_Val << CAN_HPMS_MSI_Pos) +#define CAN_HPMS_MSI_FIFO1 (CAN_HPMS_MSI_FIFO1_Val << CAN_HPMS_MSI_Pos) +#define CAN_HPMS_FIDX_Pos 8 /**< \brief (CAN_HPMS) Filter Index */ +#define CAN_HPMS_FIDX_Msk (0x7Fu << CAN_HPMS_FIDX_Pos) +#define CAN_HPMS_FIDX(value) (CAN_HPMS_FIDX_Msk & ((value) << CAN_HPMS_FIDX_Pos)) +#define CAN_HPMS_FLST_Pos 15 /**< \brief (CAN_HPMS) Filter List */ +#define CAN_HPMS_FLST (0x1u << CAN_HPMS_FLST_Pos) +#define CAN_HPMS_MASK 0x0000FFFFu /**< \brief (CAN_HPMS) MASK Register */ + +/* -------- CAN_NDAT1 : (CAN Offset: 0x98) (R/W 32) New Data 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ND0:1; /*!< bit: 0 New Data 0 */ + uint32_t ND1:1; /*!< bit: 1 New Data 1 */ + uint32_t ND2:1; /*!< bit: 2 New Data 2 */ + uint32_t ND3:1; /*!< bit: 3 New Data 3 */ + uint32_t ND4:1; /*!< bit: 4 New Data 4 */ + uint32_t ND5:1; /*!< bit: 5 New Data 5 */ + uint32_t ND6:1; /*!< bit: 6 New Data 6 */ + uint32_t ND7:1; /*!< bit: 7 New Data 7 */ + uint32_t ND8:1; /*!< bit: 8 New Data 8 */ + uint32_t ND9:1; /*!< bit: 9 New Data 9 */ + uint32_t ND10:1; /*!< bit: 10 New Data 10 */ + uint32_t ND11:1; /*!< bit: 11 New Data 11 */ + uint32_t ND12:1; /*!< bit: 12 New Data 12 */ + uint32_t ND13:1; /*!< bit: 13 New Data 13 */ + uint32_t ND14:1; /*!< bit: 14 New Data 14 */ + uint32_t ND15:1; /*!< bit: 15 New Data 15 */ + uint32_t ND16:1; /*!< bit: 16 New Data 16 */ + uint32_t ND17:1; /*!< bit: 17 New Data 17 */ + uint32_t ND18:1; /*!< bit: 18 New Data 18 */ + uint32_t ND19:1; /*!< bit: 19 New Data 19 */ + uint32_t ND20:1; /*!< bit: 20 New Data 20 */ + uint32_t ND21:1; /*!< bit: 21 New Data 21 */ + uint32_t ND22:1; /*!< bit: 22 New Data 22 */ + uint32_t ND23:1; /*!< bit: 23 New Data 23 */ + uint32_t ND24:1; /*!< bit: 24 New Data 24 */ + uint32_t ND25:1; /*!< bit: 25 New Data 25 */ + uint32_t ND26:1; /*!< bit: 26 New Data 26 */ + uint32_t ND27:1; /*!< bit: 27 New Data 27 */ + uint32_t ND28:1; /*!< bit: 28 New Data 28 */ + uint32_t ND29:1; /*!< bit: 29 New Data 29 */ + uint32_t ND30:1; /*!< bit: 30 New Data 30 */ + uint32_t ND31:1; /*!< bit: 31 New Data 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_NDAT1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_NDAT1_OFFSET 0x98 /**< \brief (CAN_NDAT1 offset) New Data 1 */ +#define CAN_NDAT1_RESETVALUE 0x00000000u /**< \brief (CAN_NDAT1 reset_value) New Data 1 */ + +#define CAN_NDAT1_ND0_Pos 0 /**< \brief (CAN_NDAT1) New Data 0 */ +#define CAN_NDAT1_ND0 (0x1u << CAN_NDAT1_ND0_Pos) +#define CAN_NDAT1_ND1_Pos 1 /**< \brief (CAN_NDAT1) New Data 1 */ +#define CAN_NDAT1_ND1 (0x1u << CAN_NDAT1_ND1_Pos) +#define CAN_NDAT1_ND2_Pos 2 /**< \brief (CAN_NDAT1) New Data 2 */ +#define CAN_NDAT1_ND2 (0x1u << CAN_NDAT1_ND2_Pos) +#define CAN_NDAT1_ND3_Pos 3 /**< \brief (CAN_NDAT1) New Data 3 */ +#define CAN_NDAT1_ND3 (0x1u << CAN_NDAT1_ND3_Pos) +#define CAN_NDAT1_ND4_Pos 4 /**< \brief (CAN_NDAT1) New Data 4 */ +#define CAN_NDAT1_ND4 (0x1u << CAN_NDAT1_ND4_Pos) +#define CAN_NDAT1_ND5_Pos 5 /**< \brief (CAN_NDAT1) New Data 5 */ +#define CAN_NDAT1_ND5 (0x1u << CAN_NDAT1_ND5_Pos) +#define CAN_NDAT1_ND6_Pos 6 /**< \brief (CAN_NDAT1) New Data 6 */ +#define CAN_NDAT1_ND6 (0x1u << CAN_NDAT1_ND6_Pos) +#define CAN_NDAT1_ND7_Pos 7 /**< \brief (CAN_NDAT1) New Data 7 */ +#define CAN_NDAT1_ND7 (0x1u << CAN_NDAT1_ND7_Pos) +#define CAN_NDAT1_ND8_Pos 8 /**< \brief (CAN_NDAT1) New Data 8 */ +#define CAN_NDAT1_ND8 (0x1u << CAN_NDAT1_ND8_Pos) +#define CAN_NDAT1_ND9_Pos 9 /**< \brief (CAN_NDAT1) New Data 9 */ +#define CAN_NDAT1_ND9 (0x1u << CAN_NDAT1_ND9_Pos) +#define CAN_NDAT1_ND10_Pos 10 /**< \brief (CAN_NDAT1) New Data 10 */ +#define CAN_NDAT1_ND10 (0x1u << CAN_NDAT1_ND10_Pos) +#define CAN_NDAT1_ND11_Pos 11 /**< \brief (CAN_NDAT1) New Data 11 */ +#define CAN_NDAT1_ND11 (0x1u << CAN_NDAT1_ND11_Pos) +#define CAN_NDAT1_ND12_Pos 12 /**< \brief (CAN_NDAT1) New Data 12 */ +#define CAN_NDAT1_ND12 (0x1u << CAN_NDAT1_ND12_Pos) +#define CAN_NDAT1_ND13_Pos 13 /**< \brief (CAN_NDAT1) New Data 13 */ +#define CAN_NDAT1_ND13 (0x1u << CAN_NDAT1_ND13_Pos) +#define CAN_NDAT1_ND14_Pos 14 /**< \brief (CAN_NDAT1) New Data 14 */ +#define CAN_NDAT1_ND14 (0x1u << CAN_NDAT1_ND14_Pos) +#define CAN_NDAT1_ND15_Pos 15 /**< \brief (CAN_NDAT1) New Data 15 */ +#define CAN_NDAT1_ND15 (0x1u << CAN_NDAT1_ND15_Pos) +#define CAN_NDAT1_ND16_Pos 16 /**< \brief (CAN_NDAT1) New Data 16 */ +#define CAN_NDAT1_ND16 (0x1u << CAN_NDAT1_ND16_Pos) +#define CAN_NDAT1_ND17_Pos 17 /**< \brief (CAN_NDAT1) New Data 17 */ +#define CAN_NDAT1_ND17 (0x1u << CAN_NDAT1_ND17_Pos) +#define CAN_NDAT1_ND18_Pos 18 /**< \brief (CAN_NDAT1) New Data 18 */ +#define CAN_NDAT1_ND18 (0x1u << CAN_NDAT1_ND18_Pos) +#define CAN_NDAT1_ND19_Pos 19 /**< \brief (CAN_NDAT1) New Data 19 */ +#define CAN_NDAT1_ND19 (0x1u << CAN_NDAT1_ND19_Pos) +#define CAN_NDAT1_ND20_Pos 20 /**< \brief (CAN_NDAT1) New Data 20 */ +#define CAN_NDAT1_ND20 (0x1u << CAN_NDAT1_ND20_Pos) +#define CAN_NDAT1_ND21_Pos 21 /**< \brief (CAN_NDAT1) New Data 21 */ +#define CAN_NDAT1_ND21 (0x1u << CAN_NDAT1_ND21_Pos) +#define CAN_NDAT1_ND22_Pos 22 /**< \brief (CAN_NDAT1) New Data 22 */ +#define CAN_NDAT1_ND22 (0x1u << CAN_NDAT1_ND22_Pos) +#define CAN_NDAT1_ND23_Pos 23 /**< \brief (CAN_NDAT1) New Data 23 */ +#define CAN_NDAT1_ND23 (0x1u << CAN_NDAT1_ND23_Pos) +#define CAN_NDAT1_ND24_Pos 24 /**< \brief (CAN_NDAT1) New Data 24 */ +#define CAN_NDAT1_ND24 (0x1u << CAN_NDAT1_ND24_Pos) +#define CAN_NDAT1_ND25_Pos 25 /**< \brief (CAN_NDAT1) New Data 25 */ +#define CAN_NDAT1_ND25 (0x1u << CAN_NDAT1_ND25_Pos) +#define CAN_NDAT1_ND26_Pos 26 /**< \brief (CAN_NDAT1) New Data 26 */ +#define CAN_NDAT1_ND26 (0x1u << CAN_NDAT1_ND26_Pos) +#define CAN_NDAT1_ND27_Pos 27 /**< \brief (CAN_NDAT1) New Data 27 */ +#define CAN_NDAT1_ND27 (0x1u << CAN_NDAT1_ND27_Pos) +#define CAN_NDAT1_ND28_Pos 28 /**< \brief (CAN_NDAT1) New Data 28 */ +#define CAN_NDAT1_ND28 (0x1u << CAN_NDAT1_ND28_Pos) +#define CAN_NDAT1_ND29_Pos 29 /**< \brief (CAN_NDAT1) New Data 29 */ +#define CAN_NDAT1_ND29 (0x1u << CAN_NDAT1_ND29_Pos) +#define CAN_NDAT1_ND30_Pos 30 /**< \brief (CAN_NDAT1) New Data 30 */ +#define CAN_NDAT1_ND30 (0x1u << CAN_NDAT1_ND30_Pos) +#define CAN_NDAT1_ND31_Pos 31 /**< \brief (CAN_NDAT1) New Data 31 */ +#define CAN_NDAT1_ND31 (0x1u << CAN_NDAT1_ND31_Pos) +#define CAN_NDAT1_MASK 0xFFFFFFFFu /**< \brief (CAN_NDAT1) MASK Register */ + +/* -------- CAN_NDAT2 : (CAN Offset: 0x9C) (R/W 32) New Data 2 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ND32:1; /*!< bit: 0 New Data 32 */ + uint32_t ND33:1; /*!< bit: 1 New Data 33 */ + uint32_t ND34:1; /*!< bit: 2 New Data 34 */ + uint32_t ND35:1; /*!< bit: 3 New Data 35 */ + uint32_t ND36:1; /*!< bit: 4 New Data 36 */ + uint32_t ND37:1; /*!< bit: 5 New Data 37 */ + uint32_t ND38:1; /*!< bit: 6 New Data 38 */ + uint32_t ND39:1; /*!< bit: 7 New Data 39 */ + uint32_t ND40:1; /*!< bit: 8 New Data 40 */ + uint32_t ND41:1; /*!< bit: 9 New Data 41 */ + uint32_t ND42:1; /*!< bit: 10 New Data 42 */ + uint32_t ND43:1; /*!< bit: 11 New Data 43 */ + uint32_t ND44:1; /*!< bit: 12 New Data 44 */ + uint32_t ND45:1; /*!< bit: 13 New Data 45 */ + uint32_t ND46:1; /*!< bit: 14 New Data 46 */ + uint32_t ND47:1; /*!< bit: 15 New Data 47 */ + uint32_t ND48:1; /*!< bit: 16 New Data 48 */ + uint32_t ND49:1; /*!< bit: 17 New Data 49 */ + uint32_t ND50:1; /*!< bit: 18 New Data 50 */ + uint32_t ND51:1; /*!< bit: 19 New Data 51 */ + uint32_t ND52:1; /*!< bit: 20 New Data 52 */ + uint32_t ND53:1; /*!< bit: 21 New Data 53 */ + uint32_t ND54:1; /*!< bit: 22 New Data 54 */ + uint32_t ND55:1; /*!< bit: 23 New Data 55 */ + uint32_t ND56:1; /*!< bit: 24 New Data 56 */ + uint32_t ND57:1; /*!< bit: 25 New Data 57 */ + uint32_t ND58:1; /*!< bit: 26 New Data 58 */ + uint32_t ND59:1; /*!< bit: 27 New Data 59 */ + uint32_t ND60:1; /*!< bit: 28 New Data 60 */ + uint32_t ND61:1; /*!< bit: 29 New Data 61 */ + uint32_t ND62:1; /*!< bit: 30 New Data 62 */ + uint32_t ND63:1; /*!< bit: 31 New Data 63 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_NDAT2_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_NDAT2_OFFSET 0x9C /**< \brief (CAN_NDAT2 offset) New Data 2 */ +#define CAN_NDAT2_RESETVALUE 0x00000000u /**< \brief (CAN_NDAT2 reset_value) New Data 2 */ + +#define CAN_NDAT2_ND32_Pos 0 /**< \brief (CAN_NDAT2) New Data 32 */ +#define CAN_NDAT2_ND32 (0x1u << CAN_NDAT2_ND32_Pos) +#define CAN_NDAT2_ND33_Pos 1 /**< \brief (CAN_NDAT2) New Data 33 */ +#define CAN_NDAT2_ND33 (0x1u << CAN_NDAT2_ND33_Pos) +#define CAN_NDAT2_ND34_Pos 2 /**< \brief (CAN_NDAT2) New Data 34 */ +#define CAN_NDAT2_ND34 (0x1u << CAN_NDAT2_ND34_Pos) +#define CAN_NDAT2_ND35_Pos 3 /**< \brief (CAN_NDAT2) New Data 35 */ +#define CAN_NDAT2_ND35 (0x1u << CAN_NDAT2_ND35_Pos) +#define CAN_NDAT2_ND36_Pos 4 /**< \brief (CAN_NDAT2) New Data 36 */ +#define CAN_NDAT2_ND36 (0x1u << CAN_NDAT2_ND36_Pos) +#define CAN_NDAT2_ND37_Pos 5 /**< \brief (CAN_NDAT2) New Data 37 */ +#define CAN_NDAT2_ND37 (0x1u << CAN_NDAT2_ND37_Pos) +#define CAN_NDAT2_ND38_Pos 6 /**< \brief (CAN_NDAT2) New Data 38 */ +#define CAN_NDAT2_ND38 (0x1u << CAN_NDAT2_ND38_Pos) +#define CAN_NDAT2_ND39_Pos 7 /**< \brief (CAN_NDAT2) New Data 39 */ +#define CAN_NDAT2_ND39 (0x1u << CAN_NDAT2_ND39_Pos) +#define CAN_NDAT2_ND40_Pos 8 /**< \brief (CAN_NDAT2) New Data 40 */ +#define CAN_NDAT2_ND40 (0x1u << CAN_NDAT2_ND40_Pos) +#define CAN_NDAT2_ND41_Pos 9 /**< \brief (CAN_NDAT2) New Data 41 */ +#define CAN_NDAT2_ND41 (0x1u << CAN_NDAT2_ND41_Pos) +#define CAN_NDAT2_ND42_Pos 10 /**< \brief (CAN_NDAT2) New Data 42 */ +#define CAN_NDAT2_ND42 (0x1u << CAN_NDAT2_ND42_Pos) +#define CAN_NDAT2_ND43_Pos 11 /**< \brief (CAN_NDAT2) New Data 43 */ +#define CAN_NDAT2_ND43 (0x1u << CAN_NDAT2_ND43_Pos) +#define CAN_NDAT2_ND44_Pos 12 /**< \brief (CAN_NDAT2) New Data 44 */ +#define CAN_NDAT2_ND44 (0x1u << CAN_NDAT2_ND44_Pos) +#define CAN_NDAT2_ND45_Pos 13 /**< \brief (CAN_NDAT2) New Data 45 */ +#define CAN_NDAT2_ND45 (0x1u << CAN_NDAT2_ND45_Pos) +#define CAN_NDAT2_ND46_Pos 14 /**< \brief (CAN_NDAT2) New Data 46 */ +#define CAN_NDAT2_ND46 (0x1u << CAN_NDAT2_ND46_Pos) +#define CAN_NDAT2_ND47_Pos 15 /**< \brief (CAN_NDAT2) New Data 47 */ +#define CAN_NDAT2_ND47 (0x1u << CAN_NDAT2_ND47_Pos) +#define CAN_NDAT2_ND48_Pos 16 /**< \brief (CAN_NDAT2) New Data 48 */ +#define CAN_NDAT2_ND48 (0x1u << CAN_NDAT2_ND48_Pos) +#define CAN_NDAT2_ND49_Pos 17 /**< \brief (CAN_NDAT2) New Data 49 */ +#define CAN_NDAT2_ND49 (0x1u << CAN_NDAT2_ND49_Pos) +#define CAN_NDAT2_ND50_Pos 18 /**< \brief (CAN_NDAT2) New Data 50 */ +#define CAN_NDAT2_ND50 (0x1u << CAN_NDAT2_ND50_Pos) +#define CAN_NDAT2_ND51_Pos 19 /**< \brief (CAN_NDAT2) New Data 51 */ +#define CAN_NDAT2_ND51 (0x1u << CAN_NDAT2_ND51_Pos) +#define CAN_NDAT2_ND52_Pos 20 /**< \brief (CAN_NDAT2) New Data 52 */ +#define CAN_NDAT2_ND52 (0x1u << CAN_NDAT2_ND52_Pos) +#define CAN_NDAT2_ND53_Pos 21 /**< \brief (CAN_NDAT2) New Data 53 */ +#define CAN_NDAT2_ND53 (0x1u << CAN_NDAT2_ND53_Pos) +#define CAN_NDAT2_ND54_Pos 22 /**< \brief (CAN_NDAT2) New Data 54 */ +#define CAN_NDAT2_ND54 (0x1u << CAN_NDAT2_ND54_Pos) +#define CAN_NDAT2_ND55_Pos 23 /**< \brief (CAN_NDAT2) New Data 55 */ +#define CAN_NDAT2_ND55 (0x1u << CAN_NDAT2_ND55_Pos) +#define CAN_NDAT2_ND56_Pos 24 /**< \brief (CAN_NDAT2) New Data 56 */ +#define CAN_NDAT2_ND56 (0x1u << CAN_NDAT2_ND56_Pos) +#define CAN_NDAT2_ND57_Pos 25 /**< \brief (CAN_NDAT2) New Data 57 */ +#define CAN_NDAT2_ND57 (0x1u << CAN_NDAT2_ND57_Pos) +#define CAN_NDAT2_ND58_Pos 26 /**< \brief (CAN_NDAT2) New Data 58 */ +#define CAN_NDAT2_ND58 (0x1u << CAN_NDAT2_ND58_Pos) +#define CAN_NDAT2_ND59_Pos 27 /**< \brief (CAN_NDAT2) New Data 59 */ +#define CAN_NDAT2_ND59 (0x1u << CAN_NDAT2_ND59_Pos) +#define CAN_NDAT2_ND60_Pos 28 /**< \brief (CAN_NDAT2) New Data 60 */ +#define CAN_NDAT2_ND60 (0x1u << CAN_NDAT2_ND60_Pos) +#define CAN_NDAT2_ND61_Pos 29 /**< \brief (CAN_NDAT2) New Data 61 */ +#define CAN_NDAT2_ND61 (0x1u << CAN_NDAT2_ND61_Pos) +#define CAN_NDAT2_ND62_Pos 30 /**< \brief (CAN_NDAT2) New Data 62 */ +#define CAN_NDAT2_ND62 (0x1u << CAN_NDAT2_ND62_Pos) +#define CAN_NDAT2_ND63_Pos 31 /**< \brief (CAN_NDAT2) New Data 63 */ +#define CAN_NDAT2_ND63 (0x1u << CAN_NDAT2_ND63_Pos) +#define CAN_NDAT2_MASK 0xFFFFFFFFu /**< \brief (CAN_NDAT2) MASK Register */ + +/* -------- CAN_RXF0C : (CAN Offset: 0xA0) (R/W 32) Rx FIFO 0 Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F0SA:16; /*!< bit: 0..15 Rx FIFO 0 Start Address */ + uint32_t F0S:7; /*!< bit: 16..22 Rx FIFO 0 Size */ + uint32_t :1; /*!< bit: 23 Reserved */ + uint32_t F0WM:7; /*!< bit: 24..30 Rx FIFO 0 Watermark */ + uint32_t F0OM:1; /*!< bit: 31 FIFO 0 Operation Mode */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0C_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0C_OFFSET 0xA0 /**< \brief (CAN_RXF0C offset) Rx FIFO 0 Configuration */ +#define CAN_RXF0C_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0C reset_value) Rx FIFO 0 Configuration */ + +#define CAN_RXF0C_F0SA_Pos 0 /**< \brief (CAN_RXF0C) Rx FIFO 0 Start Address */ +#define CAN_RXF0C_F0SA_Msk (0xFFFFu << CAN_RXF0C_F0SA_Pos) +#define CAN_RXF0C_F0SA(value) (CAN_RXF0C_F0SA_Msk & ((value) << CAN_RXF0C_F0SA_Pos)) +#define CAN_RXF0C_F0S_Pos 16 /**< \brief (CAN_RXF0C) Rx FIFO 0 Size */ +#define CAN_RXF0C_F0S_Msk (0x7Fu << CAN_RXF0C_F0S_Pos) +#define CAN_RXF0C_F0S(value) (CAN_RXF0C_F0S_Msk & ((value) << CAN_RXF0C_F0S_Pos)) +#define CAN_RXF0C_F0WM_Pos 24 /**< \brief (CAN_RXF0C) Rx FIFO 0 Watermark */ +#define CAN_RXF0C_F0WM_Msk (0x7Fu << CAN_RXF0C_F0WM_Pos) +#define CAN_RXF0C_F0WM(value) (CAN_RXF0C_F0WM_Msk & ((value) << CAN_RXF0C_F0WM_Pos)) +#define CAN_RXF0C_F0OM_Pos 31 /**< \brief (CAN_RXF0C) FIFO 0 Operation Mode */ +#define CAN_RXF0C_F0OM (0x1u << CAN_RXF0C_F0OM_Pos) +#define CAN_RXF0C_MASK 0xFF7FFFFFu /**< \brief (CAN_RXF0C) MASK Register */ + +/* -------- CAN_RXF0S : (CAN Offset: 0xA4) (R/ 32) Rx FIFO 0 Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F0FL:7; /*!< bit: 0.. 6 Rx FIFO 0 Fill Level */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t F0GI:6; /*!< bit: 8..13 Rx FIFO 0 Get Index */ + uint32_t :2; /*!< bit: 14..15 Reserved */ + uint32_t F0PI:6; /*!< bit: 16..21 Rx FIFO 0 Put Index */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t F0F:1; /*!< bit: 24 Rx FIFO 0 Full */ + uint32_t RF0L:1; /*!< bit: 25 Rx FIFO 0 Message Lost */ + uint32_t :6; /*!< bit: 26..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0S_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0S_OFFSET 0xA4 /**< \brief (CAN_RXF0S offset) Rx FIFO 0 Status */ +#define CAN_RXF0S_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0S reset_value) Rx FIFO 0 Status */ + +#define CAN_RXF0S_F0FL_Pos 0 /**< \brief (CAN_RXF0S) Rx FIFO 0 Fill Level */ +#define CAN_RXF0S_F0FL_Msk (0x7Fu << CAN_RXF0S_F0FL_Pos) +#define CAN_RXF0S_F0FL(value) (CAN_RXF0S_F0FL_Msk & ((value) << CAN_RXF0S_F0FL_Pos)) +#define CAN_RXF0S_F0GI_Pos 8 /**< \brief (CAN_RXF0S) Rx FIFO 0 Get Index */ +#define CAN_RXF0S_F0GI_Msk (0x3Fu << CAN_RXF0S_F0GI_Pos) +#define CAN_RXF0S_F0GI(value) (CAN_RXF0S_F0GI_Msk & ((value) << CAN_RXF0S_F0GI_Pos)) +#define CAN_RXF0S_F0PI_Pos 16 /**< \brief (CAN_RXF0S) Rx FIFO 0 Put Index */ +#define CAN_RXF0S_F0PI_Msk (0x3Fu << CAN_RXF0S_F0PI_Pos) +#define CAN_RXF0S_F0PI(value) (CAN_RXF0S_F0PI_Msk & ((value) << CAN_RXF0S_F0PI_Pos)) +#define CAN_RXF0S_F0F_Pos 24 /**< \brief (CAN_RXF0S) Rx FIFO 0 Full */ +#define CAN_RXF0S_F0F (0x1u << CAN_RXF0S_F0F_Pos) +#define CAN_RXF0S_RF0L_Pos 25 /**< \brief (CAN_RXF0S) Rx FIFO 0 Message Lost */ +#define CAN_RXF0S_RF0L (0x1u << CAN_RXF0S_RF0L_Pos) +#define CAN_RXF0S_MASK 0x033F3F7Fu /**< \brief (CAN_RXF0S) MASK Register */ + +/* -------- CAN_RXF0A : (CAN Offset: 0xA8) (R/W 32) Rx FIFO 0 Acknowledge -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F0AI:6; /*!< bit: 0.. 5 Rx FIFO 0 Acknowledge Index */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0A_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0A_OFFSET 0xA8 /**< \brief (CAN_RXF0A offset) Rx FIFO 0 Acknowledge */ +#define CAN_RXF0A_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0A reset_value) Rx FIFO 0 Acknowledge */ + +#define CAN_RXF0A_F0AI_Pos 0 /**< \brief (CAN_RXF0A) Rx FIFO 0 Acknowledge Index */ +#define CAN_RXF0A_F0AI_Msk (0x3Fu << CAN_RXF0A_F0AI_Pos) +#define CAN_RXF0A_F0AI(value) (CAN_RXF0A_F0AI_Msk & ((value) << CAN_RXF0A_F0AI_Pos)) +#define CAN_RXF0A_MASK 0x0000003Fu /**< \brief (CAN_RXF0A) MASK Register */ + +/* -------- CAN_RXBC : (CAN Offset: 0xAC) (R/W 32) Rx Buffer Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RBSA:16; /*!< bit: 0..15 Rx Buffer Start Address */ + uint32_t :16; /*!< bit: 16..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXBC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXBC_OFFSET 0xAC /**< \brief (CAN_RXBC offset) Rx Buffer Configuration */ +#define CAN_RXBC_RESETVALUE 0x00000000u /**< \brief (CAN_RXBC reset_value) Rx Buffer Configuration */ + +#define CAN_RXBC_RBSA_Pos 0 /**< \brief (CAN_RXBC) Rx Buffer Start Address */ +#define CAN_RXBC_RBSA_Msk (0xFFFFu << CAN_RXBC_RBSA_Pos) +#define CAN_RXBC_RBSA(value) (CAN_RXBC_RBSA_Msk & ((value) << CAN_RXBC_RBSA_Pos)) +#define CAN_RXBC_MASK 0x0000FFFFu /**< \brief (CAN_RXBC) MASK Register */ + +/* -------- CAN_RXF1C : (CAN Offset: 0xB0) (R/W 32) Rx FIFO 1 Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F1SA:16; /*!< bit: 0..15 Rx FIFO 1 Start Address */ + uint32_t F1S:7; /*!< bit: 16..22 Rx FIFO 1 Size */ + uint32_t :1; /*!< bit: 23 Reserved */ + uint32_t F1WM:7; /*!< bit: 24..30 Rx FIFO 1 Watermark */ + uint32_t F1OM:1; /*!< bit: 31 FIFO 1 Operation Mode */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1C_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1C_OFFSET 0xB0 /**< \brief (CAN_RXF1C offset) Rx FIFO 1 Configuration */ +#define CAN_RXF1C_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1C reset_value) Rx FIFO 1 Configuration */ + +#define CAN_RXF1C_F1SA_Pos 0 /**< \brief (CAN_RXF1C) Rx FIFO 1 Start Address */ +#define CAN_RXF1C_F1SA_Msk (0xFFFFu << CAN_RXF1C_F1SA_Pos) +#define CAN_RXF1C_F1SA(value) (CAN_RXF1C_F1SA_Msk & ((value) << CAN_RXF1C_F1SA_Pos)) +#define CAN_RXF1C_F1S_Pos 16 /**< \brief (CAN_RXF1C) Rx FIFO 1 Size */ +#define CAN_RXF1C_F1S_Msk (0x7Fu << CAN_RXF1C_F1S_Pos) +#define CAN_RXF1C_F1S(value) (CAN_RXF1C_F1S_Msk & ((value) << CAN_RXF1C_F1S_Pos)) +#define CAN_RXF1C_F1WM_Pos 24 /**< \brief (CAN_RXF1C) Rx FIFO 1 Watermark */ +#define CAN_RXF1C_F1WM_Msk (0x7Fu << CAN_RXF1C_F1WM_Pos) +#define CAN_RXF1C_F1WM(value) (CAN_RXF1C_F1WM_Msk & ((value) << CAN_RXF1C_F1WM_Pos)) +#define CAN_RXF1C_F1OM_Pos 31 /**< \brief (CAN_RXF1C) FIFO 1 Operation Mode */ +#define CAN_RXF1C_F1OM (0x1u << CAN_RXF1C_F1OM_Pos) +#define CAN_RXF1C_MASK 0xFF7FFFFFu /**< \brief (CAN_RXF1C) MASK Register */ + +/* -------- CAN_RXF1S : (CAN Offset: 0xB4) (R/ 32) Rx FIFO 1 Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F1FL:7; /*!< bit: 0.. 6 Rx FIFO 1 Fill Level */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t F1GI:6; /*!< bit: 8..13 Rx FIFO 1 Get Index */ + uint32_t :2; /*!< bit: 14..15 Reserved */ + uint32_t F1PI:6; /*!< bit: 16..21 Rx FIFO 1 Put Index */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t F1F:1; /*!< bit: 24 Rx FIFO 1 Full */ + uint32_t RF1L:1; /*!< bit: 25 Rx FIFO 1 Message Lost */ + uint32_t :4; /*!< bit: 26..29 Reserved */ + uint32_t DMS:2; /*!< bit: 30..31 Debug Message Status */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1S_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1S_OFFSET 0xB4 /**< \brief (CAN_RXF1S offset) Rx FIFO 1 Status */ +#define CAN_RXF1S_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1S reset_value) Rx FIFO 1 Status */ + +#define CAN_RXF1S_F1FL_Pos 0 /**< \brief (CAN_RXF1S) Rx FIFO 1 Fill Level */ +#define CAN_RXF1S_F1FL_Msk (0x7Fu << CAN_RXF1S_F1FL_Pos) +#define CAN_RXF1S_F1FL(value) (CAN_RXF1S_F1FL_Msk & ((value) << CAN_RXF1S_F1FL_Pos)) +#define CAN_RXF1S_F1GI_Pos 8 /**< \brief (CAN_RXF1S) Rx FIFO 1 Get Index */ +#define CAN_RXF1S_F1GI_Msk (0x3Fu << CAN_RXF1S_F1GI_Pos) +#define CAN_RXF1S_F1GI(value) (CAN_RXF1S_F1GI_Msk & ((value) << CAN_RXF1S_F1GI_Pos)) +#define CAN_RXF1S_F1PI_Pos 16 /**< \brief (CAN_RXF1S) Rx FIFO 1 Put Index */ +#define CAN_RXF1S_F1PI_Msk (0x3Fu << CAN_RXF1S_F1PI_Pos) +#define CAN_RXF1S_F1PI(value) (CAN_RXF1S_F1PI_Msk & ((value) << CAN_RXF1S_F1PI_Pos)) +#define CAN_RXF1S_F1F_Pos 24 /**< \brief (CAN_RXF1S) Rx FIFO 1 Full */ +#define CAN_RXF1S_F1F (0x1u << CAN_RXF1S_F1F_Pos) +#define CAN_RXF1S_RF1L_Pos 25 /**< \brief (CAN_RXF1S) Rx FIFO 1 Message Lost */ +#define CAN_RXF1S_RF1L (0x1u << CAN_RXF1S_RF1L_Pos) +#define CAN_RXF1S_DMS_Pos 30 /**< \brief (CAN_RXF1S) Debug Message Status */ +#define CAN_RXF1S_DMS_Msk (0x3u << CAN_RXF1S_DMS_Pos) +#define CAN_RXF1S_DMS(value) (CAN_RXF1S_DMS_Msk & ((value) << CAN_RXF1S_DMS_Pos)) +#define CAN_RXF1S_DMS_IDLE_Val 0x0u /**< \brief (CAN_RXF1S) Idle state */ +#define CAN_RXF1S_DMS_DBGA_Val 0x1u /**< \brief (CAN_RXF1S) Debug message A received */ +#define CAN_RXF1S_DMS_DBGB_Val 0x2u /**< \brief (CAN_RXF1S) Debug message A/B received */ +#define CAN_RXF1S_DMS_DBGC_Val 0x3u /**< \brief (CAN_RXF1S) Debug message A/B/C received, DMA request set */ +#define CAN_RXF1S_DMS_IDLE (CAN_RXF1S_DMS_IDLE_Val << CAN_RXF1S_DMS_Pos) +#define CAN_RXF1S_DMS_DBGA (CAN_RXF1S_DMS_DBGA_Val << CAN_RXF1S_DMS_Pos) +#define CAN_RXF1S_DMS_DBGB (CAN_RXF1S_DMS_DBGB_Val << CAN_RXF1S_DMS_Pos) +#define CAN_RXF1S_DMS_DBGC (CAN_RXF1S_DMS_DBGC_Val << CAN_RXF1S_DMS_Pos) +#define CAN_RXF1S_MASK 0xC33F3F7Fu /**< \brief (CAN_RXF1S) MASK Register */ + +/* -------- CAN_RXF1A : (CAN Offset: 0xB8) (R/W 32) Rx FIFO 1 Acknowledge -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F1AI:6; /*!< bit: 0.. 5 Rx FIFO 1 Acknowledge Index */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1A_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1A_OFFSET 0xB8 /**< \brief (CAN_RXF1A offset) Rx FIFO 1 Acknowledge */ +#define CAN_RXF1A_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1A reset_value) Rx FIFO 1 Acknowledge */ + +#define CAN_RXF1A_F1AI_Pos 0 /**< \brief (CAN_RXF1A) Rx FIFO 1 Acknowledge Index */ +#define CAN_RXF1A_F1AI_Msk (0x3Fu << CAN_RXF1A_F1AI_Pos) +#define CAN_RXF1A_F1AI(value) (CAN_RXF1A_F1AI_Msk & ((value) << CAN_RXF1A_F1AI_Pos)) +#define CAN_RXF1A_MASK 0x0000003Fu /**< \brief (CAN_RXF1A) MASK Register */ + +/* -------- CAN_RXESC : (CAN Offset: 0xBC) (R/W 32) Rx Buffer / FIFO Element Size Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t F0DS:3; /*!< bit: 0.. 2 Rx FIFO 0 Data Field Size */ + uint32_t :1; /*!< bit: 3 Reserved */ + uint32_t F1DS:3; /*!< bit: 4.. 6 Rx FIFO 1 Data Field Size */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t RBDS:3; /*!< bit: 8..10 Rx Buffer Data Field Size */ + uint32_t :21; /*!< bit: 11..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXESC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXESC_OFFSET 0xBC /**< \brief (CAN_RXESC offset) Rx Buffer / FIFO Element Size Configuration */ +#define CAN_RXESC_RESETVALUE 0x00000000u /**< \brief (CAN_RXESC reset_value) Rx Buffer / FIFO Element Size Configuration */ + +#define CAN_RXESC_F0DS_Pos 0 /**< \brief (CAN_RXESC) Rx FIFO 0 Data Field Size */ +#define CAN_RXESC_F0DS_Msk (0x7u << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS(value) (CAN_RXESC_F0DS_Msk & ((value) << CAN_RXESC_F0DS_Pos)) +#define CAN_RXESC_F0DS_DATA8_Val 0x0u /**< \brief (CAN_RXESC) 8 byte data field */ +#define CAN_RXESC_F0DS_DATA12_Val 0x1u /**< \brief (CAN_RXESC) 12 byte data field */ +#define CAN_RXESC_F0DS_DATA16_Val 0x2u /**< \brief (CAN_RXESC) 16 byte data field */ +#define CAN_RXESC_F0DS_DATA20_Val 0x3u /**< \brief (CAN_RXESC) 20 byte data field */ +#define CAN_RXESC_F0DS_DATA24_Val 0x4u /**< \brief (CAN_RXESC) 24 byte data field */ +#define CAN_RXESC_F0DS_DATA32_Val 0x5u /**< \brief (CAN_RXESC) 32 byte data field */ +#define CAN_RXESC_F0DS_DATA48_Val 0x6u /**< \brief (CAN_RXESC) 48 byte data field */ +#define CAN_RXESC_F0DS_DATA64_Val 0x7u /**< \brief (CAN_RXESC) 64 byte data field */ +#define CAN_RXESC_F0DS_DATA8 (CAN_RXESC_F0DS_DATA8_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA12 (CAN_RXESC_F0DS_DATA12_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA16 (CAN_RXESC_F0DS_DATA16_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA20 (CAN_RXESC_F0DS_DATA20_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA24 (CAN_RXESC_F0DS_DATA24_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA32 (CAN_RXESC_F0DS_DATA32_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA48 (CAN_RXESC_F0DS_DATA48_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F0DS_DATA64 (CAN_RXESC_F0DS_DATA64_Val << CAN_RXESC_F0DS_Pos) +#define CAN_RXESC_F1DS_Pos 4 /**< \brief (CAN_RXESC) Rx FIFO 1 Data Field Size */ +#define CAN_RXESC_F1DS_Msk (0x7u << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS(value) (CAN_RXESC_F1DS_Msk & ((value) << CAN_RXESC_F1DS_Pos)) +#define CAN_RXESC_F1DS_DATA8_Val 0x0u /**< \brief (CAN_RXESC) 8 byte data field */ +#define CAN_RXESC_F1DS_DATA12_Val 0x1u /**< \brief (CAN_RXESC) 12 byte data field */ +#define CAN_RXESC_F1DS_DATA16_Val 0x2u /**< \brief (CAN_RXESC) 16 byte data field */ +#define CAN_RXESC_F1DS_DATA20_Val 0x3u /**< \brief (CAN_RXESC) 20 byte data field */ +#define CAN_RXESC_F1DS_DATA24_Val 0x4u /**< \brief (CAN_RXESC) 24 byte data field */ +#define CAN_RXESC_F1DS_DATA32_Val 0x5u /**< \brief (CAN_RXESC) 32 byte data field */ +#define CAN_RXESC_F1DS_DATA48_Val 0x6u /**< \brief (CAN_RXESC) 48 byte data field */ +#define CAN_RXESC_F1DS_DATA64_Val 0x7u /**< \brief (CAN_RXESC) 64 byte data field */ +#define CAN_RXESC_F1DS_DATA8 (CAN_RXESC_F1DS_DATA8_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA12 (CAN_RXESC_F1DS_DATA12_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA16 (CAN_RXESC_F1DS_DATA16_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA20 (CAN_RXESC_F1DS_DATA20_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA24 (CAN_RXESC_F1DS_DATA24_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA32 (CAN_RXESC_F1DS_DATA32_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA48 (CAN_RXESC_F1DS_DATA48_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_F1DS_DATA64 (CAN_RXESC_F1DS_DATA64_Val << CAN_RXESC_F1DS_Pos) +#define CAN_RXESC_RBDS_Pos 8 /**< \brief (CAN_RXESC) Rx Buffer Data Field Size */ +#define CAN_RXESC_RBDS_Msk (0x7u << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS(value) (CAN_RXESC_RBDS_Msk & ((value) << CAN_RXESC_RBDS_Pos)) +#define CAN_RXESC_RBDS_DATA8_Val 0x0u /**< \brief (CAN_RXESC) 8 byte data field */ +#define CAN_RXESC_RBDS_DATA12_Val 0x1u /**< \brief (CAN_RXESC) 12 byte data field */ +#define CAN_RXESC_RBDS_DATA16_Val 0x2u /**< \brief (CAN_RXESC) 16 byte data field */ +#define CAN_RXESC_RBDS_DATA20_Val 0x3u /**< \brief (CAN_RXESC) 20 byte data field */ +#define CAN_RXESC_RBDS_DATA24_Val 0x4u /**< \brief (CAN_RXESC) 24 byte data field */ +#define CAN_RXESC_RBDS_DATA32_Val 0x5u /**< \brief (CAN_RXESC) 32 byte data field */ +#define CAN_RXESC_RBDS_DATA48_Val 0x6u /**< \brief (CAN_RXESC) 48 byte data field */ +#define CAN_RXESC_RBDS_DATA64_Val 0x7u /**< \brief (CAN_RXESC) 64 byte data field */ +#define CAN_RXESC_RBDS_DATA8 (CAN_RXESC_RBDS_DATA8_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA12 (CAN_RXESC_RBDS_DATA12_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA16 (CAN_RXESC_RBDS_DATA16_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA20 (CAN_RXESC_RBDS_DATA20_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA24 (CAN_RXESC_RBDS_DATA24_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA32 (CAN_RXESC_RBDS_DATA32_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA48 (CAN_RXESC_RBDS_DATA48_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_RBDS_DATA64 (CAN_RXESC_RBDS_DATA64_Val << CAN_RXESC_RBDS_Pos) +#define CAN_RXESC_MASK 0x00000777u /**< \brief (CAN_RXESC) MASK Register */ + +/* -------- CAN_TXBC : (CAN Offset: 0xC0) (R/W 32) Tx Buffer Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TBSA:16; /*!< bit: 0..15 Tx Buffers Start Address */ + uint32_t NDTB:6; /*!< bit: 16..21 Number of Dedicated Transmit Buffers */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t TFQS:6; /*!< bit: 24..29 Transmit FIFO/Queue Size */ + uint32_t TFQM:1; /*!< bit: 30 Tx FIFO/Queue Mode */ + uint32_t :1; /*!< bit: 31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBC_OFFSET 0xC0 /**< \brief (CAN_TXBC offset) Tx Buffer Configuration */ +#define CAN_TXBC_RESETVALUE 0x00000000u /**< \brief (CAN_TXBC reset_value) Tx Buffer Configuration */ + +#define CAN_TXBC_TBSA_Pos 0 /**< \brief (CAN_TXBC) Tx Buffers Start Address */ +#define CAN_TXBC_TBSA_Msk (0xFFFFu << CAN_TXBC_TBSA_Pos) +#define CAN_TXBC_TBSA(value) (CAN_TXBC_TBSA_Msk & ((value) << CAN_TXBC_TBSA_Pos)) +#define CAN_TXBC_NDTB_Pos 16 /**< \brief (CAN_TXBC) Number of Dedicated Transmit Buffers */ +#define CAN_TXBC_NDTB_Msk (0x3Fu << CAN_TXBC_NDTB_Pos) +#define CAN_TXBC_NDTB(value) (CAN_TXBC_NDTB_Msk & ((value) << CAN_TXBC_NDTB_Pos)) +#define CAN_TXBC_TFQS_Pos 24 /**< \brief (CAN_TXBC) Transmit FIFO/Queue Size */ +#define CAN_TXBC_TFQS_Msk (0x3Fu << CAN_TXBC_TFQS_Pos) +#define CAN_TXBC_TFQS(value) (CAN_TXBC_TFQS_Msk & ((value) << CAN_TXBC_TFQS_Pos)) +#define CAN_TXBC_TFQM_Pos 30 /**< \brief (CAN_TXBC) Tx FIFO/Queue Mode */ +#define CAN_TXBC_TFQM (0x1u << CAN_TXBC_TFQM_Pos) +#define CAN_TXBC_MASK 0x7F3FFFFFu /**< \brief (CAN_TXBC) MASK Register */ + +/* -------- CAN_TXFQS : (CAN Offset: 0xC4) (R/ 32) Tx FIFO / Queue Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TFFL:6; /*!< bit: 0.. 5 Tx FIFO Free Level */ + uint32_t :2; /*!< bit: 6.. 7 Reserved */ + uint32_t TFGI:5; /*!< bit: 8..12 Tx FIFO Get Index */ + uint32_t :3; /*!< bit: 13..15 Reserved */ + uint32_t TFQPI:5; /*!< bit: 16..20 Tx FIFO/Queue Put Index */ + uint32_t TFQF:1; /*!< bit: 21 Tx FIFO/Queue Full */ + uint32_t :10; /*!< bit: 22..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXFQS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXFQS_OFFSET 0xC4 /**< \brief (CAN_TXFQS offset) Tx FIFO / Queue Status */ +#define CAN_TXFQS_RESETVALUE 0x00000000u /**< \brief (CAN_TXFQS reset_value) Tx FIFO / Queue Status */ + +#define CAN_TXFQS_TFFL_Pos 0 /**< \brief (CAN_TXFQS) Tx FIFO Free Level */ +#define CAN_TXFQS_TFFL_Msk (0x3Fu << CAN_TXFQS_TFFL_Pos) +#define CAN_TXFQS_TFFL(value) (CAN_TXFQS_TFFL_Msk & ((value) << CAN_TXFQS_TFFL_Pos)) +#define CAN_TXFQS_TFGI_Pos 8 /**< \brief (CAN_TXFQS) Tx FIFO Get Index */ +#define CAN_TXFQS_TFGI_Msk (0x1Fu << CAN_TXFQS_TFGI_Pos) +#define CAN_TXFQS_TFGI(value) (CAN_TXFQS_TFGI_Msk & ((value) << CAN_TXFQS_TFGI_Pos)) +#define CAN_TXFQS_TFQPI_Pos 16 /**< \brief (CAN_TXFQS) Tx FIFO/Queue Put Index */ +#define CAN_TXFQS_TFQPI_Msk (0x1Fu << CAN_TXFQS_TFQPI_Pos) +#define CAN_TXFQS_TFQPI(value) (CAN_TXFQS_TFQPI_Msk & ((value) << CAN_TXFQS_TFQPI_Pos)) +#define CAN_TXFQS_TFQF_Pos 21 /**< \brief (CAN_TXFQS) Tx FIFO/Queue Full */ +#define CAN_TXFQS_TFQF (0x1u << CAN_TXFQS_TFQF_Pos) +#define CAN_TXFQS_MASK 0x003F1F3Fu /**< \brief (CAN_TXFQS) MASK Register */ + +/* -------- CAN_TXESC : (CAN Offset: 0xC8) (R/W 32) Tx Buffer Element Size Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TBDS:3; /*!< bit: 0.. 2 Tx Buffer Data Field Size */ + uint32_t :29; /*!< bit: 3..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXESC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXESC_OFFSET 0xC8 /**< \brief (CAN_TXESC offset) Tx Buffer Element Size Configuration */ +#define CAN_TXESC_RESETVALUE 0x00000000u /**< \brief (CAN_TXESC reset_value) Tx Buffer Element Size Configuration */ + +#define CAN_TXESC_TBDS_Pos 0 /**< \brief (CAN_TXESC) Tx Buffer Data Field Size */ +#define CAN_TXESC_TBDS_Msk (0x7u << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS(value) (CAN_TXESC_TBDS_Msk & ((value) << CAN_TXESC_TBDS_Pos)) +#define CAN_TXESC_TBDS_DATA8_Val 0x0u /**< \brief (CAN_TXESC) 8 byte data field */ +#define CAN_TXESC_TBDS_DATA12_Val 0x1u /**< \brief (CAN_TXESC) 12 byte data field */ +#define CAN_TXESC_TBDS_DATA16_Val 0x2u /**< \brief (CAN_TXESC) 16 byte data field */ +#define CAN_TXESC_TBDS_DATA20_Val 0x3u /**< \brief (CAN_TXESC) 20 byte data field */ +#define CAN_TXESC_TBDS_DATA24_Val 0x4u /**< \brief (CAN_TXESC) 24 byte data field */ +#define CAN_TXESC_TBDS_DATA32_Val 0x5u /**< \brief (CAN_TXESC) 32 byte data field */ +#define CAN_TXESC_TBDS_DATA48_Val 0x6u /**< \brief (CAN_TXESC) 48 byte data field */ +#define CAN_TXESC_TBDS_DATA64_Val 0x7u /**< \brief (CAN_TXESC) 64 byte data field */ +#define CAN_TXESC_TBDS_DATA8 (CAN_TXESC_TBDS_DATA8_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA12 (CAN_TXESC_TBDS_DATA12_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA16 (CAN_TXESC_TBDS_DATA16_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA20 (CAN_TXESC_TBDS_DATA20_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA24 (CAN_TXESC_TBDS_DATA24_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA32 (CAN_TXESC_TBDS_DATA32_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA48 (CAN_TXESC_TBDS_DATA48_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_TBDS_DATA64 (CAN_TXESC_TBDS_DATA64_Val << CAN_TXESC_TBDS_Pos) +#define CAN_TXESC_MASK 0x00000007u /**< \brief (CAN_TXESC) MASK Register */ + +/* -------- CAN_TXBRP : (CAN Offset: 0xCC) (R/ 32) Tx Buffer Request Pending -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TRP0:1; /*!< bit: 0 Transmission Request Pending 0 */ + uint32_t TRP1:1; /*!< bit: 1 Transmission Request Pending 1 */ + uint32_t TRP2:1; /*!< bit: 2 Transmission Request Pending 2 */ + uint32_t TRP3:1; /*!< bit: 3 Transmission Request Pending 3 */ + uint32_t TRP4:1; /*!< bit: 4 Transmission Request Pending 4 */ + uint32_t TRP5:1; /*!< bit: 5 Transmission Request Pending 5 */ + uint32_t TRP6:1; /*!< bit: 6 Transmission Request Pending 6 */ + uint32_t TRP7:1; /*!< bit: 7 Transmission Request Pending 7 */ + uint32_t TRP8:1; /*!< bit: 8 Transmission Request Pending 8 */ + uint32_t TRP9:1; /*!< bit: 9 Transmission Request Pending 9 */ + uint32_t TRP10:1; /*!< bit: 10 Transmission Request Pending 10 */ + uint32_t TRP11:1; /*!< bit: 11 Transmission Request Pending 11 */ + uint32_t TRP12:1; /*!< bit: 12 Transmission Request Pending 12 */ + uint32_t TRP13:1; /*!< bit: 13 Transmission Request Pending 13 */ + uint32_t TRP14:1; /*!< bit: 14 Transmission Request Pending 14 */ + uint32_t TRP15:1; /*!< bit: 15 Transmission Request Pending 15 */ + uint32_t TRP16:1; /*!< bit: 16 Transmission Request Pending 16 */ + uint32_t TRP17:1; /*!< bit: 17 Transmission Request Pending 17 */ + uint32_t TRP18:1; /*!< bit: 18 Transmission Request Pending 18 */ + uint32_t TRP19:1; /*!< bit: 19 Transmission Request Pending 19 */ + uint32_t TRP20:1; /*!< bit: 20 Transmission Request Pending 20 */ + uint32_t TRP21:1; /*!< bit: 21 Transmission Request Pending 21 */ + uint32_t TRP22:1; /*!< bit: 22 Transmission Request Pending 22 */ + uint32_t TRP23:1; /*!< bit: 23 Transmission Request Pending 23 */ + uint32_t TRP24:1; /*!< bit: 24 Transmission Request Pending 24 */ + uint32_t TRP25:1; /*!< bit: 25 Transmission Request Pending 25 */ + uint32_t TRP26:1; /*!< bit: 26 Transmission Request Pending 26 */ + uint32_t TRP27:1; /*!< bit: 27 Transmission Request Pending 27 */ + uint32_t TRP28:1; /*!< bit: 28 Transmission Request Pending 28 */ + uint32_t TRP29:1; /*!< bit: 29 Transmission Request Pending 29 */ + uint32_t TRP30:1; /*!< bit: 30 Transmission Request Pending 30 */ + uint32_t TRP31:1; /*!< bit: 31 Transmission Request Pending 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBRP_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBRP_OFFSET 0xCC /**< \brief (CAN_TXBRP offset) Tx Buffer Request Pending */ +#define CAN_TXBRP_RESETVALUE 0x00000000u /**< \brief (CAN_TXBRP reset_value) Tx Buffer Request Pending */ + +#define CAN_TXBRP_TRP0_Pos 0 /**< \brief (CAN_TXBRP) Transmission Request Pending 0 */ +#define CAN_TXBRP_TRP0 (0x1u << CAN_TXBRP_TRP0_Pos) +#define CAN_TXBRP_TRP1_Pos 1 /**< \brief (CAN_TXBRP) Transmission Request Pending 1 */ +#define CAN_TXBRP_TRP1 (0x1u << CAN_TXBRP_TRP1_Pos) +#define CAN_TXBRP_TRP2_Pos 2 /**< \brief (CAN_TXBRP) Transmission Request Pending 2 */ +#define CAN_TXBRP_TRP2 (0x1u << CAN_TXBRP_TRP2_Pos) +#define CAN_TXBRP_TRP3_Pos 3 /**< \brief (CAN_TXBRP) Transmission Request Pending 3 */ +#define CAN_TXBRP_TRP3 (0x1u << CAN_TXBRP_TRP3_Pos) +#define CAN_TXBRP_TRP4_Pos 4 /**< \brief (CAN_TXBRP) Transmission Request Pending 4 */ +#define CAN_TXBRP_TRP4 (0x1u << CAN_TXBRP_TRP4_Pos) +#define CAN_TXBRP_TRP5_Pos 5 /**< \brief (CAN_TXBRP) Transmission Request Pending 5 */ +#define CAN_TXBRP_TRP5 (0x1u << CAN_TXBRP_TRP5_Pos) +#define CAN_TXBRP_TRP6_Pos 6 /**< \brief (CAN_TXBRP) Transmission Request Pending 6 */ +#define CAN_TXBRP_TRP6 (0x1u << CAN_TXBRP_TRP6_Pos) +#define CAN_TXBRP_TRP7_Pos 7 /**< \brief (CAN_TXBRP) Transmission Request Pending 7 */ +#define CAN_TXBRP_TRP7 (0x1u << CAN_TXBRP_TRP7_Pos) +#define CAN_TXBRP_TRP8_Pos 8 /**< \brief (CAN_TXBRP) Transmission Request Pending 8 */ +#define CAN_TXBRP_TRP8 (0x1u << CAN_TXBRP_TRP8_Pos) +#define CAN_TXBRP_TRP9_Pos 9 /**< \brief (CAN_TXBRP) Transmission Request Pending 9 */ +#define CAN_TXBRP_TRP9 (0x1u << CAN_TXBRP_TRP9_Pos) +#define CAN_TXBRP_TRP10_Pos 10 /**< \brief (CAN_TXBRP) Transmission Request Pending 10 */ +#define CAN_TXBRP_TRP10 (0x1u << CAN_TXBRP_TRP10_Pos) +#define CAN_TXBRP_TRP11_Pos 11 /**< \brief (CAN_TXBRP) Transmission Request Pending 11 */ +#define CAN_TXBRP_TRP11 (0x1u << CAN_TXBRP_TRP11_Pos) +#define CAN_TXBRP_TRP12_Pos 12 /**< \brief (CAN_TXBRP) Transmission Request Pending 12 */ +#define CAN_TXBRP_TRP12 (0x1u << CAN_TXBRP_TRP12_Pos) +#define CAN_TXBRP_TRP13_Pos 13 /**< \brief (CAN_TXBRP) Transmission Request Pending 13 */ +#define CAN_TXBRP_TRP13 (0x1u << CAN_TXBRP_TRP13_Pos) +#define CAN_TXBRP_TRP14_Pos 14 /**< \brief (CAN_TXBRP) Transmission Request Pending 14 */ +#define CAN_TXBRP_TRP14 (0x1u << CAN_TXBRP_TRP14_Pos) +#define CAN_TXBRP_TRP15_Pos 15 /**< \brief (CAN_TXBRP) Transmission Request Pending 15 */ +#define CAN_TXBRP_TRP15 (0x1u << CAN_TXBRP_TRP15_Pos) +#define CAN_TXBRP_TRP16_Pos 16 /**< \brief (CAN_TXBRP) Transmission Request Pending 16 */ +#define CAN_TXBRP_TRP16 (0x1u << CAN_TXBRP_TRP16_Pos) +#define CAN_TXBRP_TRP17_Pos 17 /**< \brief (CAN_TXBRP) Transmission Request Pending 17 */ +#define CAN_TXBRP_TRP17 (0x1u << CAN_TXBRP_TRP17_Pos) +#define CAN_TXBRP_TRP18_Pos 18 /**< \brief (CAN_TXBRP) Transmission Request Pending 18 */ +#define CAN_TXBRP_TRP18 (0x1u << CAN_TXBRP_TRP18_Pos) +#define CAN_TXBRP_TRP19_Pos 19 /**< \brief (CAN_TXBRP) Transmission Request Pending 19 */ +#define CAN_TXBRP_TRP19 (0x1u << CAN_TXBRP_TRP19_Pos) +#define CAN_TXBRP_TRP20_Pos 20 /**< \brief (CAN_TXBRP) Transmission Request Pending 20 */ +#define CAN_TXBRP_TRP20 (0x1u << CAN_TXBRP_TRP20_Pos) +#define CAN_TXBRP_TRP21_Pos 21 /**< \brief (CAN_TXBRP) Transmission Request Pending 21 */ +#define CAN_TXBRP_TRP21 (0x1u << CAN_TXBRP_TRP21_Pos) +#define CAN_TXBRP_TRP22_Pos 22 /**< \brief (CAN_TXBRP) Transmission Request Pending 22 */ +#define CAN_TXBRP_TRP22 (0x1u << CAN_TXBRP_TRP22_Pos) +#define CAN_TXBRP_TRP23_Pos 23 /**< \brief (CAN_TXBRP) Transmission Request Pending 23 */ +#define CAN_TXBRP_TRP23 (0x1u << CAN_TXBRP_TRP23_Pos) +#define CAN_TXBRP_TRP24_Pos 24 /**< \brief (CAN_TXBRP) Transmission Request Pending 24 */ +#define CAN_TXBRP_TRP24 (0x1u << CAN_TXBRP_TRP24_Pos) +#define CAN_TXBRP_TRP25_Pos 25 /**< \brief (CAN_TXBRP) Transmission Request Pending 25 */ +#define CAN_TXBRP_TRP25 (0x1u << CAN_TXBRP_TRP25_Pos) +#define CAN_TXBRP_TRP26_Pos 26 /**< \brief (CAN_TXBRP) Transmission Request Pending 26 */ +#define CAN_TXBRP_TRP26 (0x1u << CAN_TXBRP_TRP26_Pos) +#define CAN_TXBRP_TRP27_Pos 27 /**< \brief (CAN_TXBRP) Transmission Request Pending 27 */ +#define CAN_TXBRP_TRP27 (0x1u << CAN_TXBRP_TRP27_Pos) +#define CAN_TXBRP_TRP28_Pos 28 /**< \brief (CAN_TXBRP) Transmission Request Pending 28 */ +#define CAN_TXBRP_TRP28 (0x1u << CAN_TXBRP_TRP28_Pos) +#define CAN_TXBRP_TRP29_Pos 29 /**< \brief (CAN_TXBRP) Transmission Request Pending 29 */ +#define CAN_TXBRP_TRP29 (0x1u << CAN_TXBRP_TRP29_Pos) +#define CAN_TXBRP_TRP30_Pos 30 /**< \brief (CAN_TXBRP) Transmission Request Pending 30 */ +#define CAN_TXBRP_TRP30 (0x1u << CAN_TXBRP_TRP30_Pos) +#define CAN_TXBRP_TRP31_Pos 31 /**< \brief (CAN_TXBRP) Transmission Request Pending 31 */ +#define CAN_TXBRP_TRP31 (0x1u << CAN_TXBRP_TRP31_Pos) +#define CAN_TXBRP_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBRP) MASK Register */ + +/* -------- CAN_TXBAR : (CAN Offset: 0xD0) (R/W 32) Tx Buffer Add Request -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t AR0:1; /*!< bit: 0 Add Request 0 */ + uint32_t AR1:1; /*!< bit: 1 Add Request 1 */ + uint32_t AR2:1; /*!< bit: 2 Add Request 2 */ + uint32_t AR3:1; /*!< bit: 3 Add Request 3 */ + uint32_t AR4:1; /*!< bit: 4 Add Request 4 */ + uint32_t AR5:1; /*!< bit: 5 Add Request 5 */ + uint32_t AR6:1; /*!< bit: 6 Add Request 6 */ + uint32_t AR7:1; /*!< bit: 7 Add Request 7 */ + uint32_t AR8:1; /*!< bit: 8 Add Request 8 */ + uint32_t AR9:1; /*!< bit: 9 Add Request 9 */ + uint32_t AR10:1; /*!< bit: 10 Add Request 10 */ + uint32_t AR11:1; /*!< bit: 11 Add Request 11 */ + uint32_t AR12:1; /*!< bit: 12 Add Request 12 */ + uint32_t AR13:1; /*!< bit: 13 Add Request 13 */ + uint32_t AR14:1; /*!< bit: 14 Add Request 14 */ + uint32_t AR15:1; /*!< bit: 15 Add Request 15 */ + uint32_t AR16:1; /*!< bit: 16 Add Request 16 */ + uint32_t AR17:1; /*!< bit: 17 Add Request 17 */ + uint32_t AR18:1; /*!< bit: 18 Add Request 18 */ + uint32_t AR19:1; /*!< bit: 19 Add Request 19 */ + uint32_t AR20:1; /*!< bit: 20 Add Request 20 */ + uint32_t AR21:1; /*!< bit: 21 Add Request 21 */ + uint32_t AR22:1; /*!< bit: 22 Add Request 22 */ + uint32_t AR23:1; /*!< bit: 23 Add Request 23 */ + uint32_t AR24:1; /*!< bit: 24 Add Request 24 */ + uint32_t AR25:1; /*!< bit: 25 Add Request 25 */ + uint32_t AR26:1; /*!< bit: 26 Add Request 26 */ + uint32_t AR27:1; /*!< bit: 27 Add Request 27 */ + uint32_t AR28:1; /*!< bit: 28 Add Request 28 */ + uint32_t AR29:1; /*!< bit: 29 Add Request 29 */ + uint32_t AR30:1; /*!< bit: 30 Add Request 30 */ + uint32_t AR31:1; /*!< bit: 31 Add Request 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBAR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBAR_OFFSET 0xD0 /**< \brief (CAN_TXBAR offset) Tx Buffer Add Request */ +#define CAN_TXBAR_RESETVALUE 0x00000000u /**< \brief (CAN_TXBAR reset_value) Tx Buffer Add Request */ + +#define CAN_TXBAR_AR0_Pos 0 /**< \brief (CAN_TXBAR) Add Request 0 */ +#define CAN_TXBAR_AR0 (0x1u << CAN_TXBAR_AR0_Pos) +#define CAN_TXBAR_AR1_Pos 1 /**< \brief (CAN_TXBAR) Add Request 1 */ +#define CAN_TXBAR_AR1 (0x1u << CAN_TXBAR_AR1_Pos) +#define CAN_TXBAR_AR2_Pos 2 /**< \brief (CAN_TXBAR) Add Request 2 */ +#define CAN_TXBAR_AR2 (0x1u << CAN_TXBAR_AR2_Pos) +#define CAN_TXBAR_AR3_Pos 3 /**< \brief (CAN_TXBAR) Add Request 3 */ +#define CAN_TXBAR_AR3 (0x1u << CAN_TXBAR_AR3_Pos) +#define CAN_TXBAR_AR4_Pos 4 /**< \brief (CAN_TXBAR) Add Request 4 */ +#define CAN_TXBAR_AR4 (0x1u << CAN_TXBAR_AR4_Pos) +#define CAN_TXBAR_AR5_Pos 5 /**< \brief (CAN_TXBAR) Add Request 5 */ +#define CAN_TXBAR_AR5 (0x1u << CAN_TXBAR_AR5_Pos) +#define CAN_TXBAR_AR6_Pos 6 /**< \brief (CAN_TXBAR) Add Request 6 */ +#define CAN_TXBAR_AR6 (0x1u << CAN_TXBAR_AR6_Pos) +#define CAN_TXBAR_AR7_Pos 7 /**< \brief (CAN_TXBAR) Add Request 7 */ +#define CAN_TXBAR_AR7 (0x1u << CAN_TXBAR_AR7_Pos) +#define CAN_TXBAR_AR8_Pos 8 /**< \brief (CAN_TXBAR) Add Request 8 */ +#define CAN_TXBAR_AR8 (0x1u << CAN_TXBAR_AR8_Pos) +#define CAN_TXBAR_AR9_Pos 9 /**< \brief (CAN_TXBAR) Add Request 9 */ +#define CAN_TXBAR_AR9 (0x1u << CAN_TXBAR_AR9_Pos) +#define CAN_TXBAR_AR10_Pos 10 /**< \brief (CAN_TXBAR) Add Request 10 */ +#define CAN_TXBAR_AR10 (0x1u << CAN_TXBAR_AR10_Pos) +#define CAN_TXBAR_AR11_Pos 11 /**< \brief (CAN_TXBAR) Add Request 11 */ +#define CAN_TXBAR_AR11 (0x1u << CAN_TXBAR_AR11_Pos) +#define CAN_TXBAR_AR12_Pos 12 /**< \brief (CAN_TXBAR) Add Request 12 */ +#define CAN_TXBAR_AR12 (0x1u << CAN_TXBAR_AR12_Pos) +#define CAN_TXBAR_AR13_Pos 13 /**< \brief (CAN_TXBAR) Add Request 13 */ +#define CAN_TXBAR_AR13 (0x1u << CAN_TXBAR_AR13_Pos) +#define CAN_TXBAR_AR14_Pos 14 /**< \brief (CAN_TXBAR) Add Request 14 */ +#define CAN_TXBAR_AR14 (0x1u << CAN_TXBAR_AR14_Pos) +#define CAN_TXBAR_AR15_Pos 15 /**< \brief (CAN_TXBAR) Add Request 15 */ +#define CAN_TXBAR_AR15 (0x1u << CAN_TXBAR_AR15_Pos) +#define CAN_TXBAR_AR16_Pos 16 /**< \brief (CAN_TXBAR) Add Request 16 */ +#define CAN_TXBAR_AR16 (0x1u << CAN_TXBAR_AR16_Pos) +#define CAN_TXBAR_AR17_Pos 17 /**< \brief (CAN_TXBAR) Add Request 17 */ +#define CAN_TXBAR_AR17 (0x1u << CAN_TXBAR_AR17_Pos) +#define CAN_TXBAR_AR18_Pos 18 /**< \brief (CAN_TXBAR) Add Request 18 */ +#define CAN_TXBAR_AR18 (0x1u << CAN_TXBAR_AR18_Pos) +#define CAN_TXBAR_AR19_Pos 19 /**< \brief (CAN_TXBAR) Add Request 19 */ +#define CAN_TXBAR_AR19 (0x1u << CAN_TXBAR_AR19_Pos) +#define CAN_TXBAR_AR20_Pos 20 /**< \brief (CAN_TXBAR) Add Request 20 */ +#define CAN_TXBAR_AR20 (0x1u << CAN_TXBAR_AR20_Pos) +#define CAN_TXBAR_AR21_Pos 21 /**< \brief (CAN_TXBAR) Add Request 21 */ +#define CAN_TXBAR_AR21 (0x1u << CAN_TXBAR_AR21_Pos) +#define CAN_TXBAR_AR22_Pos 22 /**< \brief (CAN_TXBAR) Add Request 22 */ +#define CAN_TXBAR_AR22 (0x1u << CAN_TXBAR_AR22_Pos) +#define CAN_TXBAR_AR23_Pos 23 /**< \brief (CAN_TXBAR) Add Request 23 */ +#define CAN_TXBAR_AR23 (0x1u << CAN_TXBAR_AR23_Pos) +#define CAN_TXBAR_AR24_Pos 24 /**< \brief (CAN_TXBAR) Add Request 24 */ +#define CAN_TXBAR_AR24 (0x1u << CAN_TXBAR_AR24_Pos) +#define CAN_TXBAR_AR25_Pos 25 /**< \brief (CAN_TXBAR) Add Request 25 */ +#define CAN_TXBAR_AR25 (0x1u << CAN_TXBAR_AR25_Pos) +#define CAN_TXBAR_AR26_Pos 26 /**< \brief (CAN_TXBAR) Add Request 26 */ +#define CAN_TXBAR_AR26 (0x1u << CAN_TXBAR_AR26_Pos) +#define CAN_TXBAR_AR27_Pos 27 /**< \brief (CAN_TXBAR) Add Request 27 */ +#define CAN_TXBAR_AR27 (0x1u << CAN_TXBAR_AR27_Pos) +#define CAN_TXBAR_AR28_Pos 28 /**< \brief (CAN_TXBAR) Add Request 28 */ +#define CAN_TXBAR_AR28 (0x1u << CAN_TXBAR_AR28_Pos) +#define CAN_TXBAR_AR29_Pos 29 /**< \brief (CAN_TXBAR) Add Request 29 */ +#define CAN_TXBAR_AR29 (0x1u << CAN_TXBAR_AR29_Pos) +#define CAN_TXBAR_AR30_Pos 30 /**< \brief (CAN_TXBAR) Add Request 30 */ +#define CAN_TXBAR_AR30 (0x1u << CAN_TXBAR_AR30_Pos) +#define CAN_TXBAR_AR31_Pos 31 /**< \brief (CAN_TXBAR) Add Request 31 */ +#define CAN_TXBAR_AR31 (0x1u << CAN_TXBAR_AR31_Pos) +#define CAN_TXBAR_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBAR) MASK Register */ + +/* -------- CAN_TXBCR : (CAN Offset: 0xD4) (R/W 32) Tx Buffer Cancellation Request -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CR0:1; /*!< bit: 0 Cancellation Request 0 */ + uint32_t CR1:1; /*!< bit: 1 Cancellation Request 1 */ + uint32_t CR2:1; /*!< bit: 2 Cancellation Request 2 */ + uint32_t CR3:1; /*!< bit: 3 Cancellation Request 3 */ + uint32_t CR4:1; /*!< bit: 4 Cancellation Request 4 */ + uint32_t CR5:1; /*!< bit: 5 Cancellation Request 5 */ + uint32_t CR6:1; /*!< bit: 6 Cancellation Request 6 */ + uint32_t CR7:1; /*!< bit: 7 Cancellation Request 7 */ + uint32_t CR8:1; /*!< bit: 8 Cancellation Request 8 */ + uint32_t CR9:1; /*!< bit: 9 Cancellation Request 9 */ + uint32_t CR10:1; /*!< bit: 10 Cancellation Request 10 */ + uint32_t CR11:1; /*!< bit: 11 Cancellation Request 11 */ + uint32_t CR12:1; /*!< bit: 12 Cancellation Request 12 */ + uint32_t CR13:1; /*!< bit: 13 Cancellation Request 13 */ + uint32_t CR14:1; /*!< bit: 14 Cancellation Request 14 */ + uint32_t CR15:1; /*!< bit: 15 Cancellation Request 15 */ + uint32_t CR16:1; /*!< bit: 16 Cancellation Request 16 */ + uint32_t CR17:1; /*!< bit: 17 Cancellation Request 17 */ + uint32_t CR18:1; /*!< bit: 18 Cancellation Request 18 */ + uint32_t CR19:1; /*!< bit: 19 Cancellation Request 19 */ + uint32_t CR20:1; /*!< bit: 20 Cancellation Request 20 */ + uint32_t CR21:1; /*!< bit: 21 Cancellation Request 21 */ + uint32_t CR22:1; /*!< bit: 22 Cancellation Request 22 */ + uint32_t CR23:1; /*!< bit: 23 Cancellation Request 23 */ + uint32_t CR24:1; /*!< bit: 24 Cancellation Request 24 */ + uint32_t CR25:1; /*!< bit: 25 Cancellation Request 25 */ + uint32_t CR26:1; /*!< bit: 26 Cancellation Request 26 */ + uint32_t CR27:1; /*!< bit: 27 Cancellation Request 27 */ + uint32_t CR28:1; /*!< bit: 28 Cancellation Request 28 */ + uint32_t CR29:1; /*!< bit: 29 Cancellation Request 29 */ + uint32_t CR30:1; /*!< bit: 30 Cancellation Request 30 */ + uint32_t CR31:1; /*!< bit: 31 Cancellation Request 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBCR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBCR_OFFSET 0xD4 /**< \brief (CAN_TXBCR offset) Tx Buffer Cancellation Request */ +#define CAN_TXBCR_RESETVALUE 0x00000000u /**< \brief (CAN_TXBCR reset_value) Tx Buffer Cancellation Request */ + +#define CAN_TXBCR_CR0_Pos 0 /**< \brief (CAN_TXBCR) Cancellation Request 0 */ +#define CAN_TXBCR_CR0 (0x1u << CAN_TXBCR_CR0_Pos) +#define CAN_TXBCR_CR1_Pos 1 /**< \brief (CAN_TXBCR) Cancellation Request 1 */ +#define CAN_TXBCR_CR1 (0x1u << CAN_TXBCR_CR1_Pos) +#define CAN_TXBCR_CR2_Pos 2 /**< \brief (CAN_TXBCR) Cancellation Request 2 */ +#define CAN_TXBCR_CR2 (0x1u << CAN_TXBCR_CR2_Pos) +#define CAN_TXBCR_CR3_Pos 3 /**< \brief (CAN_TXBCR) Cancellation Request 3 */ +#define CAN_TXBCR_CR3 (0x1u << CAN_TXBCR_CR3_Pos) +#define CAN_TXBCR_CR4_Pos 4 /**< \brief (CAN_TXBCR) Cancellation Request 4 */ +#define CAN_TXBCR_CR4 (0x1u << CAN_TXBCR_CR4_Pos) +#define CAN_TXBCR_CR5_Pos 5 /**< \brief (CAN_TXBCR) Cancellation Request 5 */ +#define CAN_TXBCR_CR5 (0x1u << CAN_TXBCR_CR5_Pos) +#define CAN_TXBCR_CR6_Pos 6 /**< \brief (CAN_TXBCR) Cancellation Request 6 */ +#define CAN_TXBCR_CR6 (0x1u << CAN_TXBCR_CR6_Pos) +#define CAN_TXBCR_CR7_Pos 7 /**< \brief (CAN_TXBCR) Cancellation Request 7 */ +#define CAN_TXBCR_CR7 (0x1u << CAN_TXBCR_CR7_Pos) +#define CAN_TXBCR_CR8_Pos 8 /**< \brief (CAN_TXBCR) Cancellation Request 8 */ +#define CAN_TXBCR_CR8 (0x1u << CAN_TXBCR_CR8_Pos) +#define CAN_TXBCR_CR9_Pos 9 /**< \brief (CAN_TXBCR) Cancellation Request 9 */ +#define CAN_TXBCR_CR9 (0x1u << CAN_TXBCR_CR9_Pos) +#define CAN_TXBCR_CR10_Pos 10 /**< \brief (CAN_TXBCR) Cancellation Request 10 */ +#define CAN_TXBCR_CR10 (0x1u << CAN_TXBCR_CR10_Pos) +#define CAN_TXBCR_CR11_Pos 11 /**< \brief (CAN_TXBCR) Cancellation Request 11 */ +#define CAN_TXBCR_CR11 (0x1u << CAN_TXBCR_CR11_Pos) +#define CAN_TXBCR_CR12_Pos 12 /**< \brief (CAN_TXBCR) Cancellation Request 12 */ +#define CAN_TXBCR_CR12 (0x1u << CAN_TXBCR_CR12_Pos) +#define CAN_TXBCR_CR13_Pos 13 /**< \brief (CAN_TXBCR) Cancellation Request 13 */ +#define CAN_TXBCR_CR13 (0x1u << CAN_TXBCR_CR13_Pos) +#define CAN_TXBCR_CR14_Pos 14 /**< \brief (CAN_TXBCR) Cancellation Request 14 */ +#define CAN_TXBCR_CR14 (0x1u << CAN_TXBCR_CR14_Pos) +#define CAN_TXBCR_CR15_Pos 15 /**< \brief (CAN_TXBCR) Cancellation Request 15 */ +#define CAN_TXBCR_CR15 (0x1u << CAN_TXBCR_CR15_Pos) +#define CAN_TXBCR_CR16_Pos 16 /**< \brief (CAN_TXBCR) Cancellation Request 16 */ +#define CAN_TXBCR_CR16 (0x1u << CAN_TXBCR_CR16_Pos) +#define CAN_TXBCR_CR17_Pos 17 /**< \brief (CAN_TXBCR) Cancellation Request 17 */ +#define CAN_TXBCR_CR17 (0x1u << CAN_TXBCR_CR17_Pos) +#define CAN_TXBCR_CR18_Pos 18 /**< \brief (CAN_TXBCR) Cancellation Request 18 */ +#define CAN_TXBCR_CR18 (0x1u << CAN_TXBCR_CR18_Pos) +#define CAN_TXBCR_CR19_Pos 19 /**< \brief (CAN_TXBCR) Cancellation Request 19 */ +#define CAN_TXBCR_CR19 (0x1u << CAN_TXBCR_CR19_Pos) +#define CAN_TXBCR_CR20_Pos 20 /**< \brief (CAN_TXBCR) Cancellation Request 20 */ +#define CAN_TXBCR_CR20 (0x1u << CAN_TXBCR_CR20_Pos) +#define CAN_TXBCR_CR21_Pos 21 /**< \brief (CAN_TXBCR) Cancellation Request 21 */ +#define CAN_TXBCR_CR21 (0x1u << CAN_TXBCR_CR21_Pos) +#define CAN_TXBCR_CR22_Pos 22 /**< \brief (CAN_TXBCR) Cancellation Request 22 */ +#define CAN_TXBCR_CR22 (0x1u << CAN_TXBCR_CR22_Pos) +#define CAN_TXBCR_CR23_Pos 23 /**< \brief (CAN_TXBCR) Cancellation Request 23 */ +#define CAN_TXBCR_CR23 (0x1u << CAN_TXBCR_CR23_Pos) +#define CAN_TXBCR_CR24_Pos 24 /**< \brief (CAN_TXBCR) Cancellation Request 24 */ +#define CAN_TXBCR_CR24 (0x1u << CAN_TXBCR_CR24_Pos) +#define CAN_TXBCR_CR25_Pos 25 /**< \brief (CAN_TXBCR) Cancellation Request 25 */ +#define CAN_TXBCR_CR25 (0x1u << CAN_TXBCR_CR25_Pos) +#define CAN_TXBCR_CR26_Pos 26 /**< \brief (CAN_TXBCR) Cancellation Request 26 */ +#define CAN_TXBCR_CR26 (0x1u << CAN_TXBCR_CR26_Pos) +#define CAN_TXBCR_CR27_Pos 27 /**< \brief (CAN_TXBCR) Cancellation Request 27 */ +#define CAN_TXBCR_CR27 (0x1u << CAN_TXBCR_CR27_Pos) +#define CAN_TXBCR_CR28_Pos 28 /**< \brief (CAN_TXBCR) Cancellation Request 28 */ +#define CAN_TXBCR_CR28 (0x1u << CAN_TXBCR_CR28_Pos) +#define CAN_TXBCR_CR29_Pos 29 /**< \brief (CAN_TXBCR) Cancellation Request 29 */ +#define CAN_TXBCR_CR29 (0x1u << CAN_TXBCR_CR29_Pos) +#define CAN_TXBCR_CR30_Pos 30 /**< \brief (CAN_TXBCR) Cancellation Request 30 */ +#define CAN_TXBCR_CR30 (0x1u << CAN_TXBCR_CR30_Pos) +#define CAN_TXBCR_CR31_Pos 31 /**< \brief (CAN_TXBCR) Cancellation Request 31 */ +#define CAN_TXBCR_CR31 (0x1u << CAN_TXBCR_CR31_Pos) +#define CAN_TXBCR_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBCR) MASK Register */ + +/* -------- CAN_TXBTO : (CAN Offset: 0xD8) (R/ 32) Tx Buffer Transmission Occurred -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TO0:1; /*!< bit: 0 Transmission Occurred 0 */ + uint32_t TO1:1; /*!< bit: 1 Transmission Occurred 1 */ + uint32_t TO2:1; /*!< bit: 2 Transmission Occurred 2 */ + uint32_t TO3:1; /*!< bit: 3 Transmission Occurred 3 */ + uint32_t TO4:1; /*!< bit: 4 Transmission Occurred 4 */ + uint32_t TO5:1; /*!< bit: 5 Transmission Occurred 5 */ + uint32_t TO6:1; /*!< bit: 6 Transmission Occurred 6 */ + uint32_t TO7:1; /*!< bit: 7 Transmission Occurred 7 */ + uint32_t TO8:1; /*!< bit: 8 Transmission Occurred 8 */ + uint32_t TO9:1; /*!< bit: 9 Transmission Occurred 9 */ + uint32_t TO10:1; /*!< bit: 10 Transmission Occurred 10 */ + uint32_t TO11:1; /*!< bit: 11 Transmission Occurred 11 */ + uint32_t TO12:1; /*!< bit: 12 Transmission Occurred 12 */ + uint32_t TO13:1; /*!< bit: 13 Transmission Occurred 13 */ + uint32_t TO14:1; /*!< bit: 14 Transmission Occurred 14 */ + uint32_t TO15:1; /*!< bit: 15 Transmission Occurred 15 */ + uint32_t TO16:1; /*!< bit: 16 Transmission Occurred 16 */ + uint32_t TO17:1; /*!< bit: 17 Transmission Occurred 17 */ + uint32_t TO18:1; /*!< bit: 18 Transmission Occurred 18 */ + uint32_t TO19:1; /*!< bit: 19 Transmission Occurred 19 */ + uint32_t TO20:1; /*!< bit: 20 Transmission Occurred 20 */ + uint32_t TO21:1; /*!< bit: 21 Transmission Occurred 21 */ + uint32_t TO22:1; /*!< bit: 22 Transmission Occurred 22 */ + uint32_t TO23:1; /*!< bit: 23 Transmission Occurred 23 */ + uint32_t TO24:1; /*!< bit: 24 Transmission Occurred 24 */ + uint32_t TO25:1; /*!< bit: 25 Transmission Occurred 25 */ + uint32_t TO26:1; /*!< bit: 26 Transmission Occurred 26 */ + uint32_t TO27:1; /*!< bit: 27 Transmission Occurred 27 */ + uint32_t TO28:1; /*!< bit: 28 Transmission Occurred 28 */ + uint32_t TO29:1; /*!< bit: 29 Transmission Occurred 29 */ + uint32_t TO30:1; /*!< bit: 30 Transmission Occurred 30 */ + uint32_t TO31:1; /*!< bit: 31 Transmission Occurred 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBTO_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBTO_OFFSET 0xD8 /**< \brief (CAN_TXBTO offset) Tx Buffer Transmission Occurred */ +#define CAN_TXBTO_RESETVALUE 0x00000000u /**< \brief (CAN_TXBTO reset_value) Tx Buffer Transmission Occurred */ + +#define CAN_TXBTO_TO0_Pos 0 /**< \brief (CAN_TXBTO) Transmission Occurred 0 */ +#define CAN_TXBTO_TO0 (0x1u << CAN_TXBTO_TO0_Pos) +#define CAN_TXBTO_TO1_Pos 1 /**< \brief (CAN_TXBTO) Transmission Occurred 1 */ +#define CAN_TXBTO_TO1 (0x1u << CAN_TXBTO_TO1_Pos) +#define CAN_TXBTO_TO2_Pos 2 /**< \brief (CAN_TXBTO) Transmission Occurred 2 */ +#define CAN_TXBTO_TO2 (0x1u << CAN_TXBTO_TO2_Pos) +#define CAN_TXBTO_TO3_Pos 3 /**< \brief (CAN_TXBTO) Transmission Occurred 3 */ +#define CAN_TXBTO_TO3 (0x1u << CAN_TXBTO_TO3_Pos) +#define CAN_TXBTO_TO4_Pos 4 /**< \brief (CAN_TXBTO) Transmission Occurred 4 */ +#define CAN_TXBTO_TO4 (0x1u << CAN_TXBTO_TO4_Pos) +#define CAN_TXBTO_TO5_Pos 5 /**< \brief (CAN_TXBTO) Transmission Occurred 5 */ +#define CAN_TXBTO_TO5 (0x1u << CAN_TXBTO_TO5_Pos) +#define CAN_TXBTO_TO6_Pos 6 /**< \brief (CAN_TXBTO) Transmission Occurred 6 */ +#define CAN_TXBTO_TO6 (0x1u << CAN_TXBTO_TO6_Pos) +#define CAN_TXBTO_TO7_Pos 7 /**< \brief (CAN_TXBTO) Transmission Occurred 7 */ +#define CAN_TXBTO_TO7 (0x1u << CAN_TXBTO_TO7_Pos) +#define CAN_TXBTO_TO8_Pos 8 /**< \brief (CAN_TXBTO) Transmission Occurred 8 */ +#define CAN_TXBTO_TO8 (0x1u << CAN_TXBTO_TO8_Pos) +#define CAN_TXBTO_TO9_Pos 9 /**< \brief (CAN_TXBTO) Transmission Occurred 9 */ +#define CAN_TXBTO_TO9 (0x1u << CAN_TXBTO_TO9_Pos) +#define CAN_TXBTO_TO10_Pos 10 /**< \brief (CAN_TXBTO) Transmission Occurred 10 */ +#define CAN_TXBTO_TO10 (0x1u << CAN_TXBTO_TO10_Pos) +#define CAN_TXBTO_TO11_Pos 11 /**< \brief (CAN_TXBTO) Transmission Occurred 11 */ +#define CAN_TXBTO_TO11 (0x1u << CAN_TXBTO_TO11_Pos) +#define CAN_TXBTO_TO12_Pos 12 /**< \brief (CAN_TXBTO) Transmission Occurred 12 */ +#define CAN_TXBTO_TO12 (0x1u << CAN_TXBTO_TO12_Pos) +#define CAN_TXBTO_TO13_Pos 13 /**< \brief (CAN_TXBTO) Transmission Occurred 13 */ +#define CAN_TXBTO_TO13 (0x1u << CAN_TXBTO_TO13_Pos) +#define CAN_TXBTO_TO14_Pos 14 /**< \brief (CAN_TXBTO) Transmission Occurred 14 */ +#define CAN_TXBTO_TO14 (0x1u << CAN_TXBTO_TO14_Pos) +#define CAN_TXBTO_TO15_Pos 15 /**< \brief (CAN_TXBTO) Transmission Occurred 15 */ +#define CAN_TXBTO_TO15 (0x1u << CAN_TXBTO_TO15_Pos) +#define CAN_TXBTO_TO16_Pos 16 /**< \brief (CAN_TXBTO) Transmission Occurred 16 */ +#define CAN_TXBTO_TO16 (0x1u << CAN_TXBTO_TO16_Pos) +#define CAN_TXBTO_TO17_Pos 17 /**< \brief (CAN_TXBTO) Transmission Occurred 17 */ +#define CAN_TXBTO_TO17 (0x1u << CAN_TXBTO_TO17_Pos) +#define CAN_TXBTO_TO18_Pos 18 /**< \brief (CAN_TXBTO) Transmission Occurred 18 */ +#define CAN_TXBTO_TO18 (0x1u << CAN_TXBTO_TO18_Pos) +#define CAN_TXBTO_TO19_Pos 19 /**< \brief (CAN_TXBTO) Transmission Occurred 19 */ +#define CAN_TXBTO_TO19 (0x1u << CAN_TXBTO_TO19_Pos) +#define CAN_TXBTO_TO20_Pos 20 /**< \brief (CAN_TXBTO) Transmission Occurred 20 */ +#define CAN_TXBTO_TO20 (0x1u << CAN_TXBTO_TO20_Pos) +#define CAN_TXBTO_TO21_Pos 21 /**< \brief (CAN_TXBTO) Transmission Occurred 21 */ +#define CAN_TXBTO_TO21 (0x1u << CAN_TXBTO_TO21_Pos) +#define CAN_TXBTO_TO22_Pos 22 /**< \brief (CAN_TXBTO) Transmission Occurred 22 */ +#define CAN_TXBTO_TO22 (0x1u << CAN_TXBTO_TO22_Pos) +#define CAN_TXBTO_TO23_Pos 23 /**< \brief (CAN_TXBTO) Transmission Occurred 23 */ +#define CAN_TXBTO_TO23 (0x1u << CAN_TXBTO_TO23_Pos) +#define CAN_TXBTO_TO24_Pos 24 /**< \brief (CAN_TXBTO) Transmission Occurred 24 */ +#define CAN_TXBTO_TO24 (0x1u << CAN_TXBTO_TO24_Pos) +#define CAN_TXBTO_TO25_Pos 25 /**< \brief (CAN_TXBTO) Transmission Occurred 25 */ +#define CAN_TXBTO_TO25 (0x1u << CAN_TXBTO_TO25_Pos) +#define CAN_TXBTO_TO26_Pos 26 /**< \brief (CAN_TXBTO) Transmission Occurred 26 */ +#define CAN_TXBTO_TO26 (0x1u << CAN_TXBTO_TO26_Pos) +#define CAN_TXBTO_TO27_Pos 27 /**< \brief (CAN_TXBTO) Transmission Occurred 27 */ +#define CAN_TXBTO_TO27 (0x1u << CAN_TXBTO_TO27_Pos) +#define CAN_TXBTO_TO28_Pos 28 /**< \brief (CAN_TXBTO) Transmission Occurred 28 */ +#define CAN_TXBTO_TO28 (0x1u << CAN_TXBTO_TO28_Pos) +#define CAN_TXBTO_TO29_Pos 29 /**< \brief (CAN_TXBTO) Transmission Occurred 29 */ +#define CAN_TXBTO_TO29 (0x1u << CAN_TXBTO_TO29_Pos) +#define CAN_TXBTO_TO30_Pos 30 /**< \brief (CAN_TXBTO) Transmission Occurred 30 */ +#define CAN_TXBTO_TO30 (0x1u << CAN_TXBTO_TO30_Pos) +#define CAN_TXBTO_TO31_Pos 31 /**< \brief (CAN_TXBTO) Transmission Occurred 31 */ +#define CAN_TXBTO_TO31 (0x1u << CAN_TXBTO_TO31_Pos) +#define CAN_TXBTO_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBTO) MASK Register */ + +/* -------- CAN_TXBCF : (CAN Offset: 0xDC) (R/ 32) Tx Buffer Cancellation Finished -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CF0:1; /*!< bit: 0 Tx Buffer Cancellation Finished 0 */ + uint32_t CF1:1; /*!< bit: 1 Tx Buffer Cancellation Finished 1 */ + uint32_t CF2:1; /*!< bit: 2 Tx Buffer Cancellation Finished 2 */ + uint32_t CF3:1; /*!< bit: 3 Tx Buffer Cancellation Finished 3 */ + uint32_t CF4:1; /*!< bit: 4 Tx Buffer Cancellation Finished 4 */ + uint32_t CF5:1; /*!< bit: 5 Tx Buffer Cancellation Finished 5 */ + uint32_t CF6:1; /*!< bit: 6 Tx Buffer Cancellation Finished 6 */ + uint32_t CF7:1; /*!< bit: 7 Tx Buffer Cancellation Finished 7 */ + uint32_t CF8:1; /*!< bit: 8 Tx Buffer Cancellation Finished 8 */ + uint32_t CF9:1; /*!< bit: 9 Tx Buffer Cancellation Finished 9 */ + uint32_t CF10:1; /*!< bit: 10 Tx Buffer Cancellation Finished 10 */ + uint32_t CF11:1; /*!< bit: 11 Tx Buffer Cancellation Finished 11 */ + uint32_t CF12:1; /*!< bit: 12 Tx Buffer Cancellation Finished 12 */ + uint32_t CF13:1; /*!< bit: 13 Tx Buffer Cancellation Finished 13 */ + uint32_t CF14:1; /*!< bit: 14 Tx Buffer Cancellation Finished 14 */ + uint32_t CF15:1; /*!< bit: 15 Tx Buffer Cancellation Finished 15 */ + uint32_t CF16:1; /*!< bit: 16 Tx Buffer Cancellation Finished 16 */ + uint32_t CF17:1; /*!< bit: 17 Tx Buffer Cancellation Finished 17 */ + uint32_t CF18:1; /*!< bit: 18 Tx Buffer Cancellation Finished 18 */ + uint32_t CF19:1; /*!< bit: 19 Tx Buffer Cancellation Finished 19 */ + uint32_t CF20:1; /*!< bit: 20 Tx Buffer Cancellation Finished 20 */ + uint32_t CF21:1; /*!< bit: 21 Tx Buffer Cancellation Finished 21 */ + uint32_t CF22:1; /*!< bit: 22 Tx Buffer Cancellation Finished 22 */ + uint32_t CF23:1; /*!< bit: 23 Tx Buffer Cancellation Finished 23 */ + uint32_t CF24:1; /*!< bit: 24 Tx Buffer Cancellation Finished 24 */ + uint32_t CF25:1; /*!< bit: 25 Tx Buffer Cancellation Finished 25 */ + uint32_t CF26:1; /*!< bit: 26 Tx Buffer Cancellation Finished 26 */ + uint32_t CF27:1; /*!< bit: 27 Tx Buffer Cancellation Finished 27 */ + uint32_t CF28:1; /*!< bit: 28 Tx Buffer Cancellation Finished 28 */ + uint32_t CF29:1; /*!< bit: 29 Tx Buffer Cancellation Finished 29 */ + uint32_t CF30:1; /*!< bit: 30 Tx Buffer Cancellation Finished 30 */ + uint32_t CF31:1; /*!< bit: 31 Tx Buffer Cancellation Finished 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBCF_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBCF_OFFSET 0xDC /**< \brief (CAN_TXBCF offset) Tx Buffer Cancellation Finished */ +#define CAN_TXBCF_RESETVALUE 0x00000000u /**< \brief (CAN_TXBCF reset_value) Tx Buffer Cancellation Finished */ + +#define CAN_TXBCF_CF0_Pos 0 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 0 */ +#define CAN_TXBCF_CF0 (0x1u << CAN_TXBCF_CF0_Pos) +#define CAN_TXBCF_CF1_Pos 1 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 1 */ +#define CAN_TXBCF_CF1 (0x1u << CAN_TXBCF_CF1_Pos) +#define CAN_TXBCF_CF2_Pos 2 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 2 */ +#define CAN_TXBCF_CF2 (0x1u << CAN_TXBCF_CF2_Pos) +#define CAN_TXBCF_CF3_Pos 3 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 3 */ +#define CAN_TXBCF_CF3 (0x1u << CAN_TXBCF_CF3_Pos) +#define CAN_TXBCF_CF4_Pos 4 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 4 */ +#define CAN_TXBCF_CF4 (0x1u << CAN_TXBCF_CF4_Pos) +#define CAN_TXBCF_CF5_Pos 5 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 5 */ +#define CAN_TXBCF_CF5 (0x1u << CAN_TXBCF_CF5_Pos) +#define CAN_TXBCF_CF6_Pos 6 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 6 */ +#define CAN_TXBCF_CF6 (0x1u << CAN_TXBCF_CF6_Pos) +#define CAN_TXBCF_CF7_Pos 7 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 7 */ +#define CAN_TXBCF_CF7 (0x1u << CAN_TXBCF_CF7_Pos) +#define CAN_TXBCF_CF8_Pos 8 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 8 */ +#define CAN_TXBCF_CF8 (0x1u << CAN_TXBCF_CF8_Pos) +#define CAN_TXBCF_CF9_Pos 9 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 9 */ +#define CAN_TXBCF_CF9 (0x1u << CAN_TXBCF_CF9_Pos) +#define CAN_TXBCF_CF10_Pos 10 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 10 */ +#define CAN_TXBCF_CF10 (0x1u << CAN_TXBCF_CF10_Pos) +#define CAN_TXBCF_CF11_Pos 11 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 11 */ +#define CAN_TXBCF_CF11 (0x1u << CAN_TXBCF_CF11_Pos) +#define CAN_TXBCF_CF12_Pos 12 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 12 */ +#define CAN_TXBCF_CF12 (0x1u << CAN_TXBCF_CF12_Pos) +#define CAN_TXBCF_CF13_Pos 13 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 13 */ +#define CAN_TXBCF_CF13 (0x1u << CAN_TXBCF_CF13_Pos) +#define CAN_TXBCF_CF14_Pos 14 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 14 */ +#define CAN_TXBCF_CF14 (0x1u << CAN_TXBCF_CF14_Pos) +#define CAN_TXBCF_CF15_Pos 15 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 15 */ +#define CAN_TXBCF_CF15 (0x1u << CAN_TXBCF_CF15_Pos) +#define CAN_TXBCF_CF16_Pos 16 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 16 */ +#define CAN_TXBCF_CF16 (0x1u << CAN_TXBCF_CF16_Pos) +#define CAN_TXBCF_CF17_Pos 17 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 17 */ +#define CAN_TXBCF_CF17 (0x1u << CAN_TXBCF_CF17_Pos) +#define CAN_TXBCF_CF18_Pos 18 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 18 */ +#define CAN_TXBCF_CF18 (0x1u << CAN_TXBCF_CF18_Pos) +#define CAN_TXBCF_CF19_Pos 19 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 19 */ +#define CAN_TXBCF_CF19 (0x1u << CAN_TXBCF_CF19_Pos) +#define CAN_TXBCF_CF20_Pos 20 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 20 */ +#define CAN_TXBCF_CF20 (0x1u << CAN_TXBCF_CF20_Pos) +#define CAN_TXBCF_CF21_Pos 21 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 21 */ +#define CAN_TXBCF_CF21 (0x1u << CAN_TXBCF_CF21_Pos) +#define CAN_TXBCF_CF22_Pos 22 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 22 */ +#define CAN_TXBCF_CF22 (0x1u << CAN_TXBCF_CF22_Pos) +#define CAN_TXBCF_CF23_Pos 23 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 23 */ +#define CAN_TXBCF_CF23 (0x1u << CAN_TXBCF_CF23_Pos) +#define CAN_TXBCF_CF24_Pos 24 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 24 */ +#define CAN_TXBCF_CF24 (0x1u << CAN_TXBCF_CF24_Pos) +#define CAN_TXBCF_CF25_Pos 25 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 25 */ +#define CAN_TXBCF_CF25 (0x1u << CAN_TXBCF_CF25_Pos) +#define CAN_TXBCF_CF26_Pos 26 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 26 */ +#define CAN_TXBCF_CF26 (0x1u << CAN_TXBCF_CF26_Pos) +#define CAN_TXBCF_CF27_Pos 27 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 27 */ +#define CAN_TXBCF_CF27 (0x1u << CAN_TXBCF_CF27_Pos) +#define CAN_TXBCF_CF28_Pos 28 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 28 */ +#define CAN_TXBCF_CF28 (0x1u << CAN_TXBCF_CF28_Pos) +#define CAN_TXBCF_CF29_Pos 29 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 29 */ +#define CAN_TXBCF_CF29 (0x1u << CAN_TXBCF_CF29_Pos) +#define CAN_TXBCF_CF30_Pos 30 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 30 */ +#define CAN_TXBCF_CF30 (0x1u << CAN_TXBCF_CF30_Pos) +#define CAN_TXBCF_CF31_Pos 31 /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 31 */ +#define CAN_TXBCF_CF31 (0x1u << CAN_TXBCF_CF31_Pos) +#define CAN_TXBCF_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBCF) MASK Register */ + +/* -------- CAN_TXBTIE : (CAN Offset: 0xE0) (R/W 32) Tx Buffer Transmission Interrupt Enable -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TIE0:1; /*!< bit: 0 Transmission Interrupt Enable 0 */ + uint32_t TIE1:1; /*!< bit: 1 Transmission Interrupt Enable 1 */ + uint32_t TIE2:1; /*!< bit: 2 Transmission Interrupt Enable 2 */ + uint32_t TIE3:1; /*!< bit: 3 Transmission Interrupt Enable 3 */ + uint32_t TIE4:1; /*!< bit: 4 Transmission Interrupt Enable 4 */ + uint32_t TIE5:1; /*!< bit: 5 Transmission Interrupt Enable 5 */ + uint32_t TIE6:1; /*!< bit: 6 Transmission Interrupt Enable 6 */ + uint32_t TIE7:1; /*!< bit: 7 Transmission Interrupt Enable 7 */ + uint32_t TIE8:1; /*!< bit: 8 Transmission Interrupt Enable 8 */ + uint32_t TIE9:1; /*!< bit: 9 Transmission Interrupt Enable 9 */ + uint32_t TIE10:1; /*!< bit: 10 Transmission Interrupt Enable 10 */ + uint32_t TIE11:1; /*!< bit: 11 Transmission Interrupt Enable 11 */ + uint32_t TIE12:1; /*!< bit: 12 Transmission Interrupt Enable 12 */ + uint32_t TIE13:1; /*!< bit: 13 Transmission Interrupt Enable 13 */ + uint32_t TIE14:1; /*!< bit: 14 Transmission Interrupt Enable 14 */ + uint32_t TIE15:1; /*!< bit: 15 Transmission Interrupt Enable 15 */ + uint32_t TIE16:1; /*!< bit: 16 Transmission Interrupt Enable 16 */ + uint32_t TIE17:1; /*!< bit: 17 Transmission Interrupt Enable 17 */ + uint32_t TIE18:1; /*!< bit: 18 Transmission Interrupt Enable 18 */ + uint32_t TIE19:1; /*!< bit: 19 Transmission Interrupt Enable 19 */ + uint32_t TIE20:1; /*!< bit: 20 Transmission Interrupt Enable 20 */ + uint32_t TIE21:1; /*!< bit: 21 Transmission Interrupt Enable 21 */ + uint32_t TIE22:1; /*!< bit: 22 Transmission Interrupt Enable 22 */ + uint32_t TIE23:1; /*!< bit: 23 Transmission Interrupt Enable 23 */ + uint32_t TIE24:1; /*!< bit: 24 Transmission Interrupt Enable 24 */ + uint32_t TIE25:1; /*!< bit: 25 Transmission Interrupt Enable 25 */ + uint32_t TIE26:1; /*!< bit: 26 Transmission Interrupt Enable 26 */ + uint32_t TIE27:1; /*!< bit: 27 Transmission Interrupt Enable 27 */ + uint32_t TIE28:1; /*!< bit: 28 Transmission Interrupt Enable 28 */ + uint32_t TIE29:1; /*!< bit: 29 Transmission Interrupt Enable 29 */ + uint32_t TIE30:1; /*!< bit: 30 Transmission Interrupt Enable 30 */ + uint32_t TIE31:1; /*!< bit: 31 Transmission Interrupt Enable 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBTIE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBTIE_OFFSET 0xE0 /**< \brief (CAN_TXBTIE offset) Tx Buffer Transmission Interrupt Enable */ +#define CAN_TXBTIE_RESETVALUE 0x00000000u /**< \brief (CAN_TXBTIE reset_value) Tx Buffer Transmission Interrupt Enable */ + +#define CAN_TXBTIE_TIE0_Pos 0 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 0 */ +#define CAN_TXBTIE_TIE0 (0x1u << CAN_TXBTIE_TIE0_Pos) +#define CAN_TXBTIE_TIE1_Pos 1 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 1 */ +#define CAN_TXBTIE_TIE1 (0x1u << CAN_TXBTIE_TIE1_Pos) +#define CAN_TXBTIE_TIE2_Pos 2 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 2 */ +#define CAN_TXBTIE_TIE2 (0x1u << CAN_TXBTIE_TIE2_Pos) +#define CAN_TXBTIE_TIE3_Pos 3 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 3 */ +#define CAN_TXBTIE_TIE3 (0x1u << CAN_TXBTIE_TIE3_Pos) +#define CAN_TXBTIE_TIE4_Pos 4 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 4 */ +#define CAN_TXBTIE_TIE4 (0x1u << CAN_TXBTIE_TIE4_Pos) +#define CAN_TXBTIE_TIE5_Pos 5 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 5 */ +#define CAN_TXBTIE_TIE5 (0x1u << CAN_TXBTIE_TIE5_Pos) +#define CAN_TXBTIE_TIE6_Pos 6 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 6 */ +#define CAN_TXBTIE_TIE6 (0x1u << CAN_TXBTIE_TIE6_Pos) +#define CAN_TXBTIE_TIE7_Pos 7 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 7 */ +#define CAN_TXBTIE_TIE7 (0x1u << CAN_TXBTIE_TIE7_Pos) +#define CAN_TXBTIE_TIE8_Pos 8 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 8 */ +#define CAN_TXBTIE_TIE8 (0x1u << CAN_TXBTIE_TIE8_Pos) +#define CAN_TXBTIE_TIE9_Pos 9 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 9 */ +#define CAN_TXBTIE_TIE9 (0x1u << CAN_TXBTIE_TIE9_Pos) +#define CAN_TXBTIE_TIE10_Pos 10 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 10 */ +#define CAN_TXBTIE_TIE10 (0x1u << CAN_TXBTIE_TIE10_Pos) +#define CAN_TXBTIE_TIE11_Pos 11 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 11 */ +#define CAN_TXBTIE_TIE11 (0x1u << CAN_TXBTIE_TIE11_Pos) +#define CAN_TXBTIE_TIE12_Pos 12 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 12 */ +#define CAN_TXBTIE_TIE12 (0x1u << CAN_TXBTIE_TIE12_Pos) +#define CAN_TXBTIE_TIE13_Pos 13 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 13 */ +#define CAN_TXBTIE_TIE13 (0x1u << CAN_TXBTIE_TIE13_Pos) +#define CAN_TXBTIE_TIE14_Pos 14 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 14 */ +#define CAN_TXBTIE_TIE14 (0x1u << CAN_TXBTIE_TIE14_Pos) +#define CAN_TXBTIE_TIE15_Pos 15 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 15 */ +#define CAN_TXBTIE_TIE15 (0x1u << CAN_TXBTIE_TIE15_Pos) +#define CAN_TXBTIE_TIE16_Pos 16 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 16 */ +#define CAN_TXBTIE_TIE16 (0x1u << CAN_TXBTIE_TIE16_Pos) +#define CAN_TXBTIE_TIE17_Pos 17 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 17 */ +#define CAN_TXBTIE_TIE17 (0x1u << CAN_TXBTIE_TIE17_Pos) +#define CAN_TXBTIE_TIE18_Pos 18 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 18 */ +#define CAN_TXBTIE_TIE18 (0x1u << CAN_TXBTIE_TIE18_Pos) +#define CAN_TXBTIE_TIE19_Pos 19 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 19 */ +#define CAN_TXBTIE_TIE19 (0x1u << CAN_TXBTIE_TIE19_Pos) +#define CAN_TXBTIE_TIE20_Pos 20 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 20 */ +#define CAN_TXBTIE_TIE20 (0x1u << CAN_TXBTIE_TIE20_Pos) +#define CAN_TXBTIE_TIE21_Pos 21 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 21 */ +#define CAN_TXBTIE_TIE21 (0x1u << CAN_TXBTIE_TIE21_Pos) +#define CAN_TXBTIE_TIE22_Pos 22 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 22 */ +#define CAN_TXBTIE_TIE22 (0x1u << CAN_TXBTIE_TIE22_Pos) +#define CAN_TXBTIE_TIE23_Pos 23 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 23 */ +#define CAN_TXBTIE_TIE23 (0x1u << CAN_TXBTIE_TIE23_Pos) +#define CAN_TXBTIE_TIE24_Pos 24 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 24 */ +#define CAN_TXBTIE_TIE24 (0x1u << CAN_TXBTIE_TIE24_Pos) +#define CAN_TXBTIE_TIE25_Pos 25 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 25 */ +#define CAN_TXBTIE_TIE25 (0x1u << CAN_TXBTIE_TIE25_Pos) +#define CAN_TXBTIE_TIE26_Pos 26 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 26 */ +#define CAN_TXBTIE_TIE26 (0x1u << CAN_TXBTIE_TIE26_Pos) +#define CAN_TXBTIE_TIE27_Pos 27 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 27 */ +#define CAN_TXBTIE_TIE27 (0x1u << CAN_TXBTIE_TIE27_Pos) +#define CAN_TXBTIE_TIE28_Pos 28 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 28 */ +#define CAN_TXBTIE_TIE28 (0x1u << CAN_TXBTIE_TIE28_Pos) +#define CAN_TXBTIE_TIE29_Pos 29 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 29 */ +#define CAN_TXBTIE_TIE29 (0x1u << CAN_TXBTIE_TIE29_Pos) +#define CAN_TXBTIE_TIE30_Pos 30 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 30 */ +#define CAN_TXBTIE_TIE30 (0x1u << CAN_TXBTIE_TIE30_Pos) +#define CAN_TXBTIE_TIE31_Pos 31 /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 31 */ +#define CAN_TXBTIE_TIE31 (0x1u << CAN_TXBTIE_TIE31_Pos) +#define CAN_TXBTIE_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBTIE) MASK Register */ + +/* -------- CAN_TXBCIE : (CAN Offset: 0xE4) (R/W 32) Tx Buffer Cancellation Finished Interrupt Enable -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CFIE0:1; /*!< bit: 0 Cancellation Finished Interrupt Enable 0 */ + uint32_t CFIE1:1; /*!< bit: 1 Cancellation Finished Interrupt Enable 1 */ + uint32_t CFIE2:1; /*!< bit: 2 Cancellation Finished Interrupt Enable 2 */ + uint32_t CFIE3:1; /*!< bit: 3 Cancellation Finished Interrupt Enable 3 */ + uint32_t CFIE4:1; /*!< bit: 4 Cancellation Finished Interrupt Enable 4 */ + uint32_t CFIE5:1; /*!< bit: 5 Cancellation Finished Interrupt Enable 5 */ + uint32_t CFIE6:1; /*!< bit: 6 Cancellation Finished Interrupt Enable 6 */ + uint32_t CFIE7:1; /*!< bit: 7 Cancellation Finished Interrupt Enable 7 */ + uint32_t CFIE8:1; /*!< bit: 8 Cancellation Finished Interrupt Enable 8 */ + uint32_t CFIE9:1; /*!< bit: 9 Cancellation Finished Interrupt Enable 9 */ + uint32_t CFIE10:1; /*!< bit: 10 Cancellation Finished Interrupt Enable 10 */ + uint32_t CFIE11:1; /*!< bit: 11 Cancellation Finished Interrupt Enable 11 */ + uint32_t CFIE12:1; /*!< bit: 12 Cancellation Finished Interrupt Enable 12 */ + uint32_t CFIE13:1; /*!< bit: 13 Cancellation Finished Interrupt Enable 13 */ + uint32_t CFIE14:1; /*!< bit: 14 Cancellation Finished Interrupt Enable 14 */ + uint32_t CFIE15:1; /*!< bit: 15 Cancellation Finished Interrupt Enable 15 */ + uint32_t CFIE16:1; /*!< bit: 16 Cancellation Finished Interrupt Enable 16 */ + uint32_t CFIE17:1; /*!< bit: 17 Cancellation Finished Interrupt Enable 17 */ + uint32_t CFIE18:1; /*!< bit: 18 Cancellation Finished Interrupt Enable 18 */ + uint32_t CFIE19:1; /*!< bit: 19 Cancellation Finished Interrupt Enable 19 */ + uint32_t CFIE20:1; /*!< bit: 20 Cancellation Finished Interrupt Enable 20 */ + uint32_t CFIE21:1; /*!< bit: 21 Cancellation Finished Interrupt Enable 21 */ + uint32_t CFIE22:1; /*!< bit: 22 Cancellation Finished Interrupt Enable 22 */ + uint32_t CFIE23:1; /*!< bit: 23 Cancellation Finished Interrupt Enable 23 */ + uint32_t CFIE24:1; /*!< bit: 24 Cancellation Finished Interrupt Enable 24 */ + uint32_t CFIE25:1; /*!< bit: 25 Cancellation Finished Interrupt Enable 25 */ + uint32_t CFIE26:1; /*!< bit: 26 Cancellation Finished Interrupt Enable 26 */ + uint32_t CFIE27:1; /*!< bit: 27 Cancellation Finished Interrupt Enable 27 */ + uint32_t CFIE28:1; /*!< bit: 28 Cancellation Finished Interrupt Enable 28 */ + uint32_t CFIE29:1; /*!< bit: 29 Cancellation Finished Interrupt Enable 29 */ + uint32_t CFIE30:1; /*!< bit: 30 Cancellation Finished Interrupt Enable 30 */ + uint32_t CFIE31:1; /*!< bit: 31 Cancellation Finished Interrupt Enable 31 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBCIE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBCIE_OFFSET 0xE4 /**< \brief (CAN_TXBCIE offset) Tx Buffer Cancellation Finished Interrupt Enable */ +#define CAN_TXBCIE_RESETVALUE 0x00000000u /**< \brief (CAN_TXBCIE reset_value) Tx Buffer Cancellation Finished Interrupt Enable */ + +#define CAN_TXBCIE_CFIE0_Pos 0 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 0 */ +#define CAN_TXBCIE_CFIE0 (0x1u << CAN_TXBCIE_CFIE0_Pos) +#define CAN_TXBCIE_CFIE1_Pos 1 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 1 */ +#define CAN_TXBCIE_CFIE1 (0x1u << CAN_TXBCIE_CFIE1_Pos) +#define CAN_TXBCIE_CFIE2_Pos 2 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 2 */ +#define CAN_TXBCIE_CFIE2 (0x1u << CAN_TXBCIE_CFIE2_Pos) +#define CAN_TXBCIE_CFIE3_Pos 3 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 3 */ +#define CAN_TXBCIE_CFIE3 (0x1u << CAN_TXBCIE_CFIE3_Pos) +#define CAN_TXBCIE_CFIE4_Pos 4 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 4 */ +#define CAN_TXBCIE_CFIE4 (0x1u << CAN_TXBCIE_CFIE4_Pos) +#define CAN_TXBCIE_CFIE5_Pos 5 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 5 */ +#define CAN_TXBCIE_CFIE5 (0x1u << CAN_TXBCIE_CFIE5_Pos) +#define CAN_TXBCIE_CFIE6_Pos 6 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 6 */ +#define CAN_TXBCIE_CFIE6 (0x1u << CAN_TXBCIE_CFIE6_Pos) +#define CAN_TXBCIE_CFIE7_Pos 7 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 7 */ +#define CAN_TXBCIE_CFIE7 (0x1u << CAN_TXBCIE_CFIE7_Pos) +#define CAN_TXBCIE_CFIE8_Pos 8 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 8 */ +#define CAN_TXBCIE_CFIE8 (0x1u << CAN_TXBCIE_CFIE8_Pos) +#define CAN_TXBCIE_CFIE9_Pos 9 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 9 */ +#define CAN_TXBCIE_CFIE9 (0x1u << CAN_TXBCIE_CFIE9_Pos) +#define CAN_TXBCIE_CFIE10_Pos 10 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 10 */ +#define CAN_TXBCIE_CFIE10 (0x1u << CAN_TXBCIE_CFIE10_Pos) +#define CAN_TXBCIE_CFIE11_Pos 11 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 11 */ +#define CAN_TXBCIE_CFIE11 (0x1u << CAN_TXBCIE_CFIE11_Pos) +#define CAN_TXBCIE_CFIE12_Pos 12 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 12 */ +#define CAN_TXBCIE_CFIE12 (0x1u << CAN_TXBCIE_CFIE12_Pos) +#define CAN_TXBCIE_CFIE13_Pos 13 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 13 */ +#define CAN_TXBCIE_CFIE13 (0x1u << CAN_TXBCIE_CFIE13_Pos) +#define CAN_TXBCIE_CFIE14_Pos 14 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 14 */ +#define CAN_TXBCIE_CFIE14 (0x1u << CAN_TXBCIE_CFIE14_Pos) +#define CAN_TXBCIE_CFIE15_Pos 15 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 15 */ +#define CAN_TXBCIE_CFIE15 (0x1u << CAN_TXBCIE_CFIE15_Pos) +#define CAN_TXBCIE_CFIE16_Pos 16 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 16 */ +#define CAN_TXBCIE_CFIE16 (0x1u << CAN_TXBCIE_CFIE16_Pos) +#define CAN_TXBCIE_CFIE17_Pos 17 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 17 */ +#define CAN_TXBCIE_CFIE17 (0x1u << CAN_TXBCIE_CFIE17_Pos) +#define CAN_TXBCIE_CFIE18_Pos 18 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 18 */ +#define CAN_TXBCIE_CFIE18 (0x1u << CAN_TXBCIE_CFIE18_Pos) +#define CAN_TXBCIE_CFIE19_Pos 19 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 19 */ +#define CAN_TXBCIE_CFIE19 (0x1u << CAN_TXBCIE_CFIE19_Pos) +#define CAN_TXBCIE_CFIE20_Pos 20 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 20 */ +#define CAN_TXBCIE_CFIE20 (0x1u << CAN_TXBCIE_CFIE20_Pos) +#define CAN_TXBCIE_CFIE21_Pos 21 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 21 */ +#define CAN_TXBCIE_CFIE21 (0x1u << CAN_TXBCIE_CFIE21_Pos) +#define CAN_TXBCIE_CFIE22_Pos 22 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 22 */ +#define CAN_TXBCIE_CFIE22 (0x1u << CAN_TXBCIE_CFIE22_Pos) +#define CAN_TXBCIE_CFIE23_Pos 23 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 23 */ +#define CAN_TXBCIE_CFIE23 (0x1u << CAN_TXBCIE_CFIE23_Pos) +#define CAN_TXBCIE_CFIE24_Pos 24 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 24 */ +#define CAN_TXBCIE_CFIE24 (0x1u << CAN_TXBCIE_CFIE24_Pos) +#define CAN_TXBCIE_CFIE25_Pos 25 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 25 */ +#define CAN_TXBCIE_CFIE25 (0x1u << CAN_TXBCIE_CFIE25_Pos) +#define CAN_TXBCIE_CFIE26_Pos 26 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 26 */ +#define CAN_TXBCIE_CFIE26 (0x1u << CAN_TXBCIE_CFIE26_Pos) +#define CAN_TXBCIE_CFIE27_Pos 27 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 27 */ +#define CAN_TXBCIE_CFIE27 (0x1u << CAN_TXBCIE_CFIE27_Pos) +#define CAN_TXBCIE_CFIE28_Pos 28 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 28 */ +#define CAN_TXBCIE_CFIE28 (0x1u << CAN_TXBCIE_CFIE28_Pos) +#define CAN_TXBCIE_CFIE29_Pos 29 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 29 */ +#define CAN_TXBCIE_CFIE29 (0x1u << CAN_TXBCIE_CFIE29_Pos) +#define CAN_TXBCIE_CFIE30_Pos 30 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 30 */ +#define CAN_TXBCIE_CFIE30 (0x1u << CAN_TXBCIE_CFIE30_Pos) +#define CAN_TXBCIE_CFIE31_Pos 31 /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 31 */ +#define CAN_TXBCIE_CFIE31 (0x1u << CAN_TXBCIE_CFIE31_Pos) +#define CAN_TXBCIE_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBCIE) MASK Register */ + +/* -------- CAN_TXEFC : (CAN Offset: 0xF0) (R/W 32) Tx Event FIFO Configuration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EFSA:16; /*!< bit: 0..15 Event FIFO Start Address */ + uint32_t EFS:6; /*!< bit: 16..21 Event FIFO Size */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t EFWM:6; /*!< bit: 24..29 Event FIFO Watermark */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXEFC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXEFC_OFFSET 0xF0 /**< \brief (CAN_TXEFC offset) Tx Event FIFO Configuration */ +#define CAN_TXEFC_RESETVALUE 0x00000000u /**< \brief (CAN_TXEFC reset_value) Tx Event FIFO Configuration */ + +#define CAN_TXEFC_EFSA_Pos 0 /**< \brief (CAN_TXEFC) Event FIFO Start Address */ +#define CAN_TXEFC_EFSA_Msk (0xFFFFu << CAN_TXEFC_EFSA_Pos) +#define CAN_TXEFC_EFSA(value) (CAN_TXEFC_EFSA_Msk & ((value) << CAN_TXEFC_EFSA_Pos)) +#define CAN_TXEFC_EFS_Pos 16 /**< \brief (CAN_TXEFC) Event FIFO Size */ +#define CAN_TXEFC_EFS_Msk (0x3Fu << CAN_TXEFC_EFS_Pos) +#define CAN_TXEFC_EFS(value) (CAN_TXEFC_EFS_Msk & ((value) << CAN_TXEFC_EFS_Pos)) +#define CAN_TXEFC_EFWM_Pos 24 /**< \brief (CAN_TXEFC) Event FIFO Watermark */ +#define CAN_TXEFC_EFWM_Msk (0x3Fu << CAN_TXEFC_EFWM_Pos) +#define CAN_TXEFC_EFWM(value) (CAN_TXEFC_EFWM_Msk & ((value) << CAN_TXEFC_EFWM_Pos)) +#define CAN_TXEFC_MASK 0x3F3FFFFFu /**< \brief (CAN_TXEFC) MASK Register */ + +/* -------- CAN_TXEFS : (CAN Offset: 0xF4) (R/ 32) Tx Event FIFO Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EFFL:6; /*!< bit: 0.. 5 Event FIFO Fill Level */ + uint32_t :2; /*!< bit: 6.. 7 Reserved */ + uint32_t EFGI:5; /*!< bit: 8..12 Event FIFO Get Index */ + uint32_t :3; /*!< bit: 13..15 Reserved */ + uint32_t EFPI:5; /*!< bit: 16..20 Event FIFO Put Index */ + uint32_t :3; /*!< bit: 21..23 Reserved */ + uint32_t EFF:1; /*!< bit: 24 Event FIFO Full */ + uint32_t TEFL:1; /*!< bit: 25 Tx Event FIFO Element Lost */ + uint32_t :6; /*!< bit: 26..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXEFS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXEFS_OFFSET 0xF4 /**< \brief (CAN_TXEFS offset) Tx Event FIFO Status */ +#define CAN_TXEFS_RESETVALUE 0x00000000u /**< \brief (CAN_TXEFS reset_value) Tx Event FIFO Status */ + +#define CAN_TXEFS_EFFL_Pos 0 /**< \brief (CAN_TXEFS) Event FIFO Fill Level */ +#define CAN_TXEFS_EFFL_Msk (0x3Fu << CAN_TXEFS_EFFL_Pos) +#define CAN_TXEFS_EFFL(value) (CAN_TXEFS_EFFL_Msk & ((value) << CAN_TXEFS_EFFL_Pos)) +#define CAN_TXEFS_EFGI_Pos 8 /**< \brief (CAN_TXEFS) Event FIFO Get Index */ +#define CAN_TXEFS_EFGI_Msk (0x1Fu << CAN_TXEFS_EFGI_Pos) +#define CAN_TXEFS_EFGI(value) (CAN_TXEFS_EFGI_Msk & ((value) << CAN_TXEFS_EFGI_Pos)) +#define CAN_TXEFS_EFPI_Pos 16 /**< \brief (CAN_TXEFS) Event FIFO Put Index */ +#define CAN_TXEFS_EFPI_Msk (0x1Fu << CAN_TXEFS_EFPI_Pos) +#define CAN_TXEFS_EFPI(value) (CAN_TXEFS_EFPI_Msk & ((value) << CAN_TXEFS_EFPI_Pos)) +#define CAN_TXEFS_EFF_Pos 24 /**< \brief (CAN_TXEFS) Event FIFO Full */ +#define CAN_TXEFS_EFF (0x1u << CAN_TXEFS_EFF_Pos) +#define CAN_TXEFS_TEFL_Pos 25 /**< \brief (CAN_TXEFS) Tx Event FIFO Element Lost */ +#define CAN_TXEFS_TEFL (0x1u << CAN_TXEFS_TEFL_Pos) +#define CAN_TXEFS_MASK 0x031F1F3Fu /**< \brief (CAN_TXEFS) MASK Register */ + +/* -------- CAN_TXEFA : (CAN Offset: 0xF8) (R/W 32) Tx Event FIFO Acknowledge -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EFAI:5; /*!< bit: 0.. 4 Event FIFO Acknowledge Index */ + uint32_t :27; /*!< bit: 5..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXEFA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXEFA_OFFSET 0xF8 /**< \brief (CAN_TXEFA offset) Tx Event FIFO Acknowledge */ +#define CAN_TXEFA_RESETVALUE 0x00000000u /**< \brief (CAN_TXEFA reset_value) Tx Event FIFO Acknowledge */ + +#define CAN_TXEFA_EFAI_Pos 0 /**< \brief (CAN_TXEFA) Event FIFO Acknowledge Index */ +#define CAN_TXEFA_EFAI_Msk (0x1Fu << CAN_TXEFA_EFAI_Pos) +#define CAN_TXEFA_EFAI(value) (CAN_TXEFA_EFAI_Msk & ((value) << CAN_TXEFA_EFAI_Pos)) +#define CAN_TXEFA_MASK 0x0000001Fu /**< \brief (CAN_TXEFA) MASK Register */ + +/* -------- CAN_RXBE_0 : (CAN Offset: 0x00) (R/W 32) Rx Buffer Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ID:29; /*!< bit: 0..28 Identifier */ + uint32_t RTR:1; /*!< bit: 29 Remote Transmission Request */ + uint32_t XTD:1; /*!< bit: 30 Extended Identifier */ + uint32_t ESI:1; /*!< bit: 31 Error State Indicator */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXBE_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXBE_0_OFFSET 0x00 /**< \brief (CAN_RXBE_0 offset) Rx Buffer Element 0 */ +#define CAN_RXBE_0_RESETVALUE 0x00000000u /**< \brief (CAN_RXBE_0 reset_value) Rx Buffer Element 0 */ + +#define CAN_RXBE_0_ID_Pos 0 /**< \brief (CAN_RXBE_0) Identifier */ +#define CAN_RXBE_0_ID_Msk (0x1FFFFFFFu << CAN_RXBE_0_ID_Pos) +#define CAN_RXBE_0_ID(value) (CAN_RXBE_0_ID_Msk & ((value) << CAN_RXBE_0_ID_Pos)) +#define CAN_RXBE_0_RTR_Pos 29 /**< \brief (CAN_RXBE_0) Remote Transmission Request */ +#define CAN_RXBE_0_RTR (0x1u << CAN_RXBE_0_RTR_Pos) +#define CAN_RXBE_0_XTD_Pos 30 /**< \brief (CAN_RXBE_0) Extended Identifier */ +#define CAN_RXBE_0_XTD (0x1u << CAN_RXBE_0_XTD_Pos) +#define CAN_RXBE_0_ESI_Pos 31 /**< \brief (CAN_RXBE_0) Error State Indicator */ +#define CAN_RXBE_0_ESI (0x1u << CAN_RXBE_0_ESI_Pos) +#define CAN_RXBE_0_MASK 0xFFFFFFFFu /**< \brief (CAN_RXBE_0) MASK Register */ + +/* -------- CAN_RXBE_1 : (CAN Offset: 0x04) (R/W 32) Rx Buffer Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RXTS:16; /*!< bit: 0..15 Rx Timestamp */ + uint32_t DLC:4; /*!< bit: 16..19 Data Length Code */ + uint32_t BRS:1; /*!< bit: 20 Bit Rate Search */ + uint32_t FDF:1; /*!< bit: 21 FD Format */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t FIDX:7; /*!< bit: 24..30 Filter Index */ + uint32_t ANMF:1; /*!< bit: 31 Accepted Non-matching Frame */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXBE_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXBE_1_OFFSET 0x04 /**< \brief (CAN_RXBE_1 offset) Rx Buffer Element 1 */ +#define CAN_RXBE_1_RESETVALUE 0x00000000u /**< \brief (CAN_RXBE_1 reset_value) Rx Buffer Element 1 */ + +#define CAN_RXBE_1_RXTS_Pos 0 /**< \brief (CAN_RXBE_1) Rx Timestamp */ +#define CAN_RXBE_1_RXTS_Msk (0xFFFFu << CAN_RXBE_1_RXTS_Pos) +#define CAN_RXBE_1_RXTS(value) (CAN_RXBE_1_RXTS_Msk & ((value) << CAN_RXBE_1_RXTS_Pos)) +#define CAN_RXBE_1_DLC_Pos 16 /**< \brief (CAN_RXBE_1) Data Length Code */ +#define CAN_RXBE_1_DLC_Msk (0xFu << CAN_RXBE_1_DLC_Pos) +#define CAN_RXBE_1_DLC(value) (CAN_RXBE_1_DLC_Msk & ((value) << CAN_RXBE_1_DLC_Pos)) +#define CAN_RXBE_1_BRS_Pos 20 /**< \brief (CAN_RXBE_1) Bit Rate Search */ +#define CAN_RXBE_1_BRS (0x1u << CAN_RXBE_1_BRS_Pos) +#define CAN_RXBE_1_FDF_Pos 21 /**< \brief (CAN_RXBE_1) FD Format */ +#define CAN_RXBE_1_FDF (0x1u << CAN_RXBE_1_FDF_Pos) +#define CAN_RXBE_1_FIDX_Pos 24 /**< \brief (CAN_RXBE_1) Filter Index */ +#define CAN_RXBE_1_FIDX_Msk (0x7Fu << CAN_RXBE_1_FIDX_Pos) +#define CAN_RXBE_1_FIDX(value) (CAN_RXBE_1_FIDX_Msk & ((value) << CAN_RXBE_1_FIDX_Pos)) +#define CAN_RXBE_1_ANMF_Pos 31 /**< \brief (CAN_RXBE_1) Accepted Non-matching Frame */ +#define CAN_RXBE_1_ANMF (0x1u << CAN_RXBE_1_ANMF_Pos) +#define CAN_RXBE_1_MASK 0xFF3FFFFFu /**< \brief (CAN_RXBE_1) MASK Register */ + +/* -------- CAN_RXBE_DATA : (CAN Offset: 0x08) (R/W 32) Rx Buffer Element Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DB0:8; /*!< bit: 0.. 7 Data Byte 0 */ + uint32_t DB1:8; /*!< bit: 8..15 Data Byte 1 */ + uint32_t DB2:8; /*!< bit: 16..23 Data Byte 2 */ + uint32_t DB3:8; /*!< bit: 24..31 Data Byte 3 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXBE_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXBE_DATA_OFFSET 0x08 /**< \brief (CAN_RXBE_DATA offset) Rx Buffer Element Data */ +#define CAN_RXBE_DATA_RESETVALUE 0x00000000u /**< \brief (CAN_RXBE_DATA reset_value) Rx Buffer Element Data */ + +#define CAN_RXBE_DATA_DB0_Pos 0 /**< \brief (CAN_RXBE_DATA) Data Byte 0 */ +#define CAN_RXBE_DATA_DB0_Msk (0xFFu << CAN_RXBE_DATA_DB0_Pos) +#define CAN_RXBE_DATA_DB0(value) (CAN_RXBE_DATA_DB0_Msk & ((value) << CAN_RXBE_DATA_DB0_Pos)) +#define CAN_RXBE_DATA_DB1_Pos 8 /**< \brief (CAN_RXBE_DATA) Data Byte 1 */ +#define CAN_RXBE_DATA_DB1_Msk (0xFFu << CAN_RXBE_DATA_DB1_Pos) +#define CAN_RXBE_DATA_DB1(value) (CAN_RXBE_DATA_DB1_Msk & ((value) << CAN_RXBE_DATA_DB1_Pos)) +#define CAN_RXBE_DATA_DB2_Pos 16 /**< \brief (CAN_RXBE_DATA) Data Byte 2 */ +#define CAN_RXBE_DATA_DB2_Msk (0xFFu << CAN_RXBE_DATA_DB2_Pos) +#define CAN_RXBE_DATA_DB2(value) (CAN_RXBE_DATA_DB2_Msk & ((value) << CAN_RXBE_DATA_DB2_Pos)) +#define CAN_RXBE_DATA_DB3_Pos 24 /**< \brief (CAN_RXBE_DATA) Data Byte 3 */ +#define CAN_RXBE_DATA_DB3_Msk (0xFFu << CAN_RXBE_DATA_DB3_Pos) +#define CAN_RXBE_DATA_DB3(value) (CAN_RXBE_DATA_DB3_Msk & ((value) << CAN_RXBE_DATA_DB3_Pos)) +#define CAN_RXBE_DATA_MASK 0xFFFFFFFFu /**< \brief (CAN_RXBE_DATA) MASK Register */ + +/* -------- CAN_RXF0E_0 : (CAN Offset: 0x00) (R/W 32) Rx FIFO 0 Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ID:29; /*!< bit: 0..28 Identifier */ + uint32_t RTR:1; /*!< bit: 29 Remote Transmission Request */ + uint32_t XTD:1; /*!< bit: 30 Extended Identifier */ + uint32_t ESI:1; /*!< bit: 31 Error State Indicator */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0E_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0E_0_OFFSET 0x00 /**< \brief (CAN_RXF0E_0 offset) Rx FIFO 0 Element 0 */ +#define CAN_RXF0E_0_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0E_0 reset_value) Rx FIFO 0 Element 0 */ + +#define CAN_RXF0E_0_ID_Pos 0 /**< \brief (CAN_RXF0E_0) Identifier */ +#define CAN_RXF0E_0_ID_Msk (0x1FFFFFFFu << CAN_RXF0E_0_ID_Pos) +#define CAN_RXF0E_0_ID(value) (CAN_RXF0E_0_ID_Msk & ((value) << CAN_RXF0E_0_ID_Pos)) +#define CAN_RXF0E_0_RTR_Pos 29 /**< \brief (CAN_RXF0E_0) Remote Transmission Request */ +#define CAN_RXF0E_0_RTR (0x1u << CAN_RXF0E_0_RTR_Pos) +#define CAN_RXF0E_0_XTD_Pos 30 /**< \brief (CAN_RXF0E_0) Extended Identifier */ +#define CAN_RXF0E_0_XTD (0x1u << CAN_RXF0E_0_XTD_Pos) +#define CAN_RXF0E_0_ESI_Pos 31 /**< \brief (CAN_RXF0E_0) Error State Indicator */ +#define CAN_RXF0E_0_ESI (0x1u << CAN_RXF0E_0_ESI_Pos) +#define CAN_RXF0E_0_MASK 0xFFFFFFFFu /**< \brief (CAN_RXF0E_0) MASK Register */ + +/* -------- CAN_RXF0E_1 : (CAN Offset: 0x04) (R/W 32) Rx FIFO 0 Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RXTS:16; /*!< bit: 0..15 Rx Timestamp */ + uint32_t DLC:4; /*!< bit: 16..19 Data Length Code */ + uint32_t BRS:1; /*!< bit: 20 Bit Rate Search */ + uint32_t FDF:1; /*!< bit: 21 FD Format */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t FIDX:7; /*!< bit: 24..30 Filter Index */ + uint32_t ANMF:1; /*!< bit: 31 Accepted Non-matching Frame */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0E_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0E_1_OFFSET 0x04 /**< \brief (CAN_RXF0E_1 offset) Rx FIFO 0 Element 1 */ +#define CAN_RXF0E_1_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0E_1 reset_value) Rx FIFO 0 Element 1 */ + +#define CAN_RXF0E_1_RXTS_Pos 0 /**< \brief (CAN_RXF0E_1) Rx Timestamp */ +#define CAN_RXF0E_1_RXTS_Msk (0xFFFFu << CAN_RXF0E_1_RXTS_Pos) +#define CAN_RXF0E_1_RXTS(value) (CAN_RXF0E_1_RXTS_Msk & ((value) << CAN_RXF0E_1_RXTS_Pos)) +#define CAN_RXF0E_1_DLC_Pos 16 /**< \brief (CAN_RXF0E_1) Data Length Code */ +#define CAN_RXF0E_1_DLC_Msk (0xFu << CAN_RXF0E_1_DLC_Pos) +#define CAN_RXF0E_1_DLC(value) (CAN_RXF0E_1_DLC_Msk & ((value) << CAN_RXF0E_1_DLC_Pos)) +#define CAN_RXF0E_1_BRS_Pos 20 /**< \brief (CAN_RXF0E_1) Bit Rate Search */ +#define CAN_RXF0E_1_BRS (0x1u << CAN_RXF0E_1_BRS_Pos) +#define CAN_RXF0E_1_FDF_Pos 21 /**< \brief (CAN_RXF0E_1) FD Format */ +#define CAN_RXF0E_1_FDF (0x1u << CAN_RXF0E_1_FDF_Pos) +#define CAN_RXF0E_1_FIDX_Pos 24 /**< \brief (CAN_RXF0E_1) Filter Index */ +#define CAN_RXF0E_1_FIDX_Msk (0x7Fu << CAN_RXF0E_1_FIDX_Pos) +#define CAN_RXF0E_1_FIDX(value) (CAN_RXF0E_1_FIDX_Msk & ((value) << CAN_RXF0E_1_FIDX_Pos)) +#define CAN_RXF0E_1_ANMF_Pos 31 /**< \brief (CAN_RXF0E_1) Accepted Non-matching Frame */ +#define CAN_RXF0E_1_ANMF (0x1u << CAN_RXF0E_1_ANMF_Pos) +#define CAN_RXF0E_1_MASK 0xFF3FFFFFu /**< \brief (CAN_RXF0E_1) MASK Register */ + +/* -------- CAN_RXF0E_DATA : (CAN Offset: 0x08) (R/W 32) Rx FIFO 0 Element Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DB0:8; /*!< bit: 0.. 7 Data Byte 0 */ + uint32_t DB1:8; /*!< bit: 8..15 Data Byte 1 */ + uint32_t DB2:8; /*!< bit: 16..23 Data Byte 2 */ + uint32_t DB3:8; /*!< bit: 24..31 Data Byte 3 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF0E_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF0E_DATA_OFFSET 0x08 /**< \brief (CAN_RXF0E_DATA offset) Rx FIFO 0 Element Data */ +#define CAN_RXF0E_DATA_RESETVALUE 0x00000000u /**< \brief (CAN_RXF0E_DATA reset_value) Rx FIFO 0 Element Data */ + +#define CAN_RXF0E_DATA_DB0_Pos 0 /**< \brief (CAN_RXF0E_DATA) Data Byte 0 */ +#define CAN_RXF0E_DATA_DB0_Msk (0xFFu << CAN_RXF0E_DATA_DB0_Pos) +#define CAN_RXF0E_DATA_DB0(value) (CAN_RXF0E_DATA_DB0_Msk & ((value) << CAN_RXF0E_DATA_DB0_Pos)) +#define CAN_RXF0E_DATA_DB1_Pos 8 /**< \brief (CAN_RXF0E_DATA) Data Byte 1 */ +#define CAN_RXF0E_DATA_DB1_Msk (0xFFu << CAN_RXF0E_DATA_DB1_Pos) +#define CAN_RXF0E_DATA_DB1(value) (CAN_RXF0E_DATA_DB1_Msk & ((value) << CAN_RXF0E_DATA_DB1_Pos)) +#define CAN_RXF0E_DATA_DB2_Pos 16 /**< \brief (CAN_RXF0E_DATA) Data Byte 2 */ +#define CAN_RXF0E_DATA_DB2_Msk (0xFFu << CAN_RXF0E_DATA_DB2_Pos) +#define CAN_RXF0E_DATA_DB2(value) (CAN_RXF0E_DATA_DB2_Msk & ((value) << CAN_RXF0E_DATA_DB2_Pos)) +#define CAN_RXF0E_DATA_DB3_Pos 24 /**< \brief (CAN_RXF0E_DATA) Data Byte 3 */ +#define CAN_RXF0E_DATA_DB3_Msk (0xFFu << CAN_RXF0E_DATA_DB3_Pos) +#define CAN_RXF0E_DATA_DB3(value) (CAN_RXF0E_DATA_DB3_Msk & ((value) << CAN_RXF0E_DATA_DB3_Pos)) +#define CAN_RXF0E_DATA_MASK 0xFFFFFFFFu /**< \brief (CAN_RXF0E_DATA) MASK Register */ + +/* -------- CAN_RXF1E_0 : (CAN Offset: 0x00) (R/W 32) Rx FIFO 1 Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ID:29; /*!< bit: 0..28 Identifier */ + uint32_t RTR:1; /*!< bit: 29 Remote Transmission Request */ + uint32_t XTD:1; /*!< bit: 30 Extended Identifier */ + uint32_t ESI:1; /*!< bit: 31 Error State Indicator */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1E_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1E_0_OFFSET 0x00 /**< \brief (CAN_RXF1E_0 offset) Rx FIFO 1 Element 0 */ +#define CAN_RXF1E_0_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1E_0 reset_value) Rx FIFO 1 Element 0 */ + +#define CAN_RXF1E_0_ID_Pos 0 /**< \brief (CAN_RXF1E_0) Identifier */ +#define CAN_RXF1E_0_ID_Msk (0x1FFFFFFFu << CAN_RXF1E_0_ID_Pos) +#define CAN_RXF1E_0_ID(value) (CAN_RXF1E_0_ID_Msk & ((value) << CAN_RXF1E_0_ID_Pos)) +#define CAN_RXF1E_0_RTR_Pos 29 /**< \brief (CAN_RXF1E_0) Remote Transmission Request */ +#define CAN_RXF1E_0_RTR (0x1u << CAN_RXF1E_0_RTR_Pos) +#define CAN_RXF1E_0_XTD_Pos 30 /**< \brief (CAN_RXF1E_0) Extended Identifier */ +#define CAN_RXF1E_0_XTD (0x1u << CAN_RXF1E_0_XTD_Pos) +#define CAN_RXF1E_0_ESI_Pos 31 /**< \brief (CAN_RXF1E_0) Error State Indicator */ +#define CAN_RXF1E_0_ESI (0x1u << CAN_RXF1E_0_ESI_Pos) +#define CAN_RXF1E_0_MASK 0xFFFFFFFFu /**< \brief (CAN_RXF1E_0) MASK Register */ + +/* -------- CAN_RXF1E_1 : (CAN Offset: 0x04) (R/W 32) Rx FIFO 1 Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t RXTS:16; /*!< bit: 0..15 Rx Timestamp */ + uint32_t DLC:4; /*!< bit: 16..19 Data Length Code */ + uint32_t BRS:1; /*!< bit: 20 Bit Rate Search */ + uint32_t FDF:1; /*!< bit: 21 FD Format */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t FIDX:7; /*!< bit: 24..30 Filter Index */ + uint32_t ANMF:1; /*!< bit: 31 Accepted Non-matching Frame */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1E_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1E_1_OFFSET 0x04 /**< \brief (CAN_RXF1E_1 offset) Rx FIFO 1 Element 1 */ +#define CAN_RXF1E_1_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1E_1 reset_value) Rx FIFO 1 Element 1 */ + +#define CAN_RXF1E_1_RXTS_Pos 0 /**< \brief (CAN_RXF1E_1) Rx Timestamp */ +#define CAN_RXF1E_1_RXTS_Msk (0xFFFFu << CAN_RXF1E_1_RXTS_Pos) +#define CAN_RXF1E_1_RXTS(value) (CAN_RXF1E_1_RXTS_Msk & ((value) << CAN_RXF1E_1_RXTS_Pos)) +#define CAN_RXF1E_1_DLC_Pos 16 /**< \brief (CAN_RXF1E_1) Data Length Code */ +#define CAN_RXF1E_1_DLC_Msk (0xFu << CAN_RXF1E_1_DLC_Pos) +#define CAN_RXF1E_1_DLC(value) (CAN_RXF1E_1_DLC_Msk & ((value) << CAN_RXF1E_1_DLC_Pos)) +#define CAN_RXF1E_1_BRS_Pos 20 /**< \brief (CAN_RXF1E_1) Bit Rate Search */ +#define CAN_RXF1E_1_BRS (0x1u << CAN_RXF1E_1_BRS_Pos) +#define CAN_RXF1E_1_FDF_Pos 21 /**< \brief (CAN_RXF1E_1) FD Format */ +#define CAN_RXF1E_1_FDF (0x1u << CAN_RXF1E_1_FDF_Pos) +#define CAN_RXF1E_1_FIDX_Pos 24 /**< \brief (CAN_RXF1E_1) Filter Index */ +#define CAN_RXF1E_1_FIDX_Msk (0x7Fu << CAN_RXF1E_1_FIDX_Pos) +#define CAN_RXF1E_1_FIDX(value) (CAN_RXF1E_1_FIDX_Msk & ((value) << CAN_RXF1E_1_FIDX_Pos)) +#define CAN_RXF1E_1_ANMF_Pos 31 /**< \brief (CAN_RXF1E_1) Accepted Non-matching Frame */ +#define CAN_RXF1E_1_ANMF (0x1u << CAN_RXF1E_1_ANMF_Pos) +#define CAN_RXF1E_1_MASK 0xFF3FFFFFu /**< \brief (CAN_RXF1E_1) MASK Register */ + +/* -------- CAN_RXF1E_DATA : (CAN Offset: 0x08) (R/W 32) Rx FIFO 1 Element Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DB0:8; /*!< bit: 0.. 7 Data Byte 0 */ + uint32_t DB1:8; /*!< bit: 8..15 Data Byte 1 */ + uint32_t DB2:8; /*!< bit: 16..23 Data Byte 2 */ + uint32_t DB3:8; /*!< bit: 24..31 Data Byte 3 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_RXF1E_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_RXF1E_DATA_OFFSET 0x08 /**< \brief (CAN_RXF1E_DATA offset) Rx FIFO 1 Element Data */ +#define CAN_RXF1E_DATA_RESETVALUE 0x00000000u /**< \brief (CAN_RXF1E_DATA reset_value) Rx FIFO 1 Element Data */ + +#define CAN_RXF1E_DATA_DB0_Pos 0 /**< \brief (CAN_RXF1E_DATA) Data Byte 0 */ +#define CAN_RXF1E_DATA_DB0_Msk (0xFFu << CAN_RXF1E_DATA_DB0_Pos) +#define CAN_RXF1E_DATA_DB0(value) (CAN_RXF1E_DATA_DB0_Msk & ((value) << CAN_RXF1E_DATA_DB0_Pos)) +#define CAN_RXF1E_DATA_DB1_Pos 8 /**< \brief (CAN_RXF1E_DATA) Data Byte 1 */ +#define CAN_RXF1E_DATA_DB1_Msk (0xFFu << CAN_RXF1E_DATA_DB1_Pos) +#define CAN_RXF1E_DATA_DB1(value) (CAN_RXF1E_DATA_DB1_Msk & ((value) << CAN_RXF1E_DATA_DB1_Pos)) +#define CAN_RXF1E_DATA_DB2_Pos 16 /**< \brief (CAN_RXF1E_DATA) Data Byte 2 */ +#define CAN_RXF1E_DATA_DB2_Msk (0xFFu << CAN_RXF1E_DATA_DB2_Pos) +#define CAN_RXF1E_DATA_DB2(value) (CAN_RXF1E_DATA_DB2_Msk & ((value) << CAN_RXF1E_DATA_DB2_Pos)) +#define CAN_RXF1E_DATA_DB3_Pos 24 /**< \brief (CAN_RXF1E_DATA) Data Byte 3 */ +#define CAN_RXF1E_DATA_DB3_Msk (0xFFu << CAN_RXF1E_DATA_DB3_Pos) +#define CAN_RXF1E_DATA_DB3(value) (CAN_RXF1E_DATA_DB3_Msk & ((value) << CAN_RXF1E_DATA_DB3_Pos)) +#define CAN_RXF1E_DATA_MASK 0xFFFFFFFFu /**< \brief (CAN_RXF1E_DATA) MASK Register */ + +/* -------- CAN_SIDFE_0 : (CAN Offset: 0x00) (R/W 32) Standard Message ID Filter Element -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SFID2:11; /*!< bit: 0..10 Standard Filter ID 2 */ + uint32_t :5; /*!< bit: 11..15 Reserved */ + uint32_t SFID1:11; /*!< bit: 16..26 Standard Filter ID 1 */ + uint32_t SFEC:3; /*!< bit: 27..29 Standard Filter Element Configuration */ + uint32_t SFT:2; /*!< bit: 30..31 Standard Filter Type */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_SIDFE_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_SIDFE_0_OFFSET 0x00 /**< \brief (CAN_SIDFE_0 offset) Standard Message ID Filter Element */ +#define CAN_SIDFE_0_RESETVALUE 0x00000000u /**< \brief (CAN_SIDFE_0 reset_value) Standard Message ID Filter Element */ + +#define CAN_SIDFE_0_SFID2_Pos 0 /**< \brief (CAN_SIDFE_0) Standard Filter ID 2 */ +#define CAN_SIDFE_0_SFID2_Msk (0x7FFu << CAN_SIDFE_0_SFID2_Pos) +#define CAN_SIDFE_0_SFID2(value) (CAN_SIDFE_0_SFID2_Msk & ((value) << CAN_SIDFE_0_SFID2_Pos)) +#define CAN_SIDFE_0_SFID1_Pos 16 /**< \brief (CAN_SIDFE_0) Standard Filter ID 1 */ +#define CAN_SIDFE_0_SFID1_Msk (0x7FFu << CAN_SIDFE_0_SFID1_Pos) +#define CAN_SIDFE_0_SFID1(value) (CAN_SIDFE_0_SFID1_Msk & ((value) << CAN_SIDFE_0_SFID1_Pos)) +#define CAN_SIDFE_0_SFEC_Pos 27 /**< \brief (CAN_SIDFE_0) Standard Filter Element Configuration */ +#define CAN_SIDFE_0_SFEC_Msk (0x7u << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC(value) (CAN_SIDFE_0_SFEC_Msk & ((value) << CAN_SIDFE_0_SFEC_Pos)) +#define CAN_SIDFE_0_SFEC_DISABLE_Val 0x0u /**< \brief (CAN_SIDFE_0) Disable filter element */ +#define CAN_SIDFE_0_SFEC_STF0M_Val 0x1u /**< \brief (CAN_SIDFE_0) Store in Rx FIFO 0 if filter match */ +#define CAN_SIDFE_0_SFEC_STF1M_Val 0x2u /**< \brief (CAN_SIDFE_0) Store in Rx FIFO 1 if filter match */ +#define CAN_SIDFE_0_SFEC_REJECT_Val 0x3u /**< \brief (CAN_SIDFE_0) Reject ID if filter match */ +#define CAN_SIDFE_0_SFEC_PRIORITY_Val 0x4u /**< \brief (CAN_SIDFE_0) Set priority if filter match */ +#define CAN_SIDFE_0_SFEC_PRIF0M_Val 0x5u /**< \brief (CAN_SIDFE_0) Set priority and store in FIFO 0 if filter match */ +#define CAN_SIDFE_0_SFEC_PRIF1M_Val 0x6u /**< \brief (CAN_SIDFE_0) Set priority and store in FIFO 1 if filter match */ +#define CAN_SIDFE_0_SFEC_STRXBUF_Val 0x7u /**< \brief (CAN_SIDFE_0) Store into Rx Buffer */ +#define CAN_SIDFE_0_SFEC_DISABLE (CAN_SIDFE_0_SFEC_DISABLE_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_STF0M (CAN_SIDFE_0_SFEC_STF0M_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_STF1M (CAN_SIDFE_0_SFEC_STF1M_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_REJECT (CAN_SIDFE_0_SFEC_REJECT_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_PRIORITY (CAN_SIDFE_0_SFEC_PRIORITY_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_PRIF0M (CAN_SIDFE_0_SFEC_PRIF0M_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_PRIF1M (CAN_SIDFE_0_SFEC_PRIF1M_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFEC_STRXBUF (CAN_SIDFE_0_SFEC_STRXBUF_Val << CAN_SIDFE_0_SFEC_Pos) +#define CAN_SIDFE_0_SFT_Pos 30 /**< \brief (CAN_SIDFE_0) Standard Filter Type */ +#define CAN_SIDFE_0_SFT_Msk (0x3u << CAN_SIDFE_0_SFT_Pos) +#define CAN_SIDFE_0_SFT(value) (CAN_SIDFE_0_SFT_Msk & ((value) << CAN_SIDFE_0_SFT_Pos)) +#define CAN_SIDFE_0_SFT_RANGE_Val 0x0u /**< \brief (CAN_SIDFE_0) Range filter from SFID1 to SFID2 */ +#define CAN_SIDFE_0_SFT_DUAL_Val 0x1u /**< \brief (CAN_SIDFE_0) Dual ID filter for SFID1 or SFID2 */ +#define CAN_SIDFE_0_SFT_CLASSIC_Val 0x2u /**< \brief (CAN_SIDFE_0) Classic filter */ +#define CAN_SIDFE_0_SFT_RANGE (CAN_SIDFE_0_SFT_RANGE_Val << CAN_SIDFE_0_SFT_Pos) +#define CAN_SIDFE_0_SFT_DUAL (CAN_SIDFE_0_SFT_DUAL_Val << CAN_SIDFE_0_SFT_Pos) +#define CAN_SIDFE_0_SFT_CLASSIC (CAN_SIDFE_0_SFT_CLASSIC_Val << CAN_SIDFE_0_SFT_Pos) +#define CAN_SIDFE_0_MASK 0xFFFF07FFu /**< \brief (CAN_SIDFE_0) MASK Register */ + +/* -------- CAN_TXBE_0 : (CAN Offset: 0x00) (R/W 32) Tx Buffer Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ID:29; /*!< bit: 0..28 Identifier */ + uint32_t RTR:1; /*!< bit: 29 Remote Transmission Request */ + uint32_t XTD:1; /*!< bit: 30 Extended Identifier */ + uint32_t ESI:1; /*!< bit: 31 Error State Indicator */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBE_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBE_0_OFFSET 0x00 /**< \brief (CAN_TXBE_0 offset) Tx Buffer Element 0 */ +#define CAN_TXBE_0_RESETVALUE 0x00000000u /**< \brief (CAN_TXBE_0 reset_value) Tx Buffer Element 0 */ + +#define CAN_TXBE_0_ID_Pos 0 /**< \brief (CAN_TXBE_0) Identifier */ +#define CAN_TXBE_0_ID_Msk (0x1FFFFFFFu << CAN_TXBE_0_ID_Pos) +#define CAN_TXBE_0_ID(value) (CAN_TXBE_0_ID_Msk & ((value) << CAN_TXBE_0_ID_Pos)) +#define CAN_TXBE_0_RTR_Pos 29 /**< \brief (CAN_TXBE_0) Remote Transmission Request */ +#define CAN_TXBE_0_RTR (0x1u << CAN_TXBE_0_RTR_Pos) +#define CAN_TXBE_0_XTD_Pos 30 /**< \brief (CAN_TXBE_0) Extended Identifier */ +#define CAN_TXBE_0_XTD (0x1u << CAN_TXBE_0_XTD_Pos) +#define CAN_TXBE_0_ESI_Pos 31 /**< \brief (CAN_TXBE_0) Error State Indicator */ +#define CAN_TXBE_0_ESI (0x1u << CAN_TXBE_0_ESI_Pos) +#define CAN_TXBE_0_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBE_0) MASK Register */ + +/* -------- CAN_TXBE_1 : (CAN Offset: 0x04) (R/W 32) Tx Buffer Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :16; /*!< bit: 0..15 Reserved */ + uint32_t DLC:4; /*!< bit: 16..19 Identifier */ + uint32_t BRS:1; /*!< bit: 20 Bit Rate Search */ + uint32_t FDF:1; /*!< bit: 21 FD Format */ + uint32_t :1; /*!< bit: 22 Reserved */ + uint32_t EFC:1; /*!< bit: 23 Event FIFO Control */ + uint32_t MM:8; /*!< bit: 24..31 Message Marker */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBE_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBE_1_OFFSET 0x04 /**< \brief (CAN_TXBE_1 offset) Tx Buffer Element 1 */ +#define CAN_TXBE_1_RESETVALUE 0x00000000u /**< \brief (CAN_TXBE_1 reset_value) Tx Buffer Element 1 */ + +#define CAN_TXBE_1_DLC_Pos 16 /**< \brief (CAN_TXBE_1) Identifier */ +#define CAN_TXBE_1_DLC_Msk (0xFu << CAN_TXBE_1_DLC_Pos) +#define CAN_TXBE_1_DLC(value) (CAN_TXBE_1_DLC_Msk & ((value) << CAN_TXBE_1_DLC_Pos)) +#define CAN_TXBE_1_BRS_Pos 20 /**< \brief (CAN_TXBE_1) Bit Rate Search */ +#define CAN_TXBE_1_BRS (0x1u << CAN_TXBE_1_BRS_Pos) +#define CAN_TXBE_1_FDF_Pos 21 /**< \brief (CAN_TXBE_1) FD Format */ +#define CAN_TXBE_1_FDF (0x1u << CAN_TXBE_1_FDF_Pos) +#define CAN_TXBE_1_EFC_Pos 23 /**< \brief (CAN_TXBE_1) Event FIFO Control */ +#define CAN_TXBE_1_EFC (0x1u << CAN_TXBE_1_EFC_Pos) +#define CAN_TXBE_1_MM_Pos 24 /**< \brief (CAN_TXBE_1) Message Marker */ +#define CAN_TXBE_1_MM_Msk (0xFFu << CAN_TXBE_1_MM_Pos) +#define CAN_TXBE_1_MM(value) (CAN_TXBE_1_MM_Msk & ((value) << CAN_TXBE_1_MM_Pos)) +#define CAN_TXBE_1_MASK 0xFFBF0000u /**< \brief (CAN_TXBE_1) MASK Register */ + +/* -------- CAN_TXBE_DATA : (CAN Offset: 0x08) (R/W 32) Tx Buffer Element Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DB0:8; /*!< bit: 0.. 7 Data Byte 0 */ + uint32_t DB1:8; /*!< bit: 8..15 Data Byte 1 */ + uint32_t DB2:8; /*!< bit: 16..23 Data Byte 2 */ + uint32_t DB3:8; /*!< bit: 24..31 Data Byte 3 */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXBE_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXBE_DATA_OFFSET 0x08 /**< \brief (CAN_TXBE_DATA offset) Tx Buffer Element Data */ +#define CAN_TXBE_DATA_RESETVALUE 0x00000000u /**< \brief (CAN_TXBE_DATA reset_value) Tx Buffer Element Data */ + +#define CAN_TXBE_DATA_DB0_Pos 0 /**< \brief (CAN_TXBE_DATA) Data Byte 0 */ +#define CAN_TXBE_DATA_DB0_Msk (0xFFu << CAN_TXBE_DATA_DB0_Pos) +#define CAN_TXBE_DATA_DB0(value) (CAN_TXBE_DATA_DB0_Msk & ((value) << CAN_TXBE_DATA_DB0_Pos)) +#define CAN_TXBE_DATA_DB1_Pos 8 /**< \brief (CAN_TXBE_DATA) Data Byte 1 */ +#define CAN_TXBE_DATA_DB1_Msk (0xFFu << CAN_TXBE_DATA_DB1_Pos) +#define CAN_TXBE_DATA_DB1(value) (CAN_TXBE_DATA_DB1_Msk & ((value) << CAN_TXBE_DATA_DB1_Pos)) +#define CAN_TXBE_DATA_DB2_Pos 16 /**< \brief (CAN_TXBE_DATA) Data Byte 2 */ +#define CAN_TXBE_DATA_DB2_Msk (0xFFu << CAN_TXBE_DATA_DB2_Pos) +#define CAN_TXBE_DATA_DB2(value) (CAN_TXBE_DATA_DB2_Msk & ((value) << CAN_TXBE_DATA_DB2_Pos)) +#define CAN_TXBE_DATA_DB3_Pos 24 /**< \brief (CAN_TXBE_DATA) Data Byte 3 */ +#define CAN_TXBE_DATA_DB3_Msk (0xFFu << CAN_TXBE_DATA_DB3_Pos) +#define CAN_TXBE_DATA_DB3(value) (CAN_TXBE_DATA_DB3_Msk & ((value) << CAN_TXBE_DATA_DB3_Pos)) +#define CAN_TXBE_DATA_MASK 0xFFFFFFFFu /**< \brief (CAN_TXBE_DATA) MASK Register */ + +/* -------- CAN_TXEFE_0 : (CAN Offset: 0x00) (R/W 32) Tx Event FIFO Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ID:29; /*!< bit: 0..28 Identifier */ + uint32_t RTR:1; /*!< bit: 29 Remote Transmission Request */ + uint32_t XTD:1; /*!< bit: 30 Extended Indentifier */ + uint32_t ESI:1; /*!< bit: 31 Error State Indicator */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXEFE_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXEFE_0_OFFSET 0x00 /**< \brief (CAN_TXEFE_0 offset) Tx Event FIFO Element 0 */ +#define CAN_TXEFE_0_RESETVALUE 0x00000000u /**< \brief (CAN_TXEFE_0 reset_value) Tx Event FIFO Element 0 */ + +#define CAN_TXEFE_0_ID_Pos 0 /**< \brief (CAN_TXEFE_0) Identifier */ +#define CAN_TXEFE_0_ID_Msk (0x1FFFFFFFu << CAN_TXEFE_0_ID_Pos) +#define CAN_TXEFE_0_ID(value) (CAN_TXEFE_0_ID_Msk & ((value) << CAN_TXEFE_0_ID_Pos)) +#define CAN_TXEFE_0_RTR_Pos 29 /**< \brief (CAN_TXEFE_0) Remote Transmission Request */ +#define CAN_TXEFE_0_RTR (0x1u << CAN_TXEFE_0_RTR_Pos) +#define CAN_TXEFE_0_XTD_Pos 30 /**< \brief (CAN_TXEFE_0) Extended Indentifier */ +#define CAN_TXEFE_0_XTD (0x1u << CAN_TXEFE_0_XTD_Pos) +#define CAN_TXEFE_0_ESI_Pos 31 /**< \brief (CAN_TXEFE_0) Error State Indicator */ +#define CAN_TXEFE_0_ESI (0x1u << CAN_TXEFE_0_ESI_Pos) +#define CAN_TXEFE_0_MASK 0xFFFFFFFFu /**< \brief (CAN_TXEFE_0) MASK Register */ + +/* -------- CAN_TXEFE_1 : (CAN Offset: 0x04) (R/W 32) Tx Event FIFO Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t TXTS:16; /*!< bit: 0..15 Tx Timestamp */ + uint32_t DLC:4; /*!< bit: 16..19 Data Length Code */ + uint32_t BRS:1; /*!< bit: 20 Bit Rate Search */ + uint32_t FDF:1; /*!< bit: 21 FD Format */ + uint32_t ET:2; /*!< bit: 22..23 Event Type */ + uint32_t MM:8; /*!< bit: 24..31 Message Marker */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_TXEFE_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_TXEFE_1_OFFSET 0x04 /**< \brief (CAN_TXEFE_1 offset) Tx Event FIFO Element 1 */ +#define CAN_TXEFE_1_RESETVALUE 0x00000000u /**< \brief (CAN_TXEFE_1 reset_value) Tx Event FIFO Element 1 */ + +#define CAN_TXEFE_1_TXTS_Pos 0 /**< \brief (CAN_TXEFE_1) Tx Timestamp */ +#define CAN_TXEFE_1_TXTS_Msk (0xFFFFu << CAN_TXEFE_1_TXTS_Pos) +#define CAN_TXEFE_1_TXTS(value) (CAN_TXEFE_1_TXTS_Msk & ((value) << CAN_TXEFE_1_TXTS_Pos)) +#define CAN_TXEFE_1_DLC_Pos 16 /**< \brief (CAN_TXEFE_1) Data Length Code */ +#define CAN_TXEFE_1_DLC_Msk (0xFu << CAN_TXEFE_1_DLC_Pos) +#define CAN_TXEFE_1_DLC(value) (CAN_TXEFE_1_DLC_Msk & ((value) << CAN_TXEFE_1_DLC_Pos)) +#define CAN_TXEFE_1_BRS_Pos 20 /**< \brief (CAN_TXEFE_1) Bit Rate Search */ +#define CAN_TXEFE_1_BRS (0x1u << CAN_TXEFE_1_BRS_Pos) +#define CAN_TXEFE_1_FDF_Pos 21 /**< \brief (CAN_TXEFE_1) FD Format */ +#define CAN_TXEFE_1_FDF (0x1u << CAN_TXEFE_1_FDF_Pos) +#define CAN_TXEFE_1_ET_Pos 22 /**< \brief (CAN_TXEFE_1) Event Type */ +#define CAN_TXEFE_1_ET_Msk (0x3u << CAN_TXEFE_1_ET_Pos) +#define CAN_TXEFE_1_ET(value) (CAN_TXEFE_1_ET_Msk & ((value) << CAN_TXEFE_1_ET_Pos)) +#define CAN_TXEFE_1_ET_TXE_Val 0x1u /**< \brief (CAN_TXEFE_1) Tx event */ +#define CAN_TXEFE_1_ET_TXC_Val 0x2u /**< \brief (CAN_TXEFE_1) Transmission in spite of cancellation */ +#define CAN_TXEFE_1_ET_TXE (CAN_TXEFE_1_ET_TXE_Val << CAN_TXEFE_1_ET_Pos) +#define CAN_TXEFE_1_ET_TXC (CAN_TXEFE_1_ET_TXC_Val << CAN_TXEFE_1_ET_Pos) +#define CAN_TXEFE_1_MM_Pos 24 /**< \brief (CAN_TXEFE_1) Message Marker */ +#define CAN_TXEFE_1_MM_Msk (0xFFu << CAN_TXEFE_1_MM_Pos) +#define CAN_TXEFE_1_MM(value) (CAN_TXEFE_1_MM_Msk & ((value) << CAN_TXEFE_1_MM_Pos)) +#define CAN_TXEFE_1_MASK 0xFFFFFFFFu /**< \brief (CAN_TXEFE_1) MASK Register */ + +/* -------- CAN_XIDFE_0 : (CAN Offset: 0x00) (R/W 32) Extended Message ID Filter Element 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EFID1:29; /*!< bit: 0..28 Extended Filter ID 1 */ + uint32_t EFEC:3; /*!< bit: 29..31 Extended Filter Element Configuration */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_XIDFE_0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_XIDFE_0_OFFSET 0x00 /**< \brief (CAN_XIDFE_0 offset) Extended Message ID Filter Element 0 */ +#define CAN_XIDFE_0_RESETVALUE 0x00000000u /**< \brief (CAN_XIDFE_0 reset_value) Extended Message ID Filter Element 0 */ + +#define CAN_XIDFE_0_EFID1_Pos 0 /**< \brief (CAN_XIDFE_0) Extended Filter ID 1 */ +#define CAN_XIDFE_0_EFID1_Msk (0x1FFFFFFFu << CAN_XIDFE_0_EFID1_Pos) +#define CAN_XIDFE_0_EFID1(value) (CAN_XIDFE_0_EFID1_Msk & ((value) << CAN_XIDFE_0_EFID1_Pos)) +#define CAN_XIDFE_0_EFEC_Pos 29 /**< \brief (CAN_XIDFE_0) Extended Filter Element Configuration */ +#define CAN_XIDFE_0_EFEC_Msk (0x7u << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC(value) (CAN_XIDFE_0_EFEC_Msk & ((value) << CAN_XIDFE_0_EFEC_Pos)) +#define CAN_XIDFE_0_EFEC_DISABLE_Val 0x0u /**< \brief (CAN_XIDFE_0) Disable filter element */ +#define CAN_XIDFE_0_EFEC_STF0M_Val 0x1u /**< \brief (CAN_XIDFE_0) Store in Rx FIFO 0 if filter match */ +#define CAN_XIDFE_0_EFEC_STF1M_Val 0x2u /**< \brief (CAN_XIDFE_0) Store in Rx FIFO 1 if filter match */ +#define CAN_XIDFE_0_EFEC_REJECT_Val 0x3u /**< \brief (CAN_XIDFE_0) Reject ID if filter match */ +#define CAN_XIDFE_0_EFEC_PRIORITY_Val 0x4u /**< \brief (CAN_XIDFE_0) Set priority if filter match */ +#define CAN_XIDFE_0_EFEC_PRIF0M_Val 0x5u /**< \brief (CAN_XIDFE_0) Set priority and store in FIFO 0 if filter match */ +#define CAN_XIDFE_0_EFEC_PRIF1M_Val 0x6u /**< \brief (CAN_XIDFE_0) Set priority and store in FIFO 1 if filter match */ +#define CAN_XIDFE_0_EFEC_STRXBUF_Val 0x7u /**< \brief (CAN_XIDFE_0) Store into Rx Buffer */ +#define CAN_XIDFE_0_EFEC_DISABLE (CAN_XIDFE_0_EFEC_DISABLE_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_STF0M (CAN_XIDFE_0_EFEC_STF0M_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_STF1M (CAN_XIDFE_0_EFEC_STF1M_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_REJECT (CAN_XIDFE_0_EFEC_REJECT_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_PRIORITY (CAN_XIDFE_0_EFEC_PRIORITY_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_PRIF0M (CAN_XIDFE_0_EFEC_PRIF0M_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_PRIF1M (CAN_XIDFE_0_EFEC_PRIF1M_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_EFEC_STRXBUF (CAN_XIDFE_0_EFEC_STRXBUF_Val << CAN_XIDFE_0_EFEC_Pos) +#define CAN_XIDFE_0_MASK 0xFFFFFFFFu /**< \brief (CAN_XIDFE_0) MASK Register */ + +/* -------- CAN_XIDFE_1 : (CAN Offset: 0x04) (R/W 32) Extended Message ID Filter Element 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EFID2:29; /*!< bit: 0..28 Extended Filter ID 2 */ + uint32_t :1; /*!< bit: 29 Reserved */ + uint32_t EFT:2; /*!< bit: 30..31 Extended Filter Type */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CAN_XIDFE_1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CAN_XIDFE_1_OFFSET 0x04 /**< \brief (CAN_XIDFE_1 offset) Extended Message ID Filter Element 1 */ +#define CAN_XIDFE_1_RESETVALUE 0x00000000u /**< \brief (CAN_XIDFE_1 reset_value) Extended Message ID Filter Element 1 */ + +#define CAN_XIDFE_1_EFID2_Pos 0 /**< \brief (CAN_XIDFE_1) Extended Filter ID 2 */ +#define CAN_XIDFE_1_EFID2_Msk (0x1FFFFFFFu << CAN_XIDFE_1_EFID2_Pos) +#define CAN_XIDFE_1_EFID2(value) (CAN_XIDFE_1_EFID2_Msk & ((value) << CAN_XIDFE_1_EFID2_Pos)) +#define CAN_XIDFE_1_EFT_Pos 30 /**< \brief (CAN_XIDFE_1) Extended Filter Type */ +#define CAN_XIDFE_1_EFT_Msk (0x3u << CAN_XIDFE_1_EFT_Pos) +#define CAN_XIDFE_1_EFT(value) (CAN_XIDFE_1_EFT_Msk & ((value) << CAN_XIDFE_1_EFT_Pos)) +#define CAN_XIDFE_1_EFT_RANGEM_Val 0x0u /**< \brief (CAN_XIDFE_1) Range filter from EFID1 to EFID2 */ +#define CAN_XIDFE_1_EFT_DUAL_Val 0x1u /**< \brief (CAN_XIDFE_1) Dual ID filter for EFID1 or EFID2 */ +#define CAN_XIDFE_1_EFT_CLASSIC_Val 0x2u /**< \brief (CAN_XIDFE_1) Classic filter */ +#define CAN_XIDFE_1_EFT_RANGE_Val 0x3u /**< \brief (CAN_XIDFE_1) Range filter from EFID1 to EFID2 with no XIDAM mask */ +#define CAN_XIDFE_1_EFT_RANGEM (CAN_XIDFE_1_EFT_RANGEM_Val << CAN_XIDFE_1_EFT_Pos) +#define CAN_XIDFE_1_EFT_DUAL (CAN_XIDFE_1_EFT_DUAL_Val << CAN_XIDFE_1_EFT_Pos) +#define CAN_XIDFE_1_EFT_CLASSIC (CAN_XIDFE_1_EFT_CLASSIC_Val << CAN_XIDFE_1_EFT_Pos) +#define CAN_XIDFE_1_EFT_RANGE (CAN_XIDFE_1_EFT_RANGE_Val << CAN_XIDFE_1_EFT_Pos) +#define CAN_XIDFE_1_MASK 0xDFFFFFFFu /**< \brief (CAN_XIDFE_1) MASK Register */ + +/** \brief CAN APB hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __I CAN_CREL_Type CREL; /**< \brief Offset: 0x00 (R/ 32) Core Release */ + __I CAN_ENDN_Type ENDN; /**< \brief Offset: 0x04 (R/ 32) Endian */ + __IO CAN_MRCFG_Type MRCFG; /**< \brief Offset: 0x08 (R/W 32) Message RAM Configuration */ + __IO CAN_DBTP_Type DBTP; /**< \brief Offset: 0x0C (R/W 32) Fast Bit Timing and Prescaler */ + __IO CAN_TEST_Type TEST; /**< \brief Offset: 0x10 (R/W 32) Test */ + __IO CAN_RWD_Type RWD; /**< \brief Offset: 0x14 (R/W 32) RAM Watchdog */ + __IO CAN_CCCR_Type CCCR; /**< \brief Offset: 0x18 (R/W 32) CC Control */ + __IO CAN_NBTP_Type NBTP; /**< \brief Offset: 0x1C (R/W 32) Nominal Bit Timing and Prescaler */ + __IO CAN_TSCC_Type TSCC; /**< \brief Offset: 0x20 (R/W 32) Timestamp Counter Configuration */ + __I CAN_TSCV_Type TSCV; /**< \brief Offset: 0x24 (R/ 32) Timestamp Counter Value */ + __IO CAN_TOCC_Type TOCC; /**< \brief Offset: 0x28 (R/W 32) Timeout Counter Configuration */ + __IO CAN_TOCV_Type TOCV; /**< \brief Offset: 0x2C (R/W 32) Timeout Counter Value */ + RoReg8 Reserved1[0x10]; + __I CAN_ECR_Type ECR; /**< \brief Offset: 0x40 (R/ 32) Error Counter */ + __I CAN_PSR_Type PSR; /**< \brief Offset: 0x44 (R/ 32) Protocol Status */ + __IO CAN_TDCR_Type TDCR; /**< \brief Offset: 0x48 (R/W 32) Extended ID Filter Configuration */ + RoReg8 Reserved2[0x4]; + __IO CAN_IR_Type IR; /**< \brief Offset: 0x50 (R/W 32) Interrupt */ + __IO CAN_IE_Type IE; /**< \brief Offset: 0x54 (R/W 32) Interrupt Enable */ + __IO CAN_ILS_Type ILS; /**< \brief Offset: 0x58 (R/W 32) Interrupt Line Select */ + __IO CAN_ILE_Type ILE; /**< \brief Offset: 0x5C (R/W 32) Interrupt Line Enable */ + RoReg8 Reserved3[0x20]; + __IO CAN_GFC_Type GFC; /**< \brief Offset: 0x80 (R/W 32) Global Filter Configuration */ + __IO CAN_SIDFC_Type SIDFC; /**< \brief Offset: 0x84 (R/W 32) Standard ID Filter Configuration */ + __IO CAN_XIDFC_Type XIDFC; /**< \brief Offset: 0x88 (R/W 32) Extended ID Filter Configuration */ + RoReg8 Reserved4[0x4]; + __IO CAN_XIDAM_Type XIDAM; /**< \brief Offset: 0x90 (R/W 32) Extended ID AND Mask */ + __I CAN_HPMS_Type HPMS; /**< \brief Offset: 0x94 (R/ 32) High Priority Message Status */ + __IO CAN_NDAT1_Type NDAT1; /**< \brief Offset: 0x98 (R/W 32) New Data 1 */ + __IO CAN_NDAT2_Type NDAT2; /**< \brief Offset: 0x9C (R/W 32) New Data 2 */ + __IO CAN_RXF0C_Type RXF0C; /**< \brief Offset: 0xA0 (R/W 32) Rx FIFO 0 Configuration */ + __I CAN_RXF0S_Type RXF0S; /**< \brief Offset: 0xA4 (R/ 32) Rx FIFO 0 Status */ + __IO CAN_RXF0A_Type RXF0A; /**< \brief Offset: 0xA8 (R/W 32) Rx FIFO 0 Acknowledge */ + __IO CAN_RXBC_Type RXBC; /**< \brief Offset: 0xAC (R/W 32) Rx Buffer Configuration */ + __IO CAN_RXF1C_Type RXF1C; /**< \brief Offset: 0xB0 (R/W 32) Rx FIFO 1 Configuration */ + __I CAN_RXF1S_Type RXF1S; /**< \brief Offset: 0xB4 (R/ 32) Rx FIFO 1 Status */ + __IO CAN_RXF1A_Type RXF1A; /**< \brief Offset: 0xB8 (R/W 32) Rx FIFO 1 Acknowledge */ + __IO CAN_RXESC_Type RXESC; /**< \brief Offset: 0xBC (R/W 32) Rx Buffer / FIFO Element Size Configuration */ + __IO CAN_TXBC_Type TXBC; /**< \brief Offset: 0xC0 (R/W 32) Tx Buffer Configuration */ + __I CAN_TXFQS_Type TXFQS; /**< \brief Offset: 0xC4 (R/ 32) Tx FIFO / Queue Status */ + __IO CAN_TXESC_Type TXESC; /**< \brief Offset: 0xC8 (R/W 32) Tx Buffer Element Size Configuration */ + __I CAN_TXBRP_Type TXBRP; /**< \brief Offset: 0xCC (R/ 32) Tx Buffer Request Pending */ + __IO CAN_TXBAR_Type TXBAR; /**< \brief Offset: 0xD0 (R/W 32) Tx Buffer Add Request */ + __IO CAN_TXBCR_Type TXBCR; /**< \brief Offset: 0xD4 (R/W 32) Tx Buffer Cancellation Request */ + __I CAN_TXBTO_Type TXBTO; /**< \brief Offset: 0xD8 (R/ 32) Tx Buffer Transmission Occurred */ + __I CAN_TXBCF_Type TXBCF; /**< \brief Offset: 0xDC (R/ 32) Tx Buffer Cancellation Finished */ + __IO CAN_TXBTIE_Type TXBTIE; /**< \brief Offset: 0xE0 (R/W 32) Tx Buffer Transmission Interrupt Enable */ + __IO CAN_TXBCIE_Type TXBCIE; /**< \brief Offset: 0xE4 (R/W 32) Tx Buffer Cancellation Finished Interrupt Enable */ + RoReg8 Reserved5[0x8]; + __IO CAN_TXEFC_Type TXEFC; /**< \brief Offset: 0xF0 (R/W 32) Tx Event FIFO Configuration */ + __I CAN_TXEFS_Type TXEFS; /**< \brief Offset: 0xF4 (R/ 32) Tx Event FIFO Status */ + __IO CAN_TXEFA_Type TXEFA; /**< \brief Offset: 0xF8 (R/W 32) Tx Event FIFO Acknowledge */ +} Can; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_rxbe hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_RXBE_0_Type RXBE_0; /**< \brief Offset: 0x00 (R/W 32) Rx Buffer Element 0 */ + __IO CAN_RXBE_1_Type RXBE_1; /**< \brief Offset: 0x04 (R/W 32) Rx Buffer Element 1 */ + __IO CAN_RXBE_DATA_Type RXBE_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx Buffer Element Data */ +} CanMramRxbe +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_rxf0e hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_RXF0E_0_Type RXF0E_0; /**< \brief Offset: 0x00 (R/W 32) Rx FIFO 0 Element 0 */ + __IO CAN_RXF0E_1_Type RXF0E_1; /**< \brief Offset: 0x04 (R/W 32) Rx FIFO 0 Element 1 */ + __IO CAN_RXF0E_DATA_Type RXF0E_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx FIFO 0 Element Data */ +} CanMramRxf0e +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_rxf1e hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_RXF1E_0_Type RXF1E_0; /**< \brief Offset: 0x00 (R/W 32) Rx FIFO 1 Element 0 */ + __IO CAN_RXF1E_1_Type RXF1E_1; /**< \brief Offset: 0x04 (R/W 32) Rx FIFO 1 Element 1 */ + __IO CAN_RXF1E_DATA_Type RXF1E_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx FIFO 1 Element Data */ +} CanMramRxf1e +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_sidfe hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_SIDFE_0_Type SIDFE_0; /**< \brief Offset: 0x00 (R/W 32) Standard Message ID Filter Element */ +} CanMramSidfe +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_txbe hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_TXBE_0_Type TXBE_0; /**< \brief Offset: 0x00 (R/W 32) Tx Buffer Element 0 */ + __IO CAN_TXBE_1_Type TXBE_1; /**< \brief Offset: 0x04 (R/W 32) Tx Buffer Element 1 */ + __IO CAN_TXBE_DATA_Type TXBE_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Tx Buffer Element Data */ +} CanMramTxbe +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_txefe hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_TXEFE_0_Type TXEFE_0; /**< \brief Offset: 0x00 (R/W 32) Tx Event FIFO Element 0 */ + __IO CAN_TXEFE_1_Type TXEFE_1; /**< \brief Offset: 0x04 (R/W 32) Tx Event FIFO Element 1 */ +} CanMramTxefe +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/** \brief CAN Mram_xifde hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CAN_XIDFE_0_Type XIDFE_0; /**< \brief Offset: 0x00 (R/W 32) Extended Message ID Filter Element 0 */ + __IO CAN_XIDFE_1_Type XIDFE_1; /**< \brief Offset: 0x04 (R/W 32) Extended Message ID Filter Element 1 */ +} CanMramXifde +#ifdef __GNUC__ + __attribute__ ((aligned (4))) +#endif +; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define SECTION_CAN_MRAM_RXBE + +#define SECTION_CAN_MRAM_RXF0E + +#define SECTION_CAN_MRAM_RXF1E + +#define SECTION_CAN_MRAM_SIDFE + +#define SECTION_CAN_MRAM_TXBE + +#define SECTION_CAN_MRAM_TXEFE + +#define SECTION_CAN_MRAM_XIFDE + +/*@}*/ + +#endif /* _SAMD51_CAN_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h new file mode 100644 index 0000000000..890e81edf6 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h @@ -0,0 +1,228 @@ +/** + * \file + * + * \brief Component description for CCL + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_CCL_COMPONENT_ +#define _SAMD51_CCL_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR CCL */ +/* ========================================================================== */ +/** \addtogroup SAMD51_CCL Configurable Custom Logic */ +/*@{*/ + +#define CCL_U2225 +#define REV_CCL 0x110 + +/* -------- CCL_CTRL : (CCL Offset: 0x0) (R/W 8) Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t :4; /*!< bit: 2.. 5 Reserved */ + uint8_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint8_t :1; /*!< bit: 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} CCL_CTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_CTRL_OFFSET 0x0 /**< \brief (CCL_CTRL offset) Control */ +#define CCL_CTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_CTRL reset_value) Control */ + +#define CCL_CTRL_SWRST_Pos 0 /**< \brief (CCL_CTRL) Software Reset */ +#define CCL_CTRL_SWRST (_U_(0x1) << CCL_CTRL_SWRST_Pos) +#define CCL_CTRL_ENABLE_Pos 1 /**< \brief (CCL_CTRL) Enable */ +#define CCL_CTRL_ENABLE (_U_(0x1) << CCL_CTRL_ENABLE_Pos) +#define CCL_CTRL_RUNSTDBY_Pos 6 /**< \brief (CCL_CTRL) Run in Standby */ +#define CCL_CTRL_RUNSTDBY (_U_(0x1) << CCL_CTRL_RUNSTDBY_Pos) +#define CCL_CTRL_MASK _U_(0x43) /**< \brief (CCL_CTRL) MASK Register */ + +/* -------- CCL_SEQCTRL : (CCL Offset: 0x4) (R/W 8) SEQ Control x -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SEQSEL:4; /*!< bit: 0.. 3 Sequential Selection */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} CCL_SEQCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_SEQCTRL_OFFSET 0x4 /**< \brief (CCL_SEQCTRL offset) SEQ Control x */ +#define CCL_SEQCTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_SEQCTRL reset_value) SEQ Control x */ + +#define CCL_SEQCTRL_SEQSEL_Pos 0 /**< \brief (CCL_SEQCTRL) Sequential Selection */ +#define CCL_SEQCTRL_SEQSEL_Msk (_U_(0xF) << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL(value) (CCL_SEQCTRL_SEQSEL_Msk & ((value) << CCL_SEQCTRL_SEQSEL_Pos)) +#define CCL_SEQCTRL_SEQSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_SEQCTRL) Sequential logic is disabled */ +#define CCL_SEQCTRL_SEQSEL_DFF_Val _U_(0x1) /**< \brief (CCL_SEQCTRL) D flip flop */ +#define CCL_SEQCTRL_SEQSEL_JK_Val _U_(0x2) /**< \brief (CCL_SEQCTRL) JK flip flop */ +#define CCL_SEQCTRL_SEQSEL_LATCH_Val _U_(0x3) /**< \brief (CCL_SEQCTRL) D latch */ +#define CCL_SEQCTRL_SEQSEL_RS_Val _U_(0x4) /**< \brief (CCL_SEQCTRL) RS latch */ +#define CCL_SEQCTRL_SEQSEL_DISABLE (CCL_SEQCTRL_SEQSEL_DISABLE_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_DFF (CCL_SEQCTRL_SEQSEL_DFF_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_JK (CCL_SEQCTRL_SEQSEL_JK_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_LATCH (CCL_SEQCTRL_SEQSEL_LATCH_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_RS (CCL_SEQCTRL_SEQSEL_RS_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_MASK _U_(0x0F) /**< \brief (CCL_SEQCTRL) MASK Register */ + +/* -------- CCL_LUTCTRL : (CCL Offset: 0x8) (R/W 32) LUT Control x -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ENABLE:1; /*!< bit: 1 LUT Enable */ + uint32_t :2; /*!< bit: 2.. 3 Reserved */ + uint32_t FILTSEL:2; /*!< bit: 4.. 5 Filter Selection */ + uint32_t :1; /*!< bit: 6 Reserved */ + uint32_t EDGESEL:1; /*!< bit: 7 Edge Selection */ + uint32_t INSEL0:4; /*!< bit: 8..11 Input Selection 0 */ + uint32_t INSEL1:4; /*!< bit: 12..15 Input Selection 1 */ + uint32_t INSEL2:4; /*!< bit: 16..19 Input Selection 2 */ + uint32_t INVEI:1; /*!< bit: 20 Inverted Event Input Enable */ + uint32_t LUTEI:1; /*!< bit: 21 LUT Event Input Enable */ + uint32_t LUTEO:1; /*!< bit: 22 LUT Event Output Enable */ + uint32_t :1; /*!< bit: 23 Reserved */ + uint32_t TRUTH:8; /*!< bit: 24..31 Truth Value */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CCL_LUTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_LUTCTRL_OFFSET 0x8 /**< \brief (CCL_LUTCTRL offset) LUT Control x */ +#define CCL_LUTCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CCL_LUTCTRL reset_value) LUT Control x */ + +#define CCL_LUTCTRL_ENABLE_Pos 1 /**< \brief (CCL_LUTCTRL) LUT Enable */ +#define CCL_LUTCTRL_ENABLE (_U_(0x1) << CCL_LUTCTRL_ENABLE_Pos) +#define CCL_LUTCTRL_FILTSEL_Pos 4 /**< \brief (CCL_LUTCTRL) Filter Selection */ +#define CCL_LUTCTRL_FILTSEL_Msk (_U_(0x3) << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL(value) (CCL_LUTCTRL_FILTSEL_Msk & ((value) << CCL_LUTCTRL_FILTSEL_Pos)) +#define CCL_LUTCTRL_FILTSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Filter disabled */ +#define CCL_LUTCTRL_FILTSEL_SYNCH_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Synchronizer enabled */ +#define CCL_LUTCTRL_FILTSEL_FILTER_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Filter enabled */ +#define CCL_LUTCTRL_FILTSEL_DISABLE (CCL_LUTCTRL_FILTSEL_DISABLE_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL_SYNCH (CCL_LUTCTRL_FILTSEL_SYNCH_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL_FILTER (CCL_LUTCTRL_FILTSEL_FILTER_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_EDGESEL_Pos 7 /**< \brief (CCL_LUTCTRL) Edge Selection */ +#define CCL_LUTCTRL_EDGESEL (_U_(0x1) << CCL_LUTCTRL_EDGESEL_Pos) +#define CCL_LUTCTRL_INSEL0_Pos 8 /**< \brief (CCL_LUTCTRL) Input Selection 0 */ +#define CCL_LUTCTRL_INSEL0_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0(value) (CCL_LUTCTRL_INSEL0_Msk & ((value) << CCL_LUTCTRL_INSEL0_Pos)) +#define CCL_LUTCTRL_INSEL0_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL0_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL0_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL0_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL0_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL0_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL0_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL0_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL0_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL0_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL0_MASK (CCL_LUTCTRL_INSEL0_MASK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_FEEDBACK (CCL_LUTCTRL_INSEL0_FEEDBACK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_LINK (CCL_LUTCTRL_INSEL0_LINK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_EVENT (CCL_LUTCTRL_INSEL0_EVENT_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_IO (CCL_LUTCTRL_INSEL0_IO_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_AC (CCL_LUTCTRL_INSEL0_AC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_TC (CCL_LUTCTRL_INSEL0_TC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_ALTTC (CCL_LUTCTRL_INSEL0_ALTTC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_TCC (CCL_LUTCTRL_INSEL0_TCC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_SERCOM (CCL_LUTCTRL_INSEL0_SERCOM_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL1_Pos 12 /**< \brief (CCL_LUTCTRL) Input Selection 1 */ +#define CCL_LUTCTRL_INSEL1_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1(value) (CCL_LUTCTRL_INSEL1_Msk & ((value) << CCL_LUTCTRL_INSEL1_Pos)) +#define CCL_LUTCTRL_INSEL1_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL1_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL1_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL1_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL1_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL1_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL1_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL1_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL1_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL1_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL1_MASK (CCL_LUTCTRL_INSEL1_MASK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_FEEDBACK (CCL_LUTCTRL_INSEL1_FEEDBACK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_LINK (CCL_LUTCTRL_INSEL1_LINK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_EVENT (CCL_LUTCTRL_INSEL1_EVENT_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_IO (CCL_LUTCTRL_INSEL1_IO_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_AC (CCL_LUTCTRL_INSEL1_AC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_TC (CCL_LUTCTRL_INSEL1_TC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_ALTTC (CCL_LUTCTRL_INSEL1_ALTTC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_TCC (CCL_LUTCTRL_INSEL1_TCC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_SERCOM (CCL_LUTCTRL_INSEL1_SERCOM_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL2_Pos 16 /**< \brief (CCL_LUTCTRL) Input Selection 2 */ +#define CCL_LUTCTRL_INSEL2_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2(value) (CCL_LUTCTRL_INSEL2_Msk & ((value) << CCL_LUTCTRL_INSEL2_Pos)) +#define CCL_LUTCTRL_INSEL2_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL2_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL2_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL2_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL2_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL2_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL2_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL2_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL2_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL2_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL2_MASK (CCL_LUTCTRL_INSEL2_MASK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_FEEDBACK (CCL_LUTCTRL_INSEL2_FEEDBACK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_LINK (CCL_LUTCTRL_INSEL2_LINK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_EVENT (CCL_LUTCTRL_INSEL2_EVENT_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_IO (CCL_LUTCTRL_INSEL2_IO_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_AC (CCL_LUTCTRL_INSEL2_AC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_TC (CCL_LUTCTRL_INSEL2_TC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_ALTTC (CCL_LUTCTRL_INSEL2_ALTTC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_TCC (CCL_LUTCTRL_INSEL2_TCC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_SERCOM (CCL_LUTCTRL_INSEL2_SERCOM_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INVEI_Pos 20 /**< \brief (CCL_LUTCTRL) Inverted Event Input Enable */ +#define CCL_LUTCTRL_INVEI (_U_(0x1) << CCL_LUTCTRL_INVEI_Pos) +#define CCL_LUTCTRL_LUTEI_Pos 21 /**< \brief (CCL_LUTCTRL) LUT Event Input Enable */ +#define CCL_LUTCTRL_LUTEI (_U_(0x1) << CCL_LUTCTRL_LUTEI_Pos) +#define CCL_LUTCTRL_LUTEO_Pos 22 /**< \brief (CCL_LUTCTRL) LUT Event Output Enable */ +#define CCL_LUTCTRL_LUTEO (_U_(0x1) << CCL_LUTCTRL_LUTEO_Pos) +#define CCL_LUTCTRL_TRUTH_Pos 24 /**< \brief (CCL_LUTCTRL) Truth Value */ +#define CCL_LUTCTRL_TRUTH_Msk (_U_(0xFF) << CCL_LUTCTRL_TRUTH_Pos) +#define CCL_LUTCTRL_TRUTH(value) (CCL_LUTCTRL_TRUTH_Msk & ((value) << CCL_LUTCTRL_TRUTH_Pos)) +#define CCL_LUTCTRL_MASK _U_(0xFF7FFFB2) /**< \brief (CCL_LUTCTRL) MASK Register */ + +/** \brief CCL hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CCL_CTRL_Type CTRL; /**< \brief Offset: 0x0 (R/W 8) Control */ + RoReg8 Reserved1[0x3]; + __IO CCL_SEQCTRL_Type SEQCTRL[2]; /**< \brief Offset: 0x4 (R/W 8) SEQ Control x */ + RoReg8 Reserved2[0x2]; + __IO CCL_LUTCTRL_Type LUTCTRL[4]; /**< \brief Offset: 0x8 (R/W 32) LUT Control x */ +} Ccl; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_CCL_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h new file mode 100644 index 0000000000..92fa6813ef --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h @@ -0,0 +1,357 @@ +/** + * \file + * + * \brief Component description for CMCC + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_CMCC_COMPONENT_ +#define _SAMD51_CMCC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR CMCC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_CMCC Cortex M Cache Controller */ +/*@{*/ + +#define CMCC_U2015 +#define REV_CMCC 0x600 + +/* -------- CMCC_TYPE : (CMCC Offset: 0x00) (R/ 32) Cache Type Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t GCLK:1; /*!< bit: 1 dynamic Clock Gating supported */ + uint32_t :2; /*!< bit: 2.. 3 Reserved */ + uint32_t RRP:1; /*!< bit: 4 Round Robin Policy supported */ + uint32_t WAYNUM:2; /*!< bit: 5.. 6 Number of Way */ + uint32_t LCKDOWN:1; /*!< bit: 7 Lock Down supported */ + uint32_t CSIZE:3; /*!< bit: 8..10 Cache Size */ + uint32_t CLSIZE:3; /*!< bit: 11..13 Cache Line Size */ + uint32_t :18; /*!< bit: 14..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_TYPE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_TYPE_OFFSET 0x00 /**< \brief (CMCC_TYPE offset) Cache Type Register */ +#define CMCC_TYPE_RESETVALUE _U_(0x000012D2) /**< \brief (CMCC_TYPE reset_value) Cache Type Register */ + +#define CMCC_TYPE_GCLK_Pos 1 /**< \brief (CMCC_TYPE) dynamic Clock Gating supported */ +#define CMCC_TYPE_GCLK (_U_(0x1) << CMCC_TYPE_GCLK_Pos) +#define CMCC_TYPE_RRP_Pos 4 /**< \brief (CMCC_TYPE) Round Robin Policy supported */ +#define CMCC_TYPE_RRP (_U_(0x1) << CMCC_TYPE_RRP_Pos) +#define CMCC_TYPE_WAYNUM_Pos 5 /**< \brief (CMCC_TYPE) Number of Way */ +#define CMCC_TYPE_WAYNUM_Msk (_U_(0x3) << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM(value) (CMCC_TYPE_WAYNUM_Msk & ((value) << CMCC_TYPE_WAYNUM_Pos)) +#define CMCC_TYPE_WAYNUM_DMAPPED_Val _U_(0x0) /**< \brief (CMCC_TYPE) Direct Mapped Cache */ +#define CMCC_TYPE_WAYNUM_ARCH2WAY_Val _U_(0x1) /**< \brief (CMCC_TYPE) 2-WAY set associative */ +#define CMCC_TYPE_WAYNUM_ARCH4WAY_Val _U_(0x2) /**< \brief (CMCC_TYPE) 4-WAY set associative */ +#define CMCC_TYPE_WAYNUM_DMAPPED (CMCC_TYPE_WAYNUM_DMAPPED_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM_ARCH2WAY (CMCC_TYPE_WAYNUM_ARCH2WAY_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM_ARCH4WAY (CMCC_TYPE_WAYNUM_ARCH4WAY_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_LCKDOWN_Pos 7 /**< \brief (CMCC_TYPE) Lock Down supported */ +#define CMCC_TYPE_LCKDOWN (_U_(0x1) << CMCC_TYPE_LCKDOWN_Pos) +#define CMCC_TYPE_CSIZE_Pos 8 /**< \brief (CMCC_TYPE) Cache Size */ +#define CMCC_TYPE_CSIZE_Msk (_U_(0x7) << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE(value) (CMCC_TYPE_CSIZE_Msk & ((value) << CMCC_TYPE_CSIZE_Pos)) +#define CMCC_TYPE_CSIZE_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Size is 1 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Size is 2 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Size is 4 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Size is 8 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Size is 16 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Size is 32 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_TYPE) Cache Size is 64 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_1KB (CMCC_TYPE_CSIZE_CSIZE_1KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_2KB (CMCC_TYPE_CSIZE_CSIZE_2KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_4KB (CMCC_TYPE_CSIZE_CSIZE_4KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_8KB (CMCC_TYPE_CSIZE_CSIZE_8KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_16KB (CMCC_TYPE_CSIZE_CSIZE_16KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_32KB (CMCC_TYPE_CSIZE_CSIZE_32KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_64KB (CMCC_TYPE_CSIZE_CSIZE_64KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CLSIZE_Pos 11 /**< \brief (CMCC_TYPE) Cache Line Size */ +#define CMCC_TYPE_CLSIZE_Msk (_U_(0x7) << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE(value) (CMCC_TYPE_CLSIZE_Msk & ((value) << CMCC_TYPE_CLSIZE_Pos)) +#define CMCC_TYPE_CLSIZE_CLSIZE_4B_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Line Size is 4 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_8B_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Line Size is 8 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_16B_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Line Size is 16 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_32B_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Line Size is 32 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_64B_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Line Size is 64 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_128B_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Line Size is 128 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_4B (CMCC_TYPE_CLSIZE_CLSIZE_4B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_8B (CMCC_TYPE_CLSIZE_CLSIZE_8B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_16B (CMCC_TYPE_CLSIZE_CLSIZE_16B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_32B (CMCC_TYPE_CLSIZE_CLSIZE_32B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_64B (CMCC_TYPE_CLSIZE_CLSIZE_64B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_128B (CMCC_TYPE_CLSIZE_CLSIZE_128B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_MASK _U_(0x00003FF2) /**< \brief (CMCC_TYPE) MASK Register */ + +/* -------- CMCC_CFG : (CMCC Offset: 0x04) (R/W 32) Cache Configuration Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ICDIS:1; /*!< bit: 1 Instruction Cache Disable */ + uint32_t DCDIS:1; /*!< bit: 2 Data Cache Disable */ + uint32_t :1; /*!< bit: 3 Reserved */ + uint32_t CSIZESW:3; /*!< bit: 4.. 6 Cache size configured by software */ + uint32_t :25; /*!< bit: 7..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_CFG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_CFG_OFFSET 0x04 /**< \brief (CMCC_CFG offset) Cache Configuration Register */ +#define CMCC_CFG_RESETVALUE _U_(0x00000020) /**< \brief (CMCC_CFG reset_value) Cache Configuration Register */ + +#define CMCC_CFG_ICDIS_Pos 1 /**< \brief (CMCC_CFG) Instruction Cache Disable */ +#define CMCC_CFG_ICDIS (_U_(0x1) << CMCC_CFG_ICDIS_Pos) +#define CMCC_CFG_DCDIS_Pos 2 /**< \brief (CMCC_CFG) Data Cache Disable */ +#define CMCC_CFG_DCDIS (_U_(0x1) << CMCC_CFG_DCDIS_Pos) +#define CMCC_CFG_CSIZESW_Pos 4 /**< \brief (CMCC_CFG) Cache size configured by software */ +#define CMCC_CFG_CSIZESW_Msk (_U_(0x7) << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW(value) (CMCC_CFG_CSIZESW_Msk & ((value) << CMCC_CFG_CSIZESW_Pos)) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_CFG) the Cache Size is configured to 1KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_CFG) the Cache Size is configured to 2KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_CFG) the Cache Size is configured to 4KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_CFG) the Cache Size is configured to 8KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_CFG) the Cache Size is configured to 16KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_CFG) the Cache Size is configured to 32KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_CFG) the Cache Size is configured to 64KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB (CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB (CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB (CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB (CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB (CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB (CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB (CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_MASK _U_(0x00000076) /**< \brief (CMCC_CFG) MASK Register */ + +/* -------- CMCC_CTRL : (CMCC Offset: 0x08) ( /W 32) Cache Control Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CEN:1; /*!< bit: 0 Cache Controller Enable */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_CTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_CTRL_OFFSET 0x08 /**< \brief (CMCC_CTRL offset) Cache Control Register */ +#define CMCC_CTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_CTRL reset_value) Cache Control Register */ + +#define CMCC_CTRL_CEN_Pos 0 /**< \brief (CMCC_CTRL) Cache Controller Enable */ +#define CMCC_CTRL_CEN (_U_(0x1) << CMCC_CTRL_CEN_Pos) +#define CMCC_CTRL_MASK _U_(0x00000001) /**< \brief (CMCC_CTRL) MASK Register */ + +/* -------- CMCC_SR : (CMCC Offset: 0x0C) (R/ 32) Cache Status Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CSTS:1; /*!< bit: 0 Cache Controller Status */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_SR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_SR_OFFSET 0x0C /**< \brief (CMCC_SR offset) Cache Status Register */ +#define CMCC_SR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_SR reset_value) Cache Status Register */ + +#define CMCC_SR_CSTS_Pos 0 /**< \brief (CMCC_SR) Cache Controller Status */ +#define CMCC_SR_CSTS (_U_(0x1) << CMCC_SR_CSTS_Pos) +#define CMCC_SR_MASK _U_(0x00000001) /**< \brief (CMCC_SR) MASK Register */ + +/* -------- CMCC_LCKWAY : (CMCC Offset: 0x10) (R/W 32) Cache Lock per Way Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t LCKWAY:4; /*!< bit: 0.. 3 Lockdown way Register */ + uint32_t :28; /*!< bit: 4..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_LCKWAY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_LCKWAY_OFFSET 0x10 /**< \brief (CMCC_LCKWAY offset) Cache Lock per Way Register */ +#define CMCC_LCKWAY_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_LCKWAY reset_value) Cache Lock per Way Register */ + +#define CMCC_LCKWAY_LCKWAY_Pos 0 /**< \brief (CMCC_LCKWAY) Lockdown way Register */ +#define CMCC_LCKWAY_LCKWAY_Msk (_U_(0xF) << CMCC_LCKWAY_LCKWAY_Pos) +#define CMCC_LCKWAY_LCKWAY(value) (CMCC_LCKWAY_LCKWAY_Msk & ((value) << CMCC_LCKWAY_LCKWAY_Pos)) +#define CMCC_LCKWAY_MASK _U_(0x0000000F) /**< \brief (CMCC_LCKWAY) MASK Register */ + +/* -------- CMCC_MAINT0 : (CMCC Offset: 0x20) ( /W 32) Cache Maintenance Register 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INVALL:1; /*!< bit: 0 Cache Controller invalidate All */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MAINT0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MAINT0_OFFSET 0x20 /**< \brief (CMCC_MAINT0 offset) Cache Maintenance Register 0 */ +#define CMCC_MAINT0_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT0 reset_value) Cache Maintenance Register 0 */ + +#define CMCC_MAINT0_INVALL_Pos 0 /**< \brief (CMCC_MAINT0) Cache Controller invalidate All */ +#define CMCC_MAINT0_INVALL (_U_(0x1) << CMCC_MAINT0_INVALL_Pos) +#define CMCC_MAINT0_MASK _U_(0x00000001) /**< \brief (CMCC_MAINT0) MASK Register */ + +/* -------- CMCC_MAINT1 : (CMCC Offset: 0x24) ( /W 32) Cache Maintenance Register 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :4; /*!< bit: 0.. 3 Reserved */ + uint32_t INDEX:8; /*!< bit: 4..11 Invalidate Index */ + uint32_t :16; /*!< bit: 12..27 Reserved */ + uint32_t WAY:4; /*!< bit: 28..31 Invalidate Way */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MAINT1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MAINT1_OFFSET 0x24 /**< \brief (CMCC_MAINT1 offset) Cache Maintenance Register 1 */ +#define CMCC_MAINT1_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT1 reset_value) Cache Maintenance Register 1 */ + +#define CMCC_MAINT1_INDEX_Pos 4 /**< \brief (CMCC_MAINT1) Invalidate Index */ +#define CMCC_MAINT1_INDEX_Msk (_U_(0xFF) << CMCC_MAINT1_INDEX_Pos) +#define CMCC_MAINT1_INDEX(value) (CMCC_MAINT1_INDEX_Msk & ((value) << CMCC_MAINT1_INDEX_Pos)) +#define CMCC_MAINT1_WAY_Pos 28 /**< \brief (CMCC_MAINT1) Invalidate Way */ +#define CMCC_MAINT1_WAY_Msk (_U_(0xF) << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY(value) (CMCC_MAINT1_WAY_Msk & ((value) << CMCC_MAINT1_WAY_Pos)) +#define CMCC_MAINT1_WAY_WAY0_Val _U_(0x0) /**< \brief (CMCC_MAINT1) Way 0 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY1_Val _U_(0x1) /**< \brief (CMCC_MAINT1) Way 1 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY2_Val _U_(0x2) /**< \brief (CMCC_MAINT1) Way 2 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY3_Val _U_(0x3) /**< \brief (CMCC_MAINT1) Way 3 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY0 (CMCC_MAINT1_WAY_WAY0_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY1 (CMCC_MAINT1_WAY_WAY1_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY2 (CMCC_MAINT1_WAY_WAY2_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY3 (CMCC_MAINT1_WAY_WAY3_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_MASK _U_(0xF0000FF0) /**< \brief (CMCC_MAINT1) MASK Register */ + +/* -------- CMCC_MCFG : (CMCC Offset: 0x28) (R/W 32) Cache Monitor Configuration Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t MODE:2; /*!< bit: 0.. 1 Cache Controller Monitor Counter Mode */ + uint32_t :30; /*!< bit: 2..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MCFG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MCFG_OFFSET 0x28 /**< \brief (CMCC_MCFG offset) Cache Monitor Configuration Register */ +#define CMCC_MCFG_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCFG reset_value) Cache Monitor Configuration Register */ + +#define CMCC_MCFG_MODE_Pos 0 /**< \brief (CMCC_MCFG) Cache Controller Monitor Counter Mode */ +#define CMCC_MCFG_MODE_Msk (_U_(0x3) << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE(value) (CMCC_MCFG_MODE_Msk & ((value) << CMCC_MCFG_MODE_Pos)) +#define CMCC_MCFG_MODE_CYCLE_COUNT_Val _U_(0x0) /**< \brief (CMCC_MCFG) cycle counter */ +#define CMCC_MCFG_MODE_IHIT_COUNT_Val _U_(0x1) /**< \brief (CMCC_MCFG) instruction hit counter */ +#define CMCC_MCFG_MODE_DHIT_COUNT_Val _U_(0x2) /**< \brief (CMCC_MCFG) data hit counter */ +#define CMCC_MCFG_MODE_CYCLE_COUNT (CMCC_MCFG_MODE_CYCLE_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE_IHIT_COUNT (CMCC_MCFG_MODE_IHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE_DHIT_COUNT (CMCC_MCFG_MODE_DHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MASK _U_(0x00000003) /**< \brief (CMCC_MCFG) MASK Register */ + +/* -------- CMCC_MEN : (CMCC Offset: 0x2C) (R/W 32) Cache Monitor Enable Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t MENABLE:1; /*!< bit: 0 Cache Controller Monitor Enable */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MEN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MEN_OFFSET 0x2C /**< \brief (CMCC_MEN offset) Cache Monitor Enable Register */ +#define CMCC_MEN_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MEN reset_value) Cache Monitor Enable Register */ + +#define CMCC_MEN_MENABLE_Pos 0 /**< \brief (CMCC_MEN) Cache Controller Monitor Enable */ +#define CMCC_MEN_MENABLE (_U_(0x1) << CMCC_MEN_MENABLE_Pos) +#define CMCC_MEN_MASK _U_(0x00000001) /**< \brief (CMCC_MEN) MASK Register */ + +/* -------- CMCC_MCTRL : (CMCC Offset: 0x30) ( /W 32) Cache Monitor Control Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Cache Controller Software Reset */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MCTRL_OFFSET 0x30 /**< \brief (CMCC_MCTRL offset) Cache Monitor Control Register */ +#define CMCC_MCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCTRL reset_value) Cache Monitor Control Register */ + +#define CMCC_MCTRL_SWRST_Pos 0 /**< \brief (CMCC_MCTRL) Cache Controller Software Reset */ +#define CMCC_MCTRL_SWRST (_U_(0x1) << CMCC_MCTRL_SWRST_Pos) +#define CMCC_MCTRL_MASK _U_(0x00000001) /**< \brief (CMCC_MCTRL) MASK Register */ + +/* -------- CMCC_MSR : (CMCC Offset: 0x34) (R/ 32) Cache Monitor Status Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EVENT_CNT:32; /*!< bit: 0..31 Monitor Event Counter */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MSR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MSR_OFFSET 0x34 /**< \brief (CMCC_MSR offset) Cache Monitor Status Register */ +#define CMCC_MSR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MSR reset_value) Cache Monitor Status Register */ + +#define CMCC_MSR_EVENT_CNT_Pos 0 /**< \brief (CMCC_MSR) Monitor Event Counter */ +#define CMCC_MSR_EVENT_CNT_Msk (_U_(0xFFFFFFFF) << CMCC_MSR_EVENT_CNT_Pos) +#define CMCC_MSR_EVENT_CNT(value) (CMCC_MSR_EVENT_CNT_Msk & ((value) << CMCC_MSR_EVENT_CNT_Pos)) +#define CMCC_MSR_MASK _U_(0xFFFFFFFF) /**< \brief (CMCC_MSR) MASK Register */ + +/** \brief CMCC APB hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __I CMCC_TYPE_Type TYPE; /**< \brief Offset: 0x00 (R/ 32) Cache Type Register */ + __IO CMCC_CFG_Type CFG; /**< \brief Offset: 0x04 (R/W 32) Cache Configuration Register */ + __O CMCC_CTRL_Type CTRL; /**< \brief Offset: 0x08 ( /W 32) Cache Control Register */ + __I CMCC_SR_Type SR; /**< \brief Offset: 0x0C (R/ 32) Cache Status Register */ + __IO CMCC_LCKWAY_Type LCKWAY; /**< \brief Offset: 0x10 (R/W 32) Cache Lock per Way Register */ + RoReg8 Reserved1[0xC]; + __O CMCC_MAINT0_Type MAINT0; /**< \brief Offset: 0x20 ( /W 32) Cache Maintenance Register 0 */ + __O CMCC_MAINT1_Type MAINT1; /**< \brief Offset: 0x24 ( /W 32) Cache Maintenance Register 1 */ + __IO CMCC_MCFG_Type MCFG; /**< \brief Offset: 0x28 (R/W 32) Cache Monitor Configuration Register */ + __IO CMCC_MEN_Type MEN; /**< \brief Offset: 0x2C (R/W 32) Cache Monitor Enable Register */ + __O CMCC_MCTRL_Type MCTRL; /**< \brief Offset: 0x30 ( /W 32) Cache Monitor Control Register */ + __I CMCC_MSR_Type MSR; /**< \brief Offset: 0x34 (R/ 32) Cache Monitor Status Register */ +} Cmcc; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_CMCC_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h new file mode 100644 index 0000000000..c67efda303 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h @@ -0,0 +1,544 @@ +/** + * \file + * + * \brief Component description for DAC + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_DAC_COMPONENT_ +#define _SAMD51_DAC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR DAC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_DAC Digital-to-Analog Converter */ +/*@{*/ + +#define DAC_U2502 +#define REV_DAC 0x100 + +/* -------- DAC_CTRLA : (DAC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable DAC Controller */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLA_OFFSET 0x00 /**< \brief (DAC_CTRLA offset) Control A */ +#define DAC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLA reset_value) Control A */ + +#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */ +#define DAC_CTRLA_SWRST (_U_(0x1) << DAC_CTRLA_SWRST_Pos) +#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable DAC Controller */ +#define DAC_CTRLA_ENABLE (_U_(0x1) << DAC_CTRLA_ENABLE_Pos) +#define DAC_CTRLA_MASK _U_(0x03) /**< \brief (DAC_CTRLA) MASK Register */ + +/* -------- DAC_CTRLB : (DAC Offset: 0x01) (R/W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DIFF:1; /*!< bit: 0 Differential mode enable */ + uint8_t REFSEL:2; /*!< bit: 1.. 2 Reference Selection for DAC0/1 */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLB_OFFSET 0x01 /**< \brief (DAC_CTRLB offset) Control B */ +#define DAC_CTRLB_RESETVALUE _U_(0x02) /**< \brief (DAC_CTRLB reset_value) Control B */ + +#define DAC_CTRLB_DIFF_Pos 0 /**< \brief (DAC_CTRLB) Differential mode enable */ +#define DAC_CTRLB_DIFF (_U_(0x1) << DAC_CTRLB_DIFF_Pos) +#define DAC_CTRLB_REFSEL_Pos 1 /**< \brief (DAC_CTRLB) Reference Selection for DAC0/1 */ +#define DAC_CTRLB_REFSEL_Msk (_U_(0x3) << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos)) +#define DAC_CTRLB_REFSEL_VREFPU_Val _U_(0x0) /**< \brief (DAC_CTRLB) External reference unbuffered */ +#define DAC_CTRLB_REFSEL_VDDANA_Val _U_(0x1) /**< \brief (DAC_CTRLB) Analog supply */ +#define DAC_CTRLB_REFSEL_VREFPB_Val _U_(0x2) /**< \brief (DAC_CTRLB) External reference buffered */ +#define DAC_CTRLB_REFSEL_INTREF_Val _U_(0x3) /**< \brief (DAC_CTRLB) Internal bandgap reference */ +#define DAC_CTRLB_REFSEL_VREFPU (DAC_CTRLB_REFSEL_VREFPU_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_VDDANA (DAC_CTRLB_REFSEL_VDDANA_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_VREFPB (DAC_CTRLB_REFSEL_VREFPB_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_INTREF (DAC_CTRLB_REFSEL_INTREF_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_MASK _U_(0x07) /**< \brief (DAC_CTRLB) MASK Register */ + +/* -------- DAC_EVCTRL : (DAC Offset: 0x02) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STARTEI0:1; /*!< bit: 0 Start Conversion Event Input DAC 0 */ + uint8_t STARTEI1:1; /*!< bit: 1 Start Conversion Event Input DAC 1 */ + uint8_t EMPTYEO0:1; /*!< bit: 2 Data Buffer Empty Event Output DAC 0 */ + uint8_t EMPTYEO1:1; /*!< bit: 3 Data Buffer Empty Event Output DAC 1 */ + uint8_t INVEI0:1; /*!< bit: 4 Enable Invertion of DAC 0 input event */ + uint8_t INVEI1:1; /*!< bit: 5 Enable Invertion of DAC 1 input event */ + uint8_t RESRDYEO0:1; /*!< bit: 6 Result Ready Event Output 0 */ + uint8_t RESRDYEO1:1; /*!< bit: 7 Result Ready Event Output 1 */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STARTEI:2; /*!< bit: 0.. 1 Start Conversion Event Input DAC x */ + uint8_t EMPTYEO:2; /*!< bit: 2.. 3 Data Buffer Empty Event Output DAC x */ + uint8_t INVEI:2; /*!< bit: 4.. 5 Enable Invertion of DAC x input event */ + uint8_t RESRDYEO:2; /*!< bit: 6.. 7 Result Ready Event Output x */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_EVCTRL_OFFSET 0x02 /**< \brief (DAC_EVCTRL offset) Event Control */ +#define DAC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_EVCTRL reset_value) Event Control */ + +#define DAC_EVCTRL_STARTEI0_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 0 */ +#define DAC_EVCTRL_STARTEI0 (_U_(1) << DAC_EVCTRL_STARTEI0_Pos) +#define DAC_EVCTRL_STARTEI1_Pos 1 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 1 */ +#define DAC_EVCTRL_STARTEI1 (_U_(1) << DAC_EVCTRL_STARTEI1_Pos) +#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC x */ +#define DAC_EVCTRL_STARTEI_Msk (_U_(0x3) << DAC_EVCTRL_STARTEI_Pos) +#define DAC_EVCTRL_STARTEI(value) (DAC_EVCTRL_STARTEI_Msk & ((value) << DAC_EVCTRL_STARTEI_Pos)) +#define DAC_EVCTRL_EMPTYEO0_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 0 */ +#define DAC_EVCTRL_EMPTYEO0 (_U_(1) << DAC_EVCTRL_EMPTYEO0_Pos) +#define DAC_EVCTRL_EMPTYEO1_Pos 3 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 1 */ +#define DAC_EVCTRL_EMPTYEO1 (_U_(1) << DAC_EVCTRL_EMPTYEO1_Pos) +#define DAC_EVCTRL_EMPTYEO_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC x */ +#define DAC_EVCTRL_EMPTYEO_Msk (_U_(0x3) << DAC_EVCTRL_EMPTYEO_Pos) +#define DAC_EVCTRL_EMPTYEO(value) (DAC_EVCTRL_EMPTYEO_Msk & ((value) << DAC_EVCTRL_EMPTYEO_Pos)) +#define DAC_EVCTRL_INVEI0_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 0 input event */ +#define DAC_EVCTRL_INVEI0 (_U_(1) << DAC_EVCTRL_INVEI0_Pos) +#define DAC_EVCTRL_INVEI1_Pos 5 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 1 input event */ +#define DAC_EVCTRL_INVEI1 (_U_(1) << DAC_EVCTRL_INVEI1_Pos) +#define DAC_EVCTRL_INVEI_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC x input event */ +#define DAC_EVCTRL_INVEI_Msk (_U_(0x3) << DAC_EVCTRL_INVEI_Pos) +#define DAC_EVCTRL_INVEI(value) (DAC_EVCTRL_INVEI_Msk & ((value) << DAC_EVCTRL_INVEI_Pos)) +#define DAC_EVCTRL_RESRDYEO0_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output 0 */ +#define DAC_EVCTRL_RESRDYEO0 (_U_(1) << DAC_EVCTRL_RESRDYEO0_Pos) +#define DAC_EVCTRL_RESRDYEO1_Pos 7 /**< \brief (DAC_EVCTRL) Result Ready Event Output 1 */ +#define DAC_EVCTRL_RESRDYEO1 (_U_(1) << DAC_EVCTRL_RESRDYEO1_Pos) +#define DAC_EVCTRL_RESRDYEO_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output x */ +#define DAC_EVCTRL_RESRDYEO_Msk (_U_(0x3) << DAC_EVCTRL_RESRDYEO_Pos) +#define DAC_EVCTRL_RESRDYEO(value) (DAC_EVCTRL_RESRDYEO_Msk & ((value) << DAC_EVCTRL_RESRDYEO_Pos)) +#define DAC_EVCTRL_MASK _U_(0xFF) /**< \brief (DAC_EVCTRL) MASK Register */ + +/* -------- DAC_INTENCLR : (DAC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ + uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ + uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ + uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ + uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ + uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ + uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ + uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ + uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ + uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ + uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENCLR_OFFSET 0x04 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */ +#define DAC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define DAC_INTENCLR_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENCLR) Underrun 0 Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN0 (_U_(1) << DAC_INTENCLR_UNDERRUN0_Pos) +#define DAC_INTENCLR_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENCLR) Underrun 1 Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN1 (_U_(1) << DAC_INTENCLR_UNDERRUN1_Pos) +#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun x Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN_Msk (_U_(0x3) << DAC_INTENCLR_UNDERRUN_Pos) +#define DAC_INTENCLR_UNDERRUN(value) (DAC_INTENCLR_UNDERRUN_Msk & ((value) << DAC_INTENCLR_UNDERRUN_Pos)) +#define DAC_INTENCLR_EMPTY0_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer 0 Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY0 (_U_(1) << DAC_INTENCLR_EMPTY0_Pos) +#define DAC_INTENCLR_EMPTY1_Pos 3 /**< \brief (DAC_INTENCLR) Data Buffer 1 Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY1 (_U_(1) << DAC_INTENCLR_EMPTY1_Pos) +#define DAC_INTENCLR_EMPTY_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer x Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY_Msk (_U_(0x3) << DAC_INTENCLR_EMPTY_Pos) +#define DAC_INTENCLR_EMPTY(value) (DAC_INTENCLR_EMPTY_Msk & ((value) << DAC_INTENCLR_EMPTY_Pos)) +#define DAC_INTENCLR_RESRDY0_Pos 4 /**< \brief (DAC_INTENCLR) Result 0 Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY0 (_U_(1) << DAC_INTENCLR_RESRDY0_Pos) +#define DAC_INTENCLR_RESRDY1_Pos 5 /**< \brief (DAC_INTENCLR) Result 1 Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY1 (_U_(1) << DAC_INTENCLR_RESRDY1_Pos) +#define DAC_INTENCLR_RESRDY_Pos 4 /**< \brief (DAC_INTENCLR) Result x Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY_Msk (_U_(0x3) << DAC_INTENCLR_RESRDY_Pos) +#define DAC_INTENCLR_RESRDY(value) (DAC_INTENCLR_RESRDY_Msk & ((value) << DAC_INTENCLR_RESRDY_Pos)) +#define DAC_INTENCLR_OVERRUN0_Pos 6 /**< \brief (DAC_INTENCLR) Overrun 0 Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN0 (_U_(1) << DAC_INTENCLR_OVERRUN0_Pos) +#define DAC_INTENCLR_OVERRUN1_Pos 7 /**< \brief (DAC_INTENCLR) Overrun 1 Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN1 (_U_(1) << DAC_INTENCLR_OVERRUN1_Pos) +#define DAC_INTENCLR_OVERRUN_Pos 6 /**< \brief (DAC_INTENCLR) Overrun x Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN_Msk (_U_(0x3) << DAC_INTENCLR_OVERRUN_Pos) +#define DAC_INTENCLR_OVERRUN(value) (DAC_INTENCLR_OVERRUN_Msk & ((value) << DAC_INTENCLR_OVERRUN_Pos)) +#define DAC_INTENCLR_MASK _U_(0xFF) /**< \brief (DAC_INTENCLR) MASK Register */ + +/* -------- DAC_INTENSET : (DAC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ + uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ + uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ + uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ + uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ + uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ + uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ + uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ + uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ + uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ + uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENSET_OFFSET 0x05 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */ +#define DAC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */ + +#define DAC_INTENSET_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENSET) Underrun 0 Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN0 (_U_(1) << DAC_INTENSET_UNDERRUN0_Pos) +#define DAC_INTENSET_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENSET) Underrun 1 Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN1 (_U_(1) << DAC_INTENSET_UNDERRUN1_Pos) +#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun x Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN_Msk (_U_(0x3) << DAC_INTENSET_UNDERRUN_Pos) +#define DAC_INTENSET_UNDERRUN(value) (DAC_INTENSET_UNDERRUN_Msk & ((value) << DAC_INTENSET_UNDERRUN_Pos)) +#define DAC_INTENSET_EMPTY0_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer 0 Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY0 (_U_(1) << DAC_INTENSET_EMPTY0_Pos) +#define DAC_INTENSET_EMPTY1_Pos 3 /**< \brief (DAC_INTENSET) Data Buffer 1 Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY1 (_U_(1) << DAC_INTENSET_EMPTY1_Pos) +#define DAC_INTENSET_EMPTY_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer x Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY_Msk (_U_(0x3) << DAC_INTENSET_EMPTY_Pos) +#define DAC_INTENSET_EMPTY(value) (DAC_INTENSET_EMPTY_Msk & ((value) << DAC_INTENSET_EMPTY_Pos)) +#define DAC_INTENSET_RESRDY0_Pos 4 /**< \brief (DAC_INTENSET) Result 0 Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY0 (_U_(1) << DAC_INTENSET_RESRDY0_Pos) +#define DAC_INTENSET_RESRDY1_Pos 5 /**< \brief (DAC_INTENSET) Result 1 Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY1 (_U_(1) << DAC_INTENSET_RESRDY1_Pos) +#define DAC_INTENSET_RESRDY_Pos 4 /**< \brief (DAC_INTENSET) Result x Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY_Msk (_U_(0x3) << DAC_INTENSET_RESRDY_Pos) +#define DAC_INTENSET_RESRDY(value) (DAC_INTENSET_RESRDY_Msk & ((value) << DAC_INTENSET_RESRDY_Pos)) +#define DAC_INTENSET_OVERRUN0_Pos 6 /**< \brief (DAC_INTENSET) Overrun 0 Interrupt Enable */ +#define DAC_INTENSET_OVERRUN0 (_U_(1) << DAC_INTENSET_OVERRUN0_Pos) +#define DAC_INTENSET_OVERRUN1_Pos 7 /**< \brief (DAC_INTENSET) Overrun 1 Interrupt Enable */ +#define DAC_INTENSET_OVERRUN1 (_U_(1) << DAC_INTENSET_OVERRUN1_Pos) +#define DAC_INTENSET_OVERRUN_Pos 6 /**< \brief (DAC_INTENSET) Overrun x Interrupt Enable */ +#define DAC_INTENSET_OVERRUN_Msk (_U_(0x3) << DAC_INTENSET_OVERRUN_Pos) +#define DAC_INTENSET_OVERRUN(value) (DAC_INTENSET_OVERRUN_Msk & ((value) << DAC_INTENSET_OVERRUN_Pos)) +#define DAC_INTENSET_MASK _U_(0xFF) /**< \brief (DAC_INTENSET) MASK Register */ + +/* -------- DAC_INTFLAG : (DAC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t UNDERRUN0:1; /*!< bit: 0 Result 0 Underrun */ + __I uint8_t UNDERRUN1:1; /*!< bit: 1 Result 1 Underrun */ + __I uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty */ + __I uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty */ + __I uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready */ + __I uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready */ + __I uint8_t OVERRUN0:1; /*!< bit: 6 Result 0 Overrun */ + __I uint8_t OVERRUN1:1; /*!< bit: 7 Result 1 Overrun */ + } bit; /*!< Structure used for bit access */ + struct { + __I uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Result x Underrun */ + __I uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty */ + __I uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready */ + __I uint8_t OVERRUN:2; /*!< bit: 6.. 7 Result x Overrun */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTFLAG_OFFSET 0x06 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define DAC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define DAC_INTFLAG_UNDERRUN0_Pos 0 /**< \brief (DAC_INTFLAG) Result 0 Underrun */ +#define DAC_INTFLAG_UNDERRUN0 (_U_(1) << DAC_INTFLAG_UNDERRUN0_Pos) +#define DAC_INTFLAG_UNDERRUN1_Pos 1 /**< \brief (DAC_INTFLAG) Result 1 Underrun */ +#define DAC_INTFLAG_UNDERRUN1 (_U_(1) << DAC_INTFLAG_UNDERRUN1_Pos) +#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Result x Underrun */ +#define DAC_INTFLAG_UNDERRUN_Msk (_U_(0x3) << DAC_INTFLAG_UNDERRUN_Pos) +#define DAC_INTFLAG_UNDERRUN(value) (DAC_INTFLAG_UNDERRUN_Msk & ((value) << DAC_INTFLAG_UNDERRUN_Pos)) +#define DAC_INTFLAG_EMPTY0_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer 0 Empty */ +#define DAC_INTFLAG_EMPTY0 (_U_(1) << DAC_INTFLAG_EMPTY0_Pos) +#define DAC_INTFLAG_EMPTY1_Pos 3 /**< \brief (DAC_INTFLAG) Data Buffer 1 Empty */ +#define DAC_INTFLAG_EMPTY1 (_U_(1) << DAC_INTFLAG_EMPTY1_Pos) +#define DAC_INTFLAG_EMPTY_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer x Empty */ +#define DAC_INTFLAG_EMPTY_Msk (_U_(0x3) << DAC_INTFLAG_EMPTY_Pos) +#define DAC_INTFLAG_EMPTY(value) (DAC_INTFLAG_EMPTY_Msk & ((value) << DAC_INTFLAG_EMPTY_Pos)) +#define DAC_INTFLAG_RESRDY0_Pos 4 /**< \brief (DAC_INTFLAG) Result 0 Ready */ +#define DAC_INTFLAG_RESRDY0 (_U_(1) << DAC_INTFLAG_RESRDY0_Pos) +#define DAC_INTFLAG_RESRDY1_Pos 5 /**< \brief (DAC_INTFLAG) Result 1 Ready */ +#define DAC_INTFLAG_RESRDY1 (_U_(1) << DAC_INTFLAG_RESRDY1_Pos) +#define DAC_INTFLAG_RESRDY_Pos 4 /**< \brief (DAC_INTFLAG) Result x Ready */ +#define DAC_INTFLAG_RESRDY_Msk (_U_(0x3) << DAC_INTFLAG_RESRDY_Pos) +#define DAC_INTFLAG_RESRDY(value) (DAC_INTFLAG_RESRDY_Msk & ((value) << DAC_INTFLAG_RESRDY_Pos)) +#define DAC_INTFLAG_OVERRUN0_Pos 6 /**< \brief (DAC_INTFLAG) Result 0 Overrun */ +#define DAC_INTFLAG_OVERRUN0 (_U_(1) << DAC_INTFLAG_OVERRUN0_Pos) +#define DAC_INTFLAG_OVERRUN1_Pos 7 /**< \brief (DAC_INTFLAG) Result 1 Overrun */ +#define DAC_INTFLAG_OVERRUN1 (_U_(1) << DAC_INTFLAG_OVERRUN1_Pos) +#define DAC_INTFLAG_OVERRUN_Pos 6 /**< \brief (DAC_INTFLAG) Result x Overrun */ +#define DAC_INTFLAG_OVERRUN_Msk (_U_(0x3) << DAC_INTFLAG_OVERRUN_Pos) +#define DAC_INTFLAG_OVERRUN(value) (DAC_INTFLAG_OVERRUN_Msk & ((value) << DAC_INTFLAG_OVERRUN_Pos)) +#define DAC_INTFLAG_MASK _U_(0xFF) /**< \brief (DAC_INTFLAG) MASK Register */ + +/* -------- DAC_STATUS : (DAC Offset: 0x07) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t READY0:1; /*!< bit: 0 DAC 0 Startup Ready */ + uint8_t READY1:1; /*!< bit: 1 DAC 1 Startup Ready */ + uint8_t EOC0:1; /*!< bit: 2 DAC 0 End of Conversion */ + uint8_t EOC1:1; /*!< bit: 3 DAC 1 End of Conversion */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t READY:2; /*!< bit: 0.. 1 DAC x Startup Ready */ + uint8_t EOC:2; /*!< bit: 2.. 3 DAC x End of Conversion */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_STATUS_OFFSET 0x07 /**< \brief (DAC_STATUS offset) Status */ +#define DAC_STATUS_RESETVALUE _U_(0x00) /**< \brief (DAC_STATUS reset_value) Status */ + +#define DAC_STATUS_READY0_Pos 0 /**< \brief (DAC_STATUS) DAC 0 Startup Ready */ +#define DAC_STATUS_READY0 (_U_(1) << DAC_STATUS_READY0_Pos) +#define DAC_STATUS_READY1_Pos 1 /**< \brief (DAC_STATUS) DAC 1 Startup Ready */ +#define DAC_STATUS_READY1 (_U_(1) << DAC_STATUS_READY1_Pos) +#define DAC_STATUS_READY_Pos 0 /**< \brief (DAC_STATUS) DAC x Startup Ready */ +#define DAC_STATUS_READY_Msk (_U_(0x3) << DAC_STATUS_READY_Pos) +#define DAC_STATUS_READY(value) (DAC_STATUS_READY_Msk & ((value) << DAC_STATUS_READY_Pos)) +#define DAC_STATUS_EOC0_Pos 2 /**< \brief (DAC_STATUS) DAC 0 End of Conversion */ +#define DAC_STATUS_EOC0 (_U_(1) << DAC_STATUS_EOC0_Pos) +#define DAC_STATUS_EOC1_Pos 3 /**< \brief (DAC_STATUS) DAC 1 End of Conversion */ +#define DAC_STATUS_EOC1 (_U_(1) << DAC_STATUS_EOC1_Pos) +#define DAC_STATUS_EOC_Pos 2 /**< \brief (DAC_STATUS) DAC x End of Conversion */ +#define DAC_STATUS_EOC_Msk (_U_(0x3) << DAC_STATUS_EOC_Pos) +#define DAC_STATUS_EOC(value) (DAC_STATUS_EOC_Msk & ((value) << DAC_STATUS_EOC_Pos)) +#define DAC_STATUS_MASK _U_(0x0F) /**< \brief (DAC_STATUS) MASK Register */ + +/* -------- DAC_SYNCBUSY : (DAC Offset: 0x08) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset */ + uint32_t ENABLE:1; /*!< bit: 1 DAC Enable Status */ + uint32_t DATA0:1; /*!< bit: 2 Data DAC 0 */ + uint32_t DATA1:1; /*!< bit: 3 Data DAC 1 */ + uint32_t DATABUF0:1; /*!< bit: 4 Data Buffer DAC 0 */ + uint32_t DATABUF1:1; /*!< bit: 5 Data Buffer DAC 1 */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t :2; /*!< bit: 0.. 1 Reserved */ + uint32_t DATA:2; /*!< bit: 2.. 3 Data DAC x */ + uint32_t DATABUF:2; /*!< bit: 4.. 5 Data Buffer DAC x */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DAC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_SYNCBUSY_OFFSET 0x08 /**< \brief (DAC_SYNCBUSY offset) Synchronization Busy */ +#define DAC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (DAC_SYNCBUSY reset_value) Synchronization Busy */ + +#define DAC_SYNCBUSY_SWRST_Pos 0 /**< \brief (DAC_SYNCBUSY) Software Reset */ +#define DAC_SYNCBUSY_SWRST (_U_(0x1) << DAC_SYNCBUSY_SWRST_Pos) +#define DAC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (DAC_SYNCBUSY) DAC Enable Status */ +#define DAC_SYNCBUSY_ENABLE (_U_(0x1) << DAC_SYNCBUSY_ENABLE_Pos) +#define DAC_SYNCBUSY_DATA0_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC 0 */ +#define DAC_SYNCBUSY_DATA0 (_U_(1) << DAC_SYNCBUSY_DATA0_Pos) +#define DAC_SYNCBUSY_DATA1_Pos 3 /**< \brief (DAC_SYNCBUSY) Data DAC 1 */ +#define DAC_SYNCBUSY_DATA1 (_U_(1) << DAC_SYNCBUSY_DATA1_Pos) +#define DAC_SYNCBUSY_DATA_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC x */ +#define DAC_SYNCBUSY_DATA_Msk (_U_(0x3) << DAC_SYNCBUSY_DATA_Pos) +#define DAC_SYNCBUSY_DATA(value) (DAC_SYNCBUSY_DATA_Msk & ((value) << DAC_SYNCBUSY_DATA_Pos)) +#define DAC_SYNCBUSY_DATABUF0_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 0 */ +#define DAC_SYNCBUSY_DATABUF0 (_U_(1) << DAC_SYNCBUSY_DATABUF0_Pos) +#define DAC_SYNCBUSY_DATABUF1_Pos 5 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 1 */ +#define DAC_SYNCBUSY_DATABUF1 (_U_(1) << DAC_SYNCBUSY_DATABUF1_Pos) +#define DAC_SYNCBUSY_DATABUF_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC x */ +#define DAC_SYNCBUSY_DATABUF_Msk (_U_(0x3) << DAC_SYNCBUSY_DATABUF_Pos) +#define DAC_SYNCBUSY_DATABUF(value) (DAC_SYNCBUSY_DATABUF_Msk & ((value) << DAC_SYNCBUSY_DATABUF_Pos)) +#define DAC_SYNCBUSY_MASK _U_(0x0000003F) /**< \brief (DAC_SYNCBUSY) MASK Register */ + +/* -------- DAC_DACCTRL : (DAC Offset: 0x0C) (R/W 16) DAC n Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t LEFTADJ:1; /*!< bit: 0 Left Adjusted Data */ + uint16_t ENABLE:1; /*!< bit: 1 Enable DAC0 */ + uint16_t CCTRL:2; /*!< bit: 2.. 3 Current Control */ + uint16_t :1; /*!< bit: 4 Reserved */ + uint16_t FEXT:1; /*!< bit: 5 Standalone Filter */ + uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint16_t DITHER:1; /*!< bit: 7 Dithering Mode */ + uint16_t REFRESH:4; /*!< bit: 8..11 Refresh period */ + uint16_t :1; /*!< bit: 12 Reserved */ + uint16_t OSR:3; /*!< bit: 13..15 Sampling Rate */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DACCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DACCTRL_OFFSET 0x0C /**< \brief (DAC_DACCTRL offset) DAC n Control */ +#define DAC_DACCTRL_RESETVALUE _U_(0x0000) /**< \brief (DAC_DACCTRL reset_value) DAC n Control */ + +#define DAC_DACCTRL_LEFTADJ_Pos 0 /**< \brief (DAC_DACCTRL) Left Adjusted Data */ +#define DAC_DACCTRL_LEFTADJ (_U_(0x1) << DAC_DACCTRL_LEFTADJ_Pos) +#define DAC_DACCTRL_ENABLE_Pos 1 /**< \brief (DAC_DACCTRL) Enable DAC0 */ +#define DAC_DACCTRL_ENABLE (_U_(0x1) << DAC_DACCTRL_ENABLE_Pos) +#define DAC_DACCTRL_CCTRL_Pos 2 /**< \brief (DAC_DACCTRL) Current Control */ +#define DAC_DACCTRL_CCTRL_Msk (_U_(0x3) << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL(value) (DAC_DACCTRL_CCTRL_Msk & ((value) << DAC_DACCTRL_CCTRL_Pos)) +#define DAC_DACCTRL_CCTRL_CC100K_Val _U_(0x0) /**< \brief (DAC_DACCTRL) GCLK_DAC ≤ 1.2MHz (100kSPS) */ +#define DAC_DACCTRL_CCTRL_CC1M_Val _U_(0x1) /**< \brief (DAC_DACCTRL) 1.2MHz < GCLK_DAC ≤ 6MHz (500kSPS) */ +#define DAC_DACCTRL_CCTRL_CC12M_Val _U_(0x2) /**< \brief (DAC_DACCTRL) 6MHz < GCLK_DAC ≤ 12MHz (1MSPS) */ +#define DAC_DACCTRL_CCTRL_CC100K (DAC_DACCTRL_CCTRL_CC100K_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL_CC1M (DAC_DACCTRL_CCTRL_CC1M_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL_CC12M (DAC_DACCTRL_CCTRL_CC12M_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_FEXT_Pos 5 /**< \brief (DAC_DACCTRL) Standalone Filter */ +#define DAC_DACCTRL_FEXT (_U_(0x1) << DAC_DACCTRL_FEXT_Pos) +#define DAC_DACCTRL_RUNSTDBY_Pos 6 /**< \brief (DAC_DACCTRL) Run in Standby */ +#define DAC_DACCTRL_RUNSTDBY (_U_(0x1) << DAC_DACCTRL_RUNSTDBY_Pos) +#define DAC_DACCTRL_DITHER_Pos 7 /**< \brief (DAC_DACCTRL) Dithering Mode */ +#define DAC_DACCTRL_DITHER (_U_(0x1) << DAC_DACCTRL_DITHER_Pos) +#define DAC_DACCTRL_REFRESH_Pos 8 /**< \brief (DAC_DACCTRL) Refresh period */ +#define DAC_DACCTRL_REFRESH_Msk (_U_(0xF) << DAC_DACCTRL_REFRESH_Pos) +#define DAC_DACCTRL_REFRESH(value) (DAC_DACCTRL_REFRESH_Msk & ((value) << DAC_DACCTRL_REFRESH_Pos)) +#define DAC_DACCTRL_OSR_Pos 13 /**< \brief (DAC_DACCTRL) Sampling Rate */ +#define DAC_DACCTRL_OSR_Msk (_U_(0x7) << DAC_DACCTRL_OSR_Pos) +#define DAC_DACCTRL_OSR(value) (DAC_DACCTRL_OSR_Msk & ((value) << DAC_DACCTRL_OSR_Pos)) +#define DAC_DACCTRL_MASK _U_(0xEFEF) /**< \brief (DAC_DACCTRL) MASK Register */ + +/* -------- DAC_DATA : (DAC Offset: 0x10) ( /W 16) DAC n Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATA:16; /*!< bit: 0..15 DAC0 Data */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATA_OFFSET 0x10 /**< \brief (DAC_DATA offset) DAC n Data */ +#define DAC_DATA_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATA reset_value) DAC n Data */ + +#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) DAC0 Data */ +#define DAC_DATA_DATA_Msk (_U_(0xFFFF) << DAC_DATA_DATA_Pos) +#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos)) +#define DAC_DATA_MASK _U_(0xFFFF) /**< \brief (DAC_DATA) MASK Register */ + +/* -------- DAC_DATABUF : (DAC Offset: 0x14) ( /W 16) DAC n Data Buffer -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATABUF:16; /*!< bit: 0..15 DAC0 Data Buffer */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATABUF_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATABUF_OFFSET 0x14 /**< \brief (DAC_DATABUF offset) DAC n Data Buffer */ +#define DAC_DATABUF_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATABUF reset_value) DAC n Data Buffer */ + +#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) DAC0 Data Buffer */ +#define DAC_DATABUF_DATABUF_Msk (_U_(0xFFFF) << DAC_DATABUF_DATABUF_Pos) +#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos)) +#define DAC_DATABUF_MASK _U_(0xFFFF) /**< \brief (DAC_DATABUF) MASK Register */ + +/* -------- DAC_DBGCTRL : (DAC Offset: 0x18) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DBGCTRL_OFFSET 0x18 /**< \brief (DAC_DBGCTRL offset) Debug Control */ +#define DAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_DBGCTRL reset_value) Debug Control */ + +#define DAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DAC_DBGCTRL) Debug Run */ +#define DAC_DBGCTRL_DBGRUN (_U_(0x1) << DAC_DBGCTRL_DBGRUN_Pos) +#define DAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DAC_DBGCTRL) MASK Register */ + +/* -------- DAC_RESULT : (DAC Offset: 0x1C) (R/ 16) Filter Result -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESULT:16; /*!< bit: 0..15 Filter Result */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_RESULT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_RESULT_OFFSET 0x1C /**< \brief (DAC_RESULT offset) Filter Result */ +#define DAC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (DAC_RESULT reset_value) Filter Result */ + +#define DAC_RESULT_RESULT_Pos 0 /**< \brief (DAC_RESULT) Filter Result */ +#define DAC_RESULT_RESULT_Msk (_U_(0xFFFF) << DAC_RESULT_RESULT_Pos) +#define DAC_RESULT_RESULT(value) (DAC_RESULT_RESULT_Msk & ((value) << DAC_RESULT_RESULT_Pos)) +#define DAC_RESULT_MASK _U_(0xFFFF) /**< \brief (DAC_RESULT) MASK Register */ + +/** \brief DAC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 (R/W 8) Control B */ + __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ + RoReg8 Reserved1[0x1]; + __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ + __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ + __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ + __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x07 (R/ 8) Status */ + __I DAC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x08 (R/ 32) Synchronization Busy */ + __IO DAC_DACCTRL_Type DACCTRL[2]; /**< \brief Offset: 0x0C (R/W 16) DAC n Control */ + __O DAC_DATA_Type DATA[2]; /**< \brief Offset: 0x10 ( /W 16) DAC n Data */ + __O DAC_DATABUF_Type DATABUF[2]; /**< \brief Offset: 0x14 ( /W 16) DAC n Data Buffer */ + __IO DAC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x18 (R/W 8) Debug Control */ + RoReg8 Reserved2[0x3]; + __I DAC_RESULT_Type RESULT[2]; /**< \brief Offset: 0x1C (R/ 16) Filter Result */ +} Dac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_DAC_COMPONENT_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h new file mode 100644 index 0000000000..295b31fe48 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h @@ -0,0 +1,1416 @@ +/** + * \file + * + * \brief Component description for DMAC + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_DMAC_COMPONENT_ +#define _SAMD51_DMAC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR DMAC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_DMAC Direct Memory Access Controller */ +/*@{*/ + +#define DMAC_U2503 +#define REV_DMAC 0x100 + +/* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t SWRST:1; /*!< bit: 0 Software Reset */ + uint16_t DMAENABLE:1; /*!< bit: 1 DMA Enable */ + uint16_t :6; /*!< bit: 2.. 7 Reserved */ + uint16_t LVLEN0:1; /*!< bit: 8 Priority Level 0 Enable */ + uint16_t LVLEN1:1; /*!< bit: 9 Priority Level 1 Enable */ + uint16_t LVLEN2:1; /*!< bit: 10 Priority Level 2 Enable */ + uint16_t LVLEN3:1; /*!< bit: 11 Priority Level 3 Enable */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint16_t :8; /*!< bit: 0.. 7 Reserved */ + uint16_t LVLEN:4; /*!< bit: 8..11 Priority Level x Enable */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } vec; /*!< Structure used for vec access */ + uint16_t reg; /*!< Type used for register access */ +} DMAC_CTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CTRL_OFFSET 0x00 /**< \brief (DMAC_CTRL offset) Control */ +#define DMAC_CTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CTRL reset_value) Control */ + +#define DMAC_CTRL_SWRST_Pos 0 /**< \brief (DMAC_CTRL) Software Reset */ +#define DMAC_CTRL_SWRST (_U_(0x1) << DMAC_CTRL_SWRST_Pos) +#define DMAC_CTRL_DMAENABLE_Pos 1 /**< \brief (DMAC_CTRL) DMA Enable */ +#define DMAC_CTRL_DMAENABLE (_U_(0x1) << DMAC_CTRL_DMAENABLE_Pos) +#define DMAC_CTRL_LVLEN0_Pos 8 /**< \brief (DMAC_CTRL) Priority Level 0 Enable */ +#define DMAC_CTRL_LVLEN0 (_U_(1) << DMAC_CTRL_LVLEN0_Pos) +#define DMAC_CTRL_LVLEN1_Pos 9 /**< \brief (DMAC_CTRL) Priority Level 1 Enable */ +#define DMAC_CTRL_LVLEN1 (_U_(1) << DMAC_CTRL_LVLEN1_Pos) +#define DMAC_CTRL_LVLEN2_Pos 10 /**< \brief (DMAC_CTRL) Priority Level 2 Enable */ +#define DMAC_CTRL_LVLEN2 (_U_(1) << DMAC_CTRL_LVLEN2_Pos) +#define DMAC_CTRL_LVLEN3_Pos 11 /**< \brief (DMAC_CTRL) Priority Level 3 Enable */ +#define DMAC_CTRL_LVLEN3 (_U_(1) << DMAC_CTRL_LVLEN3_Pos) +#define DMAC_CTRL_LVLEN_Pos 8 /**< \brief (DMAC_CTRL) Priority Level x Enable */ +#define DMAC_CTRL_LVLEN_Msk (_U_(0xF) << DMAC_CTRL_LVLEN_Pos) +#define DMAC_CTRL_LVLEN(value) (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos)) +#define DMAC_CTRL_MASK _U_(0x0F03) /**< \brief (DMAC_CTRL) MASK Register */ + +/* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t CRCBEATSIZE:2; /*!< bit: 0.. 1 CRC Beat Size */ + uint16_t CRCPOLY:2; /*!< bit: 2.. 3 CRC Polynomial Type */ + uint16_t :4; /*!< bit: 4.. 7 Reserved */ + uint16_t CRCSRC:6; /*!< bit: 8..13 CRC Input Source */ + uint16_t CRCMODE:2; /*!< bit: 14..15 CRC Operating Mode */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DMAC_CRCCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CRCCTRL_OFFSET 0x02 /**< \brief (DMAC_CRCCTRL offset) CRC Control */ +#define DMAC_CRCCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CRCCTRL reset_value) CRC Control */ + +#define DMAC_CRCCTRL_CRCBEATSIZE_Pos 0 /**< \brief (DMAC_CRCCTRL) CRC Beat Size */ +#define DMAC_CRCCTRL_CRCBEATSIZE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCBEATSIZE_Pos) +#define DMAC_CRCCTRL_CRCBEATSIZE(value) (DMAC_CRCCTRL_CRCBEATSIZE_Msk & ((value) << DMAC_CRCCTRL_CRCBEATSIZE_Pos)) +#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) 8-bit bus transfer */ +#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) 16-bit bus transfer */ +#define DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_CRCCTRL) 32-bit bus transfer */ +#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) +#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) +#define DMAC_CRCCTRL_CRCBEATSIZE_WORD (DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) +#define DMAC_CRCCTRL_CRCPOLY_Pos 2 /**< \brief (DMAC_CRCCTRL) CRC Polynomial Type */ +#define DMAC_CRCCTRL_CRCPOLY_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCPOLY_Pos) +#define DMAC_CRCCTRL_CRCPOLY(value) (DMAC_CRCCTRL_CRCPOLY_Msk & ((value) << DMAC_CRCCTRL_CRCPOLY_Pos)) +#define DMAC_CRCCTRL_CRCPOLY_CRC16_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) */ +#define DMAC_CRCCTRL_CRCPOLY_CRC32_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) CRC32 (IEEE 802.3) */ +#define DMAC_CRCCTRL_CRCPOLY_CRC16 (DMAC_CRCCTRL_CRCPOLY_CRC16_Val << DMAC_CRCCTRL_CRCPOLY_Pos) +#define DMAC_CRCCTRL_CRCPOLY_CRC32 (DMAC_CRCCTRL_CRCPOLY_CRC32_Val << DMAC_CRCCTRL_CRCPOLY_Pos) +#define DMAC_CRCCTRL_CRCSRC_Pos 8 /**< \brief (DMAC_CRCCTRL) CRC Input Source */ +#define DMAC_CRCCTRL_CRCSRC_Msk (_U_(0x3F) << DMAC_CRCCTRL_CRCSRC_Pos) +#define DMAC_CRCCTRL_CRCSRC(value) (DMAC_CRCCTRL_CRCSRC_Msk & ((value) << DMAC_CRCCTRL_CRCSRC_Pos)) +#define DMAC_CRCCTRL_CRCSRC_DISABLE_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) CRC Disabled */ +#define DMAC_CRCCTRL_CRCSRC_IO_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) I/O interface */ +#define DMAC_CRCCTRL_CRCSRC_DISABLE (DMAC_CRCCTRL_CRCSRC_DISABLE_Val << DMAC_CRCCTRL_CRCSRC_Pos) +#define DMAC_CRCCTRL_CRCSRC_IO (DMAC_CRCCTRL_CRCSRC_IO_Val << DMAC_CRCCTRL_CRCSRC_Pos) +#define DMAC_CRCCTRL_CRCMODE_Pos 14 /**< \brief (DMAC_CRCCTRL) CRC Operating Mode */ +#define DMAC_CRCCTRL_CRCMODE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCMODE_Pos) +#define DMAC_CRCCTRL_CRCMODE(value) (DMAC_CRCCTRL_CRCMODE_Msk & ((value) << DMAC_CRCCTRL_CRCMODE_Pos)) +#define DMAC_CRCCTRL_CRCMODE_DEFAULT_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) Default operating mode */ +#define DMAC_CRCCTRL_CRCMODE_CRCMON_Val _U_(0x2) /**< \brief (DMAC_CRCCTRL) Memory CRC monitor operating mode */ +#define DMAC_CRCCTRL_CRCMODE_CRCGEN_Val _U_(0x3) /**< \brief (DMAC_CRCCTRL) Memory CRC generation operating mode */ +#define DMAC_CRCCTRL_CRCMODE_DEFAULT (DMAC_CRCCTRL_CRCMODE_DEFAULT_Val << DMAC_CRCCTRL_CRCMODE_Pos) +#define DMAC_CRCCTRL_CRCMODE_CRCMON (DMAC_CRCCTRL_CRCMODE_CRCMON_Val << DMAC_CRCCTRL_CRCMODE_Pos) +#define DMAC_CRCCTRL_CRCMODE_CRCGEN (DMAC_CRCCTRL_CRCMODE_CRCGEN_Val << DMAC_CRCCTRL_CRCMODE_Pos) +#define DMAC_CRCCTRL_MASK _U_(0xFF0F) /**< \brief (DMAC_CRCCTRL) MASK Register */ + +/* -------- DMAC_CRCDATAIN : (DMAC Offset: 0x04) (R/W 32) CRC Data Input -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CRCDATAIN:32; /*!< bit: 0..31 CRC Data Input */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_CRCDATAIN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CRCDATAIN_OFFSET 0x04 /**< \brief (DMAC_CRCDATAIN offset) CRC Data Input */ +#define DMAC_CRCDATAIN_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCDATAIN reset_value) CRC Data Input */ + +#define DMAC_CRCDATAIN_CRCDATAIN_Pos 0 /**< \brief (DMAC_CRCDATAIN) CRC Data Input */ +#define DMAC_CRCDATAIN_CRCDATAIN_Msk (_U_(0xFFFFFFFF) << DMAC_CRCDATAIN_CRCDATAIN_Pos) +#define DMAC_CRCDATAIN_CRCDATAIN(value) (DMAC_CRCDATAIN_CRCDATAIN_Msk & ((value) << DMAC_CRCDATAIN_CRCDATAIN_Pos)) +#define DMAC_CRCDATAIN_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCDATAIN) MASK Register */ + +/* -------- DMAC_CRCCHKSUM : (DMAC Offset: 0x08) (R/W 32) CRC Checksum -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CRCCHKSUM:32; /*!< bit: 0..31 CRC Checksum */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_CRCCHKSUM_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CRCCHKSUM_OFFSET 0x08 /**< \brief (DMAC_CRCCHKSUM offset) CRC Checksum */ +#define DMAC_CRCCHKSUM_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCCHKSUM reset_value) CRC Checksum */ + +#define DMAC_CRCCHKSUM_CRCCHKSUM_Pos 0 /**< \brief (DMAC_CRCCHKSUM) CRC Checksum */ +#define DMAC_CRCCHKSUM_CRCCHKSUM_Msk (_U_(0xFFFFFFFF) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos) +#define DMAC_CRCCHKSUM_CRCCHKSUM(value) (DMAC_CRCCHKSUM_CRCCHKSUM_Msk & ((value) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos)) +#define DMAC_CRCCHKSUM_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCCHKSUM) MASK Register */ + +/* -------- DMAC_CRCSTATUS : (DMAC Offset: 0x0C) (R/W 8) CRC Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t CRCBUSY:1; /*!< bit: 0 CRC Module Busy */ + uint8_t CRCZERO:1; /*!< bit: 1 CRC Zero */ + uint8_t CRCERR:1; /*!< bit: 2 CRC Error */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CRCSTATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CRCSTATUS_OFFSET 0x0C /**< \brief (DMAC_CRCSTATUS offset) CRC Status */ +#define DMAC_CRCSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CRCSTATUS reset_value) CRC Status */ + +#define DMAC_CRCSTATUS_CRCBUSY_Pos 0 /**< \brief (DMAC_CRCSTATUS) CRC Module Busy */ +#define DMAC_CRCSTATUS_CRCBUSY (_U_(0x1) << DMAC_CRCSTATUS_CRCBUSY_Pos) +#define DMAC_CRCSTATUS_CRCZERO_Pos 1 /**< \brief (DMAC_CRCSTATUS) CRC Zero */ +#define DMAC_CRCSTATUS_CRCZERO (_U_(0x1) << DMAC_CRCSTATUS_CRCZERO_Pos) +#define DMAC_CRCSTATUS_CRCERR_Pos 2 /**< \brief (DMAC_CRCSTATUS) CRC Error */ +#define DMAC_CRCSTATUS_CRCERR (_U_(0x1) << DMAC_CRCSTATUS_CRCERR_Pos) +#define DMAC_CRCSTATUS_MASK _U_(0x07) /**< \brief (DMAC_CRCSTATUS) MASK Register */ + +/* -------- DMAC_DBGCTRL : (DMAC Offset: 0x0D) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_DBGCTRL_OFFSET 0x0D /**< \brief (DMAC_DBGCTRL offset) Debug Control */ +#define DMAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DMAC_DBGCTRL reset_value) Debug Control */ + +#define DMAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DMAC_DBGCTRL) Debug Run */ +#define DMAC_DBGCTRL_DBGRUN (_U_(0x1) << DMAC_DBGCTRL_DBGRUN_Pos) +#define DMAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DMAC_DBGCTRL) MASK Register */ + +/* -------- DMAC_SWTRIGCTRL : (DMAC Offset: 0x10) (R/W 32) Software Trigger Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWTRIG0:1; /*!< bit: 0 Channel 0 Software Trigger */ + uint32_t SWTRIG1:1; /*!< bit: 1 Channel 1 Software Trigger */ + uint32_t SWTRIG2:1; /*!< bit: 2 Channel 2 Software Trigger */ + uint32_t SWTRIG3:1; /*!< bit: 3 Channel 3 Software Trigger */ + uint32_t SWTRIG4:1; /*!< bit: 4 Channel 4 Software Trigger */ + uint32_t SWTRIG5:1; /*!< bit: 5 Channel 5 Software Trigger */ + uint32_t SWTRIG6:1; /*!< bit: 6 Channel 6 Software Trigger */ + uint32_t SWTRIG7:1; /*!< bit: 7 Channel 7 Software Trigger */ + uint32_t SWTRIG8:1; /*!< bit: 8 Channel 8 Software Trigger */ + uint32_t SWTRIG9:1; /*!< bit: 9 Channel 9 Software Trigger */ + uint32_t SWTRIG10:1; /*!< bit: 10 Channel 10 Software Trigger */ + uint32_t SWTRIG11:1; /*!< bit: 11 Channel 11 Software Trigger */ + uint32_t SWTRIG12:1; /*!< bit: 12 Channel 12 Software Trigger */ + uint32_t SWTRIG13:1; /*!< bit: 13 Channel 13 Software Trigger */ + uint32_t SWTRIG14:1; /*!< bit: 14 Channel 14 Software Trigger */ + uint32_t SWTRIG15:1; /*!< bit: 15 Channel 15 Software Trigger */ + uint32_t SWTRIG16:1; /*!< bit: 16 Channel 16 Software Trigger */ + uint32_t SWTRIG17:1; /*!< bit: 17 Channel 17 Software Trigger */ + uint32_t SWTRIG18:1; /*!< bit: 18 Channel 18 Software Trigger */ + uint32_t SWTRIG19:1; /*!< bit: 19 Channel 19 Software Trigger */ + uint32_t SWTRIG20:1; /*!< bit: 20 Channel 20 Software Trigger */ + uint32_t SWTRIG21:1; /*!< bit: 21 Channel 21 Software Trigger */ + uint32_t SWTRIG22:1; /*!< bit: 22 Channel 22 Software Trigger */ + uint32_t SWTRIG23:1; /*!< bit: 23 Channel 23 Software Trigger */ + uint32_t SWTRIG24:1; /*!< bit: 24 Channel 24 Software Trigger */ + uint32_t SWTRIG25:1; /*!< bit: 25 Channel 25 Software Trigger */ + uint32_t SWTRIG26:1; /*!< bit: 26 Channel 26 Software Trigger */ + uint32_t SWTRIG27:1; /*!< bit: 27 Channel 27 Software Trigger */ + uint32_t SWTRIG28:1; /*!< bit: 28 Channel 28 Software Trigger */ + uint32_t SWTRIG29:1; /*!< bit: 29 Channel 29 Software Trigger */ + uint32_t SWTRIG30:1; /*!< bit: 30 Channel 30 Software Trigger */ + uint32_t SWTRIG31:1; /*!< bit: 31 Channel 31 Software Trigger */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t SWTRIG:32; /*!< bit: 0..31 Channel x Software Trigger */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_SWTRIGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_SWTRIGCTRL_OFFSET 0x10 /**< \brief (DMAC_SWTRIGCTRL offset) Software Trigger Control */ +#define DMAC_SWTRIGCTRL_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_SWTRIGCTRL reset_value) Software Trigger Control */ + +#define DMAC_SWTRIGCTRL_SWTRIG0_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel 0 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG0 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG0_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG1_Pos 1 /**< \brief (DMAC_SWTRIGCTRL) Channel 1 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG1 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG1_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG2_Pos 2 /**< \brief (DMAC_SWTRIGCTRL) Channel 2 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG2 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG2_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG3_Pos 3 /**< \brief (DMAC_SWTRIGCTRL) Channel 3 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG3 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG3_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG4_Pos 4 /**< \brief (DMAC_SWTRIGCTRL) Channel 4 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG4 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG4_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG5_Pos 5 /**< \brief (DMAC_SWTRIGCTRL) Channel 5 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG5 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG5_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG6_Pos 6 /**< \brief (DMAC_SWTRIGCTRL) Channel 6 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG6 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG6_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG7_Pos 7 /**< \brief (DMAC_SWTRIGCTRL) Channel 7 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG7 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG7_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG8_Pos 8 /**< \brief (DMAC_SWTRIGCTRL) Channel 8 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG8 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG8_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG9_Pos 9 /**< \brief (DMAC_SWTRIGCTRL) Channel 9 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG9 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG9_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG10_Pos 10 /**< \brief (DMAC_SWTRIGCTRL) Channel 10 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG10 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG10_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG11_Pos 11 /**< \brief (DMAC_SWTRIGCTRL) Channel 11 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG11 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG11_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG12_Pos 12 /**< \brief (DMAC_SWTRIGCTRL) Channel 12 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG12 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG12_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG13_Pos 13 /**< \brief (DMAC_SWTRIGCTRL) Channel 13 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG13 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG13_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG14_Pos 14 /**< \brief (DMAC_SWTRIGCTRL) Channel 14 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG14 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG14_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG15_Pos 15 /**< \brief (DMAC_SWTRIGCTRL) Channel 15 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG15 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG15_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG16_Pos 16 /**< \brief (DMAC_SWTRIGCTRL) Channel 16 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG16 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG16_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG17_Pos 17 /**< \brief (DMAC_SWTRIGCTRL) Channel 17 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG17 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG17_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG18_Pos 18 /**< \brief (DMAC_SWTRIGCTRL) Channel 18 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG18 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG18_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG19_Pos 19 /**< \brief (DMAC_SWTRIGCTRL) Channel 19 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG19 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG19_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG20_Pos 20 /**< \brief (DMAC_SWTRIGCTRL) Channel 20 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG20 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG20_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG21_Pos 21 /**< \brief (DMAC_SWTRIGCTRL) Channel 21 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG21 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG21_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG22_Pos 22 /**< \brief (DMAC_SWTRIGCTRL) Channel 22 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG22 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG22_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG23_Pos 23 /**< \brief (DMAC_SWTRIGCTRL) Channel 23 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG23 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG23_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG24_Pos 24 /**< \brief (DMAC_SWTRIGCTRL) Channel 24 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG24 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG24_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG25_Pos 25 /**< \brief (DMAC_SWTRIGCTRL) Channel 25 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG25 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG25_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG26_Pos 26 /**< \brief (DMAC_SWTRIGCTRL) Channel 26 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG26 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG26_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG27_Pos 27 /**< \brief (DMAC_SWTRIGCTRL) Channel 27 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG27 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG27_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG28_Pos 28 /**< \brief (DMAC_SWTRIGCTRL) Channel 28 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG28 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG28_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG29_Pos 29 /**< \brief (DMAC_SWTRIGCTRL) Channel 29 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG29 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG29_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG30_Pos 30 /**< \brief (DMAC_SWTRIGCTRL) Channel 30 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG30 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG30_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG31_Pos 31 /**< \brief (DMAC_SWTRIGCTRL) Channel 31 Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG31 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG31_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel x Software Trigger */ +#define DMAC_SWTRIGCTRL_SWTRIG_Msk (_U_(0xFFFFFFFF) << DMAC_SWTRIGCTRL_SWTRIG_Pos) +#define DMAC_SWTRIGCTRL_SWTRIG(value) (DMAC_SWTRIGCTRL_SWTRIG_Msk & ((value) << DMAC_SWTRIGCTRL_SWTRIG_Pos)) +#define DMAC_SWTRIGCTRL_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_SWTRIGCTRL) MASK Register */ + +/* -------- DMAC_PRICTRL0 : (DMAC Offset: 0x14) (R/W 32) Priority Control 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t LVLPRI0:5; /*!< bit: 0.. 4 Level 0 Channel Priority Number */ + uint32_t QOS0:2; /*!< bit: 5.. 6 Level 0 Quality of Service */ + uint32_t RRLVLEN0:1; /*!< bit: 7 Level 0 Round-Robin Scheduling Enable */ + uint32_t LVLPRI1:5; /*!< bit: 8..12 Level 1 Channel Priority Number */ + uint32_t QOS1:2; /*!< bit: 13..14 Level 1 Quality of Service */ + uint32_t RRLVLEN1:1; /*!< bit: 15 Level 1 Round-Robin Scheduling Enable */ + uint32_t LVLPRI2:5; /*!< bit: 16..20 Level 2 Channel Priority Number */ + uint32_t QOS2:2; /*!< bit: 21..22 Level 2 Quality of Service */ + uint32_t RRLVLEN2:1; /*!< bit: 23 Level 2 Round-Robin Scheduling Enable */ + uint32_t LVLPRI3:5; /*!< bit: 24..28 Level 3 Channel Priority Number */ + uint32_t QOS3:2; /*!< bit: 29..30 Level 3 Quality of Service */ + uint32_t RRLVLEN3:1; /*!< bit: 31 Level 3 Round-Robin Scheduling Enable */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_PRICTRL0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_PRICTRL0_OFFSET 0x14 /**< \brief (DMAC_PRICTRL0 offset) Priority Control 0 */ +#define DMAC_PRICTRL0_RESETVALUE _U_(0x40404040) /**< \brief (DMAC_PRICTRL0 reset_value) Priority Control 0 */ + +#define DMAC_PRICTRL0_LVLPRI0_Pos 0 /**< \brief (DMAC_PRICTRL0) Level 0 Channel Priority Number */ +#define DMAC_PRICTRL0_LVLPRI0_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI0_Pos) +#define DMAC_PRICTRL0_LVLPRI0(value) (DMAC_PRICTRL0_LVLPRI0_Msk & ((value) << DMAC_PRICTRL0_LVLPRI0_Pos)) +#define DMAC_PRICTRL0_QOS0_Pos 5 /**< \brief (DMAC_PRICTRL0) Level 0 Quality of Service */ +#define DMAC_PRICTRL0_QOS0_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS0_Pos) +#define DMAC_PRICTRL0_QOS0(value) (DMAC_PRICTRL0_QOS0_Msk & ((value) << DMAC_PRICTRL0_QOS0_Pos)) +#define DMAC_PRICTRL0_QOS0_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ +#define DMAC_PRICTRL0_QOS0_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ +#define DMAC_PRICTRL0_QOS0_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ +#define DMAC_PRICTRL0_QOS0_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ +#define DMAC_PRICTRL0_QOS0_REGULAR (DMAC_PRICTRL0_QOS0_REGULAR_Val << DMAC_PRICTRL0_QOS0_Pos) +#define DMAC_PRICTRL0_QOS0_SHORTAGE (DMAC_PRICTRL0_QOS0_SHORTAGE_Val << DMAC_PRICTRL0_QOS0_Pos) +#define DMAC_PRICTRL0_QOS0_SENSITIVE (DMAC_PRICTRL0_QOS0_SENSITIVE_Val << DMAC_PRICTRL0_QOS0_Pos) +#define DMAC_PRICTRL0_QOS0_CRITICAL (DMAC_PRICTRL0_QOS0_CRITICAL_Val << DMAC_PRICTRL0_QOS0_Pos) +#define DMAC_PRICTRL0_RRLVLEN0_Pos 7 /**< \brief (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable */ +#define DMAC_PRICTRL0_RRLVLEN0 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN0_Pos) +#define DMAC_PRICTRL0_LVLPRI1_Pos 8 /**< \brief (DMAC_PRICTRL0) Level 1 Channel Priority Number */ +#define DMAC_PRICTRL0_LVLPRI1_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI1_Pos) +#define DMAC_PRICTRL0_LVLPRI1(value) (DMAC_PRICTRL0_LVLPRI1_Msk & ((value) << DMAC_PRICTRL0_LVLPRI1_Pos)) +#define DMAC_PRICTRL0_QOS1_Pos 13 /**< \brief (DMAC_PRICTRL0) Level 1 Quality of Service */ +#define DMAC_PRICTRL0_QOS1_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS1_Pos) +#define DMAC_PRICTRL0_QOS1(value) (DMAC_PRICTRL0_QOS1_Msk & ((value) << DMAC_PRICTRL0_QOS1_Pos)) +#define DMAC_PRICTRL0_QOS1_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ +#define DMAC_PRICTRL0_QOS1_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ +#define DMAC_PRICTRL0_QOS1_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ +#define DMAC_PRICTRL0_QOS1_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ +#define DMAC_PRICTRL0_QOS1_REGULAR (DMAC_PRICTRL0_QOS1_REGULAR_Val << DMAC_PRICTRL0_QOS1_Pos) +#define DMAC_PRICTRL0_QOS1_SHORTAGE (DMAC_PRICTRL0_QOS1_SHORTAGE_Val << DMAC_PRICTRL0_QOS1_Pos) +#define DMAC_PRICTRL0_QOS1_SENSITIVE (DMAC_PRICTRL0_QOS1_SENSITIVE_Val << DMAC_PRICTRL0_QOS1_Pos) +#define DMAC_PRICTRL0_QOS1_CRITICAL (DMAC_PRICTRL0_QOS1_CRITICAL_Val << DMAC_PRICTRL0_QOS1_Pos) +#define DMAC_PRICTRL0_RRLVLEN1_Pos 15 /**< \brief (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable */ +#define DMAC_PRICTRL0_RRLVLEN1 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN1_Pos) +#define DMAC_PRICTRL0_LVLPRI2_Pos 16 /**< \brief (DMAC_PRICTRL0) Level 2 Channel Priority Number */ +#define DMAC_PRICTRL0_LVLPRI2_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI2_Pos) +#define DMAC_PRICTRL0_LVLPRI2(value) (DMAC_PRICTRL0_LVLPRI2_Msk & ((value) << DMAC_PRICTRL0_LVLPRI2_Pos)) +#define DMAC_PRICTRL0_QOS2_Pos 21 /**< \brief (DMAC_PRICTRL0) Level 2 Quality of Service */ +#define DMAC_PRICTRL0_QOS2_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS2_Pos) +#define DMAC_PRICTRL0_QOS2(value) (DMAC_PRICTRL0_QOS2_Msk & ((value) << DMAC_PRICTRL0_QOS2_Pos)) +#define DMAC_PRICTRL0_QOS2_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ +#define DMAC_PRICTRL0_QOS2_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ +#define DMAC_PRICTRL0_QOS2_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ +#define DMAC_PRICTRL0_QOS2_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ +#define DMAC_PRICTRL0_QOS2_REGULAR (DMAC_PRICTRL0_QOS2_REGULAR_Val << DMAC_PRICTRL0_QOS2_Pos) +#define DMAC_PRICTRL0_QOS2_SHORTAGE (DMAC_PRICTRL0_QOS2_SHORTAGE_Val << DMAC_PRICTRL0_QOS2_Pos) +#define DMAC_PRICTRL0_QOS2_SENSITIVE (DMAC_PRICTRL0_QOS2_SENSITIVE_Val << DMAC_PRICTRL0_QOS2_Pos) +#define DMAC_PRICTRL0_QOS2_CRITICAL (DMAC_PRICTRL0_QOS2_CRITICAL_Val << DMAC_PRICTRL0_QOS2_Pos) +#define DMAC_PRICTRL0_RRLVLEN2_Pos 23 /**< \brief (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable */ +#define DMAC_PRICTRL0_RRLVLEN2 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN2_Pos) +#define DMAC_PRICTRL0_LVLPRI3_Pos 24 /**< \brief (DMAC_PRICTRL0) Level 3 Channel Priority Number */ +#define DMAC_PRICTRL0_LVLPRI3_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI3_Pos) +#define DMAC_PRICTRL0_LVLPRI3(value) (DMAC_PRICTRL0_LVLPRI3_Msk & ((value) << DMAC_PRICTRL0_LVLPRI3_Pos)) +#define DMAC_PRICTRL0_QOS3_Pos 29 /**< \brief (DMAC_PRICTRL0) Level 3 Quality of Service */ +#define DMAC_PRICTRL0_QOS3_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS3_Pos) +#define DMAC_PRICTRL0_QOS3(value) (DMAC_PRICTRL0_QOS3_Msk & ((value) << DMAC_PRICTRL0_QOS3_Pos)) +#define DMAC_PRICTRL0_QOS3_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ +#define DMAC_PRICTRL0_QOS3_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ +#define DMAC_PRICTRL0_QOS3_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ +#define DMAC_PRICTRL0_QOS3_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ +#define DMAC_PRICTRL0_QOS3_REGULAR (DMAC_PRICTRL0_QOS3_REGULAR_Val << DMAC_PRICTRL0_QOS3_Pos) +#define DMAC_PRICTRL0_QOS3_SHORTAGE (DMAC_PRICTRL0_QOS3_SHORTAGE_Val << DMAC_PRICTRL0_QOS3_Pos) +#define DMAC_PRICTRL0_QOS3_SENSITIVE (DMAC_PRICTRL0_QOS3_SENSITIVE_Val << DMAC_PRICTRL0_QOS3_Pos) +#define DMAC_PRICTRL0_QOS3_CRITICAL (DMAC_PRICTRL0_QOS3_CRITICAL_Val << DMAC_PRICTRL0_QOS3_Pos) +#define DMAC_PRICTRL0_RRLVLEN3_Pos 31 /**< \brief (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable */ +#define DMAC_PRICTRL0_RRLVLEN3 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN3_Pos) +#define DMAC_PRICTRL0_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_PRICTRL0) MASK Register */ + +/* -------- DMAC_INTPEND : (DMAC Offset: 0x20) (R/W 16) Interrupt Pending -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t ID:5; /*!< bit: 0.. 4 Channel ID */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t TERR:1; /*!< bit: 8 Transfer Error */ + uint16_t TCMPL:1; /*!< bit: 9 Transfer Complete */ + uint16_t SUSP:1; /*!< bit: 10 Channel Suspend */ + uint16_t :1; /*!< bit: 11 Reserved */ + uint16_t CRCERR:1; /*!< bit: 12 CRC Error */ + uint16_t FERR:1; /*!< bit: 13 Fetch Error */ + uint16_t BUSY:1; /*!< bit: 14 Busy */ + uint16_t PEND:1; /*!< bit: 15 Pending */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DMAC_INTPEND_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_INTPEND_OFFSET 0x20 /**< \brief (DMAC_INTPEND offset) Interrupt Pending */ +#define DMAC_INTPEND_RESETVALUE _U_(0x0000) /**< \brief (DMAC_INTPEND reset_value) Interrupt Pending */ + +#define DMAC_INTPEND_ID_Pos 0 /**< \brief (DMAC_INTPEND) Channel ID */ +#define DMAC_INTPEND_ID_Msk (_U_(0x1F) << DMAC_INTPEND_ID_Pos) +#define DMAC_INTPEND_ID(value) (DMAC_INTPEND_ID_Msk & ((value) << DMAC_INTPEND_ID_Pos)) +#define DMAC_INTPEND_TERR_Pos 8 /**< \brief (DMAC_INTPEND) Transfer Error */ +#define DMAC_INTPEND_TERR (_U_(0x1) << DMAC_INTPEND_TERR_Pos) +#define DMAC_INTPEND_TCMPL_Pos 9 /**< \brief (DMAC_INTPEND) Transfer Complete */ +#define DMAC_INTPEND_TCMPL (_U_(0x1) << DMAC_INTPEND_TCMPL_Pos) +#define DMAC_INTPEND_SUSP_Pos 10 /**< \brief (DMAC_INTPEND) Channel Suspend */ +#define DMAC_INTPEND_SUSP (_U_(0x1) << DMAC_INTPEND_SUSP_Pos) +#define DMAC_INTPEND_CRCERR_Pos 12 /**< \brief (DMAC_INTPEND) CRC Error */ +#define DMAC_INTPEND_CRCERR (_U_(0x1) << DMAC_INTPEND_CRCERR_Pos) +#define DMAC_INTPEND_FERR_Pos 13 /**< \brief (DMAC_INTPEND) Fetch Error */ +#define DMAC_INTPEND_FERR (_U_(0x1) << DMAC_INTPEND_FERR_Pos) +#define DMAC_INTPEND_BUSY_Pos 14 /**< \brief (DMAC_INTPEND) Busy */ +#define DMAC_INTPEND_BUSY (_U_(0x1) << DMAC_INTPEND_BUSY_Pos) +#define DMAC_INTPEND_PEND_Pos 15 /**< \brief (DMAC_INTPEND) Pending */ +#define DMAC_INTPEND_PEND (_U_(0x1) << DMAC_INTPEND_PEND_Pos) +#define DMAC_INTPEND_MASK _U_(0xF71F) /**< \brief (DMAC_INTPEND) MASK Register */ + +/* -------- DMAC_INTSTATUS : (DMAC Offset: 0x24) (R/ 32) Interrupt Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CHINT0:1; /*!< bit: 0 Channel 0 Pending Interrupt */ + uint32_t CHINT1:1; /*!< bit: 1 Channel 1 Pending Interrupt */ + uint32_t CHINT2:1; /*!< bit: 2 Channel 2 Pending Interrupt */ + uint32_t CHINT3:1; /*!< bit: 3 Channel 3 Pending Interrupt */ + uint32_t CHINT4:1; /*!< bit: 4 Channel 4 Pending Interrupt */ + uint32_t CHINT5:1; /*!< bit: 5 Channel 5 Pending Interrupt */ + uint32_t CHINT6:1; /*!< bit: 6 Channel 6 Pending Interrupt */ + uint32_t CHINT7:1; /*!< bit: 7 Channel 7 Pending Interrupt */ + uint32_t CHINT8:1; /*!< bit: 8 Channel 8 Pending Interrupt */ + uint32_t CHINT9:1; /*!< bit: 9 Channel 9 Pending Interrupt */ + uint32_t CHINT10:1; /*!< bit: 10 Channel 10 Pending Interrupt */ + uint32_t CHINT11:1; /*!< bit: 11 Channel 11 Pending Interrupt */ + uint32_t CHINT12:1; /*!< bit: 12 Channel 12 Pending Interrupt */ + uint32_t CHINT13:1; /*!< bit: 13 Channel 13 Pending Interrupt */ + uint32_t CHINT14:1; /*!< bit: 14 Channel 14 Pending Interrupt */ + uint32_t CHINT15:1; /*!< bit: 15 Channel 15 Pending Interrupt */ + uint32_t CHINT16:1; /*!< bit: 16 Channel 16 Pending Interrupt */ + uint32_t CHINT17:1; /*!< bit: 17 Channel 17 Pending Interrupt */ + uint32_t CHINT18:1; /*!< bit: 18 Channel 18 Pending Interrupt */ + uint32_t CHINT19:1; /*!< bit: 19 Channel 19 Pending Interrupt */ + uint32_t CHINT20:1; /*!< bit: 20 Channel 20 Pending Interrupt */ + uint32_t CHINT21:1; /*!< bit: 21 Channel 21 Pending Interrupt */ + uint32_t CHINT22:1; /*!< bit: 22 Channel 22 Pending Interrupt */ + uint32_t CHINT23:1; /*!< bit: 23 Channel 23 Pending Interrupt */ + uint32_t CHINT24:1; /*!< bit: 24 Channel 24 Pending Interrupt */ + uint32_t CHINT25:1; /*!< bit: 25 Channel 25 Pending Interrupt */ + uint32_t CHINT26:1; /*!< bit: 26 Channel 26 Pending Interrupt */ + uint32_t CHINT27:1; /*!< bit: 27 Channel 27 Pending Interrupt */ + uint32_t CHINT28:1; /*!< bit: 28 Channel 28 Pending Interrupt */ + uint32_t CHINT29:1; /*!< bit: 29 Channel 29 Pending Interrupt */ + uint32_t CHINT30:1; /*!< bit: 30 Channel 30 Pending Interrupt */ + uint32_t CHINT31:1; /*!< bit: 31 Channel 31 Pending Interrupt */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t CHINT:32; /*!< bit: 0..31 Channel x Pending Interrupt */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_INTSTATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_INTSTATUS_OFFSET 0x24 /**< \brief (DMAC_INTSTATUS offset) Interrupt Status */ +#define DMAC_INTSTATUS_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_INTSTATUS reset_value) Interrupt Status */ + +#define DMAC_INTSTATUS_CHINT0_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel 0 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT0 (_U_(1) << DMAC_INTSTATUS_CHINT0_Pos) +#define DMAC_INTSTATUS_CHINT1_Pos 1 /**< \brief (DMAC_INTSTATUS) Channel 1 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT1 (_U_(1) << DMAC_INTSTATUS_CHINT1_Pos) +#define DMAC_INTSTATUS_CHINT2_Pos 2 /**< \brief (DMAC_INTSTATUS) Channel 2 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT2 (_U_(1) << DMAC_INTSTATUS_CHINT2_Pos) +#define DMAC_INTSTATUS_CHINT3_Pos 3 /**< \brief (DMAC_INTSTATUS) Channel 3 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT3 (_U_(1) << DMAC_INTSTATUS_CHINT3_Pos) +#define DMAC_INTSTATUS_CHINT4_Pos 4 /**< \brief (DMAC_INTSTATUS) Channel 4 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT4 (_U_(1) << DMAC_INTSTATUS_CHINT4_Pos) +#define DMAC_INTSTATUS_CHINT5_Pos 5 /**< \brief (DMAC_INTSTATUS) Channel 5 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT5 (_U_(1) << DMAC_INTSTATUS_CHINT5_Pos) +#define DMAC_INTSTATUS_CHINT6_Pos 6 /**< \brief (DMAC_INTSTATUS) Channel 6 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT6 (_U_(1) << DMAC_INTSTATUS_CHINT6_Pos) +#define DMAC_INTSTATUS_CHINT7_Pos 7 /**< \brief (DMAC_INTSTATUS) Channel 7 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT7 (_U_(1) << DMAC_INTSTATUS_CHINT7_Pos) +#define DMAC_INTSTATUS_CHINT8_Pos 8 /**< \brief (DMAC_INTSTATUS) Channel 8 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT8 (_U_(1) << DMAC_INTSTATUS_CHINT8_Pos) +#define DMAC_INTSTATUS_CHINT9_Pos 9 /**< \brief (DMAC_INTSTATUS) Channel 9 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT9 (_U_(1) << DMAC_INTSTATUS_CHINT9_Pos) +#define DMAC_INTSTATUS_CHINT10_Pos 10 /**< \brief (DMAC_INTSTATUS) Channel 10 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT10 (_U_(1) << DMAC_INTSTATUS_CHINT10_Pos) +#define DMAC_INTSTATUS_CHINT11_Pos 11 /**< \brief (DMAC_INTSTATUS) Channel 11 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT11 (_U_(1) << DMAC_INTSTATUS_CHINT11_Pos) +#define DMAC_INTSTATUS_CHINT12_Pos 12 /**< \brief (DMAC_INTSTATUS) Channel 12 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT12 (_U_(1) << DMAC_INTSTATUS_CHINT12_Pos) +#define DMAC_INTSTATUS_CHINT13_Pos 13 /**< \brief (DMAC_INTSTATUS) Channel 13 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT13 (_U_(1) << DMAC_INTSTATUS_CHINT13_Pos) +#define DMAC_INTSTATUS_CHINT14_Pos 14 /**< \brief (DMAC_INTSTATUS) Channel 14 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT14 (_U_(1) << DMAC_INTSTATUS_CHINT14_Pos) +#define DMAC_INTSTATUS_CHINT15_Pos 15 /**< \brief (DMAC_INTSTATUS) Channel 15 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT15 (_U_(1) << DMAC_INTSTATUS_CHINT15_Pos) +#define DMAC_INTSTATUS_CHINT16_Pos 16 /**< \brief (DMAC_INTSTATUS) Channel 16 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT16 (_U_(1) << DMAC_INTSTATUS_CHINT16_Pos) +#define DMAC_INTSTATUS_CHINT17_Pos 17 /**< \brief (DMAC_INTSTATUS) Channel 17 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT17 (_U_(1) << DMAC_INTSTATUS_CHINT17_Pos) +#define DMAC_INTSTATUS_CHINT18_Pos 18 /**< \brief (DMAC_INTSTATUS) Channel 18 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT18 (_U_(1) << DMAC_INTSTATUS_CHINT18_Pos) +#define DMAC_INTSTATUS_CHINT19_Pos 19 /**< \brief (DMAC_INTSTATUS) Channel 19 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT19 (_U_(1) << DMAC_INTSTATUS_CHINT19_Pos) +#define DMAC_INTSTATUS_CHINT20_Pos 20 /**< \brief (DMAC_INTSTATUS) Channel 20 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT20 (_U_(1) << DMAC_INTSTATUS_CHINT20_Pos) +#define DMAC_INTSTATUS_CHINT21_Pos 21 /**< \brief (DMAC_INTSTATUS) Channel 21 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT21 (_U_(1) << DMAC_INTSTATUS_CHINT21_Pos) +#define DMAC_INTSTATUS_CHINT22_Pos 22 /**< \brief (DMAC_INTSTATUS) Channel 22 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT22 (_U_(1) << DMAC_INTSTATUS_CHINT22_Pos) +#define DMAC_INTSTATUS_CHINT23_Pos 23 /**< \brief (DMAC_INTSTATUS) Channel 23 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT23 (_U_(1) << DMAC_INTSTATUS_CHINT23_Pos) +#define DMAC_INTSTATUS_CHINT24_Pos 24 /**< \brief (DMAC_INTSTATUS) Channel 24 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT24 (_U_(1) << DMAC_INTSTATUS_CHINT24_Pos) +#define DMAC_INTSTATUS_CHINT25_Pos 25 /**< \brief (DMAC_INTSTATUS) Channel 25 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT25 (_U_(1) << DMAC_INTSTATUS_CHINT25_Pos) +#define DMAC_INTSTATUS_CHINT26_Pos 26 /**< \brief (DMAC_INTSTATUS) Channel 26 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT26 (_U_(1) << DMAC_INTSTATUS_CHINT26_Pos) +#define DMAC_INTSTATUS_CHINT27_Pos 27 /**< \brief (DMAC_INTSTATUS) Channel 27 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT27 (_U_(1) << DMAC_INTSTATUS_CHINT27_Pos) +#define DMAC_INTSTATUS_CHINT28_Pos 28 /**< \brief (DMAC_INTSTATUS) Channel 28 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT28 (_U_(1) << DMAC_INTSTATUS_CHINT28_Pos) +#define DMAC_INTSTATUS_CHINT29_Pos 29 /**< \brief (DMAC_INTSTATUS) Channel 29 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT29 (_U_(1) << DMAC_INTSTATUS_CHINT29_Pos) +#define DMAC_INTSTATUS_CHINT30_Pos 30 /**< \brief (DMAC_INTSTATUS) Channel 30 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT30 (_U_(1) << DMAC_INTSTATUS_CHINT30_Pos) +#define DMAC_INTSTATUS_CHINT31_Pos 31 /**< \brief (DMAC_INTSTATUS) Channel 31 Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT31 (_U_(1) << DMAC_INTSTATUS_CHINT31_Pos) +#define DMAC_INTSTATUS_CHINT_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel x Pending Interrupt */ +#define DMAC_INTSTATUS_CHINT_Msk (_U_(0xFFFFFFFF) << DMAC_INTSTATUS_CHINT_Pos) +#define DMAC_INTSTATUS_CHINT(value) (DMAC_INTSTATUS_CHINT_Msk & ((value) << DMAC_INTSTATUS_CHINT_Pos)) +#define DMAC_INTSTATUS_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_INTSTATUS) MASK Register */ + +/* -------- DMAC_BUSYCH : (DMAC Offset: 0x28) (R/ 32) Busy Channels -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t BUSYCH0:1; /*!< bit: 0 Busy Channel 0 */ + uint32_t BUSYCH1:1; /*!< bit: 1 Busy Channel 1 */ + uint32_t BUSYCH2:1; /*!< bit: 2 Busy Channel 2 */ + uint32_t BUSYCH3:1; /*!< bit: 3 Busy Channel 3 */ + uint32_t BUSYCH4:1; /*!< bit: 4 Busy Channel 4 */ + uint32_t BUSYCH5:1; /*!< bit: 5 Busy Channel 5 */ + uint32_t BUSYCH6:1; /*!< bit: 6 Busy Channel 6 */ + uint32_t BUSYCH7:1; /*!< bit: 7 Busy Channel 7 */ + uint32_t BUSYCH8:1; /*!< bit: 8 Busy Channel 8 */ + uint32_t BUSYCH9:1; /*!< bit: 9 Busy Channel 9 */ + uint32_t BUSYCH10:1; /*!< bit: 10 Busy Channel 10 */ + uint32_t BUSYCH11:1; /*!< bit: 11 Busy Channel 11 */ + uint32_t BUSYCH12:1; /*!< bit: 12 Busy Channel 12 */ + uint32_t BUSYCH13:1; /*!< bit: 13 Busy Channel 13 */ + uint32_t BUSYCH14:1; /*!< bit: 14 Busy Channel 14 */ + uint32_t BUSYCH15:1; /*!< bit: 15 Busy Channel 15 */ + uint32_t BUSYCH16:1; /*!< bit: 16 Busy Channel 16 */ + uint32_t BUSYCH17:1; /*!< bit: 17 Busy Channel 17 */ + uint32_t BUSYCH18:1; /*!< bit: 18 Busy Channel 18 */ + uint32_t BUSYCH19:1; /*!< bit: 19 Busy Channel 19 */ + uint32_t BUSYCH20:1; /*!< bit: 20 Busy Channel 20 */ + uint32_t BUSYCH21:1; /*!< bit: 21 Busy Channel 21 */ + uint32_t BUSYCH22:1; /*!< bit: 22 Busy Channel 22 */ + uint32_t BUSYCH23:1; /*!< bit: 23 Busy Channel 23 */ + uint32_t BUSYCH24:1; /*!< bit: 24 Busy Channel 24 */ + uint32_t BUSYCH25:1; /*!< bit: 25 Busy Channel 25 */ + uint32_t BUSYCH26:1; /*!< bit: 26 Busy Channel 26 */ + uint32_t BUSYCH27:1; /*!< bit: 27 Busy Channel 27 */ + uint32_t BUSYCH28:1; /*!< bit: 28 Busy Channel 28 */ + uint32_t BUSYCH29:1; /*!< bit: 29 Busy Channel 29 */ + uint32_t BUSYCH30:1; /*!< bit: 30 Busy Channel 30 */ + uint32_t BUSYCH31:1; /*!< bit: 31 Busy Channel 31 */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t BUSYCH:32; /*!< bit: 0..31 Busy Channel x */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_BUSYCH_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_BUSYCH_OFFSET 0x28 /**< \brief (DMAC_BUSYCH offset) Busy Channels */ +#define DMAC_BUSYCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BUSYCH reset_value) Busy Channels */ + +#define DMAC_BUSYCH_BUSYCH0_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel 0 */ +#define DMAC_BUSYCH_BUSYCH0 (_U_(1) << DMAC_BUSYCH_BUSYCH0_Pos) +#define DMAC_BUSYCH_BUSYCH1_Pos 1 /**< \brief (DMAC_BUSYCH) Busy Channel 1 */ +#define DMAC_BUSYCH_BUSYCH1 (_U_(1) << DMAC_BUSYCH_BUSYCH1_Pos) +#define DMAC_BUSYCH_BUSYCH2_Pos 2 /**< \brief (DMAC_BUSYCH) Busy Channel 2 */ +#define DMAC_BUSYCH_BUSYCH2 (_U_(1) << DMAC_BUSYCH_BUSYCH2_Pos) +#define DMAC_BUSYCH_BUSYCH3_Pos 3 /**< \brief (DMAC_BUSYCH) Busy Channel 3 */ +#define DMAC_BUSYCH_BUSYCH3 (_U_(1) << DMAC_BUSYCH_BUSYCH3_Pos) +#define DMAC_BUSYCH_BUSYCH4_Pos 4 /**< \brief (DMAC_BUSYCH) Busy Channel 4 */ +#define DMAC_BUSYCH_BUSYCH4 (_U_(1) << DMAC_BUSYCH_BUSYCH4_Pos) +#define DMAC_BUSYCH_BUSYCH5_Pos 5 /**< \brief (DMAC_BUSYCH) Busy Channel 5 */ +#define DMAC_BUSYCH_BUSYCH5 (_U_(1) << DMAC_BUSYCH_BUSYCH5_Pos) +#define DMAC_BUSYCH_BUSYCH6_Pos 6 /**< \brief (DMAC_BUSYCH) Busy Channel 6 */ +#define DMAC_BUSYCH_BUSYCH6 (_U_(1) << DMAC_BUSYCH_BUSYCH6_Pos) +#define DMAC_BUSYCH_BUSYCH7_Pos 7 /**< \brief (DMAC_BUSYCH) Busy Channel 7 */ +#define DMAC_BUSYCH_BUSYCH7 (_U_(1) << DMAC_BUSYCH_BUSYCH7_Pos) +#define DMAC_BUSYCH_BUSYCH8_Pos 8 /**< \brief (DMAC_BUSYCH) Busy Channel 8 */ +#define DMAC_BUSYCH_BUSYCH8 (_U_(1) << DMAC_BUSYCH_BUSYCH8_Pos) +#define DMAC_BUSYCH_BUSYCH9_Pos 9 /**< \brief (DMAC_BUSYCH) Busy Channel 9 */ +#define DMAC_BUSYCH_BUSYCH9 (_U_(1) << DMAC_BUSYCH_BUSYCH9_Pos) +#define DMAC_BUSYCH_BUSYCH10_Pos 10 /**< \brief (DMAC_BUSYCH) Busy Channel 10 */ +#define DMAC_BUSYCH_BUSYCH10 (_U_(1) << DMAC_BUSYCH_BUSYCH10_Pos) +#define DMAC_BUSYCH_BUSYCH11_Pos 11 /**< \brief (DMAC_BUSYCH) Busy Channel 11 */ +#define DMAC_BUSYCH_BUSYCH11 (_U_(1) << DMAC_BUSYCH_BUSYCH11_Pos) +#define DMAC_BUSYCH_BUSYCH12_Pos 12 /**< \brief (DMAC_BUSYCH) Busy Channel 12 */ +#define DMAC_BUSYCH_BUSYCH12 (_U_(1) << DMAC_BUSYCH_BUSYCH12_Pos) +#define DMAC_BUSYCH_BUSYCH13_Pos 13 /**< \brief (DMAC_BUSYCH) Busy Channel 13 */ +#define DMAC_BUSYCH_BUSYCH13 (_U_(1) << DMAC_BUSYCH_BUSYCH13_Pos) +#define DMAC_BUSYCH_BUSYCH14_Pos 14 /**< \brief (DMAC_BUSYCH) Busy Channel 14 */ +#define DMAC_BUSYCH_BUSYCH14 (_U_(1) << DMAC_BUSYCH_BUSYCH14_Pos) +#define DMAC_BUSYCH_BUSYCH15_Pos 15 /**< \brief (DMAC_BUSYCH) Busy Channel 15 */ +#define DMAC_BUSYCH_BUSYCH15 (_U_(1) << DMAC_BUSYCH_BUSYCH15_Pos) +#define DMAC_BUSYCH_BUSYCH16_Pos 16 /**< \brief (DMAC_BUSYCH) Busy Channel 16 */ +#define DMAC_BUSYCH_BUSYCH16 (_U_(1) << DMAC_BUSYCH_BUSYCH16_Pos) +#define DMAC_BUSYCH_BUSYCH17_Pos 17 /**< \brief (DMAC_BUSYCH) Busy Channel 17 */ +#define DMAC_BUSYCH_BUSYCH17 (_U_(1) << DMAC_BUSYCH_BUSYCH17_Pos) +#define DMAC_BUSYCH_BUSYCH18_Pos 18 /**< \brief (DMAC_BUSYCH) Busy Channel 18 */ +#define DMAC_BUSYCH_BUSYCH18 (_U_(1) << DMAC_BUSYCH_BUSYCH18_Pos) +#define DMAC_BUSYCH_BUSYCH19_Pos 19 /**< \brief (DMAC_BUSYCH) Busy Channel 19 */ +#define DMAC_BUSYCH_BUSYCH19 (_U_(1) << DMAC_BUSYCH_BUSYCH19_Pos) +#define DMAC_BUSYCH_BUSYCH20_Pos 20 /**< \brief (DMAC_BUSYCH) Busy Channel 20 */ +#define DMAC_BUSYCH_BUSYCH20 (_U_(1) << DMAC_BUSYCH_BUSYCH20_Pos) +#define DMAC_BUSYCH_BUSYCH21_Pos 21 /**< \brief (DMAC_BUSYCH) Busy Channel 21 */ +#define DMAC_BUSYCH_BUSYCH21 (_U_(1) << DMAC_BUSYCH_BUSYCH21_Pos) +#define DMAC_BUSYCH_BUSYCH22_Pos 22 /**< \brief (DMAC_BUSYCH) Busy Channel 22 */ +#define DMAC_BUSYCH_BUSYCH22 (_U_(1) << DMAC_BUSYCH_BUSYCH22_Pos) +#define DMAC_BUSYCH_BUSYCH23_Pos 23 /**< \brief (DMAC_BUSYCH) Busy Channel 23 */ +#define DMAC_BUSYCH_BUSYCH23 (_U_(1) << DMAC_BUSYCH_BUSYCH23_Pos) +#define DMAC_BUSYCH_BUSYCH24_Pos 24 /**< \brief (DMAC_BUSYCH) Busy Channel 24 */ +#define DMAC_BUSYCH_BUSYCH24 (_U_(1) << DMAC_BUSYCH_BUSYCH24_Pos) +#define DMAC_BUSYCH_BUSYCH25_Pos 25 /**< \brief (DMAC_BUSYCH) Busy Channel 25 */ +#define DMAC_BUSYCH_BUSYCH25 (_U_(1) << DMAC_BUSYCH_BUSYCH25_Pos) +#define DMAC_BUSYCH_BUSYCH26_Pos 26 /**< \brief (DMAC_BUSYCH) Busy Channel 26 */ +#define DMAC_BUSYCH_BUSYCH26 (_U_(1) << DMAC_BUSYCH_BUSYCH26_Pos) +#define DMAC_BUSYCH_BUSYCH27_Pos 27 /**< \brief (DMAC_BUSYCH) Busy Channel 27 */ +#define DMAC_BUSYCH_BUSYCH27 (_U_(1) << DMAC_BUSYCH_BUSYCH27_Pos) +#define DMAC_BUSYCH_BUSYCH28_Pos 28 /**< \brief (DMAC_BUSYCH) Busy Channel 28 */ +#define DMAC_BUSYCH_BUSYCH28 (_U_(1) << DMAC_BUSYCH_BUSYCH28_Pos) +#define DMAC_BUSYCH_BUSYCH29_Pos 29 /**< \brief (DMAC_BUSYCH) Busy Channel 29 */ +#define DMAC_BUSYCH_BUSYCH29 (_U_(1) << DMAC_BUSYCH_BUSYCH29_Pos) +#define DMAC_BUSYCH_BUSYCH30_Pos 30 /**< \brief (DMAC_BUSYCH) Busy Channel 30 */ +#define DMAC_BUSYCH_BUSYCH30 (_U_(1) << DMAC_BUSYCH_BUSYCH30_Pos) +#define DMAC_BUSYCH_BUSYCH31_Pos 31 /**< \brief (DMAC_BUSYCH) Busy Channel 31 */ +#define DMAC_BUSYCH_BUSYCH31 (_U_(1) << DMAC_BUSYCH_BUSYCH31_Pos) +#define DMAC_BUSYCH_BUSYCH_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel x */ +#define DMAC_BUSYCH_BUSYCH_Msk (_U_(0xFFFFFFFF) << DMAC_BUSYCH_BUSYCH_Pos) +#define DMAC_BUSYCH_BUSYCH(value) (DMAC_BUSYCH_BUSYCH_Msk & ((value) << DMAC_BUSYCH_BUSYCH_Pos)) +#define DMAC_BUSYCH_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_BUSYCH) MASK Register */ + +/* -------- DMAC_PENDCH : (DMAC Offset: 0x2C) (R/ 32) Pending Channels -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t PENDCH0:1; /*!< bit: 0 Pending Channel 0 */ + uint32_t PENDCH1:1; /*!< bit: 1 Pending Channel 1 */ + uint32_t PENDCH2:1; /*!< bit: 2 Pending Channel 2 */ + uint32_t PENDCH3:1; /*!< bit: 3 Pending Channel 3 */ + uint32_t PENDCH4:1; /*!< bit: 4 Pending Channel 4 */ + uint32_t PENDCH5:1; /*!< bit: 5 Pending Channel 5 */ + uint32_t PENDCH6:1; /*!< bit: 6 Pending Channel 6 */ + uint32_t PENDCH7:1; /*!< bit: 7 Pending Channel 7 */ + uint32_t PENDCH8:1; /*!< bit: 8 Pending Channel 8 */ + uint32_t PENDCH9:1; /*!< bit: 9 Pending Channel 9 */ + uint32_t PENDCH10:1; /*!< bit: 10 Pending Channel 10 */ + uint32_t PENDCH11:1; /*!< bit: 11 Pending Channel 11 */ + uint32_t PENDCH12:1; /*!< bit: 12 Pending Channel 12 */ + uint32_t PENDCH13:1; /*!< bit: 13 Pending Channel 13 */ + uint32_t PENDCH14:1; /*!< bit: 14 Pending Channel 14 */ + uint32_t PENDCH15:1; /*!< bit: 15 Pending Channel 15 */ + uint32_t PENDCH16:1; /*!< bit: 16 Pending Channel 16 */ + uint32_t PENDCH17:1; /*!< bit: 17 Pending Channel 17 */ + uint32_t PENDCH18:1; /*!< bit: 18 Pending Channel 18 */ + uint32_t PENDCH19:1; /*!< bit: 19 Pending Channel 19 */ + uint32_t PENDCH20:1; /*!< bit: 20 Pending Channel 20 */ + uint32_t PENDCH21:1; /*!< bit: 21 Pending Channel 21 */ + uint32_t PENDCH22:1; /*!< bit: 22 Pending Channel 22 */ + uint32_t PENDCH23:1; /*!< bit: 23 Pending Channel 23 */ + uint32_t PENDCH24:1; /*!< bit: 24 Pending Channel 24 */ + uint32_t PENDCH25:1; /*!< bit: 25 Pending Channel 25 */ + uint32_t PENDCH26:1; /*!< bit: 26 Pending Channel 26 */ + uint32_t PENDCH27:1; /*!< bit: 27 Pending Channel 27 */ + uint32_t PENDCH28:1; /*!< bit: 28 Pending Channel 28 */ + uint32_t PENDCH29:1; /*!< bit: 29 Pending Channel 29 */ + uint32_t PENDCH30:1; /*!< bit: 30 Pending Channel 30 */ + uint32_t PENDCH31:1; /*!< bit: 31 Pending Channel 31 */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t PENDCH:32; /*!< bit: 0..31 Pending Channel x */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_PENDCH_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_PENDCH_OFFSET 0x2C /**< \brief (DMAC_PENDCH offset) Pending Channels */ +#define DMAC_PENDCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_PENDCH reset_value) Pending Channels */ + +#define DMAC_PENDCH_PENDCH0_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel 0 */ +#define DMAC_PENDCH_PENDCH0 (_U_(1) << DMAC_PENDCH_PENDCH0_Pos) +#define DMAC_PENDCH_PENDCH1_Pos 1 /**< \brief (DMAC_PENDCH) Pending Channel 1 */ +#define DMAC_PENDCH_PENDCH1 (_U_(1) << DMAC_PENDCH_PENDCH1_Pos) +#define DMAC_PENDCH_PENDCH2_Pos 2 /**< \brief (DMAC_PENDCH) Pending Channel 2 */ +#define DMAC_PENDCH_PENDCH2 (_U_(1) << DMAC_PENDCH_PENDCH2_Pos) +#define DMAC_PENDCH_PENDCH3_Pos 3 /**< \brief (DMAC_PENDCH) Pending Channel 3 */ +#define DMAC_PENDCH_PENDCH3 (_U_(1) << DMAC_PENDCH_PENDCH3_Pos) +#define DMAC_PENDCH_PENDCH4_Pos 4 /**< \brief (DMAC_PENDCH) Pending Channel 4 */ +#define DMAC_PENDCH_PENDCH4 (_U_(1) << DMAC_PENDCH_PENDCH4_Pos) +#define DMAC_PENDCH_PENDCH5_Pos 5 /**< \brief (DMAC_PENDCH) Pending Channel 5 */ +#define DMAC_PENDCH_PENDCH5 (_U_(1) << DMAC_PENDCH_PENDCH5_Pos) +#define DMAC_PENDCH_PENDCH6_Pos 6 /**< \brief (DMAC_PENDCH) Pending Channel 6 */ +#define DMAC_PENDCH_PENDCH6 (_U_(1) << DMAC_PENDCH_PENDCH6_Pos) +#define DMAC_PENDCH_PENDCH7_Pos 7 /**< \brief (DMAC_PENDCH) Pending Channel 7 */ +#define DMAC_PENDCH_PENDCH7 (_U_(1) << DMAC_PENDCH_PENDCH7_Pos) +#define DMAC_PENDCH_PENDCH8_Pos 8 /**< \brief (DMAC_PENDCH) Pending Channel 8 */ +#define DMAC_PENDCH_PENDCH8 (_U_(1) << DMAC_PENDCH_PENDCH8_Pos) +#define DMAC_PENDCH_PENDCH9_Pos 9 /**< \brief (DMAC_PENDCH) Pending Channel 9 */ +#define DMAC_PENDCH_PENDCH9 (_U_(1) << DMAC_PENDCH_PENDCH9_Pos) +#define DMAC_PENDCH_PENDCH10_Pos 10 /**< \brief (DMAC_PENDCH) Pending Channel 10 */ +#define DMAC_PENDCH_PENDCH10 (_U_(1) << DMAC_PENDCH_PENDCH10_Pos) +#define DMAC_PENDCH_PENDCH11_Pos 11 /**< \brief (DMAC_PENDCH) Pending Channel 11 */ +#define DMAC_PENDCH_PENDCH11 (_U_(1) << DMAC_PENDCH_PENDCH11_Pos) +#define DMAC_PENDCH_PENDCH12_Pos 12 /**< \brief (DMAC_PENDCH) Pending Channel 12 */ +#define DMAC_PENDCH_PENDCH12 (_U_(1) << DMAC_PENDCH_PENDCH12_Pos) +#define DMAC_PENDCH_PENDCH13_Pos 13 /**< \brief (DMAC_PENDCH) Pending Channel 13 */ +#define DMAC_PENDCH_PENDCH13 (_U_(1) << DMAC_PENDCH_PENDCH13_Pos) +#define DMAC_PENDCH_PENDCH14_Pos 14 /**< \brief (DMAC_PENDCH) Pending Channel 14 */ +#define DMAC_PENDCH_PENDCH14 (_U_(1) << DMAC_PENDCH_PENDCH14_Pos) +#define DMAC_PENDCH_PENDCH15_Pos 15 /**< \brief (DMAC_PENDCH) Pending Channel 15 */ +#define DMAC_PENDCH_PENDCH15 (_U_(1) << DMAC_PENDCH_PENDCH15_Pos) +#define DMAC_PENDCH_PENDCH16_Pos 16 /**< \brief (DMAC_PENDCH) Pending Channel 16 */ +#define DMAC_PENDCH_PENDCH16 (_U_(1) << DMAC_PENDCH_PENDCH16_Pos) +#define DMAC_PENDCH_PENDCH17_Pos 17 /**< \brief (DMAC_PENDCH) Pending Channel 17 */ +#define DMAC_PENDCH_PENDCH17 (_U_(1) << DMAC_PENDCH_PENDCH17_Pos) +#define DMAC_PENDCH_PENDCH18_Pos 18 /**< \brief (DMAC_PENDCH) Pending Channel 18 */ +#define DMAC_PENDCH_PENDCH18 (_U_(1) << DMAC_PENDCH_PENDCH18_Pos) +#define DMAC_PENDCH_PENDCH19_Pos 19 /**< \brief (DMAC_PENDCH) Pending Channel 19 */ +#define DMAC_PENDCH_PENDCH19 (_U_(1) << DMAC_PENDCH_PENDCH19_Pos) +#define DMAC_PENDCH_PENDCH20_Pos 20 /**< \brief (DMAC_PENDCH) Pending Channel 20 */ +#define DMAC_PENDCH_PENDCH20 (_U_(1) << DMAC_PENDCH_PENDCH20_Pos) +#define DMAC_PENDCH_PENDCH21_Pos 21 /**< \brief (DMAC_PENDCH) Pending Channel 21 */ +#define DMAC_PENDCH_PENDCH21 (_U_(1) << DMAC_PENDCH_PENDCH21_Pos) +#define DMAC_PENDCH_PENDCH22_Pos 22 /**< \brief (DMAC_PENDCH) Pending Channel 22 */ +#define DMAC_PENDCH_PENDCH22 (_U_(1) << DMAC_PENDCH_PENDCH22_Pos) +#define DMAC_PENDCH_PENDCH23_Pos 23 /**< \brief (DMAC_PENDCH) Pending Channel 23 */ +#define DMAC_PENDCH_PENDCH23 (_U_(1) << DMAC_PENDCH_PENDCH23_Pos) +#define DMAC_PENDCH_PENDCH24_Pos 24 /**< \brief (DMAC_PENDCH) Pending Channel 24 */ +#define DMAC_PENDCH_PENDCH24 (_U_(1) << DMAC_PENDCH_PENDCH24_Pos) +#define DMAC_PENDCH_PENDCH25_Pos 25 /**< \brief (DMAC_PENDCH) Pending Channel 25 */ +#define DMAC_PENDCH_PENDCH25 (_U_(1) << DMAC_PENDCH_PENDCH25_Pos) +#define DMAC_PENDCH_PENDCH26_Pos 26 /**< \brief (DMAC_PENDCH) Pending Channel 26 */ +#define DMAC_PENDCH_PENDCH26 (_U_(1) << DMAC_PENDCH_PENDCH26_Pos) +#define DMAC_PENDCH_PENDCH27_Pos 27 /**< \brief (DMAC_PENDCH) Pending Channel 27 */ +#define DMAC_PENDCH_PENDCH27 (_U_(1) << DMAC_PENDCH_PENDCH27_Pos) +#define DMAC_PENDCH_PENDCH28_Pos 28 /**< \brief (DMAC_PENDCH) Pending Channel 28 */ +#define DMAC_PENDCH_PENDCH28 (_U_(1) << DMAC_PENDCH_PENDCH28_Pos) +#define DMAC_PENDCH_PENDCH29_Pos 29 /**< \brief (DMAC_PENDCH) Pending Channel 29 */ +#define DMAC_PENDCH_PENDCH29 (_U_(1) << DMAC_PENDCH_PENDCH29_Pos) +#define DMAC_PENDCH_PENDCH30_Pos 30 /**< \brief (DMAC_PENDCH) Pending Channel 30 */ +#define DMAC_PENDCH_PENDCH30 (_U_(1) << DMAC_PENDCH_PENDCH30_Pos) +#define DMAC_PENDCH_PENDCH31_Pos 31 /**< \brief (DMAC_PENDCH) Pending Channel 31 */ +#define DMAC_PENDCH_PENDCH31 (_U_(1) << DMAC_PENDCH_PENDCH31_Pos) +#define DMAC_PENDCH_PENDCH_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel x */ +#define DMAC_PENDCH_PENDCH_Msk (_U_(0xFFFFFFFF) << DMAC_PENDCH_PENDCH_Pos) +#define DMAC_PENDCH_PENDCH(value) (DMAC_PENDCH_PENDCH_Msk & ((value) << DMAC_PENDCH_PENDCH_Pos)) +#define DMAC_PENDCH_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_PENDCH) MASK Register */ + +/* -------- DMAC_ACTIVE : (DMAC Offset: 0x30) (R/ 32) Active Channel and Levels -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t LVLEX0:1; /*!< bit: 0 Level 0 Channel Trigger Request Executing */ + uint32_t LVLEX1:1; /*!< bit: 1 Level 1 Channel Trigger Request Executing */ + uint32_t LVLEX2:1; /*!< bit: 2 Level 2 Channel Trigger Request Executing */ + uint32_t LVLEX3:1; /*!< bit: 3 Level 3 Channel Trigger Request Executing */ + uint32_t :4; /*!< bit: 4.. 7 Reserved */ + uint32_t ID:5; /*!< bit: 8..12 Active Channel ID */ + uint32_t :2; /*!< bit: 13..14 Reserved */ + uint32_t ABUSY:1; /*!< bit: 15 Active Channel Busy */ + uint32_t BTCNT:16; /*!< bit: 16..31 Active Channel Block Transfer Count */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t LVLEX:4; /*!< bit: 0.. 3 Level x Channel Trigger Request Executing */ + uint32_t :28; /*!< bit: 4..31 Reserved */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_ACTIVE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_ACTIVE_OFFSET 0x30 /**< \brief (DMAC_ACTIVE offset) Active Channel and Levels */ +#define DMAC_ACTIVE_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_ACTIVE reset_value) Active Channel and Levels */ + +#define DMAC_ACTIVE_LVLEX0_Pos 0 /**< \brief (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing */ +#define DMAC_ACTIVE_LVLEX0 (_U_(1) << DMAC_ACTIVE_LVLEX0_Pos) +#define DMAC_ACTIVE_LVLEX1_Pos 1 /**< \brief (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing */ +#define DMAC_ACTIVE_LVLEX1 (_U_(1) << DMAC_ACTIVE_LVLEX1_Pos) +#define DMAC_ACTIVE_LVLEX2_Pos 2 /**< \brief (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing */ +#define DMAC_ACTIVE_LVLEX2 (_U_(1) << DMAC_ACTIVE_LVLEX2_Pos) +#define DMAC_ACTIVE_LVLEX3_Pos 3 /**< \brief (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing */ +#define DMAC_ACTIVE_LVLEX3 (_U_(1) << DMAC_ACTIVE_LVLEX3_Pos) +#define DMAC_ACTIVE_LVLEX_Pos 0 /**< \brief (DMAC_ACTIVE) Level x Channel Trigger Request Executing */ +#define DMAC_ACTIVE_LVLEX_Msk (_U_(0xF) << DMAC_ACTIVE_LVLEX_Pos) +#define DMAC_ACTIVE_LVLEX(value) (DMAC_ACTIVE_LVLEX_Msk & ((value) << DMAC_ACTIVE_LVLEX_Pos)) +#define DMAC_ACTIVE_ID_Pos 8 /**< \brief (DMAC_ACTIVE) Active Channel ID */ +#define DMAC_ACTIVE_ID_Msk (_U_(0x1F) << DMAC_ACTIVE_ID_Pos) +#define DMAC_ACTIVE_ID(value) (DMAC_ACTIVE_ID_Msk & ((value) << DMAC_ACTIVE_ID_Pos)) +#define DMAC_ACTIVE_ABUSY_Pos 15 /**< \brief (DMAC_ACTIVE) Active Channel Busy */ +#define DMAC_ACTIVE_ABUSY (_U_(0x1) << DMAC_ACTIVE_ABUSY_Pos) +#define DMAC_ACTIVE_BTCNT_Pos 16 /**< \brief (DMAC_ACTIVE) Active Channel Block Transfer Count */ +#define DMAC_ACTIVE_BTCNT_Msk (_U_(0xFFFF) << DMAC_ACTIVE_BTCNT_Pos) +#define DMAC_ACTIVE_BTCNT(value) (DMAC_ACTIVE_BTCNT_Msk & ((value) << DMAC_ACTIVE_BTCNT_Pos)) +#define DMAC_ACTIVE_MASK _U_(0xFFFF9F0F) /**< \brief (DMAC_ACTIVE) MASK Register */ + +/* -------- DMAC_BASEADDR : (DMAC Offset: 0x34) (R/W 32) Descriptor Memory Section Base Address -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t BASEADDR:32; /*!< bit: 0..31 Descriptor Memory Base Address */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_BASEADDR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_BASEADDR_OFFSET 0x34 /**< \brief (DMAC_BASEADDR offset) Descriptor Memory Section Base Address */ +#define DMAC_BASEADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BASEADDR reset_value) Descriptor Memory Section Base Address */ + +#define DMAC_BASEADDR_BASEADDR_Pos 0 /**< \brief (DMAC_BASEADDR) Descriptor Memory Base Address */ +#define DMAC_BASEADDR_BASEADDR_Msk (_U_(0xFFFFFFFF) << DMAC_BASEADDR_BASEADDR_Pos) +#define DMAC_BASEADDR_BASEADDR(value) (DMAC_BASEADDR_BASEADDR_Msk & ((value) << DMAC_BASEADDR_BASEADDR_Pos)) +#define DMAC_BASEADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_BASEADDR) MASK Register */ + +/* -------- DMAC_WRBADDR : (DMAC Offset: 0x38) (R/W 32) Write-Back Memory Section Base Address -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t WRBADDR:32; /*!< bit: 0..31 Write-Back Memory Base Address */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_WRBADDR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_WRBADDR_OFFSET 0x38 /**< \brief (DMAC_WRBADDR offset) Write-Back Memory Section Base Address */ +#define DMAC_WRBADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_WRBADDR reset_value) Write-Back Memory Section Base Address */ + +#define DMAC_WRBADDR_WRBADDR_Pos 0 /**< \brief (DMAC_WRBADDR) Write-Back Memory Base Address */ +#define DMAC_WRBADDR_WRBADDR_Msk (_U_(0xFFFFFFFF) << DMAC_WRBADDR_WRBADDR_Pos) +#define DMAC_WRBADDR_WRBADDR(value) (DMAC_WRBADDR_WRBADDR_Msk & ((value) << DMAC_WRBADDR_WRBADDR_Pos)) +#define DMAC_WRBADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_WRBADDR) MASK Register */ + +/* -------- DMAC_CHCTRLA : (DMAC Offset: 0x40) (R/W 32) CHANNEL Channel n Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Channel Software Reset */ + uint32_t ENABLE:1; /*!< bit: 1 Channel Enable */ + uint32_t :4; /*!< bit: 2.. 5 Reserved */ + uint32_t RUNSTDBY:1; /*!< bit: 6 Channel Run in Standby */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t TRIGSRC:7; /*!< bit: 8..14 Trigger Source */ + uint32_t :5; /*!< bit: 15..19 Reserved */ + uint32_t TRIGACT:2; /*!< bit: 20..21 Trigger Action */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t BURSTLEN:4; /*!< bit: 24..27 Burst Length */ + uint32_t THRESHOLD:2; /*!< bit: 28..29 FIFO Threshold */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} DMAC_CHCTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHCTRLA_OFFSET 0x40 /**< \brief (DMAC_CHCTRLA offset) Channel n Control A */ +#define DMAC_CHCTRLA_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CHCTRLA reset_value) Channel n Control A */ + +#define DMAC_CHCTRLA_SWRST_Pos 0 /**< \brief (DMAC_CHCTRLA) Channel Software Reset */ +#define DMAC_CHCTRLA_SWRST (_U_(0x1) << DMAC_CHCTRLA_SWRST_Pos) +#define DMAC_CHCTRLA_ENABLE_Pos 1 /**< \brief (DMAC_CHCTRLA) Channel Enable */ +#define DMAC_CHCTRLA_ENABLE (_U_(0x1) << DMAC_CHCTRLA_ENABLE_Pos) +#define DMAC_CHCTRLA_RUNSTDBY_Pos 6 /**< \brief (DMAC_CHCTRLA) Channel Run in Standby */ +#define DMAC_CHCTRLA_RUNSTDBY (_U_(0x1) << DMAC_CHCTRLA_RUNSTDBY_Pos) +#define DMAC_CHCTRLA_TRIGSRC_Pos 8 /**< \brief (DMAC_CHCTRLA) Trigger Source */ +#define DMAC_CHCTRLA_TRIGSRC_Msk (_U_(0x7F) << DMAC_CHCTRLA_TRIGSRC_Pos) +#define DMAC_CHCTRLA_TRIGSRC(value) (DMAC_CHCTRLA_TRIGSRC_Msk & ((value) << DMAC_CHCTRLA_TRIGSRC_Pos)) +#define DMAC_CHCTRLA_TRIGSRC_DISABLE_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Only software/event triggers */ +#define DMAC_CHCTRLA_TRIGSRC_DISABLE (DMAC_CHCTRLA_TRIGSRC_DISABLE_Val << DMAC_CHCTRLA_TRIGSRC_Pos) +#define DMAC_CHCTRLA_TRIGACT_Pos 20 /**< \brief (DMAC_CHCTRLA) Trigger Action */ +#define DMAC_CHCTRLA_TRIGACT_Msk (_U_(0x3) << DMAC_CHCTRLA_TRIGACT_Pos) +#define DMAC_CHCTRLA_TRIGACT(value) (DMAC_CHCTRLA_TRIGACT_Msk & ((value) << DMAC_CHCTRLA_TRIGACT_Pos)) +#define DMAC_CHCTRLA_TRIGACT_BLOCK_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) One trigger required for each block transfer */ +#define DMAC_CHCTRLA_TRIGACT_BURST_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) One trigger required for each burst transfer */ +#define DMAC_CHCTRLA_TRIGACT_TRANSACTION_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) One trigger required for each transaction */ +#define DMAC_CHCTRLA_TRIGACT_BLOCK (DMAC_CHCTRLA_TRIGACT_BLOCK_Val << DMAC_CHCTRLA_TRIGACT_Pos) +#define DMAC_CHCTRLA_TRIGACT_BURST (DMAC_CHCTRLA_TRIGACT_BURST_Val << DMAC_CHCTRLA_TRIGACT_Pos) +#define DMAC_CHCTRLA_TRIGACT_TRANSACTION (DMAC_CHCTRLA_TRIGACT_TRANSACTION_Val << DMAC_CHCTRLA_TRIGACT_Pos) +#define DMAC_CHCTRLA_BURSTLEN_Pos 24 /**< \brief (DMAC_CHCTRLA) Burst Length */ +#define DMAC_CHCTRLA_BURSTLEN_Msk (_U_(0xF) << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN(value) (DMAC_CHCTRLA_BURSTLEN_Msk & ((value) << DMAC_CHCTRLA_BURSTLEN_Pos)) +#define DMAC_CHCTRLA_BURSTLEN_SINGLE_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Single-beat burst length */ +#define DMAC_CHCTRLA_BURSTLEN_2BEAT_Val _U_(0x1) /**< \brief (DMAC_CHCTRLA) 2-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_3BEAT_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) 3-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_4BEAT_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) 4-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_5BEAT_Val _U_(0x4) /**< \brief (DMAC_CHCTRLA) 5-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_6BEAT_Val _U_(0x5) /**< \brief (DMAC_CHCTRLA) 6-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_7BEAT_Val _U_(0x6) /**< \brief (DMAC_CHCTRLA) 7-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_8BEAT_Val _U_(0x7) /**< \brief (DMAC_CHCTRLA) 8-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_9BEAT_Val _U_(0x8) /**< \brief (DMAC_CHCTRLA) 9-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_10BEAT_Val _U_(0x9) /**< \brief (DMAC_CHCTRLA) 10-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_11BEAT_Val _U_(0xA) /**< \brief (DMAC_CHCTRLA) 11-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_12BEAT_Val _U_(0xB) /**< \brief (DMAC_CHCTRLA) 12-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_13BEAT_Val _U_(0xC) /**< \brief (DMAC_CHCTRLA) 13-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_14BEAT_Val _U_(0xD) /**< \brief (DMAC_CHCTRLA) 14-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_15BEAT_Val _U_(0xE) /**< \brief (DMAC_CHCTRLA) 15-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_16BEAT_Val _U_(0xF) /**< \brief (DMAC_CHCTRLA) 16-beats burst length */ +#define DMAC_CHCTRLA_BURSTLEN_SINGLE (DMAC_CHCTRLA_BURSTLEN_SINGLE_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_2BEAT (DMAC_CHCTRLA_BURSTLEN_2BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_3BEAT (DMAC_CHCTRLA_BURSTLEN_3BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_4BEAT (DMAC_CHCTRLA_BURSTLEN_4BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_5BEAT (DMAC_CHCTRLA_BURSTLEN_5BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_6BEAT (DMAC_CHCTRLA_BURSTLEN_6BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_7BEAT (DMAC_CHCTRLA_BURSTLEN_7BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_8BEAT (DMAC_CHCTRLA_BURSTLEN_8BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_9BEAT (DMAC_CHCTRLA_BURSTLEN_9BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_10BEAT (DMAC_CHCTRLA_BURSTLEN_10BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_11BEAT (DMAC_CHCTRLA_BURSTLEN_11BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_12BEAT (DMAC_CHCTRLA_BURSTLEN_12BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_13BEAT (DMAC_CHCTRLA_BURSTLEN_13BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_14BEAT (DMAC_CHCTRLA_BURSTLEN_14BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_15BEAT (DMAC_CHCTRLA_BURSTLEN_15BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_BURSTLEN_16BEAT (DMAC_CHCTRLA_BURSTLEN_16BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) +#define DMAC_CHCTRLA_THRESHOLD_Pos 28 /**< \brief (DMAC_CHCTRLA) FIFO Threshold */ +#define DMAC_CHCTRLA_THRESHOLD_Msk (_U_(0x3) << DMAC_CHCTRLA_THRESHOLD_Pos) +#define DMAC_CHCTRLA_THRESHOLD(value) (DMAC_CHCTRLA_THRESHOLD_Msk & ((value) << DMAC_CHCTRLA_THRESHOLD_Pos)) +#define DMAC_CHCTRLA_THRESHOLD_1BEAT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Destination write starts after each beat source address read */ +#define DMAC_CHCTRLA_THRESHOLD_2BEATS_Val _U_(0x1) /**< \brief (DMAC_CHCTRLA) Destination write starts after 2-beats source address read */ +#define DMAC_CHCTRLA_THRESHOLD_4BEATS_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) Destination write starts after 4-beats source address read */ +#define DMAC_CHCTRLA_THRESHOLD_8BEATS_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) Destination write starts after 8-beats source address read */ +#define DMAC_CHCTRLA_THRESHOLD_1BEAT (DMAC_CHCTRLA_THRESHOLD_1BEAT_Val << DMAC_CHCTRLA_THRESHOLD_Pos) +#define DMAC_CHCTRLA_THRESHOLD_2BEATS (DMAC_CHCTRLA_THRESHOLD_2BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) +#define DMAC_CHCTRLA_THRESHOLD_4BEATS (DMAC_CHCTRLA_THRESHOLD_4BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) +#define DMAC_CHCTRLA_THRESHOLD_8BEATS (DMAC_CHCTRLA_THRESHOLD_8BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) +#define DMAC_CHCTRLA_MASK _U_(0x3F307F43) /**< \brief (DMAC_CHCTRLA) MASK Register */ + +/* -------- DMAC_CHCTRLB : (DMAC Offset: 0x44) (R/W 8) CHANNEL Channel n Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t CMD:2; /*!< bit: 0.. 1 Software Command */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHCTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHCTRLB_OFFSET 0x44 /**< \brief (DMAC_CHCTRLB offset) Channel n Control B */ +#define DMAC_CHCTRLB_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHCTRLB reset_value) Channel n Control B */ + +#define DMAC_CHCTRLB_CMD_Pos 0 /**< \brief (DMAC_CHCTRLB) Software Command */ +#define DMAC_CHCTRLB_CMD_Msk (_U_(0x3) << DMAC_CHCTRLB_CMD_Pos) +#define DMAC_CHCTRLB_CMD(value) (DMAC_CHCTRLB_CMD_Msk & ((value) << DMAC_CHCTRLB_CMD_Pos)) +#define DMAC_CHCTRLB_CMD_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) No action */ +#define DMAC_CHCTRLB_CMD_SUSPEND_Val _U_(0x1) /**< \brief (DMAC_CHCTRLB) Channel suspend operation */ +#define DMAC_CHCTRLB_CMD_RESUME_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) Channel resume operation */ +#define DMAC_CHCTRLB_CMD_NOACT (DMAC_CHCTRLB_CMD_NOACT_Val << DMAC_CHCTRLB_CMD_Pos) +#define DMAC_CHCTRLB_CMD_SUSPEND (DMAC_CHCTRLB_CMD_SUSPEND_Val << DMAC_CHCTRLB_CMD_Pos) +#define DMAC_CHCTRLB_CMD_RESUME (DMAC_CHCTRLB_CMD_RESUME_Val << DMAC_CHCTRLB_CMD_Pos) +#define DMAC_CHCTRLB_MASK _U_(0x03) /**< \brief (DMAC_CHCTRLB) MASK Register */ + +/* -------- DMAC_CHPRILVL : (DMAC Offset: 0x45) (R/W 8) CHANNEL Channel n Priority Level -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t PRILVL:2; /*!< bit: 0.. 1 Channel Priority Level */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHPRILVL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHPRILVL_OFFSET 0x45 /**< \brief (DMAC_CHPRILVL offset) Channel n Priority Level */ +#define DMAC_CHPRILVL_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHPRILVL reset_value) Channel n Priority Level */ + +#define DMAC_CHPRILVL_PRILVL_Pos 0 /**< \brief (DMAC_CHPRILVL) Channel Priority Level */ +#define DMAC_CHPRILVL_PRILVL_Msk (_U_(0x3) << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL(value) (DMAC_CHPRILVL_PRILVL_Msk & ((value) << DMAC_CHPRILVL_PRILVL_Pos)) +#define DMAC_CHPRILVL_PRILVL_LVL0_Val _U_(0x0) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 0 (Lowest Level) */ +#define DMAC_CHPRILVL_PRILVL_LVL1_Val _U_(0x1) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 1 */ +#define DMAC_CHPRILVL_PRILVL_LVL2_Val _U_(0x2) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 2 */ +#define DMAC_CHPRILVL_PRILVL_LVL3_Val _U_(0x3) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 3 */ +#define DMAC_CHPRILVL_PRILVL_LVL4_Val _U_(0x4) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 4 */ +#define DMAC_CHPRILVL_PRILVL_LVL5_Val _U_(0x5) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 5 */ +#define DMAC_CHPRILVL_PRILVL_LVL6_Val _U_(0x6) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 6 */ +#define DMAC_CHPRILVL_PRILVL_LVL7_Val _U_(0x7) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 7 (Highest Level) */ +#define DMAC_CHPRILVL_PRILVL_LVL0 (DMAC_CHPRILVL_PRILVL_LVL0_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL1 (DMAC_CHPRILVL_PRILVL_LVL1_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL2 (DMAC_CHPRILVL_PRILVL_LVL2_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL3 (DMAC_CHPRILVL_PRILVL_LVL3_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL4 (DMAC_CHPRILVL_PRILVL_LVL4_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL5 (DMAC_CHPRILVL_PRILVL_LVL5_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL6 (DMAC_CHPRILVL_PRILVL_LVL6_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_PRILVL_LVL7 (DMAC_CHPRILVL_PRILVL_LVL7_Val << DMAC_CHPRILVL_PRILVL_Pos) +#define DMAC_CHPRILVL_MASK _U_(0x03) /**< \brief (DMAC_CHPRILVL) MASK Register */ + +/* -------- DMAC_CHEVCTRL : (DMAC Offset: 0x46) (R/W 8) CHANNEL Channel n Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t EVACT:3; /*!< bit: 0.. 2 Channel Event Input Action */ + uint8_t :1; /*!< bit: 3 Reserved */ + uint8_t EVOMODE:2; /*!< bit: 4.. 5 Channel Event Output Mode */ + uint8_t EVIE:1; /*!< bit: 6 Channel Event Input Enable */ + uint8_t EVOE:1; /*!< bit: 7 Channel Event Output Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHEVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHEVCTRL_OFFSET 0x46 /**< \brief (DMAC_CHEVCTRL offset) Channel n Event Control */ +#define DMAC_CHEVCTRL_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHEVCTRL reset_value) Channel n Event Control */ + +#define DMAC_CHEVCTRL_EVACT_Pos 0 /**< \brief (DMAC_CHEVCTRL) Channel Event Input Action */ +#define DMAC_CHEVCTRL_EVACT_Msk (_U_(0x7) << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT(value) (DMAC_CHEVCTRL_EVACT_Msk & ((value) << DMAC_CHEVCTRL_EVACT_Pos)) +#define DMAC_CHEVCTRL_EVACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHEVCTRL) No action */ +#define DMAC_CHEVCTRL_EVACT_TRIG_Val _U_(0x1) /**< \brief (DMAC_CHEVCTRL) Transfer and periodic transfer trigger */ +#define DMAC_CHEVCTRL_EVACT_CTRIG_Val _U_(0x2) /**< \brief (DMAC_CHEVCTRL) Conditional transfer trigger */ +#define DMAC_CHEVCTRL_EVACT_CBLOCK_Val _U_(0x3) /**< \brief (DMAC_CHEVCTRL) Conditional block transfer */ +#define DMAC_CHEVCTRL_EVACT_SUSPEND_Val _U_(0x4) /**< \brief (DMAC_CHEVCTRL) Channel suspend operation */ +#define DMAC_CHEVCTRL_EVACT_RESUME_Val _U_(0x5) /**< \brief (DMAC_CHEVCTRL) Channel resume operation */ +#define DMAC_CHEVCTRL_EVACT_SSKIP_Val _U_(0x6) /**< \brief (DMAC_CHEVCTRL) Skip next block suspend action */ +#define DMAC_CHEVCTRL_EVACT_INCPRI_Val _U_(0x7) /**< \brief (DMAC_CHEVCTRL) Increase priority */ +#define DMAC_CHEVCTRL_EVACT_NOACT (DMAC_CHEVCTRL_EVACT_NOACT_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_TRIG (DMAC_CHEVCTRL_EVACT_TRIG_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_CTRIG (DMAC_CHEVCTRL_EVACT_CTRIG_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_CBLOCK (DMAC_CHEVCTRL_EVACT_CBLOCK_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_SUSPEND (DMAC_CHEVCTRL_EVACT_SUSPEND_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_RESUME (DMAC_CHEVCTRL_EVACT_RESUME_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_SSKIP (DMAC_CHEVCTRL_EVACT_SSKIP_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVACT_INCPRI (DMAC_CHEVCTRL_EVACT_INCPRI_Val << DMAC_CHEVCTRL_EVACT_Pos) +#define DMAC_CHEVCTRL_EVOMODE_Pos 4 /**< \brief (DMAC_CHEVCTRL) Channel Event Output Mode */ +#define DMAC_CHEVCTRL_EVOMODE_Msk (_U_(0x3) << DMAC_CHEVCTRL_EVOMODE_Pos) +#define DMAC_CHEVCTRL_EVOMODE(value) (DMAC_CHEVCTRL_EVOMODE_Msk & ((value) << DMAC_CHEVCTRL_EVOMODE_Pos)) +#define DMAC_CHEVCTRL_EVOMODE_DEFAULT_Val _U_(0x0) /**< \brief (DMAC_CHEVCTRL) Block event output selection. Refer to BTCTRL.EVOSEL for available selections. */ +#define DMAC_CHEVCTRL_EVOMODE_TRIGACT_Val _U_(0x1) /**< \brief (DMAC_CHEVCTRL) Ongoing trigger action */ +#define DMAC_CHEVCTRL_EVOMODE_DEFAULT (DMAC_CHEVCTRL_EVOMODE_DEFAULT_Val << DMAC_CHEVCTRL_EVOMODE_Pos) +#define DMAC_CHEVCTRL_EVOMODE_TRIGACT (DMAC_CHEVCTRL_EVOMODE_TRIGACT_Val << DMAC_CHEVCTRL_EVOMODE_Pos) +#define DMAC_CHEVCTRL_EVIE_Pos 6 /**< \brief (DMAC_CHEVCTRL) Channel Event Input Enable */ +#define DMAC_CHEVCTRL_EVIE (_U_(0x1) << DMAC_CHEVCTRL_EVIE_Pos) +#define DMAC_CHEVCTRL_EVOE_Pos 7 /**< \brief (DMAC_CHEVCTRL) Channel Event Output Enable */ +#define DMAC_CHEVCTRL_EVOE (_U_(0x1) << DMAC_CHEVCTRL_EVOE_Pos) +#define DMAC_CHEVCTRL_MASK _U_(0xF7) /**< \brief (DMAC_CHEVCTRL) MASK Register */ + +/* -------- DMAC_CHINTENCLR : (DMAC Offset: 0x4C) (R/W 8) CHANNEL Channel n Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ + uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ + uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHINTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHINTENCLR_OFFSET 0x4C /**< \brief (DMAC_CHINTENCLR offset) Channel n Interrupt Enable Clear */ +#define DMAC_CHINTENCLR_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENCLR reset_value) Channel n Interrupt Enable Clear */ + +#define DMAC_CHINTENCLR_TERR_Pos 0 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Error Interrupt Enable */ +#define DMAC_CHINTENCLR_TERR (_U_(0x1) << DMAC_CHINTENCLR_TERR_Pos) +#define DMAC_CHINTENCLR_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Complete Interrupt Enable */ +#define DMAC_CHINTENCLR_TCMPL (_U_(0x1) << DMAC_CHINTENCLR_TCMPL_Pos) +#define DMAC_CHINTENCLR_SUSP_Pos 2 /**< \brief (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable */ +#define DMAC_CHINTENCLR_SUSP (_U_(0x1) << DMAC_CHINTENCLR_SUSP_Pos) +#define DMAC_CHINTENCLR_MASK _U_(0x07) /**< \brief (DMAC_CHINTENCLR) MASK Register */ + +/* -------- DMAC_CHINTENSET : (DMAC Offset: 0x4D) (R/W 8) CHANNEL Channel n Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ + uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ + uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHINTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHINTENSET_OFFSET 0x4D /**< \brief (DMAC_CHINTENSET offset) Channel n Interrupt Enable Set */ +#define DMAC_CHINTENSET_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENSET reset_value) Channel n Interrupt Enable Set */ + +#define DMAC_CHINTENSET_TERR_Pos 0 /**< \brief (DMAC_CHINTENSET) Channel Transfer Error Interrupt Enable */ +#define DMAC_CHINTENSET_TERR (_U_(0x1) << DMAC_CHINTENSET_TERR_Pos) +#define DMAC_CHINTENSET_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENSET) Channel Transfer Complete Interrupt Enable */ +#define DMAC_CHINTENSET_TCMPL (_U_(0x1) << DMAC_CHINTENSET_TCMPL_Pos) +#define DMAC_CHINTENSET_SUSP_Pos 2 /**< \brief (DMAC_CHINTENSET) Channel Suspend Interrupt Enable */ +#define DMAC_CHINTENSET_SUSP (_U_(0x1) << DMAC_CHINTENSET_SUSP_Pos) +#define DMAC_CHINTENSET_MASK _U_(0x07) /**< \brief (DMAC_CHINTENSET) MASK Register */ + +/* -------- DMAC_CHINTFLAG : (DMAC Offset: 0x4E) (R/W 8) CHANNEL Channel n Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error */ + __I uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete */ + __I uint8_t SUSP:1; /*!< bit: 2 Channel Suspend */ + __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHINTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHINTFLAG_OFFSET 0x4E /**< \brief (DMAC_CHINTFLAG offset) Channel n Interrupt Flag Status and Clear */ +#define DMAC_CHINTFLAG_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTFLAG reset_value) Channel n Interrupt Flag Status and Clear */ + +#define DMAC_CHINTFLAG_TERR_Pos 0 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Error */ +#define DMAC_CHINTFLAG_TERR (_U_(0x1) << DMAC_CHINTFLAG_TERR_Pos) +#define DMAC_CHINTFLAG_TCMPL_Pos 1 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Complete */ +#define DMAC_CHINTFLAG_TCMPL (_U_(0x1) << DMAC_CHINTFLAG_TCMPL_Pos) +#define DMAC_CHINTFLAG_SUSP_Pos 2 /**< \brief (DMAC_CHINTFLAG) Channel Suspend */ +#define DMAC_CHINTFLAG_SUSP (_U_(0x1) << DMAC_CHINTFLAG_SUSP_Pos) +#define DMAC_CHINTFLAG_MASK _U_(0x07) /**< \brief (DMAC_CHINTFLAG) MASK Register */ + +/* -------- DMAC_CHSTATUS : (DMAC Offset: 0x4F) (R/W 8) CHANNEL Channel n Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t PEND:1; /*!< bit: 0 Channel Pending */ + uint8_t BUSY:1; /*!< bit: 1 Channel Busy */ + uint8_t FERR:1; /*!< bit: 2 Channel Fetch Error */ + uint8_t CRCERR:1; /*!< bit: 3 Channel CRC Error */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DMAC_CHSTATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_CHSTATUS_OFFSET 0x4F /**< \brief (DMAC_CHSTATUS offset) Channel n Status */ +#define DMAC_CHSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHSTATUS reset_value) Channel n Status */ + +#define DMAC_CHSTATUS_PEND_Pos 0 /**< \brief (DMAC_CHSTATUS) Channel Pending */ +#define DMAC_CHSTATUS_PEND (_U_(0x1) << DMAC_CHSTATUS_PEND_Pos) +#define DMAC_CHSTATUS_BUSY_Pos 1 /**< \brief (DMAC_CHSTATUS) Channel Busy */ +#define DMAC_CHSTATUS_BUSY (_U_(0x1) << DMAC_CHSTATUS_BUSY_Pos) +#define DMAC_CHSTATUS_FERR_Pos 2 /**< \brief (DMAC_CHSTATUS) Channel Fetch Error */ +#define DMAC_CHSTATUS_FERR (_U_(0x1) << DMAC_CHSTATUS_FERR_Pos) +#define DMAC_CHSTATUS_CRCERR_Pos 3 /**< \brief (DMAC_CHSTATUS) Channel CRC Error */ +#define DMAC_CHSTATUS_CRCERR (_U_(0x1) << DMAC_CHSTATUS_CRCERR_Pos) +#define DMAC_CHSTATUS_MASK _U_(0x0F) /**< \brief (DMAC_CHSTATUS) MASK Register */ + +/* -------- DMAC_BTCTRL : (DMAC Offset: 0x00) (R/W 16) Block Transfer Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t VALID:1; /*!< bit: 0 Descriptor Valid */ + uint16_t EVOSEL:2; /*!< bit: 1.. 2 Block Event Output Selection */ + uint16_t BLOCKACT:2; /*!< bit: 3.. 4 Block Action */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t BEATSIZE:2; /*!< bit: 8.. 9 Beat Size */ + uint16_t SRCINC:1; /*!< bit: 10 Source Address Increment Enable */ + uint16_t DSTINC:1; /*!< bit: 11 Destination Address Increment Enable */ + uint16_t STEPSEL:1; /*!< bit: 12 Step Selection */ + uint16_t STEPSIZE:3; /*!< bit: 13..15 Address Increment Step Size */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DMAC_BTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DMAC_BTCTRL_OFFSET 0x00 /**< \brief (DMAC_BTCTRL offset) Block Transfer Control */ +#define DMAC_BTCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_BTCTRL reset_value) Block Transfer Control */ + +#define DMAC_BTCTRL_VALID_Pos 0 /**< \brief (DMAC_BTCTRL) Descriptor Valid */ +#define DMAC_BTCTRL_VALID (_U_(0x1) << DMAC_BTCTRL_VALID_Pos) +#define DMAC_BTCTRL_EVOSEL_Pos 1 /**< \brief (DMAC_BTCTRL) Block Event Output Selection */ +#define DMAC_BTCTRL_EVOSEL_Msk (_U_(0x3) << DMAC_BTCTRL_EVOSEL_Pos) +#define DMAC_BTCTRL_EVOSEL(value) (DMAC_BTCTRL_EVOSEL_Msk & ((value) << DMAC_BTCTRL_EVOSEL_Pos)) +#define DMAC_BTCTRL_EVOSEL_DISABLE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Event generation disabled */ +#define DMAC_BTCTRL_EVOSEL_BLOCK_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Block event strobe */ +#define DMAC_BTCTRL_EVOSEL_BURST_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Burst event strobe */ +#define DMAC_BTCTRL_EVOSEL_DISABLE (DMAC_BTCTRL_EVOSEL_DISABLE_Val << DMAC_BTCTRL_EVOSEL_Pos) +#define DMAC_BTCTRL_EVOSEL_BLOCK (DMAC_BTCTRL_EVOSEL_BLOCK_Val << DMAC_BTCTRL_EVOSEL_Pos) +#define DMAC_BTCTRL_EVOSEL_BURST (DMAC_BTCTRL_EVOSEL_BURST_Val << DMAC_BTCTRL_EVOSEL_Pos) +#define DMAC_BTCTRL_BLOCKACT_Pos 3 /**< \brief (DMAC_BTCTRL) Block Action */ +#define DMAC_BTCTRL_BLOCKACT_Msk (_U_(0x3) << DMAC_BTCTRL_BLOCKACT_Pos) +#define DMAC_BTCTRL_BLOCKACT(value) (DMAC_BTCTRL_BLOCKACT_Msk & ((value) << DMAC_BTCTRL_BLOCKACT_Pos)) +#define DMAC_BTCTRL_BLOCKACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction */ +#define DMAC_BTCTRL_BLOCKACT_INT_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction and block interrupt */ +#define DMAC_BTCTRL_BLOCKACT_SUSPEND_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) Channel suspend operation is completed */ +#define DMAC_BTCTRL_BLOCKACT_BOTH_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Both channel suspend operation and block interrupt */ +#define DMAC_BTCTRL_BLOCKACT_NOACT (DMAC_BTCTRL_BLOCKACT_NOACT_Val << DMAC_BTCTRL_BLOCKACT_Pos) +#define DMAC_BTCTRL_BLOCKACT_INT (DMAC_BTCTRL_BLOCKACT_INT_Val << DMAC_BTCTRL_BLOCKACT_Pos) +#define DMAC_BTCTRL_BLOCKACT_SUSPEND (DMAC_BTCTRL_BLOCKACT_SUSPEND_Val << DMAC_BTCTRL_BLOCKACT_Pos) +#define DMAC_BTCTRL_BLOCKACT_BOTH (DMAC_BTCTRL_BLOCKACT_BOTH_Val << DMAC_BTCTRL_BLOCKACT_Pos) +#define DMAC_BTCTRL_BEATSIZE_Pos 8 /**< \brief (DMAC_BTCTRL) Beat Size */ +#define DMAC_BTCTRL_BEATSIZE_Msk (_U_(0x3) << DMAC_BTCTRL_BEATSIZE_Pos) +#define DMAC_BTCTRL_BEATSIZE(value) (DMAC_BTCTRL_BEATSIZE_Msk & ((value) << DMAC_BTCTRL_BEATSIZE_Pos)) +#define DMAC_BTCTRL_BEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) 8-bit bus transfer */ +#define DMAC_BTCTRL_BEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) 16-bit bus transfer */ +#define DMAC_BTCTRL_BEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) 32-bit bus transfer */ +#define DMAC_BTCTRL_BEATSIZE_BYTE (DMAC_BTCTRL_BEATSIZE_BYTE_Val << DMAC_BTCTRL_BEATSIZE_Pos) +#define DMAC_BTCTRL_BEATSIZE_HWORD (DMAC_BTCTRL_BEATSIZE_HWORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) +#define DMAC_BTCTRL_BEATSIZE_WORD (DMAC_BTCTRL_BEATSIZE_WORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) +#define DMAC_BTCTRL_SRCINC_Pos 10 /**< \brief (DMAC_BTCTRL) Source Address Increment Enable */ +#define DMAC_BTCTRL_SRCINC (_U_(0x1) << DMAC_BTCTRL_SRCINC_Pos) +#define DMAC_BTCTRL_DSTINC_Pos 11 /**< \brief (DMAC_BTCTRL) Destination Address Increment Enable */ +#define DMAC_BTCTRL_DSTINC (_U_(0x1) << DMAC_BTCTRL_DSTINC_Pos) +#define DMAC_BTCTRL_STEPSEL_Pos 12 /**< \brief (DMAC_BTCTRL) Step Selection */ +#define DMAC_BTCTRL_STEPSEL (_U_(0x1) << DMAC_BTCTRL_STEPSEL_Pos) +#define DMAC_BTCTRL_STEPSEL_DST_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Step size settings apply to the destination address */ +#define DMAC_BTCTRL_STEPSEL_SRC_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Step size settings apply to the source address */ +#define DMAC_BTCTRL_STEPSEL_DST (DMAC_BTCTRL_STEPSEL_DST_Val << DMAC_BTCTRL_STEPSEL_Pos) +#define DMAC_BTCTRL_STEPSEL_SRC (DMAC_BTCTRL_STEPSEL_SRC_Val << DMAC_BTCTRL_STEPSEL_Pos) +#define DMAC_BTCTRL_STEPSIZE_Pos 13 /**< \brief (DMAC_BTCTRL) Address Increment Step Size */ +#define DMAC_BTCTRL_STEPSIZE_Msk (_U_(0x7) << DMAC_BTCTRL_STEPSIZE_Pos) +#define DMAC_BTCTRL_STEPSIZE(value) (DMAC_BTCTRL_STEPSIZE_Msk & ((value) << DMAC_BTCTRL_STEPSIZE_Pos)) +#define DMAC_BTCTRL_STEPSIZE_X1_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Next ADDR = ADDR + (1< 8 bits, 1 -> 16 bits +#define USB_EPNUM 8 // parameter for rtl : max of ENDPOINT and PIPE NUM +#define USB_EPT_NUM 8 // Number of USB end points +#define USB_GCLK_ID 10 // Index of Generic Clock +#define USB_INITIAL_CONTROL_QOS 3 // CONTROL QOS RESET value +#define USB_INITIAL_DATA_QOS 3 // DATA QOS RESET value +#define USB_MISSING_SOF_DET_IMPLEMENTED 1 // 48 mHz xPLL feature implemented +#define USB_PIPE_NUM 8 // Number of USB pipes +#define USB_SYSTEM_CLOCK_IS_CKUSB 0 // Dual (1'b0) or Single (1'b1) clock system +#define USB_USB_2_AHB_FIFO_DEPTH 4 // bytes number, should be at least 2, and 2^n (4,8,16 ...) +#define USB_USB_2_AHB_RD_DATA_BITS 16 // 8, 16 or 32, here : 8-bits is required as UTMI interface should work in 8-bits mode +#define USB_USB_2_AHB_RD_THRESHOLD 2 // as soon as there are 16 bytes-free inside the fifo, ahb read transfer is requested +#define USB_USB_2_AHB_WR_DATA_BITS 8 // 8, 16 or 32 : here : 8-bits is required as UTMI interface should work in 8-bits mode + +#endif /* _SAMD51_USB_INSTANCE_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/instance/wdt.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/instance/wdt.h new file mode 100644 index 0000000000..98a2ca13d7 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/instance/wdt.h @@ -0,0 +1,55 @@ +/** + * \file + * + * \brief Instance description for WDT + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_WDT_INSTANCE_ +#define _SAMD51_WDT_INSTANCE_ + +/* ========== Register definition for WDT peripheral ========== */ +#if (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#define REG_WDT_CTRLA (0x40002000) /**< \brief (WDT) Control */ +#define REG_WDT_CONFIG (0x40002001) /**< \brief (WDT) Configuration */ +#define REG_WDT_EWCTRL (0x40002002) /**< \brief (WDT) Early Warning Interrupt Control */ +#define REG_WDT_INTENCLR (0x40002004) /**< \brief (WDT) Interrupt Enable Clear */ +#define REG_WDT_INTENSET (0x40002005) /**< \brief (WDT) Interrupt Enable Set */ +#define REG_WDT_INTFLAG (0x40002006) /**< \brief (WDT) Interrupt Flag Status and Clear */ +#define REG_WDT_SYNCBUSY (0x40002008) /**< \brief (WDT) Synchronization Busy */ +#define REG_WDT_CLEAR (0x4000200C) /**< \brief (WDT) Clear */ +#else +#define REG_WDT_CTRLA (*(RwReg8 *)0x40002000UL) /**< \brief (WDT) Control */ +#define REG_WDT_CONFIG (*(RwReg8 *)0x40002001UL) /**< \brief (WDT) Configuration */ +#define REG_WDT_EWCTRL (*(RwReg8 *)0x40002002UL) /**< \brief (WDT) Early Warning Interrupt Control */ +#define REG_WDT_INTENCLR (*(RwReg8 *)0x40002004UL) /**< \brief (WDT) Interrupt Enable Clear */ +#define REG_WDT_INTENSET (*(RwReg8 *)0x40002005UL) /**< \brief (WDT) Interrupt Enable Set */ +#define REG_WDT_INTFLAG (*(RwReg8 *)0x40002006UL) /**< \brief (WDT) Interrupt Flag Status and Clear */ +#define REG_WDT_SYNCBUSY (*(RoReg *)0x40002008UL) /**< \brief (WDT) Synchronization Busy */ +#define REG_WDT_CLEAR (*(WoReg8 *)0x4000200CUL) /**< \brief (WDT) Clear */ +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + + +#endif /* _SAMD51_WDT_INSTANCE_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/pio/samd51j18a.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/pio/samd51j18a.h new file mode 100644 index 0000000000..d8fa56d5ba --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/pio/samd51j18a.h @@ -0,0 +1,1863 @@ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51J18A + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J18A_PIO_ +#define _SAMD51J18A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TAL peripheral ========== */ +#define PIN_PA27H_TAL_BRK _L_(27) /**< \brief TAL signal: BRK on PA27 mux H */ +#define MUX_PA27H_TAL_BRK _L_(7) +#define PINMUX_PA27H_TAL_BRK ((PIN_PA27H_TAL_BRK << 16) | MUX_PA27H_TAL_BRK) +#define PORT_PA27H_TAL_BRK (_UL_(1) << 27) +#define PIN_PB31H_TAL_BRK _L_(63) /**< \brief TAL signal: BRK on PB31 mux H */ +#define MUX_PB31H_TAL_BRK _L_(7) +#define PINMUX_PB31H_TAL_BRK ((PIN_PB31H_TAL_BRK << 16) | MUX_PB31H_TAL_BRK) +#define PORT_PB31H_TAL_BRK (_UL_(1) << 31) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51J18A_PIO_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/sam.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/sam.h new file mode 100644 index 0000000000..9009b6d653 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/sam.h @@ -0,0 +1,54 @@ +/** + * \file + * + * \brief Top level header file + * + * Copyright (c) 2017 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. + * + * \license_start + * + * \page License + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \license_stop + * + */ + +#ifndef _SAM_ +#define _SAM_ + +#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) + #include "samd51g18a.h" +#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) + #include "samd51g19a.h" +#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) + #include "samd51j18a.h" +#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) + #include "samd51j19a.h" +#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) + #include "samd51j20a.h" +#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) + #include "samd51n19a.h" +#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) + #include "samd51n20a.h" +#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) + #include "samd51p19a.h" +#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) + #include "samd51p20a.h" +#else + #error Library does not support the specified device +#endif + +#endif /* _SAM_ */ + diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51.h new file mode 100644 index 0000000000..d08ac64cb8 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51.h @@ -0,0 +1,60 @@ +/** + * \file + * + * \brief Top header file for SAMD51 + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_ +#define _SAMD51_ + +/** + * \defgroup SAMD51_definitions SAMD51 Device Definitions + * \brief SAMD51 CMSIS Definitions. + */ + +#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) + #include "samd51g18a.h" +#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) + #include "samd51g19a.h" +#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) + #include "samd51j18a.h" +#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) + #include "samd51j19a.h" +#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) + #include "samd51j20a.h" +#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) + #include "samd51n19a.h" +#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) + #include "samd51n20a.h" +#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) + #include "samd51p19a.h" +#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) + #include "samd51p20a.h" +#else + #error Library does not support the specified device. +#endif + +#endif /* _SAMD51_ */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51j18a.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51j18a.h new file mode 100644 index 0000000000..5cfccdfc84 --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/samd51j18a.h @@ -0,0 +1,1079 @@ +/** + * \file + * + * \brief Header file for SAMD51J18A + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J18A_ +#define _SAMD51J18A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51J18A_definitions SAMD51J18A definitions + * This file defines all structures and symbols for SAMD51J18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers ******************************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Cortex-M4 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Cortex-M4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Cortex-M4 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Cortex-M4 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 Cortex-M4 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Cortex-M4 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Cortex-M4 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 Cortex-M4 System Tick Interrupt */ + /****** SAMD51J18A-specific Interrupt Numbers ***********************/ + PM_IRQn = 0, /**< 0 SAMD51J18A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51J18A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J18A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51J18A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51J18A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51J18A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51J18A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51J18A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51J18A Peripheral Access Controller (PAC) */ + TAL_0_IRQn = 42, /**< 42 SAMD51J18A Trigger Allocator (TAL): TAL_BRK */ + TAL_1_IRQn = 43, /**< 43 SAMD51J18A Trigger Allocator (TAL): TAL_IPS_0, TAL_IPS_1 */ + RAMECC_IRQn = 45, /**< 45 SAMD51J18A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51J18A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51J18A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51J18A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51J18A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51J18A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51J18A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51J18A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51J18A Basic Timer Counter 5 (TC5) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51J18A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51J18A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51J18A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51J18A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51J18A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51J18A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51J18A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51J18A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51J18A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNMI_Handler; + void* pfnHardFault_Handler; + void* pfnMemManage_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVC_Handler; + void* pfnDebugMon_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pfnTAL_0_Handler; /* 42 Trigger Allocator IRQ 0 */ + void* pfnTAL_1_Handler; /* 43 Trigger Allocator IRQ 1 */ + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NMI_Handler ( void ); +void HardFault_Handler ( void ); +void MemManage_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVC_Handler ( void ); +void DebugMon_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void TAL_0_Handler ( void ); +void TAL_1_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define LITTLE_ENDIAN 1 +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tal.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tal.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TAL 47 /**< \brief Trigger Allocator (TAL) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CB (0x00800000) /**< \brief (NVMCTRL) CB Base Address */ +#define NVMCTRL_CBW0 (0x00800000) /**< \brief (NVMCTRL) CBW0 Base Address */ +#define NVMCTRL_CBW1 (0x00800010) /**< \brief (NVMCTRL) CBW1 Base Address */ +#define NVMCTRL_CBW2 (0x00800020) /**< \brief (NVMCTRL) CBW2 Base Address */ +#define NVMCTRL_CBW3 (0x00800030) /**< \brief (NVMCTRL) CBW3 Base Address */ +#define NVMCTRL_CBW4 (0x00800040) /**< \brief (NVMCTRL) CBW4 Base Address */ +#define NVMCTRL_CBW5 (0x00800050) /**< \brief (NVMCTRL) CBW5 Base Address */ +#define NVMCTRL_CBW6 (0x00800060) /**< \brief (NVMCTRL) CBW6 Base Address */ +#define NVMCTRL_CBW7 (0x00800070) /**< \brief (NVMCTRL) CBW7 Base Address */ +#define NVMCTRL_FS (0x00806000) /**< \brief (NVMCTRL) FS Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_SW1 (0x00800090) /**< \brief (NVMCTRL) SW1 Base Address */ +#define NVMCTRL_SW2 (0x008000A0) /**< \brief (NVMCTRL) SW2 Base Address */ +#define NVMCTRL_SW3 (0x008000B0) /**< \brief (NVMCTRL) SW3 Base Address */ +#define NVMCTRL_SW4 (0x008000C0) /**< \brief (NVMCTRL) SW4 Base Address */ +#define NVMCTRL_SW5 (0x008000D0) /**< \brief (NVMCTRL) SW5 Base Address */ +#define NVMCTRL_SW6 (0x008000E0) /**< \brief (NVMCTRL) SW6 Base Address */ +#define NVMCTRL_SW7 (0x008000F0) /**< \brief (NVMCTRL) SW7 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_TEMP_LOG_W0 (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG_W0 Base Address */ +#define NVMCTRL_TEMP_LOG_W1 (0x00800110) /**< \brief (NVMCTRL) TEMP_LOG_W1 Base Address */ +#define NVMCTRL_TEMP_LOG_W2 (0x00800120) /**< \brief (NVMCTRL) TEMP_LOG_W2 Base Address */ +#define NVMCTRL_TEMP_LOG_W3 (0x00800130) /**< \brief (NVMCTRL) TEMP_LOG_W3 Base Address */ +#define NVMCTRL_TEMP_LOG_W4 (0x00800140) /**< \brief (NVMCTRL) TEMP_LOG_W4 Base Address */ +#define NVMCTRL_TEMP_LOG_W5 (0x00800150) /**< \brief (NVMCTRL) TEMP_LOG_W5 Base Address */ +#define NVMCTRL_TEMP_LOG_W6 (0x00800160) /**< \brief (NVMCTRL) TEMP_LOG_W6 Base Address */ +#define NVMCTRL_TEMP_LOG_W7 (0x00800170) /**< \brief (NVMCTRL) TEMP_LOG_W7 Base Address */ +#define NVMCTRL_TLATCH (0x00802000) /**< \brief (NVMCTRL) TLATCH Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TAL (0x4101E000) /**< \brief (TAL) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CB (0x00800000UL) /**< \brief (NVMCTRL) CB Base Address */ +#define NVMCTRL_CBW0 (0x00800000UL) /**< \brief (NVMCTRL) CBW0 Base Address */ +#define NVMCTRL_CBW1 (0x00800010UL) /**< \brief (NVMCTRL) CBW1 Base Address */ +#define NVMCTRL_CBW2 (0x00800020UL) /**< \brief (NVMCTRL) CBW2 Base Address */ +#define NVMCTRL_CBW3 (0x00800030UL) /**< \brief (NVMCTRL) CBW3 Base Address */ +#define NVMCTRL_CBW4 (0x00800040UL) /**< \brief (NVMCTRL) CBW4 Base Address */ +#define NVMCTRL_CBW5 (0x00800050UL) /**< \brief (NVMCTRL) CBW5 Base Address */ +#define NVMCTRL_CBW6 (0x00800060UL) /**< \brief (NVMCTRL) CBW6 Base Address */ +#define NVMCTRL_CBW7 (0x00800070UL) /**< \brief (NVMCTRL) CBW7 Base Address */ +#define NVMCTRL_FS (0x00806000UL) /**< \brief (NVMCTRL) FS Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_SW1 (0x00800090UL) /**< \brief (NVMCTRL) SW1 Base Address */ +#define NVMCTRL_SW2 (0x008000A0UL) /**< \brief (NVMCTRL) SW2 Base Address */ +#define NVMCTRL_SW3 (0x008000B0UL) /**< \brief (NVMCTRL) SW3 Base Address */ +#define NVMCTRL_SW4 (0x008000C0UL) /**< \brief (NVMCTRL) SW4 Base Address */ +#define NVMCTRL_SW5 (0x008000D0UL) /**< \brief (NVMCTRL) SW5 Base Address */ +#define NVMCTRL_SW6 (0x008000E0UL) /**< \brief (NVMCTRL) SW6 Base Address */ +#define NVMCTRL_SW7 (0x008000F0UL) /**< \brief (NVMCTRL) SW7 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_TEMP_LOG_W0 (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG_W0 Base Address */ +#define NVMCTRL_TEMP_LOG_W1 (0x00800110UL) /**< \brief (NVMCTRL) TEMP_LOG_W1 Base Address */ +#define NVMCTRL_TEMP_LOG_W2 (0x00800120UL) /**< \brief (NVMCTRL) TEMP_LOG_W2 Base Address */ +#define NVMCTRL_TEMP_LOG_W3 (0x00800130UL) /**< \brief (NVMCTRL) TEMP_LOG_W3 Base Address */ +#define NVMCTRL_TEMP_LOG_W4 (0x00800140UL) /**< \brief (NVMCTRL) TEMP_LOG_W4 Base Address */ +#define NVMCTRL_TEMP_LOG_W5 (0x00800150UL) /**< \brief (NVMCTRL) TEMP_LOG_W5 Base Address */ +#define NVMCTRL_TEMP_LOG_W6 (0x00800160UL) /**< \brief (NVMCTRL) TEMP_LOG_W6 Base Address */ +#define NVMCTRL_TEMP_LOG_W7 (0x00800170UL) /**< \brief (NVMCTRL) TEMP_LOG_W7 Base Address */ +#define NVMCTRL_TLATCH (0x00802000UL) /**< \brief (NVMCTRL) TLATCH Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TAL ((Tal *)0x4101E000UL) /**< \brief (TAL) APB Base Address */ +#define TAL_INST_NUM 1 /**< \brief (TAL) Number of instances */ +#define TAL_INSTS { TAL } /**< \brief (TAL) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51j18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060006) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51J18A_H */ diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/system_samd51.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/system_samd51.h new file mode 100644 index 0000000000..cfbd2b921b --- /dev/null +++ b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/system_samd51.h @@ -0,0 +1,48 @@ +/** + * \file + * + * \brief Low-level initialization functions called upon chip startup + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SYSTEM_SAMD51_H_INCLUDED_ +#define _SYSTEM_SAMD51_H_INCLUDED_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +void SystemInit(void); +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_SAMD51_H_INCLUDED */ diff --git a/lib/chibios b/lib/chibios index 8bd61b8043..be44b3305f 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit 8bd61b804303f1614d574546c2dd735eeabb09f5 +Subproject commit be44b3305f9a9fe5f2f49a4e7b978db322dc463e diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 3ac181e4ca..77cb0a4f75 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 3ac181e4ca5cafddaf8b472baa1d09c2b24c77b6 +Subproject commit 77cb0a4f7589f89e724f5e6ecb1d76d514dd1212 diff --git a/lib/fnv/qmk_fnv_type_validation.c b/lib/fnv/qmk_fnv_type_validation.c index 5e8ef5c54c..e8576617ba 100644 --- a/lib/fnv/qmk_fnv_type_validation.c +++ b/lib/fnv/qmk_fnv_type_validation.c @@ -1,15 +1,14 @@ // Copyright 2022 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later #include "fnv.h" -#include "compiler_support.h" // This library was originally sourced from: // http://www.isthe.com/chongo/tech/comp/fnv/index.html // // Version at the time of retrieval on 2022-06-26: v5.0.3 -STATIC_ASSERT(sizeof(long long) == 8, "long long should be 64 bits"); -STATIC_ASSERT(sizeof(unsigned long long) == 8, "unsigned long long should be 64 bits"); +_Static_assert(sizeof(long long) == 8, "long long should be 64 bits"); +_Static_assert(sizeof(unsigned long long) == 8, "unsigned long long should be 64 bits"); -STATIC_ASSERT(sizeof(Fnv32_t) == 4, "Fnv32_t should be 32 bits"); -STATIC_ASSERT(sizeof(Fnv64_t) == 8, "Fnv64_t should be 64 bits"); +_Static_assert(sizeof(Fnv32_t) == 4, "Fnv32_t should be 32 bits"); +_Static_assert(sizeof(Fnv64_t) == 8, "Fnv64_t should be 64 bits"); diff --git a/lib/pico-sdk b/lib/pico-sdk index d0c5cac430..a3398d8d3a 160000 --- a/lib/pico-sdk +++ b/lib/pico-sdk @@ -1 +1 @@ -Subproject commit d0c5cac430cc955b65efa0e899748853d9a80928 +Subproject commit a3398d8d3a772f37fef44a74743a1de69770e9c2 diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py index 35a5f89f91..e2df029490 100644 --- a/lib/python/qmk/build_targets.py +++ b/lib/python/qmk/build_targets.py @@ -11,8 +11,7 @@ from qmk.commands import find_make, get_make_parallel_args, parse_configurator_j from qmk.keyboard import keyboard_folder from qmk.info import keymap_json from qmk.keymap import locate_keymap -from qmk.path import is_under_qmk_firmware, is_under_qmk_userspace, unix_style_path -from qmk.compilation_database import write_compilation_database +from qmk.path import is_under_qmk_firmware, is_under_qmk_userspace # These must be kept in the order in which they're applied to $(TARGET) in the makefiles in order to ensure consistency. TARGET_FILENAME_MODIFIERS = ['FORCE_LAYOUT', 'CONVERT_TO'] @@ -151,6 +150,7 @@ class BuildTarget: def generate_compilation_database(self, build_target: str = None, skip_clean: bool = False, **env_vars) -> None: self.prepare_build(build_target=build_target, **env_vars) command = self.compile_command(build_target=build_target, dry_run=True, **env_vars) + from qmk.cli.generate.compilation_database import write_compilation_database # Lazy load due to circular references output_path = QMK_FIRMWARE / 'compile_commands.json' ret = write_compilation_database(command=command, output_path=output_path, skip_clean=skip_clean, **env_vars) if ret and output_path.exists() and HAS_QMK_USERSPACE: @@ -204,11 +204,11 @@ class KeyboardKeymapBuildTarget(BuildTarget): if is_under_qmk_userspace(keymap_location) and not is_under_qmk_firmware(keymap_location): keymap_directory = keymap_location.parent compile_args.extend([ - f'MAIN_KEYMAP_PATH_1={unix_style_path(keymap_directory)}', - f'MAIN_KEYMAP_PATH_2={unix_style_path(keymap_directory)}', - f'MAIN_KEYMAP_PATH_3={unix_style_path(keymap_directory)}', - f'MAIN_KEYMAP_PATH_4={unix_style_path(keymap_directory)}', - f'MAIN_KEYMAP_PATH_5={unix_style_path(keymap_directory)}', + f'MAIN_KEYMAP_PATH_1={keymap_directory}', + f'MAIN_KEYMAP_PATH_2={keymap_directory}', + f'MAIN_KEYMAP_PATH_3={keymap_directory}', + f'MAIN_KEYMAP_PATH_4={keymap_directory}', + f'MAIN_KEYMAP_PATH_5={keymap_directory}', ]) return compile_args @@ -267,11 +267,11 @@ class JsonKeymapBuildTarget(BuildTarget): generated_files_path = intermediate_output / 'src' keymap_json = generated_files_path / 'keymap.json' compile_args.extend([ - f'MAIN_KEYMAP_PATH_1={unix_style_path(intermediate_output)}', - f'MAIN_KEYMAP_PATH_2={unix_style_path(intermediate_output)}', - f'MAIN_KEYMAP_PATH_3={unix_style_path(intermediate_output)}', - f'MAIN_KEYMAP_PATH_4={unix_style_path(intermediate_output)}', - f'MAIN_KEYMAP_PATH_5={unix_style_path(intermediate_output)}', + f'MAIN_KEYMAP_PATH_1={intermediate_output}', + f'MAIN_KEYMAP_PATH_2={intermediate_output}', + f'MAIN_KEYMAP_PATH_3={intermediate_output}', + f'MAIN_KEYMAP_PATH_4={intermediate_output}', + f'MAIN_KEYMAP_PATH_5={intermediate_output}', f'KEYMAP_JSON={keymap_json}', f'KEYMAP_PATH={generated_files_path}', ]) diff --git a/lib/python/qmk/c_parse.py b/lib/python/qmk/c_parse.py index 785b940456..08d23cf5ba 100644 --- a/lib/python/qmk/c_parse.py +++ b/lib/python/qmk/c_parse.py @@ -24,7 +24,7 @@ def _get_chunks(it, size): return iter(lambda: tuple(islice(it, size)), ()) -def preprocess_c_file(file): +def _preprocess_c_file(file): """Load file and strip comments """ file_contents = file.read_text(encoding='utf-8') @@ -66,7 +66,7 @@ def find_layouts(file): parsed_layouts = {} # Search the file for LAYOUT macros and aliases - file_contents = preprocess_c_file(file) + file_contents = _preprocess_c_file(file) for line in file_contents.split('\n'): if layout_macro_define_regex.match(line.lstrip()) and '(' in line and 'LAYOUT' in line: @@ -248,7 +248,7 @@ def _parse_led_config(file, matrix_cols, matrix_rows): current_row_index = 0 current_row = [] - for _type, value in lex(preprocess_c_file(file), CLexer()): + for _type, value in lex(_preprocess_c_file(file), CLexer()): if not found_g_led_config: # Check for type if value == 'led_config_t': diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 26905ec134..0baf19a629 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -49,7 +49,6 @@ subcommands = [ 'qmk.cli.generate.api', 'qmk.cli.generate.autocorrect_data', 'qmk.cli.generate.compilation_database', - 'qmk.cli.generate.community_modules', 'qmk.cli.generate.config_h', 'qmk.cli.generate.develop_pr_list', 'qmk.cli.generate.dfu_header', @@ -58,6 +57,7 @@ subcommands = [ 'qmk.cli.generate.keyboard_c', 'qmk.cli.generate.keyboard_h', 'qmk.cli.generate.keycodes', + 'qmk.cli.generate.keycodes_tests', 'qmk.cli.generate.keymap_h', 'qmk.cli.generate.make_dependencies', 'qmk.cli.generate.rgb_breathe_table', @@ -82,7 +82,6 @@ subcommands = [ 'qmk.cli.new.keymap', 'qmk.cli.painter', 'qmk.cli.pytest', - 'qmk.cli.resolve_alias', 'qmk.cli.test.c', 'qmk.cli.userspace.add', 'qmk.cli.userspace.compile', @@ -208,13 +207,13 @@ def _eprint(errmsg): # Ubuntu 24.04: 3.12 # void: 3.12 -if sys.version_info[0] != 3 or sys.version_info[1] < 9: - _eprint('Error: Your Python is too old! Please upgrade to Python 3.9 or later.') +if sys.version_info[0] != 3 or sys.version_info[1] < 7: + _eprint('Error: Your Python is too old! Please upgrade to Python 3.7 or later.') exit(127) milc_version = __VERSION__.split('.') -if int(milc_version[0]) < 2 and int(milc_version[1]) < 9: +if int(milc_version[0]) < 2 and int(milc_version[1]) < 4: requirements = Path('requirements.txt').resolve() _eprint(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') diff --git a/lib/python/qmk/cli/ci/validate_aliases.py b/lib/python/qmk/cli/ci/validate_aliases.py index 4f2fe6c941..7f781d4397 100644 --- a/lib/python/qmk/cli/ci/validate_aliases.py +++ b/lib/python/qmk/cli/ci/validate_aliases.py @@ -2,7 +2,7 @@ """ from milc import cli -from qmk.keyboard import keyboard_folder, keyboard_alias_definitions +from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions def _safe_keyboard_folder(target): @@ -17,6 +17,10 @@ def _target_keyboard_exists(target): if not target: return False + # If the target directory existed but there was no rules.mk or rules.mk was incorrectly parsed, then we can't build it. + if not resolve_keyboard(target): + return False + # If the target directory exists but it itself has an invalid alias or invalid rules.mk, then we can't build it either. if not _safe_keyboard_folder(target): return False @@ -25,21 +29,6 @@ def _target_keyboard_exists(target): return True -def _alias_not_self(alias): - """Check if alias points to itself, either directly or within a circular reference - """ - aliases = keyboard_alias_definitions() - - found = set() - while alias in aliases: - found.add(alias) - alias = aliases[alias].get('target', alias) - if alias in found: - return False - - return True - - @cli.subcommand('Validates the list of keyboard aliases.', hidden=True) def ci_validate_aliases(cli): aliases = keyboard_alias_definitions() @@ -47,11 +36,7 @@ def ci_validate_aliases(cli): success = True for alias in aliases.keys(): target = aliases[alias].get('target', None) - if not _alias_not_self(alias): - cli.log.error(f'Keyboard alias {alias} should not point to itself') - success = False - - elif not _target_keyboard_exists(target): + if not _target_keyboard_exists(target): cli.log.error(f'Keyboard alias {alias} has a target that doesn\'t exist: {target}') success = False diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py index da02ebf95e..d28dddf194 100644 --- a/lib/python/qmk/cli/docs.py +++ b/lib/python/qmk/cli/docs.py @@ -6,8 +6,6 @@ from qmk.docs import prepare_docs_build_area, run_docs_command from milc import cli -@cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.') -@cli.argument('-b', '--browser', action='store_true', help='Open the docs in the default browser.') @cli.subcommand('Run a local webserver for QMK documentation.', hidden=False if cli.config.user.developer else True) def docs(cli): """Spin up a local HTTP server for the QMK docs. @@ -24,7 +22,6 @@ def docs(cli): if not prepare_docs_build_area(is_production=False): return False - cmd = ['docs:dev', '--port', f'{cli.args.port}'] - if cli.args.browser: - cmd.append('--open') - run_docs_command('run', cmd) + if not cli.config.general.verbose: + cli.log.info('Serving docs at http://localhost:5173/ (Ctrl+C to stop)') + run_docs_command('run', 'docs:dev') diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index 51b0f0c80a..d563811aba 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -4,8 +4,6 @@ from enum import Enum import re import shutil from subprocess import DEVNULL, TimeoutExpired -from tempfile import TemporaryDirectory -from pathlib import Path from milc import cli from qmk import submodules @@ -46,38 +44,7 @@ def _check_arm_gcc_version(): version_number = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].strip() cli.log.info('Found arm-none-eabi-gcc version %s', version_number) - # Right now all known ARM versions are ok, so check that it can produce binaries - return _check_arm_gcc_installation() - - -def _check_arm_gcc_installation(): - """Returns OK if the arm-none-eabi-gcc is fully installed and can produce binaries. - """ - with TemporaryDirectory() as temp_dir: - temp_in = Path(temp_dir) / 'test.c' - temp_out = Path(temp_dir) / 'test.elf' - - temp_in.write_text('#include \nint main() { return __NEWLIB__ * __NEWLIB_MINOR__ * __NEWLIB_PATCHLEVEL__; }', encoding='utf-8') - - args = ['arm-none-eabi-gcc', '-mcpu=cortex-m0', '-mthumb', '-mno-thumb-interwork', '--specs=nosys.specs', '--specs=nano.specs', '-x', 'c', '-o', str(temp_out), str(temp_in)] - result = cli.run(args, stdout=None, stderr=None) - if result.returncode == 0: - cli.log.info('Successfully compiled using arm-none-eabi-gcc') - else: - cli.log.error(f'Failed to compile a simple program with arm-none-eabi-gcc, return code {result.returncode}') - cli.log.error(f'Command: {" ".join(args)}') - return CheckStatus.ERROR - - args = ['arm-none-eabi-size', str(temp_out)] - result = cli.run(args, stdout=None, stderr=None) - if result.returncode == 0: - cli.log.info('Successfully tested arm-none-eabi-binutils using arm-none-eabi-size') - else: - cli.log.error(f'Failed to execute arm-none-eabi-size, perhaps corrupt arm-none-eabi-binutils, return code {result.returncode}') - cli.log.error(f'Command: {" ".join(args)}') - return CheckStatus.ERROR - - return CheckStatus.OK + return CheckStatus.OK # Right now all known arm versions are ok def _check_avr_gcc_version(): @@ -86,38 +53,7 @@ def _check_avr_gcc_version(): version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() cli.log.info('Found avr-gcc version %s', version_number) - # Right now all known AVR versions are ok, so check that it can produce binaries - return _check_avr_gcc_installation() - - -def _check_avr_gcc_installation(): - """Returns OK if the avr-gcc is fully installed and can produce binaries. - """ - with TemporaryDirectory() as temp_dir: - temp_in = Path(temp_dir) / 'test.c' - temp_out = Path(temp_dir) / 'test.elf' - - temp_in.write_text('int main() { return 0; }', encoding='utf-8') - - args = ['avr-gcc', '-mmcu=atmega32u4', '-x', 'c', '-o', str(temp_out), str(temp_in)] - result = cli.run(args, stdout=None, stderr=None) - if result.returncode == 0: - cli.log.info('Successfully compiled using avr-gcc') - else: - cli.log.error(f'Failed to compile a simple program with avr-gcc, return code {result.returncode}') - cli.log.error(f'Command: {" ".join(args)}') - return CheckStatus.ERROR - - args = ['avr-size', str(temp_out)] - result = cli.run(args, stdout=None, stderr=None) - if result.returncode == 0: - cli.log.info('Successfully tested avr-binutils using avr-size') - else: - cli.log.error(f'Failed to execute avr-size, perhaps corrupt avr-binutils, return code {result.returncode}') - cli.log.error(f'Command: {" ".join(args)}') - return CheckStatus.ERROR - - return CheckStatus.OK + return CheckStatus.OK def _check_avrdude_version(): diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 391353ebbf..5215d3a7ee 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -102,10 +102,10 @@ def userspace_tests(qmk_firmware): qmk_userspace_validate(path) cli.log.info(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_green}}Valid `qmk.json`') except FileNotFoundError: - cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') + cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') except UserspaceValidationError as err: - cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') - cli.log.warning(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') + cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') + cli.log.warn(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') if QMK_USERSPACE is not None: cli.log.info(f'QMK userspace: {{fg_cyan}}{QMK_USERSPACE}') diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py index 7d8b1b066c..bfed91e22c 100644 --- a/lib/python/qmk/cli/find.py +++ b/lib/python/qmk/cli/find.py @@ -1,6 +1,5 @@ """Command to search through all keyboards and keymaps for a given search criteria. """ -import os from milc import cli from qmk.search import filter_help, search_keymap_targets from qmk.util import maybe_exit_config @@ -21,7 +20,6 @@ from qmk.util import maybe_exit_config def find(cli): """Search through all keyboards and keymaps for a given search criteria. """ - os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') maybe_exit_config(should_exit=False, should_reraise=True) targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter) diff --git a/lib/python/qmk/cli/format/c.py b/lib/python/qmk/cli/format/c.py index 65818155b0..a58aef3fbc 100644 --- a/lib/python/qmk/cli/format/c.py +++ b/lib/python/qmk/cli/format/c.py @@ -10,7 +10,7 @@ from qmk.path import normpath from qmk.c_parse import c_source_files c_file_suffixes = ('c', 'h', 'cpp', 'hpp') -core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms', 'modules') +core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms') ignored = ('tmk_core/protocol/usb_hid', 'platforms/chibios/boards') diff --git a/lib/python/qmk/cli/format/json.py b/lib/python/qmk/cli/format/json.py index 61f5254184..3670294434 100755 --- a/lib/python/qmk/cli/format/json.py +++ b/lib/python/qmk/cli/format/json.py @@ -9,7 +9,7 @@ from milc import cli from qmk.info import info_json from qmk.json_schema import json_load, validate -from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder, UserspaceJSONEncoder, CommunityModuleJSONEncoder +from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder, UserspaceJSONEncoder from qmk.path import normpath @@ -30,13 +30,6 @@ def _detect_json_format(file, json_data): except ValidationError: pass - if json_encoder is None: - try: - validate(json_data, 'qmk.community_module.v1') - json_encoder = CommunityModuleJSONEncoder - except ValidationError: - pass - if json_encoder is None: try: validate(json_data, 'qmk.keyboard.v1') @@ -61,8 +54,6 @@ def _get_json_encoder(file, json_data): json_encoder = KeymapJSONEncoder elif cli.args.format == 'userspace': json_encoder = UserspaceJSONEncoder - elif cli.args.format == 'community_module': - json_encoder = CommunityModuleJSONEncoder else: # This should be impossible cli.log.error('Unknown format: %s', cli.args.format) @@ -70,7 +61,7 @@ def _get_json_encoder(file, json_data): @cli.argument('json_file', arg_only=True, type=normpath, help='JSON file to format') -@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap', 'userspace', 'community_module'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)') +@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap', 'userspace'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)') @cli.argument('-i', '--inplace', action='store_true', arg_only=True, help='If set, will operate in-place on the input file') @cli.argument('-p', '--print', action='store_true', arg_only=True, help='If set, will print the formatted json to stdout ') @cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True) diff --git a/lib/python/qmk/cli/format/text.py b/lib/python/qmk/cli/format/text.py index 344631081b..6dd4511896 100644 --- a/lib/python/qmk/cli/format/text.py +++ b/lib/python/qmk/cli/format/text.py @@ -18,7 +18,7 @@ def _get_chunks(it, size): def dos2unix_run(files): """Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything """ - for chunk in _get_chunks([normpath(file).as_posix() for file in files], 10): + for chunk in _get_chunks(files, 10): dos2unix = cli.run(['dos2unix', *chunk]) if dos2unix.returncode: diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py index 7f7c05f6e2..8311818476 100755 --- a/lib/python/qmk/cli/generate/api.py +++ b/lib/python/qmk/cli/generate/api.py @@ -131,11 +131,6 @@ def generate_api(cli): if keymap_rel is None: cli.log.debug('Skipping keymap %s (not in qmk_firmware)', keymap) continue - - if (keymap_rel / 'keymap.c').exists(): - cli.log.debug('Skipping keymap %s (not pure dd keymap)', keymap) - continue - kb_json['keymaps'][keymap.name] = { # TODO: deprecate 'url' as consumer needs to know its potentially hjson 'url': f'https://raw.githubusercontent.com/qmk/qmk_firmware/master/{keymap_rel}/keymap.json', diff --git a/lib/python/qmk/cli/generate/community_modules.py b/lib/python/qmk/cli/generate/community_modules.py deleted file mode 100644 index a5ab61f9bd..0000000000 --- a/lib/python/qmk/cli/generate/community_modules.py +++ /dev/null @@ -1,341 +0,0 @@ -import contextlib -from argcomplete.completers import FilesCompleter -from pathlib import Path - -from milc import cli - -import qmk.path -from qmk.info import get_modules -from qmk.keyboard import keyboard_completer, keyboard_folder -from qmk.commands import dump_lines -from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE -from qmk.community_modules import module_api_list, load_module_jsons, find_module_path - - -@contextlib.contextmanager -def _render_api_guard(lines, api): - if api.guard: - lines.append(f'#if {api.guard}') - yield - if api.guard: - lines.append(f'#endif // {api.guard}') - - -def _render_api_header(api): - lines = [] - if api.header: - lines.append('') - with _render_api_guard(lines, api): - lines.append(f'#include <{api.header}>') - return lines - - -def _render_keycodes(module_jsons): - lines = [] - lines.append('') - lines.append('enum {') - first = True - for module_json in module_jsons: - module_name = Path(module_json['module']).name - keycodes = module_json.get('keycodes', []) - if len(keycodes) > 0: - lines.append(f' // From module: {module_name}') - for keycode in keycodes: - key = keycode.get('key', None) - if first: - lines.append(f' {key} = QK_COMMUNITY_MODULE,') - first = False - else: - lines.append(f' {key},') - for alias in keycode.get('aliases', []): - lines.append(f' {alias} = {key},') - lines.append('') - lines.append(' LAST_COMMUNITY_MODULE_KEY') - lines.append('};') - lines.append('STATIC_ASSERT((int)LAST_COMMUNITY_MODULE_KEY <= (int)(QK_COMMUNITY_MODULE_MAX+1), "Too many community module keycodes");') - return lines - - -def _render_api_declarations(api, module, user_kb=True): - lines = [] - lines.append('') - with _render_api_guard(lines, api): - if user_kb: - lines.append(f'{api.ret_type} {api.name}_{module}_user({api.args});') - lines.append(f'{api.ret_type} {api.name}_{module}_kb({api.args});') - lines.append(f'{api.ret_type} {api.name}_{module}({api.args});') - return lines - - -def _render_api_implementations(api, module): - module_name = Path(module).name - lines = [] - lines.append('') - with _render_api_guard(lines, api): - # _user - lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}_user({api.args}) {{') - if api.ret_type == 'bool': - lines.append(' return true;') - elif api.ret_type in ['layer_state_t', 'report_mouse_t']: - lines.append(f' return {api.call_params};') - else: - pass - lines.append('}') - lines.append('') - - # _kb - lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}_kb({api.args}) {{') - if api.ret_type == 'bool': - lines.append(f' if(!{api.name}_{module_name}_user({api.call_params})) {{ return false; }}') - lines.append(' return true;') - elif api.ret_type in ['layer_state_t', 'report_mouse_t']: - lines.append(f' return {api.name}_{module_name}_user({api.call_params});') - else: - lines.append(f' {api.name}_{module_name}_user({api.call_params});') - lines.append('}') - lines.append('') - - # module (non-suffixed) - lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}({api.args}) {{') - if api.ret_type == 'bool': - lines.append(f' if(!{api.name}_{module_name}_kb({api.call_params})) {{ return false; }}') - lines.append(' return true;') - elif api.ret_type in ['layer_state_t', 'report_mouse_t']: - lines.append(f' return {api.name}_{module_name}_kb({api.call_params});') - else: - lines.append(f' {api.name}_{module_name}_kb({api.call_params});') - lines.append('}') - return lines - - -def _render_core_implementation(api, modules): - lines = [] - lines.append('') - with _render_api_guard(lines, api): - lines.append(f'{api.ret_type} {api.name}_modules({api.args}) {{') - if api.ret_type == 'bool': - lines.append(' return true') - for module in modules: - module_name = Path(module).name - if api.ret_type == 'bool': - lines.append(f' && {api.name}_{module_name}({api.call_params})') - elif api.ret_type in ['layer_state_t', 'report_mouse_t']: - lines.append(f' {api.call_params} = {api.name}_{module_name}({api.call_params});') - else: - lines.append(f' {api.name}_{module_name}({api.call_params});') - if api.ret_type == 'bool': - lines.append(' ;') - elif api.ret_type in ['layer_state_t', 'report_mouse_t']: - lines.append(f' return {api.call_params};') - lines.append('}') - return lines - - -def _generate_features_rules(features_dict): - lines = [] - for feature, enabled in features_dict.items(): - feature = feature.upper() - enabled = 'yes' if enabled else 'no' - lines.append(f'{feature}_ENABLE={enabled}') - return lines - - -def _generate_modules_rules(keyboard, filename): - lines = [] - modules = get_modules(keyboard, filename) - if len(modules) > 0: - lines.append('') - lines.append('OPT_DEFS += -DCOMMUNITY_MODULES_ENABLE=TRUE') - for module in modules: - module_path = qmk.path.unix_style_path(find_module_path(module)) - if not module_path: - raise FileNotFoundError(f"Module '{module}' not found.") - lines.append('') - lines.append(f'COMMUNITY_MODULES += {module_path.name}') # use module_path here instead of module as it may be a subdirectory - lines.append(f'OPT_DEFS += -DCOMMUNITY_MODULE_{module_path.name.upper()}_ENABLE=TRUE') - lines.append(f'COMMUNITY_MODULE_PATHS += {module_path}') - lines.append(f'VPATH += {module_path}') - lines.append(f'SRC += $(wildcard {module_path}/{module_path.name}.c)') - lines.append(f'MODULE_NAME_{module_path.name.upper()} := {module_path.name}') - lines.append(f'MODULE_PATH_{module_path.name.upper()} := {module_path}') - lines.append(f'-include {module_path}/rules.mk') - - module_jsons = load_module_jsons(modules) - for module_json in module_jsons: - if 'features' in module_json: - lines.append('') - lines.append(f'# Module: {module_json["module_name"]}') - lines.extend(_generate_features_rules(module_json['features'])) - return lines - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-e', '--escape', arg_only=True, action='store_true', help="Escape spaces in quiet mode") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate rules.mk for.') -@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') -@cli.subcommand('Creates a community_modules_rules_mk from a keymap.json file.') -def generate_community_modules_rules_mk(cli): - - rules_mk_lines = [GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE] - - rules_mk_lines.extend(_generate_modules_rules(cli.args.keyboard, cli.args.filename)) - - # Show the results - dump_lines(cli.args.output, rules_mk_lines) - - if cli.args.output: - if cli.args.quiet: - if cli.args.escape: - print(cli.args.output.as_posix().replace(' ', '\\ ')) - else: - print(cli.args.output) - else: - cli.log.info('Wrote rules.mk to %s.', cli.args.output) - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.h for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates a community_modules.h from a keymap.json file.') -def generate_community_modules_h(cli): - """Creates a community_modules.h from a keymap.json file - """ - if cli.args.output and cli.args.output.name == '-': - cli.args.output = None - - api_list, api_version, ver_major, ver_minor, ver_patch = module_api_list() - - lines = [ - GPL2_HEADER_C_LIKE, - GENERATED_HEADER_C_LIKE, - '#pragma once', - '#include ', - '#include ', - '#include ', - '', - '#include "compiler_support.h"', - '', - '#define COMMUNITY_MODULES_API_VERSION_BUILDER(ver_major,ver_minor,ver_patch) (((((uint32_t)(ver_major))&0xFF) << 24) | ((((uint32_t)(ver_minor))&0xFF) << 16) | (((uint32_t)(ver_patch))&0xFF))', - f'#define COMMUNITY_MODULES_API_VERSION COMMUNITY_MODULES_API_VERSION_BUILDER({ver_major},{ver_minor},{ver_patch})', - f'#define ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(ver_major,ver_minor,ver_patch) STATIC_ASSERT(COMMUNITY_MODULES_API_VERSION_BUILDER(ver_major,ver_minor,ver_patch) <= COMMUNITY_MODULES_API_VERSION, "Community module requires a newer version of QMK modules API -- needs: " #ver_major "." #ver_minor "." #ver_patch ", current: {api_version}.")', - '', - 'typedef struct keyrecord_t keyrecord_t; // forward declaration so we don\'t need to include quantum.h', - '', - ] - - modules = get_modules(cli.args.keyboard, cli.args.filename) - module_jsons = load_module_jsons(modules) - if len(modules) > 0: - lines.extend(_render_keycodes(module_jsons)) - - for api in api_list: - lines.extend(_render_api_header(api)) - - for module in modules: - lines.append('') - lines.append(f'// From module: {module}') - for api in api_list: - lines.extend(_render_api_declarations(api, Path(module).name)) - lines.append('') - - lines.append('// Core wrapper') - for api in api_list: - lines.extend(_render_api_declarations(api, 'modules', user_kb=False)) - - dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.c for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates a community_modules.c from a keymap.json file.') -def generate_community_modules_c(cli): - """Creates a community_modules.c from a keymap.json file - """ - if cli.args.output and cli.args.output.name == '-': - cli.args.output = None - - api_list, _, _, _, _ = module_api_list() - - lines = [ - GPL2_HEADER_C_LIKE, - GENERATED_HEADER_C_LIKE, - '', - '#include "community_modules.h"', - ] - - modules = get_modules(cli.args.keyboard, cli.args.filename) - if len(modules) > 0: - - for module in modules: - for api in api_list: - lines.extend(_render_api_implementations(api, Path(module).name)) - - for api in api_list: - lines.extend(_render_core_implementation(api, modules)) - - dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) - - -def _generate_include_per_module(cli, include_file_name): - """Generates C code to include "/include_file_name" for each module.""" - if cli.args.output and cli.args.output.name == '-': - cli.args.output = None - - lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE] - - for module in get_modules(cli.args.keyboard, cli.args.filename): - full_path = f'{find_module_path(module)}/{include_file_name}' - lines.append('') - lines.append(f'#if __has_include("{full_path}")') - lines.append(f'#include "{full_path}"') - lines.append(f'#endif // __has_include("{full_path}")') - - dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules_introspection.h for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates a community_modules_introspection.h from a keymap.json file.') -def generate_community_modules_introspection_h(cli): - """Creates a community_modules_introspection.h from a keymap.json file - """ - _generate_include_per_module(cli, 'introspection.h') - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.c for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates a community_modules_introspection.c from a keymap.json file.') -def generate_community_modules_introspection_c(cli): - """Creates a community_modules_introspection.c from a keymap.json file - """ - _generate_include_per_module(cli, 'introspection.c') - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate led_matrix_community_modules.inc for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates an led_matrix_community_modules.inc from a keymap.json file.') -def generate_led_matrix_community_modules_inc(cli): - """Creates an led_matrix_community_modules.inc from a keymap.json file - """ - _generate_include_per_module(cli, 'led_matrix_module.inc') - - -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate rgb_matrix_community_modules.inc for.') -@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') -@cli.subcommand('Creates an rgb_matrix_community_modules.inc from a keymap.json file.') -def generate_rgb_matrix_community_modules_inc(cli): - """Creates an rgb_matrix_community_modules.inc from a keymap.json file - """ - _generate_include_per_module(cli, 'rgb_matrix_module.inc') diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py old mode 100644 new mode 100755 index 339b53c2c2..b9c716bf0c --- a/lib/python/qmk/cli/generate/compilation_database.py +++ b/lib/python/qmk/cli/generate/compilation_database.py @@ -1,9 +1,169 @@ -from milc import cli +"""Creates a compilation database for the given keyboard build. +""" + +import json +import os +import re +import shlex +import shutil +from functools import lru_cache +from pathlib import Path +from typing import Dict, Iterator, List, Union + +from milc import cli, MILC + +from qmk.commands import find_make +from qmk.constants import QMK_FIRMWARE +from qmk.decorators import automagic_keyboard, automagic_keymap +from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.keymap import keymap_completer +from qmk.build_targets import KeyboardKeymapBuildTarget -@cli.argument('-kb', '--keyboard', help='[unused] The keyboard\'s name') -@cli.argument('-km', '--keymap', help='[unused] The keymap\'s name') -@cli.subcommand('[deprecated] Create a compilation database.') -def generate_compilation_database(cli): - cli.log.error('This command is deprecated and has effectively been removed. Please use the `--compiledb` flag with `qmk compile` instead.') - return False +@lru_cache(maxsize=10) +def system_libs(binary: str) -> List[Path]: + """Find the system include directory that the given build tool uses. + """ + cli.log.debug("searching for system library directory for binary: %s", binary) + + # Actually query xxxxxx-gcc to find its include paths. + if binary.endswith("gcc") or binary.endswith("g++"): + # (TODO): Remove 'stdin' once 'input' no longer causes issues under MSYS + result = cli.run([binary, '-E', '-Wp,-v', '-'], capture_output=True, check=True, stdin=None, input='\n') + paths = [] + for line in result.stderr.splitlines(): + if line.startswith(" "): + paths.append(Path(line.strip()).resolve()) + return paths + + return list(Path(binary).resolve().parent.parent.glob("*/include")) if binary else [] + + +@lru_cache(maxsize=10) +def cpu_defines(binary: str, compiler_args: str) -> List[str]: + cli.log.debug("gathering definitions for compilation: %s %s", binary, compiler_args) + if binary.endswith("gcc") or binary.endswith("g++"): + invocation = [binary, '-dM', '-E'] + if binary.endswith("gcc"): + invocation.extend(['-x', 'c']) + elif binary.endswith("g++"): + invocation.extend(['-x', 'c++']) + compiler_args = shlex.split(compiler_args) + invocation.extend(compiler_args) + invocation.append('-') + result = cli.run(invocation, capture_output=True, check=True, stdin=None, input='\n') + define_args = [] + for line in result.stdout.splitlines(): + line_args = line.split(' ', 2) + if len(line_args) == 3 and line_args[0] == '#define': + define_args.append(f'-D{line_args[1]}={line_args[2]}') + elif len(line_args) == 2 and line_args[0] == '#define': + define_args.append(f'-D{line_args[1]}') + return list(sorted(set(define_args))) + return [] + + +file_re = re.compile(r'printf "Compiling: ([^"]+)') +cmd_re = re.compile(r'LOG=\$\((.+?)&&') + + +def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: + """parse the output of `make -n ` + + This function makes many assumptions about the format of your build log. + This happens to work right now for qmk. + """ + + state = 'start' + this_file = None + records = [] + for line in f: + if state == 'start': + m = file_re.search(line) + if m: + this_file = m.group(1) + state = 'cmd' + + if state == 'cmd': + assert this_file + m = cmd_re.search(line) + if m: + # we have a hit! + this_cmd = m.group(1) + args = shlex.split(this_cmd) + binary = shutil.which(args[0]) + compiler_args = set(filter(lambda x: x.startswith('-m') or x.startswith('-f'), args)) + for s in system_libs(binary): + args += ['-isystem', '%s' % s] + args.extend(cpu_defines(binary, ' '.join(shlex.quote(s) for s in compiler_args))) + new_cmd = ' '.join(shlex.quote(s) for s in args) + records.append({"directory": str(QMK_FIRMWARE.resolve()), "command": new_cmd, "file": this_file}) + state = 'start' + + return records + + +def write_compilation_database(keyboard: str = None, keymap: str = None, output_path: Path = QMK_FIRMWARE / 'compile_commands.json', skip_clean: bool = False, command: List[str] = None, **env_vars) -> bool: + # Generate the make command for a specific keyboard/keymap. + if not command: + from qmk.build_targets import KeyboardKeymapBuildTarget # Lazy load due to circular references + target = KeyboardKeymapBuildTarget(keyboard, keymap) + command = target.compile_command(dry_run=True, **env_vars) + + if not command: + cli.log.error('You must supply both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') + cli.echo('usage: qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP]') + return False + + # remove any environment variable overrides which could trip us up + env = os.environ.copy() + env.pop("MAKEFLAGS", None) + + # re-use same executable as the main make invocation (might be gmake) + if not skip_clean: + clean_command = [find_make(), "clean"] + cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command)) + cli.run(clean_command, capture_output=False, check=True, env=env) + + cli.log.info('Gathering build instructions from {fg_cyan}%s', ' '.join(command)) + + result = cli.run(command, capture_output=True, check=True, env=env) + db = parse_make_n(result.stdout.splitlines()) + if not db: + cli.log.error("Failed to parse output from make output:\n%s", result.stdout) + return False + + cli.log.info("Found %s compile commands", len(db)) + + cli.log.info(f"Writing build database to {output_path}") + output_path.write_text(json.dumps(db, indent=4)) + + return True + + +@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard\'s name') +@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap\'s name') +@cli.subcommand('Create a compilation database.') +@automagic_keyboard +@automagic_keymap +def generate_compilation_database(cli: MILC) -> Union[bool, int]: + """Creates a compilation database for the given keyboard build. + + Does a make clean, then a make -n for this target and uses the dry-run output to create + a compilation database (compile_commands.json). This file can help some IDEs and + IDE-like editors work better. For more information about this: + + https://clang.llvm.org/docs/JSONCompilationDatabase.html + """ + # check both config domains: the magic decorator fills in `generate_compilation_database` but the user is + # more likely to have set `compile` in their config file. + current_keyboard = cli.config.generate_compilation_database.keyboard or cli.config.user.keyboard + current_keymap = cli.config.generate_compilation_database.keymap or cli.config.user.keymap + + if not current_keyboard: + cli.log.error('Could not determine keyboard!') + elif not current_keymap: + cli.log.error('Could not determine keymap!') + + target = KeyboardKeymapBuildTarget(current_keyboard, current_keymap) + return target.generate_compilation_database() diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index d6d0299291..d613f7b92c 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -72,6 +72,19 @@ def generate_matrix_size(kb_info_json, config_h_lines): config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows'])) +def generate_matrix_masked(kb_info_json, config_h_lines): + """"Enable matrix mask if required""" + mask_required = False + + if 'matrix_grid' in kb_info_json.get('dip_switch', {}): + mask_required = True + if 'matrix_grid' in kb_info_json.get('split', {}).get('handedness', {}): + mask_required = True + + if mask_required: + config_h_lines.append(generate_define('MATRIX_MASKED')) + + def generate_config_items(kb_info_json, config_h_lines): """Iterate through the info_config map to generate basic config values. """ @@ -189,6 +202,8 @@ def generate_config_h(cli): generate_matrix_size(kb_info_json, config_h_lines) + generate_matrix_masked(kb_info_json, config_h_lines) + if 'matrix_pins' in kb_info_json: config_h_lines.append(matrix_pins(kb_info_json['matrix_pins'])) diff --git a/lib/python/qmk/cli/generate/docs.py b/lib/python/qmk/cli/generate/docs.py index 7abeca9d2a..5821d43b86 100644 --- a/lib/python/qmk/cli/generate/docs.py +++ b/lib/python/qmk/cli/generate/docs.py @@ -27,8 +27,10 @@ def generate_docs(cli): return False cli.log.info('Building vitepress docs') - run_docs_command('run', ['docs:build']) + run_docs_command('run', 'docs:build') cli.log.info('Successfully generated docs to %s.', BUILD_DOCS_PATH) if cli.args.serve: - run_docs_command('run', ['docs:preview']) + if not cli.config.general.verbose: + cli.log.info('Serving docs at http://localhost:4173/ (Ctrl+C to stop)') + run_docs_command('run', 'docs:preview') diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py index 1978de4a22..228b320942 100755 --- a/lib/python/qmk/cli/generate/keyboard_c.py +++ b/lib/python/qmk/cli/generate/keyboard_c.py @@ -1,9 +1,5 @@ """Used by the make system to generate keyboard.c from info.json. """ -import bisect -import dataclasses -from typing import Optional - from milc import cli from qmk.info import info_json @@ -91,7 +87,6 @@ def _gen_matrix_mask(info_data): lines.append(f' 0b{"".join(reversed(mask[i]))},') lines.append('};') lines.append('#endif') - lines.append('') return lines @@ -127,128 +122,6 @@ def _gen_joystick_axes(info_data): lines.append('};') lines.append('#endif') - lines.append('') - - return lines - - -@dataclasses.dataclass -class LayoutKey: - """Geometric info for one key in a layout.""" - row: int - col: int - x: float - y: float - w: float = 1.0 - h: float = 1.0 - hand: Optional[str] = None - - @staticmethod - def from_json(key_json): - row, col = key_json['matrix'] - return LayoutKey( - row=row, - col=col, - x=key_json['x'], - y=key_json['y'], - w=key_json.get('w', 1.0), - h=key_json.get('h', 1.0), - hand=key_json.get('hand', None), - ) - - @property - def cx(self): - """Center x coordinate of the key.""" - return self.x + self.w / 2.0 - - @property - def cy(self): - """Center y coordinate of the key.""" - return self.y + self.h / 2.0 - - -class Layout: - """Geometric info of a layout.""" - def __init__(self, layout_json): - self.keys = [LayoutKey.from_json(key_json) for key_json in layout_json['layout']] - self.x_min = min(key.cx for key in self.keys) - self.x_max = max(key.cx for key in self.keys) - self.x_mid = (self.x_min + self.x_max) / 2 - # If there is one key with width >= 6u, it is probably the spacebar. - i = [i for i, key in enumerate(self.keys) if key.w >= 6.0] - self.spacebar = self.keys[i[0]] if len(i) == 1 else None - - def is_symmetric(self, tol: float = 0.02): - """Whether the key positions are symmetric about x_mid.""" - x = sorted([key.cx for key in self.keys]) - for i in range(len(x)): - x_i_mirrored = 2.0 * self.x_mid - x[i] - # Find leftmost x element greater than or equal to (x_i_mirrored - tol). - j = bisect.bisect_left(x, x_i_mirrored - tol) - if j == len(x) or abs(x[j] - x_i_mirrored) > tol: - return False - - return True - - def widest_horizontal_gap(self): - """Finds the x midpoint of the widest horizontal gap between keys.""" - x = sorted([key.cx for key in self.keys]) - x_mid = self.x_mid - max_sep = 0 - for i in range(len(x) - 1): - sep = x[i + 1] - x[i] - if sep > max_sep: - max_sep = sep - x_mid = (x[i + 1] + x[i]) / 2 - - return x_mid - - -def _gen_chordal_hold_layout(info_data): - """Convert info.json content to chordal_hold_layout - """ - # NOTE: If there are multiple layouts, only the first is read. - for layout_name, layout_json in info_data['layouts'].items(): - layout = Layout(layout_json) - break - - if layout.is_symmetric(): - # If the layout is symmetric (e.g. most split keyboards), guess the - # handedness based on the sign of (x - layout.x_mid). - hand_signs = [key.x - layout.x_mid for key in layout.keys] - elif layout.spacebar is not None: - # If the layout has a spacebar, form a dividing line through the spacebar, - # nearly vertical but with a slight angle to follow typical row stagger. - x0 = layout.spacebar.cx - 0.05 - y0 = layout.spacebar.cy - 1.0 - hand_signs = [(key.x - x0) - (key.y - y0) / 3.0 for key in layout.keys] - else: - # Fallback: assume handedness based on the widest horizontal separation. - x_mid = layout.widest_horizontal_gap() - hand_signs = [key.x - x_mid for key in layout.keys] - - for key, hand_sign in zip(layout.keys, hand_signs): - if key.hand is None: - if key == layout.spacebar or abs(hand_sign) <= 0.02: - key.hand = '*' - else: - key.hand = 'L' if hand_sign < 0.0 else 'R' - - lines = [] - lines.append('#ifdef CHORDAL_HOLD') - line = ('__attribute__((weak)) const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = ' + layout_name + '(') - - x_prev = None - for key in layout.keys: - if x_prev is None or key.x < x_prev: - lines.append(line) - line = ' ' - line += f"'{key.hand}', " - x_prev = key.x - - lines.append(line[:-2]) - lines.append(');') - lines.append('#endif') return lines @@ -263,12 +136,11 @@ def generate_keyboard_c(cli): kb_info_json = info_json(cli.args.keyboard) # Build the layouts.h file. - keyboard_c_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', ''] + keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', ''] - keyboard_c_lines.extend(_gen_led_configs(kb_info_json)) - keyboard_c_lines.extend(_gen_matrix_mask(kb_info_json)) - keyboard_c_lines.extend(_gen_joystick_axes(kb_info_json)) - keyboard_c_lines.extend(_gen_chordal_hold_layout(kb_info_json)) + keyboard_h_lines.extend(_gen_led_configs(kb_info_json)) + keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json)) + keyboard_h_lines.extend(_gen_joystick_axes(kb_info_json)) # Show the results - dump_lines(cli.args.output, keyboard_c_lines, cli.args.quiet) + dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py index cb9528d96b..5863a0983a 100755 --- a/lib/python/qmk/cli/generate/keyboard_h.py +++ b/lib/python/qmk/cli/generate/keyboard_h.py @@ -22,11 +22,6 @@ def _generate_layouts(keyboard, kb_info_json): row_num = kb_info_json['matrix_size']['rows'] lines = [] - lines.append('') - lines.append('// Layout content') - lines.append('') - lines.append('#define XXX KC_NO') - for layout_name, layout_data in kb_info_json['layouts'].items(): if layout_data['c_macro']: continue @@ -36,7 +31,7 @@ def _generate_layouts(keyboard, kb_info_json): continue layout_keys = [] - layout_matrix = [['XXX'] * col_num for _ in range(row_num)] + layout_matrix = [['KC_NO'] * col_num for _ in range(row_num)] for key_data in layout_data['layout']: row, col = key_data['matrix'] @@ -51,7 +46,7 @@ def _generate_layouts(keyboard, kb_info_json): lines.append('') lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\') - rows = ', \\\n'.join([' { ' + ', '.join(row) + ' }' for row in layout_matrix]) + rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) rows += ' \\' lines.append(rows) lines.append('}') @@ -72,9 +67,6 @@ def _generate_keycodes(kb_info_json): return [] lines = [] - lines.append('') - lines.append('// Keycode content') - lines.append('') lines.append('enum keyboard_keycodes {') for index, item in enumerate(kb_info_json.get('keycodes')): @@ -111,14 +103,17 @@ def generate_keyboard_h(cli): valid_config = dd_layouts or keyboard_h # Build the layouts.h file. - keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '', '#include "quantum.h"'] + keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"'] + keyboard_h_lines.append('') + keyboard_h_lines.append('// Layout content') if dd_layouts: keyboard_h_lines.extend(dd_layouts) - if keyboard_h: keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"') + keyboard_h_lines.append('') + keyboard_h_lines.append('// Keycode content') if dd_keycodes: keyboard_h_lines.extend(dd_keycodes) diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py index d686935fa8..719fced5d5 100644 --- a/lib/python/qmk/cli/generate/keycodes.py +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -125,20 +125,6 @@ def _generate_aliases(lines, keycodes): lines.append(f'#define {alias} {value.get("key")}') -def _generate_version(lines, keycodes, prefix=''): - version = keycodes['version'] - major, minor, patch = map(int, version.split('.')) - - bcd = f'0x{major:02d}{minor:02d}{patch:04d}' - - lines.append('') - lines.append(f'#define QMK_{prefix}KEYCODES_VERSION "{version}"') - lines.append(f'#define QMK_{prefix}KEYCODES_VERSION_BCD {bcd}') - lines.append(f'#define QMK_{prefix}KEYCODES_VERSION_MAJOR {major}') - lines.append(f'#define QMK_{prefix}KEYCODES_VERSION_MINOR {minor}') - lines.append(f'#define QMK_{prefix}KEYCODES_VERSION_PATCH {patch}') - - @cli.argument('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @@ -152,7 +138,6 @@ def generate_keycodes(cli): keycodes = load_spec(cli.args.version) - _generate_version(keycodes_h_lines, keycodes) _generate_ranges(keycodes_h_lines, keycodes) _generate_defines(keycodes_h_lines, keycodes) _generate_helpers(keycodes_h_lines, keycodes) @@ -175,7 +160,6 @@ def generate_keycode_extras(cli): keycodes = load_spec(cli.args.version, cli.args.lang) - _generate_version(keycodes_h_lines, keycodes, f'{cli.args.lang.upper()}_') _generate_aliases(keycodes_h_lines, keycodes) # Show the results diff --git a/lib/python/qmk/cli/generate/keycodes_tests.py b/lib/python/qmk/cli/generate/keycodes_tests.py new file mode 100644 index 0000000000..453b4693a7 --- /dev/null +++ b/lib/python/qmk/cli/generate/keycodes_tests.py @@ -0,0 +1,39 @@ +"""Used by the make system to generate a keycode lookup table from keycodes_{version}.json +""" +from milc import cli + +from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.commands import dump_lines +from qmk.path import normpath +from qmk.keycodes import load_spec + + +def _generate_defines(lines, keycodes): + lines.append('') + lines.append('std::map KEYCODE_ID_TABLE = {') + for key, value in keycodes["keycodes"].items(): + lines.append(f' {{{value.get("key")}, "{value.get("key")}"}},') + lines.append('};') + + +@cli.argument('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.') +@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.subcommand('Used by the make system to generate a keycode lookup table from keycodes_{version}.json', hidden=True) +def generate_keycodes_tests(cli): + """Generates a keycode to identifier lookup table for unit test output. + """ + + # Build the keycodes.h file. + keycodes_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '// clang-format off'] + keycodes_h_lines.append('extern "C" {\n#include \n}') + keycodes_h_lines.append('#include ') + keycodes_h_lines.append('#include ') + keycodes_h_lines.append('#include ') + + keycodes = load_spec(cli.args.version) + + _generate_defines(keycodes_h_lines, keycodes) + + # Show the results + dump_lines(cli.args.output, keycodes_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/cli/generate/make_dependencies.py b/lib/python/qmk/cli/generate/make_dependencies.py index 9548187888..331132a20f 100755 --- a/lib/python/qmk/cli/generate/make_dependencies.py +++ b/lib/python/qmk/cli/generate/make_dependencies.py @@ -8,7 +8,7 @@ from argcomplete.completers import FilesCompleter from qmk.commands import dump_lines from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.keymap import keymap_completer, locate_keymap -from qmk.path import normpath, FileType, unix_style_path +from qmk.path import normpath, FileType @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON.') @@ -53,4 +53,4 @@ def generate_make_dependencies(cli): for file in interesting_files: check_files.append(Path('users') / cli.args.keymap / file) - dump_lines(cli.args.output, [f'generated-files: $(wildcard {unix_style_path(found)})\n' for found in check_files]) + dump_lines(cli.args.output, [f'generated-files: $(wildcard {found})\n' for found in check_files]) diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 358a22fd1d..5291556109 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -46,15 +46,6 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): return generate_rule(rules_key, rules_value) -def generate_features_rules(features_dict): - lines = [] - for feature, enabled in features_dict.items(): - feature = feature.upper() - enabled = 'yes' if enabled else 'no' - lines.append(generate_rule(f'{feature}_ENABLE', enabled)) - return lines - - @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @@ -89,7 +80,10 @@ def generate_rules_mk(cli): # Iterate through features to enable/disable them if 'features' in kb_info_json: - rules_mk_lines.extend(generate_features_rules(kb_info_json['features'])) + for feature, enabled in kb_info_json['features'].items(): + feature = feature.upper() + enabled = 'yes' if enabled else 'no' + rules_mk_lines.append(generate_rule(f'{feature}_ENABLE', enabled)) # Set SPLIT_TRANSPORT, if needed if kb_info_json.get('split', {}).get('transport', {}).get('protocol') == 'custom': diff --git a/lib/python/qmk/cli/import/kbfirmware.py b/lib/python/qmk/cli/import/kbfirmware.py index feccb3cfcc..9c03737378 100644 --- a/lib/python/qmk/cli/import/kbfirmware.py +++ b/lib/python/qmk/cli/import/kbfirmware.py @@ -15,7 +15,7 @@ def import_kbfirmware(cli): cli.log.info(f'{{style_bright}}Importing {filename.name}.{{style_normal}}') cli.echo('') - cli.log.warning("Support here is basic - Consider using 'qmk new-keyboard' instead") + cli.log.warn("Support here is basic - Consider using 'qmk new-keyboard' instead") kb_name = _import_kbfirmware(data) diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index 26f7f0269d..e662407474 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -52,11 +52,6 @@ def show_keymap(kb_info_json, title_caps=True): if keymap_path and keymap_path.suffix == '.json': keymap_data = json.load(keymap_path.open(encoding='utf-8')) - - # cater for layout-less keymap.json - if 'layout' not in keymap_data: - return - layout_name = keymap_data['layout'] layout_name = kb_info_json.get('layout_aliases', {}).get(layout_name, layout_name) # Resolve alias names @@ -102,48 +97,6 @@ def show_matrix(kb_info_json, title_caps=True): print(render_layout(kb_info_json['layouts'][layout_name]['layout'], cli.config.info.ascii, labels)) -def show_leds(kb_info_json, title_caps=True): - """Render LED indices per key, using the keyboard's key layout geometry. - - We build a map from (row, col) -> LED index using rgb_matrix/led_matrix layout, - then label each key with its LED index. Keys without an associated LED are left blank. - """ - # Prefer rgb_matrix, fall back to led_matrix - led_feature = None - for feature in ['rgb_matrix', 'led_matrix']: - if 'layout' in kb_info_json.get(feature, {}): - led_feature = feature - break - - if not led_feature: - cli.echo('{fg_yellow}No rgb_matrix/led_matrix layout found to derive LED indices.{fg_reset}') - return - - # Build mapping from matrix position -> LED indices for faster lookup later - by_matrix = {} - for idx, led in enumerate(kb_info_json[led_feature]['layout']): - if 'matrix' in led: - led_key = tuple(led.get('matrix')) - by_matrix[led_key] = idx - - # For each keyboard layout (e.g., LAYOUT), render keys labeled with LED index (or blank) - for layout_name, layout in kb_info_json['layouts'].items(): - labels = [] - for key in layout['layout']: - led_key = tuple(key.get('matrix')) - label = str(by_matrix[led_key]) if led_key in by_matrix else '' - - labels.append(label) - - # Header - if title_caps: - cli.echo('{fg_blue}LED indices for "%s"{fg_reset}:', layout_name) - else: - cli.echo('{fg_blue}leds_%s{fg_reset}:', layout_name) - - print(render_layout(kb_info_json['layouts'][layout_name]['layout'], cli.config.info.ascii, labels)) - - def print_friendly_output(kb_info_json): """Print the info.json in a friendly text format. """ @@ -211,7 +164,6 @@ def print_parsed_rules_mk(keyboard_name): @cli.argument('-km', '--keymap', help='Keymap to show info for (Optional).') @cli.argument('-l', '--layouts', action='store_true', help='Render the layouts.') @cli.argument('-m', '--matrix', action='store_true', help='Render the layouts with matrix information.') -@cli.argument('-L', '--leds', action='store_true', help='Render the LED layout with LED indices (rgb_matrix/led_matrix).') @cli.argument('-f', '--format', default='friendly', arg_only=True, help='Format to display the data in (friendly, text, json) (Default: friendly).') @cli.argument('--ascii', action='store_true', default=not UNICODE_SUPPORT, help='Render layout box drawings in ASCII only.') @cli.argument('-r', '--rules-mk', action='store_true', help='Render the parsed values of the keyboard\'s rules.mk file.') @@ -270,8 +222,5 @@ def info(cli): if cli.config.info.matrix: show_matrix(kb_info_json, title_caps) - if cli.config.info.leds: - show_leds(kb_info_json, title_caps) - if cli.config.info.keymap: show_keymap(kb_info_json, title_caps) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 484ddb5bd9..ba0c3f274c 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -1,6 +1,5 @@ """Command to look over a keyboard/keymap and check for common mistakes. """ -from dotty_dict import dotty from pathlib import Path from milc import cli @@ -11,88 +10,34 @@ from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyb from qmk.keymap import locate_keymap, list_keymaps from qmk.path import keyboard from qmk.git import git_get_ignored_files -from qmk.c_parse import c_source_files, preprocess_c_file -from qmk.json_schema import json_load +from qmk.c_parse import c_source_files CHIBIOS_CONF_CHECKS = ['chconf.h', 'halconf.h', 'mcuconf.h', 'board.h'] INVALID_KB_FEATURES = set(['encoder_map', 'dip_switch_map', 'combo', 'tap_dance', 'via']) -INVALID_KM_NAMES = ['via', 'vial'] def _list_defaultish_keymaps(kb): """Return default like keymaps for a given keyboard """ - defaultish = ['ansi', 'iso'] + defaultish = ['ansi', 'iso', 'via'] # This is only here to flag it as "testable", so it doesn't fly under the radar during PR - defaultish.extend(INVALID_KM_NAMES) + defaultish.append('vial') keymaps = set() - for x in list_keymaps(kb, include_userspace=False): + for x in list_keymaps(kb): if x in defaultish or x.startswith('default'): keymaps.add(x) return keymaps -def _get_readme_files(kb, km=None): - """Return potential keyboard/keymap readme files - """ - search_path = locate_keymap(kb, km).parent if km else keyboard(kb) - - readme_files = [] - - if not km: - current_path = Path(search_path.parts[0]) - for path_part in search_path.parts[1:]: - current_path = current_path / path_part - readme_files.extend(current_path.glob('*readme.md')) - - for file in search_path.glob("**/*readme.md"): - # Ignore keymaps when only globing keyboard files - if not km and 'keymaps' in file.parts: - continue - readme_files.append(file) - - return set(readme_files) - - -def _get_build_files(kb, km=None): - """Return potential keyboard/keymap build files - """ - search_path = locate_keymap(kb, km).parent if km else keyboard(kb) - - build_files = [] - - if not km: - current_path = Path() - for path_part in search_path.parts: - current_path = current_path / path_part - build_files.extend(current_path.glob('*rules.mk')) - - for file in search_path.glob("**/*rules.mk"): - # Ignore keymaps when only globing keyboard files - if not km and 'keymaps' in file.parts: - continue - build_files.append(file) - - return set(build_files) - - def _get_code_files(kb, km=None): """Return potential keyboard/keymap code files """ search_path = locate_keymap(kb, km).parent if km else keyboard(kb) code_files = [] - - if not km: - current_path = Path() - for path_part in search_path.parts: - current_path = current_path / path_part - code_files.extend(current_path.glob('*.h')) - code_files.extend(current_path.glob('*.c')) - for file in c_source_files([search_path]): # Ignore keymaps when only globing keyboard files if not km and 'keymaps' in file.parts: @@ -102,43 +47,6 @@ def _get_code_files(kb, km=None): return code_files -def _is_invalid_readme(file): - """Check if file contains any unfilled content - """ - tokens = [ - '%KEYBOARD%', - '%REAL_NAME%', - '%USER_NAME%', - 'image replace me!', - 'A short description of the keyboard/project', - 'The PCBs, controllers supported', - 'Links to where you can find this hardware', - ] - - for line in file.read_text(encoding='utf-8').split("\n"): - if any(token in line for token in tokens): - return True - return False - - -def _is_empty_rules(file): - """Check if file contains any useful content - """ - for line in file.read_text(encoding='utf-8').split("\n"): - if len(line) > 0 and not line.isspace() and not line.startswith('#'): - return False - return True - - -def _is_empty_include(file): - """Check if file contains any useful content - """ - for line in preprocess_c_file(file).split("\n"): - if len(line) > 0 and not line.isspace() and not line.startswith('#pragma once'): - return False - return True - - def _has_license(file): """Check file has a license header """ @@ -173,14 +81,6 @@ def _handle_invalid_features(kb, info): return ok -def _handle_invalid_config(kb, info): - """Check for invalid keyboard level config - """ - if info.get('url') == "": - cli.log.warning(f'{kb}: Invalid keyboard level config detected - Optional field "url" should not be empty.') - return True - - def _chibios_conf_includenext_check(target): """Check the ChibiOS conf.h for the correct inclusion of the next conf.h """ @@ -190,58 +90,41 @@ def _chibios_conf_includenext_check(target): return None -def _rules_mk_assignment_only(rules_mk): +def _rules_mk_assignment_only(kb): """Check the keyboard-level rules.mk to ensure it only has assignments. """ + keyboard_path = keyboard(kb) + current_path = Path() errors = [] - continuation = None - for i, line in enumerate(rules_mk.open()): - line = line.strip() - if '#' in line: - line = line[:line.index('#')] + for path_part in keyboard_path.parts: + current_path = current_path / path_part + rules_mk = current_path / 'rules.mk' - if continuation: - line = continuation + line + if rules_mk.exists(): continuation = None - if line: - if line[-1] == '\\': - continuation = line[:-1] - continue + for i, line in enumerate(rules_mk.open()): + line = line.strip() - if line and '=' not in line: - errors.append(f'Non-assignment code on line +{i} {rules_mk}: {line}') + if '#' in line: + line = line[:line.index('#')] + + if continuation: + line = continuation + line + continuation = None + + if line: + if line[-1] == '\\': + continuation = line[:-1] + continue + + if line and '=' not in line: + errors.append(f'Non-assignment code on line +{i} {rules_mk}: {line}') return errors -def _handle_duplicating_code_defaults(kb, info): - def _collect_dotted_output(kb_info_json, prefix=''): - """Print the info.json in a plain text format with dot-joined keys. - """ - for key in sorted(kb_info_json): - new_prefix = f'{prefix}.{key}' if prefix else key - - if isinstance(kb_info_json[key], dict): - yield from _collect_dotted_output(kb_info_json[key], new_prefix) - elif isinstance(kb_info_json[key], list): - # TODO: handle non primitives? - yield (new_prefix, kb_info_json[key]) - else: - yield (new_prefix, kb_info_json[key]) - - defaults_map = json_load(Path('data/mappings/info_defaults.hjson')) - dotty_info = dotty(info) - - for key, v_default in _collect_dotted_output(defaults_map): - v_info = dotty_info.get(key) - if v_default == v_info: - cli.log.warning(f'{kb}: Option "{key}" duplicates default value of "{v_default}"') - - return True - - def keymap_check(kb, km): """Perform the keymap level checks. """ @@ -253,11 +136,6 @@ def keymap_check(kb, km): cli.log.error("%s: Can't find %s keymap.", kb, km) return ok - if km in INVALID_KM_NAMES: - ok = False - cli.log.error("%s: The keymap %s should not exist!", kb, km) - return ok - # Additional checks invalid_files = git_get_ignored_files(keymap_path.parent.as_posix()) for file in invalid_files: @@ -278,7 +156,7 @@ def keymap_check(kb, km): return ok -def keyboard_check(kb): # noqa C901 +def keyboard_check(kb): """Perform the keyboard level checks. """ ok = True @@ -291,11 +169,12 @@ def keyboard_check(kb): # noqa C901 if not _handle_invalid_features(kb, kb_info): ok = False - if not _handle_invalid_config(kb, kb_info): - ok = False - - if not _handle_duplicating_code_defaults(kb, kb_info): + rules_mk_assignment_errors = _rules_mk_assignment_only(kb) + if rules_mk_assignment_errors: ok = False + cli.log.error('%s: Non-assignment code found in rules.mk. Move it to post_rules.mk instead.', kb) + for assignment_error in rules_mk_assignment_errors: + cli.log.error(assignment_error) invalid_files = git_get_ignored_files(f'keyboards/{kb}/') for file in invalid_files: @@ -304,34 +183,11 @@ def keyboard_check(kb): # noqa C901 cli.log.error(f'{kb}: The file "{file}" should not exist!') ok = False - for file in _get_readme_files(kb): - if _is_invalid_readme(file): - cli.log.error(f'{kb}: The file "{file}" still contains template tokens!') - ok = False - - for file in _get_build_files(kb): - if _is_empty_rules(file): - cli.log.error(f'{kb}: The file "{file}" is effectively empty and should be removed!') - ok = False - - if file.suffix in ['rules.mk']: - rules_mk_assignment_errors = _rules_mk_assignment_only(file) - if rules_mk_assignment_errors: - ok = False - cli.log.error('%s: Non-assignment code found in rules.mk. Move it to post_rules.mk instead.', kb) - for assignment_error in rules_mk_assignment_errors: - cli.log.error(assignment_error) - for file in _get_code_files(kb): if not _has_license(file): cli.log.error(f'{kb}: The file "{file}" does not have a license header!') ok = False - if file.name in ['config.h']: - if _is_empty_include(file): - cli.log.error(f'{kb}: The file "{file}" is effectively empty and should be removed!') - ok = False - if file.name in CHIBIOS_CONF_CHECKS: check_error = _chibios_conf_includenext_check(file) if check_error is not None: @@ -359,10 +215,10 @@ def lint(cli): if isinstance(cli.config.lint.keyboard, str): # if provided via config - string not array keyboard_list = [cli.config.lint.keyboard] - elif any(is_all_keyboards(kb) for kb in cli.args.keyboard): + elif is_all_keyboards(cli.args.keyboard[0]): keyboard_list = list_keyboards() else: - keyboard_list = list(set(cli.config.lint.keyboard)) + keyboard_list = cli.config.lint.keyboard failed = [] diff --git a/lib/python/qmk/cli/list/keyboards.py b/lib/python/qmk/cli/list/keyboards.py index 8b6c451673..405b9210e4 100644 --- a/lib/python/qmk/cli/list/keyboards.py +++ b/lib/python/qmk/cli/list/keyboards.py @@ -5,9 +5,10 @@ from milc import cli import qmk.keyboard +@cli.argument('--no-resolve-defaults', arg_only=True, action='store_false', help='Ignore any "DEFAULT_FOLDER" within keyboards rules.mk') @cli.subcommand("List the keyboards currently defined within QMK") def list_keyboards(cli): """List the keyboards currently defined within QMK """ - for keyboard_name in qmk.keyboard.list_keyboards(): + for keyboard_name in qmk.keyboard.list_keyboards(cli.args.no_resolve_defaults): print(keyboard_name) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index e71280f482..cf9be0fd1e 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -16,12 +16,10 @@ from qmk.build_targets import BuildTarget, JsonKeymapBuildTarget from qmk.util import maybe_exit_config -def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, no_temp: bool, parallel: int, print_failures: bool, **env): +def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, no_temp: bool, parallel: int, **env): if len(targets) == 0: return - os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') - make_cmd = find_make() builddir = Path(QMK_FIRMWARE) / '.build' makefile = builddir / 'parallel_kb_builds.mk' @@ -37,30 +35,6 @@ def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, builddir.mkdir(parents=True, exist_ok=True) with open(makefile, "w") as f: - # yapf: disable - f.write( - f"""\ -# This file is auto-generated by qmk mass-compile -# Do not edit this file directly. -all: print_failures -.PHONY: all_targets print_failures -print_failures: all_targets -"""# noqa - ) - if print_failures: - f.write( - f"""\ - @for f in $$(ls .build/failed.log.{os.getpid()}.* 2>/dev/null | sort); do \\ - echo; \\ - echo "======================================================================================"; \\ - echo "Failed build log: $$f"; \\ - echo "------------------------------------------------------"; \\ - cat $$f; \\ - echo "------------------------------------------------------"; \\ - done -"""# noqa - ) - # yapf: enable for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)): keyboard_name = target.keyboard keymap_name = target.keymap @@ -82,7 +56,7 @@ print_failures: all_targets f.write( f"""\ .PHONY: {target_filename}{target_suffix}_binary -all_targets: {target_filename}{target_suffix}_binary +all: {target_filename}{target_suffix}_binary {target_filename}{target_suffix}_binary: @rm -f "{build_log}" || true @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" @@ -122,7 +96,6 @@ all_targets: {target_filename}{target_suffix}_binary @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") @cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the commands to be run.") -@cli.argument('-p', '--print-failures', arg_only=True, action='store_true', help="Print failed builds.") @cli.argument( '-f', '--filter', @@ -148,4 +121,4 @@ def mass_compile(cli): else: targets = search_keymap_targets([('all', cli.config.mass_compile.keymap)], cli.args.filter) - return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.args.no_temp, cli.config.mass_compile.parallel, cli.args.print_failures, **build_environment(cli.args.env)) + return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.args.no_temp, cli.config.mass_compile.parallel, **build_environment(cli.args.env)) diff --git a/lib/python/qmk/cli/migrate.py b/lib/python/qmk/cli/migrate.py index d0f195d737..0bab5c1949 100644 --- a/lib/python/qmk/cli/migrate.py +++ b/lib/python/qmk/cli/migrate.py @@ -6,14 +6,14 @@ from dotty_dict import dotty from milc import cli -from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.keyboard import keyboard_completer, keyboard_folder, resolve_keyboard from qmk.info import info_json, find_info_json from qmk.json_encoders import InfoJSONEncoder from qmk.json_schema import json_load def _candidate_files(keyboard): - kb_dir = Path(keyboard) + kb_dir = Path(resolve_keyboard(keyboard)) cur_dir = Path('keyboards') files = [] diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index bd02acf9c8..b84b130f8e 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -8,7 +8,7 @@ from pathlib import Path from dotty_dict import dotty from milc import cli -from milc.questions import choice, question, yesno +from milc.questions import choice, question from qmk.git import git_get_username from qmk.json_schema import load_jsonschema @@ -131,70 +131,60 @@ def _question(*args, **kwargs): return ret -def prompt_heading_subheading(heading, subheading): - cli.log.info(f"{{fg_yellow}}{heading}{{style_reset_all}}") - cli.log.info(subheading) - - def prompt_keyboard(): - prompt_heading_subheading("Name Your Keyboard Project", """For more information, see: -https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project""") + prompt = """{fg_yellow}Name Your Keyboard Project{style_reset_all} +For more infomation, see: +https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project + +Keyboard Name? """ errmsg = 'Keyboard already exists! Please choose a different name:' - return _question("Keyboard Name?", reprompt=errmsg, validate=lambda x: not keyboard(x).exists()) + return _question(prompt, reprompt=errmsg, validate=lambda x: not keyboard(x).exists()) def prompt_user(): - prompt_heading_subheading("Attribution", "Used for maintainer, copyright, etc.") + prompt = """ +{fg_yellow}Attribution{style_reset_all} +Used for maintainer, copyright, etc - return question("Your GitHub Username?", default=git_get_username()) +Your GitHub Username? """ + return question(prompt, default=git_get_username()) def prompt_name(def_name): - prompt_heading_subheading("More Attribution", "Used for maintainer, copyright, etc.") + prompt = """ +{fg_yellow}More Attribution{style_reset_all} +Used for maintainer, copyright, etc - return question("Your Real Name?", default=def_name) +Your Real Name? """ + return question(prompt, default=def_name) def prompt_layout(): - prompt_heading_subheading("Pick Base Layout", """As a starting point, one of the common layouts can be used to -bootstrap the process""") + prompt = """ +{fg_yellow}Pick Base Layout{style_reset_all} +As a starting point, one of the common layouts can be used to bootstrap the process +Default Layout? """ # avoid overwhelming user - remove some? filtered_layouts = [x for x in available_layouts if not any(xs in x for xs in ['_split', '_blocker', '_tsangan', '_f13'])] filtered_layouts.append("none of the above") - return choice("Default Layout?", filtered_layouts, default=len(filtered_layouts) - 1) - - -def prompt_mcu_type(): - prompt_heading_subheading( - "What Powers Your Project", """Is your board using a separate development board, such as a Pro Micro, -or is the microcontroller integrated onto the PCB? - -For more information, see: -https://docs.qmk.fm/compatible_microcontrollers""" - ) - - return yesno("Using a Development Board?") - - -def prompt_dev_board(): - prompt_heading_subheading("Select Development Board", """For more information, see: -https://docs.qmk.fm/compatible_microcontrollers""") - - return choice("Development Board?", dev_boards, default=dev_boards.index("promicro")) + return choice(prompt, filtered_layouts, default=len(filtered_layouts) - 1) def prompt_mcu(): - prompt_heading_subheading("Select Microcontroller", """For more information, see: -https://docs.qmk.fm/compatible_microcontrollers""") + prompt = """ +{fg_yellow}What Powers Your Project{style_reset_all} +For more infomation, see: +https://docs.qmk.fm/#/compatible_microcontrollers +MCU? """ # remove any options strictly used for compatibility - filtered_mcu = [x for x in mcu_types if not any(xs in x for xs in ['cortex', 'unknown'])] + filtered_mcu = [x for x in (dev_boards + mcu_types) if not any(xs in x for xs in ['cortex', 'unknown'])] - return choice("Microcontroller?", filtered_mcu, default=filtered_mcu.index("atmega32u4")) + return choice(prompt, filtered_mcu, default=filtered_mcu.index("atmega32u4")) @cli.argument('-kb', '--keyboard', help='Specify the name for the new keyboard directory', arg_only=True, type=keyboard_name) @@ -221,11 +211,7 @@ def new_keyboard(cli): user_name = cli.config.new_keyboard.name if cli.config.new_keyboard.name else prompt_user() real_name = cli.args.realname or cli.config.new_keyboard.name if cli.args.realname or cli.config.new_keyboard.name else prompt_name(user_name) default_layout = cli.args.layout if cli.args.layout else prompt_layout() - - if cli.args.type: - mcu = cli.args.type - else: - mcu = prompt_dev_board() if prompt_mcu_type() else prompt_mcu() + mcu = cli.args.type if cli.args.type else prompt_mcu() config = {} if mcu in dev_boards: diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 4d19a726a4..d4339bc9ef 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -1,95 +1,38 @@ """This script automates the copying of the default keymap into your own keymap. """ -import re -import json import shutil -from pathlib import Path from milc import cli -from milc.questions import question, choice +from milc.questions import question from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE -from qmk.errors import NoSuchKeyboardError from qmk.path import is_keyboard, keymaps, keymap from qmk.git import git_get_username from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.userspace import UserspaceDefs -from qmk.json_schema import json_load -from qmk.json_encoders import KeymapJSONEncoder -from qmk.info import info_json - - -def _list_available_converters(kb_name): - """Search for converters that can be applied to a given keyboard - """ - if not is_keyboard(kb_name): - return None - - info = info_json(kb_name) - pin_compatible = info.get('pin_compatible') - if not pin_compatible: - return None - - return sorted(folder.name.split('_to_')[-1] for folder in Path('platforms').glob(f'*/converters/{pin_compatible}_to_*')) - - -def _set_converter(file, converter): - """add/overwrite any existing converter specified in keymap.json - """ - json_data = json_load(file) if file.exists() else {} - - json_data['converter'] = converter - - output = json.dumps(json_data, cls=KeymapJSONEncoder, sort_keys=True) - file.write_text(output + '\n', encoding='utf-8') - - -def validate_keymap_name(name): - """Returns True if the given keymap name contains only a-z, 0-9 and underscore characters. - """ - regex = re.compile(r'^[a-zA-Z0-9][a-zA-Z0-9_]+$') - return bool(regex.match(name)) def prompt_keyboard(): prompt = """{fg_yellow}Select Keyboard{style_reset_all} -If you're unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. +If you`re unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. Keyboard Name? """ + return question(prompt) def prompt_user(): prompt = """ {fg_yellow}Name Your Keymap{style_reset_all} +Used for maintainer, copyright, etc -Keymap name? """ +Your GitHub Username? """ return question(prompt, default=git_get_username()) -def prompt_converter(kb_name): - prompt = """ -{fg_yellow}Configure Development Board{style_reset_all} -For more information, see: -https://docs.qmk.fm/feature_converters - -Use converter? """ - - converters = _list_available_converters(kb_name) - if not converters: - return None - - choices = ['No (default)', *converters] - - answer = choice(prompt, options=choices, default=0) - return None if choices.index(answer) == 0 else answer - - @cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Specify keyboard name. Example: 1upkeyboards/1up60hse') @cli.argument('-km', '--keymap', help='Specify the name for the new keymap directory') -@cli.argument('--converter', help='Specify the name of a converter to configure') -@cli.argument('--skip-converter', arg_only=True, action='store_true', help='Skip converter') @cli.subcommand('Creates a new keymap for the keyboard of your choosing') @automagic_keyboard @automagic_keymap @@ -102,31 +45,19 @@ def new_keymap(cli): # ask for user input if keyboard or keymap was not provided in the command line kb_name = cli.config.new_keymap.keyboard if cli.config.new_keymap.keyboard else prompt_keyboard() user_name = cli.config.new_keymap.keymap if cli.config.new_keymap.keymap else prompt_user() - converter = cli.config.new_keymap.converter if cli.args.skip_converter or cli.config.new_keymap.converter else prompt_converter(kb_name) # check directories - try: - kb_name = keyboard_folder(kb_name) - except ValueError: + if not is_keyboard(kb_name): cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.') return False - # validate before any keymap ops - try: - keymaps_dirs = keymaps(kb_name) - keymap_path_new = keymaps_dirs[0] / user_name - except NoSuchKeyboardError: - cli.log.error(f'Keymap folder for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!') - return False - + # generate keymap paths + keymaps_dirs = keymaps(kb_name) keymap_path_default = keymap(kb_name, 'default') + keymap_path_new = keymaps_dirs[0] / user_name - if not keymap_path_default: - cli.log.error(f'Default keymap for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!') - return False - - if not validate_keymap_name(user_name): - cli.log.error('Keymap names must contain only {fg_cyan}a-z{fg_reset}, {fg_cyan}0-9{fg_reset} and {fg_cyan}_{fg_reset}! Please choose a different name.') + if not keymap_path_default.exists(): + cli.log.error(f'Default keymap {{fg_cyan}}{keymap_path_default}{{fg_reset}} does not exist!') return False if keymap_path_new.exists(): @@ -136,11 +67,8 @@ def new_keymap(cli): # create user directory with default keymap files shutil.copytree(keymap_path_default, keymap_path_new, symlinks=True) - if converter: - _set_converter(keymap_path_new / 'keymap.json', converter) - # end message to user - cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}{{fg_reset}}.') + cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}.{{fg_reset}}') cli.log.info(f"Compile a firmware with your new keymap by typing: {{fg_yellow}}qmk compile -kb {kb_name} -km {user_name}{{fg_reset}}.") # Add to userspace compile if we have userspace available diff --git a/lib/python/qmk/cli/painter/convert_graphics.py b/lib/python/qmk/cli/painter/convert_graphics.py index f74d655fd5..553c26aa5d 100644 --- a/lib/python/qmk/cli/painter/convert_graphics.py +++ b/lib/python/qmk/cli/painter/convert_graphics.py @@ -60,7 +60,9 @@ def painter_convert_graphics(cli): return # Work out the text substitutions for rendering the output data - subs = generate_subs(cli, out_bytes, image_metadata=metadata, command_name="painter_convert_graphics") + args_str = " ".join((f"--{arg} {getattr(cli.args, arg.replace('-', '_'))}" for arg in ["input", "output", "format", "no-rle", "no-deltas"])) + command = f"qmk painter-convert-graphics {args_str}" + subs = generate_subs(cli, out_bytes, image_metadata=metadata, command=command) # Render and write the header file header_text = render_header(subs) diff --git a/lib/python/qmk/cli/painter/make_font.py b/lib/python/qmk/cli/painter/make_font.py index 3e18fd74a5..19db844931 100644 --- a/lib/python/qmk/cli/painter/make_font.py +++ b/lib/python/qmk/cli/painter/make_font.py @@ -61,8 +61,10 @@ def painter_convert_font_image(cli): return # Work out the text substitutions for rendering the output data + args_str = " ".join((f"--{arg} {getattr(cli.args, arg.replace('-', '_'))}" for arg in ["input", "output", "no-ascii", "unicode-glyphs", "format", "no-rle"])) + command = f"qmk painter-convert-font-image {args_str}" metadata = {"glyphs": _generate_font_glyphs_list(not cli.args.no_ascii, cli.args.unicode_glyphs)} - subs = generate_subs(cli, out_bytes, font_metadata=metadata, command_name="painter_convert_font_image") + subs = generate_subs(cli, out_bytes, font_metadata=metadata, command=command) # Render and write the header file header_text = render_header(subs) diff --git a/lib/python/qmk/cli/resolve_alias.py b/lib/python/qmk/cli/resolve_alias.py deleted file mode 100644 index dff2242b28..0000000000 --- a/lib/python/qmk/cli/resolve_alias.py +++ /dev/null @@ -1,16 +0,0 @@ -from qmk.keyboard import keyboard_folder - -from milc import cli - - -@cli.argument('--allow-unknown', arg_only=True, action='store_true', help="Return original if rule is not a valid keyboard.") -@cli.argument('keyboard', arg_only=True, help='The keyboard\'s name') -@cli.subcommand('Resolve any keyboard_aliases for provided rule') -def resolve_alias(cli): - try: - print(keyboard_folder(cli.args.keyboard)) - except ValueError: - if cli.args.allow_unknown: - print(cli.args.keyboard) - else: - raise diff --git a/lib/python/qmk/cli/userspace/compile.py b/lib/python/qmk/cli/userspace/compile.py index 64fa3ed0c9..f164ca2ef1 100644 --- a/lib/python/qmk/cli/userspace/compile.py +++ b/lib/python/qmk/cli/userspace/compile.py @@ -20,7 +20,6 @@ def _extra_arg_setter(target, extra_args): @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") @cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the commands to be run.") -@cli.argument('-p', '--print-failures', arg_only=True, action='store_true', help="Print failed builds.") @cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") @cli.subcommand('Compiles the build targets specified in userspace `qmk.json`.') def userspace_compile(cli): @@ -43,4 +42,4 @@ def userspace_compile(cli): if len(keyboard_keymap_targets) > 0: build_targets.extend(search_keymap_targets(keyboard_keymap_targets)) - return mass_compile_targets(list(set(build_targets)), cli.args.clean, cli.args.dry_run, cli.config.userspace_compile.no_temp, cli.config.userspace_compile.parallel, cli.args.print_failures, **build_environment(cli.args.env)) + return mass_compile_targets(list(set(build_targets)), cli.args.clean, cli.args.dry_run, cli.config.userspace_compile.no_temp, cli.config.userspace_compile.parallel, **build_environment(cli.args.env)) diff --git a/lib/python/qmk/cli/userspace/list.py b/lib/python/qmk/cli/userspace/list.py index e902483b6b..9f83a14a2a 100644 --- a/lib/python/qmk/cli/userspace/list.py +++ b/lib/python/qmk/cli/userspace/list.py @@ -66,4 +66,4 @@ def userspace_list(cli): if is_all_keyboards(keyboard) or is_keymap_target(keyboard_folder(keyboard), keymap): cli.log.info(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str}') else: - cli.log.warning(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') + cli.log.warn(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py index 0997e9ca9f..73c9a61b3d 100755 --- a/lib/python/qmk/cli/via2json.py +++ b/lib/python/qmk/cli/via2json.py @@ -9,15 +9,19 @@ import qmk.keyboard import qmk.path from qmk.info import info_json from qmk.json_encoders import KeymapJSONEncoder -from qmk.commands import dump_lines -from qmk.keymap import generate_json +from qmk.commands import parse_configurator_json, dump_lines +from qmk.keymap import generate_json, list_keymaps, locate_keymap, parse_keymap_c -def _find_via_layout_macro(keyboard_data): - """Assume layout macro when only 1 is available - """ - layouts = list(keyboard_data['layouts'].keys()) - return layouts[0] if len(layouts) == 1 else None +def _find_via_layout_macro(keyboard): + keymap_layout = None + if 'via' in list_keymaps(keyboard): + keymap_path = locate_keymap(keyboard, 'via') + if keymap_path.suffix == '.json': + keymap_layout = parse_configurator_json(keymap_path)['layout'] + else: + keymap_layout = parse_keymap_c(keymap_path)['layers'][0]['layout'] + return keymap_layout def _convert_macros(via_macros): @@ -25,7 +29,6 @@ def _convert_macros(via_macros): if len(via_macros) == 0: return list() split_regex = re.compile(r'(}\,)|(\,{)') - macro_group_regex = re.compile(r'({.+?})') macros = list() for via_macro in via_macros: # Split VIA macro to its elements @@ -35,28 +38,13 @@ def _convert_macros(via_macros): macro_data = list() for m in macro: if '{' in m or '}' in m: - # Split macro groups - macro_groups = macro_group_regex.findall(m) - for macro_group in macro_groups: - # Remove whitespaces and curly braces from around group - macro_group = macro_group.strip(' {}') - - macro_action = 'tap' - macro_keycodes = [] - - if macro_group[0] == '+': - macro_action = 'down' - macro_keycodes.append(macro_group[1:]) - elif macro_group[0] == '-': - macro_action = 'up' - macro_keycodes.append(macro_group[1:]) - else: - macro_keycodes.extend(macro_group.split(',') if ',' in macro_group else [macro_group]) - - # Remove the KC prefixes - macro_keycodes = list(map(lambda s: s.replace('KC_', ''), macro_keycodes)) - - macro_data.append({"action": macro_action, "keycodes": macro_keycodes}) + # Found keycode(s) + keycodes = m.split(',') + # Remove whitespaces and curly braces from around keycodes + keycodes = list(map(lambda s: s.strip(' {}'), keycodes)) + # Remove the KC prefix + keycodes = list(map(lambda s: s.replace('KC_', ''), keycodes)) + macro_data.append({"action": "tap", "keycodes": keycodes}) else: # Found text macro_data.append(m) @@ -66,13 +54,13 @@ def _convert_macros(via_macros): def _fix_macro_keys(keymap_data): - macro_no = re.compile(r'MACRO0?\(([0-9]{1,2})\)') + macro_no = re.compile(r'MACRO0?([0-9]{1,2})') for i in range(0, len(keymap_data)): for j in range(0, len(keymap_data[i])): kc = keymap_data[i][j] m = macro_no.match(kc) if m: - keymap_data[i][j] = f'MC_{m.group(1)}' + keymap_data[i][j] = f'MACRO_{m.group(1)}' return keymap_data @@ -126,16 +114,20 @@ def via2json(cli): This command uses the `qmk.keymap` module to generate a keymap.json from a VIA backup json. The generated keymap is written to stdout, or to a file if -o is provided. """ + # Find appropriate layout macro + keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard) + if not keymap_layout: + cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") + return False + # Load the VIA backup json with cli.args.filename.open('r') as fd: via_backup = json.load(fd) + # Generate keyboard metadata keyboard_data = info_json(cli.args.keyboard) - - # Find appropriate layout macro - keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(keyboard_data) - if not keymap_layout: - cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") + if not keyboard_data: + cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!') return False # Get keycode array diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index ac1455967d..97d9c5032c 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -12,7 +12,6 @@ from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.json_schema import json_load, validate from qmk.keyboard import keyboard_alias_definitions from qmk.util import maybe_exit -from qmk.path import unix_style_path def find_make(): @@ -56,7 +55,7 @@ def parse_configurator_json(configurator_file): cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}') maybe_exit(1) - keyboard = user_keymap.get('keyboard', None) + keyboard = user_keymap['keyboard'] aliases = keyboard_alias_definitions() while keyboard in aliases: @@ -86,7 +85,7 @@ def build_environment(args): envs = parse_env_vars(args) if HAS_QMK_USERSPACE: - envs['QMK_USERSPACE'] = unix_style_path(Path(QMK_USERSPACE).resolve()) + envs['QMK_USERSPACE'] = Path(QMK_USERSPACE).resolve() return envs @@ -99,14 +98,11 @@ def in_virtualenv(): return active_prefix != sys.prefix -def dump_lines(output_file, lines, quiet=True, remove_repeated_newlines=False): +def dump_lines(output_file, lines, quiet=True): """Handle dumping to stdout or file Creates parent folders if required """ generated = '\n'.join(lines) + '\n' - if remove_repeated_newlines: - while '\n\n\n' in generated: - generated = generated.replace('\n\n\n', '\n\n') if output_file and output_file.name != '-': output_file.parent.mkdir(parents=True, exist_ok=True) if output_file.exists(): diff --git a/lib/python/qmk/community_modules.py b/lib/python/qmk/community_modules.py deleted file mode 100644 index f7e96a6b93..0000000000 --- a/lib/python/qmk/community_modules.py +++ /dev/null @@ -1,100 +0,0 @@ -import os - -from pathlib import Path -from functools import lru_cache - -from milc.attrdict import AttrDict - -from qmk.json_schema import json_load, validate, merge_ordered_dicts -from qmk.util import truthy -from qmk.constants import QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE -from qmk.path import under_qmk_firmware, under_qmk_userspace - -COMMUNITY_MODULE_JSON_FILENAME = 'qmk_module.json' - - -class ModuleAPI(AttrDict): - def __init__(self, **kwargs): - super().__init__() - for key, value in kwargs.items(): - self[key] = value - - -@lru_cache(maxsize=1) -def module_api_list(): - module_definition_files = sorted(set(QMK_FIRMWARE.glob('data/constants/module_hooks/*.hjson'))) - module_definition_jsons = [json_load(f) for f in module_definition_files] - module_definitions = merge_ordered_dicts(module_definition_jsons) - latest_module_version = module_definition_files[-1].stem - latest_module_version_parts = latest_module_version.split('.') - - api_list = [] - for name, mod in module_definitions.items(): - api_list.append(ModuleAPI( - ret_type=mod['ret_type'], - name=name, - args=mod['args'], - call_params=mod.get('call_params', ''), - guard=mod.get('guard', None), - header=mod.get('header', None), - )) - - return api_list, latest_module_version, latest_module_version_parts[0], latest_module_version_parts[1], latest_module_version_parts[2] - - -def find_available_module_paths(): - """Find all available modules. - """ - search_dirs = [] - if HAS_QMK_USERSPACE: - search_dirs.append(QMK_USERSPACE / 'modules') - search_dirs.append(QMK_FIRMWARE / 'modules') - - modules = [] - for search_dir in search_dirs: - for module_json_path in search_dir.rglob(COMMUNITY_MODULE_JSON_FILENAME): - modules.append(module_json_path.parent) - return modules - - -def find_module_path(module): - """Find a module by name. - """ - for module_path in find_available_module_paths(): - # Ensure the module directory is under QMK Firmware or QMK Userspace - relative_path = under_qmk_firmware(module_path) - if not relative_path: - relative_path = under_qmk_userspace(module_path) - if not relative_path: - continue - - lhs = str(relative_path.as_posix())[len('modules/'):] - rhs = str(Path(module).as_posix()) - - if relative_path and lhs == rhs: - return module_path - return None - - -def load_module_json(module): - """Load a module JSON file. - """ - module_path = find_module_path(module) - if not module_path: - raise FileNotFoundError(f'Module not found: {module}') - - module_json = json_load(module_path / COMMUNITY_MODULE_JSON_FILENAME) - - if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): - validate(module_json, 'qmk.community_module.v1') - - module_json['module'] = module - module_json['module_path'] = module_path - - return module_json - - -def load_module_jsons(modules): - """Load the module JSON files, matching the specified order. - """ - return list(map(load_module_json, modules)) diff --git a/lib/python/qmk/compilation_database.py b/lib/python/qmk/compilation_database.py deleted file mode 100755 index 851dc3f157..0000000000 --- a/lib/python/qmk/compilation_database.py +++ /dev/null @@ -1,140 +0,0 @@ -"""Creates a compilation database for the given keyboard build. -""" - -import json -import os -import re -import shlex -import shutil -from functools import lru_cache -from pathlib import Path -from typing import Dict, Iterator, List - -from milc import cli - -from qmk.commands import find_make -from qmk.constants import QMK_FIRMWARE - - -@lru_cache(maxsize=10) -def system_libs(binary: str) -> List[Path]: - """Find the system include directory that the given build tool uses. - """ - cli.log.debug("searching for system library directory for binary: %s", binary) - - # Actually query xxxxxx-gcc to find its include paths. - if binary.endswith("gcc") or binary.endswith("g++"): - # (TODO): Remove 'stdin' once 'input' no longer causes issues under MSYS - result = cli.run([binary, '-E', '-Wp,-v', '-'], capture_output=True, check=True, stdin=None, input='\n') - paths = [] - for line in result.stderr.splitlines(): - if line.startswith(" "): - paths.append(Path(line.strip()).resolve()) - return paths - - return list(Path(binary).resolve().parent.parent.glob("*/include")) if binary else [] - - -@lru_cache(maxsize=10) -def cpu_defines(binary: str, compiler_args: str) -> List[str]: - cli.log.debug("gathering definitions for compilation: %s %s", binary, compiler_args) - if binary.endswith("gcc") or binary.endswith("g++"): - invocation = [binary, '-dM', '-E'] - if binary.endswith("gcc"): - invocation.extend(['-x', 'c', '-std=gnu11']) - elif binary.endswith("g++"): - invocation.extend(['-x', 'c++', '-std=gnu++14']) - invocation.extend(shlex.split(compiler_args)) - invocation.append('-') - result = cli.run(invocation, capture_output=True, check=True, stdin=None, input='\n') - define_args = [] - for line in result.stdout.splitlines(): - line_args = line.split(' ', 2) - if len(line_args) == 3 and line_args[0] == '#define': - define_args.append(f'-D{line_args[1]}={line_args[2]}') - elif len(line_args) == 2 and line_args[0] == '#define': - define_args.append(f'-D{line_args[1]}') - - type_filter = re.compile( - r'^-D__(SIZE|INT|UINT|WINT|WCHAR|BYTE|SHRT|SIG|FLOAT|LONG|CHAR|SCHAR|DBL|FLT|LDBL|PTRDIFF|QQ|DQ|DA|HA|HQ|SA|SQ|TA|TQ|UDA|UDQ|UHA|UHQ|USQ|USA|UTQ|UTA|UQQ|UQA|ACCUM|FRACT|UACCUM|UFRACT|LACCUM|LFRACT|ULACCUM|ULFRACT|LLACCUM|LLFRACT|ULLACCUM|ULLFRACT|SACCUM|SFRACT|USACCUM|USFRACT)' - ) - return list(sorted(set(filter(lambda x: not type_filter.match(x), define_args)))) - return [] - - -file_re = re.compile(r'printf "Compiling: ([^"]+)') -cmd_re = re.compile(r'LOG=\$\((.+?)&&') - - -def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: - """parse the output of `make -n ` - - This function makes many assumptions about the format of your build log. - This happens to work right now for qmk. - """ - - state = 'start' - this_file = None - records = [] - for line in f: - if state == 'start': - m = file_re.search(line) - if m: - this_file = m.group(1) - state = 'cmd' - - if state == 'cmd': - assert this_file - m = cmd_re.search(line) - if m: - # we have a hit! - this_cmd = m.group(1) - args = shlex.split(this_cmd) - binary = shutil.which(args[0]) - compiler_args = set(filter(lambda x: x.startswith('-m') or x.startswith('-f'), args)) - for s in system_libs(binary): - args += ['-isystem', '%s' % s] - args.extend(cpu_defines(binary, ' '.join(shlex.quote(s) for s in compiler_args))) - args[0] = binary - records.append({"arguments": args, "directory": str(QMK_FIRMWARE.resolve()), "file": this_file}) - state = 'start' - - return records - - -def write_compilation_database(keyboard: str = None, keymap: str = None, output_path: Path = QMK_FIRMWARE / 'compile_commands.json', skip_clean: bool = False, command: List[str] = None, **env_vars) -> bool: - # Generate the make command for a specific keyboard/keymap. - if not command: - from qmk.build_targets import KeyboardKeymapBuildTarget # Lazy load due to circular references - target = KeyboardKeymapBuildTarget(keyboard, keymap) - command = target.compile_command(dry_run=True, **env_vars) - - if not command: - cli.log.error('You must supply both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') - cli.echo('usage: qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP]') - return False - - # remove any environment variable overrides which could trip us up - env = os.environ.copy() - env.pop("MAKEFLAGS", None) - - # re-use same executable as the main make invocation (might be gmake) - if not skip_clean: - clean_command = [find_make(), "clean"] - cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command)) - cli.run(clean_command, capture_output=False, check=True, env=env) - - cli.log.info('Gathering build instructions from {fg_cyan}%s', ' '.join(command)) - - result = cli.run(command, capture_output=True, check=True, env=env) - db = parse_make_n(result.stdout.splitlines()) - if not db: - cli.log.error("Failed to parse output from make output:\n%s", result.stdout) - return False - - cli.log.info("Found %s compile commands", len(db)) - - cli.log.info(f"Writing build database to {output_path}") - output_path.write_text(json.dumps(db, indent=4)) - - return True diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index e3e47c2bd2..b6f46180b2 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -22,7 +22,7 @@ QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware' MAX_KEYBOARD_SUBFOLDERS = 5 # Supported processor types -CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G0B1', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95', 'AT32F415' +CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' @@ -42,7 +42,6 @@ MCU2BOOTLOADER = { "STM32F407": "stm32-dfu", "STM32F411": "stm32-dfu", "STM32F446": "stm32-dfu", - "STM32G0B1": "stm32-dfu", "STM32G431": "stm32-dfu", "STM32G474": "stm32-dfu", "STM32H723": "stm32-dfu", @@ -56,7 +55,6 @@ MCU2BOOTLOADER = { "GD32VF103": "gd32v-dfu", "WB32F3G71": "wb32-dfu", "WB32FQ95": "wb32-dfu", - "AT32F415": "at32-dfu", "atmega16u2": "atmel-dfu", "atmega32u2": "atmel-dfu", "atmega16u4": "atmel-dfu", @@ -95,7 +93,6 @@ BOOTLOADER_VIDS_PIDS = { 'apm32-dfu': {("314b", "0106")}, 'gd32v-dfu': {("28e9", "0189")}, 'wb32-dfu': {("342d", "dfa0")}, - 'at32-dfu': {("2e3c", "df11")}, 'bootloadhid': {("16c0", "05df")}, 'usbasploader': {("16c0", "05dc")}, 'usbtinyisp': {("1782", "0c9f")}, diff --git a/lib/python/qmk/decorators.py b/lib/python/qmk/decorators.py index 0cad55a483..f6270990b9 100644 --- a/lib/python/qmk/decorators.py +++ b/lib/python/qmk/decorators.py @@ -5,19 +5,10 @@ from time import monotonic from milc import cli -from qmk.keyboard import find_keyboard_from_dir, keyboard_folder +from qmk.keyboard import find_keyboard_from_dir from qmk.keymap import find_keymap_from_dir -def _get_subcommand_name(): - """Handle missing cli.subcommand_name on older versions of milc - """ - try: - return cli.subcommand_name - except AttributeError: - return cli._subcommand.__name__ - - def automagic_keyboard(func): """Sets `cli.config..keyboard` based on environment. @@ -25,20 +16,13 @@ def automagic_keyboard(func): """ @functools.wraps(func) def wrapper(*args, **kwargs): - cmd = _get_subcommand_name() - - # TODO: Workaround for if config file contains "old" keyboard name - # Potential long-term fix needs to be within global cli or milc - if cli.config_source[cmd]['keyboard'] == 'config_file': - cli.config[cmd]['keyboard'] = keyboard_folder(cli.config[cmd]['keyboard']) - # Ensure that `--keyboard` was not passed and CWD is under `qmk_firmware/keyboards` - if cli.config_source[cmd]['keyboard'] != 'argument': + if cli.config_source[cli._subcommand.__name__]['keyboard'] != 'argument': keyboard = find_keyboard_from_dir() if keyboard: - cli.config[cmd]['keyboard'] = keyboard - cli.config_source[cmd]['keyboard'] = 'keyboard_directory' + cli.config[cli._subcommand.__name__]['keyboard'] = keyboard + cli.config_source[cli._subcommand.__name__]['keyboard'] = 'keyboard_directory' return func(*args, **kwargs) @@ -52,15 +36,13 @@ def automagic_keymap(func): """ @functools.wraps(func) def wrapper(*args, **kwargs): - cmd = _get_subcommand_name() - # Ensure that `--keymap` was not passed and that we're under `qmk_firmware` - if cli.config_source[cmd]['keymap'] != 'argument': + if cli.config_source[cli._subcommand.__name__]['keymap'] != 'argument': keymap_name, keymap_type = find_keymap_from_dir() if keymap_name: - cli.config[cmd]['keymap'] = keymap_name - cli.config_source[cmd]['keymap'] = keymap_type + cli.config[cli._subcommand.__name__]['keymap'] = keymap_name + cli.config_source[cli._subcommand.__name__]['keymap'] = keymap_type return func(*args, **kwargs) diff --git a/lib/python/qmk/docs.py b/lib/python/qmk/docs.py index 75d2d60bda..56694cf6ae 100644 --- a/lib/python/qmk/docs.py +++ b/lib/python/qmk/docs.py @@ -17,18 +17,18 @@ BUILD_DOCS_PATH = BUILD_PATH / 'docs' DOXYGEN_PATH = BUILD_DOCS_PATH / 'static' / 'doxygen' -def run_docs_command(verb, cmd_args=None): +def run_docs_command(verb, cmd=None): environ['PATH'] += pathsep + str(NODE_MODULES_PATH / '.bin') - args = {'capture_output': False, 'check': True} + args = {'capture_output': False if cli.config.general.verbose else True, 'check': True, 'stdin': DEVNULL} docs_env = environ.copy() if cli.config.general.verbose: docs_env['DEBUG'] = 'vitepress:*,vite:*' args['env'] = docs_env arg_list = ['yarn', verb] - if cmd_args: - arg_list.extend(cmd_args) + if cmd: + arg_list.append(cmd) chdir(BUILDDEFS_PATH) cli.run(arg_list, **args) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 22d9133d65..7ee1bc8de7 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -96,7 +96,7 @@ def _find_bootloader(): details = 'halfkay' else: details = 'qmk-hid' - elif bl in {'apm32-dfu', 'at32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: + elif bl in {'apm32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: details = (vid, pid) else: details = None @@ -176,7 +176,7 @@ def _flash_dfu_util(details, file): # kiibohd elif details[0] == '1c11' and details[1] == 'b007': cli.run(['dfu-util', '-a', '0', '-d', f'{details[0]}:{details[1]}', '-D', file], capture_output=False) - # STM32, APM32, AT32, or GD32V DFU + # STM32, APM32, or GD32V DFU else: cli.run(['dfu-util', '-a', '0', '-d', f'{details[0]}:{details[1]}', '-s', '0x08000000:leave', '-D', file], capture_output=False) @@ -202,10 +202,6 @@ def _flash_mdloader(file): def _flash_uf2(file): - output = cli.run(['util/uf2conv.py', '--info', file]).stdout - if 'UF2 File' not in output: - return True - cli.run(['util/uf2conv.py', '--deploy', file], capture_output=False) @@ -226,7 +222,7 @@ def flasher(mcu, file): return (True, "Please make sure 'teensy_loader_cli' or 'hid_bootloader_cli' is available on your system.") else: return (True, "Specifying the MCU with '-m' is necessary for HalfKay/HID bootloaders!") - elif bl in {'apm32-dfu', 'at32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: + elif bl in {'apm32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: _flash_dfu_util(details, file) elif bl == 'wb32-dfu': if _flash_wb32_dfu_updater(file): @@ -239,8 +235,7 @@ def flasher(mcu, file): elif bl == 'md-boot': _flash_mdloader(file) elif bl == '_uf2_compatible_': - if _flash_uf2(file): - return (True, "Flashing only supports uf2 format files.") + _flash_uf2(file) else: return (True, "Known bootloader found but flashing not currently supported!") diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 9d567475d8..b6c11edbfe 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -26,7 +26,7 @@ def git_get_version(repo_dir='.', check_dir='.'): return git_describe.stdout.strip() else: - cli.log.warning(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') + cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') print(git_describe.stderr) return None diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index f63228b2bc..72b19a9fec 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -1,7 +1,6 @@ """Functions that help us generate and use info.json files. """ import re -import os from pathlib import Path import jsonschema from dotty_dict import dotty @@ -15,7 +14,7 @@ from qmk.keyboard import config_h, rules_mk from qmk.commands import parse_configurator_json from qmk.makefile import parse_rules_mk_file from qmk.math import compute -from qmk.util import maybe_exit, truthy +from qmk.util import maybe_exit true_values = ['1', 'on', 'yes'] false_values = ['0', 'off', 'no'] @@ -99,13 +98,6 @@ def _validate_build_target(keyboard, info_data): if info_file != keyboard_json_path: _log_error(info_data, f'Invalid keyboard.json location detected: {info_file}.') - # No keyboard.json next to info.json - for conf_file in config_files: - if conf_file.name == 'keyboard.json': - info_file = conf_file.parent / 'info.json' - if info_file.exists(): - _log_error(info_data, f'Invalid info.json location detected: {info_file}.') - # Moving forward keyboard.json should be used as a build target if keyboard_json_count == 0: _log_warning(info_data, 'Build marker "keyboard.json" not found.') @@ -223,6 +215,12 @@ def _validate(keyboard, info_data): def info_json(keyboard, force_layout=None): """Generate the info.json data for a specific keyboard. """ + cur_dir = Path('keyboards') + root_rules_mk = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') + + if 'DEFAULT_FOLDER' in root_rules_mk: + keyboard = root_rules_mk['DEFAULT_FOLDER'] + info_data = { 'keyboard_name': str(keyboard), 'keyboard_folder': str(keyboard), @@ -254,7 +252,6 @@ def info_json(keyboard, force_layout=None): # Ensure that we have various calculated values info_data = _matrix_size(info_data) info_data = _joystick_axis_count(info_data) - info_data = _matrix_masked(info_data) # Merge in data from info_data = _extract_led_config(info_data, str(keyboard)) @@ -265,9 +262,7 @@ def info_json(keyboard, force_layout=None): info_data["community_layouts"] = [force_layout] # Validate - # Skip processing if necessary - if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): - _validate(keyboard, info_data) + _validate(keyboard, info_data) # Check that the reported matrix size is consistent with the actual matrix size _check_matrix(info_data) @@ -294,7 +289,7 @@ def _extract_features(info_data, rules): info_data['features'] = {} if key in info_data['features']: - _log_warning(info_data, 'Feature %s is specified in both info.json (%s) and rules.mk (%s). The rules.mk value wins.' % (key, info_data['features'], value)) + _log_warning(info_data, 'Feature %s is specified in both info.json and rules.mk, the rules.mk value wins.' % (key,)) info_data['features'][key] = value info_data['config_h_features'][key] = value @@ -417,7 +412,7 @@ def _extract_encoders(info_data, config_c): info_data['encoder'] = {} if 'rotary' in info_data['encoder']: - _log_warning(info_data, 'Encoder config is specified in both config.h (%s) and info.json (%s). The config.h value wins.' % (encoders, info_data['encoder']['rotary'])) + _log_warning(info_data, 'Encoder config is specified in both config.h and info.json (encoder.rotary) (Value: %s), the config.h value wins.' % info_data['encoder']['rotary']) info_data['encoder']['rotary'] = encoders @@ -477,9 +472,6 @@ def _extract_split_serial(info_data, config_c): if 'soft_serial_pin' in split: split['serial'] = split.get('serial', {}) split['serial']['pin'] = split.pop('soft_serial_pin') - if 'soft_serial_speed' in split: - split['serial'] = split.get('serial', {}) - split['serial']['speed'] = split.pop('soft_serial_speed') def _extract_split_transport(info_data, config_c): @@ -778,24 +770,23 @@ def find_keyboard_c(keyboard): def _extract_led_config(info_data, keyboard): """Scan all .c files for led config """ + cols = info_data['matrix_size']['cols'] + rows = info_data['matrix_size']['rows'] + for feature in ['rgb_matrix', 'led_matrix']: if info_data.get('features', {}).get(feature, False) or feature in info_data: + # Only attempt search if dd led config is missing if 'layout' not in info_data.get(feature, {}): - cols = info_data.get('matrix_size', {}).get('cols') - rows = info_data.get('matrix_size', {}).get('rows') - if cols and rows: - # Process - for file in find_keyboard_c(keyboard): - try: - ret = find_led_config(file, cols, rows) - if ret: - info_data[feature] = info_data.get(feature, {}) - info_data[feature]['layout'] = ret - except Exception as e: - _log_warning(info_data, f'led_config: {file.name}: {e}') - else: - _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') + # Process + for file in find_keyboard_c(keyboard): + try: + ret = find_led_config(file, cols, rows) + if ret: + info_data[feature] = info_data.get(feature, {}) + info_data[feature]['layout'] = ret + except Exception as e: + _log_warning(info_data, f'led_config: {file.name}: {e}') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) @@ -834,25 +825,6 @@ def _joystick_axis_count(info_data): return info_data -def _matrix_masked(info_data): - """"Add info_data['matrix_pins.masked'] if required""" - mask_required = False - - if 'matrix_grid' in info_data.get('dip_switch', {}): - mask_required = True - if 'matrix_grid' in info_data.get('split', {}).get('handedness', {}): - mask_required = True - - if mask_required: - if 'masked' not in info_data.get('matrix_pins', {}): - if 'matrix_pins' not in info_data: - info_data['matrix_pins'] = {} - - info_data['matrix_pins']['masked'] = True - - return info_data - - def _check_matrix(info_data): """Check the matrix to ensure that row/column count is consistent. """ @@ -926,6 +898,9 @@ def arm_processor_rules(info_data, rules): info_data['platform'] = 'STM32' elif 'MCU_SERIES' in rules: info_data['platform'] = rules['MCU_SERIES'] + elif 'ARM_ATSAM' in rules: + info_data['platform'] = 'ARM_ATSAM' + info_data['platform_key'] = 'arm_atsam' return info_data @@ -969,14 +944,13 @@ def merge_info_jsons(keyboard, info_data): _log_error(info_data, "Invalid file %s, root object should be a dictionary." % (str(info_file),)) continue - if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): - try: - validate(new_info_data, 'qmk.keyboard.v1') - except jsonschema.ValidationError as e: - json_path = '.'.join([str(p) for p in e.absolute_path]) - cli.log.error('Not including data from file: %s', info_file) - cli.log.error('\t%s: %s', json_path, e.message) - continue + try: + validate(new_info_data, 'qmk.keyboard.v1') + except jsonschema.ValidationError as e: + json_path = '.'.join([str(p) for p in e.absolute_path]) + cli.log.error('Not including data from file: %s', info_file) + cli.log.error('\t%s: %s', json_path, e.message) + continue # Merge layout data in if 'layout_aliases' in new_info_data: @@ -1022,6 +996,11 @@ def find_info_json(keyboard): keyboard_parent = keyboard_path.parent info_jsons = [keyboard_path / 'info.json', keyboard_path / 'keyboard.json'] + # Add DEFAULT_FOLDER before parents, if present + rules = rules_mk(keyboard) + if 'DEFAULT_FOLDER' in rules: + info_jsons.append(Path(rules['DEFAULT_FOLDER']) / 'info.json') + # Add in parent folders for least specific for _ in range(5): if keyboard_parent == base_path: @@ -1071,20 +1050,3 @@ def keymap_json(keyboard, keymap, force_layout=None): _extract_config_h(kb_info_json, parse_config_h_file(keymap_config)) return kb_info_json - - -def get_modules(keyboard, keymap_filename): - """Get the modules for a keyboard/keymap. - """ - modules = [] - - kb_info_json = info_json(keyboard) - modules.extend(kb_info_json.get('modules', [])) - - if keymap_filename: - keymap_json = parse_configurator_json(keymap_filename) - - if keymap_json: - modules.extend(keymap_json.get('modules', [])) - - return list(dict.fromkeys(modules)) # remove dupes diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py index e8bcf48996..0e4ad1d220 100755 --- a/lib/python/qmk/json_encoders.py +++ b/lib/python/qmk/json_encoders.py @@ -235,33 +235,3 @@ class UserspaceJSONEncoder(QMKJSONEncoder): return '01build_targets' return key - - -class CommunityModuleJSONEncoder(QMKJSONEncoder): - """Custom encoder to make qmk_module.json's a little nicer to work with. - """ - def sort_dict(self, item): - """Sorts the hashes in a nice way. - """ - key = item[0] - - if self.indentation_level == 1: - if key == 'module_name': - return '00module_name' - if key == 'maintainer': - return '01maintainer' - if key == 'license': - return '02license' - if key == 'url': - return '03url' - if key == 'features': - return '04features' - if key == 'keycodes': - return '05keycodes' - elif self.indentation_level == 3: # keycodes - if key == 'key': - return '00key' - if key == 'aliases': - return '01aliases' - - return key diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index e871598565..b11a0ed7ea 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -76,13 +76,8 @@ def compile_schema_store(): if not isinstance(schema_data, dict): cli.log.debug('Skipping schema file %s', schema_file) continue - - # `$id`-based references schema_store[schema_data['$id']] = schema_data - # Path-based references - schema_store[Path(schema_file).name] = schema_data - return schema_store diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 254dc62309..fcf5b5b158 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -99,6 +99,8 @@ def find_keyboard_from_dir(): keymap_index = len(current_path.parts) - current_path.parts.index('keymaps') - 1 current_path = current_path.parents[keymap_index] + current_path = resolve_keyboard(current_path) + if qmk.path.is_keyboard(current_path): return str(current_path) @@ -119,7 +121,7 @@ def find_readme(keyboard): def keyboard_folder(keyboard): """Returns the actual keyboard folder. - This checks aliases to resolve the actual path for a keyboard. + This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard. """ aliases = keyboard_alias_definitions() @@ -129,6 +131,8 @@ def keyboard_folder(keyboard): if keyboard == last_keyboard: break + keyboard = resolve_keyboard(keyboard) + if not qmk.path.is_keyboard(keyboard): raise ValueError(f'Invalid keyboard: {keyboard}') @@ -154,7 +158,7 @@ def keyboard_aliases(keyboard): def keyboard_folder_or_all(keyboard): """Returns the actual keyboard folder. - This checks aliases to resolve the actual path for a keyboard. + This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard. If the supplied argument is "all", it returns an AllKeyboards object. """ if keyboard == 'all': @@ -175,18 +179,32 @@ def keyboard_completer(prefix, action, parser, parsed_args): return list_keyboards() -def list_keyboards(): - """Returns a list of all keyboards +def list_keyboards(resolve_defaults=True): + """Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER. """ # We avoid pathlib here because this is performance critical code. - kb_wildcard = os.path.join(base_path, "**", 'keyboard.json') - paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path] + paths = [] + for marker in ['rules.mk', 'keyboard.json']: + kb_wildcard = os.path.join(base_path, "**", marker) + paths += [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path] found = map(_find_name, paths) + if resolve_defaults: + found = map(resolve_keyboard, found) return sorted(set(found)) +@lru_cache(maxsize=None) +def resolve_keyboard(keyboard): + cur_dir = Path('keyboards') + rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') + while 'DEFAULT_FOLDER' in rules and keyboard != rules['DEFAULT_FOLDER']: + keyboard = rules['DEFAULT_FOLDER'] + rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') + return keyboard + + def config_h(keyboard): """Parses all the config.h files for a keyboard. @@ -198,7 +216,7 @@ def config_h(keyboard): """ config = {} cur_dir = Path('keyboards') - keyboard = Path(keyboard) + keyboard = Path(resolve_keyboard(keyboard)) for dir in keyboard.parts: cur_dir = cur_dir / dir @@ -217,7 +235,7 @@ def rules_mk(keyboard): a dictionary representing the content of the entire rules.mk tree for a keyboard """ cur_dir = Path('keyboards') - keyboard = Path(keyboard) + keyboard = Path(resolve_keyboard(keyboard)) rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') for i, dir in enumerate(keyboard.parts): diff --git a/lib/python/qmk/keycodes.py b/lib/python/qmk/keycodes.py index 9e4664e5f1..966930547c 100644 --- a/lib/python/qmk/keycodes.py +++ b/lib/python/qmk/keycodes.py @@ -89,7 +89,6 @@ def load_spec(version, lang=None): spec = _process_files(_locate_files(path, prefix, versions)) # Sort? - spec['version'] = version spec['keycodes'] = dict(sorted(spec.get('keycodes', {}).items())) spec['ranges'] = dict(sorted(spec.get('ranges', {}).items())) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 4cf07f59d6..97c358788a 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -29,40 +29,38 @@ __INCLUDES__ * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ - +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { __KEYMAP_GOES_HERE__ -__ENCODER_MAP_GOES_HERE__ -__MACRO_OUTPUT_GOES_HERE__ +}; -#ifdef OTHER_KEYMAP_C -# include OTHER_KEYMAP_C -#endif // OTHER_KEYMAP_C +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +__ENCODER_MAP_GOES_HERE__ +}; +#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) + +__MACRO_OUTPUT_GOES_HERE__ """ def _generate_keymap_table(keymap_json): - lines = ['const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {'] + lines = [] for layer_num, layer in enumerate(keymap_json['layers']): if layer_num != 0: lines[-1] = lines[-1] + ',' layer = map(_strip_any, layer) layer_keys = ', '.join(layer) lines.append(' [%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys)) - lines.append('};') return lines def _generate_encodermap_table(keymap_json): - lines = [ - '#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)', - 'const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {', - ] + lines = [] for layer_num, layer in enumerate(keymap_json['encoders']): if layer_num != 0: lines[-1] = lines[-1] + ',' encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer]) lines.append(' [%s] = {%s}' % (layer_num, encoder_keycode_txt)) - lines.extend(['};', '#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)']) return lines @@ -273,11 +271,8 @@ def generate_c(keymap_json): A sequence of strings containing macros to implement for this keyboard. """ new_keymap = DEFAULT_KEYMAP_C - - keymap = '' - if 'layers' in keymap_json and keymap_json['layers'] is not None: - layer_txt = _generate_keymap_table(keymap_json) - keymap = '\n'.join(layer_txt) + layer_txt = _generate_keymap_table(keymap_json) + keymap = '\n'.join(layer_txt) new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap) encodermap = '' @@ -334,6 +329,33 @@ def write_json(keyboard, keymap, layout, layers, macros=None): return write_file(keymap_file, keymap_content) +def write(keymap_json): + """Generate the `keymap.c` and write it to disk. + + Returns the filename written to. + + `keymap_json` should be a dict with the following keys: + keyboard + The name of the keyboard + + keymap + The name of the keymap + + layout + The LAYOUT macro this keymap uses. + + layers + An array of arrays describing the keymap. Each item in the inner array should be a string that is a valid QMK keycode. + + macros + A list of macros for this keymap. + """ + keymap_content = generate_c(keymap_json) + keymap_file = qmk.path.keymaps(keymap_json['keyboard'])[0] / keymap_json['keymap'] / 'keymap.c' + + return write_file(keymap_file, keymap_content) + + def locate_keymap(keyboard, keymap, force_layout=None): """Returns the path to a keymap for a specific keyboard. """ @@ -343,21 +365,24 @@ def locate_keymap(keyboard, keymap, force_layout=None): # Check the keyboard folder first, last match wins keymap_path = '' - search_conf = {QMK_FIRMWARE: [keyboard_folder(keyboard)]} + search_dirs = [QMK_FIRMWARE] + keyboard_dirs = [keyboard_folder(keyboard)] if HAS_QMK_USERSPACE: # When we've got userspace, check there _last_ as we want them to override anything in the main repo. + search_dirs.append(QMK_USERSPACE) # We also want to search for any aliases as QMK's folder structure may have changed, with an alias, but the user # hasn't updated their keymap location yet. - search_conf[QMK_USERSPACE] = list(set([keyboard_folder(keyboard), *keyboard_aliases(keyboard)])) + keyboard_dirs.extend(keyboard_aliases(keyboard)) + keyboard_dirs = list(set(keyboard_dirs)) - for search_dir, keyboard_dirs in search_conf.items(): + for search_dir in search_dirs: for keyboard_dir in keyboard_dirs: checked_dirs = '' - for folder_name in keyboard_dir.split('/'): + for dir in keyboard_dir.split('/'): if checked_dirs: - checked_dirs = '/'.join((checked_dirs, folder_name)) + checked_dirs = '/'.join((checked_dirs, dir)) else: - checked_dirs = folder_name + checked_dirs = dir keymap_dir = Path(search_dir) / Path('keyboards') / checked_dirs / 'keymaps' @@ -396,7 +421,7 @@ def is_keymap_target(keyboard, keymap): return False -def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True): +def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False): """List the available keymaps for a keyboard. Args: @@ -415,19 +440,14 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa fullpath When set to True the full path of the keymap relative to the `qmk_firmware` root will be provided. - include_userspace - When set to True, also search userspace for available keymaps - Returns: a sorted list of valid keymap names. """ names = set() - has_userspace = HAS_QMK_USERSPACE and include_userspace - # walk up the directory tree until keyboards_dir # and collect all directories' name with keymap.c file in it - for search_dir in [QMK_FIRMWARE, QMK_USERSPACE] if has_userspace else [QMK_FIRMWARE]: + for search_dir in [QMK_FIRMWARE, QMK_USERSPACE] if HAS_QMK_USERSPACE else [QMK_FIRMWARE]: keyboards_dir = search_dir / Path('keyboards') kb_path = keyboards_dir / keyboard @@ -445,7 +465,7 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa info = info_json(keyboard) community_parents = list(Path('layouts').glob('*/')) - if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): + if HAS_QMK_USERSPACE and (Path(QMK_USERSPACE) / "layouts").exists(): community_parents.append(Path(QMK_USERSPACE) / "layouts") for community_parent in community_parents: diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index ed0372c163..512a486ce8 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -3,7 +3,6 @@ import datetime import math import re -from pathlib import Path from string import Template from PIL import Image, ImageOps @@ -138,31 +137,10 @@ def _render_image_metadata(metadata): return "\n".join(lines) -def command_args_str(cli, command_name): - """Given a command name, introspect milc to get the arguments passed in.""" - - args = {} - max_length = 0 - for arg_name, was_passed in cli.args_passed[command_name].items(): - max_length = max(max_length, len(arg_name)) - - val = getattr(cli.args, arg_name.replace("-", "_")) - - # do not leak full paths, keep just file name - if isinstance(val, Path): - val = val.name - - args[arg_name] = val - - return "\n".join(f"// {arg_name.ljust(max_length)} | {val}" for arg_name, val in args.items()) - - -def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command_name): +def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command): if font_metadata is not None and image_metadata is not None: raise ValueError("Cant generate subs for font and image at the same time") - args = command_args_str(cli, command_name) - subs = { "year": datetime.date.today().strftime("%Y"), "input_file": cli.args.input.name, @@ -170,8 +148,7 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co "byte_count": len(out_bytes), "bytes_lines": render_bytes(out_bytes), "format": cli.args.format, - "generator_command": command_name.replace("_", "-"), - "command_args": args, + "generator_command": command, } if font_metadata is not None: @@ -190,7 +167,7 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co subs.update({ "generated_type": "image", "var_prefix": "gfx", - "generator_command": command_name, + "generator_command": command, "metadata": _render_image_metadata(image_metadata), }) @@ -206,8 +183,7 @@ license_template = """\ // Copyright ${year} QMK -- generated source code only, ${generated_type} retains original copyright // SPDX-License-Identifier: GPL-2.0-or-later -// This file was auto-generated by `${generator_command}` with arguments: -${command_args} +// This file was auto-generated by `${generator_command}` """ diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 1739689adf..61daad585f 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -3,7 +3,7 @@ import logging import os import argparse -from pathlib import Path, PureWindowsPath, PurePosixPath +from pathlib import Path from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.errors import NoSuchKeyboardError @@ -21,9 +21,11 @@ def is_keyboard(keyboard_name): if Path(keyboard_name).is_absolute(): return False - keyboard_json = QMK_FIRMWARE / 'keyboards' / keyboard_name / 'keyboard.json' + keyboard_path = QMK_FIRMWARE / 'keyboards' / keyboard_name + rules_mk = keyboard_path / 'rules.mk' + keyboard_json = keyboard_path / 'keyboard.json' - return keyboard_json.exists() + return rules_mk.exists() or keyboard_json.exists() def under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])): @@ -144,28 +146,6 @@ def normpath(path): return Path(os.environ['ORIG_CWD']) / path -def unix_style_path(path): - """Converts a Windows-style path with drive letter to a Unix path. - - Path().as_posix() normally returns the path with drive letter and forward slashes, so is inappropriate for `Makefile` paths. - - Passes through unadulterated if the path is not a Windows-style path. - - Args: - - path - The path to convert. - - Returns: - The input path converted to Unix format. - """ - if isinstance(path, PureWindowsPath): - p = list(path.parts) - p[0] = f'/{p[0][0].lower()}' # convert from `X:/` to `/x` - path = PurePosixPath(*p) - return path - - class FileType(argparse.FileType): def __init__(self, *args, **kwargs): # Use UTF8 by default for stdin diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index c7bce344ad..baaf11eb34 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -74,30 +74,28 @@ class Exists(FilterFunction): func_name = "exists" def apply(self, target_info: KeyboardKeymapDesc) -> bool: - return self.key in target_info.dotty + return self.key in target_info.data class Absent(FilterFunction): func_name = "absent" def apply(self, target_info: KeyboardKeymapDesc) -> bool: - return self.key not in target_info.dotty + return self.key not in target_info.data class Length(FilterFunction): func_name = "length" def apply(self, target_info: KeyboardKeymapDesc) -> bool: - info_dotty = target_info.dotty - return (self.key in info_dotty and len(info_dotty[self.key]) == int(self.value)) + return (self.key in target_info.data and len(target_info.data[self.key]) == int(self.value)) class Contains(FilterFunction): func_name = "contains" def apply(self, target_info: KeyboardKeymapDesc) -> bool: - info_dotty = target_info.dotty - return (self.key in info_dotty and self.value in info_dotty[self.key]) + return (self.key in target_info.data and self.value in target_info.data[self.key]) def _get_filter_class(func_name: str, key: str, value: str) -> Optional[FilterFunction]: @@ -119,11 +117,8 @@ def filter_help() -> str: def _set_log_level(level): cli.acquire_lock() - try: - old = cli.log_level - cli.log_level = level - except AttributeError: - old = cli.log.level + old = cli.log_level + cli.log_level = level cli.log.setLevel(level) logging.root.setLevel(level) cli.release_lock() @@ -239,11 +234,11 @@ def _filter_keymap_targets(target_list: List[KeyboardKeymapDesc], filters: List[ valid_targets = parallel_map(_load_keymap_info, target_list) function_re = re.compile(r'^(?P[a-zA-Z]+)\((?P[a-zA-Z0-9_\.]+)(,\s*(?P[^#]+))?\)$') - comparison_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*(?P[\<\>\!=]=|\<|\>)\s*(?P[^#]+)$') + equals_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') for filter_expr in filters: function_match = function_re.match(filter_expr) - comparison_match = comparison_re.match(filter_expr) + equals_match = equals_re.match(filter_expr) if function_match is not None: func_name = function_match.group('function').lower() @@ -259,43 +254,23 @@ def _filter_keymap_targets(target_list: List[KeyboardKeymapDesc], filters: List[ value_str = f", {{fg_cyan}}{value}{{fg_reset}}" if value is not None else "" cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}}{value_str})...') - elif comparison_match is not None: - key = comparison_match.group('key') - op = comparison_match.group('op') - value = comparison_match.group('value') - cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} {op} {{fg_cyan}}{value}{{fg_reset}}...') + elif equals_match is not None: + key = equals_match.group('key') + value = equals_match.group('value') + cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} == {{fg_cyan}}{value}{{fg_reset}}...') - def _make_filter(k, o, v): + def _make_filter(k, v): expr = fnmatch.translate(v) rule = re.compile(f'^{expr}$', re.IGNORECASE) def f(e: KeyboardKeymapDesc): lhs = e.dotty.get(k) - rhs = v - - if o in ['<', '>', '<=', '>=']: - lhs = int(False if lhs is None else lhs) - rhs = int(rhs) - - if o == '<': - return lhs < rhs - elif o == '>': - return lhs > rhs - elif o == '<=': - return lhs <= rhs - elif o == '>=': - return lhs >= rhs - else: - lhs = str(False if lhs is None else lhs) - - if o == '!=': - return rule.search(lhs) is None - elif o == '==': - return rule.search(lhs) is not None + lhs = str(False if lhs is None else lhs) + return rule.search(lhs) is not None return f - valid_targets = filter(_make_filter(key, op, value), valid_targets) + valid_targets = filter(_make_filter(key, value), valid_targets) else: cli.log.warning(f'Unrecognized filter expression: {filter_expr}') continue diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index dd659fe0f2..2b3d6f4049 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -118,18 +118,21 @@ def test_list_keymaps_kb_only(): result = check_subcommand('list-keymaps', '-kb', 'contra') check_returncode(result) assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_vendor_kb(): result = check_subcommand('list-keymaps', '-kb', 'ai03/lunar') check_returncode(result) assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_vendor_kb_rev(): result = check_subcommand('list-keymaps', '-kb', 'kbdfans/kbd67/mkiirgb/v2') check_returncode(result) assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_no_keyboard_found(): @@ -152,16 +155,17 @@ def test_json2c(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(KC_A) }; +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + +}; +#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -#ifdef OTHER_KEYMAP_C -# include OTHER_KEYMAP_C -#endif // OTHER_KEYMAP_C """ @@ -189,21 +193,28 @@ def test_json2c_stdin(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(KC_A) }; +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + +}; +#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -#ifdef OTHER_KEYMAP_C -# include OTHER_KEYMAP_C -#endif // OTHER_KEYMAP_C """ +def test_json2c_wrong_json(): + result = check_subcommand('json2c', 'keyboards/handwired/pytest/info.json') + check_returncode(result, [1]) + assert 'Invalid JSON keymap' in result.stdout + + def test_json2c_no_json(): result = check_subcommand('json2c', 'keyboards/handwired/pytest/basic/keymaps/default/keymap.c') check_returncode(result, [1]) @@ -339,68 +350,3 @@ def test_format_json_keymap_auto(): result = check_subcommand('format-json', '--format', 'auto', 'lib/python/qmk/tests/minimal_keymap.json') check_returncode(result) assert result.stdout == '{\n "keyboard": "handwired/pytest/basic",\n "keymap": "test",\n "layers": [\n ["KC_A"]\n ],\n "layout": "LAYOUT_ortho_1x1",\n "version": 1\n}\n' - - -def test_find_exists(): - result = check_subcommand('find', '-f', 'exists(rgb_matrix.split_count)', '-p', 'rgb_matrix.split_count') - check_returncode(result) - values = [s for s in result.stdout.splitlines() if 'rgb_matrix.split_count=' in s] - assert len(values) > 0 - for s in values: - assert '=None' not in s - assert '=[' in s - - -def test_find_absent(): - result = check_subcommand('find', '-f', 'absent(rgb_matrix.split_count)', '-p', 'rgb_matrix.split_count') - check_returncode(result) - values = [s for s in result.stdout.splitlines() if 'rgb_matrix.split_count=' in s] - assert len(values) > 0 - for s in values: - assert '=None' in s - assert '=[' not in s - - -def test_find_length(): - result = check_subcommand('find', '-f', 'length(matrix_pins.cols, 6)', '-p', 'matrix_pins.cols') - check_returncode(result) - values = [s for s in result.stdout.splitlines() if 'matrix_pins.cols=' in s] - assert len(values) > 0 - for s in values: - assert s.count(',') == 5 - - -def test_find_contains(): - result = check_subcommand('find', '-f', 'contains(matrix_pins.cols, B1)', '-p', 'matrix_pins.cols') - check_returncode(result) - values = [s for s in result.stdout.splitlines() if 'matrix_pins.cols=' in s] - assert len(values) > 0 - for s in values: - assert "'B1'" in s - - -def test_find_multiple_conditions(): - # this is intended to match at least 'crkbd/rev1' - result = check_subcommand( - 'find', '-f', 'exists(rgb_matrix.split_count)', '-f', 'contains(matrix_pins.cols, B1)', '-f', 'length(matrix_pins.cols, 6)', '-f', 'absent(eeprom.driver)', '-f', 'ws2812.pin == D3', '-p', 'rgb_matrix.split_count', '-p', 'matrix_pins.cols', '-p', - 'eeprom.driver', '-p', 'ws2812.pin' - ) - check_returncode(result) - rgb_matrix_split_count_values = [s for s in result.stdout.splitlines() if 'rgb_matrix.split_count=' in s] - assert len(rgb_matrix_split_count_values) > 0 - for s in rgb_matrix_split_count_values: - assert '=None' not in s - assert '=[' in s - matrix_pins_cols_values = [s for s in result.stdout.splitlines() if 'matrix_pins.cols=' in s] - assert len(matrix_pins_cols_values) > 0 - for s in matrix_pins_cols_values: - assert s.count(',') == 5 - assert "'B1'" in s - eeprom_driver_values = [s for s in result.stdout.splitlines() if 'eeprom.driver=' in s] - assert len(eeprom_driver_values) > 0 - for s in eeprom_driver_values: - assert '=None' in s - ws2812_pin_values = [s for s in result.stdout.splitlines() if 'ws2812.pin=' in s] - assert len(ws2812_pin_values) > 0 - for s in ws2812_pin_values: - assert '=D3' in s diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 80cc679b00..7482848eff 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -20,16 +20,17 @@ def test_generate_c_pytest_basic(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(KC_A) }; +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + +}; +#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -#ifdef OTHER_KEYMAP_C -# include OTHER_KEYMAP_C -#endif // OTHER_KEYMAP_C """ diff --git a/lib/python/qmk/userspace.py b/lib/python/qmk/userspace.py index 881490f796..1c2a97f9c1 100644 --- a/lib/python/qmk/userspace.py +++ b/lib/python/qmk/userspace.py @@ -12,30 +12,29 @@ from qmk.json_encoders import UserspaceJSONEncoder def qmk_userspace_paths(): - test_dirs = [] + test_dirs = set() # If we're already in a directory with a qmk.json and a keyboards or layouts directory, interpret it as userspace if environ.get('ORIG_CWD') is not None: current_dir = Path(environ['ORIG_CWD']) while len(current_dir.parts) > 1: if (current_dir / 'qmk.json').is_file(): - test_dirs.append(current_dir) + test_dirs.add(current_dir) current_dir = current_dir.parent # If we have a QMK_USERSPACE environment variable, use that if environ.get('QMK_USERSPACE') is not None: current_dir = Path(environ['QMK_USERSPACE']).expanduser() if current_dir.is_dir(): - test_dirs.append(current_dir) + test_dirs.add(current_dir) # If someone has configured a directory, use that if cli.config.user.overlay_dir is not None: current_dir = Path(cli.config.user.overlay_dir).expanduser().resolve() if current_dir.is_dir(): - test_dirs.append(current_dir) + test_dirs.add(current_dir) - # remove duplicates while maintaining the current order - return list(dict.fromkeys(test_dirs)) + return list(test_dirs) def qmk_userspace_validate(path): diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index 8f99410e1d..b73fab89d1 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -27,27 +27,6 @@ def maybe_exit_config(should_exit: bool = True, should_reraise: bool = False): maybe_exit_reraise = should_reraise -def truthy(value, value_if_unknown=False): - """Returns True if the value is truthy, False otherwise. - - Deals with: - True: 1, true, t, yes, y, on - False: 0, false, f, no, n, off - """ - if value in {False, True}: - return bool(value) - - test_value = str(value).strip().lower() - - if test_value in {"1", "true", "t", "yes", "y", "on"}: - return True - - if test_value in {"0", "false", "f", "no", "n", "off"}: - return False - - return value_if_unknown - - @contextlib.contextmanager def parallelize(): """Returns a function that can be used in place of a map() call. diff --git a/modules/qmk/flow_led_matrix_effect/led_matrix_module.inc b/modules/qmk/flow_led_matrix_effect/led_matrix_module.inc deleted file mode 100644 index 734e0f3494..0000000000 --- a/modules/qmk/flow_led_matrix_effect/led_matrix_module.inc +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -LED_MATRIX_EFFECT(FLOW) - -#ifdef LED_MATRIX_CUSTOM_EFFECT_IMPLS - -// "Flow" animated effect. Draws moving wave patterns mimicking the appearance -// of flowing liquid. For interesting variety of patterns, space coordinates are -// slowly rotated and a function of several sine waves is evaluated. -static bool FLOW(effect_params_t* params) { - LED_MATRIX_USE_LIMITS(led_min, led_max); - - static uint16_t wrap_correction = 0; - static uint8_t last_high_byte = 0; - const uint8_t time_scale = 1 + led_matrix_eeconfig.speed / 8; - const uint8_t high_byte = (uint8_t)(g_led_timer >> 16); - if (last_high_byte != high_byte) { - last_high_byte = high_byte; - wrap_correction += ((uint16_t)time_scale) << 8; - } - const uint16_t time = scale16by8(g_led_timer, time_scale) + wrap_correction; - - // Compute rotation coefficients with 7 fractional bits. - const int8_t rot_c = cos8(time / 4) - 128; - const int8_t rot_s = sin8(time / 4) - 128; - const uint8_t omega = 32 + sin8(time) / 4; - - for (uint8_t i = led_min; i < led_max; ++i) { - LED_MATRIX_TEST_LED_FLAGS(); - const uint8_t x = g_led_config.point[i].x; - const uint8_t y = g_led_config.point[i].y; - - // Rotate (x, y) by the 2x2 rotation matrix described by rot_c, rot_s. - const uint8_t x1 = (uint8_t)((((int16_t)rot_c) * ((int16_t)x)) / 128) - (uint8_t)((((int16_t)rot_s) * ((int16_t)y)) / 128); - const uint8_t y1 = (uint8_t)((((int16_t)rot_s) * ((int16_t)x)) / 128) + (uint8_t)((((int16_t)rot_c) * ((int16_t)y)) / 128); - - uint8_t value = scale8(sin8(x1 - 2 * time), omega) + y1 + time / 4; - value = (value <= 127) ? value : (255 - value); - - led_matrix_set_value(i, scale8(led_matrix_eeconfig.val, value)); - } - - return led_matrix_check_finished_leds(led_max); -} - -#endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/modules/qmk/flow_led_matrix_effect/qmk_module.json b/modules/qmk/flow_led_matrix_effect/qmk_module.json deleted file mode 100644 index 2d047cd0d0..0000000000 --- a/modules/qmk/flow_led_matrix_effect/qmk_module.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "module_name": "Flow LED matrix effect", - "maintainer": "QMK Maintainers", - "license": "Apache-2.0", - "features": { - "led_matrix": true - } -} diff --git a/modules/qmk/flow_rgb_matrix_effect/qmk_module.json b/modules/qmk/flow_rgb_matrix_effect/qmk_module.json deleted file mode 100644 index 3e42fe1ef4..0000000000 --- a/modules/qmk/flow_rgb_matrix_effect/qmk_module.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "module_name": "Flow RGB matrix effect", - "maintainer": "QMK Maintainers", - "license": "Apache-2.0", - "features": { - "rgb_matrix": true - } -} diff --git a/modules/qmk/flow_rgb_matrix_effect/rgb_matrix_module.inc b/modules/qmk/flow_rgb_matrix_effect/rgb_matrix_module.inc deleted file mode 100644 index 410838f7ec..0000000000 --- a/modules/qmk/flow_rgb_matrix_effect/rgb_matrix_module.inc +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -RGB_MATRIX_EFFECT(FLOW) - -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -// "Flow" animated effect. Draws moving wave patterns mimicking the appearance -// of flowing liquid. For interesting variety of patterns, space coordinates are -// slowly rotated and a function of several sine waves is evaluated. -static bool FLOW(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - - static uint16_t wrap_correction = 0; - static uint8_t last_high_byte = 0; - const uint8_t time_scale = 1 + rgb_matrix_config.speed / 8; - const uint8_t high_byte = (uint8_t)(g_rgb_timer >> 16); - if (last_high_byte != high_byte) { - last_high_byte = high_byte; - wrap_correction += ((uint16_t)time_scale) << 8; - } - const uint16_t time = scale16by8(g_rgb_timer, time_scale) + wrap_correction; - - // Compute rotation coefficients with 7 fractional bits. - const int8_t rot_c = cos8(time / 4) - 128; - const int8_t rot_s = sin8(time / 4) - 128; - const uint8_t omega = 32 + sin8(time) / 4; - - for (uint8_t i = led_min; i < led_max; ++i) { - RGB_MATRIX_TEST_LED_FLAGS(); - const uint8_t x = g_led_config.point[i].x; - const uint8_t y = g_led_config.point[i].y; - - // Rotate (x, y) by the 2x2 rotation matrix described by rot_c, rot_s. - const uint8_t x1 = (uint8_t)((((int16_t)rot_c) * ((int16_t)x)) / 128) - (uint8_t)((((int16_t)rot_s) * ((int16_t)y)) / 128); - const uint8_t y1 = (uint8_t)((((int16_t)rot_s) * ((int16_t)x)) / 128) + (uint8_t)((((int16_t)rot_c) * ((int16_t)y)) / 128); - - uint8_t value = scale8(sin8(x1 - 2 * time), omega) + y1 + time / 4; - value = (value <= 127) ? value : (255 - value); - - hsv_t hsv = rgb_matrix_config.hsv; - hsv.h -= value / 4; - hsv.s = scale8(hsv.s, (value < 74) ? 255 : (549 - 4 * value)); - hsv.v = scale8(hsv.v, (value < 95) ? (64 + 2 * value) : 255); - - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - - return rgb_matrix_check_finished_leds(led_max); -} - -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/modules/qmk/hello_world/hello_world.c b/modules/qmk/hello_world/hello_world.c deleted file mode 100644 index dcabfc60ea..0000000000 --- a/modules/qmk/hello_world/hello_world.c +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -#include "introspection.h" - -ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0); - -uint32_t delayed_hello_world(uint32_t trigger_time, void *cb_arg) { - dprintf("Hello, world! I'm a QMK based keyboard! The keymap array size is %d bytes.\n", (int)hello_world_introspection().total_size); - return 0; -} - -void keyboard_post_init_hello_world(void) { - keyboard_post_init_hello_world_kb(); - defer_exec(10000, delayed_hello_world, NULL); -} - -bool process_record_hello_world(uint16_t keycode, keyrecord_t *record) { - if (!process_record_hello_world_kb(keycode, record)) { - return false; - } - - switch (keycode) { - case COMMUNITY_MODULE_HELLO: - if (record->event.pressed) { - SEND_STRING("Hello there."); - break; - } - } - - return true; -} diff --git a/modules/qmk/hello_world/introspection.c b/modules/qmk/hello_world/introspection.c deleted file mode 100644 index 2c32a074f5..0000000000 --- a/modules/qmk/hello_world/introspection.c +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later - -hello_world_introspection_t hello_world_introspection(void) { - hello_world_introspection_t introspection = { - .total_size = sizeof(keymaps), - .layer_count = sizeof(keymaps) / sizeof(keymaps[0]), - }; - return introspection; -} diff --git a/modules/qmk/hello_world/introspection.h b/modules/qmk/hello_world/introspection.h deleted file mode 100644 index fd3d7f24a0..0000000000 --- a/modules/qmk/hello_world/introspection.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -typedef struct hello_world_introspection_t { - int16_t total_size; - int16_t layer_count; -} hello_world_introspection_t; - -hello_world_introspection_t hello_world_introspection(void); diff --git a/modules/qmk/hello_world/qmk_module.json b/modules/qmk/hello_world/qmk_module.json deleted file mode 100644 index bbd00f3fcc..0000000000 --- a/modules/qmk/hello_world/qmk_module.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "module_name": "Hello World", - "maintainer": "QMK Maintainers", - "license": "GPL-2.0-or-later", - "features": { - "console": true, - "deferred_exec": true - }, - "keycodes": [ - { - "key": "COMMUNITY_MODULE_HELLO", - "aliases": ["CM_HELO"] - } - ] -} diff --git a/modules/qmk/hello_world/rules.mk b/modules/qmk/hello_world/rules.mk deleted file mode 100644 index 91806fb1e3..0000000000 --- a/modules/qmk/hello_world/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Just a simple rules.mk which tests that they work from a community module. -$(shell $(QMK_BIN) hello -n "from QMK's hello world community module") diff --git a/modules/qmk/super_alt_tab/qmk_module.json b/modules/qmk/super_alt_tab/qmk_module.json deleted file mode 100644 index 142613a23e..0000000000 --- a/modules/qmk/super_alt_tab/qmk_module.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "module_name": "Super Alt Tab", - "maintainer": "QMK Maintainers", - "license": "GPL-2.0-or-later", - "keycodes": [ - { - "key": "COMMUNITY_MODULE_SUPER_ALT_TAB", - "aliases": ["CM_S_AT"] - } - ] -} diff --git a/modules/qmk/super_alt_tab/super_alt_tab.c b/modules/qmk/super_alt_tab/super_alt_tab.c deleted file mode 100644 index dfeb4b5773..0000000000 --- a/modules/qmk/super_alt_tab/super_alt_tab.c +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2025 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0); - -static bool is_alt_tab_active = false; -static uint16_t alt_tab_timer = 0; - -#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT -# define COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT 1000 -#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT -#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER -# define COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER MOD_LALT -#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER -#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_KEY -# define COMMUNITY_MODULE_SUPER_ALT_TAB_KEY KC_TAB -#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_KEY - -bool process_record_super_alt_tab(uint16_t keycode, keyrecord_t *record) { - if (!process_record_super_alt_tab_kb(keycode, record)) { - return false; - } - - switch (keycode) { // This will do most of the grunt work with the keycodes. - case COMMUNITY_MODULE_SUPER_ALT_TAB: - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_mods(COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER); - } - alt_tab_timer = timer_read(); - register_code(COMMUNITY_MODULE_SUPER_ALT_TAB_KEY); - } else { - unregister_code(COMMUNITY_MODULE_SUPER_ALT_TAB_KEY); - } - break; - } - return true; -} - -void housekeeping_task_super_alt_tab(void) { - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT) { - unregister_mods(COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER); - is_alt_tab_active = false; - } - } -} diff --git a/platforms/arm_atsam/_pin_defs.h b/platforms/arm_atsam/_pin_defs.h new file mode 100644 index 0000000000..5b50b23910 --- /dev/null +++ b/platforms/arm_atsam/_pin_defs.h @@ -0,0 +1,84 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "samd51j18a.h" + +#define A00 PIN_PA00 +#define A01 PIN_PA01 +#define A02 PIN_PA02 +#define A03 PIN_PA03 +#define A04 PIN_PA04 +#define A05 PIN_PA05 +#define A06 PIN_PA06 +#define A07 PIN_PA07 +#define A08 PIN_PA08 +#define A09 PIN_PA09 +#define A10 PIN_PA10 +#define A11 PIN_PA11 +#define A12 PIN_PA12 +#define A13 PIN_PA13 +#define A14 PIN_PA14 +#define A15 PIN_PA15 +#define A16 PIN_PA16 +#define A17 PIN_PA17 +#define A18 PIN_PA18 +#define A19 PIN_PA19 +#define A20 PIN_PA20 +#define A21 PIN_PA21 +#define A22 PIN_PA22 +#define A23 PIN_PA23 +#define A24 PIN_PA24 +#define A25 PIN_PA25 +#define A26 PIN_PA26 +#define A27 PIN_PA27 +#define A28 PIN_PA28 +#define A29 PIN_PA29 +#define A30 PIN_PA30 +#define A31 PIN_PA31 + +#define B00 PIN_PB00 +#define B01 PIN_PB01 +#define B02 PIN_PB02 +#define B03 PIN_PB03 +#define B04 PIN_PB04 +#define B05 PIN_PB05 +#define B06 PIN_PB06 +#define B07 PIN_PB07 +#define B08 PIN_PB08 +#define B09 PIN_PB09 +#define B10 PIN_PB10 +#define B11 PIN_PB11 +#define B12 PIN_PB12 +#define B13 PIN_PB13 +#define B14 PIN_PB14 +#define B15 PIN_PB15 +#define B16 PIN_PB16 +#define B17 PIN_PB17 +#define B18 PIN_PB18 +#define B19 PIN_PB19 +#define B20 PIN_PB20 +#define B21 PIN_PB21 +#define B22 PIN_PB22 +#define B23 PIN_PB23 +#define B24 PIN_PB24 +#define B25 PIN_PB25 +#define B26 PIN_PB26 +#define B27 PIN_PB27 +#define B28 PIN_PB28 +#define B29 PIN_PB29 +#define B30 PIN_PB30 +#define B31 PIN_PB31 diff --git a/platforms/arm_atsam/_timer.h b/platforms/arm_atsam/_timer.h new file mode 100644 index 0000000000..77402b612a --- /dev/null +++ b/platforms/arm_atsam/_timer.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Simon Arlott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// The platform is 32-bit, so prefer 32-bit timers to avoid overflow +#define FAST_TIMER_T_SIZE 32 diff --git a/platforms/arm_atsam/_util.h b/platforms/arm_atsam/_util.h new file mode 100644 index 0000000000..38aa9f4472 --- /dev/null +++ b/platforms/arm_atsam/_util.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ramfunc." #funcname), noinline)) funcname + +#if __has_include_next("_util.h") +# include_next "_util.h" +#endif diff --git a/platforms/arm_atsam/_wait.h b/platforms/arm_atsam/_wait.h new file mode 100644 index 0000000000..41b686b56c --- /dev/null +++ b/platforms/arm_atsam/_wait.h @@ -0,0 +1,22 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "clks.h" + +#define wait_ms(ms) CLK_delay_ms(ms) +#define wait_us(us) CLK_delay_us(us) +#define waitInputPinDelay() diff --git a/platforms/arm_atsam/atomic_util.h b/platforms/arm_atsam/atomic_util.h new file mode 100644 index 0000000000..848542d23a --- /dev/null +++ b/platforms/arm_atsam/atomic_util.h @@ -0,0 +1,37 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "samd51j18a.h" + +static __inline__ uint8_t __interrupt_disable__(void) { + __disable_irq(); + + return 1; +} + +static __inline__ void __interrupt_enable__(const uint8_t *__s) { + __enable_irq(); + + __asm__ volatile("" ::: "memory"); + (void)__s; +} + +#define ATOMIC_BLOCK(type) for (type, __ToDo = __interrupt_disable__(); __ToDo; __ToDo = 0) +#define ATOMIC_FORCEON uint8_t sreg_save __attribute__((__cleanup__(__interrupt_enable__))) = 0 + +#define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE not implemented") +#define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON) diff --git a/platforms/arm_atsam/bootloader.mk b/platforms/arm_atsam/bootloader.mk new file mode 100644 index 0000000000..7e503bdca9 --- /dev/null +++ b/platforms/arm_atsam/bootloader.mk @@ -0,0 +1,48 @@ +# Copyright 2017 Jack Humbert +# +# 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 . + +# If it's possible that multiple bootloaders can be used for one project, +# you can leave this unset, and the correct size will be selected +# automatically. +# +# Sets the bootloader defined in the keyboard's/keymap's rules.mk +# +# Current options for ARM (ATSAM): +# md-boot Atmel SAM-BA (only used by Drop boards) +# +# If you need to provide your own implementation, you can set inside `rules.mk` +# `BOOTLOADER = custom` -- you'll need to provide your own implementations. See +# the respective file under `platforms//bootloaders/custom.c` to see +# which functions may be overridden. + +FIRMWARE_FORMAT?=bin + +ifeq ($(strip $(BOOTLOADER)), custom) + OPT_DEFS += -DBOOTLOADER_CUSTOM + BOOTLOADER_TYPE = custom +endif + +ifeq ($(strip $(BOOTLOADER)), md-boot) + OPT_DEFS += -DBOOTLOADER_MD_BOOT + BOOTLOADER_TYPE = md_boot +endif + +ifeq ($(strip $(BOOTLOADER_TYPE)),) + ifneq ($(strip $(BOOTLOADER)),) + $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,Invalid bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) + else + $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) + endif +endif diff --git a/platforms/arm_atsam/bootloaders/md_boot.c b/platforms/arm_atsam/bootloaders/md_boot.c new file mode 100644 index 0000000000..1cf7aec62c --- /dev/null +++ b/platforms/arm_atsam/bootloaders/md_boot.c @@ -0,0 +1,69 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "bootloader.h" + +#include "samd51j18a.h" + +// WARNING: These are only for CTRL bootloader release "v2.18Jun 22 2018 17:28:08" for bootloader_jump support +extern uint32_t _eram; +#define BOOTLOADER_MAGIC 0x3B9ACA00 +#define MAGIC_ADDR (uint32_t *)((intptr_t)(&_eram) - 4) + +// CTRL keyboards released with bootloader version below must use RAM method. Otherwise use WDT method. +void bootloader_jump(void) { +#ifdef KEYBOARD_massdrop_ctrl + uint8_t ver_ram_method[] = "v2.18Jun 22 2018 17:28:08"; // The version to match (NULL terminated by compiler) + uint8_t *ver_check = ver_ram_method; // Pointer to version match string for traversal + uint8_t *ver_rom = (uint8_t *)0x21A0; // Pointer to address in ROM where this specific bootloader version would exist + + while (*ver_check && *ver_rom == *ver_check) { // While there are check version characters to match and bootloader's version matches check's version + ver_check++; // Move check version pointer to next character + ver_rom++; // Move ROM version pointer to next character + } + + if (!*ver_check) { // If check version pointer is NULL, all characters have matched + *MAGIC_ADDR = BOOTLOADER_MAGIC; // Set magic number into RAM + NVIC_SystemReset(); // Perform system reset + while (1) + ; // Won't get here + } +#endif + + // Set watchdog timer to reset. Directs the bootloader to stay in programming mode. + WDT->CTRLA.bit.ENABLE = 0; + + while (WDT->SYNCBUSY.bit.ENABLE) + ; + while (WDT->CTRLA.bit.ENABLE) + ; + + WDT->CONFIG.bit.WINDOW = 0; + WDT->CONFIG.bit.PER = 0; + WDT->EWCTRL.bit.EWOFFSET = 0; + WDT->CTRLA.bit.ENABLE = 1; + + while (WDT->SYNCBUSY.bit.ENABLE) + ; + while (!WDT->CTRLA.bit.ENABLE) + ; + while (1) + ; // Wait on timeout +} + +__attribute__((weak)) void mcu_reset(void) { + NVIC_SystemReset(); +} diff --git a/platforms/arm_atsam/eeprom_samd.c b/platforms/arm_atsam/eeprom_samd.c new file mode 100644 index 0000000000..9c42041f2d --- /dev/null +++ b/platforms/arm_atsam/eeprom_samd.c @@ -0,0 +1,179 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "eeprom.h" +#include "debug.h" +#include "util.h" +#include "samd51j18a.h" +#include "core_cm4.h" +#include "component/nvmctrl.h" +#include "eeprom_samd.h" + +#ifndef BUSY_RETRIES +# define BUSY_RETRIES 10000 +#endif + +// #define DEBUG_EEPROM_OUTPUT + +/* + * Debug print utils + */ +#if defined(DEBUG_EEPROM_OUTPUT) +# define eeprom_printf(fmt, ...) xprintf(fmt, ##__VA_ARGS__); +#else /* NO_DEBUG */ +# define eeprom_printf(fmt, ...) +#endif /* NO_DEBUG */ + +__attribute__((aligned(4))) static uint8_t buffer[EEPROM_SIZE] = {0}; +volatile uint8_t * SmartEEPROM8 = (uint8_t *)SEEPROM_ADDR; + +static inline bool eeprom_is_busy(void) { + int timeout = BUSY_RETRIES; + while (NVMCTRL->SEESTAT.bit.BUSY && timeout-- > 0) + ; + + return NVMCTRL->SEESTAT.bit.BUSY; +} + +static uint32_t get_virtual_eeprom_size(void) { + // clang-format off + static const uint32_t VIRTUAL_EEPROM_MAP[11][8] = { + /* 4 8 16 32 64 128 256 512 */ + /* 0*/ { 0, 0, 0, 0, 0, 0, 0, 0 }, + /* 1*/ { 512, 1024, 2048, 4096, 4096, 4096, 4096, 4096 }, + /* 2*/ { 512, 1024, 2048, 4096, 8192, 8192, 8192, 8192 }, + /* 3*/ { 512, 1024, 2048, 4096, 8192, 16384, 16384, 16384 }, + /* 4*/ { 512, 1024, 2048, 4096, 8192, 16384, 16384, 16384 }, + /* 5*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 32768 }, + /* 6*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 32768 }, + /* 7*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 32768 }, + /* 8*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 32768 }, + /* 9*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 }, + /*10*/ { 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 }, + }; + // clang-format on + + static uint32_t virtual_eeprom_size = UINT32_MAX; + if (virtual_eeprom_size == UINT32_MAX) { + virtual_eeprom_size = VIRTUAL_EEPROM_MAP[NVMCTRL->SEESTAT.bit.PSZ][NVMCTRL->SEESTAT.bit.SBLK]; + } + // eeprom_printf("get_virtual_eeprom_size:: %d:%d:%d\n", NVMCTRL->SEESTAT.bit.PSZ, NVMCTRL->SEESTAT.bit.SBLK, virtual_eeprom_size); + return virtual_eeprom_size; +} + +uint8_t eeprom_read_byte(const uint8_t *addr) { + uintptr_t offset = (uintptr_t)addr; + if (offset >= MAX(EEPROM_SIZE, get_virtual_eeprom_size())) { + eeprom_printf("eeprom_read_byte:: out of bounds\n"); + return 0x0; + } + + if (get_virtual_eeprom_size() == 0) { + return buffer[offset]; + } + + if (eeprom_is_busy()) { + eeprom_printf("eeprom_write_byte:: timeout\n"); + return 0x0; + } + + return SmartEEPROM8[offset]; +} + +void eeprom_write_byte(uint8_t *addr, uint8_t value) { + uintptr_t offset = (uintptr_t)addr; + if (offset >= MAX(EEPROM_SIZE, get_virtual_eeprom_size())) { + eeprom_printf("eeprom_write_byte:: out of bounds\n"); + return; + } + + if (get_virtual_eeprom_size() == 0) { + buffer[offset] = value; + return; + } + + if (eeprom_is_busy()) { + eeprom_printf("eeprom_write_byte:: timeout\n"); + return; + } + + SmartEEPROM8[offset] = value; +} + +uint16_t eeprom_read_word(const uint16_t *addr) { + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8); +} + +uint32_t eeprom_read_dword(const uint32_t *addr) { + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); +} + +void eeprom_read_block(void *buf, const void *addr, size_t len) { + const uint8_t *p = (const uint8_t *)addr; + uint8_t * dest = (uint8_t *)buf; + while (len--) { + *dest++ = eeprom_read_byte(p++); + } +} + +void eeprom_write_word(uint16_t *addr, uint16_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p, value >> 8); +} + +void eeprom_write_dword(uint32_t *addr, uint32_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p++, value >> 8); + eeprom_write_byte(p++, value >> 16); + eeprom_write_byte(p, value >> 24); +} + +void eeprom_write_block(const void *buf, void *addr, size_t len) { + uint8_t * p = (uint8_t *)addr; + const uint8_t *src = (const uint8_t *)buf; + while (len--) { + eeprom_write_byte(p++, *src++); + } +} + +void eeprom_update_byte(uint8_t *addr, uint8_t value) { + eeprom_write_byte(addr, value); +} + +void eeprom_update_word(uint16_t *addr, uint16_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p, value >> 8); +} + +void eeprom_update_dword(uint32_t *addr, uint32_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p++, value >> 8); + eeprom_write_byte(p++, value >> 16); + eeprom_write_byte(p, value >> 24); +} + +void eeprom_update_block(const void *buf, void *addr, size_t len) { + uint8_t * p = (uint8_t *)addr; + const uint8_t *src = (const uint8_t *)buf; + while (len--) { + eeprom_write_byte(p++, *src++); + } +} diff --git a/platforms/arm_atsam/eeprom_samd.h b/platforms/arm_atsam/eeprom_samd.h new file mode 100644 index 0000000000..878e72865c --- /dev/null +++ b/platforms/arm_atsam/eeprom_samd.h @@ -0,0 +1,8 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifndef EEPROM_SIZE +# include "eeconfig.h" +# define EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO +#endif diff --git a/platforms/arm_atsam/flash.mk b/platforms/arm_atsam/flash.mk new file mode 100644 index 0000000000..8068c08d57 --- /dev/null +++ b/platforms/arm_atsam/flash.mk @@ -0,0 +1,23 @@ +# Hey Emacs, this is a -*- makefile -*- +############################################################################## +# Architecture or project specific options +# + +MDLOADER_CLI ?= mdloader + +define EXEC_MDLOADER + $(MDLOADER_CLI) --first --download $(BUILD_DIR)/$(TARGET).bin --restart +endef + +mdloader: bin + $(call EXEC_MDLOADER) + +flash: bin + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" +ifneq ($(strip $(PROGRAM_CMD)),) + $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) +else ifeq ($(strip $(ARM_ATSAM)),SAMD51J18A) + $(UNSYNC_OUTPUT_CMD) && $(call EXEC_MDLOADER) +else + $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_ARCH)" +endif diff --git a/platforms/arm_atsam/gpio.h b/platforms/arm_atsam/gpio.h new file mode 100644 index 0000000000..fd8caeab0b --- /dev/null +++ b/platforms/arm_atsam/gpio.h @@ -0,0 +1,81 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include "samd51j18a.h" + +#include "pin_defs.h" + +typedef uint8_t pin_t; + +#define SAMD_PORT(pin) (((pin)&0x20) >> 5) +#define SAMD_PIN(pin) ((pin)&0x1f) +#define SAMD_PIN_MASK(pin) (1 << ((pin)&0x1f)) + +#define gpio_set_pin_input(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define gpio_set_pin_input_high(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTSET.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.PULLEN = 1; \ + } while (0) + +#define gpio_set_pin_input_low(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.INEN = 1; \ + PORT->Group[SAMD_PORT(pin)].PINCFG[SAMD_PIN(pin)].bit.PULLEN = 1; \ + } while (0) + +#define gpio_set_pin_output_push_pull(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].DIRSET.reg = SAMD_PIN_MASK(pin); \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define gpio_set_pin_output_open_drain(pin) _Static_assert(0, "Open-drain outputs are not available on ATSAM") + +#define gpio_set_pin_output(pin) gpio_set_pin_output_push_pull(pin) + +#define gpio_write_pin_high(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].OUTSET.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define gpio_write_pin_low(pin) \ + do { \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define gpio_write_pin(pin, level) \ + do { \ + if (level) \ + PORT->Group[SAMD_PORT(pin)].OUTSET.reg = SAMD_PIN_MASK(pin); \ + else \ + PORT->Group[SAMD_PORT(pin)].OUTCLR.reg = SAMD_PIN_MASK(pin); \ + } while (0) + +#define gpio_read_pin(pin) ((PORT->Group[SAMD_PORT(pin)].IN.reg & SAMD_PIN_MASK(pin)) != 0) + +#define gpio_toggle_pin(pin) (PORT->Group[SAMD_PORT(pin)].OUTTGL.reg = SAMD_PIN_MASK(pin)) diff --git a/platforms/arm_atsam/hardware_id.c b/platforms/arm_atsam/hardware_id.c new file mode 100644 index 0000000000..fc193e46d8 --- /dev/null +++ b/platforms/arm_atsam/hardware_id.c @@ -0,0 +1,9 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "hardware_id.h" + +__attribute__((weak)) hardware_id_t get_hardware_id(void) { + hardware_id_t id = {0}; + return id; +} diff --git a/platforms/arm_atsam/platform.c b/platforms/arm_atsam/platform.c new file mode 100644 index 0000000000..3e35b4fe4c --- /dev/null +++ b/platforms/arm_atsam/platform.c @@ -0,0 +1,21 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "platform_deps.h" + +void platform_setup(void) { + // do nothing +} diff --git a/platforms/arm_atsam/platform.mk b/platforms/arm_atsam/platform.mk new file mode 100644 index 0000000000..9462f517ae --- /dev/null +++ b/platforms/arm_atsam/platform.mk @@ -0,0 +1,68 @@ +# Hey Emacs, this is a -*- makefile -*- +############################################################################## +# Compiler settings +# +CC = $(CC_PREFIX) arm-none-eabi-gcc +OBJCOPY = arm-none-eabi-objcopy +OBJDUMP = arm-none-eabi-objdump +SIZE = arm-none-eabi-size +AR = arm-none-eabi-ar +NM = arm-none-eabi-nm +HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature +EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) +BIN = + +COMMON_VPATH += $(LIB_PATH)/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include +COMMON_VPATH += $(LIB_PATH)/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include + +COMPILEFLAGS += -funsigned-char +COMPILEFLAGS += -funsigned-bitfields +COMPILEFLAGS += -ffunction-sections +COMPILEFLAGS += -fshort-enums +COMPILEFLAGS += -fno-inline-small-functions +COMPILEFLAGS += -fno-strict-aliasing +COMPILEFLAGS += -mfloat-abi=hard +COMPILEFLAGS += -mfpu=fpv4-sp-d16 +COMPILEFLAGS += -mthumb +COMPILEFLAGS += -fno-builtin-printf + +#ALLOW_WARNINGS = yes + +CFLAGS += $(COMPILEFLAGS) + +CXXFLAGS += $(COMPILEFLAGS) +CXXFLAGS += -fno-exceptions $(CXXSTANDARD) + +LDFLAGS +=-Wl,--gc-sections +LDFLAGS += -Wl,-Map="%OUT%%PROJ_NAME%.map" +LDFLAGS += -Wl,--start-group +LDFLAGS += -Wl,--end-group +LDFLAGS += --specs=rdimon.specs +LDFLAGS += -T$(LIB_PATH)/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld + +OPT_DEFS += -DPROTOCOL_ARM_ATSAM + +MCUFLAGS = -mcpu=$(MCU) +MCUFLAGS += -D__$(ARM_ATSAM)__ + +# List any extra directories to look for libraries here. +# Each directory must be seperated by a space. +# Use forward slashes for directory separators. +# For a directory that has spaces, enclose it in quotes. +EXTRALIBDIRS = + +cpfirmware: warn-arm_atsam +.INTERMEDIATE: warn-arm_atsam +warn-arm_atsam: $(FIRMWARE_FORMAT) + $(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) + $(info This MCU support package has a lack of support from the upstream provider (Massdrop).) + $(info There are currently questions about valid licensing, and at this stage it's likely) + $(info their boards and supporting code will be removed from QMK in the near future. Please) + $(info contact Massdrop for support, and encourage them to align their future board design) + $(info choices to gain proper license compatibility with QMK.) + $(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) + +# Convert hex to bin. +bin: $(BUILD_DIR)/$(TARGET).hex + $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; diff --git a/platforms/arm_atsam/platform_deps.h b/platforms/arm_atsam/platform_deps.h new file mode 100644 index 0000000000..f296d1d535 --- /dev/null +++ b/platforms/arm_atsam/platform_deps.h @@ -0,0 +1,18 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// here just to please the build diff --git a/platforms/arm_atsam/suspend.c b/platforms/arm_atsam/suspend.c new file mode 100644 index 0000000000..242e9c91a2 --- /dev/null +++ b/platforms/arm_atsam/suspend.c @@ -0,0 +1,34 @@ +#include "matrix.h" +#include "i2c_master.h" +#include "md_rgb_matrix.h" +#include "suspend.h" + +/** \brief Suspend power down + * + * FIXME: needs doc + */ +void suspend_power_down(void) { +#ifdef RGB_MATRIX_ENABLE + I2C3733_Control_Set(0); // Disable LED driver +#endif + + suspend_power_down_kb(); +} + +/** \brief run immediately after wakeup + * + * FIXME: needs doc + */ +void suspend_wakeup_init(void) { +#ifdef RGB_MATRIX_ENABLE +# ifdef USE_MASSDROP_CONFIGURATOR + if (led_enabled) { + I2C3733_Control_Set(1); + } +# else + I2C3733_Control_Set(1); +# endif +#endif + + suspend_wakeup_init_kb(); +} diff --git a/platforms/arm_atsam/timer.c b/platforms/arm_atsam/timer.c new file mode 100644 index 0000000000..cf01e3625e --- /dev/null +++ b/platforms/arm_atsam/timer.c @@ -0,0 +1,35 @@ +#include "samd51j18a.h" +#include "timer.h" +#include "tmk_core/protocol/arm_atsam/clks.h" + +void set_time(uint64_t tset) { + ms_clk = tset; +} + +void timer_init(void) { + timer_clear(); +} + +uint16_t timer_read(void) { + return (uint16_t)ms_clk; +} + +uint32_t timer_read32(void) { + return (uint32_t)ms_clk; +} + +uint64_t timer_read64(void) { + return ms_clk; +} + +uint16_t timer_elapsed(uint16_t tlast) { + return TIMER_DIFF_16(timer_read(), tlast); +} + +uint32_t timer_elapsed32(uint32_t tlast) { + return TIMER_DIFF_32(timer_read32(), tlast); +} + +void timer_clear(void) { + set_time(0); +} diff --git a/platforms/atomic_util.h b/platforms/atomic_util.h index 8e81eacdb8..21286d72eb 100644 --- a/platforms/atomic_util.h +++ b/platforms/atomic_util.h @@ -15,19 +15,17 @@ */ #pragma once -#include "compiler_support.h" - // Macro to help make GPIO and other controls atomic. #ifndef IGNORE_ATOMIC_BLOCK # if __has_include_next("atomic_util.h") # include_next "atomic_util.h" /* Include the platforms atomic.h */ # else -# define ATOMIC_BLOCK STATIC_ASSERT(0, "ATOMIC_BLOCK not implemented") -# define ATOMIC_BLOCK_RESTORESTATE STATIC_ASSERT(0, "ATOMIC_BLOCK_RESTORESTATE not implemented") -# define ATOMIC_BLOCK_FORCEON STATIC_ASSERT(0, "ATOMIC_BLOCK_FORCEON not implemented") -# define ATOMIC_FORCEON STATIC_ASSERT(0, "ATOMIC_FORCEON not implemented") -# define ATOMIC_RESTORESTATE STATIC_ASSERT(0, "ATOMIC_RESTORESTATE not implemented") +# define ATOMIC_BLOCK _Static_assert(0, "ATOMIC_BLOCK not implemented") +# define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE not implemented") +# define ATOMIC_BLOCK_FORCEON _Static_assert(0, "ATOMIC_BLOCK_FORCEON not implemented") +# define ATOMIC_FORCEON _Static_assert(0, "ATOMIC_FORCEON not implemented") +# define ATOMIC_RESTORESTATE _Static_assert(0, "ATOMIC_RESTORESTATE not implemented") # endif #else /* do nothing atomic macro */ # define ATOMIC_BLOCK(t) for (uint8_t __ToDo = 1; __ToDo; __ToDo = 0) diff --git a/platforms/avr/_wait.h b/platforms/avr/_wait.h index 54f578ace0..39cbf618d2 100644 --- a/platforms/avr/_wait.h +++ b/platforms/avr/_wait.h @@ -21,8 +21,6 @@ #include #pragma GCC diagnostic pop -extern void __builtin_avr_delay_cycles(uint32_t); - // http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf // page 22: Table 4-2. Arithmetic and Logic Instructions /* diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index 9136f4a7b9..64083d862a 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -315,4 +315,4 @@ __attribute__((weak)) i2c_status_t i2c_ping_address(uint8_t address, uint16_t ti i2c_status_t status = i2c_start(address, timeout); i2c_stop(); return status; -} +} \ No newline at end of file diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h new file mode 100644 index 0000000000..b797997619 --- /dev/null +++ b/platforms/avr/drivers/i2c_master.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2019 Elia Ritterbusch + + + * 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 3 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 . + */ +/* Library made by: g4lvanix + * GitHub repository: https://github.com/g4lvanix/I2C-master-lib + */ + +#pragma once + +#include + +// ### DEPRECATED - DO NOT USE ### +#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) +#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) +#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) +#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) +// ############################### + +#define I2C_READ 0x01 +#define I2C_WRITE 0x00 + +typedef int16_t i2c_status_t; + +#define I2C_STATUS_SUCCESS (0) +#define I2C_STATUS_ERROR (-1) +#define I2C_STATUS_TIMEOUT (-2) + +#define I2C_TIMEOUT_IMMEDIATE (0) +#define I2C_TIMEOUT_INFINITE (0xFFFF) + +void i2c_init(void); +i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); diff --git a/platforms/avr/drivers/i2c_slave.h b/platforms/avr/drivers/i2c_slave.h index 8614bd865a..178b6a29df 100644 --- a/platforms/avr/drivers/i2c_slave.h +++ b/platforms/avr/drivers/i2c_slave.h @@ -22,8 +22,6 @@ #pragma once -#include "compiler_support.h" - #ifndef I2C_SLAVE_REG_COUNT # if defined(USE_I2C) && defined(SPLIT_COMMON_TRANSACTIONS) @@ -35,7 +33,7 @@ #endif // I2C_SLAVE_REG_COUNT -STATIC_ASSERT(I2C_SLAVE_REG_COUNT < 256, "I2C target registers must be single byte"); +_Static_assert(I2C_SLAVE_REG_COUNT < 256, "I2C target registers must be single byte"); extern volatile uint8_t i2c_slave_reg[I2C_SLAVE_REG_COUNT]; diff --git a/platforms/avr/drivers/spi_master.c b/platforms/avr/drivers/spi_master.c index ba7d782ab0..74b847c71a 100644 --- a/platforms/avr/drivers/spi_master.c +++ b/platforms/avr/drivers/spi_master.c @@ -36,18 +36,9 @@ # define SPI_TIMEOUT 100 #endif -static pin_t current_slave_pin = NO_PIN; -static bool current_cs_active_low = true; -static uint8_t current_slave_config = 0; -static bool current_slave_2x = false; - -static inline void spi_select(void) { - gpio_write_pin(current_slave_pin, current_cs_active_low ? 0 : 1); -} - -static inline void spi_unselect(void) { - gpio_write_pin(current_slave_pin, current_cs_active_low ? 1 : 0); -} +static pin_t currentSlavePin = NO_PIN; +static uint8_t currentSlaveConfig = 0; +static bool currentSlave2X = false; void spi_init(void) { gpio_write_pin_high(SPI_SS_PIN); @@ -59,74 +50,63 @@ void spi_init(void) { } bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { - spi_start_config_t start_config = {0}; - start_config.slave_pin = slavePin; - start_config.lsb_first = lsbFirst; - start_config.mode = mode; - start_config.divisor = divisor; - start_config.cs_active_low = true; - return spi_start_extended(&start_config); -} - -bool spi_start_extended(spi_start_config_t *start_config) { - if (current_slave_pin != NO_PIN || start_config->slave_pin == NO_PIN) { + if (currentSlavePin != NO_PIN || slavePin == NO_PIN) { return false; } - current_slave_config = 0; + currentSlaveConfig = 0; - if (start_config->lsb_first) { - current_slave_config |= _BV(DORD); + if (lsbFirst) { + currentSlaveConfig |= _BV(DORD); } - switch (start_config->mode) { + switch (mode) { case 1: - current_slave_config |= _BV(CPHA); + currentSlaveConfig |= _BV(CPHA); break; case 2: - current_slave_config |= _BV(CPOL); + currentSlaveConfig |= _BV(CPOL); break; case 3: - current_slave_config |= (_BV(CPOL) | _BV(CPHA)); + currentSlaveConfig |= (_BV(CPOL) | _BV(CPHA)); break; } uint16_t roundedDivisor = 1; - while (roundedDivisor < start_config->divisor) { + while (roundedDivisor < divisor) { roundedDivisor <<= 1; } switch (roundedDivisor) { case 16: - current_slave_config |= _BV(SPR0); + currentSlaveConfig |= _BV(SPR0); break; case 64: - current_slave_config |= _BV(SPR1); + currentSlaveConfig |= _BV(SPR1); break; case 128: - current_slave_config |= (_BV(SPR1) | _BV(SPR0)); + currentSlaveConfig |= (_BV(SPR1) | _BV(SPR0)); break; case 2: - current_slave_2x = true; + currentSlave2X = true; break; case 8: - current_slave_2x = true; - current_slave_config |= _BV(SPR0); + currentSlave2X = true; + currentSlaveConfig |= _BV(SPR0); break; case 32: - current_slave_2x = true; - current_slave_config |= _BV(SPR1); + currentSlave2X = true; + currentSlaveConfig |= _BV(SPR1); break; } - SPCR |= current_slave_config; - if (current_slave_2x) { + SPCR |= currentSlaveConfig; + if (currentSlave2X) { SPSR |= _BV(SPI2X); } - current_slave_pin = start_config->slave_pin; - current_cs_active_low = start_config->cs_active_low; - gpio_set_pin_output(current_slave_pin); - spi_select(); + currentSlavePin = slavePin; + gpio_set_pin_output(currentSlavePin); + gpio_write_pin_low(currentSlavePin); return true; } @@ -188,13 +168,13 @@ spi_status_t spi_receive(uint8_t *data, uint16_t length) { } void spi_stop(void) { - if (current_slave_pin != NO_PIN) { - gpio_set_pin_output(current_slave_pin); - spi_unselect(); - current_slave_pin = NO_PIN; + if (currentSlavePin != NO_PIN) { + gpio_set_pin_output(currentSlavePin); + gpio_write_pin_high(currentSlavePin); + currentSlavePin = NO_PIN; SPSR &= ~(_BV(SPI2X)); - SPCR &= ~(current_slave_config); - current_slave_config = 0; - current_slave_2x = false; + SPCR &= ~(currentSlaveConfig); + currentSlaveConfig = 0; + currentSlave2X = false; } } diff --git a/platforms/avr/drivers/spi_master.h b/platforms/avr/drivers/spi_master.h new file mode 100644 index 0000000000..8a30f47ae4 --- /dev/null +++ b/platforms/avr/drivers/spi_master.h @@ -0,0 +1,59 @@ +/* Copyright 2020 + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include + +#include "gpio.h" + +typedef int16_t spi_status_t; + +// Hardware SS pin is defined in the header so that user code can refer to it +#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +# define SPI_SS_PIN B0 +#elif defined(__AVR_ATmega32A__) +# define SPI_SS_PIN B4 +#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) +# define SPI_SS_PIN B2 +#endif + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif +void spi_init(void); + +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +spi_status_t spi_write(uint8_t data); + +spi_status_t spi_read(void); + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +void spi_stop(void); +#ifdef __cplusplus +} +#endif diff --git a/platforms/avr/drivers/uart.h b/platforms/avr/drivers/uart.h new file mode 100644 index 0000000000..e2dc664eda --- /dev/null +++ b/platforms/avr/drivers/uart.h @@ -0,0 +1,39 @@ +/* UART Example for Teensy USB Development Board + * http://www.pjrc.com/teensy/ + * Copyright (c) 2009 PJRC.COM, LLC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#pragma once + +#include +#include + +void uart_init(uint32_t baud); + +void uart_write(uint8_t data); + +uint8_t uart_read(void); + +void uart_transmit(const uint8_t *data, uint16_t length); + +void uart_receive(uint8_t *data, uint16_t length); + +bool uart_available(void); diff --git a/platforms/avr/drivers/ws2812_bitbang.c b/platforms/avr/drivers/ws2812_bitbang.c index 183690c967..be127e501c 100644 --- a/platforms/avr/drivers/ws2812_bitbang.c +++ b/platforms/avr/drivers/ws2812_bitbang.c @@ -28,6 +28,28 @@ #define pinmask(pin) (_BV((pin)&0xF)) +/* + * Forward declare internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi); + +void ws2812_init(void) { + DDRx_ADDRESS(WS2812_DI_PIN) |= pinmask(WS2812_DI_PIN); +} + +void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds) { + uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN); + uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN); + + ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(rgb_led_t), masklo, maskhi); + + _delay_us(WS2812_TRST_US); +} + /* This routine writes an array of bytes with RGB values to the Dataout pin using the fast 800kHz clockless WS2811/2812 protocol. @@ -150,33 +172,3 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t SREG = sreg_prev; } - -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - -void ws2812_init(void) { - DDRx_ADDRESS(WS2812_DI_PIN) |= pinmask(WS2812_DI_PIN); -} - -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds[index]); -#endif -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { - uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN); - uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN); - - ws2812_sendarray_mask((uint8_t *)ws2812_leds, WS2812_LED_COUNT * sizeof(ws2812_led_t), masklo, maskhi); - - _delay_us(WS2812_TRST_US); -} diff --git a/platforms/avr/drivers/ws2812_i2c.c b/platforms/avr/drivers/ws2812_i2c.c index e6b922f4bf..86a5ac8394 100644 --- a/platforms/avr/drivers/ws2812_i2c.c +++ b/platforms/avr/drivers/ws2812_i2c.c @@ -1,6 +1,3 @@ -// Copyright 2024 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - #include "ws2812.h" #include "i2c_master.h" @@ -16,24 +13,11 @@ # define WS2812_I2C_TIMEOUT 100 #endif -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - void ws2812_init(void) { i2c_init(); } -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { - i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ws2812_leds, WS2812_LED_COUNT * sizeof(ws2812_led_t), WS2812_I2C_TIMEOUT); +// Setleds for standard RGB +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { + i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * leds, WS2812_I2C_TIMEOUT); } diff --git a/platforms/avr/gpio.h b/platforms/avr/gpio.h index 4c09619772..6f089bc663 100644 --- a/platforms/avr/gpio.h +++ b/platforms/avr/gpio.h @@ -16,8 +16,6 @@ #pragma once #include - -#include "compiler_support.h" #include "pin_defs.h" typedef uint8_t pin_t; @@ -26,9 +24,9 @@ typedef uint8_t pin_t; #define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) #define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) -#define gpio_set_pin_input_low(pin) STATIC_ASSERT(0, "GPIO pulldowns in input mode are not available on AVR") +#define gpio_set_pin_input_low(pin) _Static_assert(0, "GPIO pulldowns in input mode are not available on AVR") #define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) -#define gpio_set_pin_output_open_drain(pin) STATIC_ASSERT(0, "Open-drain outputs are not available on AVR") +#define gpio_set_pin_output_open_drain(pin) _Static_assert(0, "Open-drain outputs are not available on AVR") #define gpio_set_pin_output(pin) gpio_set_pin_output_push_pull(pin) #define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index f0187457b3..a625f2e5d0 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -12,10 +12,9 @@ HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = -COMPILEFLAGS += $(call cc-option,--param=min-pagesize=0) - -# Fix ICE's: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116389 -COMPILEFLAGS += $(call cc-option,-mlra) +ifeq ("$(shell echo "int main(){}" | $(CC) --param=min-pagesize=0 -x c - -o /dev/null 2>&1)", "") +COMPILEFLAGS += --param=min-pagesize=0 +endif COMPILEFLAGS += -funsigned-char COMPILEFLAGS += -funsigned-bitfields @@ -26,12 +25,10 @@ COMPILEFLAGS += -fshort-enums COMPILEFLAGS += -mcall-prologues COMPILEFLAGS += -fno-builtin-printf -# On older compilers, linker relaxation is only possible if link time optimizations are not enabled. +# Linker relaxation is only possible if +# link time optimizations are not enabled. ifeq ($(strip $(LTO_ENABLE)), no) COMPILEFLAGS += -mrelax -else - # Newer compilers may support both, so quickly check before adding `-mrelax`. - COMPILEFLAGS += $(call cc-option,-mrelax,,-flto=auto) endif ASFLAGS += $(AVR_ASFLAGS) diff --git a/platforms/avr/timer.c b/platforms/avr/timer.c index b2230ad84b..9fb671ae8d 100644 --- a/platforms/avr/timer.c +++ b/platforms/avr/timer.c @@ -25,7 +25,6 @@ along with this program. If not, see . // counter resolution 1ms // NOTE: union { uint32_t timer32; struct { uint16_t dummy; uint16_t timer16; }} volatile uint32_t timer_count; -static uint32_t saved_ms; /** \brief timer initialization * @@ -79,24 +78,6 @@ inline void timer_clear(void) { } } -/** \brief timer save - * - * Set saved_ms to current time. - */ -void timer_save(void) { - saved_ms = timer_read32(); -} - -/** \brief timer restore - * - * Set timer_count to saved_ms - */ -void timer_restore(void) { - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - timer_count = saved_ms; - } -} - /** \brief timer read * * FIXME: needs doc @@ -125,6 +106,34 @@ inline uint32_t timer_read32(void) { return t; } +/** \brief timer elapsed + * + * FIXME: needs doc + */ +inline uint16_t timer_elapsed(uint16_t last) { + uint32_t t; + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { + t = timer_count; + } + + return TIMER_DIFF_16((t & 0xFFFF), last); +} + +/** \brief timer elapsed32 + * + * FIXME: needs doc + */ +inline uint32_t timer_elapsed32(uint32_t last) { + uint32_t t; + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { + t = timer_count; + } + + return TIMER_DIFF_32(t, last); +} + // excecuted once per 1ms.(excess for just timer count?) #ifndef __AVR_ATmega32A__ # define TIMER_INTERRUPT_VECTOR TIMER0_COMPA_vect diff --git a/platforms/chibios/boards/BONSAI_C4/configs/board.h b/platforms/chibios/boards/BONSAI_C4/configs/board.h index 81c80b2773..372b9bb8bc 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/board.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/board.h @@ -17,4 +17,4 @@ #include_next -#undef STM32_HSE_BYPASS +#undef STM32_HSE_BYPASS \ No newline at end of file diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h index e0e95eda25..e933cd6fd1 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/config.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h @@ -87,4 +87,4 @@ #ifndef USB_VBUS_PIN # define USB_VBUS_PIN PAL_LINE(GPIOA, 9) -#endif +#endif \ No newline at end of file diff --git a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h index 55bafe5cfa..6bab6fbcff 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h @@ -46,4 +46,4 @@ # define SPI_USE_WAIT TRUE #endif -#include_next +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c deleted file mode 100644 index 26b1974e4a..0000000000 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2025 HorrorTroll - ChibiOS - Copyright (C) 2023..2025 Zhaqian - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#include "hal.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/** - * @brief PAL setup. - * @details Digital I/O ports static configuration as defined in @p board.h. - * This variable is used by the HAL when initializing the PAL driver. - */ -#if HAL_USE_PAL || defined(__DOXYGEN__) -const PALConfig pal_default_config = -{ - {VAL_GPIOAODT, VAL_GPIOACFGLR, VAL_GPIOACFGHR}, - {VAL_GPIOBODT, VAL_GPIOBCFGLR, VAL_GPIOBCFGHR}, -#if AT32_HAS_GPIOC - {VAL_GPIOCODT, VAL_GPIOCCFGLR, VAL_GPIOCCFGHR}, -#endif - {VAL_GPIODODT, VAL_GPIODCFGLR, VAL_GPIODCFGHR}, -#if AT32_HAS_GPIOF - {VAL_GPIOFODT, VAL_GPIOFCFGLR, VAL_GPIOFCFGHR}, -#endif -}; -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Early initialization code. - * @details System clocks are initialized before everything else. - */ -void __early_init(void) { - at32_clock_init(); -} - -#if HAL_USE_SDC || defined(__DOXYGEN__) -/** - * @brief SDC card detection. - */ -bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { - static bool last_status = false; - - if (blkIsTransferring(sdcp)) - return last_status; - return last_status = (bool)palReadPad(GPIOC, GPIOC_PIN11); -} - -/** - * @brief SDC card write protection detection. - */ -bool sdc_lld_is_write_protected(SDCDriver *sdcp) { - - (void)sdcp; - return false; -} -#endif /* HAL_USE_SDC */ - -/** - * @brief Board-specific initialization code. - * @note You can add your board-specific code here. - */ -void boardInit(void) { - IOMUX->REMAP |= IOMUX_REMAP_SWJTAG_MUX_JTAGDIS; -} diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h deleted file mode 100644 index b4909b0a29..0000000000 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2025 HorrorTroll - ChibiOS - Copyright (C) 2023..2025 Zhaqian - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _BOARD_H_ -#define _BOARD_H_ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/* - * Setup for a Generic AT32F415 board. - */ - -/* - * Board identifier. - */ -#define BOARD_GENERIC_AT32_F415XX -#define BOARD_NAME "GENERIC AT32F415 board" - -/* - * Board oscillators-related settings. - */ -#if !defined(AT32_LEXTCLK) -#define AT32_LEXTCLK 32768 -#endif - -#if !defined(AT32_HEXTCLK) -#define AT32_HEXTCLK 8000000 -#endif - -/* - * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. - */ -#define AT32F415KB - -/* - * GPIO settings, allow unused GPIO for smaller chip packages. - */ -#if defined(AT32F415KB) || defined(AT32F415KC) -#define AT32_HAS_GPIOC TRUE -#define AT32_HAS_GPIOF TRUE -#endif - -/* - * IO pins assignments. - */ -#define GPIOA_PIN0 0U -#define GPIOA_PIN1 1U -#define GPIOA_PIN2 2U -#define GPIOA_PIN3 3U -#define GPIOA_PIN4 4U -#define GPIOA_PIN5 5U -#define GPIOA_PIN6 6U -#define GPIOA_PIN7 7U -#define GPIOA_PIN8 8U -#define GPIOA_PIN9 9U -#define GPIOA_PIN10 10U -#define GPIOA_PIN11 11U -#define GPIOA_PIN12 12U -#define GPIOA_SWDIO 13U -#define GPIOA_SWCLK 14U -#define GPIOA_PIN15 15U - -#define GPIOB_PIN0 0U -#define GPIOB_PIN1 1U -#define GPIOB_PIN2 2U -#define GPIOB_PIN3 3U -#define GPIOB_PIN4 4U -#define GPIOB_PIN5 5U -#define GPIOB_PIN6 6U -#define GPIOB_PIN7 7U -#define GPIOB_PIN8 8U -#define GPIOB_PIN9 9U -#define GPIOB_PIN10 10U -#define GPIOB_PIN11 11U -#define GPIOB_PIN12 12U -#define GPIOB_PIN13 13U -#define GPIOB_PIN14 14U -#define GPIOB_PIN15 15U - -#define GPIOC_PIN0 0U -#define GPIOC_PIN1 1U -#define GPIOC_PIN2 2U -#define GPIOC_PIN3 3U -#define GPIOC_PIN4 4U -#define GPIOC_PIN5 5U -#define GPIOC_PIN6 6U -#define GPIOC_PIN7 7U -#define GPIOC_PIN8 8U -#define GPIOC_PIN9 9U -#define GPIOC_PIN10 10U -#define GPIOC_PIN11 11U -#define GPIOC_PIN12 12U -#define GPIOC_PIN13 13U -#define GPIOC_PIN14 14U -#define GPIOC_PIN15 15U - -#define GPIOD_HEXT_IN 0U -#define GPIOD_HEXT_OUT 1U -#define GPIOD_PIN2 2U - -#define GPIOF_PIN4 4U -#define GPIOF_PIN5 5U -#define GPIOF_PIN6 6U -#define GPIOF_PIN7 7U - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * - * The digits have the following meaning: - * 0 - Analog input. - * 1 - Push Pull output 10MHz. - * 2 - Push Pull output 2MHz. - * 3 - Push Pull output 50MHz. - * 4 - Digital input. - * 5 - Open Drain output 10MHz. - * 6 - Open Drain output 2MHz. - * 7 - Open Drain output 50MHz. - * 8 - Digital input with Pull-Up or Pull-Down resistor depending on ODT. - * 9 - Multiplexing Push Pull output 10MHz. - * A - Multiplexing Push Pull output 2MHz. - * B - Multiplexing Push Pull output 50MHz. - * C - Reserved. - * D - Multiplexing Open Drain output 10MHz. - * E - Multiplexing Open Drain output 2MHz. - * F - Multiplexing Open Drain output 50MHz. - * Please refer to the AT32 Reference Manual for details. - */ - -/* - * Port A setup. - */ -#define VAL_GPIOACFGLR 0x88888888 /* PA7...PA0 */ -#define VAL_GPIOACFGHR 0x88888888 /* PA15...PA8 */ -#define VAL_GPIOAODT 0xFFFFFFFF - -/* - * Port B setup. - */ -#define VAL_GPIOBCFGLR 0x88888888 /* PB7...PB0 */ -#define VAL_GPIOBCFGHR 0x88888888 /* PB15...PB8 */ -#define VAL_GPIOBODT 0xFFFFFFFF - -/* - * Port C setup. - */ -#define VAL_GPIOCCFGLR 0x88888888 /* PC7...PC0 */ -#define VAL_GPIOCCFGHR 0x88888888 /* PC15...PC8 */ -#define VAL_GPIOCODT 0xFFFFFFFF - -/* - * Port D setup. - * Everything input with pull-up except: - * PD0 - Normal input (GPIOD_HEXT_IN). - * PD1 - Normal input (GPIOD_HEXT_OUT). - */ -#define VAL_GPIODCFGLR 0x88888844 /* PD7...PD0 */ -#define VAL_GPIODCFGHR 0x88888888 /* PD15...PD8 */ -#define VAL_GPIODODT 0xFFFFFFFF - -/* - * Port F setup. - */ -#define VAL_GPIOFCFGLR 0x88888888 /* PF7...PF0 */ -#define VAL_GPIOFCFGHR 0x88888888 /* PF15...PF8 */ -#define VAL_GPIOFODT 0xFFFFFFFF - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* _BOARD_H_ */ diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk deleted file mode 100644 index 842e335905..0000000000 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/board/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/board - -# Shared variables -ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h deleted file mode 100644 index 01d9a47aac..0000000000 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023-2025 HorrorTroll -// Copyright 2023-2025 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BOARD_OTG_VBUSIG - -#define USB_ENDPOINTS_ARE_REORDERABLE - -#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP -# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#endif diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h deleted file mode 100644 index e218e4791a..0000000000 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2025 HorrorTroll - ChibiOS - Copyright (C) 2023..2025 Zhaqian - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef MCUCONF_H -#define MCUCONF_H - -/* - * AT32F415 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. - * - * IRQ priorities: - * 15...0 Lowest...Highest. - * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define AT32F415_MCUCONF - -/* - * General settings. - */ -#define AT32_NO_INIT FALSE - -/* - * HAL driver system settings. - */ -#define AT32_HICK_ENABLED TRUE -#define AT32_LICK_ENABLED FALSE -#define AT32_HEXT_ENABLED TRUE -#define AT32_LEXT_ENABLED FALSE -#define AT32_SCLKSEL AT32_SCLKSEL_PLL -#define AT32_PLLRCS AT32_PLLRCS_HEXT -#define AT32_PLLHEXTDIV AT32_PLLHEXTDIV_DIV1 -#define AT32_PLLCFGEN AT32_PLLCFGEN_SOLID -#define AT32_PLLMULT_VALUE 18 -#define AT32_PLL_FR_VALUE 4 -#define AT32_PLL_MS_VALUE 1 -#define AT32_PLL_NS_VALUE 72 -#define AT32_AHBDIV AT32_AHBDIV_DIV1 -#define AT32_APB1DIV AT32_APB1DIV_DIV2 -#define AT32_APB2DIV AT32_APB2DIV_DIV2 -#define AT32_ADCDIV AT32_ADCDIV_DIV4 -#define AT32_USB_CLOCK_REQUIRED TRUE -#define AT32_USBDIV AT32_USBDIV_DIV3 -#define AT32_CLKOUT_SEL AT32_CLKOUT_SEL_NOCLOCK -#define AT32_CLKOUTDIV AT32_CLKOUTDIV_DIV1 -#define AT32_ERTCSEL AT32_ERTCSEL_NOCLOCK -#define AT32_PVM_ENABLE FALSE -#define AT32_PVMSEL AT32_PVMSEL_LEV1 - -/* - * IRQ system settings. - */ -#define AT32_IRQ_EXINT0_PRIORITY 6 -#define AT32_IRQ_EXINT1_PRIORITY 6 -#define AT32_IRQ_EXINT2_PRIORITY 6 -#define AT32_IRQ_EXINT3_PRIORITY 6 -#define AT32_IRQ_EXINT4_PRIORITY 6 -#define AT32_IRQ_EXINT5_9_PRIORITY 6 -#define AT32_IRQ_EXINT10_15_PRIORITY 6 -#define AT32_IRQ_EXINT16_PRIORITY 6 -#define AT32_IRQ_EXINT17_PRIORITY 15 -#define AT32_IRQ_EXINT18_PRIORITY 6 -#define AT32_IRQ_EXINT19_PRIORITY 6 -#define AT32_IRQ_EXINT20_PRIORITY 6 -#define AT32_IRQ_EXINT21_PRIORITY 15 -#define AT32_IRQ_EXINT22_PRIORITY 15 - -#define AT32_IRQ_TMR1_BRK_TMR9_PRIORITY 7 -#define AT32_IRQ_TMR1_OVF_TMR10_PRIORITY 7 -#define AT32_IRQ_TMR1_HALL_TMR11_PRIORITY 7 -#define AT32_IRQ_TMR1_CH_PRIORITY 7 -#define AT32_IRQ_TMR2_PRIORITY 7 -#define AT32_IRQ_TMR3_PRIORITY 7 -#define AT32_IRQ_TMR4_PRIORITY 7 -#define AT32_IRQ_TMR5_PRIORITY 7 - -#define AT32_IRQ_USART1_PRIORITY 12 -#define AT32_IRQ_USART2_PRIORITY 12 -#define AT32_IRQ_USART3_PRIORITY 12 -#define AT32_IRQ_UART4_PRIORITY 12 -#define AT32_IRQ_UART5_PRIORITY 12 - -/* - * ADC driver system settings. - */ -#define AT32_ADC_USE_ADC1 FALSE -#define AT32_ADC_ADC1_DMA_PRIORITY 2 -#define AT32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define AT32_CAN_USE_CAN1 FALSE -#define AT32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * DMA driver system settings. - */ -#define AT32_DMA_USE_DMAMUX TRUE - -/* - * GPT driver system settings. - */ -#define AT32_GPT_USE_TMR1 FALSE -#define AT32_GPT_USE_TMR2 FALSE -#define AT32_GPT_USE_TMR3 FALSE -#define AT32_GPT_USE_TMR4 FALSE -#define AT32_GPT_USE_TMR5 FALSE -#define AT32_GPT_USE_TMR9 FALSE -#define AT32_GPT_USE_TMR10 FALSE -#define AT32_GPT_USE_TMR11 FALSE - -/* - * I2C driver system settings. - */ -#define AT32_I2C_USE_I2C1 FALSE -#define AT32_I2C_USE_I2C2 FALSE -#define AT32_I2C_BUSY_TIMEOUT 50 -#define AT32_I2C_I2C1_DMA_PRIORITY 3 -#define AT32_I2C_I2C2_DMA_PRIORITY 3 -#define AT32_I2C_I2C1_IRQ_PRIORITY 5 -#define AT32_I2C_I2C2_IRQ_PRIORITY 5 -#define AT32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define AT32_ICU_USE_TMR1 FALSE -#define AT32_ICU_USE_TMR2 FALSE -#define AT32_ICU_USE_TMR3 FALSE -#define AT32_ICU_USE_TMR4 FALSE -#define AT32_ICU_USE_TMR5 FALSE -#define AT32_ICU_USE_TMR9 FALSE - -/* - * PWM driver system settings. - */ -#define AT32_PWM_USE_TMR1 FALSE -#define AT32_PWM_USE_TMR2 FALSE -#define AT32_PWM_USE_TMR3 FALSE -#define AT32_PWM_USE_TMR4 FALSE -#define AT32_PWM_USE_TMR5 FALSE -#define AT32_PWM_USE_TMR9 FALSE -#define AT32_PWM_USE_TMR10 FALSE -#define AT32_PWM_USE_TMR11 FALSE - -/* - * RTC driver system settings. - */ -#define AT32_ERTC_DIVA_VALUE 32 -#define AT32_ERTC_DIVB_VALUE 1024 -#define AT32_ERTC_CTRL_INIT 0 -#define AT32_ERTC_TAMP_INIT 0 - -/* - * SDC driver system settings. - */ -#define AT32_SDC_SDIO_DMA_PRIORITY 3 -#define AT32_SDC_SDIO_IRQ_PRIORITY 9 -#define AT32_SDC_WRITE_TIMEOUT_MS 1000 -#define AT32_SDC_READ_TIMEOUT_MS 1000 -#define AT32_SDC_CLOCK_ACTIVATION_DELAY 10 -#define AT32_SDC_SDIO_UNALIGNED_SUPPORT TRUE - -/* - * SERIAL driver system settings. - */ -#define AT32_SERIAL_USE_USART1 FALSE -#define AT32_SERIAL_USE_USART2 FALSE -#define AT32_SERIAL_USE_USART3 FALSE -#define AT32_SERIAL_USE_UART4 FALSE -#define AT32_SERIAL_USE_UART5 FALSE - -/* - * SPI driver system settings. - */ -#define AT32_SPI_USE_SPI1 FALSE -#define AT32_SPI_USE_SPI2 FALSE -#define AT32_SPI_SPI1_DMA_PRIORITY 1 -#define AT32_SPI_SPI2_DMA_PRIORITY 1 -#define AT32_SPI_SPI1_IRQ_PRIORITY 10 -#define AT32_SPI_SPI2_IRQ_PRIORITY 10 -#define AT32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define AT32_ST_IRQ_PRIORITY 8 -#define AT32_ST_USE_TIMER 2 - -/* - * UART driver system settings. - */ -#define AT32_UART_USE_USART1 FALSE -#define AT32_UART_USE_USART2 FALSE -#define AT32_UART_USE_USART3 FALSE -#define AT32_UART_USE_UART4 FALSE -#define AT32_UART_USE_UART5 FALSE -#define AT32_UART_USART1_DMA_PRIORITY 0 -#define AT32_UART_USART2_DMA_PRIORITY 0 -#define AT32_UART_USART3_DMA_PRIORITY 0 -#define AT32_UART_UART4_DMA_PRIORITY 0 -#define AT32_UART_UART5_DMA_PRIORITY 0 -#define AT32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define AT32_USB_USE_OTG1 TRUE -#define AT32_USB_OTG1_IRQ_PRIORITY 14 -#define AT32_USB_OTG1_RX_FIFO_SIZE 512 - -/* - * WDG driver system settings. - */ -#define AT32_WDG_USE_WDT FALSE - -#endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk index 00cc9b20b2..6c837bb8ee 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk @@ -6,4 +6,4 @@ BOARDINC = $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY # Shared variables ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) +ALLINC += $(BOARDINC) \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h index 5333a919a0..90a41326a1 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h @@ -21,13 +21,3 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif - -#ifdef WEAR_LEVELING_EMBEDDED_FLASH -# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR -# ifdef BOOTLOADER_TINYUF2 -# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 -# else -# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 -# endif -# endif -#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk index 00cc9b20b2..6c837bb8ee 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk @@ -6,4 +6,4 @@ BOARDINC = $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY # Shared variables ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) +ALLINC += $(BOARDINC) \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h index c2f25db810..a0d53d86e7 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h @@ -21,4 +21,4 @@ #include_next -#undef STM32_HSE_BYPASS +#undef STM32_HSE_BYPASS \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h index 5333a919a0..90a41326a1 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h @@ -21,13 +21,3 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif - -#ifdef WEAR_LEVELING_EMBEDDED_FLASH -# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR -# ifdef BOOTLOADER_TINYUF2 -# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 -# else -# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 -# endif -# endif -#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h index 362327efde..cbb98f9098 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h @@ -17,13 +17,3 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif - -#ifdef WEAR_LEVELING_EMBEDDED_FLASH -# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR -# ifdef BOOTLOADER_TINYUF2 -# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 -# else -# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 -# endif -# endif -#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/board.mk deleted file mode 100644 index 7e551e4dc7..0000000000 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/board.mk +++ /dev/null @@ -1,12 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_G0B1RE/board.c - -# Extra files -BOARDSRC += $(BOARD_PATH)/board/extra.c - -# Required include directories -BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_G0B1RE - -# Shared variables -ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/extra.c b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/extra.c deleted file mode 100644 index 4dbc5dd8b4..0000000000 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/board/extra.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2025 Stefan Kerkmann (@karlk90) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include - -#define FLASH_KEY1 0x45670123U -#define FLASH_KEY2 0xCDEF89ABU -#define FLASH_OPTKEY1 0x08192A3BU -#define FLASH_OPTKEY2 0x4C5D6E7FU -#define FLASH_OPTR_CLR_MASK (FLASH_OPTR_nBOOT_SEL) -#define FLASH_OPTR_SET_MASK (FLASH_OPTR_NRST_MODE_Msk) - -static void wait_for_flash(void) { - while (READ_BIT(FLASH->SR, FLASH_SR_BSY1)) { - } -} - -void __attribute__((constructor)) enable_boot0_and_nrst_pin(void) { - // Only apply on STM32G0x1 devices, see RM0444 Rev 6, Table 265: "DEV_ID - // and REV_ID field values." - switch (READ_BIT(DBG->IDCODE, DBG_IDCODE_DEV_ID)) { - case 0x467: // STM32G0B1xx and STM32G0C1xx - case 0x460: // STM32G071xx and STM32G081xx - case 0x456: // STM32G051xx and STM32G061xx - case 0x466: // STM32G041xx and STM32G031xx - break; - default: - return; - } - - uint32_t optr = FLASH->OPTR; - - // Make sure that: - // 1. legacy boot0 pin handling is enabled. - // OPTR[24] = 0 - // 2. legacy nRST pin handling is enabled. - // OPTR[28:27] = 0b11 - // To match the default behavior found in older (F0/F1/F3/F4) STM32 devices. - if (READ_BIT(optr, FLASH_OPTR_CLR_MASK) || (READ_BIT(optr, FLASH_OPTR_SET_MASK) != FLASH_OPTR_SET_MASK)) { - if (READ_BIT(FLASH->CR, FLASH_CR_LOCK)) { - WRITE_REG(FLASH->KEYR, FLASH_KEY1); - WRITE_REG(FLASH->KEYR, FLASH_KEY2); - while (READ_BIT(FLASH->CR, FLASH_CR_LOCK)) { - } - wait_for_flash(); - } - if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK)) { - WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); - WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); - while (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK)) { - } - wait_for_flash(); - } - - MODIFY_REG(FLASH->OPTR, FLASH_OPTR_CLR_MASK, FLASH_OPTR_SET_MASK); - wait_for_flash(); - - SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); - wait_for_flash(); - - CLEAR_BIT(FLASH->CR, FLASH_CR_OPTSTRT); - wait_for_flash(); - - // Launch the option byte (re)loading, which resets the device. This - // should not return. - SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); - } -} diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/config.h deleted file mode 100644 index bb2d1b5816..0000000000 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2024 Stefan Kerkmann (@karlk90) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP -# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h deleted file mode 100644 index 80726e0308..0000000000 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h +++ /dev/null @@ -1,310 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * STM32G0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. - * - * IRQ priorities: - * 3...0 Lowest...Highest. - * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#ifndef MCUCONF_H -#define MCUCONF_H - -#define STM32G0xx_MCUCONF -#define STM32G0B1_MCUCONF -#define STM32G0C1_MCUCONF - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_CLOCK_DYNAMIC TRUE -#define STM32_VOS STM32_VOS_RANGE1 -#define STM32_PWR_CR2 (STM32_PVDRT_LEV0 | STM32_PVDFT_LEV0 | STM32_PVDE_DISABLED) -#define STM32_PWR_CR3 (PWR_CR3_EIWUL) -#define STM32_PWR_CR4 (0U) -#define STM32_PWR_PUCRA (0U) -#define STM32_PWR_PDCRA (0U) -#define STM32_PWR_PUCRB (0U) -#define STM32_PWR_PDCRB (0U) -#define STM32_PWR_PUCRC (0U) -#define STM32_PWR_PDCRC (0U) -#define STM32_PWR_PUCRD (0U) -#define STM32_PWR_PDCRD (0U) -#define STM32_PWR_PUCRE (0U) -#define STM32_PWR_PDCRE (0U) -#define STM32_PWR_PUCRF (0U) -#define STM32_PWR_PDCRF (0U) -#define STM32_HSIDIV_VALUE 1 -#define STM32_HSI16_ENABLED TRUE -#define STM32_HSI48_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSI_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLLRCLK -#define STM32_PLLSRC STM32_PLLSRC_HSI16 -#define STM32_PLLM_VALUE 2 -#define STM32_PLLN_VALUE 16 -#define STM32_PLLP_VALUE 2 -#define STM32_PLLQ_VALUE 4 -#define STM32_PLLR_VALUE 2 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_MCOPRE STM32_MCOPRE_DIV1 -#define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK - -/* - * Peripherals clocks and sources. - */ -#define STM32_FDCANSEL STM32_USBSEL_HSI48 -#define STM32_USBSEL STM32_USBSEL_HSI48 -#define STM32_USART1SEL STM32_USART1SEL_SYSCLK -#define STM32_USART2SEL STM32_USART2SEL_SYSCLK -#define STM32_USART3SEL STM32_USART3SEL_SYSCLK -#define STM32_LPUART1SEL STM32_LPUART1SEL_SYSCLK -#define STM32_LPUART2SEL STM32_LPUART2SEL_SYSCLK -#define STM32_CECSEL STM32_CECSEL_HSI16DIV -#define STM32_I2C1SEL STM32_I2C1SEL_PCLK -#define STM32_I2C2SEL STM32_I2C1SEL_PCLK -#define STM32_I2S1SEL STM32_I2S1SEL_SYSCLK -#define STM32_I2S2SEL STM32_I2S2SEL_SYSCLK -#define STM32_LPTIM1SEL STM32_LPTIM1SEL_PCLK -#define STM32_LPTIM2SEL STM32_LPTIM2SEL_PCLK -#define STM32_TIM1SEL STM32_TIM1SEL_TIMPCLK -#define STM32_TIM15SEL STM32_TIM15SEL_TIMPCLK -#define STM32_RNGSEL STM32_RNGSEL_HSI16 -#define STM32_RNGDIV_VALUE 1 -#define STM32_ADCSEL STM32_ADCSEL_PLLPCLK -#define STM32_RTCSEL STM32_RTCSEL_NOCLOCK - -/* - * Shared IRQ settings. - */ -#define STM32_IRQ_EXTI0_1_PRIORITY 3 -#define STM32_IRQ_EXTI2_3_PRIORITY 3 -#define STM32_IRQ_EXTI4_15_PRIORITY 3 -#define STM32_IRQ_EXTI1921_PRIORITY 3 - -#define STM32_IRQ_USART1_PRIORITY 2 -#define STM32_IRQ_USART2_LP2_PRIORITY 2 -#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 - -#define STM32_IRQ_TIM1_UP_PRIORITY 1 -#define STM32_IRQ_TIM1_CC_PRIORITY 1 -#define STM32_IRQ_TIM2_PRIORITY 1 -#define STM32_IRQ_TIM3_4_PRIORITY 1 -#define STM32_IRQ_TIM6_PRIORITY 1 -#define STM32_IRQ_TIM7_PRIORITY 1 -#define STM32_IRQ_TIM14_PRIORITY 1 -#define STM32_IRQ_TIM15_PRIORITY 1 -#define STM32_IRQ_TIM16_PRIORITY 1 -#define STM32_IRQ_TIM17_PRIORITY 1 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_CFGR2 ADC_CFGR2_CKMODE_ADCCLK -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_ADC_PRESCALER_VALUE 2 - -/* - * DAC driver system settings. - */ -#define STM32_DAC_DUAL_MODE FALSE -#define STM32_DAC_USE_DAC1_CH1 FALSE -#define STM32_DAC_USE_DAC1_CH2 FALSE -#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 3 -#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 3 -#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2 -#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2 -#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM6 FALSE -#define STM32_GPT_USE_TIM7 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_USE_TIM15 FALSE -#define STM32_GPT_USE_TIM16 FALSE -#define STM32_GPT_USE_TIM17 FALSE - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_USE_I2C3 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM15 FALSE - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM14 FALSE -#define STM32_PWM_USE_TIM15 FALSE -#define STM32_PWM_USE_TIM16 FALSE -#define STM32_PWM_USE_TIM17 FALSE - -/* - * RTC driver system settings. - */ -#define STM32_RTC_PRESA_VALUE 32 -#define STM32_RTC_PRESS_VALUE 1024 -#define STM32_RTC_CR_INIT 0 -#define STM32_RTC_TAMPCR_INIT 0 - -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USE_USART6 FALSE -#define STM32_SERIAL_USE_LPUART1 FALSE -#define STM32_SERIAL_USE_LPUART2 FALSE - -/* - * SIO driver system settings. - */ -#define STM32_SIO_USE_USART1 FALSE -#define STM32_SIO_USE_USART2 FALSE -#define STM32_SIO_USE_USART3 FALSE -#define STM32_SIO_USE_UART4 FALSE -#define STM32_SIO_USE_UART5 FALSE -#define STM32_SIO_USE_USART6 FALSE -#define STM32_SIO_USE_LPUART1 FALSE -#define STM32_SIO_USE_LPUART2 FALSE - -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI3_IRQ_PRIORITY 2 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 - -/* - * TRNG driver system settings. - * NOTE: STM32G0C1 only. - */ -#define STM32_TRNG_USE_RNG1 FALSE - -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USE_UART4 FALSE -#define STM32_UART_USE_UART5 FALSE -#define STM32_UART_USE_USART6 FALSE -#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_UART4_DMA_PRIORITY 0 -#define STM32_UART_UART5_DMA_PRIORITY 0 -#define STM32_UART_USART6_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 -#define STM32_USB_USE_ISOCHRONOUS FALSE -#define STM32_USB_USE_FAST_COPY TRUE -#define STM32_USB_HOST_WAKEUP_DURATION 2 -#define STM32_USB_48MHZ_DELTA 0 - -/* - * WDG driver system settings. - */ -#define STM32_WDG_USE_IWDG FALSE - -#endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h index da0a634bb5..eb74d68e85 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h @@ -27,4 +27,4 @@ #if 0 #define STM32_BOOTLOADER_DUAL_BANK TRUE #define STM32_BOOTLOADER_DUAL_BANK_GPIO B7 -#endif +#endif \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h index 09096c3977..0239ec5273 100644 --- a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -182,7 +182,6 @@ #define STM32_IRQ_FDCAN1_PRIORITY 10 #define STM32_IRQ_FDCAN2_PRIORITY 10 -#define STM32_IRQ_FDCAN3_PRIORITY 10 #define STM32_IRQ_MDMA_PRIORITY 9 @@ -236,7 +235,6 @@ */ #define STM32_CAN_USE_FDCAN1 FALSE #define STM32_CAN_USE_FDCAN2 FALSE -#define STM32_CAN_USE_FDCAN3 FALSE /* * DAC driver system settings. diff --git a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/mcuconf.h index 24cc66b788..948c740f6e 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/mcuconf.h @@ -40,7 +40,7 @@ #define STM32_PLS STM32_PLS_LEV0 #define STM32_HSI16_ENABLED TRUE #define STM32_HSI48_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE #define STM32_HSE_ENABLED FALSE #define STM32_LSE_ENABLED FALSE #define STM32_MSIPLL_ENABLED FALSE diff --git a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h index fa0b6f11d0..e4afddb6a5 100644 --- a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h +++ b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_ST_TIMEDELTA 0 -#include_next +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h index fa0b6f11d0..e4afddb6a5 100644 --- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h +++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_ST_TIMEDELTA 0 -#include_next +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/QMK_BLOK/configs/config.h b/platforms/chibios/boards/QMK_BLOK/configs/config.h index 26fe7cddc7..834dc497d3 100644 --- a/platforms/chibios/boards/QMK_BLOK/configs/config.h +++ b/platforms/chibios/boards/QMK_BLOK/configs/config.h @@ -17,23 +17,6 @@ # define I2C1_SCL_PIN D0 #endif -/**====================== - ** SPI Driver - *========================**/ - -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID0 -#endif -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B1 -#endif -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B3 -#endif -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B2 -#endif - /**====================== ** UART Driver *========================**/ diff --git a/platforms/chibios/boards/QMK_PM2040/configs/config.h b/platforms/chibios/boards/QMK_PM2040/configs/config.h index 5ba030a556..f8b46b7fe4 100644 --- a/platforms/chibios/boards/QMK_PM2040/configs/config.h +++ b/platforms/chibios/boards/QMK_PM2040/configs/config.h @@ -17,22 +17,6 @@ # define I2C1_SCL_PIN D0 #endif -/**====================== - ** SPI Driver - *========================**/ -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID0 -#endif -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B1 -#endif -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B3 -#endif -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B2 -#endif - /**====================== ** UART Driver *========================**/ diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h index e92b7aeb98..cc10304a3f 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES TRUE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h index ca0348e4e0..6e5adb0fe1 100644 --- a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h +++ b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h @@ -20,4 +20,4 @@ struct _reent; #endif -#include_next +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/STEMCELL/configs/config.h b/platforms/chibios/boards/STEMCELL/configs/config.h index ab10432e4e..82f6c63636 100644 --- a/platforms/chibios/boards/STEMCELL/configs/config.h +++ b/platforms/chibios/boards/STEMCELL/configs/config.h @@ -27,18 +27,3 @@ # define SERIAL_USART_DRIVER SD2 #endif -/**====================== - ** SPI Driver - *========================**/ -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID1 -#endif -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B1 -#endif -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B3 -#endif -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B2 -#endif diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h index d4b870f8e4..db239854aa 100644 --- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h +++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h @@ -196,7 +196,7 @@ /* * SPI driver system settings. */ -#define STM32_SPI_USE_SPI1 TRUE +#define STM32_SPI_USE_SPI1 FALSE #define STM32_SPI_USE_SPI2 FALSE #define STM32_SPI_USE_SPI3 FALSE #define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) diff --git a/platforms/chibios/boards/common/configs/chconf.h b/platforms/chibios/boards/common/configs/chconf.h index 6381298ef7..5db836e37c 100644 --- a/platforms/chibios/boards/common/configs/chconf.h +++ b/platforms/chibios/boards/common/configs/chconf.h @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES FALSE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/common/ld/STM32F401xC.ld b/platforms/chibios/boards/common/ld/STM32F401xC.ld index 64f019706f..8fae66cec9 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xC.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xC.ld @@ -1,13 +1,85 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F401xC memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ + flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ + flash2 (rx) : org = 0x08008000, len = 256k - 32k /* Sector 2..6 - Rest of firmware */ + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 64k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 256k; -f4xx_ram1_size = 64k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld index 05aa51917f..f4e487dc8f 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld @@ -1,13 +1,88 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F401xC memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 64k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 256k; -f4xx_ram1_size = 64k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_tinyuf2_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld + +/* TinyUF2 bootloader reset support */ +_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ diff --git a/platforms/chibios/boards/common/ld/STM32F401xE.ld b/platforms/chibios/boards/common/ld/STM32F401xE.ld index 6c72c8f127..69af7ed71e 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xE.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xE.ld @@ -1,13 +1,85 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F401xE memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ + flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ + flash2 (rx) : org = 0x08008000, len = 512k - 32k /* Sector 2..7 - Rest of firmware */ + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 96k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 512k; -f4xx_ram1_size = 96k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld index 65272ec015..895d13fa32 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld @@ -1,13 +1,88 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F401xE memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000 + 64k, len = 512k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 96k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 512k; -f4xx_ram1_size = 96k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_tinyuf2_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld + +/* TinyUF2 bootloader reset support */ +_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ diff --git a/platforms/chibios/boards/common/ld/STM32F405xG.ld b/platforms/chibios/boards/common/ld/STM32F405xG.ld index d9468e18c5..b7d0baa210 100644 --- a/platforms/chibios/boards/common/ld/STM32F405xG.ld +++ b/platforms/chibios/boards/common/ld/STM32F405xG.ld @@ -1,13 +1,86 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F405xG memory setup. + * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ + flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ + flash2 (rx) : org = 0x08008000, len = 1M - 32k /* Sector 2..6 - Rest of firmware */ + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */ + ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */ + ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */ + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */ + ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */ + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 1M; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 64k; -f4xx_ram5_size = 4k; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld index 51c4b625ac..1ee4aa1a06 100644 --- a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld @@ -1,13 +1,89 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F405xG memory setup. + * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000 + 64k, len = 1M - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */ + ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */ + ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */ + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */ + ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */ + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 1M; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 64k; -f4xx_ram5_size = 4k; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_tinyuf2_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld + +/* TinyUF2 bootloader reset support */ +_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ diff --git a/platforms/chibios/boards/common/ld/STM32F407xE.ld b/platforms/chibios/boards/common/ld/STM32F407xE.ld deleted file mode 100644 index 66dd991163..0000000000 --- a/platforms/chibios/boards/common/ld/STM32F407xE.ld +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -f4xx_flash_size = 512k; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 64k; -f4xx_ram5_size = 4k; - -INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld deleted file mode 100644 index 0cb7b89636..0000000000 --- a/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -f4xx_flash_size = 512k; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 64k; -f4xx_ram5_size = 4k; - -INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xC.ld b/platforms/chibios/boards/common/ld/STM32F411xC.ld deleted file mode 100644 index 5e3f7e034b..0000000000 --- a/platforms/chibios/boards/common/ld/STM32F411xC.ld +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -f4xx_flash_size = 256k; -f4xx_ram1_size = 128k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; - -INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld index 63a33309fd..82253d3de5 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld @@ -1,13 +1,89 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F411xC memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000 + 64k, len = 256k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 128k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 256k; -f4xx_ram1_size = 128k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld + +/* TinyUF2 bootloader reset support */ +_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ -INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xE.ld b/platforms/chibios/boards/common/ld/STM32F411xE.ld index c798a775e9..aea8084b51 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xE.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xE.ld @@ -1,13 +1,85 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F411xE memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ + flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ + flash2 (rx) : org = 0x08008000, len = 512k - 32k /* Sector 2..7 - Rest of firmware */ + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 128k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 512k; -f4xx_ram1_size = 128k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ -INCLUDE stm32f4xx_common.ld +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld index 25253f5590..1656c67bf7 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld @@ -1,13 +1,89 @@ /* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F411xE memory setup. */ +MEMORY +{ + flash0 (rx) : org = 0x08000000 + 64k, len = 512k - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 128k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x00000000, len = 0 + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} -f4xx_flash_size = 512k; -f4xx_ram1_size = 128k; -f4xx_ram2_size = 0; -f4xx_ram4_size = 0; -f4xx_ram5_size = 0; +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld + +/* TinyUF2 bootloader reset support */ +_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ -INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F446xE.ld b/platforms/chibios/boards/common/ld/STM32F446xE.ld deleted file mode 100644 index 6e6c5dd3a4..0000000000 --- a/platforms/chibios/boards/common/ld/STM32F446xE.ld +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -f4xx_flash_size = 512k; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 0; -f4xx_ram5_size = 4k; - -INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld deleted file mode 100644 index 676ffbdf0c..0000000000 --- a/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld +++ /dev/null @@ -1,13 +0,0 @@ -/* -* Copyright 2006..2018 Giovanni Di Sirio - * Copyright 2022 QMK contributors - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -f4xx_flash_size = 512k; -f4xx_ram1_size = 112k; -f4xx_ram2_size = 16k; -f4xx_ram4_size = 0; -f4xx_ram5_size = 4k; - -INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32G0B1xB.ld b/platforms/chibios/boards/common/ld/STM32G0B1xB.ld deleted file mode 100644 index 0109504992..0000000000 --- a/platforms/chibios/boards/common/ld/STM32G0B1xB.ld +++ /dev/null @@ -1,85 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * STM32G0B1xB memory setup. - */ -MEMORY -{ - flash0 (rx) : org = 0x08000000, len = 128k - flash1 (rx) : org = 0x00000000, len = 0 - flash2 (rx) : org = 0x00000000, len = 0 - flash3 (rx) : org = 0x00000000, len = 0 - flash4 (rx) : org = 0x00000000, len = 0 - flash5 (rx) : org = 0x00000000, len = 0 - flash6 (rx) : org = 0x00000000, len = 0 - flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = 144k - ram1 (wx) : org = 0x00000000, len = 0 - ram2 (wx) : org = 0x00000000, len = 0 - ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x00000000, len = 0 - ram5 (wx) : org = 0x00000000, len = 0 - ram6 (wx) : org = 0x00000000, len = 0 - ram7 (wx) : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_common.ld deleted file mode 100644 index d5c7c73626..0000000000 --- a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld +++ /dev/null @@ -1,82 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -MEMORY -{ - flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ - flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ - flash2 (rx) : org = 0x08008000, len = f4xx_flash_size - 32k /* Sector 2..6 - Rest of firmware */ - flash3 (rx) : org = 0x00000000, len = 0 - flash4 (rx) : org = 0x00000000, len = 0 - flash5 (rx) : org = 0x00000000, len = 0 - flash6 (rx) : org = 0x00000000, len = 0 - flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */ - ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */ - ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */ - ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */ - ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */ - ram6 (wx) : org = 0x00000000, len = 0 - ram7 (wx) : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash2); -REGION_ALIAS("XTORS_FLASH_LMA", flash2); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash2); -REGION_ALIAS("TEXT_FLASH_LMA", flash2); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash2); -REGION_ALIAS("RODATA_FLASH_LMA", flash2); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash2); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash2); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld deleted file mode 100644 index d995bd014a..0000000000 --- a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld +++ /dev/null @@ -1,88 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * STM32F411xE memory setup. - */ -MEMORY -{ - flash0 (rx) : org = 0x08000000 + 64k, len = f4xx_flash_size - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ - flash1 (rx) : org = 0x00000000, len = 0 - flash2 (rx) : org = 0x00000000, len = 0 - flash3 (rx) : org = 0x00000000, len = 0 - flash4 (rx) : org = 0x00000000, len = 0 - flash5 (rx) : org = 0x00000000, len = 0 - flash6 (rx) : org = 0x00000000, len = 0 - flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */ - ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */ - ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */ - ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */ - ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */ - ram6 (wx) : org = 0x00000000, len = 0 - ram7 (wx) : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld - -/* TinyUF2 bootloader reset support */ -_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ diff --git a/platforms/chibios/bootloader.mk b/platforms/chibios/bootloader.mk index e292e1e0b0..5b6edd73ad 100644 --- a/platforms/chibios/bootloader.mk +++ b/platforms/chibios/bootloader.mk @@ -26,7 +26,6 @@ # stm32-dfu STM32 USB DFU in ROM # apm32-dfu APM32 USB DFU in ROM # wb32-dfu WB32 USB DFU in ROM -# at32-dfu AT32 USB DFU in ROM # tinyuf2 TinyUF2 # rp2040 Raspberry Pi RP2040 # Current options for RISC-V: @@ -120,14 +119,6 @@ ifeq ($(strip $(BOOTLOADER)), wb32-dfu) OPT_DEFS += -DBOOTLOADER_WB32_DFU BOOTLOADER_TYPE = wb32_dfu endif -ifeq ($(strip $(BOOTLOADER)), at32-dfu) - OPT_DEFS += -DBOOTLOADER_AT32_DFU - BOOTLOADER_TYPE = at32_dfu - - # Options to pass to dfu-util when flashing - DFU_ARGS ?= -d 2E3C:DF11 -a 0 -s 0x08000000:leave - DFU_SUFFIX_ARGS ?= -v 2E3C -p DF11 -endif ifeq ($(strip $(BOOTLOADER_TYPE)),) ifneq ($(strip $(BOOTLOADER)),) diff --git a/platforms/chibios/bootloaders/at32_dfu.c b/platforms/chibios/bootloaders/at32_dfu.c deleted file mode 100644 index f3a453d0fc..0000000000 --- a/platforms/chibios/bootloaders/at32_dfu.c +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2021-2023 QMK -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "bootloader.h" -#include "util.h" - -#include -#include -#include "wait.h" - -#ifndef AT32_BOOTLOADER_RAM_SYMBOL -# define AT32_BOOTLOADER_RAM_SYMBOL __ram0_end__ -#endif - -extern uint32_t AT32_BOOTLOADER_RAM_SYMBOL; - -/* This code should be checked whether it runs correctly on platforms */ -#define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) -#define BOOTLOADER_MAGIC 0xDEADBEEF -#define MAGIC_ADDR (unsigned long *)(SYMVAL(AT32_BOOTLOADER_RAM_SYMBOL) - 4) - -__attribute__((weak)) void bootloader_marker_enable(void) { - uint32_t *marker = (uint32_t *)MAGIC_ADDR; - *marker = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader -} - -__attribute__((weak)) bool bootloader_marker_active(void) { - const uint32_t *marker = (const uint32_t *)MAGIC_ADDR; - return (*marker == BOOTLOADER_MAGIC) ? true : false; -} - -__attribute__((weak)) void bootloader_marker_disable(void) { - uint32_t *marker = (uint32_t *)MAGIC_ADDR; - *marker = 0; -} - -__attribute__((weak)) void bootloader_jump(void) { - bootloader_marker_enable(); - NVIC_SystemReset(); -} - -__attribute__((weak)) void mcu_reset(void) { - NVIC_SystemReset(); -} - -void enter_bootloader_mode_if_requested(void) { - if (bootloader_marker_active()) { - bootloader_marker_disable(); - - struct system_memory_vector_t { - uint32_t stack_top; - void (*entrypoint)(void); - }; - const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(AT32_BOOTLOADER_ADDRESS); - - __disable_irq(); - -#if defined(__MPU_PRESENT) && (__MPU_PRESENT == 1U) - ARM_MPU_Disable(); -#endif - - SysTick->CTRL = 0; - SysTick->VAL = 0; - SysTick->LOAD = 0; - - // Clear interrupt enable and interrupt pending registers - for (int i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) { - NVIC->ICER[i] = 0xFFFFFFFF; - NVIC->ICPR[i] = 0xFFFFFFFF; - } - - __set_CONTROL(0); - __set_MSP(bootloader->stack_top); - __enable_irq(); - - // Jump to bootloader - bootloader->entrypoint(); - while (true) { - } - } -} diff --git a/platforms/chibios/bootloaders/stm32duino.c b/platforms/chibios/bootloaders/stm32duino.c index cc3f6be2df..e2db7fa16c 100644 --- a/platforms/chibios/bootloaders/stm32duino.c +++ b/platforms/chibios/bootloaders/stm32duino.c @@ -25,4 +25,4 @@ __attribute__((weak)) void bootloader_jump(void) { __attribute__((weak)) void mcu_reset(void) { BKP->DR10 = RTC_BOOTLOADER_JUST_UPLOADED; NVIC_SystemReset(); -} +} \ No newline at end of file diff --git a/platforms/chibios/bootloaders/uf2boot.c b/platforms/chibios/bootloaders/uf2boot.c index 1c736b8356..f5b1a64334 100644 --- a/platforms/chibios/bootloaders/uf2boot.c +++ b/platforms/chibios/bootloaders/uf2boot.c @@ -1,8 +1,6 @@ // Copyright 2023 QMK // SPDX-License-Identifier: GPL-2.0-or-later -#include -#include #include "bootloader.h" // From mmoskal/uf2-stm32f103's backup.c diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 41546e3e50..8f46fe0736 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -15,8 +15,6 @@ */ #pragma once -#include "compiler_support.h" - #ifndef USB_VBUS_PIN # define SPLIT_USB_DETECT // Force this on when dedicated pin is not used #endif @@ -28,7 +26,7 @@ # define REALTIME_COUNTER_CLOCK 1000000 # define USE_GPIOV1 -# define PAL_OUTPUT_TYPE_OPENDRAIN STATIC_ASSERT(0, "RP2040 has no Open Drain GPIO configuration, setting this is not possible"); +# define PAL_OUTPUT_TYPE_OPENDRAIN _Static_assert(0, "RP2040 has no Open Drain GPIO configuration, setting this is not possible"); /* Aliases for GPIO PWM channels - every pin has at least one PWM channel * assigned */ @@ -144,19 +142,6 @@ # endif #endif -// AT32 compatibility -#if defined(MCU_AT32) -# define CPU_CLOCK AT32_SYSCLK - -# if defined(AT32F415) -# define USE_GPIOV1 -# define USE_I2CV1 -# define PAL_MODE_ALTERNATE_OPENDRAIN PAL_MODE_AT32_MUX_OPENDRAIN -# define PAL_MODE_ALTERNATE_PUSHPULL PAL_MODE_AT32_MUX_PUSHPULL -# define AUDIO_PWM_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# endif -#endif - #if defined(GD32VF103) /* This chip has the same API as STM32F103, but uses different names for literally the same thing. * As of 4.7.2021 QMK is tailored to use STM32 defines/names, for compatibility sake diff --git a/platforms/chibios/config.h b/platforms/chibios/config.h index a58479bb97..006415a5dc 100644 --- a/platforms/chibios/config.h +++ b/platforms/chibios/config.h @@ -5,7 +5,3 @@ #ifndef CORTEX_ENABLE_WFI_IDLE # define CORTEX_ENABLE_WFI_IDLE TRUE #endif // CORTEX_ENABLE_WFI_IDLE - -#ifndef SERIAL_NUMBER_USE_HARDWARE_ID -# define SERIAL_NUMBER_USE_HARDWARE_ID TRUE -#endif // SERIAL_NUMBER_USE_HARDWARE_ID diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h b/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h index deb0628ef8..7e6b8ddaf2 100644 --- a/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h @@ -37,4 +37,4 @@ // If this is undesirable, either B0 or B5 can be redefined by // using #undef and #define to change its assignment #define B0 PAL_LINE(GPIOB, 2) -#define D5 PAL_LINE(GPIOB, 2) +#define D5 PAL_LINE(GPIOB, 2) \ No newline at end of file diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk index beefb9de23..5f49b17f8a 100644 --- a/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk @@ -2,4 +2,4 @@ BACKLIGHT_DRIVER ?= pwm WS2812_DRIVER ?= pwm SERIAL_DRIVER ?= usart FLASH_DRIVER ?= spi -EEPROM_DRIVER ?= spi +EEPROM_DRIVER ?= spi \ No newline at end of file diff --git a/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk b/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk index 80111d0f78..303d3135ce 100644 --- a/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk +++ b/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk @@ -1,8 +1,2 @@ CONVERTER:=platforms/chibios/converters/promicro_to_sparkfun_pm2040 ACTIVE_CONVERTER:=sparkfun_pm2040 - -$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) -$(info The 'CONVERT_TO=promicro_rp2040' option is now deprecated.) -$(info Depending on hardware either 'CONVERT_TO=sparkfun_pm2040' or 'CONVERT_TO=rp2040_ce' should be used instead.) -$(info See https://docs.qmk.fm/feature_converters#pro-micro documentation for more information.) -$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) diff --git a/platforms/chibios/converters/promicro_to_svlinky/_pin_defs.h b/platforms/chibios/converters/promicro_to_svlinky/_pin_defs.h deleted file mode 100644 index b90e5f4020..0000000000 --- a/platforms/chibios/converters/promicro_to_svlinky/_pin_defs.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2023 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Left side (front) -#define D3 0U -#define D2 1U -// GND -// GND -#define D1 2U -#define D0 3U -#define D4 4U -#define C6 5U -#define D7 6U -#define E6 7U -#define B4 8U -#define B5 9U - -// Right side (front) -// RAW -// GND -// RESET -// VCC -#define F4 29U -#define F5 28U -#define F6 18U -#define F7 24U -#define B1 22U -#define B3 20U -#define B2 23U -#define B6 21U - -// LEDs -#define D5 17U -#define B0 25U diff --git a/platforms/chibios/converters/promicro_to_svlinky/converter.mk b/platforms/chibios/converters/promicro_to_svlinky/converter.mk deleted file mode 100644 index bfca20cd99..0000000000 --- a/platforms/chibios/converters/promicro_to_svlinky/converter.mk +++ /dev/null @@ -1,10 +0,0 @@ -# rp2040_ce MCU settings for converting AVR projects -MCU := RP2040 -BOARD := QMK_PM2040 -BOOTLOADER := rp2040 - -# These are defaults based on what has been implemented for RP2040 boards -SERIAL_DRIVER ?= vendor -WS2812_DRIVER ?= vendor -BACKLIGHT_DRIVER ?= software -OPT_DEFS += -DUSB_VBUS_PIN=19U diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index a916cc9a1d..fb146df936 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -22,7 +22,7 @@ # error "You need to set HAL_USE_ADC to TRUE in your halconf.h to use the ADC." #endif -#if !RP_ADC_USE_ADC1 && !STM32_ADC_USE_ADC1 && !STM32_ADC_USE_ADC2 && !STM32_ADC_USE_ADC3 && !STM32_ADC_USE_ADC4 && !WB32_ADC_USE_ADC1 && !AT32_ADC_USE_ADC1 +#if !RP_ADC_USE_ADC1 && !STM32_ADC_USE_ADC1 && !STM32_ADC_USE_ADC2 && !STM32_ADC_USE_ADC3 && !STM32_ADC_USE_ADC4 && !WB32_ADC_USE_ADC1 # error "You need to set one of the 'xxx_ADC_USE_ADCx' settings to TRUE in your mcuconf.h to use the ADC." #endif @@ -43,9 +43,9 @@ #endif // Otherwise assume V3 -#if defined(STM32F0XX) || defined(STM32L0XX) || defined(STM32G0XX) +#if defined(STM32F0XX) || defined(STM32L0XX) # define USE_ADCV1 -#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) +#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) # define USE_ADCV2 #endif @@ -82,7 +82,7 @@ /* User configurable ADC options */ #ifndef ADC_COUNT -# if defined(RP2040) || defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) || defined(STM32G0XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) +# if defined(RP2040) || defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) # define ADC_COUNT 1 # elif defined(STM32F3XX) || defined(STM32G4XX) # define ADC_COUNT 4 @@ -114,8 +114,6 @@ # define ADC_SAMPLING_RATE ADC_SMPR_SMP_1P5 # elif defined(ADC_SMPR_SMP_2P5) // STM32L4XX, STM32L4XXP, STM32G4XX, STM32WBXX # define ADC_SAMPLING_RATE ADC_SMPR_SMP_2P5 -# elif defined(ADC_SMPR_SMP1_1P5) // STM32G0XX -# define ADC_SAMPLING_RATE ADC_SMPR_SMP1_1P5 # else # error "Cannot determine the default ADC_SAMPLING_RATE for this MCU." # endif @@ -144,16 +142,11 @@ static ADCConversionGroup adcConversionGroup = { .cfgr1 = ADC_CFGR1_CONT | ADC_RESOLUTION, .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) -# if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) && !defined(AT32F415) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... +# if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif -# if defined(AT32F415) - .spt2 = ADC_SPT2_CSPT_AN0(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN1(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN2(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN3(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN4(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN5(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN6(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN7(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN8(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN9(ADC_SAMPLING_RATE), - .spt1 = ADC_SPT1_CSPT_AN10(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN11(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN12(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN13(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN14(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN15(ADC_SAMPLING_RATE), -# else .smpr2 = ADC_SMPR2_SMP_AN0(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN1(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN2(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN3(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN4(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN5(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN6(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN7(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN8(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN9(ADC_SAMPLING_RATE), .smpr1 = ADC_SMPR1_SMP_AN10(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN11(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN12(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN13(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN14(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN15(ADC_SAMPLING_RATE), -# endif #elif defined(RP2040) // RP2040 does not have any extra config here #else @@ -249,7 +242,7 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case F9: return TO_MUX( ADC_CHANNEL_IN7, 2 ); case F10: return TO_MUX( ADC_CHANNEL_IN8, 2 ); # endif -#elif defined(STM32F1XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) +#elif defined(STM32F1XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) case A0: return TO_MUX( ADC_CHANNEL_IN0, 0 ); case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); case A2: return TO_MUX( ADC_CHANNEL_IN2, 0 ); @@ -295,23 +288,6 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case F9: return TO_MUX( ADC_CHANNEL_IN12, 2 ); case F10: return TO_MUX( ADC_CHANNEL_IN13, 2 ); # endif -#elif defined(STM32G0XX) - case A0: return TO_MUX( 0, 0 ); - case A1: return TO_MUX( 1, 0 ); - case A2: return TO_MUX( 2, 0 ); - case A3: return TO_MUX( 3, 0 ); - case A4: return TO_MUX( 4, 0 ); - case A5: return TO_MUX( 5, 0 ); - case A6: return TO_MUX( 6, 0 ); - case A7: return TO_MUX( 7, 0 ); - case B0: return TO_MUX( 8, 0 ); - case B1: return TO_MUX( 9, 0 ); - case B2: return TO_MUX( 10, 0 ); - case B10: return TO_MUX( 11, 0 ); - case B11: return TO_MUX( 15, 0 ); - case B12: return TO_MUX( 16, 0 ); - case C4: return TO_MUX( 17, 0 ); - case C5: return TO_MUX( 18, 0 ); #elif defined(STM32G4XX) case A0: return TO_MUX( ADC_CHANNEL_IN1, 0 ); // Can also be ADC2 case A1: return TO_MUX( ADC_CHANNEL_IN2, 0 ); // Can also be ADC2 @@ -368,7 +344,7 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { static inline ADCDriver* intToADCDriver(uint8_t adcInt) { switch (adcInt) { -#if RP_ADC_USE_ADC1 || STM32_ADC_USE_ADC1 || WB32_ADC_USE_ADC1 || AT32_ADC_USE_ADC1 +#if RP_ADC_USE_ADC1 || STM32_ADC_USE_ADC1 || WB32_ADC_USE_ADC1 case 0: return &ADCD1; #endif @@ -415,11 +391,7 @@ int16_t adc_read(adc_mux mux) { // TODO: fix previous assumption of only 1 input... adcConversionGroup.chselr = 1 << mux.input; /*no macro to convert N to ADC_CHSELR_CHSEL1*/ #elif defined(USE_ADCV2) -# if defined(AT32F415) - adcConversionGroup.osq3 = ADC_OSQ3_OSN1_N(mux.input); -# else adcConversionGroup.sqr3 = ADC_SQR3_SQ1_N(mux.input); -# endif #elif defined(RP2040) adcConversionGroup.channel_mask = 1 << mux.input; #else diff --git a/platforms/chibios/drivers/audio_pwm_hardware.c b/platforms/chibios/drivers/audio_pwm_hardware.c index afa341abb6..1ba7ec13bc 100644 --- a/platforms/chibios/drivers/audio_pwm_hardware.c +++ b/platforms/chibios/drivers/audio_pwm_hardware.c @@ -41,19 +41,18 @@ static float channel_1_frequency = 0.0f; void channel_1_set_frequency(float freq) { channel_1_frequency = freq; - pwmcnt_t period; - pwmcnt_t width; if (freq <= 0.0) { - period = 2; - width = 0; - } else { - period = (pwmCFG.frequency / freq); - width = (pwmcnt_t)(((period) * (pwmcnt_t)((100 - note_timbre) * 100)) / (pwmcnt_t)(10000)); + // a pause/rest has freq=0 + return; } + + pwmcnt_t period = (pwmCFG.frequency / freq); chSysLockFromISR(); pwmChangePeriodI(&AUDIO_PWM_DRIVER, period); - pwmEnableChannelI(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, width); + pwmEnableChannelI(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, + // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH + PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); chSysUnlockFromISR(); } @@ -68,9 +67,6 @@ void channel_1_start(void) { void channel_1_stop(void) { pwmStop(&AUDIO_PWM_DRIVER); - pwmStart(&AUDIO_PWM_DRIVER, &pwmCFG); - pwmEnableChannel(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, 0); - pwmStop(&AUDIO_PWM_DRIVER); } static virtual_timer_t audio_vt; diff --git a/platforms/chibios/drivers/backlight_pwm.c b/platforms/chibios/drivers/backlight_pwm.c index 47ad008415..01e6f71307 100644 --- a/platforms/chibios/drivers/backlight_pwm.c +++ b/platforms/chibios/drivers/backlight_pwm.c @@ -25,12 +25,12 @@ # define BACKLIGHT_PWM_CHANNEL 3 #endif -// Support for pins which are on TIM1_CH1N +// Support for pins which are on TIM1_CH1N - requires STM32_PWM_USE_ADVANCED #ifdef BACKLIGHT_PWM_COMPLEMENTARY_OUTPUT # if BACKLIGHT_ON_STATE == 1 -# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH; -# else # define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW; +# else +# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH; # endif #else # if BACKLIGHT_ON_STATE == 1 diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c index 31062a4816..628137a0b3 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c +++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c @@ -25,7 +25,6 @@ #define EEPROM_ADDR(offset) (EEPROM_BASE_ADDR + (offset)) #define EEPROM_PTR(offset) ((__IO uint8_t *)EEPROM_ADDR(offset)) #define EEPROM_BYTE(location, offset) (*(EEPROM_PTR(((uint32_t)location) + ((uint32_t)offset)))) -#define EEPROM_WORD(location) (*(__IO uint32_t *)EEPROM_PTR(location)) #define BUFFER_BYTE(buffer, offset) (*(((uint8_t *)buffer) + offset)) @@ -63,16 +62,12 @@ void eeprom_driver_erase(void) { STM32_L0_L1_EEPROM_Unlock(); for (size_t offset = 0; offset < STM32_ONBOARD_EEPROM_SIZE; offset += sizeof(uint32_t)) { -#ifdef QMK_MCU_SERIES_STM32L0XX FLASH->PECR |= FLASH_PECR_ERASE | FLASH_PECR_DATA; -#endif - EEPROM_WORD(offset) = (uint32_t)0; + *(__IO uint32_t *)EEPROM_ADDR(offset) = (uint32_t)0; STM32_L0_L1_EEPROM_WaitNotBusy(); -#ifdef QMK_MCU_SERIES_STM32L0XX FLASH->PECR &= ~(FLASH_PECR_ERASE | FLASH_PECR_DATA); -#endif } STM32_L0_L1_EEPROM_Lock(); @@ -91,39 +86,17 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - // use word-aligned write to overcome issues with writing null bytes - uint32_t start_addr = (uint32_t)addr; - if (start_addr >= (STM32_ONBOARD_EEPROM_SIZE)) { - return; - } - uint32_t max_len = (STM32_ONBOARD_EEPROM_SIZE)-start_addr; - if (len > max_len) { - len = max_len; - } - uint32_t end_addr = start_addr + len; - - uint32_t aligned_start = start_addr & ~0x3; - uint32_t aligned_end = (end_addr + 3) & ~0x3; - STM32_L0_L1_EEPROM_Unlock(); - for (uint32_t word_addr = aligned_start; word_addr < aligned_end; word_addr += 4) { - uint32_t existing_word = EEPROM_WORD(word_addr); - uint32_t new_word = existing_word; - // Update the relevant bytes in the word - for (int i = 0; i < 4; i++) { - uint32_t byte_addr = word_addr + i; - if (byte_addr >= start_addr && byte_addr < end_addr) { - uint8_t new_byte = BUFFER_BYTE(buf, byte_addr - start_addr); - new_word = (new_word & ~(0xFFU << (i * 8))) | ((uint32_t)new_byte << (i * 8)); - } + for (size_t offset = 0; offset < len; ++offset) { + // Drop out if we've hit the limit of the EEPROM + if ((((uint32_t)addr) + offset) >= STM32_ONBOARD_EEPROM_SIZE) { + break; } - // Only write if the word has changed - if (new_word != existing_word) { - STM32_L0_L1_EEPROM_WaitNotBusy(); - EEPROM_WORD(word_addr) = new_word; - } + STM32_L0_L1_EEPROM_WaitNotBusy(); + EEPROM_BYTE(addr, offset) = BUFFER_BYTE(buf, offset); } + STM32_L0_L1_EEPROM_Lock(); } diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h index 1e6b4e4e42..c1d801f225 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h +++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h @@ -27,3 +27,7 @@ # define STM32_ONBOARD_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO and EEPROM page sizing # endif #endif + +#if STM32_ONBOARD_EEPROM_SIZE > 128 +# pragma message("Please note: resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.") +#endif diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 20850859b5..0d5fb1e985 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -29,37 +29,17 @@ #include "i2c_master.h" #include "gpio.h" #include "chibios_config.h" +#include #include #include -#ifndef I2C_DRIVER -# define I2C_DRIVER I2CD1 -#endif - #ifndef I2C1_SCL_PIN # define I2C1_SCL_PIN B6 #endif - -#ifndef I2C1_SCL_PAL_MODE -# ifdef USE_GPIOV1 -# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# else -# define I2C1_SCL_PAL_MODE 4 -# endif -#endif - #ifndef I2C1_SDA_PIN # define I2C1_SDA_PIN B7 #endif -#ifndef I2C1_SDA_PAL_MODE -# ifdef USE_GPIOV1 -# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# else -# define I2C1_SDA_PAL_MODE 4 -# endif -#endif - #ifdef USE_I2CV1 # ifndef I2C1_OPMODE # define I2C1_OPMODE OPMODE_I2C @@ -90,6 +70,27 @@ # endif #endif +#ifndef I2C_DRIVER +# define I2C_DRIVER I2CD1 +#endif + +#ifdef USE_GPIOV1 +# ifndef I2C1_SCL_PAL_MODE +# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# endif +# ifndef I2C1_SDA_PAL_MODE +# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# endif +#else +// The default PAL alternate modes are used to signal that the pins are used for I2C +# ifndef I2C1_SCL_PAL_MODE +# define I2C1_SCL_PAL_MODE 4 +# endif +# ifndef I2C1_SDA_PAL_MODE +# define I2C1_SDA_PAL_MODE 4 +# endif +#endif + static const I2CConfig i2cconfig = { #if defined(USE_I2CV1_CONTRIB) I2C1_CLOCK_SPEED, @@ -206,4 +207,4 @@ __attribute__((weak)) i2c_status_t i2c_ping_address(uint8_t address, uint16_t ti // This approach may produce false negative results for I2C devices that do not respond to a register 0 read request. uint8_t data = 0; return i2c_read_register(address, 0, &data, sizeof(data), timeout); -} +} \ No newline at end of file diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h new file mode 100644 index 0000000000..132ffd14c0 --- /dev/null +++ b/platforms/chibios/drivers/i2c_master.h @@ -0,0 +1,49 @@ +/* Copyright 2018 Jack Humbert + * Copyright 2018 Yiancar + * + * 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 . + */ + +/* This library follows the convention of the AVR i2c_master library. + * As a result addresses are expected to be already shifted (addr << 1). + * I2CD1 is the default driver which corresponds to pins B6 and B7. This + * can be changed. + * Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that + * STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. + */ +#pragma once + +#include + +// ### DEPRECATED - DO NOT USE ### +#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) +#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) +#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) +#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) +// ############################### + +typedef int16_t i2c_status_t; + +#define I2C_STATUS_SUCCESS (0) +#define I2C_STATUS_ERROR (-1) +#define I2C_STATUS_TIMEOUT (-2) + +void i2c_init(void); +i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); +i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index becf3afbce..767ef8726f 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -9,17 +9,6 @@ #if defined(SERIAL_USART_CONFIG) static QMKSerialConfig serial_config = SERIAL_USART_CONFIG; -#elif defined(MCU_AT32) /* AT32 MCUs */ -static QMKSerialConfig serial_config = { - .speed = (SERIAL_USART_SPEED), - .ctrl1 = (SERIAL_USART_CTRL1), - .ctrl2 = (SERIAL_USART_CTRL2), -# if !defined(SERIAL_USART_FULL_DUPLEX) - .ctrl3 = ((SERIAL_USART_CTRL3) | USART_CTRL3_SLBEN) /* activate half-duplex mode */ -# else - .ctrl3 = (SERIAL_USART_CTRL3) -# endif -}; #elif defined(MCU_STM32) /* STM32 MCUs */ static QMKSerialConfig serial_config = { # if HAL_USE_SERIAL @@ -171,7 +160,7 @@ inline bool serial_transport_receive_blocking(uint8_t* destination, const size_t * @brief Initiate pins for USART peripheral. Half-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) || defined(MCU_AT32) /* STM32 and AT32 MCUs */ +# if defined(MCU_STM32) /* STM32 MCUs */ # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_OPENDRAIN); # else @@ -194,7 +183,7 @@ __attribute__((weak)) void usart_init(void) { * @brief Initiate pins for USART peripheral. Full-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) || defined(MCU_AT32) /* STM32 and AT32 MCUs */ +# if defined(MCU_STM32) /* STM32 MCUs */ # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_PUSHPULL); palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_INPUT); diff --git a/platforms/chibios/drivers/serial_usart.h b/platforms/chibios/drivers/serial_usart.h index dbd7673273..dec8a292e9 100644 --- a/platforms/chibios/drivers/serial_usart.h +++ b/platforms/chibios/drivers/serial_usart.h @@ -74,75 +74,40 @@ typedef SIOConfig QMKSerialConfig; # endif #endif -#if defined(MCU_STM32) /* STM32 MCUs */ -# if !defined(USART_CR1_M0) -# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so -# endif - -# if !defined(SERIAL_USART_CR1) -# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length -# endif - -# if !defined(SERIAL_USART_CR2) -# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits -# endif - -# if !defined(SERIAL_USART_CR3) -# define SERIAL_USART_CR3 0 -# endif - -# if defined(USART1_REMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART1_REMAP); \ - } while (0) -# elif defined(USART2_REMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART2_REMAP); \ - } while (0) -# elif defined(USART3_PARTIALREMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_PARTIALREMAP); \ - } while (0) -# elif defined(USART3_FULLREMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ - } while (0) -# endif -#elif defined(MCU_AT32) /* AT32 MCUs */ -# if !defined(USART_CTRL1_DBN0) -# define USART_CTRL1_DBN0 USART_CTRL1_DBN -# endif - -# if !defined(SERIAL_USART_CTRL1) -# define SERIAL_USART_CTRL1 (USART_CTRL1_PEN | USART_CTRL1_PSEL | USART_CTRL1_DBN0) // parity enable, odd parity, 9 bit length -# endif - -# if !defined(SERIAL_USART_CTRL2) -# define SERIAL_USART_CTRL2 (USART_CTRL2_STOPBN_1) // 2 stop bits -# endif - -# if !defined(SERIAL_USART_CTRL3) -# define SERIAL_USART_CTRL3 0 -# endif - -# if defined(USART1_REMAP) -# define USART_REMAP \ - do { \ - (IOMUX->REMAP |= IOMUX_REMAP_USART1_MUX); \ - } while (0) -# elif defined(USART3_PARTIALREMAP) -# define USART_REMAP \ - do { \ - (IOMUX->REMAP |= IOMUX_REMAP_USART3_MUX_MUX1); \ - } while (0) -# elif defined(USART3_FULLREMAP) -# define USART_REMAP \ - do { \ - (IOMUX->REMAP |= IOMUX_REMAP_USART3_MUX_MUX2); \ - } while (0) -# endif +#if !defined(USART_CR1_M0) +# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so +#endif + +#if !defined(SERIAL_USART_CR1) +# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length +#endif + +#if !defined(SERIAL_USART_CR2) +# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits +#endif + +#if !defined(SERIAL_USART_CR3) +# define SERIAL_USART_CR3 0 +#endif + +#if defined(USART1_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART1_REMAP); \ + } while (0) +#elif defined(USART2_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART2_REMAP); \ + } while (0) +#elif defined(USART3_PARTIALREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_PARTIALREMAP); \ + } while (0) +#elif defined(USART3_FULLREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ + } while (0) #endif diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 84d027bf49..fcdbc9ecf0 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -15,78 +15,17 @@ */ #include "spi_master.h" -#include "chibios_config.h" -#include -#include -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID2 -#endif - -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B13 -#endif - -#ifndef SPI_SCK_PAL_MODE -# ifdef USE_GPIOV1 -# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_SCK_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B15 -#endif - -#ifndef SPI_MOSI_PAL_MODE -# ifdef USE_GPIOV1 -# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MOSI_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B14 -#endif - -#ifndef SPI_MISO_PAL_MODE -# ifdef USE_GPIOV1 -# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MISO_PAL_MODE 5 -# endif -#endif +#include "timer.h" static bool spiStarted = false; + #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE -static pin_t current_slave_pin = NO_PIN; -static bool current_cs_active_low = true; +static pin_t currentSlavePin; #endif static SPIConfig spiConfig; -static inline void spi_select(void) { - spiSelect(&SPI_DRIVER); - -#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE - if (current_slave_pin != NO_PIN) { - gpio_write_pin(current_slave_pin, current_cs_active_low ? 0 : 1); - } -#endif -} - -static inline void spi_unselect(void) { -#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE - if (current_slave_pin != NO_PIN) { - gpio_write_pin(current_slave_pin, current_cs_active_low ? 1 : 0); - } -#endif - - spiUnselect(&SPI_DRIVER); -} - __attribute__((weak)) void spi_init(void) { static bool is_initialised = false; if (!is_initialised) { @@ -124,57 +63,40 @@ __attribute__((weak)) void spi_init(void) { } } -bool spi_start_extended(spi_start_config_t *start_config) { +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { #if (SPI_USE_MUTUAL_EXCLUSION == TRUE) spiAcquireBus(&SPI_DRIVER); #endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) if (spiStarted) { -#if (SPI_USE_MUTUAL_EXCLUSION == TRUE) - spiReleaseBus(&SPI_DRIVER); -#endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) return false; } + #if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE - if (start_config->slave_pin == NO_PIN) { -# if (SPI_USE_MUTUAL_EXCLUSION == TRUE) - spiReleaseBus(&SPI_DRIVER); -# endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) + if (slavePin == NO_PIN) { return false; } #endif #if !(defined(WB32F3G71xx) || defined(WB32FQ95xx)) uint16_t roundedDivisor = 2; - while (roundedDivisor < start_config->divisor) { + while (roundedDivisor < divisor) { roundedDivisor <<= 1; } -# if defined(AT32F415) - if (roundedDivisor < 2 || roundedDivisor > 1024) { -# if (SPI_USE_MUTUAL_EXCLUSION == TRUE) - spiReleaseBus(&SPI_DRIVER); -# endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) - return false; - } -# else if (roundedDivisor < 2 || roundedDivisor > 256) { -# if (SPI_USE_MUTUAL_EXCLUSION == TRUE) - spiReleaseBus(&SPI_DRIVER); -# endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) return false; } -# endif #endif #if defined(K20x) || defined(KL2x) spiConfig.tar0 = SPIx_CTARn_FMSZ(7) | SPIx_CTARn_ASC(1); - if (start_config->lsb_first) { + if (lsbFirst) { spiConfig.tar0 |= SPIx_CTARn_LSBFE; } - switch (start_config->mode) { + switch (mode) { case 0: break; case 1: @@ -219,11 +141,11 @@ bool spi_start_extended(spi_start_config_t *start_config) { spiConfig.cr0 = SPI_CR0_SELOEN; spiConfig.cr1 = SPI_CR1_MODE | 8; // 8 bits and in master mode - if (start_config->lsb_first) { + if (lsbFirst) { spiConfig.cr1 |= SPI_CR1_FIRSTBIT; } - switch (start_config->mode) { + switch (mode) { case 0: spiConfig.cr1 |= SPI_CR1_FORMAT_MODE0; break; @@ -241,20 +163,17 @@ bool spi_start_extended(spi_start_config_t *start_config) { spiConfig.cpr = (roundedDivisor - 1) >> 1; #elif defined(WB32F3G71xx) || defined(WB32FQ95xx) - if (!start_config->lsb_first) { - osalDbgAssert(start_config->lsb_first != FALSE, "unsupported lsb_first"); + if (!lsbFirst) { + osalDbgAssert(lsbFirst != FALSE, "unsupported lsbFirst"); } - if (start_config->divisor < 1) { -# if (SPI_USE_MUTUAL_EXCLUSION == TRUE) - spiReleaseBus(&SPI_DRIVER); -# endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) + if (divisor < 1) { return false; } - spiConfig.SPI_BaudRatePrescaler = (start_config->divisor << 2); + spiConfig.SPI_BaudRatePrescaler = (divisor << 2); - switch (start_config->mode) { + switch (mode) { case 0: spiConfig.SPI_CPHA = SPI_CPHA_1Edge; spiConfig.SPI_CPOL = SPI_CPOL_Low; @@ -273,8 +192,8 @@ bool spi_start_extended(spi_start_config_t *start_config) { break; } #elif defined(MCU_RP) - if (start_config->lsb_first) { - osalDbgAssert(start_config->lsb_first == false, "RP2040s PrimeCell SPI implementation does not support sending LSB first."); + if (lsbFirst) { + osalDbgAssert(lsbFirst == false, "RP2040s PrimeCell SPI implementation does not support sending LSB first."); } // Motorola frame format and 8bit transfer data size. @@ -284,7 +203,7 @@ bool spi_start_extended(spi_start_config_t *start_config) { // passed divisor to be the only value to divide the input clock by. spiConfig.SSPCPSR = roundedDivisor; // Even number from 2 to 254 - switch (start_config->mode) { + switch (mode) { case 0: spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPO; // Clock polarity: low spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPH; // Clock phase: sample on first edge @@ -302,67 +221,14 @@ bool spi_start_extended(spi_start_config_t *start_config) { spiConfig.SSPCR0 |= SPI_SSPCR0_SPH; // Clock phase: sample on second edge transition break; } -#elif defined(AT32F415) - spiConfig.ctrl1 = 0; - - if (start_config->lsb_first) { - spiConfig.ctrl1 |= SPI_CTRL1_LTF; - } - - switch (start_config->mode) { - case 0: - break; - case 1: - spiConfig.ctrl1 |= SPI_CTRL1_CLKPHA; - break; - case 2: - spiConfig.ctrl1 |= SPI_CTRL1_CLKPOL; - break; - case 3: - spiConfig.ctrl1 |= SPI_CTRL1_CLKPHA | SPI_CTRL1_CLKPOL; - break; - } - - switch (roundedDivisor) { - case 2: - break; - case 4: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_0; - break; - case 8: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_1; - break; - case 16: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0; - break; - case 32: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2; - break; - case 64: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_0; - break; - case 128: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1; - break; - case 256: - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0; - break; - case 512: - spiConfig.ctrl2 |= SPI_CTRL1_MDIV_3; - break; - case 1024: - spiConfig.ctrl2 |= SPI_CTRL1_MDIV_3; - spiConfig.ctrl1 |= SPI_CTRL1_MDIV_0; - break; - } #else spiConfig.cr1 = 0; - if (start_config->lsb_first) { + if (lsbFirst) { spiConfig.cr1 |= SPI_CR1_LSBFIRST; } - switch (start_config->mode) { + switch (mode) { case 0: break; case 1: @@ -405,37 +271,31 @@ bool spi_start_extended(spi_start_config_t *start_config) { spiStarted = true; #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE - current_slave_pin = start_config->slave_pin; - current_cs_active_low = start_config->cs_active_low; + currentSlavePin = slavePin; #endif #if SPI_SELECT_MODE == SPI_SELECT_MODE_PAD - spiConfig.ssport = PAL_PORT(start_config->slave_pin); - spiConfig.sspad = PAL_PAD(start_config->slave_pin); - gpio_set_pin_output(start_config->slave_pin); + spiConfig.ssport = PAL_PORT(slavePin); + spiConfig.sspad = PAL_PAD(slavePin); + gpio_set_pin_output(slavePin); #elif SPI_SELECT_MODE == SPI_SELECT_MODE_NONE - if (start_config->slave_pin != NO_PIN) { - gpio_set_pin_output(start_config->slave_pin); + if (slavePin != NO_PIN) { + gpio_set_pin_output(slavePin); } #else # error "Unsupported SPI_SELECT_MODE" #endif spiStart(&SPI_DRIVER, &spiConfig); - spi_select(); + spiSelect(&SPI_DRIVER); +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + if (slavePin != NO_PIN) { + gpio_write_pin_low(slavePin); + } +#endif return true; } -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { - spi_start_config_t start_config = {0}; - start_config.slave_pin = slavePin; - start_config.lsb_first = lsbFirst; - start_config.mode = mode; - start_config.divisor = divisor; - start_config.cs_active_low = true; - return spi_start_extended(&start_config); -} - spi_status_t spi_write(uint8_t data) { uint8_t rxData; spiExchange(&SPI_DRIVER, 1, &data, &rxData); @@ -462,7 +322,12 @@ spi_status_t spi_receive(uint8_t *data, uint16_t length) { void spi_stop(void) { if (spiStarted) { - spi_unselect(); +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + if (currentSlavePin != NO_PIN) { + gpio_write_pin_high(currentSlavePin); + } +#endif + spiUnselect(&SPI_DRIVER); spiStop(&SPI_DRIVER); spiStarted = false; } diff --git a/platforms/chibios/drivers/spi_master.h b/platforms/chibios/drivers/spi_master.h new file mode 100644 index 0000000000..6a3ce481f1 --- /dev/null +++ b/platforms/chibios/drivers/spi_master.h @@ -0,0 +1,93 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include + +#include "gpio.h" +#include "chibios_config.h" + +#ifndef SPI_DRIVER +# define SPI_DRIVER SPID2 +#endif + +#ifndef SPI_SCK_PIN +# define SPI_SCK_PIN B13 +#endif + +#ifndef SPI_SCK_PAL_MODE +# if defined(USE_GPIOV1) +# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_SCK_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MOSI_PIN +# define SPI_MOSI_PIN B15 +#endif + +#ifndef SPI_MOSI_PAL_MODE +# if defined(USE_GPIOV1) +# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MOSI_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MISO_PIN +# define SPI_MISO_PIN B14 +#endif + +#ifndef SPI_MISO_PAL_MODE +# if defined(USE_GPIOV1) +# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MISO_PAL_MODE 5 +# endif +#endif + +typedef int16_t spi_status_t; + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif +void spi_init(void); + +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +spi_status_t spi_write(uint8_t data); + +spi_status_t spi_read(void); + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +void spi_stop(void); +#ifdef __cplusplus +} +#endif diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h new file mode 100644 index 0000000000..c1945575f1 --- /dev/null +++ b/platforms/chibios/drivers/uart.h @@ -0,0 +1,200 @@ +// Copyright 2024 Stefan Kerkmann +// Copyright 2021 QMK +// Copyright 2024 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include + +#include "gpio.h" +#include "chibios_config.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef SERIAL_DRIVER +# define UART_DRIVER SERIAL_DRIVER +#endif +#ifdef SD1_TX_PIN +# define UART_TX_PIN SD1_TX_PIN +#endif +#ifdef SD1_RX_PIN +# define UART_RX_PIN SD1_RX_PIN +#endif +#ifdef SD1_CTS_PIN +# define UART_CTS_PIN SD1_CTS_PIN +#endif +#ifdef SD1_RTS_PIN +# define UART_RTS_PIN SD1_RTS_PIN +#endif +#ifdef SD1_TX_PAL_MODE +# define UART_TX_PAL_MODE SD1_TX_PAL_MODE +#endif +#ifdef SD1_RX_PAL_MODE +# define UART_RX_PAL_MODE SD1_RX_PAL_MODE +#endif +#ifdef SD1_CTS_PAL_MODE +# define UART_RTS_PAL_MODE SD1_CTS_PAL_MODE +#endif +#ifdef SD1_RTS_PAL_MODE +# define UART_TX_PAL_MODE SD1_RTS_PAL_MODE +#endif +#ifdef SD1_CR1 +# define UART_CR1 SD1_CR1 +#endif +#ifdef SD1_CR2 +# define UART_CR2 SD1_CR2 +#endif +#ifdef SD1_CR3 +# define UART_CR3 SD1_CR3 +#endif +#ifdef SD1_WRDLEN +# define UART_WRDLEN SD1_WRDLEN +#endif +#ifdef SD1_STPBIT +# define UART_STPBIT SD1_STPBIT +#endif +#ifdef SD1_PARITY +# define UART_PARITY SD1_PARITY +#endif +#ifdef SD1_ATFLCT +# define UART_ATFLCT SD1_ATFLCT +#endif +// ======== + +#ifndef UART_DRIVER +# if (HAL_USE_SERIAL == TRUE) +# define UART_DRIVER SD1 +# elif (HAL_USE_SIO == TRUE) +# define UART_DRIVER SIOD1 +# endif +#endif + +#ifndef UART_TX_PIN +# define UART_TX_PIN A9 +#endif + +#ifndef UART_RX_PIN +# define UART_RX_PIN A10 +#endif + +#ifndef UART_CTS_PIN +# define UART_CTS_PIN A11 +#endif + +#ifndef UART_RTS_PIN +# define UART_RTS_PIN A12 +#endif + +#ifdef USE_GPIOV1 +# ifndef UART_TX_PAL_MODE +# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# endif +# ifndef UART_RX_PAL_MODE +# define UART_RX_PAL_MODE PAL_MODE_INPUT +# endif +# ifndef UART_CTS_PAL_MODE +# define UART_CTS_PAL_MODE PAL_MODE_INPUT +# endif +# ifndef UART_RTS_PAL_MODE +# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# endif +#else +# ifndef UART_TX_PAL_MODE +# define UART_TX_PAL_MODE 7 +# endif + +# ifndef UART_RX_PAL_MODE +# define UART_RX_PAL_MODE 7 +# endif + +# ifndef UART_CTS_PAL_MODE +# define UART_CTS_PAL_MODE 7 +# endif + +# ifndef UART_RTS_PAL_MODE +# define UART_RTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CR1 +# define UART_CR1 0 +#endif + +#ifndef UART_CR2 +# define UART_CR2 0 +#endif + +#ifndef UART_CR3 +# define UART_CR3 0 +#endif + +#ifndef UART_WRDLEN +# define UART_WRDLEN 3 +#endif + +#ifndef UART_STPBIT +# define UART_STPBIT 0 +#endif + +#ifndef UART_PARITY +# define UART_PARITY 0 +#endif + +#ifndef UART_ATFLCT +# define UART_ATFLCT 0 +#endif + +/** + * @brief Initialize the UART driver. This function must be called only once, + * before any of the below functions can be called. + * + * @param baud The baud rate to transmit and receive at. This may depend on the + * device you are communicating with. Common values are 1200, 2400, 4800, 9600, + * 19200, 38400, 57600, and 115200. + */ +void uart_init(uint32_t baud); + +/** + * @brief Transmit a single byte. + * + * @param data The byte to transmit. + */ +void uart_write(uint8_t data); + +/** + * @brief Receive a single byte. + * + * @return uint8_t The byte read from the receive buffer. This function will + * block if the buffer is empty (ie. no data to read). + */ +uint8_t uart_read(void); + +/** + * @brief Transmit multiple bytes. + * + * @param data A pointer to the data to write from. + * @param length The number of bytes to write. Take care not to overrun the + * length of `data`. + */ +void uart_transmit(const uint8_t *data, uint16_t length); + +/** + * @brief Receive multiple bytes. + * + * @param data A pointer to the buffer to read into. + * @param length The number of bytes to read. Take care not to overrun the + * length of `data`. + */ +void uart_receive(uint8_t *data, uint16_t length); + +/** + * @brief Return whether the receive buffer contains data. Call this function + * to determine if `uart_read()` will return data immediately. + * + * @return true If there is data available to read. + * @return false If there is no data available to read. + */ +bool uart_available(void); diff --git a/platforms/chibios/drivers/uart_serial.c b/platforms/chibios/drivers/uart_serial.c index e0afb9768a..6aff4eae47 100644 --- a/platforms/chibios/drivers/uart_serial.c +++ b/platforms/chibios/drivers/uart_serial.c @@ -3,89 +3,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" -#include "gpio.h" -#include "chibios_config.h" -#include - -#ifndef UART_DRIVER -# define UART_DRIVER SD1 -#endif - -#ifndef UART_TX_PIN -# define UART_TX_PIN A9 -#endif - -#ifndef UART_TX_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define UART_TX_PAL_MODE 7 -# endif -#endif - -#ifndef UART_RX_PIN -# define UART_RX_PIN A10 -#endif - -#ifndef UART_RX_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_RX_PAL_MODE PAL_MODE_INPUT -# else -# define UART_RX_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CTS_PIN -# define UART_CTS_PIN A11 -#endif - -#ifndef UART_CTS_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_CTS_PAL_MODE PAL_MODE_INPUT -# else -# define UART_CTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_RTS_PIN -# define UART_RTS_PIN A12 -#endif - -#ifndef UART_RTS_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define UART_RTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CR1 -# define UART_CR1 0 -#endif - -#ifndef UART_CR2 -# define UART_CR2 0 -#endif - -#ifndef UART_CR3 -# define UART_CR3 0 -#endif - -#ifndef UART_WRDLEN -# define UART_WRDLEN 3 -#endif - -#ifndef UART_STPBIT -# define UART_STPBIT 0 -#endif - -#ifndef UART_PARITY -# define UART_PARITY 0 -#endif - -#ifndef UART_ATFLCT -# define UART_ATFLCT 0 -#endif #if defined(MCU_KINETIS) static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE}; diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index fc12f0abed..442df1c54d 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -3,73 +3,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" -#include "gpio.h" -#include "chibios_config.h" -#include - -#ifndef UART_DRIVER -# define UART_DRIVER SIOD1 -#endif - -#ifndef UART_TX_PIN -# define UART_TX_PIN A9 -#endif - -#ifndef UART_TX_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define UART_TX_PAL_MODE 7 -# endif -#endif - -#ifndef UART_RX_PIN -# define UART_RX_PIN A10 -#endif - -#ifndef UART_RX_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_RX_PAL_MODE PAL_MODE_INPUT -# else -# define UART_RX_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CTS_PIN -# define UART_CTS_PIN A11 -#endif - -#ifndef UART_CTS_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_CTS_PAL_MODE PAL_MODE_INPUT -# else -# define UART_CTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_RTS_PIN -# define UART_RTS_PIN A12 -#endif - -#ifndef UART_RTS_PAL_MODE -# ifdef USE_GPIOV1 -# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define UART_RTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CR1 -# define UART_CR1 0 -#endif - -#ifndef UART_CR2 -# define UART_CR2 0 -#endif - -#ifndef UART_CR3 -# define UART_CR3 0 -#endif #if defined(MCU_RP) // 38400 baud, 8 data bits, 1 stop bit, no parity, no flow control diff --git a/platforms/chibios/drivers/usbpd_stm32g4.c b/platforms/chibios/drivers/usbpd_stm32g4.c index 7603b5627b..21b8f6db95 100644 --- a/platforms/chibios/drivers/usbpd_stm32g4.c +++ b/platforms/chibios/drivers/usbpd_stm32g4.c @@ -76,4 +76,4 @@ __attribute__((weak)) usbpd_allowance_t usbpd_get_allowance(void) { } return USBPD_500MA; -} +} \ No newline at end of file diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c index 6cf035e1f2..41a5311719 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c @@ -266,36 +266,19 @@ static inline void sync_ws2812_transfer(void) { busy_wait_until(LAST_TRANSFER); } -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds[index]); -#endif -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { sync_ws2812_transfer(); - for (int i = 0; i < WS2812_LED_COUNT; i++) { + for (int i = 0; i < leds; i++) { #if defined(WS2812_RGBW) - WS2812_BUFFER[i] = rgbw8888_to_u32(ws2812_leds[i].r, ws2812_leds[i].g, ws2812_leds[i].b, ws2812_leds[i].w); + WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, ledarray[i].w); #else - WS2812_BUFFER[i] = rgbw8888_to_u32(ws2812_leds[i].r, ws2812_leds[i].g, ws2812_leds[i].b, 0); + WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, 0); #endif } dmaChannelSetSourceX(dma_channel, (uint32_t)WS2812_BUFFER); - dmaChannelSetCounterX(dma_channel, WS2812_LED_COUNT); + dmaChannelSetCounterX(dma_channel, leds); dmaChannelSetModeX(dma_channel, RP_DMA_MODE_WS2812); dmaChannelEnableX(dma_channel); } diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index fec4646a5b..f49c4a45b0 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -4,7 +4,6 @@ #include #include "timer.h" #include "wear_leveling.h" -#include "wear_leveling_efl_config.h" #include "wear_leveling_internal.h" static flash_offset_t base_offset = UINT32_MAX; @@ -34,7 +33,7 @@ static inline uint32_t detect_flash_size(void) { #elif defined(FLASH_SIZE) return FLASH_SIZE; #elif defined(FLASHSIZE_BASE) -# if defined(QMK_MCU_SERIES_STM32F0XX) || defined(QMK_MCU_SERIES_STM32F1XX) || defined(QMK_MCU_SERIES_STM32F3XX) || defined(QMK_MCU_SERIES_STM32F4XX) || defined(QMK_MCU_SERIES_STM32G4XX) || defined(QMK_MCU_SERIES_STM32L0XX) || defined(QMK_MCU_SERIES_STM32L4XX) || defined(QMK_MCU_SERIES_AT32F415) || defined(QMK_MCU_SERIES_GD32VF103) +# if defined(QMK_MCU_SERIES_STM32F0XX) || defined(QMK_MCU_SERIES_STM32F1XX) || defined(QMK_MCU_SERIES_STM32F3XX) || defined(QMK_MCU_SERIES_STM32F4XX) || defined(QMK_MCU_SERIES_STM32G4XX) || defined(QMK_MCU_SERIES_STM32L0XX) || defined(QMK_MCU_SERIES_STM32L4XX) || defined(QMK_MCU_SERIES_GD32VF103) return ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) << 10U; // this register has the flash size in kB, so we convert it to bytes # elif defined(QMK_MCU_SERIES_STM32L1XX) # error This MCU family has an uncommon flash size register definition and has not been implemented. Perhaps try using the true EEPROM on the MCU instead? diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h index f09f824bd8..0f0fa694e9 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h @@ -16,8 +16,6 @@ # define BACKING_STORE_WRITE_SIZE 4 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_WB32) # define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c -# elif defined(QMK_MCU_FAMILY_AT32) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_STM32) # if defined(STM32_FLASH_LINE_SIZE) // from some family's stm32_registry.h file # define BACKING_STORE_WRITE_SIZE (STM32_FLASH_LINE_SIZE) diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c index 3d2af625ca..7c6fd2d808 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c @@ -4,7 +4,6 @@ #include #include "timer.h" #include "wear_leveling.h" -#include "wear_leveling_legacy_config.h" #include "wear_leveling_internal.h" #include "legacy_flash_ops.h" diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c index 2f3c7c58ca..6624c30b5b 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c @@ -6,18 +6,15 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include - #include "pico/bootrom.h" #include "hardware/flash.h" #include "hardware/sync.h" #include "hardware/structs/ssi.h" #include "hardware/structs/ioqspi.h" -#include "compiler_support.h" +#include #include "timer.h" #include "wear_leveling.h" -#include "wear_leveling_rp2040_flash_config.h" #include "wear_leveling_internal.h" #ifndef WEAR_LEVELING_RP2040_FLASH_BULK_COUNT @@ -180,7 +177,7 @@ bool backing_store_erase(void) { #endif // Ensure the backing size can be cleanly subtracted from the flash size without alignment issues. - STATIC_ASSERT((WEAR_LEVELING_BACKING_SIZE) % (FLASH_SECTOR_SIZE) == 0, "Backing size must be a multiple of FLASH_SECTOR_SIZE"); + _Static_assert((WEAR_LEVELING_BACKING_SIZE) % (FLASH_SECTOR_SIZE) == 0, "Backing size must be a multiple of FLASH_SECTOR_SIZE"); interrupts = save_and_disable_interrupts(); flash_range_erase((WEAR_LEVELING_RP2040_FLASH_BASE), (WEAR_LEVELING_BACKING_SIZE)); diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c index a88c5ff619..96378ec0ac 100644 --- a/platforms/chibios/drivers/ws2812_bitbang.c +++ b/platforms/chibios/drivers/ws2812_bitbang.c @@ -11,7 +11,7 @@ /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ #ifndef WS2812_BITBANG_NOP_FUDGE -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx) # define WS2812_BITBANG_NOP_FUDGE 0.4 # else # if defined(RP2040) @@ -76,49 +76,33 @@ void sendByte(uint8_t byte) { } } -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - void ws2812_init(void) { palSetLineMode(WS2812_DI_PIN, WS2812_OUTPUT_MODE); } -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds[index]); -#endif -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { +// Setleds for standard RGB +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { // this code is very time dependent, so we need to disable interrupts chSysLock(); - for (int i = 0; i < WS2812_LED_COUNT; i++) { + for (uint8_t i = 0; i < leds; i++) { // WS2812 protocol dictates grb order #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) - sendByte(ws2812_leds[i].g); - sendByte(ws2812_leds[i].r); - sendByte(ws2812_leds[i].b); + sendByte(ledarray[i].g); + sendByte(ledarray[i].r); + sendByte(ledarray[i].b); #elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) - sendByte(ws2812_leds[i].r); - sendByte(ws2812_leds[i].g); - sendByte(ws2812_leds[i].b); + sendByte(ledarray[i].r); + sendByte(ledarray[i].g); + sendByte(ledarray[i].b); #elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) - sendByte(ws2812_leds[i].b); - sendByte(ws2812_leds[i].g); - sendByte(ws2812_leds[i].r); + sendByte(ledarray[i].b); + sendByte(ledarray[i].g); + sendByte(ledarray[i].r); #endif #ifdef WS2812_RGBW - sendByte(ws2812_leds[i].w); + sendByte(ledarray[i].w); #endif } diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index 50927b849a..1e9d2ebb41 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -40,9 +40,6 @@ #if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_ID) # error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM?_UP" #endif -#if (AT32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_CHANNEL) && !defined(WS2812_PWM_DMAMUX_ID) -# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_CHANNEL 1, #define WS2812_PWM_DMAMUX_ID AT32_DMAMUX_TMR?_OVERFLOW" -#endif /* Summarize https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf to * figure out if we are using a 32bit timer. This is needed to setup the DMA controller correctly. @@ -82,15 +79,15 @@ # endif #endif -// Default is 800000Hz, which has a period of 1.25us -#ifndef WS2812_PWM_FREQUENCY -# define WS2812_PWM_FREQUENCY (1000000000 / WS2812_TIMING) +#ifndef WS2812_PWM_TARGET_PERIOD +//# define WS2812_PWM_TARGET_PERIOD 800000 // Original code is 800k...? +# define WS2812_PWM_TARGET_PERIOD 80000 // TODO: work out why 10x less on f303/f4x1 #endif /* --- PRIVATE CONSTANTS ---------------------------------------------------- */ -#define WS2812_PWM_TICK_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM ticks, must be valid with respect to system clock! */ -#define WS2812_PWM_PERIOD (WS2812_PWM_TICK_FREQUENCY / WS2812_PWM_FREQUENCY) /**< Clock period in PWM ticks. */ +#define WS2812_PWM_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM, must be valid with respect to system clock! */ +#define WS2812_PWM_PERIOD (WS2812_PWM_FREQUENCY / WS2812_PWM_TARGET_PERIOD) /**< Clock period in ticks. 1 / 800kHz = 1.25 uS (as per datasheet) */ /** * @brief Number of bit-periods to hold the data line low at the end of a frame @@ -105,16 +102,37 @@ /** * @brief High period for a zero, in ticks + * + * Per the datasheet: + * WS2812: + * - T0H: 200 nS to 500 nS, inclusive + * - T0L: 650 nS to 950 nS, inclusive + * WS2812B: + * - T0H: 200 nS to 500 nS, inclusive + * - T0L: 750 nS to 1050 nS, inclusive + * + * The duty cycle is calculated for a high period of 350 nS. */ -#define WS2812_DUTYCYCLE_0 (WS2812_PWM_TICK_FREQUENCY / (1000000000 / WS2812_T0H)) +#define WS2812_DUTYCYCLE_0 (WS2812_PWM_FREQUENCY / (1000000000 / 350)) #if (WS2812_DUTYCYCLE_0 > 255) # error WS2812 PWM driver: High period for a 0 is more than a byte #endif /** * @brief High period for a one, in ticks + * + * Per the datasheet: + * WS2812: + * - T1H: 550 nS to 850 nS, inclusive + * - T1L: 450 nS to 750 nS, inclusive + * WS2812B: + * - T1H: 750 nS to 1050 nS, inclusive + * - T1L: 200 nS to 500 nS, inclusive + * + * The duty cycle is calculated for a high period of 800 nS. + * This is in the middle of the specifications of the WS2812 and WS2812B. */ -#define WS2812_DUTYCYCLE_1 (WS2812_PWM_TICK_FREQUENCY / (1000000000 / WS2812_T1H)) +#define WS2812_DUTYCYCLE_1 (WS2812_PWM_FREQUENCY / (1000000000 / 800)) #if (WS2812_DUTYCYCLE_1 > 255) # error WS2812 PWM driver: High period for a 1 is more than a byte #endif @@ -272,14 +290,6 @@ typedef uint32_t ws2812_buffer_t; # define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD typedef uint16_t ws2812_buffer_t; # endif -#elif defined(AT32F415) -# define WS2812_PWM_DMA_MEMORY_WIDTH AT32_DMA_CCTRL_MWIDTH_BYTE -# if defined(WS2812_PWM_TIMER_32BIT) -# define WS2812_PWM_DMA_PERIPHERAL_WIDTH AT32_DMA_CCTRL_PWIDTH_WORD -# else -# define WS2812_PWM_DMA_PERIPHERAL_WIDTH AT32_DMA_CCTRL_PWIDTH_HWORD -# endif -typedef uint8_t ws2812_buffer_t; #else # define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE # if defined(WS2812_PWM_TIMER_32BIT) @@ -312,7 +322,7 @@ void ws2812_init(void) { // PWM Configuration //#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config static const PWMConfig ws2812_pwm_config = { - .frequency = WS2812_PWM_TICK_FREQUENCY, + .frequency = WS2812_PWM_FREQUENCY, .period = WS2812_PWM_PERIOD, // Mit dieser Periode wird UDE-Event erzeugt und ein neuer Wert (Länge WS2812_BIT_N) vom DMA ins CCR geschrieben .callback = NULL, .channels = @@ -320,13 +330,8 @@ void ws2812_init(void) { [0 ... 3] = {.mode = PWM_OUTPUT_DISABLED, .callback = NULL}, // Channels default to disabled [WS2812_PWM_CHANNEL - 1] = {.mode = WS2812_PWM_OUTPUT_MODE, .callback = NULL}, // Turn on the channel we care about }, -#if defined(AT32F415) - .ctrl2 = 0, - .iden = AT32_TMR_IDEN_OVFDEN, // DMA on update event for next period -#else .cr2 = 0, .dier = TIM_DIER_UDE, // DMA on update event for next period -#endif }; //#pragma GCC diagnostic pop // Restore command-line warning options @@ -337,11 +342,6 @@ void ws2812_init(void) { dmaStreamSetSource(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer); dmaStreamSetDestination(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register dmaStreamSetMode(WS2812_PWM_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_PWM_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3)); -#elif defined(AT32F415) - dmaStreamAlloc(WS2812_PWM_DMA_STREAM - AT32_DMA_STREAM(0), 10, NULL, NULL); - dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tmr->CDT[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register - dmaStreamSetMemory0(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer); - dmaStreamSetMode(WS2812_PWM_DMA_STREAM, AT32_DMA_CCTRL_DTD_M2P | WS2812_PWM_DMA_PERIPHERAL_WIDTH | WS2812_PWM_DMA_MEMORY_WIDTH | AT32_DMA_CCTRL_MINCM | AT32_DMA_CCTRL_LM | AT32_DMA_CCTRL_CHPL(3)); #else dmaStreamAlloc(WS2812_PWM_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL); dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register @@ -356,11 +356,6 @@ void ws2812_init(void) { dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_ID); #endif -#if (AT32_DMA_SUPPORTS_DMAMUX == TRUE) - // If the MCU has a DMAMUX we need to assign the correct resource - dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_CHANNEL, WS2812_PWM_DMAMUX_ID); -#endif - // Start DMA dmaStreamEnable(WS2812_PWM_DMA_STREAM); @@ -392,29 +387,13 @@ void ws2812_write_led_rgbw(uint16_t led_number, uint8_t r, uint8_t g, uint8_t b, } } -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds[index]); -#endif -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { -#if defined(WS2812_RGBW) - ws2812_write_led_rgbw(i, ws2812_leds[i].r, ws2812_leds[i].g, ws2812_leds[i].b, ws2812_leds[i].w); +// Setleds for standard RGB +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { + for (uint16_t i = 0; i < leds; i++) { +#ifdef WS2812_RGBW + ws2812_write_led_rgbw(i, ledarray[i].r, ledarray[i].g, ledarray[i].b, ledarray[i].w); #else - ws2812_write_led(i, ws2812_leds[i].r, ws2812_leds[i].g, ws2812_leds[i].b); + ws2812_write_led(i, ledarray[i].r, ledarray[i].g, ledarray[i].b); #endif } } diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index d1792b871b..ad2e87781c 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -40,53 +40,26 @@ // Define SPI config speed // baudrate should target 3.2MHz -#if defined(AT32F415) -# if WS2812_SPI_DIVISOR == 2 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (0) -# elif WS2812_SPI_DIVISOR == 4 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0) -# elif WS2812_SPI_DIVISOR == 8 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1) -# elif WS2812_SPI_DIVISOR == 16 // default -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0) -# elif WS2812_SPI_DIVISOR == 32 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2) -# elif WS2812_SPI_DIVISOR == 64 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_0) -# elif WS2812_SPI_DIVISOR == 128 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1) -# elif WS2812_SPI_DIVISOR == 256 -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0) -# elif WS2812_SPI_DIVISOR == 512 -# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3) -# elif WS2812_SPI_DIVISOR == 1024 -# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3) -# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0) -# else -# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." -# endif -#else // F072 fpclk = 48MHz // 48/16 = 3Mhz -# if WS2812_SPI_DIVISOR == 2 -# define WS2812_SPI_DIVISOR_CR1_BR_X (0) -# elif WS2812_SPI_DIVISOR == 4 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0) -# elif WS2812_SPI_DIVISOR == 8 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1) -# elif WS2812_SPI_DIVISOR == 16 // default -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0) -# elif WS2812_SPI_DIVISOR == 32 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2) -# elif WS2812_SPI_DIVISOR == 64 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0) -# elif WS2812_SPI_DIVISOR == 128 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1) -# elif WS2812_SPI_DIVISOR == 256 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) -# else -# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." -# endif +#if WS2812_SPI_DIVISOR == 2 +# define WS2812_SPI_DIVISOR_CR1_BR_X (0) +#elif WS2812_SPI_DIVISOR == 4 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 8 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1) +#elif WS2812_SPI_DIVISOR == 16 // default +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 32 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2) +#elif WS2812_SPI_DIVISOR == 64 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 128 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1) +#elif WS2812_SPI_DIVISOR == 256 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) +#else +# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." #endif // Use SPI circular buffer @@ -133,7 +106,7 @@ static uint8_t get_protocol_eq(uint8_t data, int pos) { return eq; } -static void set_led_color_rgb(ws2812_led_t color, int pos) { +static void set_led_color_rgb(rgb_led_t color, int pos) { uint8_t* tx_start = &txbuf[PREAMBLE_SIZE]; #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) @@ -160,12 +133,10 @@ static void set_led_color_rgb(ws2812_led_t color, int pos) { #endif #ifdef WS2812_RGBW for (int j = 0; j < 4; j++) - tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 3 + j] = get_protocol_eq(color.w, j); + tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 4 + j] = get_protocol_eq(color.w, j); #endif } -ws2812_led_t ws2812_leds[WS2812_LED_COUNT]; - void ws2812_init(void) { palSetLineMode(WS2812_DI_PIN, WS2812_MOSI_OUTPUT_MODE); @@ -203,16 +174,8 @@ void ws2812_init(void) { NULL, // error_cb PAL_PORT(WS2812_DI_PIN), PAL_PAD(WS2812_DI_PIN), -# if defined(AT32F415) - WS2812_SPI_DIVISOR_CTRL1_MDIV_X, -# if (WS2812_SPI_DIVISOR == 512 || WS2812_SPI_DIVISOR == 1024) - WS2812_SPI_DIVISOR_CTRL2_MDIV_X, -# endif - 0 -# else WS2812_SPI_DIVISOR_CR1_BR_X, 0 -# endif #endif }; @@ -224,24 +187,9 @@ void ws2812_init(void) { #endif } -void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ws2812_leds[index].r = red; - ws2812_leds[index].g = green; - ws2812_leds[index].b = blue; -#if defined(WS2812_RGBW) - ws2812_rgb_to_rgbw(&ws2812_leds[index]); -#endif -} - -void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - ws2812_set_color(i, red, green, blue); - } -} - -void ws2812_flush(void) { - for (int i = 0; i < WS2812_LED_COUNT; i++) { - set_led_color_rgb(ws2812_leds[i], i); +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { + for (uint8_t i = 0; i < leds; i++) { + set_led_color_rgb(ledarray[i], i); } // Send async - each led takes ~0.03ms, 50 leds ~1.5ms, animations flushing faster than send will cause issues. diff --git a/platforms/chibios/errno.h b/platforms/chibios/errno.h deleted file mode 100644 index a411ed9821..0000000000 --- a/platforms/chibios/errno.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include_next - -// Newer versions of picolibc don't seem to provide `__errno_r(r)` in the header file, but is used by ChibiOS. -#ifndef __errno_r -# ifdef __REENT_ERRNO -# define __errno_r(r) _REENT_ERRNO(r) -# else -# define __errno_r(r) (errno) -# endif -#endif diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index f4db17a58b..525f177f9e 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -113,8 +113,6 @@ else ifeq ($(strip $(MCU_FAMILY)),STM32) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else ifeq ($(strip $(MCU_FAMILY)),WB32) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_WB32_DFU_UPDATER) -else ifeq ($(strip $(MCU_FAMILY)),AT32) - $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else ifeq ($(strip $(MCU_FAMILY)),GD32V) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else diff --git a/platforms/chibios/mcu_selection.mk b/platforms/chibios/mcu_selection.mk index 199bdb2321..a1597fa1e9 100644 --- a/platforms/chibios/mcu_selection.mk +++ b/platforms/chibios/mcu_selection.mk @@ -511,41 +511,6 @@ ifneq ($(findstring STM32F446, $(MCU)),) EEPROM_DRIVER ?= transient endif -ifneq ($(findstring STM32G0B1, $(MCU)),) - # Cortex version - MCU = cortex-m0plus - - # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 - ARMV = 6 - - ## chip/board settings - # - the next two should match the directories in - # /os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES) - # OR - # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) - MCU_FAMILY = STM32 - MCU_SERIES = STM32G0xx - - # Linker script to use - # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ - # or /ld/ - MCU_LDSCRIPT ?= STM32G0B1xB - - # Startup code to use - # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ - MCU_STARTUP ?= stm32g0xx - - # Board: it should exist either in /os/hal/boards/, - # /boards/, or drivers/boards/ - BOARD ?= GENERIC_STM32_G0B1XB - - # UF2 settings - UF2_FAMILY ?= STM32G0 - - # Bootloader address for STM32 DFU - STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000 -endif - ifneq ($(findstring STM32G431, $(MCU)),) # Cortex version MCU = cortex-m4 @@ -844,40 +809,6 @@ ifneq ($(findstring WB32FQ95, $(MCU)),) WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000 endif -ifneq ($(findstring AT32F415, $(MCU)),) - # Cortex version - MCU = cortex-m4 - - # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 - ARMV = 7 - - ## chip/board settings - # - the next two should match the directories in - # /os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES) - # OR - # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) - MCU_FAMILY = AT32 - MCU_SERIES = AT32F415 - - # Linker script to use - # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ - # or /ld/ - MCU_LDSCRIPT ?= AT32F415xB - - # Startup code to use - # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ - MCU_STARTUP ?= at32f415 - - # Board: it should exist either in /os/hal/boards/, - # /boards/, or drivers/boards/ - BOARD ?= GENERIC_AT32_F415XX - - USE_FPU ?= no - - # Bootloader address for AT32 DFU - AT32_BOOTLOADER_ADDRESS ?= 0x1FFFAC00 -endif - ifneq ($(findstring GD32VF103, $(MCU)),) # RISC-V MCU = risc-v diff --git a/platforms/chibios/platform.c b/platforms/chibios/platform.c index e559f178cd..d4a229f278 100644 --- a/platforms/chibios/platform.c +++ b/platforms/chibios/platform.c @@ -19,4 +19,4 @@ void platform_setup(void) { halInit(); chSysInit(); -} +} \ No newline at end of file diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index cf9fac251e..169707966f 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -155,10 +155,6 @@ ifdef WB32_BOOTLOADER_ADDRESS OPT_DEFS += -DWB32_BOOTLOADER_ADDRESS=$(WB32_BOOTLOADER_ADDRESS) endif -ifdef AT32_BOOTLOADER_ADDRESS - OPT_DEFS += -DAT32_BOOTLOADER_ADDRESS=$(AT32_BOOTLOADER_ADDRESS) -endif - # Work out if we need to set up the include for the bootloader definitions ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","") OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c index 9f7eade83f..5e01ea6372 100644 --- a/platforms/chibios/timer.c +++ b/platforms/chibios/timer.c @@ -5,7 +5,6 @@ static uint32_t ticks_offset = 0; static uint32_t last_ticks = 0; static uint32_t ms_offset = 0; -static uint32_t saved_ms = 0; #if CH_CFG_ST_RESOLUTION < 32 static uint32_t last_systime = 0; static uint32_t overflow = 0; @@ -74,32 +73,12 @@ void timer_clear(void) { chSysUnlock(); } -__attribute__((weak)) void platform_timer_save_value(uint32_t value) { - saved_ms = value; -} - -__attribute__((weak)) uint32_t platform_timer_restore_value(void) { - return saved_ms; -} - -void timer_restore(void) { - chSysLock(); - ticks_offset = get_system_time_ticks(); - last_ticks = 0; - ms_offset = platform_timer_restore_value(); - chSysUnlock(); -} - -void timer_save(void) { - platform_timer_save_value(timer_read32()); -} - uint16_t timer_read(void) { return (uint16_t)timer_read32(); } uint32_t timer_read32(void) { - syssts_t sts = chSysGetStatusAndLockX(); + chSysLock(); uint32_t ticks = get_system_time_ticks() - ticks_offset; if (ticks < last_ticks) { // The 32-bit tick counter overflowed and wrapped around. We cannot just extend the counter to 64 bits here, @@ -114,7 +93,15 @@ uint32_t timer_read32(void) { } last_ticks = ticks; uint32_t ms_offset_copy = ms_offset; // read while still holding the lock to ensure a consistent value - chSysRestoreStatusX(sts); + chSysUnlock(); return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy; } + +uint16_t timer_elapsed(uint16_t last) { + return TIMER_DIFF_16(timer_read(), last); +} + +uint32_t timer_elapsed32(uint32_t last) { + return TIMER_DIFF_32(timer_read32(), last); +} diff --git a/platforms/chibios/vendors/RP/RP2040.mk b/platforms/chibios/vendors/RP/RP2040.mk index 27d1fa4472..94f023d72b 100644 --- a/platforms/chibios/vendors/RP/RP2040.mk +++ b/platforms/chibios/vendors/RP/RP2040.mk @@ -78,7 +78,7 @@ PICOSDKINTRINSICSSRC = $(PICOSDKROOT)/src/rp2_common/pico_divider/divider.S \ $(PICOSDKROOT)/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S PICOSDKINTRINSICSINC = $(PICOSDKROOT)/src/common/pico_base/include \ - $(PICOSDKROOT)/src/rp2_common/pico_platform/include \ + $(PICOSDKROOT)/src/rp2_common/pico_platfrom/include \ $(PICOSDKROOT)/src/rp2_common/hardware_divider/include # integer division intrinsics utilizing the RP2040 hardware divider diff --git a/platforms/eeprom.h b/platforms/eeprom.h index 557bfb030c..067fa01616 100644 --- a/platforms/eeprom.h +++ b/platforms/eeprom.h @@ -37,7 +37,6 @@ void eeprom_update_block(const void *__src, void *__dst, size_t __n); # endif # define TOTAL_EEPROM_BYTE_COUNT (EEPROM_SIZE) #elif defined(EEPROM_WEAR_LEVELING) -# include "wear_leveling_drivers.h" # define TOTAL_EEPROM_BYTE_COUNT (WEAR_LEVELING_LOGICAL_SIZE) #elif defined(EEPROM_TRANSIENT) # include "eeprom_transient.h" diff --git a/platforms/progmem.h b/platforms/progmem.h index 6c4ebcaa01..3a7a169682 100644 --- a/platforms/progmem.h +++ b/platforms/progmem.h @@ -7,7 +7,6 @@ # define PROGMEM # define PSTR(x) x # define PGM_P const char* -# define memcmp_P(s1, s2, n) memcmp(s1, s2, n) # define memcpy_P(dest, src, n) memcpy(dest, src, n) # define pgm_read_byte(address_short) *((uint8_t*)(address_short)) # define pgm_read_word(address_short) *((uint16_t*)(address_short)) diff --git a/platforms/test/platform.c b/platforms/test/platform.c index 3e35b4fe4c..8ddceeda8f 100644 --- a/platforms/test/platform.c +++ b/platforms/test/platform.c @@ -18,4 +18,4 @@ void platform_setup(void) { // do nothing -} +} \ No newline at end of file diff --git a/platforms/test/timer.c b/platforms/test/timer.c index f5ee07fd57..eb929d7dac 100644 --- a/platforms/test/timer.c +++ b/platforms/test/timer.c @@ -60,6 +60,14 @@ uint32_t timer_read32(void) { return current_time; } +uint16_t timer_elapsed(uint16_t last) { + return TIMER_DIFF_16(timer_read(), last); +} + +uint32_t timer_elapsed32(uint32_t last) { + return TIMER_DIFF_32(timer_read32(), last); +} + void set_time(uint32_t t) { current_time = t; access_counter = 0; diff --git a/platforms/timer.c b/platforms/timer.c index ba2cf94d2b..26038dcda3 100644 --- a/platforms/timer.c +++ b/platforms/timer.c @@ -6,11 +6,3 @@ // Generate out-of-line copies for inline functions defined in timer.h. extern inline fast_timer_t timer_read_fast(void); extern inline fast_timer_t timer_elapsed_fast(fast_timer_t last); - -uint16_t timer_elapsed(uint16_t last) { - return TIMER_DIFF_16(timer_read(), last); -} - -uint32_t timer_elapsed32(uint32_t last) { - return TIMER_DIFF_32(timer_read32(), last); -} diff --git a/platforms/timer.h b/platforms/timer.h index 8a2ffd476b..d55f40f0b0 100644 --- a/platforms/timer.h +++ b/platforms/timer.h @@ -24,9 +24,10 @@ along with this program. If not, see . #include -#define TIMER_DIFF_8(a, b) (uint8_t)((a) - (b)) -#define TIMER_DIFF_16(a, b) (uint16_t)((a) - (b)) -#define TIMER_DIFF_32(a, b) (uint32_t)((a) - (b)) +#define TIMER_DIFF(a, b, max) ((max == UINT8_MAX) ? ((uint8_t)((a) - (b))) : ((max == UINT16_MAX) ? ((uint16_t)((a) - (b))) : ((max == UINT32_MAX) ? ((uint32_t)((a) - (b))) : ((a) >= (b) ? (a) - (b) : (max) + 1 - (b) + (a))))) +#define TIMER_DIFF_8(a, b) TIMER_DIFF(a, b, UINT8_MAX) +#define TIMER_DIFF_16(a, b) TIMER_DIFF(a, b, UINT16_MAX) +#define TIMER_DIFF_32(a, b) TIMER_DIFF(a, b, UINT32_MAX) #define TIMER_DIFF_RAW(a, b) TIMER_DIFF_8(a, b) #ifdef __cplusplus @@ -37,8 +38,6 @@ extern volatile uint32_t timer_count; void timer_init(void); void timer_clear(void); -void timer_save(void); -void timer_restore(void); uint16_t timer_read(void); uint32_t timer_read32(void); uint16_t timer_elapsed(uint16_t last); diff --git a/quantum/action.c b/quantum/action.c index dd82c9ec99..a39631ba3e 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -47,12 +47,7 @@ along with this program. If not, see . int tp_buttons; #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) -bool retro_tap_primed = false; -uint16_t retro_tap_curr_key = 0; -# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) -uint8_t retro_tap_curr_mods = 0; -uint8_t retro_tap_next_mods = 0; -# endif +int retro_tapping_counter = 0; #endif #if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) @@ -82,13 +77,7 @@ void action_exec(keyevent_t event) { debug_event(event); ac_dprintf("\n"); #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - uint16_t event_keycode = get_event_keycode(event, false); - if (event.pressed) { - retro_tap_primed = false; - retro_tap_curr_key = event_keycode; - } else if (retro_tap_curr_key == event_keycode) { - retro_tap_primed = true; - } + retro_tapping_counter++; #endif } @@ -281,9 +270,6 @@ void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } -#ifdef FLOW_TAP_TERM - flow_tap_update_last_event(record); -#endif // FLOW_TAP_TERM if (!process_record_quantum(record)) { #ifndef NO_ACTION_ONESHOT @@ -545,8 +531,7 @@ void process_action(keyrecord_t *record, action_t action) { # if defined(RETRO_TAPPING) && defined(DUMMY_MOD_NEUTRALIZER_KEYCODE) // Send a dummy keycode to neutralize flashing modifiers // if the key was held and then released with no interruptions. - uint16_t ev_kc = get_event_keycode(event, false); - if (retro_tap_primed && retro_tap_curr_key == ev_kc) { + if (retro_tapping_counter == 2) { neutralize_flashing_modifiers(get_mods()); } # endif @@ -832,10 +817,6 @@ void process_action(keyrecord_t *record, action_t action) { case ACT_LAYER_TAP_EXT: # endif led_set(host_keyboard_leds()); -# ifndef NO_ACTION_ONESHOT - // don't release the key - do_release_oneshot = false; -# endif break; default: break; @@ -844,44 +825,30 @@ void process_action(keyrecord_t *record, action_t action) { #ifndef NO_ACTION_TAPPING # if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - if (is_tap_action(action)) { + if (!is_tap_action(action)) { + retro_tapping_counter = 0; + } else { if (event.pressed) { if (tap_count > 0) { - retro_tap_primed = false; - } else { -# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - retro_tap_curr_mods = retro_tap_next_mods; - retro_tap_next_mods = get_mods(); -# endif + retro_tapping_counter = 0; } } else { - uint16_t event_keycode = get_event_keycode(event, false); -# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - uint8_t curr_mods = get_mods(); -# endif if (tap_count > 0) { - retro_tap_primed = false; - } else if (retro_tap_curr_key == event_keycode) { + retro_tapping_counter = 0; + } else { if ( # ifdef RETRO_TAPPING_PER_KEY - get_retro_tapping(event_keycode, record) && + get_retro_tapping(get_event_keycode(record->event, false), record) && # endif - retro_tap_primed) { + retro_tapping_counter == 2) { # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) process_auto_shift(action.layer_tap.code, record); # else - register_mods(retro_tap_curr_mods); - wait_ms(TAP_CODE_DELAY); tap_code(action.layer_tap.code); - wait_ms(TAP_CODE_DELAY); - unregister_mods(retro_tap_curr_mods); # endif } - retro_tap_primed = false; + retro_tapping_counter = 0; } -# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - retro_tap_next_mods = curr_mods; -# endif } } # endif @@ -1186,23 +1153,6 @@ bool is_tap_action(action_t action) { return false; } -uint16_t get_tap_keycode(uint16_t keycode) { - switch (keycode) { - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - return QK_MOD_TAP_GET_TAP_KEYCODE(keycode); - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - return QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); - case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: - // IS_SWAP_HANDS_KEYCODE() tests for the special action keycodes - // like SH_TOGG, SH_TT, ..., which overlap the SH_T(kc) range. - if (!IS_SWAP_HANDS_KEYCODE(keycode)) { - return QK_SWAP_HANDS_GET_TAP_KEYCODE(keycode); - } - break; - } - return keycode; -} - /** \brief Debug print (FIXME: Needs better description) * * FIXME: Needs documentation. diff --git a/quantum/action.h b/quantum/action.h index 7616486c6d..d5b15c6f17 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -45,7 +45,7 @@ typedef struct { } tap_t; /* Key event container for recording */ -typedef struct keyrecord_t { +typedef struct { keyevent_t event; #ifndef NO_ACTION_TAPPING tap_t tap; @@ -128,12 +128,6 @@ void layer_switch(uint8_t new_layer); bool is_tap_record(keyrecord_t *record); bool is_tap_action(action_t action); -/** - * Given an MT or LT keycode, returns the tap keycode. Otherwise returns the - * original keycode unchanged. - */ -uint16_t get_tap_keycode(uint16_t keycode); - #ifndef NO_ACTION_TAPPING void process_record_tap_hint(keyrecord_t *record); #endif diff --git a/quantum/action_layer.c b/quantum/action_layer.c index 5828dcb824..7c09a5bd1e 100644 --- a/quantum/action_layer.c +++ b/quantum/action_layer.c @@ -27,20 +27,11 @@ __attribute__((weak)) layer_state_t default_layer_state_set_kb(layer_state_t sta return default_layer_state_set_user(state); } -/** \brief Default Layer State Set At Module Level - * - * Run module code on default layer state change - */ -__attribute__((weak)) layer_state_t default_layer_state_set_modules(layer_state_t state) { - return state; -} - /** \brief Default Layer State Set * * Static function to set the default layer state, prints debug info and clears keys */ static void default_layer_state_set(layer_state_t state) { - state = default_layer_state_set_modules(state); state = default_layer_state_set_kb(state); ac_dprintf("default_layer_state: "); default_layer_debug(); @@ -116,21 +107,11 @@ __attribute__((weak)) layer_state_t layer_state_set_kb(layer_state_t state) { return layer_state_set_user(state); } -/** \brief Layer state set modules - * - * Runs module code on layer state change - */ - -__attribute__((weak)) layer_state_t layer_state_set_modules(layer_state_t state) { - return state; -} - /** \brief Layer state set * * Sets the layer to match the specified state (a bitmask) */ void layer_state_set(layer_state_t state) { - state = layer_state_set_modules(state); state = layer_state_set_kb(state); ac_dprintf("layer_state: "); layer_debug(); diff --git a/quantum/action_layer.h b/quantum/action_layer.h index 067e33cdb5..a2410d49a5 100644 --- a/quantum/action_layer.h +++ b/quantum/action_layer.h @@ -78,7 +78,6 @@ extern layer_state_t default_layer_state; void default_layer_debug(void); void default_layer_set(layer_state_t state); -__attribute__((weak)) layer_state_t default_layer_state_set_modules(layer_state_t state); __attribute__((weak)) layer_state_t default_layer_state_set_kb(layer_state_t state); __attribute__((weak)) layer_state_t default_layer_state_set_user(layer_state_t state); @@ -115,7 +114,6 @@ void layer_and(layer_state_t state); void layer_xor(layer_state_t state); layer_state_t layer_state_set_user(layer_state_t state); layer_state_t layer_state_set_kb(layer_state_t state); -layer_state_t layer_state_set_modules(layer_state_t state); /** * @brief Applies the tri layer to global layer state. Not be used in layer_state_set_(kb|user) functions. @@ -151,7 +149,6 @@ layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_ # define layer_or(state) (void)state # define layer_and(state) (void)state # define layer_xor(state) (void)state -# define layer_state_set_modules(state) (void)state # define layer_state_set_kb(state) (void)state # define layer_state_set_user(state) (void)state # define update_tri_layer(layer1, layer2, layer3) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index b105cd60a9..8f238490f2 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -4,9 +4,7 @@ #include "action.h" #include "action_layer.h" #include "action_tapping.h" -#include "action_util.h" #include "keycode.h" -#include "quantum_keycodes.h" #include "timer.h" #ifndef NO_ACTION_TAPPING @@ -51,47 +49,6 @@ __attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *re } # endif -# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) -# define REGISTERED_TAPS_SIZE 8 -// Array of tap-hold keys that have been settled as tapped but not yet released. -static keypos_t registered_taps[REGISTERED_TAPS_SIZE] = {}; -static uint8_t num_registered_taps = 0; - -/** Adds `key` to the registered_taps array. */ -static void registered_taps_add(keypos_t key); -/** Returns the index of `key` in registered_taps, or -1 if not found. */ -static int8_t registered_tap_find(keypos_t key); -/** Removes index `i` from the registered_taps array. */ -static void registered_taps_del_index(uint8_t i); -/** Logs the registered_taps array for debugging. */ -static void debug_registered_taps(void); - -static bool is_mt_or_lt(uint16_t keycode) { - return IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode); -} -# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) - -# if defined(CHORDAL_HOLD) -extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; - -/** \brief Finds which queued events should be held according to Chordal Hold. - * - * In a situation with multiple unsettled tap-hold key presses, scan the queue - * up until the first release, non-tap-hold, or one-shot event and find the - * latest event in the queue that settles as held according to - * get_chordal_hold(). - * - * \return Index of the first tap, or equivalently, one past the latest hold. - */ -static uint8_t waiting_buffer_find_chordal_hold_tap(void); - -/** Processes queued events up to and including `key` as tapped. */ -static void waiting_buffer_chordal_hold_taps_until(keypos_t key); - -/** \brief Processes and pops buffered events until the first tap-hold event. */ -static void waiting_buffer_process_regular(void); -# endif // CHORDAL_HOLD - # ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { return false; @@ -102,14 +59,6 @@ __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyreco # include "process_auto_shift.h" # endif -# if defined(FLOW_TAP_TERM) -static uint16_t flow_tap_prev_keycode = KC_NO; -static uint16_t flow_tap_prev_time = 0; -static bool flow_tap_expired = true; - -static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time); -# endif // defined(FLOW_TAP_TERM) - static keyrecord_t tapping_key = {}; static keyrecord_t waiting_buffer[WAITING_BUFFER_SIZE] = {}; static uint8_t waiting_buffer_head = 0; @@ -160,12 +109,6 @@ void action_tapping_process(keyrecord_t record) { } if (IS_EVENT(record.event)) { ac_dprintf("\n"); - } else { -# ifdef FLOW_TAP_TERM - if (!flow_tap_expired && TIMER_DIFF_16(record.event.time, flow_tap_prev_time) >= INT16_MAX / 2) { - flow_tap_expired = true; - } -# endif // FLOW_TAP_TERM } } @@ -223,20 +166,6 @@ void action_tapping_process(keyrecord_t record) { bool process_tapping(keyrecord_t *keyp) { const keyevent_t event = keyp->event; -# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) - if (!event.pressed) { - const int8_t i = registered_tap_find(event.key); - if (i != -1) { - // If a tap-hold key was previously settled as tapped, set its - // tap.count correspondingly on release. - keyp->tap.count = 1; - registered_taps_del_index(i); - ac_dprintf("Found tap release for [%d]\n", i); - debug_registered_taps(); - } - } -# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) - // state machine is in the "reset" state, no tapping key is to be // processed if (IS_NOEVENT(tapping_key.event)) { @@ -245,13 +174,6 @@ bool process_tapping(keyrecord_t *keyp) { } else if (event.pressed && is_tap_record(keyp)) { // the currently pressed key is a tapping key, therefore transition // into the "pressed" tapping key state - -# if defined(FLOW_TAP_TERM) - if (flow_tap_key_if_within_term(keyp, flow_tap_prev_time)) { - return true; - } -# endif // defined(FLOW_TAP_TERM) - ac_dprintf("Tapping: Start(Press tap key).\n"); tapping_key = *keyp; process_record_tap_hint(&tapping_key); @@ -266,7 +188,7 @@ bool process_tapping(keyrecord_t *keyp) { return true; } -# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(CHORDAL_HOLD) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) +# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) TAP_DEFINE_KEYCODE; # endif @@ -277,7 +199,6 @@ bool process_tapping(keyrecord_t *keyp) { // early return for tick events return true; } - if (tapping_key.tap.count == 0) { if (IS_TAPPING_RECORD(keyp) && !event.pressed) { // first tap! @@ -288,49 +209,9 @@ bool process_tapping(keyrecord_t *keyp) { // copy tapping state keyp->tap = tapping_key.tap; - -# if defined(FLOW_TAP_TERM) - // Now that tapping_key has settled as tapped, check whether - // Flow Tap applies to following yet-unsettled keys. - uint16_t prev_time = tapping_key.event.time; - for (; waiting_buffer_tail != waiting_buffer_head; waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE) { - keyrecord_t *record = &waiting_buffer[waiting_buffer_tail]; - if (!record->event.pressed) { - break; - } - const int16_t next_time = record->event.time; - if (!is_tap_record(record)) { - process_record(record); - } else if (!flow_tap_key_if_within_term(record, prev_time)) { - break; - } - prev_time = next_time; - } - debug_waiting_buffer(); -# endif // defined(FLOW_TAP_TERM) - // enqueue return false; } -# if defined(CHORDAL_HOLD) - else if (is_mt_or_lt(tapping_keycode) && !event.pressed && waiting_buffer_typed(event) && !get_chordal_hold(tapping_keycode, &tapping_key, get_record_keycode(keyp, false), keyp)) { - // Key release that is not a chord with the tapping key. - // Settle the tapping key and any other pending tap-hold - // keys preceding the press of this key as tapped. - - ac_dprintf("Tapping: End. Chord considered a tap\n"); - tapping_key.tap.count = 1; - registered_taps_add(tapping_key.event.key); - process_record(&tapping_key); - tapping_key = (keyrecord_t){0}; - - waiting_buffer_chordal_hold_taps_until(event.key); - debug_registered_taps(); - debug_waiting_buffer(); - // enqueue - return false; - } -# endif // CHORDAL_HOLD /* Process a key typed within TAPPING_TERM * This can register the key before settlement of tapping, * useful for long TAPPING_TERM but may prevent fast typing. @@ -348,22 +229,6 @@ bool process_tapping(keyrecord_t *keyp) { // clang-format on ac_dprintf("Tapping: End. No tap. Interfered by typing key\n"); process_record(&tapping_key); - -# if defined(CHORDAL_HOLD) - uint8_t first_tap = waiting_buffer_find_chordal_hold_tap(); - ac_dprintf("first_tap = %u\n", first_tap); - if (first_tap < WAITING_BUFFER_SIZE) { - for (; waiting_buffer_tail != first_tap; waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE) { - ac_dprintf("Processing [%u]\n", waiting_buffer_tail); - process_record(&waiting_buffer[waiting_buffer_tail]); - } - } - - waiting_buffer_chordal_hold_taps_until(event.key); - debug_registered_taps(); - debug_waiting_buffer(); -# endif // CHORDAL_HOLD - tapping_key = (keyrecord_t){0}; debug_tapping_key(); // enqueue @@ -372,19 +237,6 @@ bool process_tapping(keyrecord_t *keyp) { /* Process release event of a key pressed before tapping starts * Without this unexpected repeating will occur with having fast repeating setting * https://github.com/tmk/tmk_keyboard/issues/60 - * - * NOTE: This workaround causes events to process out of order, - * e.g. in a rolled press of three tap-hold keys like - * - * "A down, B down, C down, A up, B up, C up" - * - * events are processed as - * - * "A down, B down, A up, B up, C down, C up" - * - * It seems incorrect to process keyp before the tapping key. - * This workaround is old, from 2013. This might no longer - * be needed for the original problem it was meant to address. */ else if (!event.pressed && !waiting_buffer_typed(event)) { // Modifier/Layer should be retained till end of this tapping. @@ -419,52 +271,19 @@ bool process_tapping(keyrecord_t *keyp) { // set interrupted flag when other key pressed during tapping if (event.pressed) { tapping_key.tap.interrupted = true; - -# if defined(CHORDAL_HOLD) - if (is_mt_or_lt(tapping_keycode) && !get_chordal_hold(tapping_keycode, &tapping_key, get_record_keycode(keyp, false), keyp)) { - // In process_action(), HOLD_ON_OTHER_KEY_PRESS - // will revert interrupted events to holds, so - // this needs to be set false. - tapping_key.tap.interrupted = false; - - if (!is_tap_record(keyp)) { - ac_dprintf("Tapping: End. Chord considered a tap\n"); - tapping_key.tap.count = 1; - registered_taps_add(tapping_key.event.key); - debug_registered_taps(); - process_record(&tapping_key); - tapping_key = (keyrecord_t){0}; - } - } else -# endif // CHORDAL_HOLD - if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS + if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) - // Auto Shift cannot evaluate this early - // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip - && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) + // Auto Shift cannot evaluate this early + // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip + && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) # endif - ) { - // Settle the tapping key as *held*, since - // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. + ) { ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); process_record(&tapping_key); - -# if defined(CHORDAL_HOLD) - if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { - tapping_key = waiting_buffer[waiting_buffer_tail]; - // Pop tail from the queue. - waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; - debug_waiting_buffer(); - } else -# endif // CHORDAL_HOLD - { - tapping_key = (keyrecord_t){0}; - } + tapping_key = (keyrecord_t){0}; debug_tapping_key(); - -# if defined(CHORDAL_HOLD) - waiting_buffer_process_regular(); -# endif // CHORDAL_HOLD + // enqueue + return false; } } // enqueue @@ -584,13 +403,6 @@ bool process_tapping(keyrecord_t *keyp) { return true; } else if (is_tap_record(keyp)) { // Sequential tap can be interfered with other tap key. -# if defined(FLOW_TAP_TERM) - if (flow_tap_key_if_within_term(keyp, flow_tap_prev_time)) { - tapping_key = (keyrecord_t){0}; - debug_tapping_key(); - return true; - } -# endif // defined(FLOW_TAP_TERM) ac_dprintf("Tapping: Start with interfering other tap.\n"); tapping_key = *keyp; waiting_buffer_scan_tap(); @@ -708,222 +520,26 @@ void waiting_buffer_scan_tap(void) { } } -# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) -static void registered_taps_add(keypos_t key) { - if (num_registered_taps >= REGISTERED_TAPS_SIZE) { - ac_dprintf("TAPS OVERFLOW: CLEAR ALL STATES\n"); - clear_keyboard(); - num_registered_taps = 0; - } - - registered_taps[num_registered_taps] = key; - ++num_registered_taps; -} - -static int8_t registered_tap_find(keypos_t key) { - for (int8_t i = 0; i < num_registered_taps; ++i) { - if (KEYEQ(registered_taps[i], key)) { - return i; - } - } - return -1; -} - -static void registered_taps_del_index(uint8_t i) { - if (i < num_registered_taps) { - --num_registered_taps; - if (i < num_registered_taps) { - registered_taps[i] = registered_taps[num_registered_taps]; - } - } -} - -static void debug_registered_taps(void) { - ac_dprintf("registered_taps = { "); - for (int8_t i = 0; i < num_registered_taps; ++i) { - ac_dprintf("%02X%02X ", registered_taps[i].row, registered_taps[i].col); - } - ac_dprintf("}\n"); -} - -# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) - -# ifdef CHORDAL_HOLD -__attribute__((weak)) bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record) { - return get_chordal_hold_default(tap_hold_record, other_record); -} - -bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record) { - if (tap_hold_record->event.type != KEY_EVENT || other_record->event.type != KEY_EVENT) { - return true; // Return true on combos or other non-key events. - } - - char tap_hold_hand = chordal_hold_handedness(tap_hold_record->event.key); - if (tap_hold_hand == '*') { - return true; - } - char other_hand = chordal_hold_handedness(other_record->event.key); - return other_hand == '*' || tap_hold_hand != other_hand; -} - -__attribute__((weak)) char chordal_hold_handedness(keypos_t key) { - return (char)pgm_read_byte(&chordal_hold_layout[key.row][key.col]); -} - -static uint8_t waiting_buffer_find_chordal_hold_tap(void) { - keyrecord_t *prev = &tapping_key; - uint16_t prev_keycode = get_record_keycode(&tapping_key, false); - uint8_t first_tap = WAITING_BUFFER_SIZE; - for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { - keyrecord_t * cur = &waiting_buffer[i]; - const uint16_t cur_keycode = get_record_keycode(cur, false); - if (!cur->event.pressed || !is_mt_or_lt(prev_keycode)) { - break; - } else if (get_chordal_hold(prev_keycode, prev, cur_keycode, cur)) { - first_tap = i; // Track one index past the latest hold. - } - prev = cur; - prev_keycode = cur_keycode; - } - return first_tap; -} - -static void waiting_buffer_chordal_hold_taps_until(keypos_t key) { - while (waiting_buffer_tail != waiting_buffer_head) { - keyrecord_t *record = &waiting_buffer[waiting_buffer_tail]; - ac_dprintf("waiting_buffer_chordal_hold_taps_until: processing [%u]\n", waiting_buffer_tail); - if (record->event.pressed && is_tap_record(record)) { - record->tap.count = 1; - registered_taps_add(record->event.key); - } - process_record(record); - waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; - - if (KEYEQ(key, record->event.key) && record->event.pressed) { - break; - } - } -} - -static void waiting_buffer_process_regular(void) { - for (; waiting_buffer_tail != waiting_buffer_head; waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE) { - if (is_tap_record(&waiting_buffer[waiting_buffer_tail])) { - break; // Stop once a tap-hold key event is reached. - } - ac_dprintf("waiting_buffer_process_regular: processing [%u]\n", waiting_buffer_tail); - process_record(&waiting_buffer[waiting_buffer_tail]); - } - debug_waiting_buffer(); -} -# endif // CHORDAL_HOLD - -# ifdef FLOW_TAP_TERM -void flow_tap_update_last_event(keyrecord_t *record) { - const uint16_t keycode = get_record_keycode(record, false); - // Don't update while a tap-hold key is unsettled. - if (record->tap.count == 0 && (waiting_buffer_tail != waiting_buffer_head || (tapping_key.event.pressed && tapping_key.tap.count == 0))) { - return; - } - // Ignore releases of modifiers and held layer switches. - if (!record->event.pressed) { - switch (keycode) { - case MODIFIER_KEYCODE_RANGE: - case QK_MOMENTARY ... QK_MOMENTARY_MAX: - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: -# ifndef NO_ACTION_ONESHOT // Ignore one-shot keys. - case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: - case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: -# endif // NO_ACTION_ONESHOT -# ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. - case QK_TRI_LAYER_LOWER: - case QK_TRI_LAYER_UPPER: -# endif // TRI_LAYER_ENABLE - return; - case QK_MODS ... QK_MODS_MAX: - if (QK_MODS_GET_BASIC_KEYCODE(keycode) == KC_NO) { - return; - } - break; - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - if (record->tap.count == 0) { - return; - } - break; - } - } - - flow_tap_prev_keycode = keycode; - flow_tap_prev_time = record->event.time; - flow_tap_expired = false; -} - -static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time) { - const uint16_t idle_time = TIMER_DIFF_16(record->event.time, prev_time); - if (flow_tap_expired || idle_time >= 500) { - return false; - } - - const uint16_t keycode = get_record_keycode(record, false); - if (is_mt_or_lt(keycode)) { - uint16_t term = get_flow_tap_term(keycode, record, flow_tap_prev_keycode); - if (term > 500) { - term = 500; - } - if (idle_time < term) { - debug_event(record->event); - ac_dprintf(" within flow tap term (%u < %u) considered a tap\n", idle_time, term); - record->tap.count = 1; - registered_taps_add(record->event.key); - debug_registered_taps(); - process_record(record); - return true; - } - } - return false; -} - -// By default, enable Flow Tap for the keys in the main alphas area and Space. -// This should work reasonably even if the layout is remapped on the host to an -// alt layout or international layout (e.g. Dvorak or AZERTY), where these same -// key positions are mostly used for typing letters. -__attribute__((weak)) bool is_flow_tap_key(uint16_t keycode) { - if ((get_mods() & (MOD_MASK_CG | MOD_BIT_LALT)) != 0) { - return false; // Disable Flow Tap on hotkeys. - } - switch (get_tap_keycode(keycode)) { - case KC_SPC: - case KC_A ... KC_Z: - case KC_DOT: - case KC_COMM: - case KC_SCLN: - case KC_SLSH: - return true; - } - return false; -} - -__attribute__((weak)) uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode) { - if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { - return FLOW_TAP_TERM; - } - return 0; -} -# endif // FLOW_TAP_TERM - -/** \brief Logs tapping key if ACTION_DEBUG is enabled. */ +/** \brief Tapping key debug print + * + * FIXME: Needs docs + */ static void debug_tapping_key(void) { ac_dprintf("TAPPING_KEY="); debug_record(tapping_key); ac_dprintf("\n"); } -/** \brief Logs waiting buffer if ACTION_DEBUG is enabled. */ +/** \brief Waiting buffer debug print + * + * FIXME: Needs docs + */ static void debug_waiting_buffer(void) { - ac_dprintf("{"); + ac_dprintf("{ "); for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { - ac_dprintf(" [%u]=", i); + ac_dprintf("[%u]=", i); debug_record(waiting_buffer[i]); + ac_dprintf(" "); } ac_dprintf("}\n"); } diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 0cf4aa1200..6b518b8298 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -46,131 +46,6 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record); -#ifdef CHORDAL_HOLD -/** - * Callback to say when a key chord before the tapping term may be held. - * - * In keymap.c, define the callback - * - * bool get_chordal_hold(uint16_t tap_hold_keycode, - * keyrecord_t* tap_hold_record, - * uint16_t other_keycode, - * keyrecord_t* other_record) { - * // Conditions... - * } - * - * This callback is called when: - * - * 1. `tap_hold_keycode` is pressed. - * 2. `other_keycode` is pressed while `tap_hold_keycode` is still held, - * provided `other_keycode` is *not* also a tap-hold key and it is pressed - * before the tapping term. - * - * If false is returned, this has the effect of immediately settling the - * tap-hold key as tapped. If true is returned, the tap-hold key is still - * unsettled, and may be settled as held depending on configuration and - * subsequent events. - * - * @param tap_hold_keycode Keycode of the tap-hold key. - * @param tap_hold_record Record from the tap-hold press event. - * @param other_keycode Keycode of the other key. - * @param other_record Record from the other key's press event. - * @return True if the tap-hold key may be considered held; false if tapped. - */ -bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record); - -/** - * Default "opposite hands rule" for whether a key chord may settle as held. - * - * This function returns true when the tap-hold key and other key are on - * "opposite hands." In detail, handedness of the two keys are compared. If - * handedness values differ, or if either handedness is '*', the function - * returns true, indicating that it may be held. Otherwise, it returns false, - * in which case the tap-hold key is immediately settled at tapped. - * - * @param tap_hold_record Record of the active tap-hold key press. - * @param other_record Record of the other, interrupting key press. - * @return True if the tap-hold key may be considered held; false if tapped. - */ -bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record); - -/** - * Gets the handedness of a key. - * - * This function returns: - * 'L' for keys pressed by the left hand, - * 'R' for keys on the right hand, - * '*' for keys exempt from the "opposite hands rule." This could be used - * perhaps on thumb keys or keys that might be pressed by either hand. - * - * @param key A key matrix position. - * @return Handedness value. - */ -char chordal_hold_handedness(keypos_t key); - -extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; -#endif - -#ifdef FLOW_TAP_TERM -/** - * Callback to specify the keys where Flow Tap is enabled. - * - * Flow Tap is constrained to certain keys by the following rule: this callback - * is called for both the tap-hold key *and* the key press immediately preceding - * it. If the callback returns true for both keycodes, Flow Tap is enabled. - * - * The default implementation of this callback corresponds to - * - * bool is_flow_tap_key(uint16_t keycode) { - * switch (get_tap_keycode(keycode)) { - * case KC_SPC: - * case KC_A ... KC_Z: - * case KC_DOT: - * case KC_COMM: - * case KC_SCLN: - * case KC_SLSH: - * return true; - * } - * return false; - * } - * - * @param keycode Keycode of the key. - * @return Whether to enable Flow Tap for this key. - */ -bool is_flow_tap_key(uint16_t keycode); - -/** - * Callback to customize Flow Tap filtering. - * - * Flow Tap acts only when key events are closer together than this time. - * - * Return a time of 0 to disable filtering. In this way, Flow Tap may be - * disabled for certain tap-hold keys, or when following certain previous keys. - * - * The default implementation of this callback is - * - * uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, - * uint16_t prev_keycode) { - * if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { - * return g_flow_tap_term; - * } - * return 0; - * } - * - * NOTE: If both `is_flow_tap_key()` and `get_flow_tap_term()` are defined, then - * `get_flow_tap_term()` takes precedence. - * - * @param keycode Keycode of the tap-hold key. - * @param record keyrecord_t of the tap-hold event. - * @param prev_keycode Keycode of the previously pressed key. - * @return Time in milliseconds. - */ -uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); - -/** Updates the Flow Tap last key and timer. */ -void flow_tap_update_last_event(keyrecord_t *record); -#endif // FLOW_TAP_TERM - #ifdef DYNAMIC_TAPPING_TERM_ENABLE extern uint16_t g_tapping_term; #endif diff --git a/quantum/action_util.c b/quantum/action_util.c index e821e113ef..52171b5050 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -219,7 +219,7 @@ bool is_oneshot_layer_active(void) { void oneshot_set(bool active) { if (keymap_config.oneshot_enable != active) { keymap_config.oneshot_enable = active; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); dprintf("Oneshot: active: %d\n", active); } @@ -318,12 +318,14 @@ void send_nkro_report(void) { */ void send_keyboard_report(void) { #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { send_nkro_report(); - return; + } else { + send_6kro_report(); } -#endif +#else send_6kro_report(); +#endif } /** \brief Get mods diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 461ec89544..b2611c5f09 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -149,14 +149,14 @@ void audio_driver_start(void) { } void eeconfig_update_audio_current(void) { - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } void eeconfig_update_audio_default(void) { audio_config.valid = true; audio_config.enable = AUDIO_DEFAULT_ON; audio_config.clicky_enable = AUDIO_DEFAULT_CLICKY_ON; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } void audio_init(void) { @@ -164,7 +164,7 @@ void audio_init(void) { return; } - eeconfig_read_audio(&audio_config); + audio_config.raw = eeconfig_read_audio(); if (!audio_config.valid) { dprintf("audio_init audio_config.valid = 0. Write default values to EEPROM.\n"); eeconfig_update_audio_default(); @@ -183,25 +183,6 @@ void audio_init(void) { #endif } -void audio_task(void) { -#ifdef AUDIO_INIT_DELAY - // startup song potentially needs to be run a little bit - // after keyboard startup, or else they will not work correctly - // because of interaction with the USB device state, which - // may still be in flux... - static bool delayed_tasks_run = false; - static uint16_t delayed_task_timer = 0; - if (!delayed_tasks_run) { - if (!delayed_task_timer) { - delayed_task_timer = timer_read(); - } else if (timer_elapsed(delayed_task_timer) > 300) { - audio_startup(); - delayed_tasks_run = true; - } - } -#endif -} - void audio_startup(void) { if (audio_config.enable) { PLAY_SONG(startup_song); @@ -215,7 +196,7 @@ void audio_toggle(void) { stop_all_notes(); } audio_config.enable ^= 1; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); if (audio_config.enable) { audio_on_user(); } else { @@ -225,7 +206,7 @@ void audio_toggle(void) { void audio_on(void) { audio_config.enable = 1; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); audio_on_user(); PLAY_SONG(audio_on_song); } @@ -236,7 +217,7 @@ void audio_off(void) { wait_ms(100); audio_stop_all(); audio_config.enable = 0; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } bool audio_is_on(void) { @@ -277,10 +258,11 @@ void audio_stop_tone(float pitch) { for (int i = AUDIO_TONE_STACKSIZE - 1; i >= 0; i--) { found = (tones[i].pitch == pitch); if (found) { + tones[i] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; for (int j = i; (j < AUDIO_TONE_STACKSIZE - 1); j++) { - tones[j] = tones[j + 1]; + tones[j] = tones[j + 1]; + tones[j + 1] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; } - tones[AUDIO_TONE_STACKSIZE - 1] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; break; } } @@ -390,9 +372,8 @@ void audio_play_melody(float (*np)[][2], uint16_t n_count, bool n_repeat) { melody_current_note_duration = audio_duration_to_ms((*notes_pointer)[current_note][1]); } -void audio_play_click(uint16_t delay, float pitch, uint16_t duration) { - static float click[2][2]; - +float click[2][2]; +void audio_play_click(uint16_t delay, float pitch, uint16_t duration) { uint16_t duration_tone = audio_ms_to_duration(duration); uint16_t duration_delay = audio_ms_to_duration(delay); diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index a41814d0f8..054331d6f3 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -18,8 +18,6 @@ #include #include - -#include "compiler_support.h" #include "musical_notes.h" #include "song_list.h" #include "voices.h" @@ -30,7 +28,7 @@ # include "audio_dac.h" #endif -typedef union audio_config_t { +typedef union { uint8_t raw; struct { bool enable : 1; @@ -40,7 +38,7 @@ typedef union audio_config_t { }; } audio_config_t; -STATIC_ASSERT(sizeof(audio_config_t) == sizeof(uint8_t), "Audio EECONFIG out of spec."); +_Static_assert(sizeof(audio_config_t) == sizeof(uint8_t), "Audio EECONFIG out of spec."); /* * a 'musical note' is represented by pitch and duration; a 'musical tone' adds intensity and timbre @@ -69,11 +67,7 @@ void eeconfig_update_audio_current(void); * @post audio system (and hardware) initialized and ready to play tones */ void audio_init(void); - -/** - * \brief Handle various subsystem background tasks. - */ -void audio_task(void); +void audio_startup(void); /** * @brief en-/disable audio output, save this choice to the eeprom diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index a7d2a45a51..eb64dd71e8 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c @@ -16,6 +16,7 @@ along with this program. If not, see . */ #include "backlight.h" +#include "eeprom.h" #include "eeconfig.h" #include "debug.h" @@ -54,7 +55,7 @@ static void backlight_check_config(void) { * FIXME: needs doc */ void backlight_init(void) { - eeconfig_read_backlight(&backlight_config); + backlight_config.raw = eeconfig_read_backlight(); if (!backlight_config.valid) { dprintf("backlight_init backlight_config.valid = 0. Write default values to EEPROM.\n"); eeconfig_update_backlight_default(); @@ -73,7 +74,7 @@ void backlight_increase(void) { backlight_config.level++; } backlight_config.enable = 1; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -86,7 +87,7 @@ void backlight_decrease(void) { if (backlight_config.level > 0) { backlight_config.level--; backlight_config.enable = !!backlight_config.level; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -115,7 +116,7 @@ void backlight_enable(void) { backlight_config.enable = true; if (backlight_config.raw == 1) // enabled but level == 0 backlight_config.level = 1; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight enable\n"); backlight_set(backlight_config.level); } @@ -128,7 +129,7 @@ void backlight_disable(void) { if (!backlight_config.enable) return; // do nothing if backlight is already off backlight_config.enable = false; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight disable\n"); backlight_set(0); } @@ -151,7 +152,7 @@ void backlight_step(void) { backlight_config.level = 0; } backlight_config.enable = !!backlight_config.level; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight step: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -172,11 +173,19 @@ void backlight_level_noeeprom(uint8_t level) { */ void backlight_level(uint8_t level) { backlight_level_noeeprom(level); - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); +} + +uint8_t eeconfig_read_backlight(void) { + return eeprom_read_byte(EECONFIG_BACKLIGHT); +} + +void eeconfig_update_backlight(uint8_t val) { + eeprom_update_byte(EECONFIG_BACKLIGHT, val); } void eeconfig_update_backlight_current(void) { - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); } void eeconfig_update_backlight_default(void) { @@ -184,7 +193,7 @@ void eeconfig_update_backlight_default(void) { backlight_config.enable = BACKLIGHT_DEFAULT_ON; backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING; backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); } /** \brief Get backlight level @@ -217,7 +226,7 @@ void backlight_enable_breathing(void) { if (backlight_config.breathing) return; // do nothing if breathing is already on backlight_config.breathing = true; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight breathing enable\n"); breathing_enable(); } @@ -230,7 +239,7 @@ void backlight_disable_breathing(void) { if (!backlight_config.breathing) return; // do nothing if breathing is already off backlight_config.breathing = false; - eeconfig_update_backlight(&backlight_config); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight breathing disable\n"); breathing_disable(); } diff --git a/quantum/backlight/backlight.h b/quantum/backlight/backlight.h index 2faa8fc4f2..c34fb5858d 100644 --- a/quantum/backlight/backlight.h +++ b/quantum/backlight/backlight.h @@ -20,8 +20,6 @@ along with this program. If not, see . #include #include -#include "compiler_support.h" - #ifndef BACKLIGHT_LEVELS # define BACKLIGHT_LEVELS 3 #elif BACKLIGHT_LEVELS > 31 @@ -36,7 +34,7 @@ along with this program. If not, see . # define BREATHING_PERIOD 6 #endif -typedef union backlight_config_t { +typedef union { uint8_t raw; struct { bool enable : 1; @@ -46,7 +44,7 @@ typedef union backlight_config_t { }; } backlight_config_t; -STATIC_ASSERT(sizeof(backlight_config_t) == sizeof(uint8_t), "Backlight EECONFIG out of spec."); +_Static_assert(sizeof(backlight_config_t) == sizeof(uint8_t), "Backlight EECONFIG out of spec."); void backlight_init(void); void backlight_toggle(void); @@ -60,8 +58,10 @@ void backlight_level_noeeprom(uint8_t level); void backlight_level(uint8_t level); uint8_t get_backlight_level(void); -void eeconfig_update_backlight_current(void); -void eeconfig_update_backlight_default(void); +uint8_t eeconfig_read_backlight(void); +void eeconfig_update_backlight(uint8_t val); +void eeconfig_update_backlight_current(void); +void eeconfig_update_backlight_default(void); // implementation specific void backlight_init_ports(void); diff --git a/quantum/basic_profiling.h b/quantum/basic_profiling.h index e0a88d49cf..d371acd6f0 100644 --- a/quantum/basic_profiling.h +++ b/quantum/basic_profiling.h @@ -25,6 +25,8 @@ # define TIMESTAMP_GETTER TCNT0 #elif defined(PROTOCOL_CHIBIOS) # define TIMESTAMP_GETTER chSysGetRealtimeCounterX() +#elif defined(PROTOCOL_ARM_ATSAM) +# error arm_atsam not currently supported #else # error Unknown protocol in use #endif diff --git a/quantum/battery/battery.c b/quantum/battery/battery.c deleted file mode 100644 index faf3c5a214..0000000000 --- a/quantum/battery/battery.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "battery_driver.h" -#include "battery.h" -#include "timer.h" - -#ifndef BATTERY_SAMPLE_INTERVAL -# define BATTERY_SAMPLE_INTERVAL 30000 -#endif - -static uint8_t last_bat_level = 100; - -void battery_init(void) { - battery_driver_init(); - - last_bat_level = battery_driver_sample_percent(); -} - -__attribute__((weak)) void battery_percent_changed_user(uint8_t level) {} -__attribute__((weak)) void battery_percent_changed_kb(uint8_t level) {} - -static void handle_percent_changed(void) { - battery_percent_changed_user(last_bat_level); - battery_percent_changed_kb(last_bat_level); -} - -void battery_task(void) { - static uint32_t bat_timer = 0; - if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) { - last_bat_level = battery_driver_sample_percent(); - - handle_percent_changed(); - - bat_timer = timer_read32(); - } -} - -uint8_t battery_get_percent(void) { - return last_bat_level; -} diff --git a/quantum/battery/battery.h b/quantum/battery/battery.h deleted file mode 100644 index 0985723eaa..0000000000 --- a/quantum/battery/battery.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -/** - * \file - * - * \defgroup battery Battery API - * - * \brief API to query battery status. - * \{ - */ - -/** - * \brief Initialize the battery driver. - */ -void battery_init(void); - -/** - * \brief Perform housekeeping tasks. - */ -void battery_task(void); - -/** - * \brief Sample battery level. - * - * \return The battery percentage, in the range 0-100. - */ -uint8_t battery_get_percent(void); - -/** - * \brief user hook called when battery level changed. - * - */ -void battery_percent_changed_user(uint8_t level); - -/** - * \brief keyboard hook called when battery level changed. - * - */ -void battery_percent_changed_kb(uint8_t level); - -/** \} */ diff --git a/quantum/battery/tests/battery_tests.cpp b/quantum/battery/tests/battery_tests.cpp deleted file mode 100644 index ee011be8a8..0000000000 --- a/quantum/battery/tests/battery_tests.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -using testing::_; - -class BatteryDriverMock { - public: - virtual ~BatteryDriverMock() {} - - // mock methods - MOCK_METHOD0(battery_driver_init, void(void)); - MOCK_METHOD0(battery_driver_sample_percent, uint8_t(void)); - MOCK_METHOD1(battery_percent_changed_kb, void(uint8_t)); -}; - -class BatteryTest : public ::testing::Test { - public: - BatteryTest() { - _batteryDriverMock.reset(new ::testing::NiceMock()); - } - virtual ~BatteryTest() { - _batteryDriverMock.reset(); - } - - static std::unique_ptr _batteryDriverMock; -}; - -std::unique_ptr BatteryTest::_batteryDriverMock; - -extern "C" { -#include "quantum/battery/battery.h" -#include "timer.h" - -void advance_time(uint32_t ms); - -void battery_driver_init(void) { - if (BatteryTest::_batteryDriverMock) { - BatteryTest::_batteryDriverMock->battery_driver_init(); - } -} - -uint8_t battery_driver_sample_percent(void) { - if (BatteryTest::_batteryDriverMock) { - return BatteryTest::_batteryDriverMock->battery_driver_sample_percent(); - } - return 255; -} - -void battery_percent_changed_kb(uint8_t level) { - if (BatteryTest::_batteryDriverMock) { - BatteryTest::_batteryDriverMock->battery_percent_changed_kb(level); - } -} -} - -TEST_F(BatteryTest, TestInit) { - // init driver and initial sample - EXPECT_CALL(*_batteryDriverMock, battery_driver_init()).Times(1); - EXPECT_CALL(*_batteryDriverMock, battery_driver_sample_percent()).Times(1); - - battery_init(); -} - -TEST_F(BatteryTest, TestSampleCached) { - // sample before timeout - EXPECT_CALL(*_batteryDriverMock, battery_driver_sample_percent()).Times(0); - - advance_time(1); - battery_task(); -} - -TEST_F(BatteryTest, TestSampleNotCached) { - // sample after timeout - EXPECT_CALL(*_batteryDriverMock, battery_driver_sample_percent()).Times(1); - - advance_time(60000); - battery_task(); -} - -TEST_F(BatteryTest, TestGet) { - // sample does not directly sample - EXPECT_CALL(*_batteryDriverMock, battery_driver_sample_percent()).Times(0); - - battery_get_percent(); -} - -TEST_F(BatteryTest, TestChanged) { - // callbacks on value changed - EXPECT_CALL(*_batteryDriverMock, battery_percent_changed_kb(_)).Times(1); - - battery_task(); - advance_time(60000); - battery_task(); -} diff --git a/quantum/battery/tests/rules.mk b/quantum/battery/tests/rules.mk deleted file mode 100644 index 86980f1020..0000000000 --- a/quantum/battery/tests/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -VPATH += $(DRIVER_PATH)/battery - -battery_SRC := \ - $(PLATFORM_PATH)/timer.c \ - $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c \ - $(QUANTUM_PATH)/battery/battery.c \ - $(QUANTUM_PATH)/battery/tests/battery_tests.cpp \ diff --git a/quantum/battery/tests/testlist.mk b/quantum/battery/tests/testlist.mk deleted file mode 100644 index e91da865a0..0000000000 --- a/quantum/battery/tests/testlist.mk +++ /dev/null @@ -1,2 +0,0 @@ -TEST_LIST += \ - battery \ diff --git a/quantum/bits.h b/quantum/bits.h deleted file mode 100644 index 41f11e7b9c..0000000000 --- a/quantum/bits.h +++ /dev/null @@ -1,33 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ - -#pragma once - -#include - -/* Remove these once we transitioned to C23 across all platforms */ -#define UINT32_WIDTH 32 -#define UINT64_WIDTH 64 - -/** - * @brief Mask for the little endian nth bit (0-31) in a 32-bit integer. - */ -#define BIT32(n) (UINT32_C(1) << (n)) - -/** - * @brief Mask for the little endian nth bit (0-63) in a 64-bit integer. - */ -#define BIT64(n) (UINT64_C(1) << (n)) - -/** - * @brief Create a contiguous 32-bit wide bitmask starting at bit position @l - * and ending at position @h. The range is inclusive, meaning GENMASK32(20, 10) - * gives us the 32-bit mask 0x001ffc00. - */ -#define GENMASK32(h, l) (((~UINT32_C(0)) - (UINT32_C(1) << (l)) + 1) & (~UINT32_C(0) >> (UINT32_WIDTH - 1 - (h)))) - -/** - * @brief Create a contiguous 64-bit wide bitmask starting at bit position @l - * and ending at position @h. The range is inclusive, meaning GENMASK64(39, 21) - * gives us the 64-bit mask 0x000000ffffe00000. - */ -#define GENMASK64(h, l) (((~UINT64_C(0)) - (UINT64_C(1) << (l)) + 1) & (~UINT64_C(0) >> (UINT64_WIDTH - 1 - (h)))) diff --git a/quantum/color.c b/quantum/color.c index 93564784f0..96d548a33c 100644 --- a/quantum/color.c +++ b/quantum/color.c @@ -19,8 +19,8 @@ #include "progmem.h" #include "util.h" -rgb_t hsv_to_rgb_impl(hsv_t hsv, bool use_cie) { - rgb_t rgb; +RGB hsv_to_rgb_impl(HSV hsv, bool use_cie) { + RGB rgb; uint8_t region, remainder, p, q, t; uint16_t h, s, v; @@ -97,7 +97,7 @@ rgb_t hsv_to_rgb_impl(hsv_t hsv, bool use_cie) { return rgb; } -rgb_t hsv_to_rgb(hsv_t hsv) { +RGB hsv_to_rgb(HSV hsv) { #ifdef USE_CIE1931_CURVE return hsv_to_rgb_impl(hsv, true); #else @@ -105,6 +105,17 @@ rgb_t hsv_to_rgb(hsv_t hsv) { #endif } -rgb_t hsv_to_rgb_nocie(hsv_t hsv) { +RGB hsv_to_rgb_nocie(HSV hsv) { return hsv_to_rgb_impl(hsv, false); } + +#ifdef WS2812_RGBW +void convert_rgb_to_rgbw(rgb_led_t *led) { + // Determine lowest value in all three colors, put that into + // the white channel and then shift all colors by that amount + led->w = MIN(led->r, MIN(led->g, led->b)); + led->r -= led->w; + led->g -= led->w; + led->b -= led->w; +} +#endif diff --git a/quantum/color.h b/quantum/color.h index 5c23b25335..b6a9dd0641 100644 --- a/quantum/color.h +++ b/quantum/color.h @@ -74,24 +74,43 @@ // clang-format on -typedef struct PACKED rgb_t { +#define WS2812_BYTE_ORDER_RGB 0 +#define WS2812_BYTE_ORDER_GRB 1 +#define WS2812_BYTE_ORDER_BGR 2 + +#ifndef WS2812_BYTE_ORDER +# define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB +#endif + +typedef struct PACKED rgb_led_t { +#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) + uint8_t g; + uint8_t r; + uint8_t b; +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) uint8_t r; uint8_t g; uint8_t b; -} rgb_t; +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) + uint8_t b; + uint8_t g; + uint8_t r; +#endif +#ifdef WS2812_RGBW + uint8_t w; +#endif +} rgb_led_t; -// DEPRECATED -typedef rgb_t RGB; -typedef rgb_t rgb_led_t; +typedef rgb_led_t RGB; -typedef struct PACKED hsv_t { +typedef struct PACKED HSV { uint8_t h; uint8_t s; uint8_t v; -} hsv_t; +} HSV; -// DEPRECATED -typedef hsv_t HSV; - -rgb_t hsv_to_rgb(hsv_t hsv); -rgb_t hsv_to_rgb_nocie(hsv_t hsv); +RGB hsv_to_rgb(HSV hsv); +RGB hsv_to_rgb_nocie(HSV hsv); +#ifdef WS2812_RGBW +void convert_rgb_to_rgbw(rgb_led_t *led); +#endif diff --git a/quantum/command.c b/quantum/command.c index ea2fd68e2b..c188638eb4 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -28,20 +28,16 @@ along with this program. If not, see . #include "action_layer.h" #include "action_util.h" #include "eeconfig.h" +#include "sleep_led.h" #include "led.h" #include "command.h" #include "quantum.h" -#include "usb_device_state.h" #include "version.h" #ifdef BACKLIGHT_ENABLE # include "backlight.h" #endif -#ifdef SLEEP_LED_ENABLE -# include "sleep_led.h" -#endif - #if defined(MOUSEKEY_ENABLE) # include "mousekey.h" #endif @@ -234,8 +230,8 @@ static void print_status(void) { "timer_read32(): %08lX\n" , host_keyboard_leds() - , usb_device_state_get_protocol() - , usb_device_state_get_idle_rate() + , keyboard_protocol + , keyboard_idle #ifdef NKRO_ENABLE , keymap_config.nkro #endif @@ -246,10 +242,10 @@ static void print_status(void) { #if !defined(NO_PRINT) && !defined(USER_PRINT) static void print_eeconfig(void) { - xprintf("eeconfig:\ndefault_layer: %" PRIu32 "\n", (uint32_t)eeconfig_read_default_layer()); + xprintf("eeconfig:\ndefault_layer: %u\n", eeconfig_read_default_layer()); debug_config_t dc; - eeconfig_read_debug(&dc); + dc.raw = eeconfig_read_debug(); xprintf(/* clang-format off */ "debug_config.raw: %02X\n" @@ -266,7 +262,7 @@ static void print_eeconfig(void) { ); /* clang-format on */ keymap_config_t kc; - eeconfig_read_keymap(&kc); + kc.raw = eeconfig_read_keymap(); xprintf(/* clang-format off */ "keymap_config.raw: %02X\n" @@ -299,7 +295,7 @@ static void print_eeconfig(void) { # ifdef BACKLIGHT_ENABLE backlight_config_t bc; - eeconfig_read_backlight(&bc); + bc.raw = eeconfig_read_backlight(); xprintf(/* clang-format off */ "backlight_config" diff --git a/quantum/compiler_support.h b/quantum/compiler_support.h deleted file mode 100644 index 5c0c4d2835..0000000000 --- a/quantum/compiler_support.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 QMK Contributors -// SPDX-License-Identifier: GPL-2.0-or-later - -/** - * @brief Perfom an assertion at compile time. - * - * `_Static_assert` is C<23, while `static_assert` is C++/C23. - */ -#if !defined(STATIC_ASSERT) -# ifdef __cplusplus -# define STATIC_ASSERT static_assert -# else -# define STATIC_ASSERT _Static_assert -# endif -#endif diff --git a/quantum/connection/connection.c b/quantum/connection/connection.c deleted file mode 100644 index 1ff8876876..0000000000 --- a/quantum/connection/connection.c +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include "connection.h" -#include "eeconfig.h" -#include "usb_util.h" -#include "util.h" - -#ifdef BLUETOOTH_ENABLE -# include "bluetooth.h" -#endif - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef OUTPUT_DEFAULT -# undef CONNECTION_HOST_DEFAULT -# define CONNECTION_HOST_DEFAULT OUTPUT_DEFAULT -#endif - -__attribute__((weak)) void set_output_user(uint8_t output) {} -// ======== - -#define CONNECTION_HOST_INVALID 0xFF - -#ifndef CONNECTION_HOST_DEFAULT -# define CONNECTION_HOST_DEFAULT CONNECTION_HOST_AUTO -#endif - -static const connection_host_t host_candidates[] = { - CONNECTION_HOST_AUTO, - CONNECTION_HOST_USB, -#ifdef BLUETOOTH_ENABLE - CONNECTION_HOST_BLUETOOTH, -#endif -#if 0 - CONNECTION_HOST_2P4GHZ, -#endif -}; - -#define HOST_CANDIDATES_COUNT ARRAY_SIZE(host_candidates) - -static connection_config_t config = {.desired_host = CONNECTION_HOST_INVALID}; - -void eeconfig_update_connection_default(void) { - config.desired_host = CONNECTION_HOST_DEFAULT; - - eeconfig_update_connection(&config); -} - -void connection_init(void) { - eeconfig_read_connection(&config); - if (config.desired_host == CONNECTION_HOST_INVALID) { - eeconfig_update_connection_default(); - } -} - -__attribute__((weak)) void connection_host_changed_user(connection_host_t host) {} -__attribute__((weak)) void connection_host_changed_kb(connection_host_t host) {} - -static void handle_host_changed(void) { - connection_host_changed_user(config.desired_host); - connection_host_changed_kb(config.desired_host); - - // TODO: Remove deprecated callback - set_output_user(config.desired_host); -} - -void connection_set_host_noeeprom(connection_host_t host) { - if (config.desired_host == host) { - return; - } - - config.desired_host = host; - - handle_host_changed(); -} - -void connection_set_host(connection_host_t host) { - connection_set_host_noeeprom(host); - - eeconfig_update_connection(&config); -} - -void connection_next_host_noeeprom(void) { - uint8_t next = 0; - for (uint8_t i = 0; i < HOST_CANDIDATES_COUNT; i++) { - if (host_candidates[i] == config.desired_host) { - next = i == HOST_CANDIDATES_COUNT - 1 ? 0 : i + 1; - break; - } - } - - connection_set_host_noeeprom(host_candidates[next]); -} - -void connection_next_host(void) { - connection_next_host_noeeprom(); - - eeconfig_update_connection(&config); -} - -void connection_prev_host_noeeprom(void) { - uint8_t next = 0; - for (uint8_t i = 0; i < HOST_CANDIDATES_COUNT; i++) { - if (host_candidates[i] == config.desired_host) { - next = i == 0 ? HOST_CANDIDATES_COUNT - 1 : i - 1; - break; - } - } - - connection_set_host_noeeprom(host_candidates[next]); -} - -void connection_prev_host(void) { - connection_prev_host_noeeprom(); - - eeconfig_update_connection(&config); -} - -connection_host_t connection_get_host_raw(void) { - return config.desired_host; -} - -connection_host_t connection_auto_detect_host(void) { - if (usb_connected_state()) { - return CONNECTION_HOST_USB; - } - -#ifdef BLUETOOTH_ENABLE - if (bluetooth_is_connected()) { - return CONNECTION_HOST_BLUETOOTH; - } -#endif - - return CONNECTION_HOST_NONE; -} - -connection_host_t connection_get_host(void) { - if (config.desired_host == CONNECTION_HOST_AUTO) { - return connection_auto_detect_host(); - } - return config.desired_host; -} diff --git a/quantum/connection/connection.h b/quantum/connection/connection.h deleted file mode 100644 index b25160c759..0000000000 --- a/quantum/connection/connection.h +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include - -#include "compiler_support.h" -#include "util.h" - -/** - * \enum connection_host_t - * - * An enumeration of the possible hosts. - */ -typedef enum connection_host_t { - CONNECTION_HOST_AUTO, - - CONNECTION_HOST_NONE, - CONNECTION_HOST_USB, - CONNECTION_HOST_BLUETOOTH, - CONNECTION_HOST_2P4GHZ -} connection_host_t; - -/** - * \union connection_config_t - * - * Configuration structure for the connection subsystem. - */ -typedef union connection_config_t { - uint8_t raw; - connection_host_t desired_host : 8; -} PACKED connection_config_t; - -STATIC_ASSERT(sizeof(connection_config_t) == sizeof(uint8_t), "Connection EECONFIG out of spec."); - -/** - * \brief Initialize the subsystem. - * - * This function must be called only once, before any of the below functions can be called. - */ -void connection_init(void); - -/** - * \brief Get currently configured host. Does not resolve 'CONNECTION_HOST_AUTO'. - * - * \return 'connection_host_t' of the configured host. - */ -connection_host_t connection_get_host_raw(void); - -/** - * \brief Get current active host. - * - * \return 'connection_host_t' of the configured host. - */ -connection_host_t connection_auto_detect_host(void); - -/** - * \brief Get currently configured host. Resolves 'CONNECTION_HOST_AUTO' using 'connection_auto_detect_host()'. - * - * \return 'connection_host_t' of the configured host. - */ -connection_host_t connection_get_host(void); - -/** - * \brief Get current host. New state is not written to EEPROM. - * - * \param host The host to configure. - */ -void connection_set_host_noeeprom(connection_host_t host); - -/** - * \brief Get current host. - * - * \param host The host to configure. - */ -void connection_set_host(connection_host_t host); - -/** - * \brief Move to the next potential host. New state is not written to EEPROM. - * - */ -void connection_next_host_noeeprom(void); - -/** - * \brief Move to the next potential host. - * - */ -void connection_next_host(void); - -/** - * \brief Move to the previous potential host. New state is not written to EEPROM. - * - */ -void connection_prev_host_noeeprom(void); - -/** - * \brief Move to the previous potential host. - * - */ -void connection_prev_host(void); - -/** - * \brief user hook called when changing configured host - * - */ -void connection_host_changed_user(connection_host_t host); - -/** - * \brief keyboard hook called when changing configured host - * - */ -void connection_host_changed_kb(connection_host_t host); diff --git a/quantum/debounce/tests/rules.mk b/quantum/debounce/tests/rules.mk index d38b1cd342..bbc362d4c7 100644 --- a/quantum/debounce/tests/rules.mk +++ b/quantum/debounce/tests/rules.mk @@ -16,7 +16,6 @@ DEBOUNCE_COMMON_DEFS := -DMATRIX_ROWS=4 -DMATRIX_COLS=10 -DDEBOUNCE=5 DEBOUNCE_COMMON_SRC := $(QUANTUM_PATH)/debounce/tests/debounce_test_common.cpp \ - $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c debounce_none_DEFS := $(DEBOUNCE_COMMON_DEFS) diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 65ae21175b..69cf665291 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -64,7 +64,6 @@ __attribute__((weak)) bool dip_switch_update_mask_kb(uint32_t state) { #ifdef DIP_SWITCH_MAP_ENABLE # include "keymap_introspection.h" # include "action.h" -# include "wait.h" # ifndef DIP_SWITCH_MAP_KEY_DELAY # define DIP_SWITCH_MAP_KEY_DELAY TAP_CODE_DELAY diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 25029e39c4..3c22bbd445 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -1,5 +1,4 @@ /* Copyright 2017 Jason Williams (Wilba) - * Copyright 2024-2025 Nick Brassel (@tzarc) * * 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 @@ -18,9 +17,18 @@ #include "dynamic_keymap.h" #include "keymap_introspection.h" #include "action.h" +#include "eeprom.h" +#include "progmem.h" #include "send_string.h" #include "keycodes.h" -#include "nvm_dynamic_keymap.h" + +#ifdef VIA_ENABLE +# include "via.h" +# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) +#else +# include "eeconfig.h" +# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) +#endif #ifdef ENCODER_ENABLE # include "encoder.h" @@ -28,6 +36,67 @@ # define NUM_ENCODERS 0 #endif +#ifndef DYNAMIC_KEYMAP_LAYER_COUNT +# define DYNAMIC_KEYMAP_LAYER_COUNT 4 +#endif + +#ifndef DYNAMIC_KEYMAP_MACRO_COUNT +# define DYNAMIC_KEYMAP_MACRO_COUNT 16 +#endif + +#ifndef TOTAL_EEPROM_BYTE_COUNT +# error Unknown total EEPROM size. Cannot derive maximum for dynamic keymaps. +#endif + +#ifndef DYNAMIC_KEYMAP_EEPROM_MAX_ADDR +# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR (TOTAL_EEPROM_BYTE_COUNT - 1) +#endif + +#if DYNAMIC_KEYMAP_EEPROM_MAX_ADDR > (TOTAL_EEPROM_BYTE_COUNT - 1) +# pragma message STR(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) " > " STR((TOTAL_EEPROM_BYTE_COUNT - 1)) +# error DYNAMIC_KEYMAP_EEPROM_MAX_ADDR is configured to use more space than what is available for the selected EEPROM driver +#endif + +// Due to usage of uint16_t check for max 65535 +#if DYNAMIC_KEYMAP_EEPROM_MAX_ADDR > 65535 +# pragma message STR(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) " > 65535" +# error DYNAMIC_KEYMAP_EEPROM_MAX_ADDR must be less than 65536 +#endif + +// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, +#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR +# define DYNAMIC_KEYMAP_EEPROM_ADDR DYNAMIC_KEYMAP_EEPROM_START +#endif + +// Dynamic encoders starts after dynamic keymaps +#ifndef DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR +# define DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2)) +#endif + +// Dynamic macro starts after dynamic encoders, but only when using ENCODER_MAP +#ifdef ENCODER_MAP_ENABLE +# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * NUM_ENCODERS * 2 * 2)) +# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#else // ENCODER_MAP_ENABLE +# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) +# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#endif // ENCODER_MAP_ENABLE + +// Sanity check that dynamic keymaps fit in available EEPROM +// If there's not 100 bytes available for macros, then something is wrong. +// The keyboard should override DYNAMIC_KEYMAP_LAYER_COUNT to reduce it, +// or DYNAMIC_KEYMAP_EEPROM_MAX_ADDR to increase it, *only if* the microcontroller has +// more than the default. +_Static_assert((DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) - (DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) >= 100, "Dynamic keymaps are configured to use more EEPROM than is available."); + +// Dynamic macros are stored after the keymaps and use what is available +// up to and including DYNAMIC_KEYMAP_EEPROM_MAX_ADDR. +#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE +# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (DYNAMIC_KEYMAP_EEPROM_MAX_ADDR - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + 1) +#endif + #ifndef DYNAMIC_KEYMAP_MACRO_DELAY # define DYNAMIC_KEYMAP_MACRO_DELAY TAP_CODE_DELAY #endif @@ -36,28 +105,52 @@ uint8_t dynamic_keymap_get_layer_count(void) { return DYNAMIC_KEYMAP_LAYER_COUNT; } +void *dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column) { + // TODO: optimize this with some left shifts + return ((void *)DYNAMIC_KEYMAP_EEPROM_ADDR) + (layer * MATRIX_ROWS * MATRIX_COLS * 2) + (row * MATRIX_COLS * 2) + (column * 2); +} + uint16_t dynamic_keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t column) { - return nvm_dynamic_keymap_read_keycode(layer, row, column); + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return KC_NO; + void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); + // Big endian, so we can read/write EEPROM directly from host if we want + uint16_t keycode = eeprom_read_byte(address) << 8; + keycode |= eeprom_read_byte(address + 1); + return keycode; } void dynamic_keymap_set_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode) { - nvm_dynamic_keymap_update_keycode(layer, row, column, keycode); + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return; + void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); + // Big endian, so we can read/write EEPROM directly from host if we want + eeprom_update_byte(address, (uint8_t)(keycode >> 8)); + eeprom_update_byte(address + 1, (uint8_t)(keycode & 0xFF)); } #ifdef ENCODER_MAP_ENABLE +void *dynamic_keymap_encoder_to_eeprom_address(uint8_t layer, uint8_t encoder_id) { + return ((void *)DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) + (layer * NUM_ENCODERS * 2 * 2) + (encoder_id * 2 * 2); +} + uint16_t dynamic_keymap_get_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise) { - return nvm_dynamic_keymap_read_encoder(layer, encoder_id, clockwise); + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return KC_NO; + void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); + // Big endian, so we can read/write EEPROM directly from host if we want + uint16_t keycode = ((uint16_t)eeprom_read_byte(address + (clockwise ? 0 : 2))) << 8; + keycode |= eeprom_read_byte(address + (clockwise ? 0 : 2) + 1); + return keycode; } void dynamic_keymap_set_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode) { - nvm_dynamic_keymap_update_encoder(layer, encoder_id, clockwise, keycode); + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return; + void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); + // Big endian, so we can read/write EEPROM directly from host if we want + eeprom_update_byte(address + (clockwise ? 0 : 2), (uint8_t)(keycode >> 8)); + eeprom_update_byte(address + (clockwise ? 0 : 2) + 1, (uint8_t)(keycode & 0xFF)); } #endif // ENCODER_MAP_ENABLE void dynamic_keymap_reset(void) { - // Erase the keymaps, if necessary. - nvm_dynamic_keymap_erase(); - // Reset the keymaps in EEPROM to what is in flash. for (int layer = 0; layer < DYNAMIC_KEYMAP_LAYER_COUNT; layer++) { for (int row = 0; row < MATRIX_ROWS; row++) { @@ -75,11 +168,31 @@ void dynamic_keymap_reset(void) { } void dynamic_keymap_get_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - nvm_dynamic_keymap_read_buffer(offset, size, data); + uint16_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; + void * source = (void *)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + uint8_t *target = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < dynamic_keymap_eeprom_size) { + *target = eeprom_read_byte(source); + } else { + *target = 0x00; + } + source++; + target++; + } } void dynamic_keymap_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - nvm_dynamic_keymap_update_buffer(offset, size, data); + uint16_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; + void * target = (void *)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + uint8_t *source = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < dynamic_keymap_eeprom_size) { + eeprom_update_byte(target, *source); + } + source++; + target++; + } } uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { @@ -103,38 +216,42 @@ uint8_t dynamic_keymap_macro_get_count(void) { } uint16_t dynamic_keymap_macro_get_buffer_size(void) { - return (uint16_t)nvm_dynamic_keymap_macro_size(); + return DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; } void dynamic_keymap_macro_get_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - nvm_dynamic_keymap_macro_read_buffer(offset, size, data); + void * source = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + uint8_t *target = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { + *target = eeprom_read_byte(source); + } else { + *target = 0x00; + } + source++; + target++; + } } void dynamic_keymap_macro_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - nvm_dynamic_keymap_macro_update_buffer(offset, size, data); -} - -static uint8_t dynamic_keymap_read_byte(uint32_t offset) { - uint8_t d; - nvm_dynamic_keymap_macro_read_buffer(offset, 1, &d); - return d; -} - -typedef struct send_string_nvm_state_t { - uint32_t offset; -} send_string_nvm_state_t; - -char send_string_get_next_nvm(void *arg) { - send_string_nvm_state_t *state = (send_string_nvm_state_t *)arg; - char ret = dynamic_keymap_read_byte(state->offset); - state->offset++; - return ret; + void * target = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + uint8_t *source = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { + eeprom_update_byte(target, *source); + } + source++; + target++; + } } void dynamic_keymap_macro_reset(void) { - // Erase the macros, if necessary. - nvm_dynamic_keymap_macro_erase(); - nvm_dynamic_keymap_macro_reset(); + void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); + void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); + while (p != end) { + eeprom_update_byte(p, 0); + ++p; + } } void dynamic_keymap_macro_send(uint8_t id) { @@ -146,26 +263,78 @@ void dynamic_keymap_macro_send(uint8_t id) { // If it's not zero, then we are in the middle // of buffer writing, possibly an aborted buffer // write. So do nothing. - if (dynamic_keymap_read_byte(nvm_dynamic_keymap_macro_size() - 1) != 0) { + void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE - 1); + if (eeprom_read_byte(p) != 0) { return; } // Skip N null characters // p will then point to the Nth macro - uint32_t offset = 0; - uint32_t end = nvm_dynamic_keymap_macro_size(); + p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); + void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); while (id > 0) { // If we are past the end of the buffer, then there is // no Nth macro in the buffer. - if (offset == end) { + if (p == end) { return; } - if (dynamic_keymap_read_byte(offset) == 0) { + if (eeprom_read_byte(p) == 0) { --id; } - ++offset; + ++p; } - send_string_nvm_state_t state = {.offset = offset}; - send_string_with_delay_impl(send_string_get_next_nvm, &state, DYNAMIC_KEYMAP_MACRO_DELAY); + // Send the macro string by making a temporary string. + char data[8] = {0}; + // We already checked there was a null at the end of + // the buffer, so this cannot go past the end + while (1) { + data[0] = eeprom_read_byte(p++); + data[1] = 0; + // Stop at the null terminator of this macro string + if (data[0] == 0) { + break; + } + if (data[0] == SS_QMK_PREFIX) { + // Get the code + data[1] = eeprom_read_byte(p++); + // Unexpected null, abort. + if (data[1] == 0) { + return; + } + if (data[1] == SS_TAP_CODE || data[1] == SS_DOWN_CODE || data[1] == SS_UP_CODE) { + // Get the keycode + data[2] = eeprom_read_byte(p++); + // Unexpected null, abort. + if (data[2] == 0) { + return; + } + // Null terminate + data[3] = 0; + } else if (data[1] == SS_DELAY_CODE) { + // Get the number and '|' + // At most this is 4 digits plus '|' + uint8_t i = 2; + while (1) { + data[i] = eeprom_read_byte(p++); + // Unexpected null, abort + if (data[i] == 0) { + return; + } + // Found '|', send it + if (data[i] == '|') { + data[i + 1] = 0; + break; + } + // If haven't found '|' by i==6 then + // number too big, abort + if (i == 6) { + return; + } + ++i; + } + } + } + send_string_with_delay(data, DYNAMIC_KEYMAP_MACRO_DELAY); + } } diff --git a/quantum/dynamic_keymap.h b/quantum/dynamic_keymap.h index f1d8077b12..806342efa3 100644 --- a/quantum/dynamic_keymap.h +++ b/quantum/dynamic_keymap.h @@ -18,15 +18,8 @@ #include #include -#ifndef DYNAMIC_KEYMAP_LAYER_COUNT -# define DYNAMIC_KEYMAP_LAYER_COUNT 4 -#endif - -#ifndef DYNAMIC_KEYMAP_MACRO_COUNT -# define DYNAMIC_KEYMAP_MACRO_COUNT 16 -#endif - uint8_t dynamic_keymap_get_layer_count(void); +void * dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column); uint16_t dynamic_keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t column); void dynamic_keymap_set_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode); #ifdef ENCODER_MAP_ENABLE diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index f14e6ddf97..ffbbf43a95 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -1,359 +1,340 @@ #include #include #include -#include "debug.h" +#include "eeprom.h" #include "eeconfig.h" #include "action_layer.h" -#include "nvm_eeconfig.h" -#include "keycode_config.h" -#ifdef BACKLIGHT_ENABLE -# include "backlight.h" -#endif // BACKLIGHT_ENABLE +#if defined(EEPROM_DRIVER) +# include "eeprom_driver.h" +#endif -#ifdef AUDIO_ENABLE -# include "audio.h" -#endif // AUDIO_ENABLE - -#ifdef RGBLIGHT_ENABLE -# include "rgblight.h" -#endif // RGBLIGHT_ENABLE - -#ifdef RGB_MATRIX_ENABLE -# include "rgb_matrix_types.h" -#endif // RGB_MATRIX_ENABLE - -#ifdef LED_MATRIX_ENABLE -# include "led_matrix_types.h" -#endif // LED_MATRIX_ENABLE - -#ifdef UNICODE_COMMON_ENABLE -# include "unicode.h" -#endif // UNICODE_COMMON_ENABLE - -#ifdef HAPTIC_ENABLE +#if defined(HAPTIC_ENABLE) # include "haptic.h" -#endif // HAPTIC_ENABLE +#endif -#ifdef CONNECTION_ENABLE -# include "connection.h" -#endif // CONNECTION_ENABLE - -#ifdef VIA_ENABLE +#if defined(VIA_ENABLE) bool via_eeprom_is_valid(void); void via_eeprom_set_valid(bool valid); void eeconfig_init_via(void); -#else -void dynamic_keymap_reset(void); -#endif // VIA_ENABLE - -#ifndef NKRO_DEFAULT_ON -# define NKRO_DEFAULT_ON false #endif +_Static_assert((intptr_t)EECONFIG_HANDEDNESS == 14, "EEPROM handedness offset is incorrect"); + +/** \brief eeconfig enable + * + * FIXME: needs doc + */ __attribute__((weak)) void eeconfig_init_user(void) { #if (EECONFIG_USER_DATA_SIZE) == 0 // Reset user EEPROM value to blank, rather than to a set value eeconfig_update_user(0); -#endif // (EECONFIG_USER_DATA_SIZE) == 0 +#endif } __attribute__((weak)) void eeconfig_init_kb(void) { #if (EECONFIG_KB_DATA_SIZE) == 0 // Reset Keyboard EEPROM value to blank, rather than to a set value eeconfig_update_kb(0); -#endif // (EECONFIG_KB_DATA_SIZE) == 0 +#endif eeconfig_init_user(); } +/* + * FIXME: needs doc + */ void eeconfig_init_quantum(void) { - nvm_eeconfig_erase(); - - eeconfig_enable(); - - debug_config_t debug_config = {0}; - eeconfig_update_debug(&debug_config); - - default_layer_state = (layer_state_t)1 << 0; - eeconfig_update_default_layer(default_layer_state); - - keymap_config_t keymap_config = { - .swap_control_capslock = false, - .capslock_to_control = false, - .swap_lalt_lgui = false, - .swap_ralt_rgui = false, - .no_gui = false, - .swap_grave_esc = false, - .swap_backslash_backspace = false, - .nkro = NKRO_DEFAULT_ON, - .swap_lctl_lgui = false, - .swap_rctl_rgui = false, - .oneshot_enable = true, // Enable oneshot by default - .swap_escape_capslock = false, - .autocorrect_enable = true, // Enable autocorrect by default - }; - eeconfig_update_keymap(&keymap_config); - -#ifdef BACKLIGHT_ENABLE - backlight_config_t backlight_config = {0}; - eeconfig_update_backlight(&backlight_config); -#endif // BACKLIGHT_ENABLE - -#ifdef AUDIO_ENABLE - audio_config_t audio_config = {0}; - eeconfig_update_audio(&audio_config); -#endif // AUDIO_ENABLE - -#ifdef RGBLIGHT_ENABLE - extern void eeconfig_update_rgblight_default(void); - eeconfig_update_rgblight_default(); -#endif // RGBLIGHT_ENABLE - -#ifdef UNICODE_COMMON_ENABLE - unicode_config_t unicode_config = {0}; - eeconfig_update_unicode_mode(&unicode_config); -#endif // UNICODE_COMMON_ENABLE - -#ifdef STENO_ENABLE - eeconfig_update_steno_mode(0); -#endif // STENO_ENABLE - -#ifdef RGB_MATRIX_ENABLE - extern void eeconfig_update_rgb_matrix_default(void); - eeconfig_update_rgb_matrix_default(); +#if defined(EEPROM_DRIVER) + eeprom_driver_format(false); #endif -#ifdef LED_MATRIX_ENABLE - extern void eeconfig_update_led_matrix_default(void); - eeconfig_update_led_matrix_default(); -#endif // LED_MATRIX_ENABLE - -#ifdef HAPTIC_ENABLE - haptic_config_t haptic_config = {0}; - eeconfig_update_haptic(&haptic_config); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_byte(EECONFIG_DEBUG, 0); + default_layer_state = (layer_state_t)1 << 0; + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, default_layer_state); + // Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000 + eeprom_update_word(EECONFIG_KEYMAP, 0x1400); + eeprom_update_byte(EECONFIG_BACKLIGHT, 0); + eeprom_update_byte(EECONFIG_AUDIO, 0); + eeprom_update_dword(EECONFIG_RGBLIGHT, 0); + eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0); + eeprom_update_byte(EECONFIG_UNICODEMODE, 0); + eeprom_update_byte(EECONFIG_STENOMODE, 0); + eeprom_write_qword(EECONFIG_RGB_MATRIX, 0); + eeprom_update_dword(EECONFIG_HAPTIC, 0); +#if defined(HAPTIC_ENABLE) haptic_reset(); -#endif // HAPTIC_ENABLE - -#ifdef CONNECTION_ENABLE - extern void eeconfig_update_connection_default(void); - eeconfig_update_connection_default(); -#endif // CONNECTION_ENABLE +#endif #if (EECONFIG_KB_DATA_SIZE) > 0 eeconfig_init_kb_datablock(); -#endif // (EECONFIG_KB_DATA_SIZE) > 0 +#endif #if (EECONFIG_USER_DATA_SIZE) > 0 eeconfig_init_user_datablock(); -#endif // (EECONFIG_USER_DATA_SIZE) > 0 +#endif #if defined(VIA_ENABLE) // Invalidate VIA eeprom config, and then reset. - // Just in case if power is lost mid init, this makes sure that it gets + // Just in case if power is lost mid init, this makes sure that it pets // properly re-initialized. + via_eeprom_set_valid(false); eeconfig_init_via(); -#elif defined(DYNAMIC_KEYMAP_ENABLE) - dynamic_keymap_reset(); #endif eeconfig_init_kb(); - -#ifdef RGB_MATRIX_ENABLE - extern void eeconfig_force_flush_rgb_matrix(void); - eeconfig_force_flush_rgb_matrix(); -#endif // RGB_MATRIX_ENABLE -#ifdef LED_MATRIX_ENABLE - extern void eeconfig_force_flush_led_matrix(void); - eeconfig_force_flush_led_matrix(); -#endif // LED_MATRIX_ENABLE } +/** \brief eeconfig initialization + * + * FIXME: needs doc + */ void eeconfig_init(void) { eeconfig_init_quantum(); } +/** \brief eeconfig enable + * + * FIXME: needs doc + */ void eeconfig_enable(void) { - nvm_eeconfig_enable(); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); } +/** \brief eeconfig disable + * + * FIXME: needs doc + */ void eeconfig_disable(void) { - nvm_eeconfig_disable(); +#if defined(EEPROM_DRIVER) + eeprom_driver_format(false); +#endif + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); } +/** \brief eeconfig is enabled + * + * FIXME: needs doc + */ bool eeconfig_is_enabled(void) { - bool is_eeprom_enabled = nvm_eeconfig_is_enabled(); + bool is_eeprom_enabled = (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); #ifdef VIA_ENABLE if (is_eeprom_enabled) { is_eeprom_enabled = via_eeprom_is_valid(); } -#endif // VIA_ENABLE +#endif return is_eeprom_enabled; } +/** \brief eeconfig is disabled + * + * FIXME: needs doc + */ bool eeconfig_is_disabled(void) { - bool is_eeprom_disabled = nvm_eeconfig_is_disabled(); + bool is_eeprom_disabled = (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF); #ifdef VIA_ENABLE if (!is_eeprom_disabled) { is_eeprom_disabled = !via_eeprom_is_valid(); } -#endif // VIA_ENABLE +#endif return is_eeprom_disabled; } -void eeconfig_read_debug(debug_config_t *debug_config) { - nvm_eeconfig_read_debug(debug_config); +/** \brief eeconfig read debug + * + * FIXME: needs doc + */ +uint8_t eeconfig_read_debug(void) { + return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_update_debug(const debug_config_t *debug_config) { - nvm_eeconfig_update_debug(debug_config); +/** \brief eeconfig update debug + * + * FIXME: needs doc + */ +void eeconfig_update_debug(uint8_t val) { + eeprom_update_byte(EECONFIG_DEBUG, val); } -layer_state_t eeconfig_read_default_layer(void) { - return nvm_eeconfig_read_default_layer(); +/** \brief eeconfig read default layer + * + * FIXME: needs doc + */ +uint8_t eeconfig_read_default_layer(void) { + return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } -void eeconfig_update_default_layer(layer_state_t state) { - nvm_eeconfig_update_default_layer(state); +/** \brief eeconfig update default layer + * + * FIXME: needs doc + */ +void eeconfig_update_default_layer(uint8_t val) { + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } -void eeconfig_read_keymap(keymap_config_t *keymap_config) { - nvm_eeconfig_read_keymap(keymap_config); +/** \brief eeconfig read keymap + * + * FIXME: needs doc + */ +uint16_t eeconfig_read_keymap(void) { + return eeprom_read_word(EECONFIG_KEYMAP); } -void eeconfig_update_keymap(const keymap_config_t *keymap_config) { - nvm_eeconfig_update_keymap(keymap_config); +/** \brief eeconfig update keymap + * + * FIXME: needs doc + */ +void eeconfig_update_keymap(uint16_t val) { + eeprom_update_word(EECONFIG_KEYMAP, val); } -#ifdef AUDIO_ENABLE -void eeconfig_read_audio(audio_config_t *audio_config) { - nvm_eeconfig_read_audio(audio_config); +/** \brief eeconfig read audio + * + * FIXME: needs doc + */ +uint8_t eeconfig_read_audio(void) { + return eeprom_read_byte(EECONFIG_AUDIO); } -void eeconfig_update_audio(const audio_config_t *audio_config) { - nvm_eeconfig_update_audio(audio_config); +/** \brief eeconfig update audio + * + * FIXME: needs doc + */ +void eeconfig_update_audio(uint8_t val) { + eeprom_update_byte(EECONFIG_AUDIO, val); } -#endif // AUDIO_ENABLE - -#ifdef UNICODE_COMMON_ENABLE -void eeconfig_read_unicode_mode(unicode_config_t *unicode_config) { - return nvm_eeconfig_read_unicode_mode(unicode_config); -} -void eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) { - nvm_eeconfig_update_unicode_mode(unicode_config); -} -#endif // UNICODE_COMMON_ENABLE - -#ifdef BACKLIGHT_ENABLE -void eeconfig_read_backlight(backlight_config_t *backlight_config) { - nvm_eeconfig_read_backlight(backlight_config); -} -void eeconfig_update_backlight(const backlight_config_t *backlight_config) { - nvm_eeconfig_update_backlight(backlight_config); -} -#endif // BACKLIGHT_ENABLE - -#ifdef STENO_ENABLE -uint8_t eeconfig_read_steno_mode(void) { - return nvm_eeconfig_read_steno_mode(); -} -void eeconfig_update_steno_mode(uint8_t val) { - nvm_eeconfig_update_steno_mode(val); -} -#endif // STENO_ENABLE - -#ifdef RGB_MATRIX_ENABLE -void eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) { - nvm_eeconfig_read_rgb_matrix(rgb_matrix_config); -} -void eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) { - nvm_eeconfig_update_rgb_matrix(rgb_matrix_config); -} -#endif // RGB_MATRIX_ENABLE - -#ifdef LED_MATRIX_ENABLE -void eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) { - nvm_eeconfig_read_led_matrix(led_matrix_config); -} -void eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) { - nvm_eeconfig_update_led_matrix(led_matrix_config); -} -#endif // LED_MATRIX_ENABLE - -#ifdef RGBLIGHT_ENABLE -void eeconfig_read_rgblight(rgblight_config_t *rgblight_config) { - nvm_eeconfig_read_rgblight(rgblight_config); -} -void eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) { - nvm_eeconfig_update_rgblight(rgblight_config); -} -#endif // RGBLIGHT_ENABLE #if (EECONFIG_KB_DATA_SIZE) == 0 +/** \brief eeconfig read kb + * + * FIXME: needs doc + */ uint32_t eeconfig_read_kb(void) { - return nvm_eeconfig_read_kb(); + return eeprom_read_dword(EECONFIG_KEYBOARD); } +/** \brief eeconfig update kb + * + * FIXME: needs doc + */ void eeconfig_update_kb(uint32_t val) { - nvm_eeconfig_update_kb(val); + eeprom_update_dword(EECONFIG_KEYBOARD, val); } #endif // (EECONFIG_KB_DATA_SIZE) == 0 #if (EECONFIG_USER_DATA_SIZE) == 0 +/** \brief eeconfig read user + * + * FIXME: needs doc + */ uint32_t eeconfig_read_user(void) { - return nvm_eeconfig_read_user(); + return eeprom_read_dword(EECONFIG_USER); } +/** \brief eeconfig update user + * + * FIXME: needs doc + */ void eeconfig_update_user(uint32_t val) { - nvm_eeconfig_update_user(val); + eeprom_update_dword(EECONFIG_USER, val); } #endif // (EECONFIG_USER_DATA_SIZE) == 0 -#ifdef HAPTIC_ENABLE -void eeconfig_read_haptic(haptic_config_t *haptic_config) { - nvm_eeconfig_read_haptic(haptic_config); +/** \brief eeconfig read haptic + * + * FIXME: needs doc + */ +uint32_t eeconfig_read_haptic(void) { + return eeprom_read_dword(EECONFIG_HAPTIC); } -void eeconfig_update_haptic(const haptic_config_t *haptic_config) { - nvm_eeconfig_update_haptic(haptic_config); +/** \brief eeconfig update haptic + * + * FIXME: needs doc + */ +void eeconfig_update_haptic(uint32_t val) { + eeprom_update_dword(EECONFIG_HAPTIC, val); } -#endif // HAPTIC_ENABLE - -#ifdef CONNECTION_ENABLE -void eeconfig_read_connection(connection_config_t *config) { - nvm_eeconfig_read_connection(config); -} -void eeconfig_update_connection(const connection_config_t *config) { - nvm_eeconfig_update_connection(config); -} -#endif // CONNECTION_ENABLE +/** \brief eeconfig read split handedness + * + * FIXME: needs doc + */ bool eeconfig_read_handedness(void) { - return nvm_eeconfig_read_handedness(); + return !!eeprom_read_byte(EECONFIG_HANDEDNESS); } +/** \brief eeconfig update split handedness + * + * FIXME: needs doc + */ void eeconfig_update_handedness(bool val) { - nvm_eeconfig_update_handedness(val); + eeprom_update_byte(EECONFIG_HANDEDNESS, !!val); } #if (EECONFIG_KB_DATA_SIZE) > 0 +/** \brief eeconfig assert keyboard data block version + * + * FIXME: needs doc + */ bool eeconfig_is_kb_datablock_valid(void) { - return nvm_eeconfig_is_kb_datablock_valid(); + return eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION); } -uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) { - return nvm_eeconfig_read_kb_datablock(data, offset, length); +/** \brief eeconfig read keyboard data block + * + * FIXME: needs doc + */ +void eeconfig_read_kb_datablock(void *data) { + if (eeconfig_is_kb_datablock_valid()) { + eeprom_read_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); + } else { + memset(data, 0, (EECONFIG_KB_DATA_SIZE)); + } } -uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) { - return nvm_eeconfig_update_kb_datablock(data, offset, length); +/** \brief eeconfig update keyboard data block + * + * FIXME: needs doc + */ +void eeconfig_update_kb_datablock(const void *data) { + eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); + eeprom_update_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); } +/** \brief eeconfig init keyboard data block + * + * FIXME: needs doc + */ __attribute__((weak)) void eeconfig_init_kb_datablock(void) { - nvm_eeconfig_init_kb_datablock(); + uint8_t dummy_kb[(EECONFIG_KB_DATA_SIZE)] = {0}; + eeconfig_update_kb_datablock(dummy_kb); } #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 +/** \brief eeconfig assert user data block version + * + * FIXME: needs doc + */ bool eeconfig_is_user_datablock_valid(void) { - return nvm_eeconfig_is_user_datablock_valid(); + return eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION); } -uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) { - return nvm_eeconfig_read_user_datablock(data, offset, length); +/** \brief eeconfig read user data block + * + * FIXME: needs doc + */ +void eeconfig_read_user_datablock(void *data) { + if (eeconfig_is_user_datablock_valid()) { + eeprom_read_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); + } else { + memset(data, 0, (EECONFIG_USER_DATA_SIZE)); + } } -uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) { - return nvm_eeconfig_update_user_datablock(data, offset, length); +/** \brief eeconfig update user data block + * + * FIXME: needs doc + */ +void eeconfig_update_user_datablock(const void *data) { + eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); + eeprom_update_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); } +/** \brief eeconfig init user data block + * + * FIXME: needs doc + */ __attribute__((weak)) void eeconfig_init_user_datablock(void) { - nvm_eeconfig_init_user_datablock(); + uint8_t dummy_user[(EECONFIG_USER_DATA_SIZE)] = {0}; + eeconfig_update_user_datablock(dummy_user); } #endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 66f8934a99..fa0dd799d1 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -19,8 +19,57 @@ along with this program. If not, see . #include #include -#include // offsetof -#include "action_layer.h" // layer_state_t +#include // offsetof +#include "eeprom.h" +#include "util.h" + +#ifndef EECONFIG_MAGIC_NUMBER +# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE5 // When changing, decrement this value to avoid future re-init issues +#endif +#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF + +// Dummy struct only used to calculate offsets +typedef struct PACKED { + uint16_t magic; + uint8_t debug; + uint8_t default_layer; + uint16_t keymap; + uint8_t backlight; + uint8_t audio; + uint32_t rgblight; + uint8_t unicode; + uint8_t steno; + uint8_t handedness; + uint32_t keyboard; + uint32_t user; + union { // Mutually exclusive + uint32_t led_matrix; + uint64_t rgb_matrix; + }; + uint32_t haptic; + uint8_t rgblight_ext; +} eeprom_core_t; + +/* EEPROM parameter address */ +#define EECONFIG_MAGIC (uint16_t *)(offsetof(eeprom_core_t, magic)) +#define EECONFIG_DEBUG (uint8_t *)(offsetof(eeprom_core_t, debug)) +#define EECONFIG_DEFAULT_LAYER (uint8_t *)(offsetof(eeprom_core_t, default_layer)) +#define EECONFIG_KEYMAP (uint16_t *)(offsetof(eeprom_core_t, keymap)) +#define EECONFIG_BACKLIGHT (uint8_t *)(offsetof(eeprom_core_t, backlight)) +#define EECONFIG_AUDIO (uint8_t *)(offsetof(eeprom_core_t, audio)) +#define EECONFIG_RGBLIGHT (uint32_t *)(offsetof(eeprom_core_t, rgblight)) +#define EECONFIG_UNICODEMODE (uint8_t *)(offsetof(eeprom_core_t, unicode)) +#define EECONFIG_STENOMODE (uint8_t *)(offsetof(eeprom_core_t, steno)) +#define EECONFIG_HANDEDNESS (uint8_t *)(offsetof(eeprom_core_t, handedness)) +#define EECONFIG_KEYBOARD (uint32_t *)(offsetof(eeprom_core_t, keyboard)) +#define EECONFIG_USER (uint32_t *)(offsetof(eeprom_core_t, user)) +#define EECONFIG_LED_MATRIX (uint32_t *)(offsetof(eeprom_core_t, led_matrix)) +#define EECONFIG_RGB_MATRIX (uint64_t *)(offsetof(eeprom_core_t, rgb_matrix)) +#define EECONFIG_HAPTIC (uint32_t *)(offsetof(eeprom_core_t, haptic)) +#define EECONFIG_RGBLIGHT_EXTENDED (uint8_t *)(offsetof(eeprom_core_t, rgblight_ext)) + +// Size of EEPROM being used for core data storage +#define EECONFIG_BASE_SIZE ((uint8_t)sizeof(eeprom_core_t)) // Size of EEPROM dedicated to keyboard- and user-specific data #ifndef EECONFIG_KB_DATA_SIZE @@ -36,6 +85,12 @@ along with this program. If not, see . # define EECONFIG_USER_DATA_VERSION (EECONFIG_USER_DATA_SIZE) #endif +#define EECONFIG_KB_DATABLOCK ((uint8_t *)(EECONFIG_BASE_SIZE)) +#define EECONFIG_USER_DATABLOCK ((uint8_t *)((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE))) + +// Size of EEPROM being used, other code can refer to this for available EEPROM +#define EECONFIG_SIZE ((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE) + (EECONFIG_USER_DATA_SIZE)) + /* debug bit */ #define EECONFIG_DEBUG_ENABLE (1 << 0) #define EECONFIG_DEBUG_MATRIX (1 << 1) @@ -61,59 +116,22 @@ void eeconfig_init_kb(void); void eeconfig_init_user(void); void eeconfig_enable(void); + void eeconfig_disable(void); -typedef union debug_config_t debug_config_t; -void eeconfig_read_debug(debug_config_t *debug_config) __attribute__((nonnull)); -void eeconfig_update_debug(const debug_config_t *debug_config) __attribute__((nonnull)); +uint8_t eeconfig_read_debug(void); +void eeconfig_update_debug(uint8_t val); -layer_state_t eeconfig_read_default_layer(void); -void eeconfig_update_default_layer(layer_state_t state); +uint8_t eeconfig_read_default_layer(void); +void eeconfig_update_default_layer(uint8_t val); -typedef union keymap_config_t keymap_config_t; -void eeconfig_read_keymap(keymap_config_t *keymap_config) __attribute__((nonnull)); -void eeconfig_update_keymap(const keymap_config_t *keymap_config) __attribute__((nonnull)); +uint16_t eeconfig_read_keymap(void); +void eeconfig_update_keymap(uint16_t val); #ifdef AUDIO_ENABLE -typedef union audio_config_t audio_config_t; -void eeconfig_read_audio(audio_config_t *audio_config) __attribute__((nonnull)); -void eeconfig_update_audio(const audio_config_t *audio_config) __attribute__((nonnull)); -#endif // AUDIO_ENABLE - -#ifdef UNICODE_COMMON_ENABLE -typedef union unicode_config_t unicode_config_t; -void eeconfig_read_unicode_mode(unicode_config_t *unicode_config) __attribute__((nonnull)); -void eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) __attribute__((nonnull)); -#endif // UNICODE_COMMON_ENABLE - -#ifdef BACKLIGHT_ENABLE -typedef union backlight_config_t backlight_config_t; -void eeconfig_read_backlight(backlight_config_t *backlight_config) __attribute__((nonnull)); -void eeconfig_update_backlight(const backlight_config_t *backlight_config) __attribute__((nonnull)); -#endif // BACKLIGHT_ENABLE - -#ifdef STENO_ENABLE -uint8_t eeconfig_read_steno_mode(void); -void eeconfig_update_steno_mode(uint8_t val); -#endif // STENO_ENABLE - -#ifdef RGB_MATRIX_ENABLE -typedef union rgb_config_t rgb_config_t; -void eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) __attribute__((nonnull)); -void eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) __attribute__((nonnull)); -#endif // RGB_MATRIX_ENABLE - -#ifdef LED_MATRIX_ENABLE -typedef union led_eeconfig_t led_eeconfig_t; -void eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) __attribute__((nonnull)); -void eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) __attribute__((nonnull)); -#endif // LED_MATRIX_ENABLE - -#ifdef RGBLIGHT_ENABLE -typedef union rgblight_config_t rgblight_config_t; -void eeconfig_read_rgblight(rgblight_config_t *rgblight_config) __attribute__((nonnull)); -void eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) __attribute__((nonnull)); -#endif // RGBLIGHT_ENABLE +uint8_t eeconfig_read_audio(void); +void eeconfig_update_audio(uint8_t val); +#endif #if (EECONFIG_KB_DATA_SIZE) == 0 uint32_t eeconfig_read_kb(void); @@ -126,42 +144,31 @@ void eeconfig_update_user(uint32_t val); #endif // (EECONFIG_USER_DATA_SIZE) == 0 #ifdef HAPTIC_ENABLE -typedef union haptic_config_t haptic_config_t; -void eeconfig_read_haptic(haptic_config_t *haptic_config) __attribute__((nonnull)); -void eeconfig_update_haptic(const haptic_config_t *haptic_config) __attribute__((nonnull)); -#endif - -#ifdef CONNECTION_ENABLE -typedef union connection_config_t connection_config_t; -void eeconfig_read_connection(connection_config_t *config); -void eeconfig_update_connection(const connection_config_t *config); +uint32_t eeconfig_read_haptic(void); +void eeconfig_update_haptic(uint32_t val); #endif bool eeconfig_read_handedness(void); void eeconfig_update_handedness(bool val); #if (EECONFIG_KB_DATA_SIZE) > 0 -bool eeconfig_is_kb_datablock_valid(void); -uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); -uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); -void eeconfig_init_kb_datablock(void); -# define eeconfig_read_kb_datablock_field(__object, __field) eeconfig_read_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) -# define eeconfig_update_kb_datablock_field(__object, __field) eeconfig_update_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +bool eeconfig_is_kb_datablock_valid(void); +void eeconfig_read_kb_datablock(void *data); +void eeconfig_update_kb_datablock(const void *data); +void eeconfig_init_kb_datablock(void); #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 -bool eeconfig_is_user_datablock_valid(void); -uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); -uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); -void eeconfig_init_user_datablock(void); -# define eeconfig_read_user_datablock_field(__object, __field) eeconfig_read_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) -# define eeconfig_update_user_datablock_field(__object, __field) eeconfig_update_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +bool eeconfig_is_user_datablock_valid(void); +void eeconfig_read_user_datablock(void *data); +void eeconfig_update_user_datablock(const void *data); +void eeconfig_init_user_datablock(void); #endif // (EECONFIG_USER_DATA_SIZE) > 0 // Any "checked" debounce variant used requires implementation of: // -- bool eeconfig_check_valid_##name(void) // -- void eeconfig_post_flush_##name(void) -#define EECONFIG_DEBOUNCE_HELPER_CHECKED(name, config) \ +#define EECONFIG_DEBOUNCE_HELPER_CHECKED(name, offset, config) \ static uint8_t dirty_##name = false; \ \ bool eeconfig_check_valid_##name(void); \ @@ -170,13 +177,13 @@ void eeconfig_init_user_datablock(void); static inline void eeconfig_init_##name(void) { \ dirty_##name = true; \ if (eeconfig_check_valid_##name()) { \ - eeconfig_read_##name(&config); \ + eeprom_read_block(&config, offset, sizeof(config)); \ dirty_##name = false; \ } \ } \ static inline void eeconfig_flush_##name(bool force) { \ if (force || dirty_##name) { \ - eeconfig_update_##name(&config); \ + eeprom_update_block(&config, offset, sizeof(config)); \ eeconfig_post_flush_##name(); \ dirty_##name = false; \ } \ @@ -198,10 +205,10 @@ void eeconfig_init_user_datablock(void); } \ } -#define EECONFIG_DEBOUNCE_HELPER(name, config) \ - EECONFIG_DEBOUNCE_HELPER_CHECKED(name, config) \ - \ - bool eeconfig_check_valid_##name(void) { \ - return true; \ - } \ +#define EECONFIG_DEBOUNCE_HELPER(name, offset, config) \ + EECONFIG_DEBOUNCE_HELPER_CHECKED(name, offset, config) \ + \ + bool eeconfig_check_valid_##name(void) { \ + return true; \ + } \ void eeconfig_post_flush_##name(void) {} diff --git a/quantum/haptic.c b/quantum/haptic.c index 8a743480ff..6a466293a7 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -36,7 +36,7 @@ extern uint8_t split_haptic_play; haptic_config_t haptic_config; static void update_haptic_enable_gpios(void) { - if (haptic_config.enable && ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state_get_configure_state() == USB_DEVICE_STATE_CONFIGURED))) { + if (haptic_config.enable && ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED))) { #if defined(HAPTIC_ENABLE_PIN) HAPTIC_ENABLE_PIN_WRITE_ACTIVE(); #endif @@ -67,7 +67,7 @@ void haptic_init(void) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - eeconfig_read_haptic(&haptic_config); + haptic_config.raw = eeconfig_read_haptic(); #ifdef HAPTIC_SOLENOID solenoid_set_dwell(haptic_config.dwell); #endif @@ -122,13 +122,13 @@ void eeconfig_debug_haptic(void) { void haptic_enable(void) { set_haptic_config_enable(true); dprintf("haptic_config.enable = %u\n", haptic_config.enable); - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); } void haptic_disable(void) { set_haptic_config_enable(false); dprintf("haptic_config.enable = %u\n", haptic_config.enable); - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); } void haptic_toggle(void) { @@ -137,14 +137,14 @@ void haptic_toggle(void) { } else { haptic_enable(); } - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); } void haptic_feedback_toggle(void) { haptic_config.feedback++; if (haptic_config.feedback >= HAPTIC_FEEDBACK_MAX) haptic_config.feedback = KEY_PRESS; dprintf("haptic_config.feedback = %u\n", !haptic_config.feedback); - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); } void haptic_buzz_toggle(void) { @@ -225,26 +225,26 @@ void haptic_reset(void) { haptic_config.dwell = 0; haptic_config.buzz = 0; #endif - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_feedback(uint8_t feedback) { haptic_config.feedback = feedback; - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); } void haptic_set_mode(uint8_t mode) { haptic_config.mode = mode; - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_amplitude(uint8_t amp) { haptic_config.amplitude = amp; - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.amplitude = %u\n", haptic_config.amplitude); #ifdef HAPTIC_DRV2605L drv2605l_amplitude(amp); @@ -253,13 +253,13 @@ void haptic_set_amplitude(uint8_t amp) { void haptic_set_buzz(uint8_t buzz) { haptic_config.buzz = buzz; - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.buzz = %u\n", haptic_config.buzz); } void haptic_set_dwell(uint8_t dwell) { haptic_config.dwell = dwell; - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); dprintf("haptic_config.dwell = %u\n", haptic_config.dwell); } @@ -291,7 +291,7 @@ uint8_t haptic_get_dwell(void) { void haptic_enable_continuous(void) { haptic_config.cont = 1; dprintf("haptic_config.cont = %u\n", haptic_config.cont); - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); #ifdef HAPTIC_DRV2605L drv2605l_rtp_init(); #endif @@ -300,7 +300,7 @@ void haptic_enable_continuous(void) { void haptic_disable_continuous(void) { haptic_config.cont = 0; dprintf("haptic_config.cont = %u\n", haptic_config.cont); - eeconfig_update_haptic(&haptic_config); + eeconfig_update_haptic(haptic_config.raw); #ifdef HAPTIC_DRV2605L drv2605l_write(DRV2605L_REG_MODE, 0x00); #endif diff --git a/quantum/haptic.h b/quantum/haptic.h index f854c75ec3..b283d5d268 100644 --- a/quantum/haptic.h +++ b/quantum/haptic.h @@ -20,8 +20,6 @@ #include #include -#include "compiler_support.h" - #ifndef HAPTIC_DEFAULT_FEEDBACK # define HAPTIC_DEFAULT_FEEDBACK 0 #endif @@ -30,7 +28,7 @@ #endif /* EEPROM config settings */ -typedef union haptic_config_t { +typedef union { uint32_t raw; struct { bool enable : 1; @@ -44,7 +42,7 @@ typedef union haptic_config_t { }; } haptic_config_t; -STATIC_ASSERT(sizeof(haptic_config_t) == sizeof(uint32_t), "Haptic EECONFIG out of spec."); +_Static_assert(sizeof(haptic_config_t) == sizeof(uint32_t), "Haptic EECONFIG out of spec."); typedef enum HAPTIC_FEEDBACK { KEY_PRESS, diff --git a/quantum/joystick.c b/quantum/joystick.c index 62893fd199..32f19b2cd9 100644 --- a/quantum/joystick.c +++ b/quantum/joystick.c @@ -29,9 +29,6 @@ joystick_t joystick_state = { 0 #endif }, -#ifdef JOYSTICK_HAS_HAT - .hat = -1, -#endif .dirty = false, }; @@ -148,13 +145,6 @@ void joystick_set_axis(uint8_t axis, int16_t value) { } } -#ifdef JOYSTICK_HAS_HAT -void joystick_set_hat(int8_t value) { - joystick_state.hat = value; - joystick_state.dirty = true; -} -#endif - void joystick_init(void) { joystick_init_axes(); } diff --git a/quantum/joystick.h b/quantum/joystick.h index 24f80c1ad6..5a69ceac64 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -52,16 +52,6 @@ #define JOYSTICK_MAX_VALUE ((1L << (JOYSTICK_AXIS_RESOLUTION - 1)) - 1) -#define JOYSTICK_HAT_CENTER -1 -#define JOYSTICK_HAT_NORTH 0 -#define JOYSTICK_HAT_NORTHEAST 1 -#define JOYSTICK_HAT_EAST 2 -#define JOYSTICK_HAT_SOUTHEAST 3 -#define JOYSTICK_HAT_SOUTH 4 -#define JOYSTICK_HAT_SOUTHWEST 5 -#define JOYSTICK_HAT_WEST 6 -#define JOYSTICK_HAT_NORTHWEST 7 - // configure on input_pin of the joystick_axes array entry to NO_PIN // to prevent it from being read from the ADC. This allows outputting forged axis value. #define JOYSTICK_AXIS_VIRTUAL \ @@ -83,10 +73,7 @@ extern joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT]; typedef struct { uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; int16_t axes[JOYSTICK_AXIS_COUNT]; -#ifdef JOYSTICK_HAS_HAT - int8_t hat; -#endif - bool dirty; + bool dirty; } joystick_t; extern joystick_t joystick_state; @@ -142,11 +129,4 @@ void joystick_read_axes(void); */ void joystick_set_axis(uint8_t axis, int16_t value); -/** - * \brief Set the position of the hat switch. - * - * \param value The hat switch position to set. - */ -void joystick_set_hat(int8_t value); - /** \} */ diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 173c696e2d..df1dc1c3ee 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -122,9 +122,6 @@ along with this program. If not, see . #ifdef SPLIT_KEYBOARD # include "split_util.h" #endif -#ifdef BATTERY_ENABLE -# include "battery.h" -#endif #ifdef BLUETOOTH_ENABLE # include "bluetooth.h" #endif @@ -143,12 +140,6 @@ along with this program. If not, see . #ifdef OS_DETECTION_ENABLE # include "os_detection.h" #endif -#ifdef LAYER_LOCK_ENABLE -# include "layer_lock.h" -#endif -#ifdef CONNECTION_ENABLE -# include "connection.h" -#endif static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { @@ -295,21 +286,6 @@ __attribute__((weak)) void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -/** \brief keyboard_pre_init_modules - * - * FIXME: needs doc - */ -__attribute__((weak)) void keyboard_pre_init_modules(void) {} - -/** \brief keyboard_pre_init_quantum - * - * FIXME: needs doc - */ -void keyboard_pre_init_quantum(void) { - keyboard_pre_init_modules(); - keyboard_pre_init_kb(); -} - /** \brief keyboard_post_init_user * * FIXME: needs doc @@ -326,23 +302,6 @@ __attribute__((weak)) void keyboard_post_init_kb(void) { keyboard_post_init_user(); } -/** \brief keyboard_post_init_modules - * - * FIXME: needs doc - */ - -__attribute__((weak)) void keyboard_post_init_modules(void) {} - -/** \brief keyboard_post_init_quantum - * - * FIXME: needs doc - */ - -void keyboard_post_init_quantum(void) { - keyboard_post_init_modules(); - keyboard_post_init_kb(); -} - /** \brief matrix_can_read * * Allows overriding when matrix scanning operations should be executed. @@ -361,7 +320,7 @@ void keyboard_setup(void) { eeprom_driver_init(); #endif matrix_setup(); - keyboard_pre_init_quantum(); + keyboard_pre_init_kb(); } #ifndef SPLIT_KEYBOARD @@ -393,13 +352,6 @@ __attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); } -/** \brief housekeeping_task_modules - * - * Codegen will override this if community modules are enabled. - * This is specific to keyboard-level functionality. - */ -__attribute__((weak)) void housekeeping_task_modules(void) {} - /** \brief housekeeping_task_kb * * Override this function if you have a need to execute code for every keyboard main loop iteration. @@ -419,7 +371,6 @@ __attribute__((weak)) void housekeeping_task_user(void) {} * Invokes hooks for executing code after QMK is done after each loop iteration. */ void housekeeping_task(void) { - housekeeping_task_modules(); housekeeping_task_kb(); housekeeping_task_user(); } @@ -435,8 +386,8 @@ void quantum_init(void) { } /* init globals */ - eeconfig_read_debug(&debug_config); - eeconfig_read_keymap(&keymap_config); + debug_config.raw = eeconfig_read_debug(); + keymap_config.raw = eeconfig_read_keymap(); #ifdef BOOTMAGIC_ENABLE bootmagic(); @@ -468,9 +419,6 @@ void keyboard_init(void) { #endif matrix_init(); quantum_init(); -#ifdef CONNECTION_ENABLE - connection_init(); -#endif led_init_ports(); #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -509,9 +457,8 @@ void keyboard_init(void) { steno_init(); #endif #if defined(NKRO_ENABLE) && defined(FORCE_NKRO) -# pragma message "FORCE_NKRO option is now deprecated - Please migrate to NKRO_DEFAULT_ON instead." keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); #endif #ifdef DIP_SWITCH_ENABLE dip_switch_init(); @@ -532,9 +479,6 @@ void keyboard_init(void) { // init after split init pointing_device_init(); #endif -#ifdef BATTERY_ENABLE - battery_init(); -#endif #ifdef BLUETOOTH_ENABLE bluetooth_init(); #endif @@ -546,7 +490,7 @@ void keyboard_init(void) { debug_enable = true; #endif - keyboard_post_init_quantum(); /* Always keep this last */ + keyboard_post_init_kb(); /* Always keep this last */ } /** \brief key_event_task @@ -648,8 +592,24 @@ void quantum_task(void) { if (!is_keyboard_master()) return; #endif -#ifdef AUDIO_ENABLE - audio_task(); +#if defined(AUDIO_ENABLE) && defined(AUDIO_INIT_DELAY) + // There are some tasks that need to be run a little bit + // after keyboard startup, or else they will not work correctly + // because of interaction with the USB device state, which + // may still be in flux... + // + // At the moment the only feature that needs this is the + // startup song. + static bool delayed_tasks_run = false; + static uint16_t delayed_task_timer = 0; + if (!delayed_tasks_run) { + if (!delayed_task_timer) { + delayed_task_timer = timer_read(); + } else if (timer_elapsed(delayed_task_timer) > 300) { + audio_startup(); + delayed_tasks_run = true; + } + } #endif #if defined(AUDIO_ENABLE) && !defined(NO_MUSIC_MODE) @@ -695,10 +655,6 @@ void quantum_task(void) { #ifdef SECURE_ENABLE secure_task(); #endif - -#ifdef LAYER_LOCK_ENABLE - layer_lock_task(); -#endif } /** \brief Main task that is repeatedly called as fast as possible. */ @@ -779,10 +735,6 @@ void keyboard_task(void) { joystick_task(); #endif -#ifdef BATTERY_ENABLE - battery_task(); -#endif - #ifdef BLUETOOTH_ENABLE bluetooth_task(); #endif diff --git a/quantum/keycode_config.h b/quantum/keycode_config.h index 804f1381d0..d1352c302e 100644 --- a/quantum/keycode_config.h +++ b/quantum/keycode_config.h @@ -16,7 +16,9 @@ #pragma once -#include "compiler_support.h" +#ifdef __cplusplus +# define _Static_assert static_assert +#endif #include "eeconfig.h" #include "keycode.h" @@ -26,7 +28,7 @@ uint16_t keycode_config(uint16_t keycode); uint8_t mod_config(uint8_t mod); /* NOTE: Not portable. Bit field order depends on implementation */ -typedef union keymap_config_t { +typedef union { uint16_t raw; struct { bool swap_control_capslock : 1; @@ -45,6 +47,6 @@ typedef union keymap_config_t { }; } keymap_config_t; -STATIC_ASSERT(sizeof(keymap_config_t) == sizeof(uint16_t), "Keycode (magic) EECONFIG out of spec."); +_Static_assert(sizeof(keymap_config_t) == sizeof(uint16_t), "Keycode (magic) EECONFIG out of spec."); extern keymap_config_t keymap_config; diff --git a/quantum/keycode_string.c b/quantum/keycode_string.c deleted file mode 100644 index 18044f2ef6..0000000000 --- a/quantum/keycode_string.c +++ /dev/null @@ -1,564 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keycode_string.h" - -#include -#include "bitwise.h" -#include "keycode.h" -#include "progmem.h" -#include "quantum_keycodes.h" -#include "util.h" - -typedef int_fast8_t index_t; - -// clang-format off -/** Packs a 7-char keycode name, ignoring the third char, as 3 words. */ -#define KEYCODE_NAME7(c0, c1, unused_c2, c3, c4, c5, c6) \ - ((uint16_t)c0) | (((uint16_t)c1) << 8), \ - ((uint16_t)c3) | (((uint16_t)c4) << 8), \ - ((uint16_t)c5) | (((uint16_t)c6) << 8) - -/** - * @brief Names of some common keycodes. - * - * Each (keycode, name) entry is stored flat in 8 bytes in PROGMEM. Names in - * this table must be at most 7 chars long and have an underscore '_' for the - * third char. This underscore is assumed and not actually stored. - * - * To save memory, feature-specific key entries are ifdef'd to include them only - * when their feature is enabled. - */ -static const uint16_t common_names[] PROGMEM = { - KC_TRNS, KEYCODE_NAME7('K', 'C', '_', 'T', 'R', 'N', 'S'), - KC_ENT , KEYCODE_NAME7('K', 'C', '_', 'E', 'N', 'T', 0 ), - KC_ESC , KEYCODE_NAME7('K', 'C', '_', 'E', 'S', 'C', 0 ), - KC_BSPC, KEYCODE_NAME7('K', 'C', '_', 'B', 'S', 'P', 'C'), - KC_TAB , KEYCODE_NAME7('K', 'C', '_', 'T', 'A', 'B', 0 ), - KC_SPC , KEYCODE_NAME7('K', 'C', '_', 'S', 'P', 'C', 0 ), - KC_MINS, KEYCODE_NAME7('K', 'C', '_', 'M', 'I', 'N', 'S'), - KC_EQL , KEYCODE_NAME7('K', 'C', '_', 'E', 'Q', 'L', 0 ), - KC_LBRC, KEYCODE_NAME7('K', 'C', '_', 'L', 'B', 'R', 'C'), - KC_RBRC, KEYCODE_NAME7('K', 'C', '_', 'R', 'B', 'R', 'C'), - KC_BSLS, KEYCODE_NAME7('K', 'C', '_', 'B', 'S', 'L', 'S'), - KC_NUHS, KEYCODE_NAME7('K', 'C', '_', 'N', 'U', 'H', 'S'), - KC_SCLN, KEYCODE_NAME7('K', 'C', '_', 'S', 'C', 'L', 'N'), - KC_QUOT, KEYCODE_NAME7('K', 'C', '_', 'Q', 'U', 'O', 'T'), - KC_GRV , KEYCODE_NAME7('K', 'C', '_', 'G', 'R', 'V', 0 ), - KC_COMM, KEYCODE_NAME7('K', 'C', '_', 'C', 'O', 'M', 'M'), - KC_DOT , KEYCODE_NAME7('K', 'C', '_', 'D', 'O', 'T', 0 ), - KC_SLSH, KEYCODE_NAME7('K', 'C', '_', 'S', 'L', 'S', 'H'), - KC_CAPS, KEYCODE_NAME7('K', 'C', '_', 'C', 'A', 'P', 'S'), - KC_PSCR, KEYCODE_NAME7('K', 'C', '_', 'P', 'S', 'C', 'R'), - KC_PAUS, KEYCODE_NAME7('K', 'C', '_', 'P', 'A', 'U', 'S'), - KC_INS , KEYCODE_NAME7('K', 'C', '_', 'I', 'N', 'S', 0 ), - KC_HOME, KEYCODE_NAME7('K', 'C', '_', 'H', 'O', 'M', 'E'), - KC_PGUP, KEYCODE_NAME7('K', 'C', '_', 'P', 'G', 'U', 'P'), - KC_DEL , KEYCODE_NAME7('K', 'C', '_', 'D', 'E', 'L', 0 ), - KC_END , KEYCODE_NAME7('K', 'C', '_', 'E', 'N', 'D', 0 ), - KC_PGDN, KEYCODE_NAME7('K', 'C', '_', 'P', 'G', 'D', 'N'), - KC_RGHT, KEYCODE_NAME7('K', 'C', '_', 'R', 'G', 'H', 'T'), - KC_LEFT, KEYCODE_NAME7('K', 'C', '_', 'L', 'E', 'F', 'T'), - KC_DOWN, KEYCODE_NAME7('K', 'C', '_', 'D', 'O', 'W', 'N'), - KC_UP , KEYCODE_NAME7('K', 'C', '_', 'U', 'P', 0 , 0 ), - KC_NUBS, KEYCODE_NAME7('K', 'C', '_', 'N', 'U', 'B', 'S'), - KC_HYPR, KEYCODE_NAME7('K', 'C', '_', 'H', 'Y', 'P', 'R'), - KC_MEH , KEYCODE_NAME7('K', 'C', '_', 'M', 'E', 'H', 0 ), -#ifdef EXTRAKEY_ENABLE - KC_WHOM, KEYCODE_NAME7('K', 'C', '_', 'W', 'H', 'O', 'M'), - KC_WBAK, KEYCODE_NAME7('K', 'C', '_', 'W', 'B', 'A', 'K'), - KC_WFWD, KEYCODE_NAME7('K', 'C', '_', 'W', 'F', 'W', 'D'), - KC_WSTP, KEYCODE_NAME7('K', 'C', '_', 'W', 'S', 'T', 'P'), - KC_WREF, KEYCODE_NAME7('K', 'C', '_', 'W', 'R', 'E', 'F'), - KC_MNXT, KEYCODE_NAME7('K', 'C', '_', 'M', 'N', 'X', 'T'), - KC_MPRV, KEYCODE_NAME7('K', 'C', '_', 'M', 'P', 'R', 'V'), - KC_MPLY, KEYCODE_NAME7('K', 'C', '_', 'M', 'P', 'L', 'Y'), - KC_MUTE, KEYCODE_NAME7('K', 'C', '_', 'M', 'U', 'T', 'E'), - KC_VOLU, KEYCODE_NAME7('K', 'C', '_', 'V', 'O', 'L', 'U'), - KC_VOLD, KEYCODE_NAME7('K', 'C', '_', 'V', 'O', 'L', 'D'), -#endif // EXTRAKEY_ENABLE -#ifdef MOUSEKEY_ENABLE - MS_LEFT, KEYCODE_NAME7('M', 'S', '_', 'L', 'E', 'F', 'T'), - MS_RGHT, KEYCODE_NAME7('M', 'S', '_', 'R', 'G', 'H', 'T'), - MS_UP , KEYCODE_NAME7('M', 'S', '_', 'U', 'P', 0 , 0 ), - MS_DOWN, KEYCODE_NAME7('M', 'S', '_', 'D', 'O', 'W', 'N'), - MS_WHLL, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'L'), - MS_WHLR, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'R'), - MS_WHLU, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'U'), - MS_WHLD, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'D'), -#endif // MOUSEKEY_ENABLE -#ifdef SWAP_HANDS_ENABLE - SH_ON , KEYCODE_NAME7('S', 'H', '_', 'O', 'N', 0 , 0 ), - SH_OFF , KEYCODE_NAME7('S', 'H', '_', 'O', 'F', 'F', 0 ), - SH_MON , KEYCODE_NAME7('S', 'H', '_', 'M', 'O', 'N', 0 ), - SH_MOFF, KEYCODE_NAME7('S', 'H', '_', 'M', 'O', 'F', 'F'), - SH_TOGG, KEYCODE_NAME7('S', 'H', '_', 'T', 'O', 'G', 'G'), - SH_TT , KEYCODE_NAME7('S', 'H', '_', 'T', 'T', 0 , 0 ), -# if !defined(NO_ACTION_ONESHOT) - SH_OS , KEYCODE_NAME7('S', 'H', '_', 'O', 'S', 0 , 0 ), -# endif // !defined(NO_ACTION_ONESHOT) -#endif // SWAP_HANDS_ENABLE -#ifdef LEADER_ENABLE - QK_LEAD, KEYCODE_NAME7('Q', 'K', '_', 'L', 'E', 'A', 'D'), -#endif // LEADER_ENABLE -#ifdef KEY_LOCK_ENABLE - QK_LOCK, KEYCODE_NAME7('Q', 'K', '_', 'L', 'O', 'C', 'K'), -#endif // KEY_LOCK_ENABLE -#ifdef TRI_LAYER_ENABLE - TL_LOWR, KEYCODE_NAME7('T', 'L', '_', 'L', 'O', 'W', 'R'), - TL_UPPR, KEYCODE_NAME7('T', 'L', '_', 'U', 'P', 'P', 'R'), -#endif // TRI_LAYER_ENABLE -#ifdef GRAVE_ESC_ENABLE - QK_GESC, KEYCODE_NAME7('Q', 'K', '_', 'G', 'E', 'S', 'C'), -#endif // GRAVE_ESC_ENABLE -#ifdef CAPS_WORD_ENABLE - CW_TOGG, KEYCODE_NAME7('C', 'W', '_', 'T', 'O', 'G', 'G'), -#endif // CAPS_WORD_ENABLE -#ifdef SECURE_ENABLE - SE_LOCK, KEYCODE_NAME7('S', 'E', '_', 'L', 'O', 'C', 'K'), - SE_UNLK, KEYCODE_NAME7('S', 'E', '_', 'U', 'N', 'L', 'K'), - SE_TOGG, KEYCODE_NAME7('S', 'E', '_', 'T', 'O', 'G', 'G'), - SE_REQ , KEYCODE_NAME7('S', 'E', '_', 'R', 'E', 'Q', 0 ), -#endif // SECURE_ENABLE -#ifdef LAYER_LOCK_ENABLE - QK_LLCK, KEYCODE_NAME7('Q', 'K', '_', 'L', 'L', 'C', 'K'), -#endif // LAYER_LOCK_ENABLE - EE_CLR , KEYCODE_NAME7('E', 'E', '_', 'C', 'L', 'R', 0 ), - QK_BOOT, KEYCODE_NAME7('Q', 'K', '_', 'B', 'O', 'O', 'T'), - DB_TOGG, KEYCODE_NAME7('D', 'B', '_', 'T', 'O', 'G', 'G'), -}; -// clang-format on - -/** Users can override this to define names of additional keycodes. */ -__attribute__((weak)) const keycode_string_name_t* keycode_string_names_data_user = NULL; -__attribute__((weak)) uint16_t keycode_string_names_size_user = 0; -/** Keyboard vendors can override this to define names of additional keycodes. */ -__attribute__((weak)) const keycode_string_name_t* keycode_string_names_data_kb = NULL; -__attribute__((weak)) uint16_t keycode_string_names_size_kb = 0; -/** Names of the 4 mods on each hand. */ -static const char mod_names[] PROGMEM = "CTL\0SFT\0ALT\0GUI"; -/** Internal buffer for holding a stringified keycode. */ -static char buffer[32]; -#define BUFFER_MAX_LEN (sizeof(buffer) - 1) -static index_t buffer_len; - -/** Finds the name of a keycode in `common_names` or returns NULL. */ -static const char* search_common_names(uint16_t keycode) { - static uint8_t buffer[8]; - - for (int_fast16_t offset = 0; offset < ARRAY_SIZE(common_names); offset += 4) { - if (keycode == pgm_read_word(common_names + offset)) { - const uint16_t w0 = pgm_read_word(common_names + offset + 1); - const uint16_t w1 = pgm_read_word(common_names + offset + 2); - const uint16_t w2 = pgm_read_word(common_names + offset + 3); - buffer[0] = (uint8_t)w0; - buffer[1] = (uint8_t)(w0 >> 8); - buffer[2] = '_'; - buffer[3] = (uint8_t)w1; - buffer[4] = (uint8_t)(w1 >> 8); - buffer[5] = (uint8_t)w2; - buffer[6] = (uint8_t)(w2 >> 8); - buffer[7] = 0; - return (const char*)buffer; - } - } - - return NULL; -} - -/** - * @brief Finds the name of a keycode in table or returns NULL. - * - * @param data Pointer to table to be searched. - * @param size Numer of entries in the table. - * @return Name string for the keycode, or NULL if not found. - */ -static const char* search_table(const keycode_string_name_t* data, uint16_t size, uint16_t keycode) { - if (data != NULL) { - for (uint16_t i = 0; i < size; ++i) { - if (data[i].keycode == keycode) { - return data[i].name; - } - } - } - return NULL; -} - -/** Formats `number` in `base`, either 10 or 16. */ -static char* number_string(uint16_t number, int8_t base) { - static char result[7]; - result[sizeof(result) - 1] = '\0'; - index_t i = sizeof(result) - 1; - do { - const uint8_t digit = number % base; - number /= base; - result[--i] = (digit < 10) ? (char)(digit + UINT8_C('0')) : (char)(digit + (UINT8_C('A') - 10)); - } while (number > 0 && i > 0); - - if (base == 16 && i >= 2) { - result[--i] = 'x'; - result[--i] = '0'; - } - return result + i; -} - -/** Appends `str` to `buffer`, truncating if the result would overflow. */ -static void append(const char* str) { - char* dest = buffer + buffer_len; - index_t i; - for (i = 0; buffer_len + i < BUFFER_MAX_LEN && str[i]; ++i) { - dest[i] = str[i]; - } - buffer_len += i; - buffer[buffer_len] = '\0'; -} - -/** Same as append(), but where `str` is a PROGMEM string. */ -static void append_P(const char* str) { - char* dest = buffer + buffer_len; - index_t i; - for (i = 0; buffer_len + i < BUFFER_MAX_LEN; ++i) { - const char c = pgm_read_byte(&str[i]); - if (c == '\0') { - break; - } - dest[i] = c; - } - buffer_len += i; - buffer[buffer_len] = '\0'; -} - -/** Appends a single char to `buffer` if there is space. */ -static void append_char(char c) { - if (buffer_len < BUFFER_MAX_LEN) { - buffer[buffer_len] = c; - buffer[++buffer_len] = '\0'; - } -} - -/** Formats `number` in `base`, either 10 or 16, and appends it to `buffer`. */ -static void append_number(uint16_t number, int8_t base) { - append(number_string(number, base)); -} - -/** Stringifies 5-bit mods and appends it to `buffer`. */ -static void append_5_bit_mods(uint8_t mods) { - const bool is_rhs = mods > 15; - const uint8_t csag = mods & 15; - if (csag != 0 && (csag & (csag - 1)) == 0) { // One mod is set. - append_P(PSTR("MOD_")); - append_char(is_rhs ? 'R' : 'L'); - append_P(&mod_names[4 * biton(csag)]); - } else { // Fallback: write the mod as a hex value. - append_number(mods, 16); - } -} - -/** - * @brief Writes a keycode of the format `name` + "(" + `param` + ")". - * @note `name` is a PROGMEM string, `param` is not. - */ -static void append_unary_keycode(const char* name, const char* param) { - append_P(name); - append_char('('); - append(param); - append_char(')'); -} - -/** - * @brief Writes a keycode of the format `name` + `number`. - * @note `name` is a PROGMEM string. - */ -static void append_numbered_keycode(const char* name, uint16_t number) { - append_P(name); - append_number(number, 10); -} - -/** Stringifies `keycode` and appends it to `buffer`. */ -static void append_keycode(uint16_t keycode) { - // In case there is overlap among tables, search `keycode_string_names_user` - // first so that it takes precedence. - const char* keycode_name = search_table(keycode_string_names_data_user, keycode_string_names_size_user, keycode); - if (keycode_name) { - append(keycode_name); - return; - } - keycode_name = search_table(keycode_string_names_data_kb, keycode_string_names_size_kb, keycode); - if (keycode_name) { - append(keycode_name); - return; - } - keycode_name = search_common_names(keycode); - if (keycode_name) { - append(keycode_name); - return; - } - - if (keycode <= 255) { // Basic keycodes. - switch (keycode) { - // Modifiers KC_LSFT, KC_RCTL, etc. - case MODIFIER_KEYCODE_RANGE: { - const uint8_t i = keycode - KC_LCTL; - const bool is_rhs = i > 3; - append_P(PSTR("KC_")); - append_char(is_rhs ? 'R' : 'L'); - append_P(&mod_names[4 * (i & 3)]); - } - return; - - // Letters A-Z. - case KC_A ... KC_Z: - append_P(PSTR("KC_")); - append_char((char)(keycode + (UINT8_C('A') - KC_A))); - return; - - // Digits 0-9 (NOTE: Unlike the ASCII order, KC_0 comes *after* KC_9.) - case KC_1 ... KC_0: - append_numbered_keycode(PSTR("KC_"), (keycode - (KC_1 - 1)) % 10); - return; - - // Keypad digits. - case KC_KP_1 ... KC_KP_0: - append_numbered_keycode(PSTR("KC_KP_"), (keycode - (KC_KP_1 - 1)) % 10); - return; - - // Function keys. F1-F12 and F13-F24 are coded in separate ranges. - case KC_F1 ... KC_F12: - append_numbered_keycode(PSTR("KC_F"), keycode - (KC_F1 - 1)); - return; - - case KC_F13 ... KC_F24: - append_numbered_keycode(PSTR("KC_F"), keycode - (KC_F13 - 13)); - return; - } - } - - // clang-format off - switch (keycode) { - // A modified keycode, like S(KC_1) for Shift + 1 = !. This implementation - // only covers modified keycodes where one modifier is applied, e.g. a - // Ctrl + Shift + kc or Hyper + kc keycode is not formatted. - case QK_MODS ... QK_MODS_MAX: { - uint8_t mods = QK_MODS_GET_MODS(keycode); - const bool is_rhs = mods > 15; - mods &= 15; - if (mods != 0 && (mods & (mods - 1)) == 0) { // One mod is set. - const char* name = &mod_names[4 * biton(mods)]; - if (is_rhs) { - append_char('R'); - append_P(name); - } else { - append_char(pgm_read_byte(&name[0])); - } - append_char('('); - append_keycode(QK_MODS_GET_BASIC_KEYCODE(keycode)); - append_char(')'); - return; - } - } break; - -#if !defined(NO_ACTION_ONESHOT) - case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: // One-shot mod OSM(mod) key. - append_P(PSTR("OSM(")); - append_5_bit_mods(QK_ONE_SHOT_MOD_GET_MODS(keycode)); - append_char(')'); - return; -#endif // !defined(NO_ACTION_ONESHOT) - - // Various layer switch keys. - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // Layer-tap LT(layer,kc) key. - append_P(PSTR("LT(")); - append_number(QK_LAYER_TAP_GET_LAYER(keycode), 10); - append_char(','); - append_keycode(QK_LAYER_TAP_GET_TAP_KEYCODE(keycode)); - append_char(')'); - return; - - case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: // LM(layer,mod) key. - append_P(PSTR("LM(")); - append_number(QK_LAYER_MOD_GET_LAYER(keycode), 10); - append_char(','); - append_5_bit_mods(QK_LAYER_MOD_GET_MODS(keycode)); - append_char(')'); - return; - - case QK_TO ... QK_TO_MAX: // TO(layer) key. - append_unary_keycode(PSTR("TO"), number_string(QK_TO_GET_LAYER(keycode), 10)); - return; - - case QK_MOMENTARY ... QK_MOMENTARY_MAX: // MO(layer) key. - append_unary_keycode(PSTR("MO"), number_string(QK_MOMENTARY_GET_LAYER(keycode), 10)); - return; - - case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: // DF(layer) key. - append_unary_keycode(PSTR("DF"), number_string(QK_DEF_LAYER_GET_LAYER(keycode), 10)); - return; - - case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: // TG(layer) key. - append_unary_keycode(PSTR("TG"), number_string(QK_TOGGLE_LAYER_GET_LAYER(keycode), 10)); - return; - -#if !defined(NO_ACTION_ONESHOT) - case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: // OSL(layer) key. - append_unary_keycode(PSTR("OSL"), number_string(QK_ONE_SHOT_LAYER_GET_LAYER(keycode), 10)); - return; -#endif // !defined(NO_ACTION_ONESHOT) - - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: // TT(layer) key. - append_unary_keycode(PSTR("TT"), number_string(QK_LAYER_TAP_TOGGLE_GET_LAYER(keycode), 10)); - return; - - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: // PDF(layer) key. - append_unary_keycode(PSTR("PDF"), number_string(QK_PERSISTENT_DEF_LAYER_GET_LAYER(keycode), 10)); - return; - - // Mod-tap MT(mod,kc) key. This implementation formats the MT keys where - // one modifier is applied. For MT keys with multiple modifiers, the mod - // arg is written numerically as a hex code. - case QK_MOD_TAP ... QK_MOD_TAP_MAX: { - uint8_t mods = QK_MOD_TAP_GET_MODS(keycode); - const bool is_rhs = mods > 15; - const uint8_t csag = mods & 15; - if (csag != 0 && (csag & (csag - 1)) == 0) { // One mod is set. - append_char(is_rhs ? 'R' : 'L'); - append_P(&mod_names[4 * biton(csag)]); - append_P(PSTR("_T(")); - } else if (mods == MOD_HYPR) { - append_P(PSTR("HYPR_T(")); - } else if (mods == MOD_MEH) { - append_P(PSTR("MEH_T(")); - } else { - append_P(PSTR("MT(")); - append_number(mods, 16); - append_char(','); - } - append_keycode(QK_MOD_TAP_GET_TAP_KEYCODE(keycode)); - append_char(')'); - } return; - - case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: // Tap dance TD(i) key. - append_unary_keycode(PSTR("TD"), number_string(QK_TAP_DANCE_GET_INDEX(keycode), 10)); - return; - -#ifdef UNICODE_ENABLE - case QK_UNICODE ... QK_UNICODE_MAX: // Unicode UC(codepoint) key. - append_unary_keycode(PSTR("UC"), number_string(QK_UNICODE_GET_CODE_POINT(keycode), 16)); - return; -#elif defined(UNICODEMAP_ENABLE) - case QK_UNICODEMAP ... QK_UNICODEMAP_MAX: // Unicode Map UM(i) key. - append_unary_keycode(PSTR("UM"), number_string(QK_UNICODEMAP_GET_INDEX(keycode), 10)); - return; - - case QK_UNICODEMAP_PAIR ... QK_UNICODEMAP_PAIR_MAX: { // UP(i,j) key. - const uint8_t i = QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(keycode); - const uint8_t j = QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(keycode); - append_P(PSTR("UP(")); - append_number(i, 10); - append_char(','); - append_number(j, 10); - append_char(')'); - } return; -#endif -#ifdef MOUSEKEY_ENABLE - case MS_BTN1 ... MS_BTN8: // Mouse button keycode. - append_numbered_keycode(PSTR("MS_BTN"), keycode - (MS_BTN1 - 1)); - return; -#endif // MOUSEKEY_ENABLE -#ifdef SWAP_HANDS_ENABLE - case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: // Swap Hands SH_T(kc) key. - if (!IS_SWAP_HANDS_KEYCODE(keycode)) { - append_P(PSTR("SH_T(")); - append_keycode(QK_SWAP_HANDS_GET_TAP_KEYCODE(keycode)); - append_char(')'); - return; - } - break; -#endif // SWAP_HANDS_ENABLE -#ifdef JOYSTICK_ENABLE - case JOYSTICK_KEYCODE_RANGE: // Joystick JS_ key. - append_numbered_keycode(PSTR("JS_"), keycode - JS_0); - return; -#endif // JOYSTICK_ENABLE -#ifdef PROGRAMMABLE_BUTTON_ENABLE - case PROGRAMMABLE_BUTTON_KEYCODE_RANGE: // Programmable button PB_ key. - append_numbered_keycode(PSTR("PB_"), keycode - (PB_1 - 1)); - return; -#endif // PROGRAMMABLE_BUTTON_ENABLE - - case MACRO_KEYCODE_RANGE: // Macro range MC_ keycode. - append_numbered_keycode(PSTR("MC_"), keycode - MC_0); - return; - - case KB_KEYCODE_RANGE: // Keyboard range keycode. - append_numbered_keycode(PSTR("QK_KB_"), keycode - QK_KB_0); - return; - - case USER_KEYCODE_RANGE: // User range keycode. - append_numbered_keycode(PSTR("QK_USER_"), keycode - QK_USER_0); - return; - - // It would take a nontrivial amount of string data to cover some - // feature-specific keycodes, such as those for MIDI and lighting. As a - // fallback while still providing some information, we stringify - // remaining keys in known code ranges as "QK_+". -#ifdef MAGIC_ENABLE - case MAGIC_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_MAGIC+"), keycode - QK_MAGIC); - return; -#endif // MAGIC_ENABLE -#ifdef MIDI_ENABLE - case MIDI_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_MIDI+"), keycode - QK_MIDI); - return; -#endif // MIDI_ENABLE -#ifdef SEQUENCER_ENABLE - case SEQUENCER_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_SEQUENCER+"), keycode - QK_SEQUENCER); - return; -#endif // SEQUENCER_ENABLE -#ifdef AUDIO_ENABLE - case AUDIO_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_AUDIO+"), keycode - QK_AUDIO); - return; -#endif // AUDIO_ENABLE -#if defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLED) || defined(RGB_MATRIX_ENABLE) // Lighting-related features. - case QK_LIGHTING ... QK_LIGHTING_MAX: - append_numbered_keycode(PSTR("QK_LIGHTING+"), keycode - QK_LIGHTING); - return; -#endif // defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLED) || defined(RGB_MATRIX_ENABLE) -#ifdef STENO_ENABLE - case STENO_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_STENO+"), keycode - QK_STENO); - return; -#endif // AUDIO_ENABLE -#ifdef BLUETOOTH_ENABLE - case CONNECTION_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_CONNECTION+"), keycode - QK_CONNECTION); - return; -#endif // BLUETOOTH_ENABLE - case QUANTUM_KEYCODE_RANGE: - append_numbered_keycode(PSTR("QK_QUANTUM+"), keycode - QK_QUANTUM); - return; - } - // clang-format on - - append_number(keycode, 16); // Fallback: write keycode as hex value. -} - -const char* get_keycode_string(uint16_t keycode) { - buffer_len = 0; - buffer[0] = '\0'; - append_keycode(keycode); - return buffer; -} diff --git a/quantum/keycode_string.h b/quantum/keycode_string.h deleted file mode 100644 index 1315613a80..0000000000 --- a/quantum/keycode_string.h +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include - -#if KEYCODE_STRING_ENABLE - -/** - * @brief Formats a QMK keycode as a human-readable string. - * - * Given a keycode, like `KC_A`, this function returns a formatted string, like - * "KC_A". This is useful for debugging and diagnostics so that keys are more - * easily identified than they would be by raw numerical codes. - * - * @note The returned char* string should be used right away. The string memory - * is reused and will be overwritten by the next call to `keycode_string()`. - * - * Many common QMK keycodes are understood by this function, but not all. - * Recognized keycodes include: - * - * - Most basic keycodes, including letters `KC_A` - `KC_Z`, digits `KC_0` - - * `KC_9`, function keys `KC_F1` - `KC_F24`, and modifiers like `KC_LSFT`. - * - * - Modified basic keycodes, like `S(KC_1)` (Shift + 1 = !). - * - * - `MO`, `TO`, `TG`, `OSL`, `LM(layer,mod)`, `LT(layer,kc)` layer switches. - * - * - One-shot mod `OSM(mod)` keycodes. - * - * - Mod-tap `MT(mod, kc)` keycodes. - * - * - Tap dance keycodes `TD(i)`. - * - * - Swap hands keycodes `SH_T(kc)`, `SH_TOGG`, etc. - * - * - Joystick keycodes `JS_n`. - * - * - Programmable button keycodes `PB_n`. - * - * - Unicode `UC(codepoint)` and Unicode Map `UM(i)` and `UP(i,j)` keycodes. - * - * - Keyboard range keycodes `QK_KB_*`. - * - * - User range (SAFE_RANGE) keycodes `QK_USER_*`. - * - * Keycodes involving mods like `OSM`, `LM`, `MT` are fully supported only where - * a single mod is applied. - * - * Unrecognized keycodes are printed numerically as hex values like `0x1ABC`. - * - * Optionally, use `keycode_string_names_user` or `keycode_string_names_kb` to - * define names for additional keycodes or override how any of the above are - * formatted. - * - * @param keycode QMK keycode. - * @return Stringified keycode. - */ -const char* get_keycode_string(uint16_t keycode); - -/** Defines a human-readable name for a keycode. */ -typedef struct { - uint16_t keycode; - const char* name; -} keycode_string_name_t; - -// clang-format off -/** - * @brief Defines names for additional keycodes for `get_keycode_string()`. - * - * Define `KEYCODE_STRING_NAMES_USER` in your keymap.c to add names for - * additional keycodes to `keycode_string()`. This table may also be used to - * override how `keycode_string()` formats a keycode. For example, supposing - * keymap.c defines `MYMACRO1` and `MYMACRO2` as custom keycodes: - * - * KEYCODE_STRING_NAMES_USER( - * KEYCODE_STRING_NAME(MYMACRO1), - * KEYCODE_STRING_NAME(MYMACRO2), - * KEYCODE_STRING_NAME(KC_EXLM), - * ); - * - * The above defines names for `MYMACRO1` and `MYMACRO2`, and overrides - * `KC_EXLM` to format as "KC_EXLM" instead of the default "S(KC_1)". - */ -# define KEYCODE_STRING_NAMES_USER(...) \ - static const keycode_string_name_t keycode_string_names_user[] = {__VA_ARGS__}; \ - uint16_t keycode_string_names_size_user = \ - sizeof(keycode_string_names_user) / sizeof(keycode_string_name_t); \ - const keycode_string_name_t* keycode_string_names_data_user = \ - keycode_string_names_user - -/** Same as above, but defines keycode string names at the keyboard level. */ -# define KEYCODE_STRING_NAMES_KB(...) \ - static const keycode_string_name_t keycode_string_names_kb[] = {__VA_ARGS__}; \ - uint16_t keycode_string_names_size_kb = \ - sizeof(keycode_string_names_kb) / sizeof(keycode_string_name_t); \ - const keycode_string_name_t* keycode_string_names_data_kb = \ - keycode_string_names_kb - -/** Helper to define a keycode_string_name_t. */ -# define KEYCODE_STRING_NAME(kc) \ - { (kc), #kc } -// clang-format on - -extern const keycode_string_name_t* keycode_string_names_data_user; -extern uint16_t keycode_string_names_size_user; -extern const keycode_string_name_t* keycode_string_names_data_kb; -extern uint16_t keycode_string_names_size_kb; - -#else - -// When keycode_string is disabled, fall back to printing keycodes numerically -// as decimal values, using get_u16_str() from quantum.c. -# define get_keycode_string(kc) get_u16_str(kc, ' ') - -const char* get_u16_str(uint16_t curr_num, char curr_pad); - -# define KEYCODE_STRING_NAMES_USER(...) -# define KEYCODE_STRING_NAMES_KB(...) -# define KEYCODE_STRING_NAME(kc) - -#endif // KEYCODE_STRING_ENABLE diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 6a59aa376d..f461e4a586 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -26,12 +26,6 @@ #pragma once // clang-format off -#define QMK_KEYCODES_VERSION "0.0.7" -#define QMK_KEYCODES_VERSION_BCD 0x00000007 -#define QMK_KEYCODES_VERSION_MAJOR 0 -#define QMK_KEYCODES_VERSION_MINOR 0 -#define QMK_KEYCODES_VERSION_PATCH 7 - enum qk_keycode_ranges { // Ranges QK_BASIC = 0x0000, @@ -58,8 +52,6 @@ enum qk_keycode_ranges { QK_ONE_SHOT_MOD_MAX = 0x52BF, QK_LAYER_TAP_TOGGLE = 0x52C0, QK_LAYER_TAP_TOGGLE_MAX = 0x52DF, - QK_PERSISTENT_DEF_LAYER = 0x52E0, - QK_PERSISTENT_DEF_LAYER_MAX = 0x52FF, QK_SWAP_HANDS = 0x5600, QK_SWAP_HANDS_MAX = 0x56FF, QK_TAP_DANCE = 0x5700, @@ -80,10 +72,6 @@ enum qk_keycode_ranges { QK_STENO_MAX = 0x74FF, QK_MACRO = 0x7700, QK_MACRO_MAX = 0x777F, - QK_CONNECTION = 0x7780, - QK_CONNECTION_MAX = 0x77BF, - QK_COMMUNITY_MODULE = 0x77C0, - QK_COMMUNITY_MODULE_MAX = 0x77FF, QK_LIGHTING = 0x7800, QK_LIGHTING_MAX = 0x78FF, QK_QUANTUM = 0x7C00, @@ -632,21 +620,6 @@ enum qk_keycode_defines { QK_MACRO_29 = 0x771D, QK_MACRO_30 = 0x771E, QK_MACRO_31 = 0x771F, - QK_OUTPUT_AUTO = 0x7780, - QK_OUTPUT_NEXT = 0x7781, - QK_OUTPUT_PREV = 0x7782, - QK_OUTPUT_NONE = 0x7783, - QK_OUTPUT_USB = 0x7784, - QK_OUTPUT_2P4GHZ = 0x7785, - QK_OUTPUT_BLUETOOTH = 0x7786, - QK_BLUETOOTH_PROFILE_NEXT = 0x7790, - QK_BLUETOOTH_PROFILE_PREV = 0x7791, - QK_BLUETOOTH_UNPAIR = 0x7792, - QK_BLUETOOTH_PROFILE1 = 0x7793, - QK_BLUETOOTH_PROFILE2 = 0x7794, - QK_BLUETOOTH_PROFILE3 = 0x7795, - QK_BLUETOOTH_PROFILE4 = 0x7796, - QK_BLUETOOTH_PROFILE5 = 0x7797, QK_BACKLIGHT_ON = 0x7800, QK_BACKLIGHT_OFF = 0x7801, QK_BACKLIGHT_TOGGLE = 0x7802, @@ -717,6 +690,9 @@ enum qk_keycode_defines { QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN = 0x7C1C, QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE = 0x7C1D, QK_SPACE_CADET_RIGHT_SHIFT_ENTER = 0x7C1E, + QK_OUTPUT_AUTO = 0x7C20, + QK_OUTPUT_USB = 0x7C21, + QK_OUTPUT_BLUETOOTH = 0x7C22, QK_UNICODE_MODE_NEXT = 0x7C30, QK_UNICODE_MODE_PREVIOUS = 0x7C31, QK_UNICODE_MODE_MACOS = 0x7C32, @@ -769,7 +745,6 @@ enum qk_keycode_defines { QK_TRI_LAYER_UPPER = 0x7C78, QK_REPEAT_KEY = 0x7C79, QK_ALT_REPEAT_KEY = 0x7C7A, - QK_LAYER_LOCK = 0x7C7B, QK_KB_0 = 0x7E00, QK_KB_1 = 0x7E01, QK_KB_2 = 0x7E02, @@ -1321,21 +1296,6 @@ enum qk_keycode_defines { MC_29 = QK_MACRO_29, MC_30 = QK_MACRO_30, MC_31 = QK_MACRO_31, - OU_AUTO = QK_OUTPUT_AUTO, - OU_NEXT = QK_OUTPUT_NEXT, - OU_PREV = QK_OUTPUT_PREV, - OU_NONE = QK_OUTPUT_NONE, - OU_USB = QK_OUTPUT_USB, - OU_2P4G = QK_OUTPUT_2P4GHZ, - OU_BT = QK_OUTPUT_BLUETOOTH, - BT_NEXT = QK_BLUETOOTH_PROFILE_NEXT, - BT_PREV = QK_BLUETOOTH_PROFILE_PREV, - BT_UNPR = QK_BLUETOOTH_UNPAIR, - BT_PRF1 = QK_BLUETOOTH_PROFILE1, - BT_PRF2 = QK_BLUETOOTH_PROFILE2, - BT_PRF3 = QK_BLUETOOTH_PROFILE3, - BT_PRF4 = QK_BLUETOOTH_PROFILE4, - BT_PRF5 = QK_BLUETOOTH_PROFILE5, BL_ON = QK_BACKLIGHT_ON, BL_OFF = QK_BACKLIGHT_OFF, BL_TOGG = QK_BACKLIGHT_TOGGLE, @@ -1405,6 +1365,9 @@ enum qk_keycode_defines { SC_LAPO = QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN, SC_RAPC = QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE, SC_SENT = QK_SPACE_CADET_RIGHT_SHIFT_ENTER, + OU_AUTO = QK_OUTPUT_AUTO, + OU_USB = QK_OUTPUT_USB, + OU_BT = QK_OUTPUT_BLUETOOTH, UC_NEXT = QK_UNICODE_MODE_NEXT, UC_PREV = QK_UNICODE_MODE_PREVIOUS, UC_MAC = QK_UNICODE_MODE_MACOS, @@ -1456,7 +1419,6 @@ enum qk_keycode_defines { TL_UPPR = QK_TRI_LAYER_UPPER, QK_REP = QK_REPEAT_KEY, QK_AREP = QK_ALT_REPEAT_KEY, - QK_LLCK = QK_LAYER_LOCK, }; // Range Helpers @@ -1472,7 +1434,6 @@ enum qk_keycode_defines { #define IS_QK_ONE_SHOT_LAYER(code) ((code) >= QK_ONE_SHOT_LAYER && (code) <= QK_ONE_SHOT_LAYER_MAX) #define IS_QK_ONE_SHOT_MOD(code) ((code) >= QK_ONE_SHOT_MOD && (code) <= QK_ONE_SHOT_MOD_MAX) #define IS_QK_LAYER_TAP_TOGGLE(code) ((code) >= QK_LAYER_TAP_TOGGLE && (code) <= QK_LAYER_TAP_TOGGLE_MAX) -#define IS_QK_PERSISTENT_DEF_LAYER(code) ((code) >= QK_PERSISTENT_DEF_LAYER && (code) <= QK_PERSISTENT_DEF_LAYER_MAX) #define IS_QK_SWAP_HANDS(code) ((code) >= QK_SWAP_HANDS && (code) <= QK_SWAP_HANDS_MAX) #define IS_QK_TAP_DANCE(code) ((code) >= QK_TAP_DANCE && (code) <= QK_TAP_DANCE_MAX) #define IS_QK_MAGIC(code) ((code) >= QK_MAGIC && (code) <= QK_MAGIC_MAX) @@ -1483,8 +1444,6 @@ enum qk_keycode_defines { #define IS_QK_AUDIO(code) ((code) >= QK_AUDIO && (code) <= QK_AUDIO_MAX) #define IS_QK_STENO(code) ((code) >= QK_STENO && (code) <= QK_STENO_MAX) #define IS_QK_MACRO(code) ((code) >= QK_MACRO && (code) <= QK_MACRO_MAX) -#define IS_QK_CONNECTION(code) ((code) >= QK_CONNECTION && (code) <= QK_CONNECTION_MAX) -#define IS_QK_COMMUNITY_MODULE(code) ((code) >= QK_COMMUNITY_MODULE && (code) <= QK_COMMUNITY_MODULE_MAX) #define IS_QK_LIGHTING(code) ((code) >= QK_LIGHTING && (code) <= QK_LIGHTING_MAX) #define IS_QK_QUANTUM(code) ((code) >= QK_QUANTUM && (code) <= QK_QUANTUM_MAX) #define IS_QK_KB(code) ((code) >= QK_KB && (code) <= QK_KB_MAX) @@ -1509,13 +1468,12 @@ enum qk_keycode_defines { #define IS_AUDIO_KEYCODE(code) ((code) >= QK_AUDIO_ON && (code) <= QK_AUDIO_VOICE_PREVIOUS) #define IS_STENO_KEYCODE(code) ((code) >= QK_STENO_BOLT && (code) <= QK_STENO_COMB_MAX) #define IS_MACRO_KEYCODE(code) ((code) >= QK_MACRO_0 && (code) <= QK_MACRO_31) -#define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_AUTO && (code) <= QK_BLUETOOTH_PROFILE5) #define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING) #define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_SPEED_DOWN) #define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN) #define IS_RGB_KEYCODE(code) ((code) >= RGB_MODE_PLAIN && (code) <= RGB_MODE_TWINKLE) #define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_SPEED_DOWN) -#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK) +#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_ALT_REPEAT_KEY) #define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31) #define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31) @@ -1535,12 +1493,11 @@ enum qk_keycode_defines { #define AUDIO_KEYCODE_RANGE QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS #define STENO_KEYCODE_RANGE QK_STENO_BOLT ... QK_STENO_COMB_MAX #define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31 -#define CONNECTION_KEYCODE_RANGE QK_OUTPUT_AUTO ... QK_BLUETOOTH_PROFILE5 #define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING #define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_SPEED_DOWN #define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN #define RGB_KEYCODE_RANGE RGB_MODE_PLAIN ... RGB_MODE_TWINKLE #define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_SPEED_DOWN -#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK +#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_ALT_REPEAT_KEY #define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31 #define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31 diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 9be9bae943..abdcd5c7ba 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -156,7 +156,7 @@ action_t action_for_keycode(uint16_t keycode) { case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: mod = mod_config(QK_LAYER_MOD_GET_MODS(keycode)); action_layer = QK_LAYER_MOD_GET_LAYER(keycode); - action.code = ACTION_LAYER_MODS(action_layer, (mod & 0x10) ? (mod & 0xF) << 4 : mod); + action.code = ACTION_LAYER_MODS(action_layer, (mod & 0x10) ? mod << 4 : mod); break; #endif // NO_ACTION_LAYER case QK_MOD_TAP ... QK_MOD_TAP_MAX: diff --git a/quantum/keymap_extras/keymap_belgian.h b/quantum/keymap_extras/keymap_belgian.h index b41ed9d20b..e553894b52 100644 --- a/quantum/keymap_extras/keymap_belgian.h +++ b/quantum/keymap_extras/keymap_belgian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_BELGIAN_KEYCODES_VERSION "0.0.1" -#define QMK_BELGIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_BELGIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_BELGIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_BELGIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define BE_SUP2 KC_GRV // ² #define BE_AMPR KC_1 // & diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h index c0bb703ecc..d1886efb10 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_BEPO_KEYCODES_VERSION "0.0.1" -#define QMK_BEPO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_BEPO_KEYCODES_VERSION_MAJOR 0 -#define QMK_BEPO_KEYCODES_VERSION_MINOR 0 -#define QMK_BEPO_KEYCODES_VERSION_PATCH 1 - // Aliases #define BP_DLR KC_GRV // $ #define BP_DQUO KC_1 // " diff --git a/quantum/keymap_extras/keymap_brazilian_abnt2.h b/quantum/keymap_extras/keymap_brazilian_abnt2.h index 267b5490c9..7dfc2cbb3d 100644 --- a/quantum/keymap_extras/keymap_brazilian_abnt2.h +++ b/quantum/keymap_extras/keymap_brazilian_abnt2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_BRAZILIAN_ABNT2_KEYCODES_VERSION "0.0.1" -#define QMK_BRAZILIAN_ABNT2_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_BRAZILIAN_ABNT2_KEYCODES_VERSION_MAJOR 0 -#define QMK_BRAZILIAN_ABNT2_KEYCODES_VERSION_MINOR 0 -#define QMK_BRAZILIAN_ABNT2_KEYCODES_VERSION_PATCH 1 - // Aliases #define BR_QUOT KC_GRV // ' #define BR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index df9c73c016..63c9166a31 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CANADIAN_FRENCH_KEYCODES_VERSION "0.0.1" -#define QMK_CANADIAN_FRENCH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CANADIAN_FRENCH_KEYCODES_VERSION_MAJOR 0 -#define QMK_CANADIAN_FRENCH_KEYCODES_VERSION_MINOR 0 -#define QMK_CANADIAN_FRENCH_KEYCODES_VERSION_PATCH 1 - // Aliases #define FR_HASH KC_GRV // # #define FR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index 4b42457396..baeafa4077 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CANADIAN_MULTILINGUAL_KEYCODES_VERSION "0.0.1" -#define QMK_CANADIAN_MULTILINGUAL_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CANADIAN_MULTILINGUAL_KEYCODES_VERSION_MAJOR 0 -#define QMK_CANADIAN_MULTILINGUAL_KEYCODES_VERSION_MINOR 0 -#define QMK_CANADIAN_MULTILINGUAL_KEYCODES_VERSION_PATCH 1 - // Aliases #define CA_SLSH KC_GRV // / #define CA_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index a4fc77e80f..b1b2fdcf80 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_COLEMAK_KEYCODES_VERSION "0.0.1" -#define QMK_COLEMAK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_COLEMAK_KEYCODES_VERSION_MAJOR 0 -#define QMK_COLEMAK_KEYCODES_VERSION_MINOR 0 -#define QMK_COLEMAK_KEYCODES_VERSION_PATCH 1 - // Aliases #define CM_GRV KC_GRV // ` #define CM_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_croatian.h b/quantum/keymap_extras/keymap_croatian.h index cdc032a9eb..3ed6e29dfb 100644 --- a/quantum/keymap_extras/keymap_croatian.h +++ b/quantum/keymap_extras/keymap_croatian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CROATIAN_KEYCODES_VERSION "0.0.1" -#define QMK_CROATIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CROATIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_CROATIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_CROATIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define HR_CEDL KC_GRV // ¸ (dead) #define HR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_czech.h b/quantum/keymap_extras/keymap_czech.h index cae16cdb9f..ab00f83820 100644 --- a/quantum/keymap_extras/keymap_czech.h +++ b/quantum/keymap_extras/keymap_czech.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CZECH_KEYCODES_VERSION "0.0.1" -#define QMK_CZECH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CZECH_KEYCODES_VERSION_MAJOR 0 -#define QMK_CZECH_KEYCODES_VERSION_MINOR 0 -#define QMK_CZECH_KEYCODES_VERSION_PATCH 1 - // Aliases #define CZ_SCLN KC_GRV // ; #define CZ_PLUS KC_1 // + diff --git a/quantum/keymap_extras/keymap_czech_mac_ansi.h b/quantum/keymap_extras/keymap_czech_mac_ansi.h index bdfda933b0..ac2f078d98 100644 --- a/quantum/keymap_extras/keymap_czech_mac_ansi.h +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CZECH_MAC_ANSI_KEYCODES_VERSION "0.0.1" -#define QMK_CZECH_MAC_ANSI_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CZECH_MAC_ANSI_KEYCODES_VERSION_MAJOR 0 -#define QMK_CZECH_MAC_ANSI_KEYCODES_VERSION_MINOR 0 -#define QMK_CZECH_MAC_ANSI_KEYCODES_VERSION_PATCH 1 - // Aliases #define CZ_BSLS KC_GRV // (backslash) #define CZ_PLUS KC_1 // + diff --git a/quantum/keymap_extras/keymap_czech_mac_iso.h b/quantum/keymap_extras/keymap_czech_mac_iso.h index 9c05d8dae0..4b56e15df1 100644 --- a/quantum/keymap_extras/keymap_czech_mac_iso.h +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_CZECH_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_CZECH_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_CZECH_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_CZECH_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_CZECH_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define CZ_PLUS KC_1 // + #define CZ_ECAR KC_2 // ě diff --git a/quantum/keymap_extras/keymap_danish.h b/quantum/keymap_extras/keymap_danish.h index 1f1ee90e23..9e397af135 100644 --- a/quantum/keymap_extras/keymap_danish.h +++ b/quantum/keymap_extras/keymap_danish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_DANISH_KEYCODES_VERSION "0.0.1" -#define QMK_DANISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_DANISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_DANISH_KEYCODES_VERSION_MINOR 0 -#define QMK_DANISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define DK_HALF KC_GRV // ½ #define DK_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_dvorak.h b/quantum/keymap_extras/keymap_dvorak.h index 5cb2c4564a..d83f311e2a 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_DVORAK_KEYCODES_VERSION "0.0.1" -#define QMK_DVORAK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_DVORAK_KEYCODES_VERSION_MAJOR 0 -#define QMK_DVORAK_KEYCODES_VERSION_MINOR 0 -#define QMK_DVORAK_KEYCODES_VERSION_PATCH 1 - // Aliases #define DV_GRV KC_GRV // ` #define DV_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h index d01bf7fec7..6c9ca139d6 100644 --- a/quantum/keymap_extras/keymap_dvorak_fr.h +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_DVORAK_FR_KEYCODES_VERSION "0.0.1" -#define QMK_DVORAK_FR_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_DVORAK_FR_KEYCODES_VERSION_MAJOR 0 -#define QMK_DVORAK_FR_KEYCODES_VERSION_MINOR 0 -#define QMK_DVORAK_FR_KEYCODES_VERSION_PATCH 1 - // Aliases #define DV_LDAQ KC_GRV // « #define DV_RDAQ KC_1 // » diff --git a/quantum/keymap_extras/keymap_dvorak_programmer.h b/quantum/keymap_extras/keymap_dvorak_programmer.h index f17900105f..80f39f56d4 100644 --- a/quantum/keymap_extras/keymap_dvorak_programmer.h +++ b/quantum/keymap_extras/keymap_dvorak_programmer.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_DVORAK_PROGRAMMER_KEYCODES_VERSION "0.0.1" -#define QMK_DVORAK_PROGRAMMER_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_DVORAK_PROGRAMMER_KEYCODES_VERSION_MAJOR 0 -#define QMK_DVORAK_PROGRAMMER_KEYCODES_VERSION_MINOR 0 -#define QMK_DVORAK_PROGRAMMER_KEYCODES_VERSION_PATCH 1 - // Aliases #define DP_DLR KC_GRV // $ #define DP_AMPR KC_1 // & diff --git a/quantum/keymap_extras/keymap_estonian.h b/quantum/keymap_extras/keymap_estonian.h index 5fbeedcbe9..3b6bf66c5c 100644 --- a/quantum/keymap_extras/keymap_estonian.h +++ b/quantum/keymap_extras/keymap_estonian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ESTONIAN_KEYCODES_VERSION "0.0.1" -#define QMK_ESTONIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ESTONIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_ESTONIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_ESTONIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define EE_CARN KC_GRV // ˇ (dead) #define EE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h deleted file mode 100644 index 5a13d48163..0000000000 --- a/quantum/keymap_extras/keymap_eurkey.h +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -/******************************************************************************* - 88888888888 888 d8b .d888 d8b 888 d8b - 888 888 Y8P d88P" Y8P 888 Y8P - 888 888 888 888 - 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b - 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K - 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. - 888 888 888 888 X88 888 888 888 Y8b. 888 X88 - 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' - 888 888 - 888 888 - 888 888 - .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 - d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 - 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 - Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 - "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 - 888 - Y8b d88P - "Y88P" -*******************************************************************************/ - -#pragma once -#include "keycodes.h" -// clang-format off - -#define QMK_EURKEY_KEYCODES_VERSION "0.0.1" -#define QMK_EURKEY_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_EURKEY_KEYCODES_VERSION_MAJOR 0 -#define QMK_EURKEY_KEYCODES_VERSION_MINOR 0 -#define QMK_EURKEY_KEYCODES_VERSION_PATCH 1 - -// Aliases -#define EU_GRV KC_GRV // ` -#define EU_1 KC_1 // 1 -#define EU_2 KC_2 // 2 -#define EU_3 KC_3 // 3 -#define EU_4 KC_4 // 4 -#define EU_5 KC_5 // 5 -#define EU_6 KC_6 // 6 -#define EU_7 KC_7 // 7 -#define EU_8 KC_8 // 8 -#define EU_9 KC_9 // 9 -#define EU_0 KC_0 // 0 -#define EU_MINS KC_MINS // - -#define EU_EQL KC_EQL // = -#define EU_Q KC_Q // Q -#define EU_W KC_W // W -#define EU_E KC_E // E -#define EU_R KC_R // R -#define EU_T KC_T // T -#define EU_Y KC_Y // Y -#define EU_U KC_U // U -#define EU_I KC_I // I -#define EU_O KC_O // O -#define EU_P KC_P // P -#define EU_LBRC KC_LBRC // [ -#define EU_RBRC KC_RBRC // ] -#define EU_BSLS KC_BSLS // (backslash) -#define EU_A KC_A // A -#define EU_S KC_S // S -#define EU_D KC_D // D -#define EU_F KC_F // F -#define EU_G KC_G // G -#define EU_H KC_H // H -#define EU_J KC_J // J -#define EU_K KC_K // K -#define EU_L KC_L // L -#define EU_SCLN KC_SCLN // ; -#define EU_QUOT KC_QUOT // ' -#define EU_Z KC_Z // Z -#define EU_X KC_X // X -#define EU_C KC_C // C -#define EU_V KC_V // V -#define EU_B KC_B // B -#define EU_N KC_N // N -#define EU_M KC_M // M -#define EU_COMM KC_COMM // , -#define EU_DOT KC_DOT // . -#define EU_SLSH KC_SLSH // / -#define EU_TILD S(EU_GRV) // ~ -#define EU_EXLM S(EU_1) // ! -#define EU_AT S(EU_2) // @ -#define EU_HASH S(EU_3) // # -#define EU_DLR S(EU_4) // $ -#define EU_PERC S(EU_5) // % -#define EU_CIRC S(EU_6) // ^ -#define EU_AMPR S(EU_7) // & -#define EU_ASTR S(EU_8) // * -#define EU_LPRN S(EU_9) // ( -#define EU_RPRN S(EU_0) // ) -#define EU_UNDS S(EU_MINS) // _ -#define EU_PLUS S(EU_EQL) // + -#define EU_LCBR S(EU_LBRC) // { -#define EU_RCBR S(EU_RBRC) // } -#define EU_PIPE S(EU_BSLS) // | -#define EU_COLN S(EU_SCLN) // : -#define EU_DQUO S(EU_QUOT) // " -#define EU_LABK S(EU_COMM) // < -#define EU_RABK S(EU_DOT) // > -#define EU_QUES S(EU_SLSH) // ? -#define EU_DGRV ALGR(EU_GRV) // ` (dead) -#define EU_IEXL ALGR(EU_1) // ¡ -#define EU_FORD ALGR(EU_2) // ª -#define EU_MORD ALGR(EU_3) // º -#define EU_PND ALGR(EU_4) // £ -#define EU_EURO ALGR(EU_5) // € -#define EU_DCIR ALGR(EU_6) // ^ (dead) -#define EU_RNGA ALGR(EU_7) // ˚ (dead) -#define EU_DLQU ALGR(EU_8) // „ -#define EU_LDQU ALGR(EU_9) // “ -#define EU_RDQU ALGR(EU_0) // ” -#define EU_NDSH ALGR(EU_MINS) // – -#define EU_MUL ALGR(EU_EQL) // × -#define EU_AE ALGR(EU_Q) // æ -#define EU_ARNG ALGR(EU_W) // Å -#define EU_EDIA ALGR(EU_E) // Ë -#define EU_YACU ALGR(EU_R) // Ý -#define EU_THRN ALGR(EU_T) // Þ -#define EU_YDIA ALGR(EU_Y) // Ÿ -#define EU_UDIA ALGR(EU_U) // Ü -#define EU_IDIA ALGR(EU_I) // Ï -#define EU_ODIA ALGR(EU_O) // Ö -#define EU_OE ALGR(EU_P) // Œ -#define EU_LDAQ ALGR(EU_LBRC) // « -#define EU_RDAQ ALGR(EU_RBRC) // » -#define EU_NOT ALGR(EU_BSLS) // ¬ -#define EU_ADIA ALGR(EU_A) // Ä -#define EU_SS ALGR(EU_S) // ß -#define EU_ETH ALGR(EU_D) // Ð -#define EU_EGRV ALGR(EU_F) // È -#define EU_EACU ALGR(EU_G) // É -#define EU_UGRV ALGR(EU_H) // Ù -#define EU_UACU ALGR(EU_J) // Ú -#define EU_IJ ALGR(EU_K) // IJ -#define EU_OSTR ALGR(EU_L) // Ø -#define EU_DEG ALGR(EU_SCLN) // ° -#define EU_ACUT ALGR(EU_QUOT) // ´ (dead) -#define EU_AGRV ALGR(EU_Z) // À -#define EU_AACU ALGR(EU_X) // Á -#define EU_CCED ALGR(EU_C) // Ç -#define EU_IGRV ALGR(EU_V) // Ì -#define EU_IACU ALGR(EU_B) // Í -#define EU_NTIL ALGR(EU_N) // Ñ -#define EU_DGRK ALGR(EU_M) // μ (dead Greek key) -#define EU_OGRV ALGR(EU_COMM) // Ò -#define EU_OACU ALGR(EU_DOT) // Ó -#define EU_IQUE ALGR(EU_SLSH) // ¿ -#define EU_DTIL ALGR(EU_TILD) // ~ (dead) -#define EU_SUP1 S(ALGR(EU_1)) // ¹ -#define EU_SUP2 S(ALGR(EU_2)) // ² -#define EU_SUP3 S(ALGR(EU_3)) // ³ -#define EU_YEN ALGR(EU_DLR) // ¥ -#define EU_CENT S(EU_EURO) // ¢ -#define EU_CARN S(EU_DCIR) // ˇ (dead) -#define EU_MACR S(ALGR(EU_7)) // ¯ (dead) -#define EU_SLQU S(EU_DLQU) // ‚ -#define EU_LSQU S(EU_LDQU) // ‘ -#define EU_RSQU S(EU_RDQU) // ’ -#define EU_MDSH S(EU_NDSH) // — -#define EU_DIV S(EU_MUL) // ÷ -#define EU_LSAQ S(EU_LDAQ) // ‹ -#define EU_RSAQ S(EU_RDAQ) // › -#define EU_BRKP S(ALGR(EU_BSLS)) // ¦ -#define EU_SECT S(ALGR(EU_S)) // § -#define EU_MDDT S(ALGR(EU_SCLN)) // · -#define EU_DIAE ALGR(EU_DQUO) // ¨ (dead) -#define EU_ELLP ALGR(EU_QUES) // … - diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h index e115d9c1c0..d268917513 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_FARSI_KEYCODES_VERSION "0.0.1" -#define QMK_FARSI_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_FARSI_KEYCODES_VERSION_MAJOR 0 -#define QMK_FARSI_KEYCODES_VERSION_MINOR 0 -#define QMK_FARSI_KEYCODES_VERSION_PATCH 1 - // Aliases #define FA_ZWJ KC_GRV // (zero-width joiner) #define FA_1A KC_1 // ۱ @@ -156,7 +150,7 @@ #define FA_DQT ALGR(FA_GAF) // " #define FA_MINA ALGR(FA_BSLS) // - #define FA_PIPE ALGR(FA_ZA) // | -#define FA_SUBA ALGR(FA_RE) // ٖ +#define FA_SUBA ALGR(FA_RA) // ٖ #define FA_HMZB ALGR(FA_DAL) // ء #define FA_ELLP ALGR(FA_PE) // … #define FA_COMM ALGR(FA_WAW) // , diff --git a/quantum/keymap_extras/keymap_finnish.h b/quantum/keymap_extras/keymap_finnish.h index cb21da9962..4c0b78ff60 100644 --- a/quantum/keymap_extras/keymap_finnish.h +++ b/quantum/keymap_extras/keymap_finnish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_FINNISH_KEYCODES_VERSION "0.0.1" -#define QMK_FINNISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_FINNISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_FINNISH_KEYCODES_VERSION_MINOR 0 -#define QMK_FINNISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define FI_SECT KC_GRV // § #define FI_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index d4352c6481..db5a7ac2ff 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_FRENCH_KEYCODES_VERSION "0.0.1" -#define QMK_FRENCH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_FRENCH_KEYCODES_VERSION_MAJOR 0 -#define QMK_FRENCH_KEYCODES_VERSION_MINOR 0 -#define QMK_FRENCH_KEYCODES_VERSION_PATCH 1 - // Aliases #define FR_SUP2 KC_GRV // ² #define FR_AMPR KC_1 // & diff --git a/quantum/keymap_extras/keymap_french_afnor.h b/quantum/keymap_extras/keymap_french_afnor.h index 8e6905cc01..894ff4305b 100644 --- a/quantum/keymap_extras/keymap_french_afnor.h +++ b/quantum/keymap_extras/keymap_french_afnor.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_FRENCH_AFNOR_KEYCODES_VERSION "0.0.1" -#define QMK_FRENCH_AFNOR_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_FRENCH_AFNOR_KEYCODES_VERSION_MAJOR 0 -#define QMK_FRENCH_AFNOR_KEYCODES_VERSION_MINOR 0 -#define QMK_FRENCH_AFNOR_KEYCODES_VERSION_PATCH 1 - // Aliases #define FR_AT KC_GRV // @ #define FR_AGRV KC_1 // à diff --git a/quantum/keymap_extras/keymap_french_mac_iso.h b/quantum/keymap_extras/keymap_french_mac_iso.h index ad9d280f2a..89b16478bc 100644 --- a/quantum/keymap_extras/keymap_french_mac_iso.h +++ b/quantum/keymap_extras/keymap_french_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_FRENCH_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_FRENCH_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_FRENCH_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_FRENCH_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_FRENCH_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define FR_AT KC_GRV // @ #define FR_AMPR KC_1 // & diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h index bc98daa2fd..074f0d321b 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_GERMAN_KEYCODES_VERSION "0.0.1" -#define QMK_GERMAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_GERMAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_GERMAN_KEYCODES_VERSION_MINOR 0 -#define QMK_GERMAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define DE_CIRC KC_GRV // ^ (dead) #define DE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_german_mac_iso.h b/quantum/keymap_extras/keymap_german_mac_iso.h index ba3143c570..1a50fabf1a 100644 --- a/quantum/keymap_extras/keymap_german_mac_iso.h +++ b/quantum/keymap_extras/keymap_german_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_GERMAN_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_GERMAN_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_GERMAN_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_GERMAN_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_GERMAN_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define DE_CIRC KC_GRV // ^ (dead) #define DE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_greek.h b/quantum/keymap_extras/keymap_greek.h index fb2f02a04f..e21022abbc 100644 --- a/quantum/keymap_extras/keymap_greek.h +++ b/quantum/keymap_extras/keymap_greek.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_GREEK_KEYCODES_VERSION "0.0.1" -#define QMK_GREEK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_GREEK_KEYCODES_VERSION_MAJOR 0 -#define QMK_GREEK_KEYCODES_VERSION_MINOR 0 -#define QMK_GREEK_KEYCODES_VERSION_PATCH 1 - // Aliases #define GR_GRV KC_GRV // ` #define GR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_hebrew.h b/quantum/keymap_extras/keymap_hebrew.h index 5d1d4a29c6..b122eb09ea 100644 --- a/quantum/keymap_extras/keymap_hebrew.h +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_HEBREW_KEYCODES_VERSION "0.0.1" -#define QMK_HEBREW_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_HEBREW_KEYCODES_VERSION_MAJOR 0 -#define QMK_HEBREW_KEYCODES_VERSION_MINOR 0 -#define QMK_HEBREW_KEYCODES_VERSION_PATCH 1 - // Aliases #define IL_SCLN KC_GRV // ; #define IL_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_hungarian.h b/quantum/keymap_extras/keymap_hungarian.h index 27236553e8..22ae74538c 100644 --- a/quantum/keymap_extras/keymap_hungarian.h +++ b/quantum/keymap_extras/keymap_hungarian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_HUNGARIAN_KEYCODES_VERSION "0.0.1" -#define QMK_HUNGARIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_HUNGARIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_HUNGARIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_HUNGARIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define HU_0 KC_GRV // 0 #define HU_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_icelandic.h b/quantum/keymap_extras/keymap_icelandic.h index 409be27b77..c58e48b22d 100644 --- a/quantum/keymap_extras/keymap_icelandic.h +++ b/quantum/keymap_extras/keymap_icelandic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ICELANDIC_KEYCODES_VERSION "0.0.1" -#define QMK_ICELANDIC_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ICELANDIC_KEYCODES_VERSION_MAJOR 0 -#define QMK_ICELANDIC_KEYCODES_VERSION_MINOR 0 -#define QMK_ICELANDIC_KEYCODES_VERSION_PATCH 1 - // Aliases #define IS_RNGA KC_GRV // ° (dead) #define IS_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_irish.h b/quantum/keymap_extras/keymap_irish.h index 587467bcbe..ba23cddc95 100644 --- a/quantum/keymap_extras/keymap_irish.h +++ b/quantum/keymap_extras/keymap_irish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_IRISH_KEYCODES_VERSION "0.0.1" -#define QMK_IRISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_IRISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_IRISH_KEYCODES_VERSION_MINOR 0 -#define QMK_IRISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define IE_GRV KC_GRV // ` #define IE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h index 9fd7f1b15c..0317cc5e78 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ITALIAN_KEYCODES_VERSION "0.0.1" -#define QMK_ITALIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ITALIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_ITALIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_ITALIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define IT_BSLS KC_GRV // (backslash) #define IT_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_italian_mac_ansi.h b/quantum/keymap_extras/keymap_italian_mac_ansi.h index 9ef38c0d87..ebf2e1e709 100644 --- a/quantum/keymap_extras/keymap_italian_mac_ansi.h +++ b/quantum/keymap_extras/keymap_italian_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ITALIAN_MAC_ANSI_KEYCODES_VERSION "0.0.1" -#define QMK_ITALIAN_MAC_ANSI_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ITALIAN_MAC_ANSI_KEYCODES_VERSION_MAJOR 0 -#define QMK_ITALIAN_MAC_ANSI_KEYCODES_VERSION_MINOR 0 -#define QMK_ITALIAN_MAC_ANSI_KEYCODES_VERSION_PATCH 1 - // Aliases #define IT_LABK KC_GRV // < #define IT_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_italian_mac_iso.h b/quantum/keymap_extras/keymap_italian_mac_iso.h index e80cfa450c..327777dd8a 100644 --- a/quantum/keymap_extras/keymap_italian_mac_iso.h +++ b/quantum/keymap_extras/keymap_italian_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ITALIAN_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_ITALIAN_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ITALIAN_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_ITALIAN_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_ITALIAN_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define IT_BSLS KC_GRV // (backslash) #define IT_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_japanese.h b/quantum/keymap_extras/keymap_japanese.h index 55df86e16d..68a91be18b 100644 --- a/quantum/keymap_extras/keymap_japanese.h +++ b/quantum/keymap_extras/keymap_japanese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_JAPANESE_KEYCODES_VERSION "0.0.1" -#define QMK_JAPANESE_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_JAPANESE_KEYCODES_VERSION_MAJOR 0 -#define QMK_JAPANESE_KEYCODES_VERSION_MINOR 0 -#define QMK_JAPANESE_KEYCODES_VERSION_PATCH 1 - // Aliases #define JP_ZKHK KC_GRV // Zenkaku ↔ Hankaku ↔ Kanji (半角 ↔ 全角 ↔ 漢字) #define JP_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h index 7bf64c4841..f759e136bd 100644 --- a/quantum/keymap_extras/keymap_korean.h +++ b/quantum/keymap_extras/keymap_korean.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_KOREAN_KEYCODES_VERSION "0.0.1" -#define QMK_KOREAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_KOREAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_KOREAN_KEYCODES_VERSION_MINOR 0 -#define QMK_KOREAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define KR_GRV KC_GRV // ` #define KR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_latvian.h b/quantum/keymap_extras/keymap_latvian.h index 4d60c45163..3444e744be 100644 --- a/quantum/keymap_extras/keymap_latvian.h +++ b/quantum/keymap_extras/keymap_latvian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_LATVIAN_KEYCODES_VERSION "0.0.1" -#define QMK_LATVIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_LATVIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_LATVIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_LATVIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define LV_GRV KC_GRV // ` #define LV_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_lithuanian_azerty.h b/quantum/keymap_extras/keymap_lithuanian_azerty.h index e88cc75e07..235989e67b 100644 --- a/quantum/keymap_extras/keymap_lithuanian_azerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_LITHUANIAN_AZERTY_KEYCODES_VERSION "0.0.1" -#define QMK_LITHUANIAN_AZERTY_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_LITHUANIAN_AZERTY_KEYCODES_VERSION_MAJOR 0 -#define QMK_LITHUANIAN_AZERTY_KEYCODES_VERSION_MINOR 0 -#define QMK_LITHUANIAN_AZERTY_KEYCODES_VERSION_PATCH 1 - // Aliases #define LT_GRV KC_GRV // ` #define LT_EXLM KC_1 // ! diff --git a/quantum/keymap_extras/keymap_lithuanian_qwerty.h b/quantum/keymap_extras/keymap_lithuanian_qwerty.h index 3321615c1e..58f4381420 100644 --- a/quantum/keymap_extras/keymap_lithuanian_qwerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_LITHUANIAN_QWERTY_KEYCODES_VERSION "0.0.1" -#define QMK_LITHUANIAN_QWERTY_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_LITHUANIAN_QWERTY_KEYCODES_VERSION_MAJOR 0 -#define QMK_LITHUANIAN_QWERTY_KEYCODES_VERSION_MINOR 0 -#define QMK_LITHUANIAN_QWERTY_KEYCODES_VERSION_PATCH 1 - // Aliases #define LT_GRV KC_GRV // ` #define LT_AOGO KC_1 // Ą diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index 5d10f19fd5..dbeef8d544 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_NEO2_KEYCODES_VERSION "0.0.1" -#define QMK_NEO2_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_NEO2_KEYCODES_VERSION_MAJOR 0 -#define QMK_NEO2_KEYCODES_VERSION_MINOR 0 -#define QMK_NEO2_KEYCODES_VERSION_PATCH 1 - // Aliases #define NE_CIRC KC_GRV // ^ (dead) #define NE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index 3a11b29fc8..bb66fcf12f 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_NORDIC_KEYCODES_VERSION "0.0.1" -#define QMK_NORDIC_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_NORDIC_KEYCODES_VERSION_MAJOR 0 -#define QMK_NORDIC_KEYCODES_VERSION_MINOR 0 -#define QMK_NORDIC_KEYCODES_VERSION_PATCH 1 - // Aliases #define NO_HALF KC_GRV #define NO_PLUS KC_MINS diff --git a/quantum/keymap_extras/keymap_norman.h b/quantum/keymap_extras/keymap_norman.h index d47c2ff8a7..9938e53efe 100644 --- a/quantum/keymap_extras/keymap_norman.h +++ b/quantum/keymap_extras/keymap_norman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_NORMAN_KEYCODES_VERSION "0.0.1" -#define QMK_NORMAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_NORMAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_NORMAN_KEYCODES_VERSION_MINOR 0 -#define QMK_NORMAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define NM_GRV KC_GRV // ` #define NM_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_norwegian.h b/quantum/keymap_extras/keymap_norwegian.h index 021b8c3b9c..e50e1ab3bb 100644 --- a/quantum/keymap_extras/keymap_norwegian.h +++ b/quantum/keymap_extras/keymap_norwegian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_NORWEGIAN_KEYCODES_VERSION "0.0.1" -#define QMK_NORWEGIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_NORWEGIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_NORWEGIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_NORWEGIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define NO_PIPE KC_GRV // | #define NO_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_plover.h b/quantum/keymap_extras/keymap_plover.h index e7facfd623..285eaa0741 100644 --- a/quantum/keymap_extras/keymap_plover.h +++ b/quantum/keymap_extras/keymap_plover.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_PLOVER_KEYCODES_VERSION "0.0.1" -#define QMK_PLOVER_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_PLOVER_KEYCODES_VERSION_MAJOR 0 -#define QMK_PLOVER_KEYCODES_VERSION_MINOR 0 -#define QMK_PLOVER_KEYCODES_VERSION_PATCH 1 - // Aliases #define PV_NUM KC_1 #define PV_LS KC_Q diff --git a/quantum/keymap_extras/keymap_plover_dvorak.h b/quantum/keymap_extras/keymap_plover_dvorak.h index 5c8a4f9ada..8347b2b20c 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_PLOVER_DVORAK_KEYCODES_VERSION "0.0.1" -#define QMK_PLOVER_DVORAK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_PLOVER_DVORAK_KEYCODES_VERSION_MAJOR 0 -#define QMK_PLOVER_DVORAK_KEYCODES_VERSION_MINOR 0 -#define QMK_PLOVER_DVORAK_KEYCODES_VERSION_PATCH 1 - // Aliases #define PD_NUM DV_1 #define PD_LS DV_Q diff --git a/quantum/keymap_extras/keymap_polish.h b/quantum/keymap_extras/keymap_polish.h index e5e48097f7..422c58c1e3 100644 --- a/quantum/keymap_extras/keymap_polish.h +++ b/quantum/keymap_extras/keymap_polish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_POLISH_KEYCODES_VERSION "0.0.1" -#define QMK_POLISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_POLISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_POLISH_KEYCODES_VERSION_MINOR 0 -#define QMK_POLISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define PL_GRV KC_GRV // ` #define PL_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_portuguese.h b/quantum/keymap_extras/keymap_portuguese.h index 44abaf6537..6a896de529 100644 --- a/quantum/keymap_extras/keymap_portuguese.h +++ b/quantum/keymap_extras/keymap_portuguese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_PORTUGUESE_KEYCODES_VERSION "0.0.1" -#define QMK_PORTUGUESE_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_PORTUGUESE_KEYCODES_VERSION_MAJOR 0 -#define QMK_PORTUGUESE_KEYCODES_VERSION_MINOR 0 -#define QMK_PORTUGUESE_KEYCODES_VERSION_PATCH 1 - // Aliases #define PT_BSLS KC_GRV // (backslash) #define PT_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_portuguese_mac_iso.h b/quantum/keymap_extras/keymap_portuguese_mac_iso.h index f2d04440fb..1a11cfa5ab 100644 --- a/quantum/keymap_extras/keymap_portuguese_mac_iso.h +++ b/quantum/keymap_extras/keymap_portuguese_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_PORTUGUESE_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_PORTUGUESE_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_PORTUGUESE_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_PORTUGUESE_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_PORTUGUESE_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define PT_SECT KC_GRV // § #define PT_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_romanian.h b/quantum/keymap_extras/keymap_romanian.h index 9a7239e032..8f90988855 100644 --- a/quantum/keymap_extras/keymap_romanian.h +++ b/quantum/keymap_extras/keymap_romanian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_ROMANIAN_KEYCODES_VERSION "0.0.1" -#define QMK_ROMANIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_ROMANIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_ROMANIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_ROMANIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define RO_DLQU KC_GRV // „ #define RO_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index b756a657df..440692345e 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_RUSSIAN_KEYCODES_VERSION "0.0.1" -#define QMK_RUSSIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_RUSSIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_RUSSIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_RUSSIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define RU_YO KC_GRV // Ё #define RU_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h index 45fb1ede04..833311076f 100644 --- a/quantum/keymap_extras/keymap_russian_typewriter.h +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_RUSSIAN_TYPEWRITER_KEYCODES_VERSION "0.0.1" -#define QMK_RUSSIAN_TYPEWRITER_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_RUSSIAN_TYPEWRITER_KEYCODES_VERSION_MAJOR 0 -#define QMK_RUSSIAN_TYPEWRITER_KEYCODES_VERSION_MINOR 0 -#define QMK_RUSSIAN_TYPEWRITER_KEYCODES_VERSION_PATCH 1 - // Aliases #define RU_PIPE KC_GRV // | #define RU_NUM KC_1 // № diff --git a/quantum/keymap_extras/keymap_serbian.h b/quantum/keymap_extras/keymap_serbian.h index 202322b591..fa0e474df8 100644 --- a/quantum/keymap_extras/keymap_serbian.h +++ b/quantum/keymap_extras/keymap_serbian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SERBIAN_KEYCODES_VERSION "0.0.1" -#define QMK_SERBIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SERBIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_SERBIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_SERBIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define RS_GRV KC_GRV // ` #define RS_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_serbian_latin.h b/quantum/keymap_extras/keymap_serbian_latin.h index e863aa4ed8..a2038b6df8 100644 --- a/quantum/keymap_extras/keymap_serbian_latin.h +++ b/quantum/keymap_extras/keymap_serbian_latin.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SERBIAN_LATIN_KEYCODES_VERSION "0.0.1" -#define QMK_SERBIAN_LATIN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SERBIAN_LATIN_KEYCODES_VERSION_MAJOR 0 -#define QMK_SERBIAN_LATIN_KEYCODES_VERSION_MINOR 0 -#define QMK_SERBIAN_LATIN_KEYCODES_VERSION_PATCH 1 - // Aliases #define RS_SLQU KC_GRV // ‚ (dead) #define RS_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_slovak.h b/quantum/keymap_extras/keymap_slovak.h index f5848a6aaf..08666ef060 100644 --- a/quantum/keymap_extras/keymap_slovak.h +++ b/quantum/keymap_extras/keymap_slovak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SLOVAK_KEYCODES_VERSION "0.0.1" -#define QMK_SLOVAK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SLOVAK_KEYCODES_VERSION_MAJOR 0 -#define QMK_SLOVAK_KEYCODES_VERSION_MINOR 0 -#define QMK_SLOVAK_KEYCODES_VERSION_PATCH 1 - // Aliases #define SK_SCLN KC_GRV // ; #define SK_PLUS KC_1 // + diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h index 502f06ad64..31a8c5f9a5 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SLOVENIAN_KEYCODES_VERSION "0.0.1" -#define QMK_SLOVENIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SLOVENIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_SLOVENIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_SLOVENIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define SI_CEDL KC_GRV // ¸ (dead) #define SI_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_spanish.h b/quantum/keymap_extras/keymap_spanish.h index dc23aea639..f87eb6b027 100644 --- a/quantum/keymap_extras/keymap_spanish.h +++ b/quantum/keymap_extras/keymap_spanish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SPANISH_KEYCODES_VERSION "0.0.1" -#define QMK_SPANISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SPANISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_SPANISH_KEYCODES_VERSION_MINOR 0 -#define QMK_SPANISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define ES_MORD KC_GRV // º #define ES_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_spanish_dvorak.h b/quantum/keymap_extras/keymap_spanish_dvorak.h index e19a84b7e5..782f23a5be 100644 --- a/quantum/keymap_extras/keymap_spanish_dvorak.h +++ b/quantum/keymap_extras/keymap_spanish_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SPANISH_DVORAK_KEYCODES_VERSION "0.0.1" -#define QMK_SPANISH_DVORAK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SPANISH_DVORAK_KEYCODES_VERSION_MAJOR 0 -#define QMK_SPANISH_DVORAK_KEYCODES_VERSION_MINOR 0 -#define QMK_SPANISH_DVORAK_KEYCODES_VERSION_PATCH 1 - // Aliases #define DV_MORD KC_GRV // º #define DV_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_spanish_latin_america.h b/quantum/keymap_extras/keymap_spanish_latin_america.h index 57329d20cd..2f11743061 100644 --- a/quantum/keymap_extras/keymap_spanish_latin_america.h +++ b/quantum/keymap_extras/keymap_spanish_latin_america.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SPANISH_LATIN_AMERICA_KEYCODES_VERSION "0.0.1" -#define QMK_SPANISH_LATIN_AMERICA_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SPANISH_LATIN_AMERICA_KEYCODES_VERSION_MAJOR 0 -#define QMK_SPANISH_LATIN_AMERICA_KEYCODES_VERSION_MINOR 0 -#define QMK_SPANISH_LATIN_AMERICA_KEYCODES_VERSION_PATCH 1 - // Aliases #define ES_PIPE KC_GRV // | #define ES_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swedish.h b/quantum/keymap_extras/keymap_swedish.h index a50f8af30d..a9d015b22e 100644 --- a/quantum/keymap_extras/keymap_swedish.h +++ b/quantum/keymap_extras/keymap_swedish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWEDISH_KEYCODES_VERSION "0.0.1" -#define QMK_SWEDISH_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWEDISH_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWEDISH_KEYCODES_VERSION_MINOR 0 -#define QMK_SWEDISH_KEYCODES_VERSION_PATCH 1 - // Aliases #define SE_SECT KC_GRV // § #define SE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swedish_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_mac_ansi.h index 642c161dab..36a31220a1 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWEDISH_MAC_ANSI_KEYCODES_VERSION "0.0.1" -#define QMK_SWEDISH_MAC_ANSI_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWEDISH_MAC_ANSI_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWEDISH_MAC_ANSI_KEYCODES_VERSION_MINOR 0 -#define QMK_SWEDISH_MAC_ANSI_KEYCODES_VERSION_PATCH 1 - // Aliases #define SE_LABK KC_GRV // < #define SE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swedish_mac_iso.h b/quantum/keymap_extras/keymap_swedish_mac_iso.h index 50387364cf..7f085dc16b 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWEDISH_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_SWEDISH_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWEDISH_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWEDISH_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_SWEDISH_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define SE_SECT KC_GRV // § #define SE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h index be1581bb3d..20781b2e53 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWEDISH_PRO_MAC_ANSI_KEYCODES_VERSION "0.0.1" -#define QMK_SWEDISH_PRO_MAC_ANSI_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWEDISH_PRO_MAC_ANSI_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWEDISH_PRO_MAC_ANSI_KEYCODES_VERSION_MINOR 0 -#define QMK_SWEDISH_PRO_MAC_ANSI_KEYCODES_VERSION_PATCH 1 - // Aliases #define SE_LABK KC_GRV // < #define SE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h index d50213f987..dbbc24ed02 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWEDISH_PRO_MAC_ISO_KEYCODES_VERSION "0.0.1" -#define QMK_SWEDISH_PRO_MAC_ISO_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWEDISH_PRO_MAC_ISO_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWEDISH_PRO_MAC_ISO_KEYCODES_VERSION_MINOR 0 -#define QMK_SWEDISH_PRO_MAC_ISO_KEYCODES_VERSION_PATCH 1 - // Aliases #define SE_SECT KC_GRV // § #define SE_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swiss_de.h b/quantum/keymap_extras/keymap_swiss_de.h index 4ebdb5c610..2cedf23788 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWISS_DE_KEYCODES_VERSION "0.0.1" -#define QMK_SWISS_DE_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWISS_DE_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWISS_DE_KEYCODES_VERSION_MINOR 0 -#define QMK_SWISS_DE_KEYCODES_VERSION_PATCH 1 - #undef CH_H // Aliases diff --git a/quantum/keymap_extras/keymap_swiss_fr.h b/quantum/keymap_extras/keymap_swiss_fr.h index 11fcc6536d..347815504b 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_SWISS_FR_KEYCODES_VERSION "0.0.1" -#define QMK_SWISS_FR_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_SWISS_FR_KEYCODES_VERSION_MAJOR 0 -#define QMK_SWISS_FR_KEYCODES_VERSION_MINOR 0 -#define QMK_SWISS_FR_KEYCODES_VERSION_PATCH 1 - #undef CH_H // Aliases diff --git a/quantum/keymap_extras/keymap_turkish_f.h b/quantum/keymap_extras/keymap_turkish_f.h index bbdaa3af25..d9d08adae5 100644 --- a/quantum/keymap_extras/keymap_turkish_f.h +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_TURKISH_F_KEYCODES_VERSION "0.0.1" -#define QMK_TURKISH_F_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_TURKISH_F_KEYCODES_VERSION_MAJOR 0 -#define QMK_TURKISH_F_KEYCODES_VERSION_MINOR 0 -#define QMK_TURKISH_F_KEYCODES_VERSION_PATCH 1 - // Aliases #define TR_PLUS KC_GRV // + #define TR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_turkish_q.h b/quantum/keymap_extras/keymap_turkish_q.h index d3fa00d7ae..781c406347 100644 --- a/quantum/keymap_extras/keymap_turkish_q.h +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_TURKISH_Q_KEYCODES_VERSION "0.0.1" -#define QMK_TURKISH_Q_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_TURKISH_Q_KEYCODES_VERSION_MAJOR 0 -#define QMK_TURKISH_Q_KEYCODES_VERSION_MINOR 0 -#define QMK_TURKISH_Q_KEYCODES_VERSION_PATCH 1 - // Aliases #define TR_DQUO KC_GRV // " #define TR_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_uk.h b/quantum/keymap_extras/keymap_uk.h index 7490af6cf6..49237768d4 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_UK_KEYCODES_VERSION "0.0.1" -#define QMK_UK_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_UK_KEYCODES_VERSION_MAJOR 0 -#define QMK_UK_KEYCODES_VERSION_MINOR 0 -#define QMK_UK_KEYCODES_VERSION_PATCH 1 - // Aliases #define UK_GRV KC_GRV // ` #define UK_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_ukrainian.h b/quantum/keymap_extras/keymap_ukrainian.h index 78e39f8c75..760cc265ea 100644 --- a/quantum/keymap_extras/keymap_ukrainian.h +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_UKRAINIAN_KEYCODES_VERSION "0.0.1" -#define QMK_UKRAINIAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_UKRAINIAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_UKRAINIAN_KEYCODES_VERSION_MINOR 0 -#define QMK_UKRAINIAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define UA_QUOT KC_GRV // ' #define UA_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_us.h b/quantum/keymap_extras/keymap_us.h index b6e380ab23..9d1c7ad628 100644 --- a/quantum/keymap_extras/keymap_us.h +++ b/quantum/keymap_extras/keymap_us.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_US_KEYCODES_VERSION "0.0.1" -#define QMK_US_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_US_KEYCODES_VERSION_MAJOR 0 -#define QMK_US_KEYCODES_VERSION_MINOR 0 -#define QMK_US_KEYCODES_VERSION_PATCH 1 - // Aliases #define KC_TILD S(KC_GRAVE) // ~ #define KC_EXLM S(KC_1) // ! diff --git a/quantum/keymap_extras/keymap_us_extended.h b/quantum/keymap_extras/keymap_us_extended.h index 4262a7c44e..c8e56cc5a8 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_US_EXTENDED_KEYCODES_VERSION "0.0.1" -#define QMK_US_EXTENDED_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_US_EXTENDED_KEYCODES_VERSION_MAJOR 0 -#define QMK_US_EXTENDED_KEYCODES_VERSION_MINOR 0 -#define QMK_US_EXTENDED_KEYCODES_VERSION_PATCH 1 - // Aliases #define US_GRV KC_GRV // ` #define US_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_us_international.h b/quantum/keymap_extras/keymap_us_international.h index adc7051fe4..1b211bd4a6 100644 --- a/quantum/keymap_extras/keymap_us_international.h +++ b/quantum/keymap_extras/keymap_us_international.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_US_INTERNATIONAL_KEYCODES_VERSION "0.0.1" -#define QMK_US_INTERNATIONAL_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_US_INTERNATIONAL_KEYCODES_VERSION_MAJOR 0 -#define QMK_US_INTERNATIONAL_KEYCODES_VERSION_MINOR 0 -#define QMK_US_INTERNATIONAL_KEYCODES_VERSION_PATCH 1 - // Aliases #define US_DGRV KC_GRV // ` (dead) #define US_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_us_international_linux.h b/quantum/keymap_extras/keymap_us_international_linux.h index db315968d6..778ab4c899 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_US_INTERNATIONAL_LINUX_KEYCODES_VERSION "0.0.1" -#define QMK_US_INTERNATIONAL_LINUX_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_US_INTERNATIONAL_LINUX_KEYCODES_VERSION_MAJOR 0 -#define QMK_US_INTERNATIONAL_LINUX_KEYCODES_VERSION_MINOR 0 -#define QMK_US_INTERNATIONAL_LINUX_KEYCODES_VERSION_PATCH 1 - // Aliases #define US_DGRV KC_GRV // ` (dead) #define US_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_workman.h b/quantum/keymap_extras/keymap_workman.h index 727e44512c..31bd953d7f 100644 --- a/quantum/keymap_extras/keymap_workman.h +++ b/quantum/keymap_extras/keymap_workman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_WORKMAN_KEYCODES_VERSION "0.0.1" -#define QMK_WORKMAN_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_WORKMAN_KEYCODES_VERSION_MAJOR 0 -#define QMK_WORKMAN_KEYCODES_VERSION_MINOR 0 -#define QMK_WORKMAN_KEYCODES_VERSION_PATCH 1 - // Aliases #define WK_GRV KC_GRV // ` #define WK_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_workman_zxcvm.h b/quantum/keymap_extras/keymap_workman_zxcvm.h index 4655af60d6..f05c89adb8 100644 --- a/quantum/keymap_extras/keymap_workman_zxcvm.h +++ b/quantum/keymap_extras/keymap_workman_zxcvm.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -27,12 +27,6 @@ #include "keycodes.h" // clang-format off -#define QMK_WORKMAN_ZXCVM_KEYCODES_VERSION "0.0.1" -#define QMK_WORKMAN_ZXCVM_KEYCODES_VERSION_BCD 0x00000001 -#define QMK_WORKMAN_ZXCVM_KEYCODES_VERSION_MAJOR 0 -#define QMK_WORKMAN_ZXCVM_KEYCODES_VERSION_MINOR 0 -#define QMK_WORKMAN_ZXCVM_KEYCODES_VERSION_PATCH 1 - // Aliases #define WK_GRV KC_GRV // ` #define WK_1 KC_1 // 1 diff --git a/quantum/keymap_extras/sendstring_lithuanian_qwerty.h b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h index 0c0bdc6a98..676930e9d3 100644 --- a/quantum/keymap_extras/sendstring_lithuanian_qwerty.h +++ b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h @@ -54,13 +54,13 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = { XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // ! " # $ % & ' - KC_SPC, LT_AOGO, LT_QUOT, LT_EOGO, LT_EDOT, LT_IOGO, LT_UOGO, LT_QUOT, + KC_SPC, LT_1, LT_QUOT, LT_3, LT_4, LT_5, LT_7, LT_QUOT, // ( ) * + , - . / - LT_9, LT_0, LT_UMAC, LT_ZCAR, LT_COMM, LT_MINS, LT_DOT, LT_SLSH, + LT_9, LT_0, LT_8, LT_ZCAR, LT_COMM, LT_MINS, LT_DOT, LT_SLSH, // 0 1 2 3 4 5 6 7 LT_0, LT_AOGO, LT_CCAR, LT_EOGO, LT_EDOT, LT_IOGO, LT_SCAR, LT_UOGO, // 8 9 : ; < = > ? - LT_UMAC, LT_9, LT_SCLN, LT_SCLN, LT_COMM, LT_ZCAR, LT_DOT, LT_SLSH, + LT_UMAC, LT_9, LT_SCLN, LT_SCLN, LT_COMM, LT_PLUS, LT_DOT, LT_SLSH, // @ A B C D E F G LT_CCAR, LT_A, LT_B, LT_C, LT_D, LT_E, LT_F, LT_G, // H I J K L M N O diff --git a/quantum/keymap_extras/sendstring_slovak.h b/quantum/keymap_extras/sendstring_slovak.h index a2a545e412..a908773969 100644 --- a/quantum/keymap_extras/sendstring_slovak.h +++ b/quantum/keymap_extras/sendstring_slovak.h @@ -108,13 +108,13 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = { // P Q R S T U V W SK_P, SK_Q, SK_R, SK_S, SK_T, SK_U, SK_V, SK_W, // X Y Z [ \ ] ^ _ - SK_X, SK_Y, SK_Z, SK_F, SK_Q, SK_G, SK_SCAR, SK_MINS, + SK_X, SK_Y, SK_Z, SK_F, SK_Q, SK_G, SK_3, SK_MINS, // ` a b c d e f g - SK_YACU, SK_A, SK_B, SK_C, SK_D, SK_E, SK_F, SK_G, + SK_7, SK_A, SK_B, SK_C, SK_D, SK_E, SK_F, SK_G, // h i j k l m n o SK_H, SK_I, SK_J, SK_K, SK_L, SK_M, SK_N, SK_O, // p q r s t u v w SK_P, SK_Q, SK_R, SK_S, SK_T, SK_U, SK_V, SK_W, // x y z { | } ~ DEL - SK_X, SK_Y, SK_Z, SK_B, SK_W, SK_N, SK_PLUS, KC_DEL + SK_X, SK_Y, SK_Z, SK_B, SK_W, SK_N, SK_1, KC_DEL }; diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c index 99fd3f929e..327df6e277 100644 --- a/quantum/keymap_introspection.c +++ b/quantum/keymap_introspection.c @@ -1,10 +1,6 @@ // Copyright 2022 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later -#if defined(COMMUNITY_MODULES_ENABLE) -# include "community_modules_introspection.h" -#endif // defined(COMMUNITY_MODULES_ENABLE) - // Pull the actual keymap code so that we can inspect stuff from it #include KEYMAP_C @@ -13,7 +9,6 @@ # include INTROSPECTION_KEYMAP_C #endif // INTROSPECTION_KEYMAP_C -#include "compiler_support.h" #include "keymap_introspection.h" #include "util.h" @@ -31,9 +26,9 @@ __attribute__((weak)) uint8_t keymap_layer_count(void) { } #ifdef DYNAMIC_KEYMAP_ENABLE -STATIC_ASSERT(NUM_KEYMAP_LAYERS_RAW <= MAX_LAYER, "Number of keymap layers exceeds maximum set by DYNAMIC_KEYMAP_LAYER_COUNT"); +_Static_assert(NUM_KEYMAP_LAYERS_RAW <= MAX_LAYER, "Number of keymap layers exceeds maximum set by DYNAMIC_KEYMAP_LAYER_COUNT"); #else -STATIC_ASSERT(NUM_KEYMAP_LAYERS_RAW <= MAX_LAYER, "Number of keymap layers exceeds maximum set by LAYER_STATE_(8|16|32)BIT"); +_Static_assert(NUM_KEYMAP_LAYERS_RAW <= MAX_LAYER, "Number of keymap layers exceeds maximum set by LAYER_STATE_(8|16|32)BIT"); #endif uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column) { @@ -62,7 +57,7 @@ __attribute__((weak)) uint8_t encodermap_layer_count(void) { return encodermap_layer_count_raw(); } -STATIC_ASSERT(NUM_KEYMAP_LAYERS_RAW == NUM_ENCODERMAP_LAYERS_RAW, "Number of encoder_map layers doesn't match the number of keymap layers"); +_Static_assert(NUM_KEYMAP_LAYERS_RAW == NUM_ENCODERMAP_LAYERS_RAW, "Number of encoder_map layers doesn't match the number of keymap layers"); uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { if (layer_num < NUM_ENCODERMAP_LAYERS_RAW && encoder_idx < NUM_ENCODERS) { @@ -107,8 +102,6 @@ __attribute__((weak)) uint16_t combo_count(void) { return combo_count_raw(); } -STATIC_ASSERT(ARRAY_SIZE(key_combos) <= (QK_KB), "Number of combos is abnormally high. Are you using SAFE_RANGE in an enum for combos?"); - combo_t* combo_get_raw(uint16_t combo_idx) { if (combo_idx >= combo_count_raw()) { return NULL; @@ -134,8 +127,6 @@ __attribute__((weak)) uint16_t tap_dance_count(void) { return tap_dance_count_raw(); } -STATIC_ASSERT(ARRAY_SIZE(tap_dance_actions) <= (QK_TAP_DANCE_MAX - QK_TAP_DANCE), "Number of tap dance actions exceeds maximum. Are you using SAFE_RANGE in tap dance enum?"); - tap_dance_action_t* tap_dance_get_raw(uint16_t tap_dance_idx) { if (tap_dance_idx >= tap_dance_count_raw()) { return NULL; @@ -162,8 +153,6 @@ __attribute__((weak)) uint16_t key_override_count(void) { return key_override_count_raw(); } -STATIC_ASSERT(ARRAY_SIZE(key_overrides) <= (QK_KB), "Number of key overrides is abnormally high. Are you using SAFE_RANGE in an enum for key overrides?"); - const key_override_t* key_override_get_raw(uint16_t key_override_idx) { if (key_override_idx >= key_override_count_raw()) { return NULL; @@ -176,10 +165,3 @@ __attribute__((weak)) const key_override_t* key_override_get(uint16_t key_overri } #endif // defined(KEY_OVERRIDE_ENABLE) - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Community modules (must be last in this file!) - -#if defined(COMMUNITY_MODULES_ENABLE) -# include "community_modules_introspection.c" -#endif // defined(COMMUNITY_MODULES_ENABLE) diff --git a/quantum/layer_lock.c b/quantum/layer_lock.c deleted file mode 100644 index 9fc84bcfca..0000000000 --- a/quantum/layer_lock.c +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2022-2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "layer_lock.h" -#include "quantum_keycodes.h" - -#ifndef NO_ACTION_LAYER -// The current lock state. The kth bit is on if layer k is locked. -layer_state_t locked_layers = 0; - -// Layer Lock timer to disable layer lock after X seconds inactivity -# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 -uint32_t layer_lock_timer = 0; - -void layer_lock_timeout_task(void) { - if (locked_layers && timer_elapsed32(layer_lock_timer) > LAYER_LOCK_IDLE_TIMEOUT) { - layer_lock_all_off(); - layer_lock_timer = timer_read32(); - } -} -void layer_lock_activity_trigger(void) { - layer_lock_timer = timer_read32(); -} -# else -void layer_lock_timeout_task(void) {} -void layer_lock_activity_trigger(void) {} -# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 - -bool is_layer_locked(uint8_t layer) { - return locked_layers & ((layer_state_t)1 << layer); -} - -void layer_lock_invert(uint8_t layer) { - const layer_state_t mask = (layer_state_t)1 << layer; - if ((locked_layers & mask) == 0) { // Layer is being locked. -# ifndef NO_ACTION_ONESHOT - if (layer == get_oneshot_layer()) { - reset_oneshot_layer(); // Reset so that OSL doesn't turn layer off. - } -# endif // NO_ACTION_ONESHOT - layer_on(layer); - layer_lock_activity_trigger(); - } else { // Layer is being unlocked. - layer_off(layer); - } - layer_lock_set_kb(locked_layers ^= mask); -} - -// Implement layer_lock_on/off by deferring to layer_lock_invert. -void layer_lock_on(uint8_t layer) { - if (!is_layer_locked(layer)) { - layer_lock_invert(layer); - } -} - -void layer_lock_off(uint8_t layer) { - if (is_layer_locked(layer)) { - layer_lock_invert(layer); - } -} - -void layer_lock_all_off(void) { - layer_and(~locked_layers); - locked_layers = 0; - layer_lock_set_kb(locked_layers); -} - -#else // NO_ACTION_LAYER -bool is_layer_locked(uint8_t layer) { - return false; -} -void layer_lock_on(uint8_t layer) {} -void layer_lock_off(uint8_t layer) {} -void layer_lock_all_off(void) {} -void layer_lock_invert(uint8_t layer) {} -void layer_lock_timeout_task(void) {} -void layer_lock_activity_trigger(void) {} -#endif // NO_ACTION_LAYER - -__attribute__((weak)) bool layer_lock_set_kb(layer_state_t locked_layers) { - return layer_lock_set_user(locked_layers); -} -__attribute__((weak)) bool layer_lock_set_user(layer_state_t locked_layers) { - return true; -} - -void layer_lock_task(void) { - layer_lock_timeout_task(); -} diff --git a/quantum/layer_lock.h b/quantum/layer_lock.h deleted file mode 100644 index 97f6c60d70..0000000000 --- a/quantum/layer_lock.h +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022-2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file layer_lock.h - * @brief Layer Lock, a key to stay in the current layer. - * - * Overview - * -------- - * - * Layers are often accessed by holding a button, e.g. with a momentary layer - * switch `MO(layer)` or layer tap `LT(layer, key)` key. But you may sometimes - * want to "lock" or "toggle" the layer so that it stays on without having to - * hold down a button. One way to do that is with a tap-toggle `TT` layer key, - * but here is an alternative. - * - * This library implements a "Layer Lock key". When tapped, it "locks" the - * highest layer to stay active, assuming the layer was activated by one of the - * following keys: - * - * * `MO(layer)` momentary layer switch - * * `LT(layer, key)` layer tap - * * `OSL(layer)` one-shot layer - * * `TT(layer)` layer tap toggle - * * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) - * - * Tapping the Layer Lock key again unlocks and turns off the layer. - * - * @note When a layer is "locked", other layer keys such as `TO(layer)` or - * manually calling `layer_off(layer)` will override and unlock the layer. - * - * Configuration - * ------------- - * - * Optionally, a timeout may be defined so that Layer Lock disables - * automatically if not keys are pressed for `LAYER_LOCK_IDLE_TIMEOUT` - * milliseconds. Define `LAYER_LOCK_IDLE_TIMEOUT` in your config.h, for instance - * - * #define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. - * - * For full documentation, see - * - */ - -#pragma once - -#include -#include -#include "action_layer.h" -#include "action_util.h" - -/** Returns true if `layer` is currently locked. */ -bool is_layer_locked(uint8_t layer); - -/** Locks and turns on `layer`. */ -void layer_lock_on(uint8_t layer); - -/** Unlocks and turns off `layer`. */ -void layer_lock_off(uint8_t layer); - -/** Unlocks and turns off all locked layers. */ -void layer_lock_all_off(void); - -/** Toggles whether `layer` is locked. */ -void layer_lock_invert(uint8_t layer); - -/** - * Optional callback that gets called when a layer is locked or unlocked. - * - * This is useful to represent the current lock state, e.g. by setting an LED or - * playing a sound. In your keymap, define - * - * void layer_lock_set_user(layer_state_t locked_layers) { - * // Do something like `set_led(is_layer_locked(NAV));` - * } - * - * @param locked_layers Bitfield in which the kth bit represents whether the - * kth layer is on. - */ -bool layer_lock_set_kb(layer_state_t locked_layers); -bool layer_lock_set_user(layer_state_t locked_layers); - -/** Handle various background tasks */ -void layer_lock_task(void); - -/** Update any configured timeouts */ -void layer_lock_activity_trigger(void); diff --git a/quantum/leader.c b/quantum/leader.c index 23e5e8cd6d..272609ad0c 100644 --- a/quantum/leader.c +++ b/quantum/leader.c @@ -21,10 +21,6 @@ __attribute__((weak)) void leader_start_user(void) {} __attribute__((weak)) void leader_end_user(void) {} -__attribute__((weak)) bool leader_add_user(uint16_t keycode) { - return false; -} - void leader_start(void) { if (leading) { return; @@ -65,9 +61,6 @@ bool leader_sequence_add(uint16_t keycode) { leader_sequence[leader_sequence_size] = keycode; leader_sequence_size++; - if (leader_add_user(keycode)) { - leader_end(); - } return true; } diff --git a/quantum/leader.h b/quantum/leader.h index fba6b287ba..3177fcd196 100644 --- a/quantum/leader.h +++ b/quantum/leader.h @@ -21,15 +21,6 @@ void leader_start_user(void); */ void leader_end_user(void); -/** - * \brief User callback, invoked when a keycode is added to the leader sequence. - * - * \param keycode The keycode added to the leader sequence. - * - * \return `true` to finish the key sequence, `false` to continue. - */ -bool leader_add_user(uint16_t keycode); - /** * Begin the leader sequence, resetting the buffer and timer. */ diff --git a/quantum/led_matrix/animations/breathing_anim.h b/quantum/led_matrix/animations/breathing_anim.h index 3d1b0d95d2..0bd4cb0cc3 100644 --- a/quantum/led_matrix/animations/breathing_anim.h +++ b/quantum/led_matrix/animations/breathing_anim.h @@ -2,12 +2,17 @@ LED_MATRIX_EFFECT(BREATHING) # ifdef LED_MATRIX_CUSTOM_EFFECT_IMPLS -static uint8_t BREATHING_math(uint8_t val, uint8_t i, uint8_t time) { - return scale8(abs8(sin8(time / 2) - 128) * 2, val); -} - bool BREATHING(effect_params_t* params) { - return effect_runner_i(params, &BREATHING_math); + LED_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t val = led_matrix_eeconfig.val; + uint16_t time = scale16by8(g_led_timer, led_matrix_eeconfig.speed / 8); + val = scale8(abs8(sin8(time) - 128) * 2, val); + for (uint8_t i = led_min; i < led_max; i++) { + LED_MATRIX_TEST_LED_FLAGS(); + led_matrix_set_value(i, val); + } + return led_matrix_check_finished_leds(led_max); } # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 9c8004cc17..798ab9a120 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -19,6 +19,7 @@ #include "led_matrix.h" #include "progmem.h" +#include "eeprom.h" #include "eeconfig.h" #include "keyboard.h" #include "sync_timer.h" @@ -45,9 +46,6 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER; #define LED_MATRIX_CUSTOM_EFFECT_IMPLS #include "led_matrix_effects.inc" -#ifdef COMMUNITY_MODULES_ENABLE -# include "led_matrix_community_modules.inc" -#endif #ifdef LED_MATRIX_CUSTOM_KB # include "led_matrix_kb.inc" #endif @@ -88,9 +86,9 @@ static last_hit_t last_hit_buffer; const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; #endif -EECONFIG_DEBOUNCE_HELPER(led_matrix, led_matrix_eeconfig); +EECONFIG_DEBOUNCE_HELPER(led_matrix, EECONFIG_LED_MATRIX, led_matrix_eeconfig); -void eeconfig_force_flush_led_matrix(void) { +void eeconfig_update_led_matrix(void) { eeconfig_flush_led_matrix(true); } @@ -107,11 +105,7 @@ void eeconfig_update_led_matrix_default(void) { void eeconfig_debug_led_matrix(void) { dprintf("led_matrix_eeconfig EEPROM\n"); dprintf("led_matrix_eeconfig.enable = %d\n", led_matrix_eeconfig.enable); -#ifdef LED_MATRIX_MODE_NAME_ENABLE - dprintf("led_matrix_eeconfig.mode = %d (%s)\n", led_matrix_eeconfig.mode, led_matrix_get_mode_name(led_matrix_eeconfig.mode)); -#else dprintf("led_matrix_eeconfig.mode = %d\n", led_matrix_eeconfig.mode); -#endif // LED_MATRIX_MODE_NAME_ENABLE dprintf("led_matrix_eeconfig.val = %d\n", led_matrix_eeconfig.val); dprintf("led_matrix_eeconfig.speed = %d\n", led_matrix_eeconfig.speed); dprintf("led_matrix_eeconfig.flags = %d\n", led_matrix_eeconfig.flags); @@ -145,20 +139,11 @@ void led_matrix_update_pwm_buffers(void) { led_matrix_driver.flush(); } -__attribute__((weak)) int led_matrix_led_index(int index) { -#if defined(LED_MATRIX_SPLIT) - if (!is_keyboard_left() && index >= k_led_matrix_split[0]) { - return index - k_led_matrix_split[0]; - } -#endif - return index; -} - void led_matrix_set_value(int index, uint8_t value) { #ifdef USE_CIE1931_CURVE value = pgm_read_byte(&CIE1931_CURVE[value]); #endif - led_matrix_driver.set_value(led_matrix_led_index(index), value); + led_matrix_driver.set_value(index, value); } void led_matrix_set_value_all(uint8_t value) { @@ -289,15 +274,6 @@ static void led_task_render(uint8_t effect) { #include "led_matrix_effects.inc" #undef LED_MATRIX_EFFECT -#ifdef COMMUNITY_MODULES_ENABLE -# define LED_MATRIX_EFFECT(name, ...) \ - case LED_MATRIX_COMMUNITY_MODULE_##name: \ - rendering = name(&led_effect_params); \ - break; -# include "led_matrix_community_modules.inc" -# undef LED_MATRIX_EFFECT -#endif - #if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER) # define LED_MATRIX_EFFECT(name, ...) \ case LED_MATRIX_CUSTOM_##name: \ @@ -374,12 +350,7 @@ void led_matrix_task(void) { } } -__attribute__((weak)) bool led_matrix_indicators_modules(void) { - return true; -} - void led_matrix_indicators(void) { - led_matrix_indicators_modules(); led_matrix_indicators_kb(); } @@ -391,10 +362,6 @@ __attribute__((weak)) bool led_matrix_indicators_user(void) { return true; } -__attribute__((weak)) bool led_matrix_indicators_advanced_modules(uint8_t led_min, uint8_t led_max) { - return true; -} - void led_matrix_indicators_advanced(effect_params_t *params) { /* special handling is needed for "params->iter", since it's already been incremented. * Could move the invocations to led_task_render, but then it's missing a few checks @@ -402,7 +369,6 @@ void led_matrix_indicators_advanced(effect_params_t *params) { * led_task_render, right before the iter++ line. */ LED_MATRIX_USE_LIMITS_ITER(min, max, params->iter - 1); - led_matrix_indicators_advanced_modules(min, max); led_matrix_indicators_advanced_kb(min, max); } @@ -421,6 +387,7 @@ struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter) { limits.led_min_index = LED_MATRIX_LED_PROCESS_LIMIT * (iter); limits.led_max_index = limits.led_min_index + LED_MATRIX_LED_PROCESS_LIMIT; if (limits.led_max_index > LED_MATRIX_LED_COUNT) limits.led_max_index = LED_MATRIX_LED_COUNT; + uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0]; if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0]; # else @@ -430,8 +397,9 @@ struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter) { # endif #else # if defined(LED_MATRIX_SPLIT) - limits.led_min_index = 0; - limits.led_max_index = LED_MATRIX_LED_COUNT; + limits.led_min_index = 0; + limits.led_max_index = LED_MATRIX_LED_COUNT; + const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0]; if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0]; # else @@ -529,11 +497,7 @@ void led_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { } led_task_state = STARTING; eeconfig_flag_led_matrix(write_to_eeprom); -#ifdef LED_MATRIX_MODE_NAME_ENABLE - dprintf("led matrix mode [%s]: %u (%s)\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)led_matrix_eeconfig.mode, led_matrix_get_mode_name(led_matrix_eeconfig.mode)); -#else - dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)led_matrix_eeconfig.mode); -#endif // LED_MATRIX_MODE_NAME_ENABLE + dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.mode); } void led_matrix_mode_noeeprom(uint8_t mode) { led_matrix_mode_eeprom_helper(mode, false); @@ -660,48 +624,3 @@ void led_matrix_set_flags(led_flags_t flags) { void led_matrix_set_flags_noeeprom(led_flags_t flags) { led_matrix_set_flags_eeprom_helper(flags, false); } - -// LED Matrix naming -#undef LED_MATRIX_EFFECT -#ifdef LED_MATRIX_MODE_NAME_ENABLE -const char *led_matrix_get_mode_name(uint8_t mode) { - switch (mode) { - case LED_MATRIX_NONE: - return "NONE"; - -# define LED_MATRIX_EFFECT(name, ...) \ - case LED_MATRIX_##name: \ - return #name; -# include "led_matrix_effects.inc" -# undef LED_MATRIX_EFFECT - -# ifdef COMMUNITY_MODULES_ENABLE -# define LED_MATRIX_EFFECT(name, ...) \ - case LED_MATRIX_COMMUNITY_MODULE_##name: \ - return #name; -# include "led_matrix_community_modules.inc" -# undef LED_MATRIX_EFFECT -# endif // COMMUNITY_MODULES_ENABLE - -# if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER) -# define LED_MATRIX_EFFECT(name, ...) \ - case LED_MATRIX_CUSTOM_##name: \ - return #name; - -# ifdef LED_MATRIX_CUSTOM_KB -# include "led_matrix_kb.inc" -# endif // LED_MATRIX_CUSTOM_KB - -# ifdef LED_MATRIX_CUSTOM_USER -# include "led_matrix_user.inc" -# endif // LED_MATRIX_CUSTOM_USER - -# undef LED_MATRIX_EFFECT -# endif // LED_MATRIX_CUSTOM_KB || LED_MATRIX_CUSTOM_USER - - default: - return "UNKNOWN"; - } -} -# undef LED_MATRIX_EFFECT -#endif // LED_MATRIX_MODE_NAME_ENABLE diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 9a49515ab2..9a13c3e52b 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -98,12 +98,6 @@ enum led_matrix_effects { #include "led_matrix_effects.inc" #undef LED_MATRIX_EFFECT -#ifdef COMMUNITY_MODULES_ENABLE -# define LED_MATRIX_EFFECT(name, ...) LED_MATRIX_COMMUNITY_MODULE_##name, -# include "led_matrix_community_modules.inc" -# undef LED_MATRIX_EFFECT -#endif - #if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER) # define LED_MATRIX_EFFECT(name, ...) LED_MATRIX_CUSTOM_##name, # ifdef LED_MATRIX_CUSTOM_KB @@ -121,14 +115,12 @@ enum led_matrix_effects { }; void eeconfig_update_led_matrix_default(void); -void eeconfig_force_flush_led_matrix(void); +void eeconfig_update_led_matrix(void); void eeconfig_debug_led_matrix(void); uint8_t led_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t led_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); -int led_matrix_led_index(int index); - void led_matrix_set_value(int index, uint8_t value); void led_matrix_set_value_all(uint8_t value); @@ -184,10 +176,6 @@ led_flags_t led_matrix_get_flags(void); void led_matrix_set_flags(led_flags_t flags); void led_matrix_set_flags_noeeprom(led_flags_t flags); -#ifdef LED_MATRIX_MODE_NAME_ENABLE -const char *led_matrix_get_mode_name(uint8_t mode); -#endif // LED_MATRIX_MODE_NAME_ENABLE - static inline bool led_matrix_check_finished_leds(uint8_t led_idx) { #if defined(LED_MATRIX_SPLIT) if (is_keyboard_left()) { diff --git a/quantum/led_matrix/led_matrix_types.h b/quantum/led_matrix/led_matrix_types.h index 26a199701e..5a516ceb10 100644 --- a/quantum/led_matrix/led_matrix_types.h +++ b/quantum/led_matrix/led_matrix_types.h @@ -18,8 +18,6 @@ #include #include - -#include "compiler_support.h" #include "util.h" #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) @@ -73,7 +71,7 @@ typedef struct PACKED { uint8_t flags[LED_MATRIX_LED_COUNT]; } led_config_t; -typedef union led_eeconfig_t { +typedef union { uint32_t raw; struct PACKED { uint8_t enable : 2; @@ -84,4 +82,4 @@ typedef union led_eeconfig_t { }; } led_eeconfig_t; -STATIC_ASSERT(sizeof(led_eeconfig_t) == sizeof(uint32_t), "LED Matrix EECONFIG out of spec."); +_Static_assert(sizeof(led_eeconfig_t) == sizeof(uint32_t), "LED Matrix EECONFIG out of spec."); diff --git a/quantum/logging/debug.h b/quantum/logging/debug.h index 6675680ec7..d0590474c0 100644 --- a/quantum/logging/debug.h +++ b/quantum/logging/debug.h @@ -17,7 +17,10 @@ along with this program. If not, see . #pragma once -#include +#ifndef PROTOCOL_ARM_ATSAM +# include +#endif + #include #include "print.h" @@ -28,7 +31,7 @@ extern "C" { /* * Debug output control */ -typedef union debug_config_t { +typedef union { struct { bool enable : 1; bool matrix : 1; diff --git a/quantum/matrix.c b/quantum/matrix.c index 167a70e5b6..a877fb4e41 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -25,6 +25,10 @@ along with this program. If not, see . #ifdef SPLIT_KEYBOARD # include "split_common/split_util.h" # include "split_common/transactions.h" + +# define ROWS_PER_HAND (MATRIX_ROWS / 2) +#else +# define ROWS_PER_HAND (MATRIX_ROWS) #endif #ifdef DIRECT_PINS_RIGHT @@ -48,13 +52,13 @@ along with this program. If not, see . #endif #ifdef DIRECT_PINS -static SPLIT_MUTABLE pin_t direct_pins[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS; +static SPLIT_MUTABLE pin_t direct_pins[ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS; #elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW) # ifdef MATRIX_ROW_PINS -static SPLIT_MUTABLE_ROW pin_t row_pins[MATRIX_ROWS_PER_HAND] = MATRIX_ROW_PINS; +static SPLIT_MUTABLE_ROW pin_t row_pins[ROWS_PER_HAND] = MATRIX_ROW_PINS; # endif // MATRIX_ROW_PINS # ifdef MATRIX_COL_PINS -static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; # endif // MATRIX_COL_PINS #endif @@ -105,7 +109,7 @@ static inline uint8_t readMatrixPin(pin_t pin) { #ifdef DIRECT_PINS __attribute__((weak)) void matrix_init_pins(void) { - for (int row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + for (int row = 0; row < ROWS_PER_HAND; row++) { for (int col = 0; col < MATRIX_COLS; col++) { pin_t pin = direct_pins[row][col]; if (pin != NO_PIN) { @@ -154,7 +158,7 @@ static void unselect_row(uint8_t row) { } static void unselect_rows(void) { - for (uint8_t x = 0; x < MATRIX_ROWS_PER_HAND; x++) { + for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { unselect_row(x); } } @@ -224,7 +228,7 @@ static void unselect_cols(void) { __attribute__((weak)) void matrix_init_pins(void) { unselect_cols(); - for (uint8_t x = 0; x < MATRIX_ROWS_PER_HAND; x++) { + for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { if (row_pins[x] != NO_PIN) { gpio_atomic_set_pin_input_high(row_pins[x]); } @@ -241,7 +245,7 @@ __attribute__((weak)) void matrix_read_rows_on_col(matrix_row_t current_matrix[] matrix_output_select_delay(); // For each row... - for (uint8_t row_index = 0; row_index < MATRIX_ROWS_PER_HAND; row_index++) { + for (uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) { // Check row pin state if (readMatrixPin(row_pins[row_index]) == 0) { // Pin LO, set col bit @@ -271,16 +275,16 @@ void matrix_init(void) { // Set pinout for right half if pinout for that half is defined if (!isLeftHand) { # ifdef DIRECT_PINS_RIGHT - const pin_t direct_pins_right[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS_RIGHT; - for (uint8_t i = 0; i < MATRIX_ROWS_PER_HAND; i++) { + const pin_t direct_pins_right[ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS_RIGHT; + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { for (uint8_t j = 0; j < MATRIX_COLS; j++) { direct_pins[i][j] = direct_pins_right[i][j]; } } # endif # ifdef MATRIX_ROW_PINS_RIGHT - const pin_t row_pins_right[MATRIX_ROWS_PER_HAND] = MATRIX_ROW_PINS_RIGHT; - for (uint8_t i = 0; i < MATRIX_ROWS_PER_HAND; i++) { + const pin_t row_pins_right[ROWS_PER_HAND] = MATRIX_ROW_PINS_RIGHT; + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { row_pins[i] = row_pins_right[i]; } # endif @@ -292,8 +296,8 @@ void matrix_init(void) { # endif } - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); - thatHand = MATRIX_ROWS_PER_HAND - thisHand; + thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thatHand = ROWS_PER_HAND - thisHand; #endif // initialize key pins @@ -303,7 +307,7 @@ void matrix_init(void) { memset(matrix, 0, sizeof(matrix)); memset(raw_matrix, 0, sizeof(raw_matrix)); - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(ROWS_PER_HAND); matrix_init_kb(); } @@ -321,7 +325,7 @@ uint8_t matrix_scan(void) { #if defined(DIRECT_PINS) || (DIODE_DIRECTION == COL2ROW) // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS_PER_HAND; current_row++) { + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND; current_row++) { matrix_read_cols_on_row(curr_matrix, current_row); } #elif (DIODE_DIRECTION == ROW2COL) @@ -336,9 +340,9 @@ uint8_t matrix_scan(void) { if (changed) memcpy(raw_matrix, curr_matrix, sizeof(curr_matrix)); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed); matrix_scan_kb(); #endif return (uint8_t)changed; diff --git a/quantum/matrix.h b/quantum/matrix.h index 99f01aece2..a5b628fc59 100644 --- a/quantum/matrix.h +++ b/quantum/matrix.h @@ -35,12 +35,6 @@ typedef uint32_t matrix_row_t; # error "MATRIX_COLS: invalid value" #endif -#ifdef SPLIT_KEYBOARD -# define MATRIX_ROWS_PER_HAND (MATRIX_ROWS / 2) -#else -# define MATRIX_ROWS_PER_HAND (MATRIX_ROWS) -#endif - #define MATRIX_ROW_SHIFTER ((matrix_row_t)1) #ifdef __cplusplus diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index b4a86fc483..d02c527caa 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -8,6 +8,10 @@ # include "split_common/split_util.h" # include "split_common/transactions.h" # include + +# define ROWS_PER_HAND (MATRIX_ROWS / 2) +#else +# define ROWS_PER_HAND (MATRIX_ROWS) #endif #ifndef MATRIX_IO_DELAY @@ -91,8 +95,8 @@ void matrix_print(void) { bool matrix_post_scan(void) { bool changed = false; if (is_keyboard_master()) { - static bool last_connected = false; - matrix_row_t slave_matrix[MATRIX_ROWS_PER_HAND] = {0}; + static bool last_connected = false; + matrix_row_t slave_matrix[ROWS_PER_HAND] = {0}; if (transport_master_if_connected(matrix + thisHand, slave_matrix)) { changed = memcmp(matrix + thatHand, slave_matrix, sizeof(slave_matrix)) != 0; @@ -144,8 +148,8 @@ __attribute__((weak)) void matrix_slave_scan_user(void) {} __attribute__((weak)) void matrix_init(void) { #ifdef SPLIT_KEYBOARD - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); - thatHand = MATRIX_ROWS_PER_HAND - thisHand; + thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thatHand = ROWS_PER_HAND - thisHand; #endif matrix_init_custom(); @@ -156,7 +160,7 @@ __attribute__((weak)) void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(ROWS_PER_HAND); matrix_init_kb(); } @@ -165,9 +169,9 @@ __attribute__((weak)) uint8_t matrix_scan(void) { bool changed = matrix_scan_custom(raw_matrix); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed); matrix_scan_kb(); #endif diff --git a/quantum/nvm/eeprom/nvm_dynamic_keymap.c b/quantum/nvm/eeprom/nvm_dynamic_keymap.c deleted file mode 100644 index 5ff49795b2..0000000000 --- a/quantum/nvm/eeprom/nvm_dynamic_keymap.c +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "compiler_support.h" -#include "keycodes.h" -#include "eeprom.h" -#include "dynamic_keymap.h" -#include "nvm_dynamic_keymap.h" -#include "nvm_eeprom_eeconfig_internal.h" -#include "nvm_eeprom_via_internal.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef ENCODER_ENABLE -# include "encoder.h" -#endif - -#ifdef VIA_ENABLE -# include "via.h" -# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) -#else -# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) -#endif - -#ifndef DYNAMIC_KEYMAP_EEPROM_MAX_ADDR -# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR (TOTAL_EEPROM_BYTE_COUNT - 1) -#endif - -STATIC_ASSERT(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR <= (TOTAL_EEPROM_BYTE_COUNT - 1), "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR is configured to use more space than what is available for the selected EEPROM driver"); - -// Due to usage of uint16_t check for max 65535 -STATIC_ASSERT(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR <= 65535, "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR must be less than 65536"); - -// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, -#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR -# define DYNAMIC_KEYMAP_EEPROM_ADDR DYNAMIC_KEYMAP_EEPROM_START -#endif - -// Dynamic encoders starts after dynamic keymaps -#ifndef DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR -# define DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2)) -#endif - -// Dynamic macro starts after dynamic encoders, but only when using ENCODER_MAP -#ifdef ENCODER_MAP_ENABLE -# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * NUM_ENCODERS * 2 * 2)) -# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -#else // ENCODER_MAP_ENABLE -# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) -# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -#endif // ENCODER_MAP_ENABLE - -// Sanity check that dynamic keymaps fit in available EEPROM -// If there's not 100 bytes available for macros, then something is wrong. -// The keyboard should override DYNAMIC_KEYMAP_LAYER_COUNT to reduce it, -// or DYNAMIC_KEYMAP_EEPROM_MAX_ADDR to increase it, *only if* the microcontroller has -// more than the default. -STATIC_ASSERT((int64_t)(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) - (int64_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) >= 100, "Dynamic keymaps are configured to use more EEPROM than is available."); - -#ifndef TOTAL_EEPROM_BYTE_COUNT -# error Unknown total EEPROM size. Cannot derive maximum for dynamic keymaps. -#endif -// Dynamic macros are stored after the keymaps and use what is available -// up to and including DYNAMIC_KEYMAP_EEPROM_MAX_ADDR. -#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE -# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (DYNAMIC_KEYMAP_EEPROM_MAX_ADDR - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + 1) -#endif - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -void nvm_dynamic_keymap_erase(void) { - // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. -} - -void nvm_dynamic_keymap_macro_erase(void) { - // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. -} - -static inline void *dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column) { - return ((void *)DYNAMIC_KEYMAP_EEPROM_ADDR) + (layer * MATRIX_ROWS * MATRIX_COLS * 2) + (row * MATRIX_COLS * 2) + (column * 2); -} - -uint16_t nvm_dynamic_keymap_read_keycode(uint8_t layer, uint8_t row, uint8_t column) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return KC_NO; - void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); - // Big endian, so we can read/write EEPROM directly from host if we want - uint16_t keycode = eeprom_read_byte(address) << 8; - keycode |= eeprom_read_byte(address + 1); - return keycode; -} - -void nvm_dynamic_keymap_update_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return; - void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); - // Big endian, so we can read/write EEPROM directly from host if we want - eeprom_update_byte(address, (uint8_t)(keycode >> 8)); - eeprom_update_byte(address + 1, (uint8_t)(keycode & 0xFF)); -} - -#ifdef ENCODER_MAP_ENABLE -static void *dynamic_keymap_encoder_to_eeprom_address(uint8_t layer, uint8_t encoder_id) { - return ((void *)DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) + (layer * NUM_ENCODERS * 2 * 2) + (encoder_id * 2 * 2); -} - -uint16_t nvm_dynamic_keymap_read_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return KC_NO; - void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); - // Big endian, so we can read/write EEPROM directly from host if we want - uint16_t keycode = ((uint16_t)eeprom_read_byte(address + (clockwise ? 0 : 2))) << 8; - keycode |= eeprom_read_byte(address + (clockwise ? 0 : 2) + 1); - return keycode; -} - -void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return; - void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); - // Big endian, so we can read/write EEPROM directly from host if we want - eeprom_update_byte(address + (clockwise ? 0 : 2), (uint8_t)(keycode >> 8)); - eeprom_update_byte(address + (clockwise ? 0 : 2) + 1, (uint8_t)(keycode & 0xFF)); -} -#endif // ENCODER_MAP_ENABLE - -void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); - uint8_t *target = data; - for (uint32_t i = 0; i < size; i++) { - if (offset + i < dynamic_keymap_eeprom_size) { - *target = eeprom_read_byte(source); - } else { - *target = 0x00; - } - source++; - target++; - } -} - -void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); - uint8_t *source = data; - for (uint32_t i = 0; i < size; i++) { - if (offset + i < dynamic_keymap_eeprom_size) { - eeprom_update_byte(target, *source); - } - source++; - target++; - } -} - -uint32_t nvm_dynamic_keymap_macro_size(void) { - return DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; -} - -void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); - uint8_t *target = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { - *target = eeprom_read_byte(source); - } else { - *target = 0x00; - } - source++; - target++; - } -} - -void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); - uint8_t *source = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { - eeprom_update_byte(target, *source); - } - source++; - target++; - } -} - -void nvm_dynamic_keymap_macro_reset(void) { - void * start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); - void * end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); - long remaining = end - start; - uint8_t dummy[16] = {0}; - for (int i = 0; i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; i += sizeof(dummy)) { - int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); - eeprom_update_block(dummy, start, this_loop); - start += this_loop; - remaining -= this_loop; - } -} diff --git a/quantum/nvm/eeprom/nvm_eeconfig.c b/quantum/nvm/eeprom/nvm_eeconfig.c deleted file mode 100644 index d9495d2753..0000000000 --- a/quantum/nvm/eeprom/nvm_eeconfig.c +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "nvm_eeconfig.h" -#include "nvm_eeprom_eeconfig_internal.h" -#include "util.h" -#include "eeconfig.h" -#include "debug.h" -#include "eeprom.h" -#include "keycode_config.h" - -#ifdef EEPROM_DRIVER -# include "eeprom_driver.h" -#endif - -#ifdef AUDIO_ENABLE -# include "audio.h" -#endif - -#ifdef BACKLIGHT_ENABLE -# include "backlight.h" -#endif - -#ifdef RGBLIGHT_ENABLE -# include "rgblight.h" -#endif - -#ifdef RGB_MATRIX_ENABLE -# include "rgb_matrix_types.h" -#endif - -#ifdef LED_MATRIX_ENABLE -# include "led_matrix_types.h" -#endif - -#ifdef UNICODE_COMMON_ENABLE -# include "unicode.h" -#endif - -#ifdef HAPTIC_ENABLE -# include "haptic.h" -#endif - -#ifdef CONNECTION_ENABLE -# include "connection.h" -#endif - -void nvm_eeconfig_erase(void) { -#ifdef EEPROM_DRIVER - eeprom_driver_format(false); -#endif // EEPROM_DRIVER -} - -bool nvm_eeconfig_is_enabled(void) { - return eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER; -} - -bool nvm_eeconfig_is_disabled(void) { - return eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF; -} - -void nvm_eeconfig_enable(void) { - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); -} - -void nvm_eeconfig_disable(void) { -#if defined(EEPROM_DRIVER) - eeprom_driver_format(false); -#endif - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); -} - -void nvm_eeconfig_read_debug(debug_config_t *debug_config) { - debug_config->raw = eeprom_read_byte(EECONFIG_DEBUG); -} -void nvm_eeconfig_update_debug(const debug_config_t *debug_config) { - eeprom_update_byte(EECONFIG_DEBUG, debug_config->raw); -} - -layer_state_t nvm_eeconfig_read_default_layer(void) { - uint8_t val = eeprom_read_byte(EECONFIG_DEFAULT_LAYER); -#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK - // stored as a layer number, so convert back to bitmask - return (layer_state_t)1 << val; -#else - // stored as 8-bit-wide bitmask, so read the value directly - handling padding to 16/32 bit layer_state_t - return (layer_state_t)val; -#endif -} -void nvm_eeconfig_update_default_layer(layer_state_t state) { -#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK - // stored as a layer number, so only store the highest layer - uint8_t val = get_highest_layer(state); -#else - // stored as 8-bit-wide bitmask, so write the value directly - handling truncation from 16/32 bit layer_state_t - uint8_t val = (uint8_t)state; -#endif - eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); -} - -void nvm_eeconfig_read_keymap(keymap_config_t *keymap_config) { - keymap_config->raw = eeprom_read_word(EECONFIG_KEYMAP); -} -void nvm_eeconfig_update_keymap(const keymap_config_t *keymap_config) { - eeprom_update_word(EECONFIG_KEYMAP, keymap_config->raw); -} - -#ifdef AUDIO_ENABLE -void nvm_eeconfig_read_audio(audio_config_t *audio_config) { - audio_config->raw = eeprom_read_byte(EECONFIG_AUDIO); -} -void nvm_eeconfig_update_audio(const audio_config_t *audio_config) { - eeprom_update_byte(EECONFIG_AUDIO, audio_config->raw); -} -#endif // AUDIO_ENABLE - -#ifdef UNICODE_COMMON_ENABLE -void nvm_eeconfig_read_unicode_mode(unicode_config_t *unicode_config) { - unicode_config->raw = eeprom_read_byte(EECONFIG_UNICODEMODE); -} -void nvm_eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) { - eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config->raw); -} -#endif // UNICODE_COMMON_ENABLE - -#ifdef BACKLIGHT_ENABLE -void nvm_eeconfig_read_backlight(backlight_config_t *backlight_config) { - backlight_config->raw = eeprom_read_byte(EECONFIG_BACKLIGHT); -} -void nvm_eeconfig_update_backlight(const backlight_config_t *backlight_config) { - eeprom_update_byte(EECONFIG_BACKLIGHT, backlight_config->raw); -} -#endif // BACKLIGHT_ENABLE - -#ifdef STENO_ENABLE -uint8_t nvm_eeconfig_read_steno_mode(void) { - return eeprom_read_byte(EECONFIG_STENOMODE); -} -void nvm_eeconfig_update_steno_mode(uint8_t val) { - eeprom_update_byte(EECONFIG_STENOMODE, val); -} -#endif // STENO_ENABLE - -#ifdef RGBLIGHT_ENABLE -#endif // RGBLIGHT_ENABLE - -#ifdef RGB_MATRIX_ENABLE -void nvm_eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) { - eeprom_read_block(rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_config_t)); -} -void nvm_eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) { - eeprom_update_block(rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_config_t)); -} -#endif // RGB_MATRIX_ENABLE - -#ifdef LED_MATRIX_ENABLE -void nvm_eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) { - eeprom_read_block(led_matrix_config, EECONFIG_LED_MATRIX, sizeof(led_eeconfig_t)); -} -void nvm_eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) { - eeprom_update_block(led_matrix_config, EECONFIG_LED_MATRIX, sizeof(led_eeconfig_t)); -} -#endif // LED_MATRIX_ENABLE - -#ifdef RGBLIGHT_ENABLE -void nvm_eeconfig_read_rgblight(rgblight_config_t *rgblight_config) { - rgblight_config->raw = eeprom_read_dword(EECONFIG_RGBLIGHT); - rgblight_config->raw |= ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32); -} -void nvm_eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) { - eeprom_update_dword(EECONFIG_RGBLIGHT, rgblight_config->raw & 0xFFFFFFFF); - eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (rgblight_config->raw >> 32) & 0xFF); -} -#endif // RGBLIGHT_ENABLE - -#if (EECONFIG_KB_DATA_SIZE) == 0 -uint32_t nvm_eeconfig_read_kb(void) { - return eeprom_read_dword(EECONFIG_KEYBOARD); -} -void nvm_eeconfig_update_kb(uint32_t val) { - eeprom_update_dword(EECONFIG_KEYBOARD, val); -} -#endif // (EECONFIG_KB_DATA_SIZE) == 0 - -#if (EECONFIG_USER_DATA_SIZE) == 0 -uint32_t nvm_eeconfig_read_user(void) { - return eeprom_read_dword(EECONFIG_USER); -} -void nvm_eeconfig_update_user(uint32_t val) { - eeprom_update_dword(EECONFIG_USER, val); -} -#endif // (EECONFIG_USER_DATA_SIZE) == 0 - -#ifdef HAPTIC_ENABLE -void nvm_eeconfig_read_haptic(haptic_config_t *haptic_config) { - haptic_config->raw = eeprom_read_dword(EECONFIG_HAPTIC); -} -void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config) { - eeprom_update_dword(EECONFIG_HAPTIC, haptic_config->raw); -} -#endif // HAPTIC_ENABLE - -#ifdef CONNECTION_ENABLE -void nvm_eeconfig_read_connection(connection_config_t *config) { - config->raw = eeprom_read_byte(EECONFIG_CONNECTION); -} -void nvm_eeconfig_update_connection(const connection_config_t *config) { - eeprom_update_byte(EECONFIG_CONNECTION, config->raw); -} -#endif // CONNECTION_ENABLE - -bool nvm_eeconfig_read_handedness(void) { - return !!eeprom_read_byte(EECONFIG_HANDEDNESS); -} -void nvm_eeconfig_update_handedness(bool val) { - eeprom_update_byte(EECONFIG_HANDEDNESS, !!val); -} - -#if (EECONFIG_KB_DATA_SIZE) > 0 - -bool nvm_eeconfig_is_kb_datablock_valid(void) { - return eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION); -} - -uint32_t nvm_eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) { - if (eeconfig_is_kb_datablock_valid()) { - void *ee_start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + offset); - void *ee_end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + MIN(EECONFIG_KB_DATA_SIZE, offset + length)); - eeprom_read_block(data, ee_start, ee_end - ee_start); - return ee_end - ee_start; - } else { - memset(data, 0, length); - return length; - } -} - -uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) { - eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - - void *ee_start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + offset); - void *ee_end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + MIN(EECONFIG_KB_DATA_SIZE, offset + length)); - eeprom_update_block(data, ee_start, ee_end - ee_start); - return ee_end - ee_start; -} - -void nvm_eeconfig_init_kb_datablock(void) { - eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - - void * start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); - long remaining = end - start; - uint8_t dummy[16] = {0}; - for (int i = 0; i < EECONFIG_KB_DATA_SIZE; i += sizeof(dummy)) { - int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); - eeprom_update_block(dummy, start, this_loop); - start += this_loop; - remaining -= this_loop; - } -} - -#endif // (EECONFIG_KB_DATA_SIZE) > 0 - -#if (EECONFIG_USER_DATA_SIZE) > 0 - -bool nvm_eeconfig_is_user_datablock_valid(void) { - return eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION); -} - -uint32_t nvm_eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) { - if (eeconfig_is_user_datablock_valid()) { - void *ee_start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + offset); - void *ee_end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + MIN(EECONFIG_USER_DATA_SIZE, offset + length)); - eeprom_read_block(data, ee_start, ee_end - ee_start); - return ee_end - ee_start; - } else { - memset(data, 0, length); - return length; - } -} - -uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) { - eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - - void *ee_start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + offset); - void *ee_end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + MIN(EECONFIG_USER_DATA_SIZE, offset + length)); - eeprom_update_block(data, ee_start, ee_end - ee_start); - return ee_end - ee_start; -} - -void nvm_eeconfig_init_user_datablock(void) { - eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - - void * start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); - long remaining = end - start; - uint8_t dummy[16] = {0}; - for (int i = 0; i < EECONFIG_USER_DATA_SIZE; i += sizeof(dummy)) { - int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); - eeprom_update_block(dummy, start, this_loop); - start += this_loop; - remaining -= this_loop; - } -} - -#endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h b/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h deleted file mode 100644 index 78b8190eaf..0000000000 --- a/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include // offsetof - -#include "compiler_support.h" -#include "eeconfig.h" -#include "util.h" - -// Dummy struct only used to calculate offsets -typedef struct PACKED { - uint16_t magic; - uint8_t debug; - uint8_t default_layer; - uint16_t keymap; - uint8_t backlight; - uint8_t audio; - uint32_t rgblight; - uint8_t unicode; - uint8_t steno; - uint8_t handedness; - uint32_t keyboard; - uint32_t user; - union { // Mutually exclusive - uint32_t led_matrix; - uint64_t rgb_matrix; - }; - uint32_t haptic; - uint8_t rgblight_ext; - uint8_t connection; -} eeprom_core_t; - -/* EEPROM parameter address */ -#define EECONFIG_MAGIC (uint16_t *)(offsetof(eeprom_core_t, magic)) -#define EECONFIG_DEBUG (uint8_t *)(offsetof(eeprom_core_t, debug)) -#define EECONFIG_DEFAULT_LAYER (uint8_t *)(offsetof(eeprom_core_t, default_layer)) -#define EECONFIG_KEYMAP (uint16_t *)(offsetof(eeprom_core_t, keymap)) -#define EECONFIG_BACKLIGHT (uint8_t *)(offsetof(eeprom_core_t, backlight)) -#define EECONFIG_AUDIO (uint8_t *)(offsetof(eeprom_core_t, audio)) -#define EECONFIG_RGBLIGHT (uint32_t *)(offsetof(eeprom_core_t, rgblight)) -#define EECONFIG_UNICODEMODE (uint8_t *)(offsetof(eeprom_core_t, unicode)) -#define EECONFIG_STENOMODE (uint8_t *)(offsetof(eeprom_core_t, steno)) -#define EECONFIG_HANDEDNESS (uint8_t *)(offsetof(eeprom_core_t, handedness)) -#define EECONFIG_KEYBOARD (uint32_t *)(offsetof(eeprom_core_t, keyboard)) -#define EECONFIG_USER (uint32_t *)(offsetof(eeprom_core_t, user)) -#define EECONFIG_LED_MATRIX (uint32_t *)(offsetof(eeprom_core_t, led_matrix)) -#define EECONFIG_RGB_MATRIX (uint64_t *)(offsetof(eeprom_core_t, rgb_matrix)) -#define EECONFIG_HAPTIC (uint32_t *)(offsetof(eeprom_core_t, haptic)) -#define EECONFIG_RGBLIGHT_EXTENDED (uint8_t *)(offsetof(eeprom_core_t, rgblight_ext)) -#define EECONFIG_CONNECTION (uint8_t *)(offsetof(eeprom_core_t, connection)) - -// Size of EEPROM being used for core data storage -#define EECONFIG_BASE_SIZE ((uint8_t)sizeof(eeprom_core_t)) - -#define EECONFIG_KB_DATABLOCK ((uint8_t *)(EECONFIG_BASE_SIZE)) -#define EECONFIG_USER_DATABLOCK ((uint8_t *)((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE))) - -// Size of EEPROM being used, other code can refer to this for available EEPROM -#define EECONFIG_SIZE ((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE) + (EECONFIG_USER_DATA_SIZE)) - -STATIC_ASSERT((intptr_t)EECONFIG_HANDEDNESS == 14, "EEPROM handedness offset is incorrect"); diff --git a/quantum/nvm/eeprom/nvm_eeprom_via_internal.h b/quantum/nvm/eeprom/nvm_eeprom_via_internal.h deleted file mode 100644 index bf0d38e2ac..0000000000 --- a/quantum/nvm/eeprom/nvm_eeprom_via_internal.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -// Keyboard level code can change where VIA stores the magic. -// The magic is the build date YYMMDD encoded as BCD in 3 bytes, -// thus installing firmware built on a different date to the one -// already installed can be detected and the EEPROM data is reset. -// The only reason this is important is in case EEPROM usage changes -// and the EEPROM was not explicitly reset by bootmagic lite. -#ifndef VIA_EEPROM_MAGIC_ADDR -# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE) -#endif - -#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR + 3) - -// The end of the EEPROM memory used by VIA -// By default, dynamic keymaps will start at this if there is no -// custom config -#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE) - -#define VIA_EEPROM_CONFIG_END (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) diff --git a/quantum/nvm/eeprom/nvm_via.c b/quantum/nvm/eeprom/nvm_via.c deleted file mode 100644 index 5372791fb7..0000000000 --- a/quantum/nvm/eeprom/nvm_via.c +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "eeprom.h" -#include "util.h" -#include "via.h" -#include "nvm_via.h" -#include "nvm_eeprom_eeconfig_internal.h" -#include "nvm_eeprom_via_internal.h" - -void nvm_via_erase(void) { - // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. -} - -void nvm_via_read_magic(uint8_t *magic0, uint8_t *magic1, uint8_t *magic2) { - if (magic0) { - *magic0 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0); - } - - if (magic1) { - *magic1 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1); - } - - if (magic2) { - *magic2 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2); - } -} - -void nvm_via_update_magic(uint8_t magic0, uint8_t magic1, uint8_t magic2) { - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0, magic0); - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1, magic1); - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2, magic2); -} - -uint32_t nvm_via_read_layout_options(void) { - uint32_t value = 0; - // Start at the most significant byte - void *source = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR); - for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { - value = value << 8; - value |= eeprom_read_byte(source); - source++; - } - return value; -} - -void nvm_via_update_layout_options(uint32_t val) { - // Start at the least significant byte - void *target = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE - 1); - for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { - eeprom_update_byte(target, val & 0xFF); - val = val >> 8; - target--; - } -} - -uint32_t nvm_via_read_custom_config(void *buf, uint32_t offset, uint32_t length) { -#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 - void *ee_start = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + offset); - void *ee_end = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + MIN(VIA_EEPROM_CUSTOM_CONFIG_SIZE, offset + length)); - eeprom_read_block(buf, ee_start, ee_end - ee_start); - return ee_end - ee_start; -#else - return 0; -#endif -} - -uint32_t nvm_via_update_custom_config(const void *buf, uint32_t offset, uint32_t length) { -#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 - void *ee_start = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + offset); - void *ee_end = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + MIN(VIA_EEPROM_CUSTOM_CONFIG_SIZE, offset + length)); - eeprom_update_block(buf, ee_start, ee_end - ee_start); - return ee_end - ee_start; -#else - return 0; -#endif -} diff --git a/quantum/nvm/nvm_dynamic_keymap.h b/quantum/nvm/nvm_dynamic_keymap.h deleted file mode 100644 index d6e4aaee51..0000000000 --- a/quantum/nvm/nvm_dynamic_keymap.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include - -void nvm_dynamic_keymap_erase(void); -void nvm_dynamic_keymap_macro_erase(void); - -uint16_t nvm_dynamic_keymap_read_keycode(uint8_t layer, uint8_t row, uint8_t column); -void nvm_dynamic_keymap_update_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode); - -#ifdef ENCODER_MAP_ENABLE -uint16_t nvm_dynamic_keymap_read_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise); -void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode); -#endif // ENCODER_MAP_ENABLE - -void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data); -void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data); - -uint32_t nvm_dynamic_keymap_macro_size(void); - -void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data); -void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data); - -void nvm_dynamic_keymap_macro_reset(void); diff --git a/quantum/nvm/nvm_eeconfig.h b/quantum/nvm/nvm_eeconfig.h deleted file mode 100644 index 40827361ca..0000000000 --- a/quantum/nvm/nvm_eeconfig.h +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include -#include "action_layer.h" // layer_state_t - -#ifndef EECONFIG_MAGIC_NUMBER -# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE3 // When changing, decrement this value to avoid future re-init issues -#endif -#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF - -void nvm_eeconfig_erase(void); - -bool nvm_eeconfig_is_enabled(void); -bool nvm_eeconfig_is_disabled(void); - -void nvm_eeconfig_enable(void); -void nvm_eeconfig_disable(void); - -typedef union debug_config_t debug_config_t; -void nvm_eeconfig_read_debug(debug_config_t *debug_config); -void nvm_eeconfig_update_debug(const debug_config_t *debug_config); - -layer_state_t nvm_eeconfig_read_default_layer(void); -void nvm_eeconfig_update_default_layer(layer_state_t state); - -typedef union keymap_config_t keymap_config_t; -void nvm_eeconfig_read_keymap(keymap_config_t *keymap_config); -void nvm_eeconfig_update_keymap(const keymap_config_t *keymap_config); - -#ifdef AUDIO_ENABLE -typedef union audio_config_t audio_config_t; -void nvm_eeconfig_read_audio(audio_config_t *audio_config); -void nvm_eeconfig_update_audio(const audio_config_t *audio_config); -#endif // AUDIO_ENABLE - -#ifdef UNICODE_COMMON_ENABLE -typedef union unicode_config_t unicode_config_t; -void nvm_eeconfig_read_unicode_mode(unicode_config_t *unicode_config); -void nvm_eeconfig_update_unicode_mode(const unicode_config_t *unicode_config); -#endif // UNICODE_COMMON_ENABLE - -#ifdef BACKLIGHT_ENABLE -typedef union backlight_config_t backlight_config_t; -void nvm_eeconfig_read_backlight(backlight_config_t *backlight_config); -void nvm_eeconfig_update_backlight(const backlight_config_t *backlight_config); -#endif // BACKLIGHT_ENABLE - -#ifdef STENO_ENABLE -uint8_t nvm_eeconfig_read_steno_mode(void); -void nvm_eeconfig_update_steno_mode(uint8_t val); -#endif // STENO_ENABLE - -#ifdef RGB_MATRIX_ENABLE -typedef union rgb_config_t rgb_config_t; -void nvm_eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config); -void nvm_eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config); -#endif - -#ifdef LED_MATRIX_ENABLE -typedef union led_eeconfig_t led_eeconfig_t; -void nvm_eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config); -void nvm_eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config); -#endif // LED_MATRIX_ENABLE - -#ifdef RGBLIGHT_ENABLE -typedef union rgblight_config_t rgblight_config_t; -void nvm_eeconfig_read_rgblight(rgblight_config_t *rgblight_config); -void nvm_eeconfig_update_rgblight(const rgblight_config_t *rgblight_config); -#endif // RGBLIGHT_ENABLE - -#if (EECONFIG_KB_DATA_SIZE) == 0 -uint32_t nvm_eeconfig_read_kb(void); -void nvm_eeconfig_update_kb(uint32_t val); -#endif // (EECONFIG_KB_DATA_SIZE) == 0 - -#if (EECONFIG_USER_DATA_SIZE) == 0 -uint32_t nvm_eeconfig_read_user(void); -void nvm_eeconfig_update_user(uint32_t val); -#endif // (EECONFIG_USER_DATA_SIZE) == 0 - -#ifdef HAPTIC_ENABLE -typedef union haptic_config_t haptic_config_t; -void nvm_eeconfig_read_haptic(haptic_config_t *haptic_config); -void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config); -#endif // HAPTIC_ENABLE - -#ifdef CONNECTION_ENABLE -typedef union connection_config_t connection_config_t; -void nvm_eeconfig_read_connection(connection_config_t *config); -void nvm_eeconfig_update_connection(const connection_config_t *config); -#endif // CONNECTION_ENABLE - -bool nvm_eeconfig_read_handedness(void); -void nvm_eeconfig_update_handedness(bool val); - -#if (EECONFIG_KB_DATA_SIZE) > 0 -bool nvm_eeconfig_is_kb_datablock_valid(void); -uint32_t nvm_eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length); -uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length); -void nvm_eeconfig_init_kb_datablock(void); -#endif // (EECONFIG_KB_DATA_SIZE) > 0 - -#if (EECONFIG_USER_DATA_SIZE) > 0 -bool nvm_eeconfig_is_user_datablock_valid(void); -uint32_t nvm_eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length); -uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length); -void nvm_eeconfig_init_user_datablock(void); -#endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/nvm/nvm_via.h b/quantum/nvm/nvm_via.h deleted file mode 100644 index 90c5e67421..0000000000 --- a/quantum/nvm/nvm_via.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include - -void nvm_via_erase(void); - -void nvm_via_read_magic(uint8_t *magic0, uint8_t *magic1, uint8_t *magic2); -void nvm_via_update_magic(uint8_t magic0, uint8_t magic1, uint8_t magic2); - -uint32_t nvm_via_read_layout_options(void); -void nvm_via_update_layout_options(uint32_t val); - -uint32_t nvm_via_read_custom_config(void *buf, uint32_t offset, uint32_t length); -uint32_t nvm_via_update_custom_config(const void *buf, uint32_t offset, uint32_t length); diff --git a/quantum/nvm/readme.md b/quantum/nvm/readme.md deleted file mode 100644 index 0731695e92..0000000000 --- a/quantum/nvm/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# Non-volatile Memory - Data Repositories - -This area is intentionally structured in the following way: - -``` -╰- quantum - ╰- nvm - ├- readme.md - ├- rules.mk - | - ├- nvm_eeconfig.h - ├- nvm_<>.h - | - ├- eeprom - | ├- nvm_eeconfig.c - | ├- nvm_<>.c - | ╰- ... - | - ├- <> - | ├- nvm_eeconfig.c - | ├- nvm_<>.c - | ╰- ... - ╰- ... -``` - -At the base `nvm` level, for every QMK core system which requires persistence there must be a corresponding `nvm_<>.h` header file. This provides the data repository API to the "owner" system, and allows the underlying data persistence mechanism to be abstracted away from upper code. Any conversion to/from a `.raw` field should occur inside the `nvm_<>.c` layer, with the API using values, such as structs or unions exposed to the rest of QMK. - -Each `nvm` "provider" is a corresponding child directory consisting of its name, such as `eeprom`, and corresponding `nvm_<>.c` implementation files which provide the concrete implementation of the upper `nvm_<>.h`. - -New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. \ No newline at end of file diff --git a/quantum/nvm/rules.mk b/quantum/nvm/rules.mk deleted file mode 100644 index c9c1fabfd4..0000000000 --- a/quantum/nvm/rules.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 2024 Nick Brassel (@tzarc) -# SPDX-License-Identifier: GPL-2.0-or-later - -VPATH += $(QUANTUM_DIR)/nvm - -VALID_NVM_DRIVERS := eeprom custom none - -NVM_DRIVER ?= eeprom - -ifeq ($(filter $(NVM_DRIVER),$(VALID_NVM_DRIVERS)),) - $(call CATASTROPHIC_ERROR,Invalid NVM_DRIVER,NVM_DRIVER="$(NVM_DRIVER)" is not a valid NVM driver) -else - - # If we don't want one, fake it with transient eeprom. - ifeq ($(NVM_DRIVER),none) - NVM_DRIVER := eeprom - EEPROM_DRIVER := transient - endif - - NVM_DRIVER_UPPER := $(shell echo $(NVM_DRIVER) | tr '[:lower:]' '[:upper:]') - NVM_DRIVER_LOWER := $(shell echo $(NVM_DRIVER) | tr '[:upper:]' '[:lower:]') - - OPT_DEFS += -DNVM_DRIVER_$(NVM_DRIVER_UPPER) -DNVM_DRIVER="$(NVM_DRIVER)" - - ifneq ("$(wildcard $(QUANTUM_DIR)/nvm/$(NVM_DRIVER_LOWER))","") - COMMON_VPATH += $(QUANTUM_DIR)/nvm/$(NVM_DRIVER_LOWER) - endif - - QUANTUM_SRC += nvm_eeconfig.c - -endif diff --git a/quantum/os_detection.c b/quantum/os_detection.c index 552375f61c..96b026e247 100644 --- a/quantum/os_detection.c +++ b/quantum/os_detection.c @@ -34,7 +34,7 @@ static uint16_t usb_setups[STORED_USB_SETUPS]; #endif #ifndef OS_DETECTION_DEBOUNCE -# define OS_DETECTION_DEBOUNCE 250 +# define OS_DETECTION_DEBOUNCE 200 #endif // 2s should always be more than enough (otherwise, you may have other issues) @@ -59,66 +59,39 @@ struct setups_data_t setups_data = { }; static volatile os_variant_t detected_os = OS_UNSURE; -static volatile os_variant_t reported_os = OS_UNSURE; +static os_variant_t reported_os = OS_UNSURE; // we need to be able to report OS_UNSURE if that is the stable result of the guesses -static volatile bool first_report = true; +static bool first_report = true; // to react on USB state changes -static volatile struct usb_device_state current_usb_device_state = {.configure_state = USB_DEVICE_STATE_NO_INIT}; -static volatile struct usb_device_state maxprev_usb_device_state = {.configure_state = USB_DEVICE_STATE_NO_INIT}; - -// to reset the keyboard on USB state change -#ifdef OS_DETECTION_KEYBOARD_RESET -# ifndef OS_DETECTION_RESET_DEBOUNCE -# define OS_DETECTION_RESET_DEBOUNCE OS_DETECTION_DEBOUNCE -# endif -static volatile fast_timer_t configured_since = 0; -static volatile bool reset_pending = false; -#endif +static volatile enum usb_device_state current_usb_device_state = USB_DEVICE_STATE_INIT; +static enum usb_device_state reported_usb_device_state = USB_DEVICE_STATE_INIT; // the OS detection might be unstable for a while, "debounce" it static volatile bool debouncing = false; -static volatile fast_timer_t last_time = 0; - -bool process_detected_host_os_modules(os_variant_t os); +static volatile fast_timer_t last_time; void os_detection_task(void) { -#ifdef OS_DETECTION_KEYBOARD_RESET - // resetting the keyboard on the USB device state change callback results in instability, so delegate that to this task - if (reset_pending) { - soft_reset_keyboard(); - } - // reset the keyboard if it is stuck in the init state for longer than debounce duration, which can happen with some KVMs - if (current_usb_device_state.configure_state <= USB_DEVICE_STATE_INIT && maxprev_usb_device_state.configure_state >= USB_DEVICE_STATE_CONFIGURED) { - if (debouncing && timer_elapsed_fast(last_time) >= OS_DETECTION_DEBOUNCE) { - soft_reset_keyboard(); - } - return; - } -#endif -#ifdef OS_DETECTION_SINGLE_REPORT - if (!first_report) { - return; - } -#endif - if (current_usb_device_state.configure_state == USB_DEVICE_STATE_CONFIGURED) { + if (current_usb_device_state == USB_DEVICE_STATE_CONFIGURED) { // debouncing goes for both the detected OS as well as the USB state if (debouncing && timer_elapsed_fast(last_time) >= OS_DETECTION_DEBOUNCE) { - debouncing = false; - last_time = 0; + debouncing = false; + reported_usb_device_state = current_usb_device_state; if (detected_os != reported_os || first_report) { first_report = false; reported_os = detected_os; - process_detected_host_os_modules(detected_os); process_detected_host_os_kb(detected_os); } } } -} - -__attribute__((weak)) bool process_detected_host_os_modules(os_variant_t os) { - return true; +#ifdef OS_DETECTION_KEYBOARD_RESET + // resetting the keyboard on the USB device state change callback results in instability, so delegate that to this task + // only take action if it's been stable at least once, to avoid issues with some KVMs + else if (current_usb_device_state == USB_DEVICE_STATE_INIT && reported_usb_device_state != USB_DEVICE_STATE_INIT) { + soft_reset_keyboard(); + } +#endif } __attribute__((weak)) bool process_detected_host_os_kb(os_variant_t detected_os) { @@ -152,7 +125,7 @@ void process_wlength(const uint16_t w_length) { } else if (setups_data.count == setups_data.cnt_ff) { // Linux has 3 packets with 0xFF. guessed = OS_LINUX; - } else if (setups_data.count >= 5 && setups_data.last_wlength == 0xFF && setups_data.cnt_ff >= 1 && setups_data.cnt_02 >= 2) { + } else if (setups_data.count == 5 && setups_data.last_wlength == 0xFF && setups_data.cnt_ff == 1 && setups_data.cnt_02 == 2) { guessed = OS_MACOS; } else if (setups_data.count == 4 && setups_data.cnt_ff == 0 && setups_data.cnt_02 == 2) { // iOS and iPadOS don't have the last 0xFF packet. @@ -182,35 +155,19 @@ os_variant_t detected_host_os(void) { void erase_wlength_data(void) { memset(&setups_data, 0, sizeof(setups_data)); - detected_os = OS_UNSURE; - reported_os = OS_UNSURE; - current_usb_device_state.configure_state = USB_DEVICE_STATE_NO_INIT; - maxprev_usb_device_state.configure_state = USB_DEVICE_STATE_NO_INIT; - debouncing = false; - last_time = 0; - first_report = true; + detected_os = OS_UNSURE; + reported_os = OS_UNSURE; + current_usb_device_state = USB_DEVICE_STATE_INIT; + reported_usb_device_state = USB_DEVICE_STATE_INIT; + debouncing = false; + first_report = true; } -void os_detection_notify_usb_device_state_change(struct usb_device_state usb_device_state) { +void os_detection_notify_usb_device_state_change(enum usb_device_state usb_device_state) { // treat this like any other source of instability - if (maxprev_usb_device_state.configure_state < current_usb_device_state.configure_state) { - maxprev_usb_device_state.configure_state = current_usb_device_state.configure_state; - } current_usb_device_state = usb_device_state; last_time = timer_read_fast(); debouncing = true; - -#ifdef OS_DETECTION_KEYBOARD_RESET - if (configured_since == 0 && current_usb_device_state.configure_state == USB_DEVICE_STATE_CONFIGURED) { - configured_since = timer_read_fast(); - } else if (current_usb_device_state.configure_state == USB_DEVICE_STATE_INIT) { - // reset the keyboard only if it's been stable for at least debounce duration, to avoid issues with some KVMs - if (configured_since > 0 && timer_elapsed_fast(configured_since) >= OS_DETECTION_RESET_DEBOUNCE) { - reset_pending = true; - } - configured_since = 0; - } -#endif } #if defined(SPLIT_KEYBOARD) && defined(SPLIT_DETECTED_OS_ENABLE) diff --git a/quantum/os_detection.h b/quantum/os_detection.h index e9e7b25f1d..b8cd898335 100644 --- a/quantum/os_detection.h +++ b/quantum/os_detection.h @@ -31,7 +31,7 @@ typedef enum { void process_wlength(const uint16_t w_length); os_variant_t detected_host_os(void); void erase_wlength_data(void); -void os_detection_notify_usb_device_state_change(struct usb_device_state usb_device_state); +void os_detection_notify_usb_device_state_change(enum usb_device_state usb_device_state); void os_detection_task(void); @@ -43,9 +43,6 @@ void slave_update_detected_host_os(os_variant_t os); #endif #ifdef OS_DETECTION_DEBUG_ENABLE -# if defined(DYNAMIC_KEYMAP_ENABLE) || defined(VIA_ENABLE) -# error Cannot enable OS Detection debug mode simultaneously with DYNAMIC_KEYMAP or VIA -# endif void print_stored_setups(void); void store_setups_in_eeprom(void); #endif diff --git a/quantum/os_detection/tests/os_detection.cpp b/quantum/os_detection/tests/os_detection.cpp index 21c4536243..a9f671156b 100644 --- a/quantum/os_detection/tests/os_detection.cpp +++ b/quantum/os_detection/tests/os_detection.cpp @@ -68,12 +68,8 @@ ChibiOS: Windows 10: [FF, FF, 4, 24, 4, 24, 4, FF, 24, FF, 4, FF, 24, 4, 24, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A] Windows 10 (another host): [FF, FF, 4, 24, 4, 24, 4, 24, 4, 24, 4, 24] macOS 12.5: [2, 24, 2, 28, FF] -macOS 15.1.x: [ 2, 4E, 2, 1C, 2, 1A, FF, FF] -macOS 15.x (another host): [ 2, 0E, 2, 1E, 2, 42, FF] -macOS 15.x (periodic weirdness): [ 2, 42, 2, 1C, 2, 1A, FF, 2, 42, 2, 1C, 2, 1A, FF ] iOS/iPadOS 15.6: [2, 24, 2, 28] Linux (including Android, Raspberry Pi and WebOS TV): [FF, FF, FF] -Linux (another host): [FF, FF, FF, FF, FF, FF] PS5: [2, 4, 2, 28, 2, 24] Nintendo Switch: [82, FF, 40, 40, FF, 40, 40, FF, 40, 40, FF, 40, 40, FF, 40, 40] Quest 2: [FF, FF, FF, FE, FF, FE, FF, FE, FF, FE, FF] @@ -83,7 +79,6 @@ Windows 10 (first connect): [12, FF, FF, 4, 10, FF, FF, FF, 4, 10, 20A, 20A, 20A Windows 10 (subsequent connect): [FF, FF, 4, 10, FF, 4, FF, 10, FF, 20A, 20A, 20A, 20A, 20A, 20A] Windows 10 (another host): [FF, FF, 4, 10, 4, 10] macOS: [2, 10, 2, E, FF] -macOS 15.x: [ 2, 64, 2, 28, FF, FF] iOS/iPadOS: [2, 10, 2, E] Linux: [FF, FF, FF] PS5: [2, 4, 2, E, 2, 10] @@ -114,67 +109,18 @@ TEST_F(OsDetectionTest, TestLinux) { assert_not_reported(); } -TEST_F(OsDetectionTest, TestChibiosLinux) { - EXPECT_EQ(check_sequence({0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}), OS_LINUX); - os_detection_task(); - assert_not_reported(); -} - TEST_F(OsDetectionTest, TestChibiosMacos) { EXPECT_EQ(check_sequence({0x2, 0x24, 0x2, 0x28, 0xFF}), OS_MACOS); os_detection_task(); assert_not_reported(); } -TEST_F(OsDetectionTest, TestChibiosMacos2) { - EXPECT_EQ(check_sequence({0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - -TEST_F(OsDetectionTest, TestChibiosMacos3) { - EXPECT_EQ(check_sequence({0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF, 0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - -// Regression reported in https://github.com/qmk/qmk_firmware/pull/21777#issuecomment-1922815841 -TEST_F(OsDetectionTest, TestChibiosMacM1) { - EXPECT_EQ(check_sequence({0x02, 0x32, 0x02, 0x24, 0x101, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - -TEST_F(OsDetectionTest, TestChibiosMacSequoia) { - EXPECT_EQ(check_sequence({0x02, 0x4E, 0x02, 0x1C, 0x02, 0x1A, 0xFF, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - -TEST_F(OsDetectionTest, TestChibiosMacSequoia2) { - EXPECT_EQ(check_sequence({0x02, 0x4E, 0x02, 0x1C, 0x02, 0x1A, 0xFF, 0x02, 0x42, 0x02, 0x1C, 0x02, 0x1A, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - -TEST_F(OsDetectionTest, TestChibiosMacSequoia3) { - EXPECT_EQ(check_sequence({0x02, 0x0E, 0x02, 0x1E, 0x02, 0x42, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - TEST_F(OsDetectionTest, TestLufaMacos) { EXPECT_EQ(check_sequence({0x2, 0x10, 0x2, 0xE, 0xFF}), OS_MACOS); os_detection_task(); assert_not_reported(); } -TEST_F(OsDetectionTest, TestDetectLufaMacSequoia2) { - EXPECT_EQ(check_sequence({0x02, 0x64, 0x02, 0x28, 0xFF, 0xFF}), OS_MACOS); - os_detection_task(); - assert_not_reported(); -} - TEST_F(OsDetectionTest, TestVusbMacos) { EXPECT_EQ(check_sequence({0x2, 0xE, 0x2, 0xE, 0xFF}), OS_MACOS); os_detection_task(); @@ -289,6 +235,13 @@ TEST_F(OsDetectionTest, TestVusbQuest2) { assert_not_reported(); } +// Regression reported in https://github.com/qmk/qmk_firmware/pull/21777#issuecomment-1922815841 +TEST_F(OsDetectionTest, TestDetectMacM1AsIOS) { + EXPECT_EQ(check_sequence({0x02, 0x32, 0x02, 0x24, 0x101, 0xFF}), OS_IOS); + os_detection_task(); + assert_not_reported(); +} + TEST_F(OsDetectionTest, TestDoNotReportIfUsbUnstable) { EXPECT_EQ(check_sequence({0xFF, 0xFF, 0xFF, 0xFE}), OS_LINUX); os_detection_task(); @@ -300,11 +253,9 @@ TEST_F(OsDetectionTest, TestDoNotReportIfUsbUnstable) { EXPECT_EQ(detected_host_os(), OS_LINUX); } -static struct usb_device_state usb_device_state_configured = {.configure_state = USB_DEVICE_STATE_CONFIGURED}; - TEST_F(OsDetectionTest, TestReportAfterDebounce) { EXPECT_EQ(check_sequence({0xFF, 0xFF, 0xFF, 0xFE}), OS_LINUX); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); os_detection_task(); assert_not_reported(); @@ -340,7 +291,7 @@ TEST_F(OsDetectionTest, TestReportAfterDebounce) { TEST_F(OsDetectionTest, TestReportAfterDebounceLongWait) { EXPECT_EQ(check_sequence({0x12, 0xFF, 0xFF, 0x4, 0x10, 0xFF, 0xFF, 0xFF, 0x4, 0x10, 0x20A, 0x20A, 0x20A, 0x20A, 0x20A, 0x20A}), OS_WINDOWS); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); os_detection_task(); assert_not_reported(); @@ -367,7 +318,7 @@ TEST_F(OsDetectionTest, TestReportAfterDebounceLongWait) { TEST_F(OsDetectionTest, TestReportUnsure) { EXPECT_EQ(check_sequence({0x12, 0xFF}), OS_UNSURE); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); os_detection_task(); assert_not_reported(); @@ -394,7 +345,7 @@ TEST_F(OsDetectionTest, TestReportUnsure) { TEST_F(OsDetectionTest, TestDoNotReportIntermediateResults) { EXPECT_EQ(check_sequence({0x12, 0xFF}), OS_UNSURE); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); os_detection_task(); assert_not_reported(); @@ -405,7 +356,7 @@ TEST_F(OsDetectionTest, TestDoNotReportIntermediateResults) { // at this stage, the final result has not been reached yet EXPECT_EQ(check_sequence({0xFF}), OS_LINUX); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); advance_time(OS_DETECTION_DEBOUNCE - 1); os_detection_task(); assert_not_reported(); @@ -414,7 +365,7 @@ TEST_F(OsDetectionTest, TestDoNotReportIntermediateResults) { // the remainder is processed EXPECT_EQ(check_sequence({0x4, 0x10, 0xFF, 0xFF, 0xFF, 0x4, 0x10, 0x20A, 0x20A, 0x20A, 0x20A, 0x20A, 0x20A}), OS_WINDOWS); - os_detection_notify_usb_device_state_change(usb_device_state_configured); + os_detection_notify_usb_device_state_change(USB_DEVICE_STATE_CONFIGURED); advance_time(OS_DETECTION_DEBOUNCE - 1); os_detection_task(); assert_not_reported(); diff --git a/quantum/os_detection/tests/rules.mk b/quantum/os_detection/tests/rules.mk index 2f31f5e391..1b69b71ba9 100644 --- a/quantum/os_detection/tests/rules.mk +++ b/quantum/os_detection/tests/rules.mk @@ -4,5 +4,4 @@ os_detection_DEFS += -DOS_DETECTION_DEBOUNCE=50 os_detection_SRC := \ $(QUANTUM_PATH)/os_detection/tests/os_detection.cpp \ $(QUANTUM_PATH)/os_detection.c \ - $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h index ed88508d73..c3b831da17 100644 --- a/quantum/painter/qff.h +++ b/quantum/painter/qff.h @@ -9,7 +9,6 @@ #include #include -#include "compiler_support.h" #include "qp_stream.h" #include "qp_internal.h" #include "qgf.h" @@ -37,7 +36,7 @@ typedef struct QP_PACKED qff_font_descriptor_v1_t { uint8_t transparency_index; // palette index used for transparent pixels (not yet implemented) } qff_font_descriptor_v1_t; -STATIC_ASSERT(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 20), "qff_font_descriptor_v1_t must be 25 bytes in v1 of QFF"); +_Static_assert(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 20), "qff_font_descriptor_v1_t must be 25 bytes in v1 of QFF"); #define QFF_MAGIC 0x464651 @@ -55,14 +54,14 @@ typedef struct QP_PACKED qff_ascii_glyph_v1_t { uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_ascii_glyph_v1_t; -STATIC_ASSERT(sizeof(qff_ascii_glyph_v1_t) == 3, "qff_ascii_glyph_v1_t must be 3 bytes in v1 of QFF"); +_Static_assert(sizeof(qff_ascii_glyph_v1_t) == 3, "qff_ascii_glyph_v1_t must be 3 bytes in v1 of QFF"); typedef struct QP_PACKED qff_ascii_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = 285 } qff_ascii_glyph_v1_t glyph[95]; // 95 glyphs, 0x20..0x7E } qff_ascii_glyph_table_v1_t; -STATIC_ASSERT(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_t) + (95 * sizeof(qff_ascii_glyph_v1_t))), "qff_ascii_glyph_table_v1_t must be 290 bytes in v1 of QFF"); +_Static_assert(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_t) + (95 * sizeof(qff_ascii_glyph_v1_t))), "qff_ascii_glyph_table_v1_t must be 290 bytes in v1 of QFF"); ///////////////////////////////////////// // Unicode glyph table descriptor @@ -74,7 +73,7 @@ typedef struct QP_PACKED qff_unicode_glyph_v1_t { uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_unicode_glyph_v1_t; -STATIC_ASSERT(sizeof(qff_unicode_glyph_v1_t) == 6, "qff_unicode_glyph_v1_t must be 6 bytes in v1 of QFF"); +_Static_assert(sizeof(qff_unicode_glyph_v1_t) == 6, "qff_unicode_glyph_v1_t must be 6 bytes in v1 of QFF"); typedef struct QP_PACKED qff_unicode_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = (N * 6) } diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c index 07c3f80314..bc2df94933 100644 --- a/quantum/painter/qgf.c +++ b/quantum/painter/qgf.c @@ -255,10 +255,10 @@ bool qgf_validate_stream(qp_stream_t *stream) { // Read and validate all the frames (automatically validates the frame offset descriptor in the process) for (uint16_t i = 0; i < frame_count; ++i) { // Validate the frame descriptor block - uint8_t bpp = 0; - bool has_palette = false; - bool is_panel_native = false; - bool has_delta = false; + uint8_t bpp; + bool has_palette; + bool is_panel_native; + bool has_delta; if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &is_panel_native, &has_delta)) { return false; } diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h index a1e245f15d..33a37709e6 100644 --- a/quantum/painter/qgf.h +++ b/quantum/painter/qgf.h @@ -9,7 +9,6 @@ #include #include -#include "compiler_support.h" #include "qp_stream.h" #include "qp_internal.h" @@ -25,7 +24,7 @@ typedef struct QP_PACKED qgf_block_header_v1_t { uint32_t length : 24; // 24-bit blob length, allowing for block sizes of a maximum of 16MB. } qgf_block_header_v1_t; -STATIC_ASSERT(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be 5 bytes in v1 of QGF"); +_Static_assert(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be 5 bytes in v1 of QGF"); ///////////////////////////////////////// // Graphics descriptor @@ -43,7 +42,7 @@ typedef struct QP_PACKED qgf_graphics_descriptor_v1_t { uint16_t frame_count; // minimum of 1 } qgf_graphics_descriptor_v1_t; -STATIC_ASSERT(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 18), "qgf_graphics_descriptor_v1_t must be 23 bytes in v1 of QGF"); +_Static_assert(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) + 18), "qgf_graphics_descriptor_v1_t must be 23 bytes in v1 of QGF"); #define QGF_MAGIC 0x464751 @@ -57,7 +56,7 @@ typedef struct QP_PACKED qgf_frame_offsets_v1_t { uint32_t offset[0]; // '0' signifies that this struct is immediately followed by the frame offsets } qgf_frame_offsets_v1_t; -STATIC_ASSERT(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_frame_offsets_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); +_Static_assert(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_frame_offsets_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); ///////////////////////////////////////// // Frame descriptor @@ -73,7 +72,7 @@ typedef struct QP_PACKED qgf_frame_v1_t { uint16_t delay; // frame delay time for animations (in units of milliseconds) } qgf_frame_v1_t; -STATIC_ASSERT(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qgf_frame_v1_t must be 11 bytes in v1 of QGF"); +_Static_assert(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qgf_frame_v1_t must be 11 bytes in v1 of QGF"); #define QGF_FRAME_FLAG_DELTA 0x02 #define QGF_FRAME_FLAG_TRANSPARENT 0x01 @@ -89,14 +88,14 @@ typedef struct QP_PACKED qgf_palette_entry_v1_t { uint8_t v; // value component: `[0,1]` is mapped to `[0,255]` uint8_t. } qgf_palette_entry_v1_t; -STATIC_ASSERT(sizeof(qgf_palette_entry_v1_t) == 3, "Palette entry is not 3 bytes in size"); +_Static_assert(sizeof(qgf_palette_entry_v1_t) == 3, "Palette entry is not 3 bytes in size"); typedef struct QP_PACKED qgf_palette_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x03, .neg_type_id = (~0x03), .length = (N * 3 * sizeof(uint8_t)) } qgf_palette_entry_v1_t hsv[0]; // N * hsv, where N is the number of palette entries depending on the frame format in the descriptor } qgf_palette_v1_t; -STATIC_ASSERT(sizeof(qgf_palette_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_palette_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); +_Static_assert(sizeof(qgf_palette_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_palette_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); ///////////////////////////////////////// // Frame delta descriptor @@ -111,7 +110,7 @@ typedef struct QP_PACKED qgf_delta_v1_t { uint16_t bottom; // The bottom pixel location to to draw the delta image } qgf_delta_v1_t; -STATIC_ASSERT(sizeof(qgf_delta_v1_t) == (sizeof(qgf_block_header_v1_t) + 8), "qgf_delta_v1_t must be 13 bytes in v1 of QGF"); +_Static_assert(sizeof(qgf_delta_v1_t) == (sizeof(qgf_block_header_v1_t) + 8), "qgf_delta_v1_t must be 13 bytes in v1 of QGF"); ///////////////////////////////////////// // Frame data descriptor @@ -123,7 +122,7 @@ typedef struct QP_PACKED qgf_data_v1_t { uint8_t data[0]; // 0 signifies that this struct is immediately followed by the length of data specified in the header } qgf_data_v1_t; -STATIC_ASSERT(sizeof(qgf_data_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_data_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); +_Static_assert(sizeof(qgf_data_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_data_v1_t must only contain qgf_block_header_v1_t in v1 of QGF"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // QGF API diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h index f7fdb02789..820c418f43 100644 --- a/quantum/painter/qp.h +++ b/quantum/painter/qp.h @@ -557,18 +557,6 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai # define SH1106_NUM_DEVICES 0 #endif // QUANTUM_PAINTER_SH1106_ENABLE -#ifdef QUANTUM_PAINTER_SH1107_ENABLE -# include "qp_sh1107.h" -#else // QUANTUM_PAINTER_SH1107_ENABLE -# define SH1107_NUM_DEVICES 0 -#endif // QUANTUM_PAINTER_SH1107_ENABLE - -#ifdef QUANTUM_PAINTER_LD7032_ENABLE -# include "qp_ld7032.h" -#else // QUANTUM_PAINTER_LD7032_ENABLE -# define LD7032_NUM_DEVICES 0 -#endif // QUANTUM_PAINTER_LD7032_ENABLE - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter Extras diff --git a/quantum/painter/qp_comms.c b/quantum/painter/qp_comms.c index 402165b119..63667783e1 100644 --- a/quantum/painter/qp_comms.c +++ b/quantum/painter/qp_comms.c @@ -49,15 +49,15 @@ uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Comms APIs that use a D/C pin -bool qp_comms_command(painter_device_t device, uint8_t cmd) { +void qp_comms_command(painter_device_t device, uint8_t cmd) { painter_driver_t * driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; - return comms_vtable->send_command(device, cmd); + comms_vtable->send_command(device, cmd); } -bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) { +void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) { qp_comms_command(device, cmd); - return qp_comms_send(device, &data, sizeof(data)); + qp_comms_send(device, &data, sizeof(data)); } uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) { @@ -65,8 +65,8 @@ uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const vo return qp_comms_send(device, data, byte_count); } -bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { +void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { painter_driver_t * driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; - return comms_vtable->bulk_command_sequence(device, sequence, sequence_len); + comms_vtable->bulk_command_sequence(device, sequence, sequence_len); } diff --git a/quantum/painter/qp_comms.h b/quantum/painter/qp_comms.h index dc5892b1bb..8fbf25c201 100644 --- a/quantum/painter/qp_comms.h +++ b/quantum/painter/qp_comms.h @@ -19,7 +19,7 @@ uint32_t qp_comms_send(painter_device_t device, const void* data, uint32_t byte_ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Comms APIs that use a D/C pin -bool qp_comms_command(painter_device_t device, uint8_t cmd); -bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data); +void qp_comms_command(painter_device_t device, uint8_t cmd); +void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data); uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void* data, uint32_t byte_count); -bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len); +void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len); diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c index 852abb19e8..aa5fa4aa76 100644 --- a/quantum/painter/qp_draw_core.c +++ b/quantum/painter/qp_draw_core.c @@ -2,13 +2,12 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // SPDX-License-Identifier: GPL-2.0-or-later -#include "compiler_support.h" #include "qp_internal.h" #include "qp_comms.h" #include "qp_draw.h" #include "qgf.h" -STATIC_ASSERT((QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE > 0) && (QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE % 16) == 0, "QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE needs to be a non-zero multiple of 16"); +_Static_assert((QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE > 0) && (QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE % 16) == 0, "QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE needs to be a non-zero multiple of 16"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Global variables diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c index a225039af4..18fa38cb19 100644 --- a/quantum/painter/qp_draw_image.c +++ b/quantum/painter/qp_draw_image.c @@ -318,9 +318,9 @@ static deferred_token qp_render_animation_state(animation_state_t *state, uint16 } static uint32_t animation_callback(uint32_t trigger_time, void *cb_arg) { - animation_state_t *state = (animation_state_t *)cb_arg; - uint16_t delay_ms = 0; - bool ret = qp_render_animation_state(state, &delay_ms); + animation_state_t *state = (animation_state_t *)cb_arg; + uint16_t delay_ms; + bool ret = qp_render_animation_state(state, &delay_ms); if (!ret) { // Setting the device to NULL clears the animation slot state->device = NULL; diff --git a/quantum/painter/qp_internal.c b/quantum/painter/qp_internal.c index fe0c598d78..7d4a6430af 100644 --- a/quantum/painter/qp_internal.c +++ b/quantum/painter/qp_internal.c @@ -3,8 +3,6 @@ #include "qp_internal.h" -#include "compiler_support.h" - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter Core API: device registration @@ -21,8 +19,6 @@ enum { + (GC9107_NUM_DEVICES) // GC9107 + (SSD1351_NUM_DEVICES) // SSD1351 + (SH1106_NUM_DEVICES) // SH1106 - + (SH1107_NUM_DEVICES) // SH1107 - + (LD7032_NUM_DEVICES) // LD7032 }; static painter_device_t qp_devices[QP_NUM_DEVICES] = {NULL}; @@ -69,7 +65,7 @@ static void qp_internal_display_timeout_task(void) { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter Core API: qp_internal_task -STATIC_ASSERT((QUANTUM_PAINTER_TASK_THROTTLE) > 0 && (QUANTUM_PAINTER_TASK_THROTTLE) < 1000, "QUANTUM_PAINTER_TASK_THROTTLE must be between 1 and 999"); +_Static_assert((QUANTUM_PAINTER_TASK_THROTTLE) > 0 && (QUANTUM_PAINTER_TASK_THROTTLE) < 1000, "QUANTUM_PAINTER_TASK_THROTTLE must be between 1 and 999"); void qp_internal_task(void) { // Perform throttling of the internal processing of Quantum Painter diff --git a/quantum/painter/qp_internal_driver.h b/quantum/painter/qp_internal_driver.h index 5b6efe2c83..69da966f8c 100644 --- a/quantum/painter/qp_internal_driver.h +++ b/quantum/painter/qp_internal_driver.h @@ -36,7 +36,7 @@ typedef struct painter_driver_vtable_t { typedef bool (*painter_driver_comms_init_func)(painter_device_t device); typedef bool (*painter_driver_comms_start_func)(painter_device_t device); -typedef bool (*painter_driver_comms_stop_func)(painter_device_t device); +typedef void (*painter_driver_comms_stop_func)(painter_device_t device); typedef uint32_t (*painter_driver_comms_send_func)(painter_device_t device, const void *data, uint32_t byte_count); typedef struct painter_comms_vtable_t { @@ -46,8 +46,8 @@ typedef struct painter_comms_vtable_t { painter_driver_comms_send_func comms_send; } painter_comms_vtable_t; -typedef bool (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd); -typedef bool (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len); +typedef void (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd); +typedef void (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len); typedef struct painter_comms_with_command_vtable_t { painter_comms_vtable_t base; // must be first, so this object can be cast from the painter_comms_vtable_t* type diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h index bd7105cab2..1beb604b9e 100644 --- a/quantum/painter/qp_internal_formats.h +++ b/quantum/painter/qp_internal_formats.h @@ -3,7 +3,6 @@ #pragma once -#include "compiler_support.h" #include "qp_internal.h" //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -30,7 +29,7 @@ typedef union QP_PACKED qp_pixel_t { uint32_t dummy; } qp_pixel_t; -STATIC_ASSERT(sizeof(qp_pixel_t) == 4, "Invalid size for qp_pixel_t"); +_Static_assert(sizeof(qp_pixel_t) == 4, "Invalid size for qp_pixel_t"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter image format diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index 10c2698092..7b2ab702ee 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -17,11 +17,7 @@ VALID_QUANTUM_PAINTER_DRIVERS := \ gc9107_spi \ ssd1351_spi \ sh1106_i2c \ - sh1106_spi \ - sh1107_i2c \ - sh1107_spi \ - ld7032_i2c \ - ld7032_spi + sh1106_spi #------------------------------------------------------------------------------- @@ -186,52 +182,6 @@ define handle_quantum_painter_driver $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_spi) - QUANTUM_PAINTER_NEEDS_SURFACE := yes - QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes - QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes - OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_SPI_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/oled_panel \ - $(DRIVER_PATH)/painter/sh1107 - SRC += \ - $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ - $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c - - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_i2c) - QUANTUM_PAINTER_NEEDS_SURFACE := yes - QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes - OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_I2C_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/oled_panel \ - $(DRIVER_PATH)/painter/sh1107 - SRC += \ - $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ - $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c - - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_spi) - QUANTUM_PAINTER_NEEDS_SURFACE := yes - QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes - QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes - OPT_DEFS += -DQUANTUM_PAINTER_LD7032_ENABLE -DQUANTUM_PAINTER_LD7032_SPI_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/oled_panel \ - $(DRIVER_PATH)/painter/ld7032 - SRC += \ - $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ - $(DRIVER_PATH)/painter/ld7032/qp_ld7032.c - - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_i2c) - QUANTUM_PAINTER_NEEDS_SURFACE := yes - QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes - OPT_DEFS += -DQUANTUM_PAINTER_LD7032_ENABLE -DQUANTUM_PAINTER_LD7032_I2C_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/oled_panel \ - $(DRIVER_PATH)/painter/ld7032 - SRC += \ - $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ - $(DRIVER_PATH)/painter/ld7032/qp_ld7032.c - endif endef diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index fe88d5a1af..74ce9108a9 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -25,10 +25,6 @@ # include "mousekey.h" #endif -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE -# include "usb_descriptor_common.h" -#endif - #if (defined(POINTING_DEVICE_ROTATION_90) + defined(POINTING_DEVICE_ROTATION_180) + defined(POINTING_DEVICE_ROTATION_270)) > 1 # error More than one rotation selected. This is not supported. #endif @@ -80,43 +76,10 @@ uint16_t pointing_device_get_shared_cpi(void) { #endif // defined(SPLIT_POINTING_ENABLE) -static report_mouse_t local_mouse_report = {}; -static bool pointing_device_force_send = false; -static pointing_device_status_t pointing_device_status = POINTING_DEVICE_STATUS_UNKNOWN; +static report_mouse_t local_mouse_report = {}; +static bool pointing_device_force_send = false; -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE -static uint16_t hires_scroll_resolution; -#endif - -#define POINTING_DEVICE_DRIVER_CONCAT(name) name##_pointing_device_driver -#define POINTING_DEVICE_DRIVER(name) POINTING_DEVICE_DRIVER_CONCAT(name) - -#ifdef POINTING_DEVICE_DRIVER_custom -__attribute__((weak)) bool pointing_device_driver_init(void) { - return false; -} -__attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { - return mouse_report; -} -__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { - return 0; -} -__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) {} - -const pointing_device_driver_t custom_pointing_device_driver = { - .init = pointing_device_driver_init, - .get_report = pointing_device_driver_get_report, - .get_cpi = pointing_device_driver_get_cpi, - .set_cpi = pointing_device_driver_set_cpi, -}; -#endif - -const pointing_device_driver_t *pointing_device_driver = &POINTING_DEVICE_DRIVER(POINTING_DEVICE_DRIVER_NAME); - -__attribute__((weak)) void pointing_device_init_modules(void) {} -__attribute__((weak)) report_mouse_t pointing_device_task_modules(report_mouse_t mouse_report) { - return mouse_report; -} +extern const pointing_device_driver_t pointing_device_driver; /** * @brief Keyboard level code pointing device initialisation @@ -183,11 +146,7 @@ __attribute__((weak)) void pointing_device_init(void) { if ((POINTING_DEVICE_THIS_SIDE)) #endif { - if (pointing_device_driver->init()) { - pointing_device_status = POINTING_DEVICE_STATUS_SUCCESS; - } else { - pointing_device_status = POINTING_DEVICE_STATUS_INIT_FAILED; - } + pointing_device_driver.init(); #ifdef POINTING_DEVICE_MOTION_PIN # ifdef POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW gpio_set_pin_input_high(POINTING_DEVICE_MOTION_PIN); @@ -196,40 +155,11 @@ __attribute__((weak)) void pointing_device_init(void) { # endif #endif } -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE - hires_scroll_resolution = POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER; - for (int i = 0; i < POINTING_DEVICE_HIRES_SCROLL_EXPONENT; i++) { - hires_scroll_resolution *= 10; - } -#endif - pointing_device_init_modules(); pointing_device_init_kb(); pointing_device_init_user(); } -/** - * @brief Gets status of pointing device - * - * Returns current pointing device status - * @return pointing_device_status_t - */ -__attribute__((weak)) pointing_device_status_t pointing_device_get_status(void) { -#ifdef SPLIT_POINTING_ENABLE - // Assume target side is always good, split transaction checksum should stop additional reports being generated. - return POINTING_DEVICE_THIS_SIDE ? pointing_device_status : POINTING_DEVICE_STATUS_SUCCESS; -#else - return pointing_device_status; -#endif -} - -/** - * @brief Sets status of pointing device - */ -void pointing_device_set_status(pointing_device_status_t status) { - pointing_device_status = status; -} - /** * @brief Sends processed mouse report to host * @@ -311,10 +241,6 @@ __attribute__((weak)) bool pointing_device_task(void) { last_exec = timer_read32(); #endif - if (pointing_device_get_status() != POINTING_DEVICE_STATUS_SUCCESS) { - return false; - } - // Gather report info #ifdef POINTING_DEVICE_MOTION_PIN # if defined(SPLIT_POINTING_ENABLE) @@ -332,15 +258,15 @@ __attribute__((weak)) bool pointing_device_task(void) { # if defined(POINTING_DEVICE_COMBINED) static uint8_t old_buttons = 0; local_mouse_report.buttons = old_buttons; - local_mouse_report = pointing_device_driver->get_report(local_mouse_report); + local_mouse_report = pointing_device_driver.get_report(local_mouse_report); old_buttons = local_mouse_report.buttons; # elif defined(POINTING_DEVICE_LEFT) || defined(POINTING_DEVICE_RIGHT) - local_mouse_report = POINTING_DEVICE_THIS_SIDE ? pointing_device_driver->get_report(local_mouse_report) : shared_mouse_report; + local_mouse_report = POINTING_DEVICE_THIS_SIDE ? pointing_device_driver.get_report(local_mouse_report) : shared_mouse_report; # else # error "You need to define the side(s) the pointing device is on. POINTING_DEVICE_COMBINED / POINTING_DEVICE_LEFT / POINTING_DEVICE_RIGHT" # endif #else - local_mouse_report = pointing_device_driver->get_report(local_mouse_report); + local_mouse_report = pointing_device_driver.get_report(local_mouse_report); #endif // defined(SPLIT_POINTING_ENABLE) #ifdef POINTING_DEVICE_MOTION_PIN @@ -359,9 +285,8 @@ __attribute__((weak)) bool pointing_device_task(void) { local_mouse_report = is_keyboard_left() ? pointing_device_task_combined_kb(local_mouse_report, shared_mouse_report) : pointing_device_task_combined_kb(shared_mouse_report, local_mouse_report); #else local_mouse_report = pointing_device_adjust_by_defines(local_mouse_report); -#endif - local_mouse_report = pointing_device_task_modules(local_mouse_report); local_mouse_report = pointing_device_task_kb(local_mouse_report); +#endif // automatic mouse layer function #ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE pointing_device_task_auto_mouse(local_mouse_report); @@ -406,9 +331,9 @@ void pointing_device_set_report(report_mouse_t mouse_report) { */ uint16_t pointing_device_get_cpi(void) { #if defined(SPLIT_POINTING_ENABLE) - return POINTING_DEVICE_THIS_SIDE ? pointing_device_driver->get_cpi() : shared_cpi; + return POINTING_DEVICE_THIS_SIDE ? pointing_device_driver.get_cpi() : shared_cpi; #else - return pointing_device_driver->get_cpi(); + return pointing_device_driver.get_cpi(); #endif } @@ -422,12 +347,12 @@ uint16_t pointing_device_get_cpi(void) { void pointing_device_set_cpi(uint16_t cpi) { #if defined(SPLIT_POINTING_ENABLE) if (POINTING_DEVICE_THIS_SIDE) { - pointing_device_driver->set_cpi(cpi); + pointing_device_driver.set_cpi(cpi); } else { shared_cpi = cpi; } #else - pointing_device_driver->set_cpi(cpi); + pointing_device_driver.set_cpi(cpi); #endif } @@ -445,39 +370,39 @@ void pointing_device_set_cpi(uint16_t cpi) { void pointing_device_set_cpi_on_side(bool left, uint16_t cpi) { bool local = (is_keyboard_left() == left); if (local) { - pointing_device_driver->set_cpi(cpi); + pointing_device_driver.set_cpi(cpi); } else { shared_cpi = cpi; } } /** - * @brief clamps int16_t to int8_t, or int32_t to int16_t + * @brief clamps int16_t to int8_t * - * @param[in] hv_clamp_range_t value - * @return mouse_hv_report_t clamped value + * @param[in] int16_t value + * @return int8_t clamped value */ -static inline mouse_hv_report_t pointing_device_hv_clamp(hv_clamp_range_t value) { - if (value < MOUSE_REPORT_HV_MIN) { - return MOUSE_REPORT_HV_MIN; - } else if (value > MOUSE_REPORT_HV_MAX) { - return MOUSE_REPORT_HV_MAX; +static inline int8_t pointing_device_hv_clamp(int16_t value) { + if (value < INT8_MIN) { + return INT8_MIN; + } else if (value > INT8_MAX) { + return INT8_MAX; } else { return value; } } /** - * @brief clamps int16_t to int8_t, or int32_t to int16_t + * @brief clamps int16_t to int8_t * - * @param[in] xy_clamp_range_t value + * @param[in] clamp_range_t value * @return mouse_xy_report_t clamped value */ -static inline mouse_xy_report_t pointing_device_xy_clamp(xy_clamp_range_t value) { - if (value < MOUSE_REPORT_XY_MIN) { - return MOUSE_REPORT_XY_MIN; - } else if (value > MOUSE_REPORT_XY_MAX) { - return MOUSE_REPORT_XY_MAX; +static inline mouse_xy_report_t pointing_device_xy_clamp(clamp_range_t value) { + if (value < XY_REPORT_MIN) { + return XY_REPORT_MIN; + } else if (value > XY_REPORT_MAX) { + return XY_REPORT_MAX; } else { return value; } @@ -494,10 +419,10 @@ static inline mouse_xy_report_t pointing_device_xy_clamp(xy_clamp_range_t value) * @return combined report_mouse_t of left_report and right_report */ report_mouse_t pointing_device_combine_reports(report_mouse_t left_report, report_mouse_t right_report) { - left_report.x = pointing_device_xy_clamp((xy_clamp_range_t)left_report.x + right_report.x); - left_report.y = pointing_device_xy_clamp((xy_clamp_range_t)left_report.y + right_report.y); - left_report.h = pointing_device_hv_clamp((hv_clamp_range_t)left_report.h + right_report.h); - left_report.v = pointing_device_hv_clamp((hv_clamp_range_t)left_report.v + right_report.v); + left_report.x = pointing_device_xy_clamp((clamp_range_t)left_report.x + right_report.x); + left_report.y = pointing_device_xy_clamp((clamp_range_t)left_report.y + right_report.y); + left_report.h = pointing_device_hv_clamp((int16_t)left_report.h + right_report.h); + left_report.v = pointing_device_hv_clamp((int16_t)left_report.v + right_report.v); left_report.buttons |= right_report.buttons; return left_report; } @@ -577,9 +502,3 @@ __attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, boo pointing_device_send(); } } - -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE -uint16_t pointing_device_get_hires_scroll_resolution(void) { - return hires_scroll_resolution; -} -#endif \ No newline at end of file diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 5dfb9ce196..1cd4b0b5e6 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -17,18 +17,10 @@ along with this program. If not, see . #pragma once -#include #include #include "host.h" #include "report.h" -typedef struct { - bool (*init)(void); - report_mouse_t (*get_report)(report_mouse_t mouse_report); - void (*set_cpi)(uint16_t); - uint16_t (*get_cpi)(void); -} pointing_device_driver_t; - #ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE # include "pointing_device_auto_mouse.h" #endif @@ -52,6 +44,7 @@ typedef struct { # include "drivers/sensors/azoteq_iqs5xx.h" #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # include "drivers/sensors/cirque_pinnacle.h" +# include "drivers/sensors/cirque_pinnacle_gestures.h" # include "pointing_device_gestures.h" #elif defined(POINTING_DEVICE_DRIVER_paw3204) # include "drivers/sensors/paw3204.h" @@ -75,12 +68,19 @@ typedef struct { # include "drivers/sensors/pmw33xx_common.h" # define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #else -bool pointing_device_driver_init(void); +void pointing_device_driver_init(void); report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report); uint16_t pointing_device_driver_get_cpi(void); void pointing_device_driver_set_cpi(uint16_t cpi); #endif +typedef struct { + void (*init)(void); + report_mouse_t (*get_report)(report_mouse_t mouse_report); + void (*set_cpi)(uint16_t); + uint16_t (*get_cpi)(void); +} pointing_device_driver_t; + typedef enum { POINTING_DEVICE_BUTTON1, POINTING_DEVICE_BUTTON2, @@ -92,37 +92,23 @@ typedef enum { POINTING_DEVICE_BUTTON8, } pointing_device_buttons_t; -typedef enum { - POINTING_DEVICE_STATUS_UNKNOWN, - POINTING_DEVICE_STATUS_INIT_FAILED, - POINTING_DEVICE_STATUS_FAILED, - POINTING_DEVICE_STATUS_SUCCESS, -} pointing_device_status_t; - #ifdef MOUSE_EXTENDED_REPORT -typedef int32_t xy_clamp_range_t; +# define XY_REPORT_MIN INT16_MIN +# define XY_REPORT_MAX INT16_MAX +typedef int32_t clamp_range_t; #else -typedef int16_t xy_clamp_range_t; +# define XY_REPORT_MIN INT8_MIN +# define XY_REPORT_MAX INT8_MAX +typedef int16_t clamp_range_t; #endif -#ifdef WHEEL_EXTENDED_REPORT -typedef int32_t hv_clamp_range_t; -#else -typedef int16_t hv_clamp_range_t; -#endif - -#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) -#define CONSTRAIN_HID_XY(amt) ((amt) < MOUSE_REPORT_XY_MIN ? MOUSE_REPORT_XY_MIN : ((amt) > MOUSE_REPORT_XY_MAX ? MOUSE_REPORT_XY_MAX : (amt))) - -void pointing_device_init(void); -bool pointing_device_task(void); -bool pointing_device_send(void); -report_mouse_t pointing_device_get_report(void); -void pointing_device_set_report(report_mouse_t mouse_report); -uint16_t pointing_device_get_cpi(void); -void pointing_device_set_cpi(uint16_t cpi); -pointing_device_status_t pointing_device_get_status(void); -void pointing_device_set_status(pointing_device_status_t status); +void pointing_device_init(void); +bool pointing_device_task(void); +bool pointing_device_send(void); +report_mouse_t pointing_device_get_report(void); +void pointing_device_set_report(report_mouse_t mouse_report); +uint16_t pointing_device_get_cpi(void); +void pointing_device_set_cpi(uint16_t cpi); void pointing_device_init_kb(void); void pointing_device_init_user(void); @@ -132,10 +118,6 @@ uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, poi report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report); void pointing_device_keycode_handler(uint16_t keycode, bool pressed); -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE -uint16_t pointing_device_get_hires_scroll_resolution(void); -#endif - #if defined(SPLIT_POINTING_ENABLE) void pointing_device_set_shared_report(report_mouse_t report); uint16_t pointing_device_get_shared_cpi(void); diff --git a/quantum/pointing_device/pointing_device_auto_mouse.c b/quantum/pointing_device/pointing_device_auto_mouse.c index 250351f608..d9f924e258 100644 --- a/quantum/pointing_device/pointing_device_auto_mouse.c +++ b/quantum/pointing_device/pointing_device_auto_mouse.c @@ -357,8 +357,6 @@ bool process_auto_mouse(uint16_t keycode, keyrecord_t* record) { } // DF --------------------------------------------------------------------------------------------------------- case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: - // PDF -------------------------------------------------------------------------------------------------------- - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: # ifndef NO_ACTION_ONESHOT // OSL((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------ case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c new file mode 100644 index 0000000000..bf131c6eda --- /dev/null +++ b/quantum/pointing_device/pointing_device_drivers.c @@ -0,0 +1,514 @@ +/* Copyright 2017 Joshua Broekhuijsen + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2021 Dasky (@daskygit) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "pointing_device.h" +#include "pointing_device_internal.h" +#include "debug.h" +#include "wait.h" +#include "timer.h" +#include + +#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) +#define CONSTRAIN_HID_XY(amt) ((amt) < XY_REPORT_MIN ? XY_REPORT_MIN : ((amt) > XY_REPORT_MAX ? XY_REPORT_MAX : (amt))) + +// get_report functions should probably be moved to their respective drivers. + +#if defined(POINTING_DEVICE_DRIVER_adns5050) +report_mouse_t adns5050_get_report(report_mouse_t mouse_report) { + report_adns5050_t data = adns5050_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = (mouse_xy_report_t)data.dx; + mouse_report.y = (mouse_xy_report_t)data.dy; + } + + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = adns5050_init, + .get_report = adns5050_get_report, + .set_cpi = adns5050_set_cpi, + .get_cpi = adns5050_get_cpi, +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_pmw3320) +report_mouse_t pmw3320_get_report(report_mouse_t mouse_report) { + report_pmw3320_t data = pmw3320_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = (mouse_xy_report_t)data.dx; + mouse_report.y = (mouse_xy_report_t)data.dy; + } + + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = pmw3320_init, + .get_report = pmw3320_get_report, + .set_cpi = pmw3320_set_cpi, + .get_cpi = pmw3320_get_cpi, +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_adns9800) + +report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) { + report_adns9800_t sensor_report = adns9800_get_report(); + + mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x); + mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y); + + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = adns9800_init, + .get_report = adns9800_get_report_driver, + .set_cpi = adns9800_set_cpi, + .get_cpi = adns9800_get_cpi +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_analog_joystick) +report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) { + report_analog_joystick_t data = analog_joystick_read(); + + pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); + + mouse_report.x = data.x; + mouse_report.y = data.y; + + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, data.button, POINTING_DEVICE_BUTTON1); + + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = analog_joystick_init, + .get_report = analog_joystick_get_report, + .set_cpi = NULL, + .get_cpi = NULL +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx) + +static i2c_status_t azoteq_iqs5xx_init_status = 1; + +void azoteq_iqs5xx_init(void) { + i2c_init(); + azoteq_iqs5xx_wake(); + azoteq_iqs5xx_reset_suspend(true, false, true); + wait_ms(100); + azoteq_iqs5xx_wake(); + if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { + azoteq_iqs5xx_setup_resolution(); + azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); +# if defined(AZOTEQ_IQS5XX_ROTATION_90) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); +# elif defined(AZOTEQ_IQS5XX_ROTATION_180) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false); +# elif defined(AZOTEQ_IQS5XX_ROTATION_270) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false); +# else + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false); +# endif + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true); + wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1); + } +}; + +report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { + report_mouse_t temp_report = {0}; + static uint8_t previous_button_state = 0; + static uint8_t read_error_count = 0; + + if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) { + azoteq_iqs5xx_base_data_t base_data = {0}; +# if !defined(POINTING_DEVICE_MOTION_PIN) + azoteq_iqs5xx_wake(); +# endif + i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); + bool ignore_movement = false; + + if (status == I2C_STATUS_SUCCESS) { + // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time); + read_error_count = 0; + if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { + pd_dprintf("IQS5XX - Single tap/hold.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); + } else if (base_data.gesture_events_1.two_finger_tap) { + pd_dprintf("IQS5XX - Two finger tap.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2); + } else if (base_data.gesture_events_0.swipe_x_neg) { + pd_dprintf("IQS5XX - X-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_x_pos) { + pd_dprintf("IQS5XX - X+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_neg) { + pd_dprintf("IQS5XX - Y-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_pos) { + pd_dprintf("IQS5XX - Y+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3); + ignore_movement = true; + } else if (base_data.gesture_events_1.zoom) { + if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) { + pd_dprintf("IQS5XX - Zoom out.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7); + } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) { + pd_dprintf("IQS5XX - Zoom in.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8); + } + } else if (base_data.gesture_events_1.scroll) { + pd_dprintf("IQS5XX - Scroll.\n"); + temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + if (base_data.number_of_fingers == 1 && !ignore_movement) { + temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + + previous_button_state = temp_report.buttons; + + } else { + if (read_error_count > 10) { + read_error_count = 0; + previous_button_state = 0; + } else { + read_error_count++; + } + temp_report.buttons = previous_button_state; + pd_dprintf("IQS5XX - get report failed: %d \n", status); + } + } else { + pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status); + } + + return temp_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = azoteq_iqs5xx_init, + .get_report = azoteq_iqs5xx_get_report, + .set_cpi = azoteq_iqs5xx_set_cpi, + .get_cpi = azoteq_iqs5xx_get_cpi +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +static bool cursor_glide_enable = true; + +static cursor_glide_context_t glide = {.config = { + .coef = 102, /* Good default friction coef */ + .interval = 10, /* 100sps */ + .trigger_px = 10, /* Default threshold in case of hover, set to 0 if you'd like */ + }}; + +void cirque_pinnacle_enable_cursor_glide(bool enable) { + cursor_glide_enable = enable; +} + +void cirque_pinnacle_configure_cursor_glide(float trigger_px) { + glide.config.trigger_px = trigger_px; +} +# endif + +# if CIRQUE_PINNACLE_POSITION_MODE + +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +static bool is_touch_down; + +bool auto_mouse_activation(report_mouse_t mouse_report) { + return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; +} +# endif + +report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { + uint16_t scale = cirque_pinnacle_get_scale(); + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + mouse_xy_report_t report_x = 0, report_y = 0; + static uint16_t x = 0, y = 0, last_scale = 0; + +# if defined(CIRQUE_PINNACLE_TAP_ENABLE) + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); +# endif +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + cursor_glide_t glide_report = {0}; + + if (cursor_glide_enable) { + glide_report = cursor_glide_check(&glide); + } +# endif + + if (!touchData.valid) { +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + if (cursor_glide_enable && glide_report.valid) { + report_x = glide_report.dx; + report_y = glide_report.dy; + goto mouse_report_update; + } +# endif + return mouse_report; + } + + if (touchData.touchDown) { + pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); + } + +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE + is_touch_down = touchData.touchDown; +# endif + + // Scale coordinates to arbitrary X, Y resolution + cirque_pinnacle_scale_data(&touchData, scale, scale); + + if (!cirque_pinnacle_gestures(&mouse_report, touchData)) { + if (last_scale && scale == last_scale && x && y && touchData.xValue && touchData.yValue) { + report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x)); + report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y)); + } + x = touchData.xValue; + y = touchData.yValue; + last_scale = scale; + +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + if (cursor_glide_enable) { + if (touchData.touchDown) { + cursor_glide_update(&glide, report_x, report_y, touchData.zValue); + } else if (!glide_report.valid) { + glide_report = cursor_glide_start(&glide); + if (glide_report.valid) { + report_x = glide_report.dx; + report_y = glide_report.dy; + } + } + } +# endif + } + +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +mouse_report_update: +# endif + mouse_report.x = report_x; + mouse_report.y = report_y; + + return mouse_report; +} + +uint16_t cirque_pinnacle_get_cpi(void) { + return CIRQUE_PINNACLE_PX_TO_INCH(cirque_pinnacle_get_scale()); +} +void cirque_pinnacle_set_cpi(uint16_t cpi) { + cirque_pinnacle_set_scale(CIRQUE_PINNACLE_INCH_TO_PX(cpi)); +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = cirque_pinnacle_init, + .get_report = cirque_pinnacle_get_report, + .set_cpi = cirque_pinnacle_set_cpi, + .get_cpi = cirque_pinnacle_get_cpi +}; +// clang-format on +# else +report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + + // Scale coordinates to arbitrary X, Y resolution + cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); + + if (touchData.valid) { + mouse_report.buttons = touchData.buttons; + mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); + mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); + mouse_report.v = touchData.wheelCount; + } + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = cirque_pinnacle_init, + .get_report = cirque_pinnacle_get_report, + .set_cpi = cirque_pinnacle_set_scale, + .get_cpi = cirque_pinnacle_get_scale +}; +// clang-format on +# endif + +#elif defined(POINTING_DEVICE_DRIVER_paw3204) + +report_mouse_t paw3204_get_report(report_mouse_t mouse_report) { + report_paw3204_t data = paw3204_read(); + if (data.isMotion) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); + + mouse_report.x = data.x; + mouse_report.y = data.y; + } + + return mouse_report; +} +const pointing_device_driver_t pointing_device_driver = { + .init = paw3204_init, + .get_report = paw3204_get_report, + .set_cpi = paw3204_set_cpi, + .get_cpi = paw3204_get_cpi, +}; +#elif defined(POINTING_DEVICE_DRIVER_pimoroni_trackball) + +mouse_xy_report_t pimoroni_trackball_adapt_values(clamp_range_t* offset) { + if (*offset > XY_REPORT_MAX) { + *offset -= XY_REPORT_MAX; + return (mouse_xy_report_t)XY_REPORT_MAX; + } else if (*offset < XY_REPORT_MIN) { + *offset += XY_REPORT_MAX; + return (mouse_xy_report_t)XY_REPORT_MIN; + } else { + mouse_xy_report_t temp_return = *offset; + *offset = 0; + return temp_return; + } +} + +report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { + static uint16_t debounce = 0; + static uint8_t error_count = 0; + pimoroni_data_t pimoroni_data = {0}; + static clamp_range_t x_offset = 0, y_offset = 0; + + if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) { + i2c_status_t status = read_pimoroni_trackball(&pimoroni_data); + + if (status == I2C_STATUS_SUCCESS) { + error_count = 0; + + if (!(pimoroni_data.click & 128)) { + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); + if (!debounce) { + x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE); + y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE); + mouse_report.x = pimoroni_trackball_adapt_values(&x_offset); + mouse_report.y = pimoroni_trackball_adapt_values(&y_offset); + } else { + debounce--; + } + } else { + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1); + debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; + } + } else { + error_count++; + } + } + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = pimoroni_trackball_device_init, + .get_report = pimoroni_trackball_get_report, + .set_cpi = pimoroni_trackball_set_cpi, + .get_cpi = pimoroni_trackball_get_cpi +}; +// clang-format on + +#elif defined(POINTING_DEVICE_DRIVER_pmw3360) || defined(POINTING_DEVICE_DRIVER_pmw3389) +static void pmw33xx_init_wrapper(void) { + pmw33xx_init(0); +} + +static void pmw33xx_set_cpi_wrapper(uint16_t cpi) { + pmw33xx_set_cpi(0, cpi); +} + +static uint16_t pmw33xx_get_cpi_wrapper(void) { + return pmw33xx_get_cpi(0); +} + +report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) { + pmw33xx_report_t report = pmw33xx_read_burst(0); + static bool in_motion = false; + + if (report.motion.b.is_lifted) { + return mouse_report; + } + + if (!report.motion.b.is_motion) { + in_motion = false; + return mouse_report; + } + + if (!in_motion) { + in_motion = true; + pd_dprintf("PWM3360 (0): starting motion\n"); + } + + mouse_report.x = CONSTRAIN_HID_XY(report.delta_x); + mouse_report.y = CONSTRAIN_HID_XY(report.delta_y); + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = pmw33xx_init_wrapper, + .get_report = pmw33xx_get_report, + .set_cpi = pmw33xx_set_cpi_wrapper, + .get_cpi = pmw33xx_get_cpi_wrapper +}; +// clang-format on + +#else +__attribute__((weak)) void pointing_device_driver_init(void) {} +__attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { + return mouse_report; +} +__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { + return 0; +} +__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) {} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = pointing_device_driver_init, + .get_report = pointing_device_driver_get_report, + .get_cpi = pointing_device_driver_get_cpi, + .set_cpi = pointing_device_driver_set_cpi +}; +// clang-format on + +#endif diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index 0cde520778..edc47718f3 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -38,7 +38,7 @@ bool autocorrect_is_enabled(void) { */ void autocorrect_enable(void) { keymap_config.autocorrect_enable = true; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } /** @@ -48,7 +48,7 @@ void autocorrect_enable(void) { void autocorrect_disable(void) { keymap_config.autocorrect_enable = false; typo_buffer_size = 0; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } /** @@ -58,7 +58,7 @@ void autocorrect_disable(void) { void autocorrect_toggle(void) { keymap_config.autocorrect_enable = !keymap_config.autocorrect_enable; typo_buffer_size = 0; - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); } /** @@ -98,7 +98,6 @@ bool process_autocorrect_default_handler(uint16_t *keycode, keyrecord_t *record, case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: - case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: diff --git a/quantum/process_keycode/process_caps_word.c b/quantum/process_keycode/process_caps_word.c index 8ab66cc521..b8fb868c6d 100644 --- a/quantum/process_keycode/process_caps_word.c +++ b/quantum/process_keycode/process_caps_word.c @@ -160,13 +160,8 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) { case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: -#ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. case QK_TRI_LAYER_LOWER ... QK_TRI_LAYER_UPPER: -#endif // TRI_LAYER_ENABLE -#ifdef LAYER_LOCK_ENABLE // Ignore Layer Lock key. - case QK_LAYER_LOCK: -#endif // LAYER_LOCK_ENABLE - // Ignore AltGr. + // Ignore AltGr. case KC_RALT: case OSM(MOD_RALT): return true; diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index f50761268a..82000db9b3 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -66,17 +66,17 @@ void clicky_freq_reset(void) { void clicky_toggle(void) { audio_config.clicky_enable ^= 1; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } void clicky_on(void) { audio_config.clicky_enable = 1; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } void clicky_off(void) { audio_config.clicky_enable = 0; - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } bool is_clicky_on(void) { diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index c99a66a74b..b0034d136a 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -36,19 +36,19 @@ __attribute__((weak)) uint8_t combo_ref_from_layer(uint8_t layer) { #endif #ifdef COMBO_MUST_HOLD_PER_COMBO -__attribute__((weak)) bool get_combo_must_hold(uint16_t combo_index, combo_t *combo) { +__attribute__((weak)) bool get_combo_must_hold(uint16_t index, combo_t *combo) { return false; } #endif #ifdef COMBO_MUST_TAP_PER_COMBO -__attribute__((weak)) bool get_combo_must_tap(uint16_t combo_index, combo_t *combo) { +__attribute__((weak)) bool get_combo_must_tap(uint16_t index, combo_t *combo) { return false; } #endif #ifdef COMBO_TERM_PER_COMBO -__attribute__((weak)) uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) { +__attribute__((weak)) uint16_t get_combo_term(uint16_t index, combo_t *combo) { return COMBO_TERM; } #endif @@ -65,20 +65,12 @@ __attribute__((weak)) bool process_combo_key_release(uint16_t combo_index, combo } #endif -#ifdef COMBO_PROCESS_KEY_REPRESS -__attribute__((weak)) bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) { - return false; -} -#endif - #ifdef COMBO_SHOULD_TRIGGER __attribute__((weak)) bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) { return true; } #endif -typedef enum { COMBO_KEY_NOT_PRESSED, COMBO_KEY_PRESSED, COMBO_KEY_REPRESSED } combo_key_action_t; - #ifndef COMBO_NO_TIMER static uint16_t timer = 0; #endif @@ -422,14 +414,14 @@ static bool keys_pressed_in_order(uint16_t combo_index, combo_t *combo, uint16_t } #endif -static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t *record, uint16_t combo_index) { +static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t *record, uint16_t combo_index) { uint8_t key_count = 0; uint16_t key_index = -1; _find_key_index_and_count(combo->keys, keycode, &key_index, &key_count); /* Continue processing if key isn't part of current combo. */ if (-1 == (int16_t)key_index) { - return COMBO_KEY_NOT_PRESSED; + return false; } bool key_is_part_of_combo = (!COMBO_DISABLED(combo) && is_combo_enabled() @@ -457,7 +449,7 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, /* Don't buffer this combo if its combo term has passed. */ if (timer && timer_elapsed(timer) > time) { DISABLE_COMBO(combo); - return COMBO_KEY_PRESSED; + return true; } else #endif { @@ -493,15 +485,6 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, } } // if timer elapsed end } -#ifdef COMBO_PROCESS_KEY_REPRESS - } else if (record->event.pressed) { - if (COMBO_ACTIVE(combo)) { - if (process_combo_key_repress(combo_index, combo, key_index, keycode)) { - KEY_STATE_DOWN(combo->state, key_index); - return COMBO_KEY_REPRESSED; - } - } -#endif } else { // chord releases if (!COMBO_ACTIVE(combo) && ALL_COMBO_KEYS_ARE_DOWN(COMBO_STATE(combo), key_count)) { @@ -548,12 +531,12 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, KEY_STATE_UP(combo->state, key_index); } - return key_is_part_of_combo ? COMBO_KEY_PRESSED : COMBO_KEY_NOT_PRESSED; + return key_is_part_of_combo; } bool process_combo(uint16_t keycode, keyrecord_t *record) { - uint8_t is_combo_key = COMBO_KEY_NOT_PRESSED; - bool no_combo_keys_pressed = true; + bool is_combo_key = false; + bool no_combo_keys_pressed = true; if (keycode == QK_COMBO_ON && record->event.pressed) { combo_enable(); @@ -599,17 +582,12 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { # endif #endif -#ifdef COMBO_PROCESS_KEY_REPRESS - if (is_combo_key == COMBO_KEY_PRESSED) -#endif - { - if (key_buffer_size < COMBO_KEY_BUFFER_LENGTH) { - key_buffer[key_buffer_size++] = (queued_record_t){ - .record = *record, - .keycode = keycode, - .combo_index = -1, // this will be set when applying combos - }; - } + if (key_buffer_size < COMBO_KEY_BUFFER_LENGTH) { + key_buffer[key_buffer_size++] = (queued_record_t){ + .record = *record, + .keycode = keycode, + .combo_index = -1, // this will be set when applying combos + }; } } else { if (combo_buffer_read != combo_buffer_write) { diff --git a/quantum/process_keycode/process_connection.c b/quantum/process_keycode/process_connection.c deleted file mode 100644 index 501529ede7..0000000000 --- a/quantum/process_keycode/process_connection.c +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "connection.h" -#include "process_connection.h" - -bool process_connection(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { - case QK_OUTPUT_NEXT: - connection_next_host(); - return false; - case QK_OUTPUT_PREV: - connection_prev_host(); - return false; - - case QK_OUTPUT_AUTO: - connection_set_host(CONNECTION_HOST_AUTO); - return false; - case QK_OUTPUT_NONE: - connection_set_host(CONNECTION_HOST_NONE); - return false; - case QK_OUTPUT_USB: - connection_set_host(CONNECTION_HOST_USB); - return false; - case QK_OUTPUT_BLUETOOTH: - connection_set_host(CONNECTION_HOST_BLUETOOTH); - return false; - case QK_OUTPUT_2P4GHZ: - connection_set_host(CONNECTION_HOST_2P4GHZ); - return false; - - case QK_BLUETOOTH_PROFILE_NEXT: - case QK_BLUETOOTH_PROFILE_PREV: - case QK_BLUETOOTH_UNPAIR: - case QK_BLUETOOTH_PROFILE1: - case QK_BLUETOOTH_PROFILE2: - case QK_BLUETOOTH_PROFILE3: - case QK_BLUETOOTH_PROFILE4: - case QK_BLUETOOTH_PROFILE5: - // As-yet unimplemented. - // When implementation is done, ensure `docs/keycodes.md`, `docs/features/bluetooth.md` are updated accordingly. - return false; - } - } - return true; -} diff --git a/quantum/process_keycode/process_connection.h b/quantum/process_keycode/process_connection.h deleted file mode 100644 index cc58011bb7..0000000000 --- a/quantum/process_keycode/process_connection.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include -#include "action.h" - -bool process_connection(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_default_layer.c b/quantum/process_keycode/process_default_layer.c deleted file mode 100644 index 4bca30c410..0000000000 --- a/quantum/process_keycode/process_default_layer.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2023 Nebuleon - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "process_default_layer.h" -#include "quantum.h" -#include "quantum_keycodes.h" - -#if !defined(NO_ACTION_LAYER) - -bool process_default_layer(uint16_t keycode, keyrecord_t *record) { - if (IS_QK_PERSISTENT_DEF_LAYER(keycode) && !record->event.pressed) { - uint8_t layer = QK_PERSISTENT_DEF_LAYER_GET_LAYER(keycode); - set_single_persistent_default_layer(layer); - return false; - } - - return true; -} - -#endif // !defined(NO_ACTION_LAYER) diff --git a/quantum/process_keycode/process_default_layer.h b/quantum/process_keycode/process_default_layer.h deleted file mode 100644 index 246d995817..0000000000 --- a/quantum/process_keycode/process_default_layer.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2023 Nebuleon - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include "action.h" - -#if !defined(NO_ACTION_LAYER) - -bool process_default_layer(uint16_t keycode, keyrecord_t *record); - -#endif // !defined(NO_ACTION_LAYER) diff --git a/quantum/process_keycode/process_haptic.c b/quantum/process_keycode/process_haptic.c index 54cd7b817e..21d4c5ce30 100644 --- a/quantum/process_keycode/process_haptic.c +++ b/quantum/process_keycode/process_haptic.c @@ -129,7 +129,7 @@ bool process_haptic(uint16_t keycode, keyrecord_t *record) { } } - if (haptic_get_enable() && ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state_get_configure_state() == USB_DEVICE_STATE_CONFIGURED))) { + if (haptic_get_enable() && ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED))) { if (record->event.pressed) { // keypress if (haptic_get_feedback() < 2 && get_haptic_enabled_key(keycode, record)) { diff --git a/quantum/process_keycode/process_layer_lock.c b/quantum/process_keycode/process_layer_lock.c deleted file mode 100644 index 6946d3c886..0000000000 --- a/quantum/process_keycode/process_layer_lock.c +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2022-2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "layer_lock.h" -#include "process_layer_lock.h" -#include "quantum_keycodes.h" -#include "action_util.h" - -// The current lock state. The kth bit is on if layer k is locked. -extern layer_state_t locked_layers; - -// Handles an event on an `MO` or `TT` layer switch key. -static inline bool handle_mo_or_tt(uint8_t layer, keyrecord_t* record) { - if (is_layer_locked(layer)) { - if (record->event.pressed) { // On press, unlock the layer. - layer_lock_invert(layer); - } - return false; // Skip default handling. - } - return true; -} - -bool process_layer_lock(uint16_t keycode, keyrecord_t* record) { -#ifndef NO_ACTION_LAYER - layer_lock_activity_trigger(); - - // The intention is that locked layers remain on. If something outside of - // this feature turned any locked layers off, unlock them. - if ((locked_layers & ~layer_state) != 0) { - layer_lock_set_kb(locked_layers &= layer_state); - } - - if (keycode == QK_LAYER_LOCK) { - if (record->event.pressed) { // The layer lock key was pressed. - layer_lock_invert(get_highest_layer(layer_state)); - } - return false; - } - - switch (keycode) { - case QK_MOMENTARY ... QK_MOMENTARY_MAX: // `MO(layer)` keys. - return handle_mo_or_tt(QK_MOMENTARY_GET_LAYER(keycode), record); - - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: // `TT(layer)`. - return handle_mo_or_tt(QK_LAYER_TAP_TOGGLE_GET_LAYER(keycode), record); - - case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: { // `LM(layer, mod)`. - uint8_t layer = QK_LAYER_MOD_GET_LAYER(keycode); - if (is_layer_locked(layer)) { - if (record->event.pressed) { // On press, unlock the layer. - layer_lock_invert(layer); - } else { // On release, clear the mods. - clear_mods(); - send_keyboard_report(); - } - return false; // Skip default handling. - } - } break; - -# ifndef NO_ACTION_TAPPING - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // `LT(layer, key)` keys. - if (record->tap.count == 0 && !record->event.pressed && is_layer_locked(QK_LAYER_TAP_GET_LAYER(keycode))) { - // Release event on a held layer-tap key where the layer is locked. - return false; // Skip default handling so that layer stays on. - } - break; -# endif // NO_ACTION_TAPPING - } -#endif // NO_ACTION_LAYER - return true; -} diff --git a/quantum/process_keycode/process_layer_lock.h b/quantum/process_keycode/process_layer_lock.h deleted file mode 100644 index 6795110029..0000000000 --- a/quantum/process_keycode/process_layer_lock.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2022-2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include -#include -#include "action.h" - -bool process_layer_lock(uint16_t keycode, keyrecord_t* record); diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index a5466c513c..ca017a577d 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -22,7 +22,11 @@ bool process_leader(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { if (leader_sequence_active() && !leader_sequence_timed_out()) { #ifndef LEADER_KEY_STRICT_KEY_PROCESSING - keycode = get_tap_keycode(keycode); + if (IS_QK_MOD_TAP(keycode)) { + keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); + } else if (IS_QK_LAYER_TAP(keycode)) { + keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); + } #endif if (!leader_sequence_add(keycode)) { diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index d5280105de..3b35884d68 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -47,7 +47,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { if (IS_MAGIC_KEYCODE(keycode)) { /* keymap config */ - eeconfig_read_keymap(&keymap_config); + keymap_config.raw = eeconfig_read_keymap(); switch (keycode) { case QK_MAGIC_SWAP_CONTROL_CAPS_LOCK: keymap_config.swap_control_capslock = true; @@ -187,7 +187,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) { break; } - eeconfig_update_keymap(&keymap_config); + eeconfig_update_keymap(keymap_config.raw); clear_keyboard(); // clear to prevent stuck keys return false; diff --git a/quantum/process_keycode/process_oneshot.c b/quantum/process_keycode/process_oneshot.c deleted file mode 100644 index 6c43da1011..0000000000 --- a/quantum/process_keycode/process_oneshot.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "process_oneshot.h" -#include "action_util.h" - -bool process_oneshot(uint16_t keycode, keyrecord_t *record) { -#ifndef NO_ACTION_ONESHOT - if (record->event.pressed) { - switch (keycode) { - case QK_ONE_SHOT_TOGGLE: - oneshot_toggle(); - return false; - case QK_ONE_SHOT_ON: - oneshot_enable(); - return false; - case QK_ONE_SHOT_OFF: - oneshot_disable(); - return false; - } - } -#endif - - return true; -} diff --git a/quantum/process_keycode/process_oneshot.h b/quantum/process_keycode/process_oneshot.h deleted file mode 100644 index 11445b9b38..0000000000 --- a/quantum/process_keycode/process_oneshot.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include "action.h" - -bool process_oneshot(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_quantum.c b/quantum/process_keycode/process_quantum.c deleted file mode 100644 index 703e00755b..0000000000 --- a/quantum/process_keycode/process_quantum.c +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "process_quantum.h" -#include "quantum.h" - -#ifdef ENABLE_COMPILE_KEYCODE -/** \brief Compiles the firmware, and adds the flash command based on keyboard bootloader - */ -static void send_make_command(void) { -# ifdef NO_ACTION_ONESHOT - const uint8_t temp_mod = mod_config(get_mods()); -# else - const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods()); - clear_oneshot_mods(); -# endif - clear_mods(); - - SEND_STRING_DELAY("qmk", TAP_CODE_DELAY); - if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile - SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY); - } else { - SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY); - } -# if defined(CONVERTER_ENABLED) - SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY); -# else - SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY); -# endif - if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) { - reset_keyboard(); - } -} -#endif - -bool process_quantum(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { -#ifndef NO_RESET - case QK_BOOTLOADER: - reset_keyboard(); - return false; - case QK_REBOOT: - soft_reset_keyboard(); - return false; -#endif -#ifndef NO_DEBUG - case QK_DEBUG_TOGGLE: - debug_enable ^= 1; - if (debug_enable) { - print("DEBUG: enabled.\n"); - } else { - print("DEBUG: disabled.\n"); - } - return false; -#endif - case QK_CLEAR_EEPROM: -#ifdef NO_RESET - eeconfig_init(); -#else - eeconfig_disable(); - soft_reset_keyboard(); -#endif - return false; -#ifdef ENABLE_COMPILE_KEYCODE - case QK_MAKE: - send_make_command(); - return false; -#endif - default: - break; - } - } - - return true; -} diff --git a/quantum/process_keycode/process_quantum.h b/quantum/process_keycode/process_quantum.h deleted file mode 100644 index 5c2462be01..0000000000 --- a/quantum/process_keycode/process_quantum.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include "action.h" - -bool process_quantum(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_repeat_key.c b/quantum/process_keycode/process_repeat_key.c index fdeed4f466..73f4ddedcf 100644 --- a/quantum/process_keycode/process_repeat_key.c +++ b/quantum/process_keycode/process_repeat_key.c @@ -41,10 +41,7 @@ static bool remember_last_key(uint16_t keycode, keyrecord_t* record, uint8_t* re #ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. case QK_TRI_LAYER_LOWER: case QK_TRI_LAYER_UPPER: -#endif // TRI_LAYER_ENABLE -#ifdef LAYER_LOCK_ENABLE // Ignore Layer Lock key. - case QK_LAYER_LOCK: -#endif // LAYER_LOCK_ENABLE +#endif // TRI_LAYER_ENABLE return false; // Ignore hold events on tap-hold keys. diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c new file mode 100644 index 0000000000..b113d1c1e7 --- /dev/null +++ b/quantum/process_keycode/process_rgb.c @@ -0,0 +1,226 @@ +/* Copyright 2019 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "process_rgb.h" +#include "action_util.h" + +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" +#endif +#ifdef RGBLIGHT_ENABLE +# include "rgblight.h" +#endif + +typedef void (*rgb_func_pointer)(void); + +/** + * Wrapper for inc/dec rgb keycode + * + * noinline to optimise for firmware size not speed (not in hot path) + */ +#if (defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)) +static void __attribute__((noinline)) handleKeycodeRGB(const uint8_t is_shifted, const rgb_func_pointer inc_func, const rgb_func_pointer dec_func) { + if (is_shifted) { + dec_func(); + } else { + inc_func(); + } +} +#endif + +/** + * Wrapper for animation mode + * - if not in animation family -> jump to that animation + * - otherwise -> wrap round animation speed + * + * noinline to optimise for firmware size not speed (not in hot path) + */ +static void __attribute__((noinline, unused)) handleKeycodeRGBMode(const uint8_t start, const uint8_t end) { + if ((start <= rgblight_get_mode()) && (rgblight_get_mode() < end)) { + rgblight_step(); + } else { + rgblight_mode(start); + } +} + +/** + * Handle keycodes for both rgblight and rgbmatrix + */ +bool process_rgb(const uint16_t keycode, const keyrecord_t *record) { + // need to trigger on key-up for edge-case issue +#ifndef RGB_TRIGGER_ON_KEYDOWN + if (!record->event.pressed) { +#else + if (record->event.pressed) { +#endif +#if (defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)) + uint8_t shifted = get_mods() & MOD_MASK_SHIFT; +#endif + switch (keycode) { + case QK_UNDERGLOW_TOGGLE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + rgblight_toggle(); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + rgb_matrix_toggle(); +#endif + return false; + case QK_UNDERGLOW_MODE_NEXT: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_step, rgblight_step_reverse); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_step, rgb_matrix_step_reverse); +#endif + return false; + case QK_UNDERGLOW_MODE_PREVIOUS: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_step_reverse, rgblight_step); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_step_reverse, rgb_matrix_step); +#endif + return false; + case QK_UNDERGLOW_HUE_UP: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_increase_hue, rgblight_decrease_hue); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_hue, rgb_matrix_decrease_hue); +#endif + return false; + case QK_UNDERGLOW_HUE_DOWN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_decrease_hue, rgblight_increase_hue); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_hue, rgb_matrix_increase_hue); +#endif + return false; + case QK_UNDERGLOW_SATURATION_UP: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_increase_sat, rgblight_decrease_sat); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_sat, rgb_matrix_decrease_sat); +#endif + return false; + case QK_UNDERGLOW_SATURATION_DOWN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_decrease_sat, rgblight_increase_sat); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_sat, rgb_matrix_increase_sat); +#endif + return false; + case QK_UNDERGLOW_VALUE_UP: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_increase_val, rgblight_decrease_val); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_val, rgb_matrix_decrease_val); +#endif + return false; + case QK_UNDERGLOW_VALUE_DOWN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_decrease_val, rgblight_increase_val); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_val, rgb_matrix_increase_val); +#endif + return false; + case QK_UNDERGLOW_SPEED_UP: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_increase_speed, rgblight_decrease_speed); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_speed, rgb_matrix_decrease_speed); +#endif + return false; + case QK_UNDERGLOW_SPEED_DOWN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgblight_decrease_speed, rgblight_increase_speed); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_speed, rgb_matrix_increase_speed); +#endif + return false; + case RGB_MODE_PLAIN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); +#endif + return false; + case RGB_MODE_BREATHE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_BREATHING) + handleKeycodeRGBMode(RGBLIGHT_MODE_BREATHING, RGBLIGHT_MODE_BREATHING_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && defined(ENABLE_RGB_MATRIX_BREATHING) + rgb_matrix_mode(RGB_MATRIX_BREATHING); +#endif + return false; + case RGB_MODE_RAINBOW: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) + handleKeycodeRGBMode(RGBLIGHT_MODE_RAINBOW_MOOD, RGBLIGHT_MODE_RAINBOW_MOOD_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && defined(ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT) + rgb_matrix_mode(RGB_MATRIX_CYCLE_LEFT_RIGHT); +#endif + return false; + case RGB_MODE_SWIRL: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) + handleKeycodeRGBMode(RGBLIGHT_MODE_RAINBOW_SWIRL, RGBLIGHT_MODE_RAINBOW_SWIRL_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && defined(ENABLE_RGB_MATRIX_CYCLE_PINWHEEL) + rgb_matrix_mode(RGB_MATRIX_CYCLE_PINWHEEL); +#endif + return false; + case RGB_MODE_SNAKE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_SNAKE) + handleKeycodeRGBMode(RGBLIGHT_MODE_SNAKE, RGBLIGHT_MODE_SNAKE_end); +#endif + return false; + case RGB_MODE_KNIGHT: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_KNIGHT) + handleKeycodeRGBMode(RGBLIGHT_MODE_KNIGHT, RGBLIGHT_MODE_KNIGHT_end); +#endif + return false; + case RGB_MODE_XMAS: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_CHRISTMAS) + rgblight_mode(RGBLIGHT_MODE_CHRISTMAS); +#endif + return false; + case RGB_MODE_GRADIENT: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_STATIC_GRADIENT) + handleKeycodeRGBMode(RGBLIGHT_MODE_STATIC_GRADIENT, RGBLIGHT_MODE_STATIC_GRADIENT_end); +#endif + return false; + case RGB_MODE_RGBTEST: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_RGB_TEST) + rgblight_mode(RGBLIGHT_MODE_RGB_TEST); +#endif + return false; + case RGB_MODE_TWINKLE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_TWINKLE) + handleKeycodeRGBMode(RGBLIGHT_MODE_TWINKLE, RGBLIGHT_MODE_TWINKLE_end); +#endif + return false; + } + } + + return true; +} diff --git a/quantum/process_keycode/process_rgb.h b/quantum/process_keycode/process_rgb.h new file mode 100644 index 0000000000..b1069d4bb6 --- /dev/null +++ b/quantum/process_keycode/process_rgb.h @@ -0,0 +1,22 @@ +/* Copyright 2019 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include +#include "action.h" + +bool process_rgb(const uint16_t keycode, const keyrecord_t *record); diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index 4789461352..c491d6f1d8 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -20,6 +20,9 @@ #ifdef VIRTSER_ENABLE # include "virtser.h" #endif +#ifdef STENO_ENABLE_ALL +# include "eeprom.h" +#endif // All steno keys that have been pressed to form this chord, // stored in MAX_STROKE_SIZE groups of 8-bit arrays. @@ -125,13 +128,13 @@ static const uint16_t combinedmap_second[] PROGMEM = {STN_S2, STN_KL, STN_WL, ST #ifdef STENO_ENABLE_ALL void steno_init(void) { - mode = eeconfig_read_steno_mode(); + mode = eeprom_read_byte(EECONFIG_STENOMODE); } void steno_set_mode(steno_mode_t new_mode) { steno_clear_chord(); mode = new_mode; - eeconfig_update_steno_mode(mode); + eeprom_update_byte(EECONFIG_STENOMODE, mode); } #endif // STENO_ENABLE_ALL diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c index 78006ee099..779672ac07 100644 --- a/quantum/process_keycode/process_underglow.c +++ b/quantum/process_keycode/process_underglow.c @@ -2,209 +2,88 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "process_underglow.h" -#if defined(RGBLIGHT_ENABLE) -# include "rgblight.h" -#endif +#include "rgblight.h" #include "action_util.h" #include "keycodes.h" #include "modifiers.h" -// TODO: Remove this -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) -# include "rgb_matrix.h" -#endif - bool process_underglow(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { -#if defined(RGBLIGHT_ENABLE) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)) - const uint8_t shifted = get_mods() & MOD_MASK_SHIFT; -#endif - + uint8_t shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case QK_UNDERGLOW_TOGGLE: -#if defined(RGBLIGHT_ENABLE) rgblight_toggle(); -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - rgb_matrix_toggle(); -#endif return false; case QK_UNDERGLOW_MODE_NEXT: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_step_reverse(); } else { rgblight_step(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_step_reverse(); - } else { - rgb_matrix_step(); - } -#endif return false; case QK_UNDERGLOW_MODE_PREVIOUS: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_step(); } else { rgblight_step_reverse(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_step(); - } else { - rgb_matrix_step_reverse(); - } -#endif return false; case QK_UNDERGLOW_HUE_UP: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_hue(); } else { rgblight_increase_hue(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_decrease_hue(); - } else { - rgb_matrix_increase_hue(); - } -#endif return false; case QK_UNDERGLOW_HUE_DOWN: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_hue(); } else { rgblight_decrease_hue(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_increase_hue(); - } else { - rgb_matrix_decrease_hue(); - } -#endif return false; case QK_UNDERGLOW_SATURATION_UP: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_sat(); } else { rgblight_increase_sat(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_decrease_sat(); - } else { - rgb_matrix_increase_sat(); - } -#endif return false; case QK_UNDERGLOW_SATURATION_DOWN: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_sat(); } else { rgblight_decrease_sat(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_increase_sat(); - } else { - rgb_matrix_decrease_sat(); - } -#endif return false; case QK_UNDERGLOW_VALUE_UP: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_val(); } else { rgblight_increase_val(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_decrease_val(); - } else { - rgb_matrix_increase_val(); - } -#endif return false; case QK_UNDERGLOW_VALUE_DOWN: -#if defined(RGBLIGHT_ENABLE) if (shifted) { - rgblight_increase_val(); + rgblight_increase_hue(); } else { - rgblight_decrease_val(); + rgblight_decrease_hue(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_increase_val(); - } else { - rgb_matrix_decrease_val(); - } -#endif return false; case QK_UNDERGLOW_SPEED_UP: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_speed(); } else { rgblight_increase_speed(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_decrease_speed(); - } else { - rgb_matrix_increase_speed(); - } -#endif return false; case QK_UNDERGLOW_SPEED_DOWN: -#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_speed(); } else { rgblight_decrease_speed(); } -#endif - -#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) - if (shifted) { - rgb_matrix_increase_speed(); - } else { - rgb_matrix_decrease_speed(); - } -#endif return false; -#ifdef VELOCIKEY_ENABLE - case QK_VELOCIKEY_TOGGLE: - velocikey_toggle(); - return false; -#endif } } diff --git a/quantum/quantum.c b/quantum/quantum.c index 09e5fe1dac..011f9d73e4 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -15,18 +15,13 @@ */ #include "quantum.h" -#include "process_quantum.h" - -#ifdef SLEEP_LED_ENABLE -# include "sleep_led.h" -#endif #ifdef BACKLIGHT_ENABLE # include "process_backlight.h" #endif -#ifdef CONNECTION_ENABLE -# include "process_connection.h" +#ifdef BLUETOOTH_ENABLE +# include "outputselect.h" #endif #ifdef GRAVE_ESC_ENABLE @@ -57,20 +52,12 @@ # include "process_midi.h" #endif -#if !defined(NO_ACTION_LAYER) -# include "process_default_layer.h" -#endif - #ifdef PROGRAMMABLE_BUTTON_ENABLE # include "process_programmable_button.h" #endif -#if defined(RGB_MATRIX_ENABLE) -# include "process_rgb_matrix.h" -#endif - #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) -# include "process_underglow.h" +# include "process_rgb.h" #endif #ifdef SECURE_ENABLE @@ -85,14 +72,6 @@ # include "process_unicode_common.h" #endif -#ifdef LAYER_LOCK_ENABLE -# include "process_layer_lock.h" -#endif - -#ifndef NO_ACTION_ONESHOT -# include "process_oneshot.h" -#endif - #ifdef AUDIO_ENABLE # ifndef GOODBYE_SONG # define GOODBYE_SONG SONG(GOODBYE_SOUND) @@ -171,10 +150,6 @@ __attribute__((weak)) void tap_code16(uint16_t code) { tap_code16_delay(code, code == KC_CAPS_LOCK ? TAP_HOLD_CAPS_DELAY : TAP_CODE_DELAY); } -__attribute__((weak)) bool pre_process_record_modules(uint16_t keycode, keyrecord_t *record) { - return true; -} - __attribute__((weak)) bool pre_process_record_kb(uint16_t keycode, keyrecord_t *record) { return pre_process_record_user(keycode, record); } @@ -183,7 +158,7 @@ __attribute__((weak)) bool pre_process_record_user(uint16_t keycode, keyrecord_t return true; } -__attribute__((weak)) bool process_record_modules(uint16_t keycode, keyrecord_t *record) { +__attribute__((weak)) bool process_action_kb(keyrecord_t *record) { return true; } @@ -195,22 +170,12 @@ __attribute__((weak)) bool process_record_user(uint16_t keycode, keyrecord_t *re return true; } -__attribute__((weak)) void post_process_record_modules(uint16_t keycode, keyrecord_t *record) {} - __attribute__((weak)) void post_process_record_kb(uint16_t keycode, keyrecord_t *record) { post_process_record_user(keycode, record); } __attribute__((weak)) void post_process_record_user(uint16_t keycode, keyrecord_t *record) {} -__attribute__((weak)) bool shutdown_modules(bool jump_to_bootloader) { - return true; -} - -__attribute__((weak)) void suspend_power_down_modules(void) {} - -__attribute__((weak)) void suspend_wakeup_init_modules(void) {} - void shutdown_quantum(bool jump_to_bootloader) { clear_keyboard(); #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) @@ -222,13 +187,11 @@ void shutdown_quantum(bool jump_to_bootloader) { # endif uint16_t timer_start = timer_read(); PLAY_SONG(goodbye_song); - shutdown_modules(jump_to_bootloader); shutdown_kb(jump_to_bootloader); while (timer_elapsed(timer_start) < 250) wait_ms(1); stop_all_notes(); #else - shutdown_modules(jump_to_bootloader); shutdown_kb(jump_to_bootloader); wait_ms(250); #endif @@ -283,9 +246,10 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache) { /* Get keycode, and then process pre tapping functionality */ bool pre_process_record_quantum(keyrecord_t *record) { - return pre_process_record_modules(get_record_keycode(record, true), record) && pre_process_record_kb(get_record_keycode(record, true), record) && + uint16_t keycode = get_record_keycode(record, true); + return pre_process_record_kb(keycode, record) && #ifdef COMBO_ENABLE - process_combo(get_record_keycode(record, true), record) && + process_combo(keycode, record) && #endif true; } @@ -293,14 +257,12 @@ bool pre_process_record_quantum(keyrecord_t *record) { /* Get keycode, and then call keyboard function */ void post_process_record_quantum(keyrecord_t *record) { uint16_t keycode = get_record_keycode(record, false); - post_process_record_modules(keycode, record); post_process_record_kb(keycode, record); } -/** \brief Core keycode function - * - * Hands off handling to other quantum/process_keycode/ functions - */ +/* Core keycode function, hands off handling to other functions, + then processes internal quantum keycodes, and then processes + ACTIONs. */ bool process_record_quantum(keyrecord_t *record) { uint16_t keycode = get_record_keycode(record, true); @@ -356,14 +318,13 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef HAPTIC_ENABLE process_haptic(keycode, record) && #endif -#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) - process_auto_mouse(keycode, record) && -#endif - process_record_modules(keycode, record) && // modules must run before kb - process_record_kb(keycode, record) && #if defined(VIA_ENABLE) process_record_via(keycode, record) && #endif +#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) + process_auto_mouse(keycode, record) && +#endif + process_record_kb(keycode, record) && #if defined(SECURE_ENABLE) process_secure(keycode, record) && #endif @@ -419,10 +380,7 @@ bool process_record_quantum(keyrecord_t *record) { process_grave_esc(keycode, record) && #endif #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - process_underglow(keycode, record) && -#endif -#if defined(RGB_MATRIX_ENABLE) - process_rgb_matrix(keycode, record) && + process_rgb(keycode, record) && #endif #ifdef JOYSTICK_ENABLE process_joystick(keycode, record) && @@ -436,35 +394,104 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef TRI_LAYER_ENABLE process_tri_layer(keycode, record) && #endif -#if !defined(NO_ACTION_LAYER) - process_default_layer(keycode, record) && -#endif -#ifdef LAYER_LOCK_ENABLE - process_layer_lock(keycode, record) && -#endif -#ifdef CONNECTION_ENABLE - process_connection(keycode, record) && -#endif -#ifndef NO_ACTION_ONESHOT - process_oneshot(keycode, record) && -#endif - process_quantum(keycode, record))) { + true)) { return false; } - return true; -} - -void set_single_default_layer(uint8_t default_layer) { -#if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) - PLAY_SONG(default_layer_songs[default_layer]); + if (record->event.pressed) { + switch (keycode) { +#ifndef NO_RESET + case QK_BOOTLOADER: + reset_keyboard(); + return false; + case QK_REBOOT: + soft_reset_keyboard(); + return false; #endif - default_layer_set((layer_state_t)1 << default_layer); +#ifndef NO_DEBUG + case QK_DEBUG_TOGGLE: + debug_enable ^= 1; + if (debug_enable) { + print("DEBUG: enabled.\n"); + } else { + print("DEBUG: disabled.\n"); + } +#endif + return false; + case QK_CLEAR_EEPROM: +#ifdef NO_RESET + eeconfig_init(); +#else + eeconfig_disable(); + soft_reset_keyboard(); +#endif + return false; +#ifdef VELOCIKEY_ENABLE + case QK_VELOCIKEY_TOGGLE: + velocikey_toggle(); + return false; +#endif +#ifdef BLUETOOTH_ENABLE + case QK_OUTPUT_AUTO: + set_output(OUTPUT_AUTO); + return false; + case QK_OUTPUT_USB: + set_output(OUTPUT_USB); + return false; + case QK_OUTPUT_BLUETOOTH: + set_output(OUTPUT_BLUETOOTH); + return false; +#endif +#ifndef NO_ACTION_ONESHOT + case QK_ONE_SHOT_TOGGLE: + oneshot_toggle(); + break; + case QK_ONE_SHOT_ON: + oneshot_enable(); + break; + case QK_ONE_SHOT_OFF: + oneshot_disable(); + break; +#endif +#ifdef ENABLE_COMPILE_KEYCODE + case QK_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + { +# ifdef NO_ACTION_ONESHOT + const uint8_t temp_mod = mod_config(get_mods()); +# else + const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods()); + clear_oneshot_mods(); +# endif + clear_mods(); + + SEND_STRING_DELAY("qmk", TAP_CODE_DELAY); + if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile + SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY); + } else { + SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY); + } +# if defined(CONVERTER_ENABLED) + SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY); +# else + SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY); +# endif + if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) { + reset_keyboard(); + } + } +#endif + } + } + + return process_action_kb(record); } void set_single_persistent_default_layer(uint8_t default_layer) { +#if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) + PLAY_SONG(default_layer_songs[default_layer]); +#endif eeconfig_update_default_layer((layer_state_t)1 << default_layer); - set_single_default_layer(default_layer); + default_layer_set((layer_state_t)1 << default_layer); } //------------------------------------------------------------------------------ @@ -483,7 +510,6 @@ __attribute__((weak)) bool shutdown_kb(bool jump_to_bootloader) { } void suspend_power_down_quantum(void) { - suspend_power_down_modules(); suspend_power_down_kb(); #ifndef NO_SUSPEND_POWER_DOWN // Turn off backlight @@ -491,10 +517,6 @@ void suspend_power_down_quantum(void) { backlight_level_noeeprom(0); # endif -# ifdef SLEEP_LED_ENABLE - sleep_led_enable(); -# endif - # ifdef LED_MATRIX_ENABLE led_matrix_task(); # endif @@ -541,10 +563,6 @@ __attribute__((weak)) void suspend_wakeup_init_quantum(void) { backlight_init(); #endif -#ifdef SLEEP_LED_ENABLE - sleep_led_disable(); -#endif - // Restore LED indicators led_wakeup(); @@ -559,7 +577,6 @@ __attribute__((weak)) void suspend_wakeup_init_quantum(void) { #if defined(RGB_MATRIX_ENABLE) rgb_matrix_set_suspend_state(false); #endif - suspend_wakeup_init_modules(); suspend_wakeup_init_kb(); } diff --git a/quantum/quantum.h b/quantum/quantum.h index 176c8a292d..5446ab1ad7 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -39,7 +39,6 @@ #include "keymap_common.h" #include "quantum_keycodes.h" #include "keycode_config.h" -#include "keycode_string.h" #include "action_layer.h" #include "eeconfig.h" #include "bootloader.h" @@ -63,10 +62,6 @@ # include "bootmagic.h" #endif -#ifdef BATTERY_ENABLE -# include "battery.h" -#endif - #ifdef DEFERRED_EXEC_ENABLE # include "deferred_exec.h" #endif @@ -245,15 +240,6 @@ extern layer_state_t layer_state; # include "os_detection.h" #endif -#ifdef LAYER_LOCK_ENABLE -# include "layer_lock.h" -#endif - -#ifdef COMMUNITY_MODULES_ENABLE -# include "community_modules.h" -#endif - -void set_single_default_layer(uint8_t default_layer); void set_single_persistent_default_layer(uint8_t default_layer); #define IS_LAYER_ON(layer) layer_state_is(layer) @@ -267,6 +253,7 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache); bool pre_process_record_quantum(keyrecord_t *record); bool pre_process_record_kb(uint16_t keycode, keyrecord_t *record); bool pre_process_record_user(uint16_t keycode, keyrecord_t *record); +bool process_action_kb(keyrecord_t *record); bool process_record_kb(uint16_t keycode, keyrecord_t *record); bool process_record_user(uint16_t keycode, keyrecord_t *record); void post_process_record_kb(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index a1ae7ed0be..882e1d07ae 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -41,53 +41,44 @@ #define QK_MODS_GET_MODS(kc) (((kc) >> 8) & 0x1F) #define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc)&0xFF) -// Modified keycodes +// Keycode modifiers & aliases #define LCTL(kc) (QK_LCTL | (kc)) #define LSFT(kc) (QK_LSFT | (kc)) #define LALT(kc) (QK_LALT | (kc)) #define LGUI(kc) (QK_LGUI | (kc)) - #define LOPT(kc) LALT(kc) #define LCMD(kc) LGUI(kc) #define LWIN(kc) LGUI(kc) - -#define C(kc) LCTL(kc) -#define S(kc) LSFT(kc) -#define A(kc) LALT(kc) -#define G(kc) LGUI(kc) - -#define LCS(kc) (QK_LCTL | QK_LSFT | (kc)) -#define LCA(kc) (QK_LCTL | QK_LALT | (kc)) -#define LCG(kc) (QK_LCTL | QK_LGUI | (kc)) -#define LSA(kc) (QK_LSFT | QK_LALT | (kc)) -#define LSG(kc) (QK_LSFT | QK_LGUI | (kc)) -#define LAG(kc) (QK_LALT | QK_LGUI | (kc)) -#define LCSG(kc) (QK_LCTL | QK_LSFT | QK_LGUI | (kc)) -#define LCAG(kc) (QK_LCTL | QK_LALT | QK_LGUI | (kc)) -#define LSAG(kc) (QK_LSFT | QK_LALT | QK_LGUI | (kc)) - #define RCTL(kc) (QK_RCTL | (kc)) #define RSFT(kc) (QK_RSFT | (kc)) #define RALT(kc) (QK_RALT | (kc)) #define RGUI(kc) (QK_RGUI | (kc)) - #define ALGR(kc) RALT(kc) #define ROPT(kc) RALT(kc) #define RCMD(kc) RGUI(kc) #define RWIN(kc) RGUI(kc) -#define RCA(kc) (QK_RCTL | QK_RALT | (kc)) -#define RCS(kc) (QK_RCTL | QK_RSFT | (kc)) -#define RCG(kc) (QK_RCTL | QK_RGUI | (kc)) -#define RSA(kc) (QK_RSFT | QK_RALT | (kc)) -#define RSG(kc) (QK_RSFT | QK_RGUI | (kc)) -#define RAG(kc) (QK_RALT | QK_RGUI | (kc)) -#define RCSG(kc) (QK_RCTL | QK_RSFT | QK_RGUI | (kc)) -#define RCAG(kc) (QK_RCTL | QK_RALT | QK_RGUI | (kc)) -#define RSAG(kc) (QK_RSFT | QK_RALT | QK_RGUI | (kc)) - #define HYPR(kc) (QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI | (kc)) #define MEH(kc) (QK_LCTL | QK_LSFT | QK_LALT | (kc)) +#define LCAG(kc) (QK_LCTL | QK_LALT | QK_LGUI | (kc)) +#define LSG(kc) (QK_LSFT | QK_LGUI | (kc)) +#define SGUI(kc) LSG(kc) +#define SCMD(kc) LSG(kc) +#define SWIN(kc) LSG(kc) +#define LAG(kc) (QK_LALT | QK_LGUI | (kc)) +#define RSG(kc) (QK_RSFT | QK_RGUI | (kc)) +#define RAG(kc) (QK_RALT | QK_RGUI | (kc)) +#define LCA(kc) (QK_LCTL | QK_LALT | (kc)) +#define LSA(kc) (QK_LSFT | QK_LALT | (kc)) +#define RSA(kc) (QK_RSFT | QK_RALT | (kc)) +#define RCS(kc) (QK_RCTL | QK_RSFT | (kc)) +#define SAGR(kc) RSA(kc) + +// Modified keycode aliases +#define C(kc) LCTL(kc) +#define S(kc) LSFT(kc) +#define A(kc) LALT(kc) +#define G(kc) LGUI(kc) // GOTO layer - 32 layer max #define TO(layer) (QK_TO | ((layer)&0x1F)) @@ -101,10 +92,6 @@ #define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) #define QK_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) -// Set persistent default layer - 32 layer max -#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer)&0x1F)) -#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) - // Toggle to layer - 32 layer max #define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) #define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc)&0x1F) @@ -122,41 +109,6 @@ #define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0x1F)) #define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc)&0x1F) -#define OS_LCTL OSM(MOD_LCTL) -#define OS_LSFT OSM(MOD_LSFT) -#define OS_LALT OSM(MOD_LALT) -#define OS_LGUI OSM(MOD_LGUI) - -#define OS_LCS OSM(MOD_LCTL | MOD_LSFT) -#define OS_LCA OSM(MOD_LCTL | MOD_LALT) -#define OS_LCG OSM(MOD_LCTL | MOD_LGUI) -#define OS_LSA OSM(MOD_LSFT | MOD_LALT) -#define OS_LSG OSM(MOD_LSFT | MOD_LGUI) -#define OS_LAG OSM(MOD_LALT | MOD_LGUI) - -#define OS_LCSG OSM(MOD_LCTL | MOD_LSFT | MOD_LGUI) -#define OS_LCAG OSM(MOD_LCTL | MOD_LALT | MOD_LGUI) -#define OS_LSAG OSM(MOD_LSFT | MOD_LALT | MOD_LGUI) - -#define OS_RCTL OSM(MOD_RCTL) -#define OS_RSFT OSM(MOD_RSFT) -#define OS_RALT OSM(MOD_RALT) -#define OS_RGUI OSM(MOD_RGUI) - -#define OS_RCS OSM(MOD_RCTL | MOD_RSFT) -#define OS_RCA OSM(MOD_RCTL | MOD_RALT) -#define OS_RCG OSM(MOD_RCTL | MOD_RGUI) -#define OS_RSA OSM(MOD_RSFT | MOD_RALT) -#define OS_RSG OSM(MOD_RSFT | MOD_RGUI) -#define OS_RAG OSM(MOD_RALT | MOD_RGUI) - -#define OS_RCSG OSM(MOD_RCTL | MOD_RSFT | MOD_RGUI) -#define OS_RCAG OSM(MOD_RCTL | MOD_RALT | MOD_RGUI) -#define OS_RSAG OSM(MOD_RSFT | MOD_RALT | MOD_RGUI) - -#define OS_MEH OSM(MOD_LCTL | MOD_LSFT | MOD_LALT) -#define OS_HYPR OSM(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI) - // Layer tap-toggle - 32 layer max #define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0x1F)) #define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc)&0x1F) @@ -171,57 +123,51 @@ #define QK_MOD_TAP_GET_MODS(kc) (((kc) >> 8) & 0x1F) #define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) -// Mod-Tap shortcuts #define LCTL_T(kc) MT(MOD_LCTL, kc) -#define LSFT_T(kc) MT(MOD_LSFT, kc) -#define LALT_T(kc) MT(MOD_LALT, kc) -#define LGUI_T(kc) MT(MOD_LGUI, kc) - +#define RCTL_T(kc) MT(MOD_RCTL, kc) #define CTL_T(kc) LCTL_T(kc) -#define SFT_T(kc) LSFT_T(kc) -#define ALT_T(kc) LALT_T(kc) -#define GUI_T(kc) LGUI_T(kc) +#define LSFT_T(kc) MT(MOD_LSFT, kc) +#define RSFT_T(kc) MT(MOD_RSFT, kc) +#define SFT_T(kc) LSFT_T(kc) + +#define LALT_T(kc) MT(MOD_LALT, kc) +#define RALT_T(kc) MT(MOD_RALT, kc) #define LOPT_T(kc) LALT_T(kc) +#define ROPT_T(kc) RALT_T(kc) +#define ALGR_T(kc) RALT_T(kc) +#define ALT_T(kc) LALT_T(kc) +#define OPT_T(kc) LOPT_T(kc) + +#define LGUI_T(kc) MT(MOD_LGUI, kc) +#define RGUI_T(kc) MT(MOD_RGUI, kc) #define LCMD_T(kc) LGUI_T(kc) #define LWIN_T(kc) LGUI_T(kc) - -#define OPT_T(kc) LOPT_T(kc) +#define RCMD_T(kc) RGUI_T(kc) +#define RWIN_T(kc) RGUI_T(kc) +#define GUI_T(kc) LGUI_T(kc) #define CMD_T(kc) LCMD_T(kc) #define WIN_T(kc) LWIN_T(kc) -#define LCS_T(kc) MT(MOD_LCTL | MOD_LSFT, kc) -#define LCA_T(kc) MT(MOD_LCTL | MOD_LALT, kc) -#define LCG_T(kc) MT(MOD_LCTL | MOD_LGUI, kc) -#define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc) -#define LSG_T(kc) MT(MOD_LSFT | MOD_LGUI, kc) -#define LAG_T(kc) MT(MOD_LALT | MOD_LGUI, kc) -#define LCSG_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LGUI, kc) -#define LCAG_T(kc) MT(MOD_LCTL | MOD_LALT | MOD_LGUI, kc) -#define LSAG_T(kc) MT(MOD_LSFT | MOD_LALT | MOD_LGUI, kc) +#define C_S_T(kc) MT(MOD_LCTL | MOD_LSFT, kc) // Left Control + Shift e.g. for gnome-terminal +#define MEH_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT, kc) // Meh is a less hyper version of the Hyper key -- doesn't include GUI, so just Left Control + Shift + Alt +#define LCAG_T(kc) MT(MOD_LCTL | MOD_LALT | MOD_LGUI, kc) // Left Control + Alt + GUI +#define RCAG_T(kc) MT(MOD_RCTL | MOD_RALT | MOD_RGUI, kc) // Right Control + Alt + GUI +#define HYPR_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ +#define LSG_T(kc) MT(MOD_LSFT | MOD_LGUI, kc) // Left Shift + GUI +#define SGUI_T(kc) LSG_T(kc) +#define SCMD_T(kc) LSG_T(kc) +#define SWIN_T(kc) LSG_T(kc) +#define LAG_T(kc) MT(MOD_LALT | MOD_LGUI, kc) // Left Alt + GUI +#define RSG_T(kc) MT(MOD_RSFT | MOD_RGUI, kc) // Right Shift + GUI +#define RAG_T(kc) MT(MOD_RALT | MOD_RGUI, kc) // Right Alt + GUI +#define LCA_T(kc) MT(MOD_LCTL | MOD_LALT, kc) // Left Control + Alt +#define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc) // Left Shift + Alt +#define RSA_T(kc) MT(MOD_RSFT | MOD_RALT, kc) // Right Shift + Alt +#define RCS_T(kc) MT(MOD_RCTL | MOD_RSFT, kc) // Right Control + Shift +#define SAGR_T(kc) RSA_T(kc) -#define RCTL_T(kc) MT(MOD_RCTL, kc) -#define RSFT_T(kc) MT(MOD_RSFT, kc) -#define RALT_T(kc) MT(MOD_RALT, kc) -#define RGUI_T(kc) MT(MOD_RGUI, kc) - -#define ROPT_T(kc) RALT_T(kc) -#define ALGR_T(kc) RALT_T(kc) -#define RCMD_T(kc) RGUI_T(kc) -#define RWIN_T(kc) RGUI_T(kc) - -#define RCS_T(kc) MT(MOD_RCTL | MOD_RSFT, kc) -#define RCA_T(kc) MT(MOD_RCTL | MOD_RALT, kc) -#define RCG_T(kc) MT(MOD_RCTL | MOD_RGUI, kc) -#define RSA_T(kc) MT(MOD_RSFT | MOD_RALT, kc) -#define RSG_T(kc) MT(MOD_RSFT | MOD_RGUI, kc) -#define RAG_T(kc) MT(MOD_RALT | MOD_RGUI, kc) -#define RCSG_T(kc) MT(MOD_RCTL | MOD_RSFT | MOD_RGUI, kc) -#define RCAG_T(kc) MT(MOD_RCTL | MOD_RALT | MOD_RGUI, kc) -#define RSAG_T(kc) MT(MOD_RSFT | MOD_RALT | MOD_RGUI, kc) - -#define MEH_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT, kc) -#define HYPR_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI, kc) +#define ALL_T(kc) HYPR_T(kc) // Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap #define KC_HYPR HYPR(KC_NO) diff --git a/quantum/quantum_keycodes_legacy.h b/quantum/quantum_keycodes_legacy.h index e417591fe2..e1562077e5 100644 --- a/quantum/quantum_keycodes_legacy.h +++ b/quantum/quantum_keycodes_legacy.h @@ -3,17 +3,55 @@ // clang-format off // Deprecated Quantum keycodes -#define QK_OUTPUT_AUTO OU_AUTO +#define RGB_TOG QK_UNDERGLOW_TOGGLE +#define RGB_MOD QK_UNDERGLOW_MODE_NEXT +#define RGB_MODE_FORWARD QK_UNDERGLOW_MODE_NEXT +#define RGB_RMOD QK_UNDERGLOW_MODE_PREVIOUS +#define RGB_MODE_REVERSE QK_UNDERGLOW_MODE_PREVIOUS +#define RGB_HUI QK_UNDERGLOW_HUE_UP +#define RGB_HUD QK_UNDERGLOW_HUE_DOWN +#define RGB_SAI QK_UNDERGLOW_SATURATION_UP +#define RGB_SAD QK_UNDERGLOW_SATURATION_DOWN +#define RGB_VAI QK_UNDERGLOW_VALUE_UP +#define RGB_VAD QK_UNDERGLOW_VALUE_DOWN +#define RGB_SPI QK_UNDERGLOW_SPEED_UP +#define RGB_SPD QK_UNDERGLOW_SPEED_DOWN -#define C_S_T(kc) LCS_T(kc) -#define ALL_T(kc) HYPR_T(kc) - -#define SGUI(kc) LSG(kc) -#define SCMD(kc) LSG(kc) -#define SWIN(kc) LSG(kc) -#define SGUI_T(kc) LSG_T(kc) -#define SCMD_T(kc) LSG_T(kc) -#define SWIN_T(kc) LSG_T(kc) - -#define SAGR(kc) RSA(kc) -#define SAGR_T(kc) RSA_T(kc) +#define KC_MS_UP QK_MOUSE_CURSOR_UP +#define KC_MS_U QK_MOUSE_CURSOR_UP +#define KC_MS_DOWN QK_MOUSE_CURSOR_DOWN +#define KC_MS_D QK_MOUSE_CURSOR_DOWN +#define KC_MS_LEFT QK_MOUSE_CURSOR_LEFT +#define KC_MS_L QK_MOUSE_CURSOR_LEFT +#define KC_MS_RIGHT QK_MOUSE_CURSOR_RIGHT +#define KC_MS_R QK_MOUSE_CURSOR_RIGHT +#define KC_MS_BTN1 QK_MOUSE_BUTTON_1 +#define KC_BTN1 QK_MOUSE_BUTTON_1 +#define KC_MS_BTN2 QK_MOUSE_BUTTON_2 +#define KC_BTN2 QK_MOUSE_BUTTON_2 +#define KC_MS_BTN3 QK_MOUSE_BUTTON_3 +#define KC_BTN3 QK_MOUSE_BUTTON_3 +#define KC_MS_BTN4 QK_MOUSE_BUTTON_4 +#define KC_BTN4 QK_MOUSE_BUTTON_4 +#define KC_MS_BTN5 QK_MOUSE_BUTTON_5 +#define KC_BTN5 QK_MOUSE_BUTTON_5 +#define KC_MS_BTN6 QK_MOUSE_BUTTON_6 +#define KC_BTN6 QK_MOUSE_BUTTON_6 +#define KC_MS_BTN7 QK_MOUSE_BUTTON_7 +#define KC_BTN7 QK_MOUSE_BUTTON_7 +#define KC_MS_BTN8 QK_MOUSE_BUTTON_8 +#define KC_BTN8 QK_MOUSE_BUTTON_8 +#define KC_MS_WH_UP QK_MOUSE_WHEEL_UP +#define KC_WH_U QK_MOUSE_WHEEL_UP +#define KC_MS_WH_DOWN QK_MOUSE_WHEEL_DOWN +#define KC_WH_D QK_MOUSE_WHEEL_DOWN +#define KC_MS_WH_LEFT QK_MOUSE_WHEEL_LEFT +#define KC_WH_L QK_MOUSE_WHEEL_LEFT +#define KC_MS_WH_RIGHT QK_MOUSE_WHEEL_RIGHT +#define KC_WH_R QK_MOUSE_WHEEL_RIGHT +#define KC_MS_ACCEL0 QK_MOUSE_ACCELERATION_0 +#define KC_ACL0 QK_MOUSE_ACCELERATION_0 +#define KC_MS_ACCEL1 QK_MOUSE_ACCELERATION_1 +#define KC_ACL1 QK_MOUSE_ACCELERATION_1 +#define KC_MS_ACCEL2 QK_MOUSE_ACCELERATION_2 +#define KC_ACL2 QK_MOUSE_ACCELERATION_2 diff --git a/quantum/raw_hid.c b/quantum/raw_hid.c deleted file mode 100644 index 2c7a75f325..0000000000 --- a/quantum/raw_hid.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "raw_hid.h" -#include "host.h" - -void raw_hid_send(uint8_t *data, uint8_t length) { - host_raw_hid_send(data, length); -} - -__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { - // Users should #include "raw_hid.h" in their own code - // and implement this function there. Leave this as weak linkage - // so users can opt to not handle data coming in. -} diff --git a/quantum/rgb_matrix/animations/alpha_mods_anim.h b/quantum/rgb_matrix/animations/alpha_mods_anim.h index 2f76feb0fc..59b8381d69 100644 --- a/quantum/rgb_matrix/animations/alpha_mods_anim.h +++ b/quantum/rgb_matrix/animations/alpha_mods_anim.h @@ -6,10 +6,10 @@ RGB_MATRIX_EFFECT(ALPHAS_MODS) bool ALPHAS_MODS(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; - rgb_t rgb1 = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = rgb_matrix_config.hsv; + RGB rgb1 = rgb_matrix_hsv_to_rgb(hsv); hsv.h += rgb_matrix_config.speed; - rgb_t rgb2 = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb2 = rgb_matrix_hsv_to_rgb(hsv); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); diff --git a/quantum/rgb_matrix/animations/breathing_anim.h b/quantum/rgb_matrix/animations/breathing_anim.h index 8fa8e3dad4..e9a3c96e1b 100644 --- a/quantum/rgb_matrix/animations/breathing_anim.h +++ b/quantum/rgb_matrix/animations/breathing_anim.h @@ -2,13 +2,18 @@ RGB_MATRIX_EFFECT(BREATHING) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -hsv_t BREATHING_math(hsv_t hsv, uint8_t i, uint8_t time) { - hsv.v = scale8(abs8(sin8(time / 2) - 128) * 2, hsv.v); - return hsv; -} - bool BREATHING(effect_params_t* params) { - return effect_runner_i(params, &BREATHING_math); + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + HSV hsv = rgb_matrix_config.hsv; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/quantum/rgb_matrix/animations/colorband_pinwheel_sat_anim.h b/quantum/rgb_matrix/animations/colorband_pinwheel_sat_anim.h index 5ae5b193b0..06aa8b5ed5 100644 --- a/quantum/rgb_matrix/animations/colorband_pinwheel_sat_anim.h +++ b/quantum/rgb_matrix/animations/colorband_pinwheel_sat_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_PINWHEEL_SAT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_PINWHEEL_SAT_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV BAND_PINWHEEL_SAT_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { hsv.s = scale8(hsv.s - time - atan2_8(dy, dx) * 3, hsv.s); return hsv; } diff --git a/quantum/rgb_matrix/animations/colorband_pinwheel_val_anim.h b/quantum/rgb_matrix/animations/colorband_pinwheel_val_anim.h index 157a8c1c19..bcbc319498 100644 --- a/quantum/rgb_matrix/animations/colorband_pinwheel_val_anim.h +++ b/quantum/rgb_matrix/animations/colorband_pinwheel_val_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_PINWHEEL_VAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_PINWHEEL_VAL_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV BAND_PINWHEEL_VAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { hsv.v = scale8(hsv.v - time - atan2_8(dy, dx) * 3, hsv.v); return hsv; } diff --git a/quantum/rgb_matrix/animations/colorband_sat_anim.h b/quantum/rgb_matrix/animations/colorband_sat_anim.h index a0d0e6e811..cb0897ad3e 100644 --- a/quantum/rgb_matrix/animations/colorband_sat_anim.h +++ b/quantum/rgb_matrix/animations/colorband_sat_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_SAT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_SAT_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV BAND_SAT_math(HSV hsv, uint8_t i, uint8_t time) { int16_t s = hsv.s - abs(scale8(g_led_config.point[i].x, 228) + 28 - time) * 8; hsv.s = scale8(s < 0 ? 0 : s, hsv.s); return hsv; diff --git a/quantum/rgb_matrix/animations/colorband_spiral_sat_anim.h b/quantum/rgb_matrix/animations/colorband_spiral_sat_anim.h index 7d2e5b3269..d26eb37855 100644 --- a/quantum/rgb_matrix/animations/colorband_spiral_sat_anim.h +++ b/quantum/rgb_matrix/animations/colorband_spiral_sat_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_SPIRAL_SAT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_SPIRAL_SAT_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { +static HSV BAND_SPIRAL_SAT_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { hsv.s = scale8(hsv.s + dist - time - atan2_8(dy, dx), hsv.s); return hsv; } diff --git a/quantum/rgb_matrix/animations/colorband_spiral_val_anim.h b/quantum/rgb_matrix/animations/colorband_spiral_val_anim.h index 9cd9c084d1..3ae34bb6f0 100644 --- a/quantum/rgb_matrix/animations/colorband_spiral_val_anim.h +++ b/quantum/rgb_matrix/animations/colorband_spiral_val_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_SPIRAL_VAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_SPIRAL_VAL_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { +static HSV BAND_SPIRAL_VAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { hsv.v = scale8(hsv.v + dist - time - atan2_8(dy, dx), hsv.v); return hsv; } diff --git a/quantum/rgb_matrix/animations/colorband_val_anim.h b/quantum/rgb_matrix/animations/colorband_val_anim.h index ccffae259f..69c29f53a3 100644 --- a/quantum/rgb_matrix/animations/colorband_val_anim.h +++ b/quantum/rgb_matrix/animations/colorband_val_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(BAND_VAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t BAND_VAL_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV BAND_VAL_math(HSV hsv, uint8_t i, uint8_t time) { int16_t v = hsv.v - abs(scale8(g_led_config.point[i].x, 228) + 28 - time) * 8; hsv.v = scale8(v < 0 ? 0 : v, hsv.v); return hsv; diff --git a/quantum/rgb_matrix/animations/cycle_all_anim.h b/quantum/rgb_matrix/animations/cycle_all_anim.h index 8fafcf8d11..d8c7220d95 100644 --- a/quantum/rgb_matrix/animations/cycle_all_anim.h +++ b/quantum/rgb_matrix/animations/cycle_all_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_ALL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_ALL_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV CYCLE_ALL_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = time; return hsv; } diff --git a/quantum/rgb_matrix/animations/cycle_left_right_anim.h b/quantum/rgb_matrix/animations/cycle_left_right_anim.h index 2d8871a300..84c2127aff 100644 --- a/quantum/rgb_matrix/animations/cycle_left_right_anim.h +++ b/quantum/rgb_matrix/animations/cycle_left_right_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_LEFT_RIGHT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_LEFT_RIGHT_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV CYCLE_LEFT_RIGHT_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = g_led_config.point[i].x - time; return hsv; } diff --git a/quantum/rgb_matrix/animations/cycle_out_in_anim.h b/quantum/rgb_matrix/animations/cycle_out_in_anim.h index faf920a608..9513fe9593 100644 --- a/quantum/rgb_matrix/animations/cycle_out_in_anim.h +++ b/quantum/rgb_matrix/animations/cycle_out_in_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_OUT_IN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_OUT_IN_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { +static HSV CYCLE_OUT_IN_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { hsv.h = 3 * dist / 2 + time; return hsv; } diff --git a/quantum/rgb_matrix/animations/cycle_out_in_dual_anim.h b/quantum/rgb_matrix/animations/cycle_out_in_dual_anim.h index 4203a8ffd2..3cca45f27a 100644 --- a/quantum/rgb_matrix/animations/cycle_out_in_dual_anim.h +++ b/quantum/rgb_matrix/animations/cycle_out_in_dual_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_OUT_IN_DUAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_OUT_IN_DUAL_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV CYCLE_OUT_IN_DUAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { dx = (k_rgb_matrix_center.x / 2) - abs8(dx); uint8_t dist = sqrt16(dx * dx + dy * dy); hsv.h = 3 * dist + time; diff --git a/quantum/rgb_matrix/animations/cycle_pinwheel_anim.h b/quantum/rgb_matrix/animations/cycle_pinwheel_anim.h index d557ffeb78..de5993992c 100644 --- a/quantum/rgb_matrix/animations/cycle_pinwheel_anim.h +++ b/quantum/rgb_matrix/animations/cycle_pinwheel_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_PINWHEEL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_PINWHEEL_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time) { +static HSV CYCLE_PINWHEEL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time) { hsv.h = atan2_8(dy, dx) + time; return hsv; } diff --git a/quantum/rgb_matrix/animations/cycle_spiral_anim.h b/quantum/rgb_matrix/animations/cycle_spiral_anim.h index 6d7a2dc5b4..904450179e 100644 --- a/quantum/rgb_matrix/animations/cycle_spiral_anim.h +++ b/quantum/rgb_matrix/animations/cycle_spiral_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_SPIRAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_SPIRAL_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { +static HSV CYCLE_SPIRAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time) { hsv.h = dist - time - atan2_8(dy, dx); return hsv; } diff --git a/quantum/rgb_matrix/animations/cycle_up_down_anim.h b/quantum/rgb_matrix/animations/cycle_up_down_anim.h index 09c8ace46b..dce05fecff 100644 --- a/quantum/rgb_matrix/animations/cycle_up_down_anim.h +++ b/quantum/rgb_matrix/animations/cycle_up_down_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(CYCLE_UP_DOWN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t CYCLE_UP_DOWN_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV CYCLE_UP_DOWN_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h = g_led_config.point[i].y - time; return hsv; } diff --git a/quantum/rgb_matrix/animations/dual_beacon_anim.h b/quantum/rgb_matrix/animations/dual_beacon_anim.h index 7279f1ce53..5585015b86 100644 --- a/quantum/rgb_matrix/animations/dual_beacon_anim.h +++ b/quantum/rgb_matrix/animations/dual_beacon_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(DUAL_BEACON) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t DUAL_BEACON_math(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { +static HSV DUAL_BEACON_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * cos + (g_led_config.point[i].x - k_rgb_matrix_center.x) * sin) / 128; return hsv; } diff --git a/quantum/rgb_matrix/animations/flower_blooming_anim.h b/quantum/rgb_matrix/animations/flower_blooming_anim.h index 91f70c8d52..7629fde858 100644 --- a/quantum/rgb_matrix/animations/flower_blooming_anim.h +++ b/quantum/rgb_matrix/animations/flower_blooming_anim.h @@ -18,7 +18,7 @@ RGB_MATRIX_EFFECT(FLOWER_BLOOMING) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -typedef hsv_t (*flower_blooming_f)(hsv_t hsv, uint8_t i, uint8_t time); +typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time); bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -27,17 +27,17 @@ bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); if (g_led_config.point[i].y > k_rgb_matrix_center.y) { - rgb_t bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r); } else { - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } } return rgb_matrix_check_finished_leds(led_max); } -static hsv_t FLOWER_BLOOMING_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) { if (g_led_config.point[i].y > k_rgb_matrix_center.y) hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time; else diff --git a/quantum/rgb_matrix/animations/gradient_left_right_anim.h b/quantum/rgb_matrix/animations/gradient_left_right_anim.h index 4175ab330d..ebb06f59f2 100644 --- a/quantum/rgb_matrix/animations/gradient_left_right_anim.h +++ b/quantum/rgb_matrix/animations/gradient_left_right_anim.h @@ -5,14 +5,14 @@ RGB_MATRIX_EFFECT(GRADIENT_LEFT_RIGHT) bool GRADIENT_LEFT_RIGHT(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t scale = scale8(64, rgb_matrix_config.speed); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); // The x range will be 0..224, map this to 0..7 // Relies on hue being 8-bit and wrapping - hsv.h = rgb_matrix_config.hsv.h + (scale * g_led_config.point[i].x >> 5); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (scale * g_led_config.point[i].x >> 5); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/gradient_up_down_anim.h b/quantum/rgb_matrix/animations/gradient_up_down_anim.h index e3953fb035..febc3919a8 100644 --- a/quantum/rgb_matrix/animations/gradient_up_down_anim.h +++ b/quantum/rgb_matrix/animations/gradient_up_down_anim.h @@ -5,14 +5,14 @@ RGB_MATRIX_EFFECT(GRADIENT_UP_DOWN) bool GRADIENT_UP_DOWN(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; uint8_t scale = scale8(64, rgb_matrix_config.speed); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); // The y range will be 0..64, map this to 0..4 // Relies on hue being 8-bit and wrapping - hsv.h = rgb_matrix_config.hsv.h + scale * (g_led_config.point[i].y >> 4); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + scale * (g_led_config.point[i].y >> 4); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/hue_breathing_anim.h b/quantum/rgb_matrix/animations/hue_breathing_anim.h index 60d7426cfc..8537762832 100644 --- a/quantum/rgb_matrix/animations/hue_breathing_anim.h +++ b/quantum/rgb_matrix/animations/hue_breathing_anim.h @@ -2,17 +2,21 @@ RGB_MATRIX_EFFECT(HUE_BREATHING) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS +// Change huedelta to adjust range of hue change. 0-255. // Hue Breathing - All LED's light up -hsv_t HUE_BREATHING_math(hsv_t hsv, uint8_t i, uint8_t time) { - // Adjust delta between 0-255 to change hue range - uint8_t delta = 12; - hsv.h = hsv.h + scale8(abs8(sin8(time / 2) - 128) * 2, delta); - return hsv; -} - bool HUE_BREATHING(effect_params_t* params) { - return effect_runner_i(params, &HUE_BREATHING_math); + RGB_MATRIX_USE_LIMITS(led_min, led_max); + uint8_t huedelta = 12; + HSV hsv = rgb_matrix_config.hsv; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); + hsv.h = hsv.h + scale8(abs8(sin8(time) - 128) * 2, huedelta); + RGB rgb = hsv_to_rgb(hsv); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_HUE_BREATHING +#endif // DISABLE_RGB_HUE_BREATHING diff --git a/quantum/rgb_matrix/animations/hue_pendulum_anim.h b/quantum/rgb_matrix/animations/hue_pendulum_anim.h index ba0a5b45a4..7d8cbcdfb2 100644 --- a/quantum/rgb_matrix/animations/hue_pendulum_anim.h +++ b/quantum/rgb_matrix/animations/hue_pendulum_anim.h @@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(HUE_PENDULUM) // Change huedelta to adjust range of hue change. 0-255. // Looks better with a low value and slow speed for subtle change. // Hue Pendulum - color changes in a wave to the right before reversing direction -static hsv_t HUE_PENDULUM_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV HUE_PENDULUM_math(HSV hsv, uint8_t i, uint8_t time) { uint8_t huedelta = 12; hsv.h = hsv.h + scale8(abs8(sin8(time) + (g_led_config.point[i].x) - 128) * 2, huedelta); return hsv; diff --git a/quantum/rgb_matrix/animations/hue_wave_anim.h b/quantum/rgb_matrix/animations/hue_wave_anim.h index 7b729a1816..81aa7e139e 100644 --- a/quantum/rgb_matrix/animations/hue_wave_anim.h +++ b/quantum/rgb_matrix/animations/hue_wave_anim.h @@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(HUE_WAVE) // Change huedelta to adjust range of hue change. 0-255. // Looks better with a low value and slow speed for subtle change. // Hue Wave - color changes in a wave to the right -static hsv_t HUE_WAVE_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV HUE_WAVE_math(HSV hsv, uint8_t i, uint8_t time) { uint8_t huedelta = 24; hsv.h = hsv.h + scale8(abs8(g_led_config.point[i].x - time), huedelta); return hsv; diff --git a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h index 5790b27367..5d3df1059e 100644 --- a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h +++ b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h @@ -2,33 +2,25 @@ RGB_MATRIX_EFFECT(JELLYBEAN_RAINDROPS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void jellybean_raindrops_set_color(uint8_t i, effect_params_t* params) { +static void jellybean_raindrops_set_color(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - - hsv_t hsv = {random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = {random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool JELLYBEAN_RAINDROPS(effect_params_t* params) { - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - - // Periodic trigger for LED change - if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0)) { - index = random8_max(RGB_MATRIX_LED_COUNT); - } - RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (params->init) { - for (uint8_t i = led_min; i < led_max; i++) { + if (!params->init) { + // Change one LED every tick, make sure speed is not 0 + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0) { + jellybean_raindrops_set_color(random8_max(RGB_MATRIX_LED_COUNT), params); + } + } else { + for (int i = led_min; i < led_max; i++) { jellybean_raindrops_set_color(i, params); } } - // Change LED once and set index out of range till next trigger - else if (led_min <= index && index < led_max) { - jellybean_raindrops_set_color(index, params); - index = RGB_MATRIX_LED_COUNT + 1; - } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/pixel_flow_anim.h b/quantum/rgb_matrix/animations/pixel_flow_anim.h index 44b4b5c481..27567b4f3a 100644 --- a/quantum/rgb_matrix/animations/pixel_flow_anim.h +++ b/quantum/rgb_matrix/animations/pixel_flow_anim.h @@ -7,7 +7,7 @@ RGB_MATRIX_EFFECT(PIXEL_FLOW) static bool PIXEL_FLOW(effect_params_t* params) { // LED state array - static rgb_t led[RGB_MATRIX_LED_COUNT]; + static RGB led[RGB_MATRIX_LED_COUNT]; static uint32_t wait_timer = 0; if (wait_timer > g_rgb_timer) { @@ -22,7 +22,7 @@ static bool PIXEL_FLOW(effect_params_t* params) { // Clear LEDs and fill the state array rgb_matrix_set_color_all(0, 0, 0); for (uint8_t j = 0; j < RGB_MATRIX_LED_COUNT; ++j) { - led[j] = (random8() & 2) ? (rgb_t){0, 0, 0} : rgb_matrix_hsv_to_rgb((hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}); + led[j] = (random8() & 2) ? (RGB){0, 0, 0} : hsv_to_rgb((HSV){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}); } } @@ -39,7 +39,7 @@ static bool PIXEL_FLOW(effect_params_t* params) { led[j] = led[j + 1]; } // Fill last LED - led[led_max - 1] = (random8() & 2) ? (rgb_t){0, 0, 0} : rgb_matrix_hsv_to_rgb((hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}); + led[led_max - 1] = (random8() & 2) ? (RGB){0, 0, 0} : hsv_to_rgb((HSV){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}); // Set pulse timer wait_timer = g_rgb_timer + interval(); } diff --git a/quantum/rgb_matrix/animations/pixel_fractal_anim.h b/quantum/rgb_matrix/animations/pixel_fractal_anim.h index bf5c22a64e..90a75ed321 100644 --- a/quantum/rgb_matrix/animations/pixel_fractal_anim.h +++ b/quantum/rgb_matrix/animations/pixel_fractal_anim.h @@ -26,11 +26,11 @@ static bool PIXEL_FRACTAL(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); if (g_rgb_timer > wait_timer) { - rgb_t rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); for (uint8_t h = 0; h < MATRIX_ROWS; ++h) { // Light and copy columns outward for (uint8_t l = 0; l < MID_COL - 1; ++l) { - rgb_t index_rgb = led[h][l] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; + RGB index_rgb = led[h][l] ? (RGB){rgb.r, rgb.g, rgb.b} : (RGB){0, 0, 0}; if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][l]], params->flags)) { rgb_matrix_set_color(g_led_config.matrix_co[h][l], index_rgb.r, index_rgb.g, index_rgb.b); } @@ -41,7 +41,7 @@ static bool PIXEL_FRACTAL(effect_params_t* params) { } // Light both middle columns - rgb_t index_rgb = led[h][MID_COL - 1] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; + RGB index_rgb = led[h][MID_COL - 1] ? (RGB){rgb.r, rgb.g, rgb.b} : (RGB){0, 0, 0}; if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MID_COL - 1]], params->flags)) { rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL - 1], index_rgb.r, index_rgb.g, index_rgb.b); } diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index c0370831d8..26cd73b578 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -6,20 +6,25 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool PIXEL_RAIN(effect_params_t* params) { - static fast_timer_t timer = 0; - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + static uint32_t wait_timer = 0; - if ((params->iter == 0) && (timer_elapsed_fast(timer) > (320 - rgb_matrix_config.speed))) { - index = random8_max(RGB_MATRIX_LED_COUNT); - timer = timer_read_fast(); + inline uint32_t interval(void) { + return 500 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); + } + + inline void rain_pixel(uint8_t led_index) { + if (!HAS_ANY_FLAGS(g_led_config.flags[led_index], params->flags)) { + return; + } + HSV hsv = (random8() & 2) ? (HSV){0, 0, 0} : (HSV){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(led_index, rgb.r, rgb.g, rgb.b); + wait_timer = g_rgb_timer + interval(); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { - hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); - index = RGB_MATRIX_LED_COUNT + 1; + if (g_rgb_timer > wait_timer) { + rain_pixel(random8_max(RGB_MATRIX_LED_COUNT)); } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/rainbow_beacon_anim.h b/quantum/rgb_matrix/animations/rainbow_beacon_anim.h index 3c7d8e59d2..bdcca5530f 100644 --- a/quantum/rgb_matrix/animations/rainbow_beacon_anim.h +++ b/quantum/rgb_matrix/animations/rainbow_beacon_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(RAINBOW_BEACON) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t RAINBOW_BEACON_math(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { +static HSV RAINBOW_BEACON_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * 2 * cos + (g_led_config.point[i].x - k_rgb_matrix_center.x) * 2 * sin) / 128; return hsv; } diff --git a/quantum/rgb_matrix/animations/rainbow_moving_chevron_anim.h b/quantum/rgb_matrix/animations/rainbow_moving_chevron_anim.h index 309ea82975..f7b8f6c2f3 100644 --- a/quantum/rgb_matrix/animations/rainbow_moving_chevron_anim.h +++ b/quantum/rgb_matrix/animations/rainbow_moving_chevron_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(RAINBOW_MOVING_CHEVRON) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t RAINBOW_MOVING_CHEVRON_math(hsv_t hsv, uint8_t i, uint8_t time) { +static HSV RAINBOW_MOVING_CHEVRON_math(HSV hsv, uint8_t i, uint8_t time) { hsv.h += abs8(g_led_config.point[i].y - k_rgb_matrix_center.y) + (g_led_config.point[i].x - time); return hsv; } diff --git a/quantum/rgb_matrix/animations/rainbow_pinwheels_anim.h b/quantum/rgb_matrix/animations/rainbow_pinwheels_anim.h index 5d2558d492..91e31ea8cc 100644 --- a/quantum/rgb_matrix/animations/rainbow_pinwheels_anim.h +++ b/quantum/rgb_matrix/animations/rainbow_pinwheels_anim.h @@ -2,7 +2,7 @@ RGB_MATRIX_EFFECT(RAINBOW_PINWHEELS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t RAINBOW_PINWHEELS_math(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { +static HSV RAINBOW_PINWHEELS_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) { hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * 3 * cos + (56 - abs8(g_led_config.point[i].x - k_rgb_matrix_center.x)) * 3 * sin) / 128; return hsv; } diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h index d4f79adb56..e8e1f6de04 100644 --- a/quantum/rgb_matrix/animations/raindrops_anim.h +++ b/quantum/rgb_matrix/animations/raindrops_anim.h @@ -2,42 +2,35 @@ RGB_MATRIX_EFFECT(RAINDROPS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void raindrops_set_color(uint8_t i, effect_params_t* params) { +static void raindrops_set_color(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; // Take the shortest path between hues - int16_t deltaH = ((hsv.h + 180) % 360 - hsv.h) / 4; + int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; if (deltaH > 127) { deltaH -= 256; } else if (deltaH < -127) { deltaH += 256; } - hsv.h += (deltaH * random8_max(3)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = rgb_matrix_config.hsv.h + (deltaH * (random8() & 0x03)); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool RAINDROPS(effect_params_t* params) { - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - - // Periodic trigger for LED change - if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0)) { - index = random8_max(RGB_MATRIX_LED_COUNT); - } - RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (params->init) { - for (uint8_t i = led_min; i < led_max; i++) { + if (!params->init) { + // Change one LED every tick, make sure speed is not 0 + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { + raindrops_set_color(random8_max(RGB_MATRIX_LED_COUNT), params); + } + } else { + for (int i = led_min; i < led_max; i++) { raindrops_set_color(i, params); } } - // Change LED once and set index out of range till next trigger - else if (led_min <= index && index < led_max) { - raindrops_set_color(index, params); - index = RGB_MATRIX_LED_COUNT + 1; - } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc index abc2adf2cc..a02238a2d1 100644 --- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc +++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc @@ -39,8 +39,7 @@ #include "solid_reactive_nexus.h" #include "splash_anim.h" #include "solid_splash_anim.h" -#include "starlight_smooth_anim.h" #include "starlight_anim.h" #include "starlight_dual_sat_anim.h" #include "starlight_dual_hue_anim.h" -#include "riverflow_anim.h" +#include "riverflow_anim.h" \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/riverflow_anim.h b/quantum/rgb_matrix/animations/riverflow_anim.h index e9ef25f70c..195d15986d 100644 --- a/quantum/rgb_matrix/animations/riverflow_anim.h +++ b/quantum/rgb_matrix/animations/riverflow_anim.h @@ -4,14 +4,18 @@ RGB_MATRIX_EFFECT(RIVERFLOW) // inspired by @PleasureTek's Massdrop Alt LED animation -hsv_t RIVERFLOW_math(hsv_t hsv, uint8_t i, uint8_t time) { - time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8); - hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - return hsv; -} - bool RIVERFLOW(effect_params_t* params) { - return effect_runner_i(params, &RIVERFLOW_math); + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + HSV hsv = rgb_matrix_config.hsv; + uint16_t time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy.h b/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy.h index d43f1c0d70..2ad0f22c28 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy.h @@ -1,6 +1,6 @@ #pragma once -typedef hsv_t (*dx_dy_f)(hsv_t hsv, int16_t dx, int16_t dy, uint8_t time); +typedef HSV (*dx_dy_f)(HSV hsv, int16_t dx, int16_t dy, uint8_t time); bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -10,7 +10,7 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) { RGB_MATRIX_TEST_LED_FLAGS(); int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy_dist.h b/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy_dist.h index 29fa42a0ed..bcae7c79b6 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy_dist.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_dx_dy_dist.h @@ -1,6 +1,6 @@ #pragma once -typedef hsv_t (*dx_dy_dist_f)(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time); +typedef HSV (*dx_dy_dist_f)(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint8_t time); bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -11,7 +11,7 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func) int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; uint8_t dist = sqrt16(dx * dx + dy * dy); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_i.h b/quantum/rgb_matrix/animations/runners/effect_runner_i.h index 670fd83ebe..b4de2992b6 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_i.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_i.h @@ -1,6 +1,6 @@ #pragma once -typedef hsv_t (*i_f)(hsv_t hsv, uint8_t i, uint8_t time); +typedef HSV (*i_f)(HSV hsv, uint8_t i, uint8_t time); bool effect_runner_i(effect_params_t* params, i_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -8,7 +8,7 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) { uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1)); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_reactive.h b/quantum/rgb_matrix/animations/runners/effect_runner_reactive.h index 958db170ae..f9584d7071 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_reactive.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_reactive.h @@ -2,7 +2,7 @@ #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED -typedef hsv_t (*reactive_f)(hsv_t hsv, uint16_t offset); +typedef HSV (*reactive_f)(HSV hsv, uint16_t offset); bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -20,7 +20,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) { } uint16_t offset = scale16by8(tick, qadd8(rgb_matrix_config.speed, 1)); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_reactive_splash.h b/quantum/rgb_matrix/animations/runners/effect_runner_reactive_splash.h index 2e18491450..41020eb47f 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_reactive_splash.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_reactive_splash.h @@ -2,7 +2,7 @@ #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED -typedef hsv_t (*reactive_splash_f)(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick); +typedef HSV (*reactive_splash_f)(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick); bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, reactive_splash_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -10,8 +10,8 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react uint8_t count = g_last_hit_tracker.count; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - hsv_t hsv = rgb_matrix_config.hsv; - hsv.v = 0; + HSV hsv = rgb_matrix_config.hsv; + hsv.v = 0; for (uint8_t j = start; j < count; j++) { int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j]; int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j]; @@ -19,8 +19,8 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react uint16_t tick = scale16by8(g_last_hit_tracker.tick[j], qadd8(rgb_matrix_config.speed, 1)); hsv = effect_func(hsv, dx, dy, dist, tick); } - hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/runners/effect_runner_sin_cos_i.h b/quantum/rgb_matrix/animations/runners/effect_runner_sin_cos_i.h index b96530aa5f..7776491d51 100644 --- a/quantum/rgb_matrix/animations/runners/effect_runner_sin_cos_i.h +++ b/quantum/rgb_matrix/animations/runners/effect_runner_sin_cos_i.h @@ -1,6 +1,6 @@ #pragma once -typedef hsv_t (*sin_cos_i_f)(hsv_t hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time); +typedef HSV (*sin_cos_i_f)(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time); bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) { RGB_MATRIX_USE_LIMITS(led_min, led_max); @@ -10,7 +10,7 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) { int8_t sin_value = sin8(time) - 128; for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); - rgb_t rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/solid_color_anim.h b/quantum/rgb_matrix/animations/solid_color_anim.h index 82b0007df9..c8762dcbc2 100644 --- a/quantum/rgb_matrix/animations/solid_color_anim.h +++ b/quantum/rgb_matrix/animations/solid_color_anim.h @@ -4,7 +4,7 @@ RGB_MATRIX_EFFECT(SOLID_COLOR) bool SOLID_COLOR(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); - rgb_t rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); for (uint8_t i = led_min; i < led_max; i++) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); diff --git a/quantum/rgb_matrix/animations/solid_reactive_anim.h b/quantum/rgb_matrix/animations/solid_reactive_anim.h index d11dda50c3..e18ffb5f2b 100644 --- a/quantum/rgb_matrix/animations/solid_reactive_anim.h +++ b/quantum/rgb_matrix/animations/solid_reactive_anim.h @@ -3,8 +3,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_math(hsv_t hsv, uint16_t offset) { - if (offset > 255) offset = 255; +static HSV SOLID_REACTIVE_math(HSV hsv, uint16_t offset) { # ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4); # endif diff --git a/quantum/rgb_matrix/animations/solid_reactive_cross.h b/quantum/rgb_matrix/animations/solid_reactive_cross.h index e52a7d8481..a18d6b03dd 100644 --- a/quantum/rgb_matrix/animations/solid_reactive_cross.h +++ b/quantum/rgb_matrix/animations/solid_reactive_cross.h @@ -11,7 +11,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTICROSS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_CROSS_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV SOLID_REACTIVE_CROSS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick + dist; dx = dx < 0 ? dx * -1 : dx; dy = dy < 0 ? dy * -1 : dy; diff --git a/quantum/rgb_matrix/animations/solid_reactive_nexus.h b/quantum/rgb_matrix/animations/solid_reactive_nexus.h index 471a2682ca..53cc008616 100644 --- a/quantum/rgb_matrix/animations/solid_reactive_nexus.h +++ b/quantum/rgb_matrix/animations/solid_reactive_nexus.h @@ -11,7 +11,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTINEXUS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_NEXUS_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV SOLID_REACTIVE_NEXUS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick - dist; if (effect > 255) effect = 255; if (dist > 72) effect = 255; diff --git a/quantum/rgb_matrix/animations/solid_reactive_simple_anim.h b/quantum/rgb_matrix/animations/solid_reactive_simple_anim.h index 22ba42296f..7f4e48747a 100644 --- a/quantum/rgb_matrix/animations/solid_reactive_simple_anim.h +++ b/quantum/rgb_matrix/animations/solid_reactive_simple_anim.h @@ -3,8 +3,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_SIMPLE) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_SIMPLE_math(hsv_t hsv, uint16_t offset) { - if (offset > 255) offset = 255; +static HSV SOLID_REACTIVE_SIMPLE_math(HSV hsv, uint16_t offset) { # ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4); # endif diff --git a/quantum/rgb_matrix/animations/solid_reactive_wide.h b/quantum/rgb_matrix/animations/solid_reactive_wide.h index b780c13d27..feca126648 100644 --- a/quantum/rgb_matrix/animations/solid_reactive_wide.h +++ b/quantum/rgb_matrix/animations/solid_reactive_wide.h @@ -11,7 +11,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTIWIDE) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static hsv_t SOLID_REACTIVE_WIDE_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +static HSV SOLID_REACTIVE_WIDE_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick + dist * 5; if (effect > 255) effect = 255; # ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE diff --git a/quantum/rgb_matrix/animations/solid_splash_anim.h b/quantum/rgb_matrix/animations/solid_splash_anim.h index 839ab05b38..77d6f8c5eb 100644 --- a/quantum/rgb_matrix/animations/solid_splash_anim.h +++ b/quantum/rgb_matrix/animations/solid_splash_anim.h @@ -11,7 +11,7 @@ RGB_MATRIX_EFFECT(SOLID_MULTISPLASH) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -hsv_t SOLID_SPLASH_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +HSV SOLID_SPLASH_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick - dist; if (effect > 255) effect = 255; hsv.v = qadd8(hsv.v, 255 - effect); diff --git a/quantum/rgb_matrix/animations/splash_anim.h b/quantum/rgb_matrix/animations/splash_anim.h index a28cadb9f4..06459e1b0a 100644 --- a/quantum/rgb_matrix/animations/splash_anim.h +++ b/quantum/rgb_matrix/animations/splash_anim.h @@ -11,7 +11,7 @@ RGB_MATRIX_EFFECT(MULTISPLASH) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -hsv_t SPLASH_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { +HSV SPLASH_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) { uint16_t effect = tick - dist; if (effect > 255) effect = 255; hsv.h += effect; diff --git a/quantum/rgb_matrix/animations/starlight_anim.h b/quantum/rgb_matrix/animations/starlight_anim.h index c4f943c5ce..91626a4663 100644 --- a/quantum/rgb_matrix/animations/starlight_anim.h +++ b/quantum/rgb_matrix/animations/starlight_anim.h @@ -2,37 +2,30 @@ RGB_MATRIX_EFFECT(STARLIGHT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void set_starlight_color(uint8_t i, effect_params_t* params) { - if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - +void set_starlight_color(uint8_t i, effect_params_t* params) { uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool STARLIGHT(effect_params_t* params) { - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - - // Periodic trigger for LED change - if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { - index = random8_max(RGB_MATRIX_LED_COUNT); + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); + set_starlight_color(rand_led, params); + } + return false; } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (params->init) { - for (uint8_t i = led_min; i < led_max; i++) { - set_starlight_color(i, params); - } - } - // Change LED once and set index out of range till next trigger - else if (led_min <= index && index < led_max) { - set_starlight_color(index, params); - index = RGB_MATRIX_LED_COUNT + 1; + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + set_starlight_color(i, params); } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT +#endif // ENABLE_RGB_MATRIX_STARLIGHT \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h index 276b8c3fdf..5ef831476f 100644 --- a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h +++ b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h @@ -2,38 +2,31 @@ RGB_MATRIX_EFFECT(STARLIGHT_DUAL_HUE) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void set_starlight_dual_hue_color(uint8_t i, effect_params_t* params) { - if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - +void set_starlight_dual_hue_color(uint8_t i, effect_params_t* params) { uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - hsv.h = hsv.h + random8_max(31); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.h = hsv.h + random8_max((30 + 1 - -30) + -30); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool STARLIGHT_DUAL_HUE(effect_params_t* params) { - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - - // Periodic trigger for LED change - if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { - index = random8_max(RGB_MATRIX_LED_COUNT); + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); + set_starlight_dual_hue_color(rand_led, params); + } + return false; } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (params->init) { - for (uint8_t i = led_min; i < led_max; i++) { - set_starlight_dual_hue_color(i, params); - } - } - // Change LED once and set index out of range till next trigger - else if (led_min <= index && index < led_max) { - set_starlight_dual_hue_color(index, params); - index = RGB_MATRIX_LED_COUNT + 1; + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + set_starlight_dual_hue_color(i, params); } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h index e063658982..1994aba8a8 100644 --- a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h +++ b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h @@ -2,38 +2,31 @@ RGB_MATRIX_EFFECT(STARLIGHT_DUAL_SAT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void set_starlight_dual_sat_color(uint8_t i, effect_params_t* params) { - if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - +void set_starlight_dual_sat_color(uint8_t i, effect_params_t* params) { uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); - hsv_t hsv = rgb_matrix_config.hsv; + HSV hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - hsv.s = hsv.s + random8_max(31); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + hsv.s = hsv.s + random8_max((30 + 1 - -30) + -30); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool STARLIGHT_DUAL_SAT(effect_params_t* params) { - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - - // Periodic trigger for LED change - if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { - index = random8_max(RGB_MATRIX_LED_COUNT); + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); + set_starlight_dual_sat_color(rand_led, params); + } + return false; } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (params->init) { - for (uint8_t i = led_min; i < led_max; i++) { - set_starlight_dual_sat_color(i, params); - } - } - // Change LED once and set index out of range till next trigger - else if (led_min <= index && index < led_max) { - set_starlight_dual_sat_color(index, params); - index = RGB_MATRIX_LED_COUNT + 1; + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + set_starlight_dual_sat_color(i, params); } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/starlight_smooth_anim.h b/quantum/rgb_matrix/animations/starlight_smooth_anim.h deleted file mode 100644 index 5467ea0a59..0000000000 --- a/quantum/rgb_matrix/animations/starlight_smooth_anim.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2022 @art-was-here -// SPDX-License-Identifier: GPL-2.0+ - -#ifdef ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH -RGB_MATRIX_EFFECT(STARLIGHT_SMOOTH) -# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -static uint8_t phase_offsets[RGB_MATRIX_LED_COUNT]; - -hsv_t STARLIGHT_SMOOTH_math(hsv_t hsv, uint8_t i, uint8_t time) { - if (phase_offsets[i] == 0) { - phase_offsets[i] = random8(); - } - hsv.v = scale8(abs8(sin8((time + phase_offsets[i]) / 2) - 128) * 2, hsv.v); - return hsv; -} - -bool STARLIGHT_SMOOTH(effect_params_t* params) { - if (params->init) { - memset(phase_offsets, 0, sizeof(phase_offsets)); - } - return effect_runner_i(params, &STARLIGHT_SMOOTH_math); -} - -# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH diff --git a/quantum/rgb_matrix/animations/typing_heatmap_anim.h b/quantum/rgb_matrix/animations/typing_heatmap_anim.h index 0606738891..d09bdc4631 100644 --- a/quantum/rgb_matrix/animations/typing_heatmap_anim.h +++ b/quantum/rgb_matrix/animations/typing_heatmap_anim.h @@ -82,8 +82,8 @@ bool TYPING_HEATMAP(effect_params_t* params) { uint8_t val = g_rgb_frame_buffer[row][col]; if (!HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[row][col]], params->flags)) continue; - hsv_t hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(g_led_config.matrix_co[row][col], rgb.r, rgb.g, rgb.b); if (decrease_heatmap_values) { diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index ab0aa17512..70175f9d50 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -18,6 +18,7 @@ #include "rgb_matrix.h" #include "progmem.h" +#include "eeprom.h" #include "eeconfig.h" #include "keyboard.h" #include "sync_timer.h" @@ -34,7 +35,7 @@ const led_point_t k_rgb_matrix_center = {112, 32}; const led_point_t k_rgb_matrix_center = RGB_MATRIX_CENTER; #endif -__attribute__((weak)) rgb_t rgb_matrix_hsv_to_rgb(hsv_t hsv) { +__attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } @@ -47,9 +48,6 @@ __attribute__((weak)) rgb_t rgb_matrix_hsv_to_rgb(hsv_t hsv) { #define RGB_MATRIX_CUSTOM_EFFECT_IMPLS #include "rgb_matrix_effects.inc" -#ifdef COMMUNITY_MODULES_ENABLE -# include "rgb_matrix_community_modules.inc" -#endif #ifdef RGB_MATRIX_CUSTOM_KB # include "rgb_matrix_kb.inc" #endif @@ -90,9 +88,9 @@ static last_hit_t last_hit_buffer; const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; #endif -EECONFIG_DEBOUNCE_HELPER(rgb_matrix, rgb_matrix_config); +EECONFIG_DEBOUNCE_HELPER(rgb_matrix, EECONFIG_RGB_MATRIX, rgb_matrix_config); -void eeconfig_force_flush_rgb_matrix(void) { +void eeconfig_update_rgb_matrix(void) { eeconfig_flush_rgb_matrix(true); } @@ -100,7 +98,7 @@ void eeconfig_update_rgb_matrix_default(void) { dprintf("eeconfig_update_rgb_matrix_default\n"); rgb_matrix_config.enable = RGB_MATRIX_DEFAULT_ON; rgb_matrix_config.mode = RGB_MATRIX_DEFAULT_MODE; - rgb_matrix_config.hsv = (hsv_t){RGB_MATRIX_DEFAULT_HUE, RGB_MATRIX_DEFAULT_SAT, RGB_MATRIX_DEFAULT_VAL}; + rgb_matrix_config.hsv = (HSV){RGB_MATRIX_DEFAULT_HUE, RGB_MATRIX_DEFAULT_SAT, RGB_MATRIX_DEFAULT_VAL}; rgb_matrix_config.speed = RGB_MATRIX_DEFAULT_SPD; rgb_matrix_config.flags = RGB_MATRIX_DEFAULT_FLAGS; eeconfig_flush_rgb_matrix(true); @@ -109,11 +107,7 @@ void eeconfig_update_rgb_matrix_default(void) { void eeconfig_debug_rgb_matrix(void) { dprintf("rgb_matrix_config EEPROM\n"); dprintf("rgb_matrix_config.enable = %d\n", rgb_matrix_config.enable); -#ifdef RGB_MATRIX_MODE_NAME_ENABLE - dprintf("rgb_matrix_config.mode = %d (%s)\n", rgb_matrix_config.mode, rgb_matrix_get_mode_name(rgb_matrix_config.mode)); -#else dprintf("rgb_matrix_config.mode = %d\n", rgb_matrix_config.mode); -#endif // RGB_MATRIX_MODE_NAME_ENABLE dprintf("rgb_matrix_config.hsv.h = %d\n", rgb_matrix_config.hsv.h); dprintf("rgb_matrix_config.hsv.s = %d\n", rgb_matrix_config.hsv.s); dprintf("rgb_matrix_config.hsv.v = %d\n", rgb_matrix_config.hsv.v); @@ -149,17 +143,8 @@ void rgb_matrix_update_pwm_buffers(void) { rgb_matrix_driver.flush(); } -__attribute__((weak)) int rgb_matrix_led_index(int index) { -#if defined(RGB_MATRIX_SPLIT) - if (!is_keyboard_left() && index >= k_rgb_matrix_split[0]) { - return index - k_rgb_matrix_split[0]; - } -#endif - return index; -} - void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - rgb_matrix_driver.set_color(rgb_matrix_led_index(index), red, green, blue); + rgb_matrix_driver.set_color(index, red, green, blue); } void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { @@ -317,15 +302,6 @@ static void rgb_task_render(uint8_t effect) { #include "rgb_matrix_effects.inc" #undef RGB_MATRIX_EFFECT -#ifdef COMMUNITY_MODULES_ENABLE -# define RGB_MATRIX_EFFECT(name, ...) \ - case RGB_MATRIX_COMMUNITY_MODULE_##name: \ - rendering = name(&rgb_effect_params); \ - break; -# include "rgb_matrix_community_modules.inc" -# undef RGB_MATRIX_EFFECT -#endif - #if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER) # define RGB_MATRIX_EFFECT(name, ...) \ case RGB_MATRIX_CUSTOM_##name: \ @@ -409,12 +385,7 @@ void rgb_matrix_task(void) { } } -__attribute__((weak)) bool rgb_matrix_indicators_modules(void) { - return true; -} - void rgb_matrix_indicators(void) { - rgb_matrix_indicators_modules(); rgb_matrix_indicators_kb(); } @@ -433,6 +404,7 @@ struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter) { limits.led_min_index = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); limits.led_max_index = limits.led_min_index + RGB_MATRIX_LED_PROCESS_LIMIT; if (limits.led_max_index > RGB_MATRIX_LED_COUNT) limits.led_max_index = RGB_MATRIX_LED_COUNT; + uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0]; if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0]; # else @@ -442,8 +414,9 @@ struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter) { # endif #else # if defined(RGB_MATRIX_SPLIT) - limits.led_min_index = 0; - limits.led_max_index = RGB_MATRIX_LED_COUNT; + limits.led_min_index = 0; + limits.led_max_index = RGB_MATRIX_LED_COUNT; + const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0]; if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0]; # else @@ -454,10 +427,6 @@ struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter) { return limits; } -__attribute__((weak)) bool rgb_matrix_indicators_advanced_modules(uint8_t led_min, uint8_t led_max) { - return true; -} - void rgb_matrix_indicators_advanced(effect_params_t *params) { /* special handling is needed for "params->iter", since it's already been incremented. * Could move the invocations to rgb_task_render, but then it's missing a few checks @@ -465,7 +434,6 @@ void rgb_matrix_indicators_advanced(effect_params_t *params) { * rgb_task_render, right before the iter++ line. */ RGB_MATRIX_USE_LIMITS_ITER(min, max, params->iter - 1); - rgb_matrix_indicators_advanced_modules(min, max); rgb_matrix_indicators_advanced_kb(min, max); } @@ -564,11 +532,7 @@ void rgb_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { } rgb_task_state = STARTING; eeconfig_flag_rgb_matrix(write_to_eeprom); -#ifdef RGB_MATRIX_MODE_NAME_ENABLE - dprintf("rgb matrix mode [%s]: %u (%s)\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)rgb_matrix_config.mode, rgb_matrix_get_mode_name(rgb_matrix_config.mode)); -#else - dprintf("rgb matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)rgb_matrix_config.mode); -#endif // RGB_MATRIX_MODE_NAME_ENABLE + dprintf("rgb matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.mode); } void rgb_matrix_mode_noeeprom(uint8_t mode) { rgb_matrix_mode_eeprom_helper(mode, false); @@ -620,7 +584,7 @@ void rgb_matrix_sethsv(uint16_t hue, uint8_t sat, uint8_t val) { rgb_matrix_sethsv_eeprom_helper(hue, sat, val, true); } -hsv_t rgb_matrix_get_hsv(void) { +HSV rgb_matrix_get_hsv(void) { return rgb_matrix_config.hsv; } uint8_t rgb_matrix_get_hue(void) { @@ -746,49 +710,3 @@ void rgb_matrix_set_flags(led_flags_t flags) { void rgb_matrix_set_flags_noeeprom(led_flags_t flags) { rgb_matrix_set_flags_eeprom_helper(flags, false); } - -//---------------------------------------------------------- -// RGB Matrix naming -#undef RGB_MATRIX_EFFECT -#ifdef RGB_MATRIX_MODE_NAME_ENABLE -const char *rgb_matrix_get_mode_name(uint8_t mode) { - switch (mode) { - case RGB_MATRIX_NONE: - return "NONE"; - -# define RGB_MATRIX_EFFECT(name, ...) \ - case RGB_MATRIX_##name: \ - return #name; -# include "rgb_matrix_effects.inc" -# undef RGB_MATRIX_EFFECT - -# ifdef COMMUNITY_MODULES_ENABLE -# define RGB_MATRIX_EFFECT(name, ...) \ - case RGB_MATRIX_COMMUNITY_MODULE_##name: \ - return #name; -# include "rgb_matrix_community_modules.inc" -# undef RGB_MATRIX_EFFECT -# endif // COMMUNITY_MODULES_ENABLE - -# if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER) -# define RGB_MATRIX_EFFECT(name, ...) \ - case RGB_MATRIX_CUSTOM_##name: \ - return #name; - -# ifdef RGB_MATRIX_CUSTOM_KB -# include "rgb_matrix_kb.inc" -# endif // RGB_MATRIX_CUSTOM_KB - -# ifdef RGB_MATRIX_CUSTOM_USER -# include "rgb_matrix_user.inc" -# endif // RGB_MATRIX_CUSTOM_USER - -# undef RGB_MATRIX_EFFECT -# endif // RGB_MATRIX_CUSTOM_KB || RGB_MATRIX_CUSTOM_USER - - default: - return "UNKNOWN"; - } -} -# undef RGB_MATRIX_EFFECT -#endif // RGB_MATRIX_MODE_NAME_ENABLE diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index a91dded4a8..ceb3185d1a 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -123,12 +123,6 @@ enum rgb_matrix_effects { #include "rgb_matrix_effects.inc" #undef RGB_MATRIX_EFFECT -#ifdef COMMUNITY_MODULES_ENABLE -# define RGB_MATRIX_EFFECT(name, ...) RGB_MATRIX_COMMUNITY_MODULE_##name, -# include "rgb_matrix_community_modules.inc" -# undef RGB_MATRIX_EFFECT -#endif - #if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER) # define RGB_MATRIX_EFFECT(name, ...) RGB_MATRIX_CUSTOM_##name, # ifdef RGB_MATRIX_CUSTOM_KB @@ -146,13 +140,11 @@ enum rgb_matrix_effects { }; void eeconfig_update_rgb_matrix_default(void); -void eeconfig_force_flush_rgb_matrix(void); +void eeconfig_update_rgb_matrix(void); uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); -int rgb_matrix_led_index(int index); - void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue); @@ -192,7 +184,7 @@ void rgb_matrix_step_reverse(void); void rgb_matrix_step_reverse_noeeprom(void); void rgb_matrix_sethsv(uint16_t hue, uint8_t sat, uint8_t val); void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); -hsv_t rgb_matrix_get_hsv(void); +HSV rgb_matrix_get_hsv(void); uint8_t rgb_matrix_get_hue(void); uint8_t rgb_matrix_get_sat(void); uint8_t rgb_matrix_get_val(void); @@ -218,14 +210,9 @@ void rgb_matrix_decrease_speed_noeeprom(void); led_flags_t rgb_matrix_get_flags(void); void rgb_matrix_set_flags(led_flags_t flags); void rgb_matrix_set_flags_noeeprom(led_flags_t flags); -void rgb_matrix_update_pwm_buffers(void); - -#ifdef RGB_MATRIX_MODE_NAME_ENABLE -const char *rgb_matrix_get_mode_name(uint8_t mode); -#endif // RGB_MATRIX_MODE_NAME_ENABLE #ifndef RGBLIGHT_ENABLE -# define eeconfig_update_rgblight_current eeconfig_force_flush_rgb_matrix +# define eeconfig_update_rgblight_current eeconfig_update_rgb_matrix # define rgblight_reload_from_eeprom rgb_matrix_reload_from_eeprom # define rgblight_toggle rgb_matrix_toggle # define rgblight_toggle_noeeprom rgb_matrix_toggle_noeeprom diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 3b45e82cb9..bf5209a9d3 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -146,11 +146,61 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # pragma message "You need to use a custom driver, or re-implement the WS2812 driver to use a different configuration." # endif +// LED color buffer +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_COUNT]; +bool ws2812_dirty = false; + +static void init(void) { + ws2812_init(); + ws2812_dirty = false; +} + +static void flush(void) { + if (ws2812_dirty) { + ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_COUNT); + ws2812_dirty = false; + } +} + +// Set an led in the buffer to a color +static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { +# if defined(RGB_MATRIX_SPLIT) + const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; + if (!is_keyboard_left()) { + if (i >= k_rgb_matrix_split[0]) { + i -= k_rgb_matrix_split[0]; + } else { + return; + } + } else if (i >= k_rgb_matrix_split[0]) { + return; + } +# endif + + if (rgb_matrix_ws2812_array[i].r == r && rgb_matrix_ws2812_array[i].g == g && rgb_matrix_ws2812_array[i].b == b) { + return; + } + + ws2812_dirty = true; + rgb_matrix_ws2812_array[i].r = r; + rgb_matrix_ws2812_array[i].g = g; + rgb_matrix_ws2812_array[i].b = b; +# ifdef WS2812_RGBW + convert_rgb_to_rgbw(&rgb_matrix_ws2812_array[i]); +# endif +} + +static void setled_all(uint8_t r, uint8_t g, uint8_t b) { + for (int i = 0; i < ARRAY_SIZE(rgb_matrix_ws2812_array); i++) { + setled(i, r, g, b); + } +} + const rgb_matrix_driver_t rgb_matrix_driver = { - .init = ws2812_init, - .flush = ws2812_flush, - .set_color = ws2812_set_color, - .set_color_all = ws2812_set_color_all, + .init = init, + .flush = flush, + .set_color = setled, + .set_color_all = setled_all, }; #endif diff --git a/quantum/rgb_matrix/rgb_matrix_types.h b/quantum/rgb_matrix/rgb_matrix_types.h index 0115edee6a..0a3fd7cc0d 100644 --- a/quantum/rgb_matrix/rgb_matrix_types.h +++ b/quantum/rgb_matrix/rgb_matrix_types.h @@ -18,8 +18,6 @@ #include #include - -#include "compiler_support.h" #include "color.h" #include "util.h" @@ -75,15 +73,15 @@ typedef struct PACKED { uint8_t flags[RGB_MATRIX_LED_COUNT]; } led_config_t; -typedef union rgb_config_t { +typedef union { uint64_t raw; struct PACKED { uint8_t enable : 2; uint8_t mode : 6; - hsv_t hsv; + HSV hsv; uint8_t speed; led_flags_t flags; }; } rgb_config_t; -STATIC_ASSERT(sizeof(rgb_config_t) == sizeof(uint64_t), "RGB Matrix EECONFIG out of spec."); +_Static_assert(sizeof(rgb_config_t) == sizeof(uint64_t), "RGB Matrix EECONFIG out of spec."); diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index bfccb472b5..b0f2dfdc1d 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -24,7 +24,9 @@ #include "util.h" #include "led_tables.h" #include -#include "eeconfig.h" +#ifdef EEPROM_ENABLE +# include "eeprom.h" +#endif #ifdef RGBLIGHT_SPLIT /* for split keyboard */ @@ -113,6 +115,11 @@ static bool pre_suspend_enabled; animation_status_t animation_status = {}; #endif +#ifndef LED_ARRAY +rgb_led_t led[RGBLIGHT_LED_COUNT]; +# define LED_ARRAY led +#endif + #ifdef RGBLIGHT_LAYERS rgblight_segment_t const *const *rgblight_layers = NULL; @@ -134,30 +141,27 @@ void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) { rgblight_ranges.effect_num_leds = num_leds; } -__attribute__((weak)) rgb_t rgblight_hsv_to_rgb(hsv_t hsv) { +__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } -uint8_t rgblight_led_index(uint8_t index) { -#if defined(RGBLIGHT_LED_MAP) - return pgm_read_byte(&led_map[index]) - rgblight_ranges.clipping_start_pos; -#else - return index - rgblight_ranges.clipping_start_pos; +void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) { + led1->r = r; + led1->g = g; + led1->b = b; +#ifdef WS2812_RGBW + led1->w = 0; #endif } -void setrgb(uint8_t r, uint8_t g, uint8_t b, int index) { - rgblight_driver.set_color(rgblight_led_index(index), r, g, b); +void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { + HSV hsv = {hue, sat, val}; + RGB rgb = rgblight_hsv_to_rgb(hsv); + setrgb(rgb.r, rgb.g, rgb.b, led1); } -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, int index) { - hsv_t hsv = {hue, sat, val}; - rgb_t rgb = rgblight_hsv_to_rgb(hsv); - setrgb(rgb.r, rgb.g, rgb.b, index); -} - -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, int index) { - sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, index); +void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { + sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); } void rgblight_check_config(void) { @@ -174,9 +178,24 @@ void rgblight_check_config(void) { } } -void eeconfig_update_rgblight_current(void) { +uint64_t eeconfig_read_rgblight(void) { +#ifdef EEPROM_ENABLE + return (uint64_t)((eeprom_read_dword(EECONFIG_RGBLIGHT)) | ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32)); +#else + return 0; +#endif +} + +void eeconfig_update_rgblight(uint64_t val) { +#ifdef EEPROM_ENABLE rgblight_check_config(); - eeconfig_update_rgblight(&rgblight_config); + eeprom_update_dword(EECONFIG_RGBLIGHT, val & 0xFFFFFFFF); + eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (val >> 32) & 0xFF); +#endif +} + +void eeconfig_update_rgblight_current(void) { + eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_update_rgblight_default(void) { @@ -188,7 +207,7 @@ void eeconfig_update_rgblight_default(void) { rgblight_config.val = RGBLIGHT_DEFAULT_VAL; rgblight_config.speed = RGBLIGHT_DEFAULT_SPD; RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_debug_rgblight(void) { @@ -211,12 +230,12 @@ void rgblight_init(void) { } dprintf("rgblight_init start!\n"); - eeconfig_read_rgblight(&rgblight_config); + rgblight_config.raw = eeconfig_read_rgblight(); RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; if (!rgblight_config.mode) { dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); eeconfig_update_rgblight_default(); - eeconfig_read_rgblight(&rgblight_config); + rgblight_config.raw = eeconfig_read_rgblight(); } rgblight_check_config(); @@ -235,7 +254,7 @@ void rgblight_init(void) { void rgblight_reload_from_eeprom(void) { /* Reset back to what we have in eeprom */ - eeconfig_read_rgblight(&rgblight_config); + rgblight_config.raw = eeconfig_read_rgblight(); RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; rgblight_check_config(); eeconfig_debug_rgblight(); // display current eeprom values @@ -324,7 +343,7 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { } RGBLIGHT_SPLIT_SET_CHANGE_MODE; if (write_to_eeprom) { - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode); } else { dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); @@ -369,7 +388,7 @@ void rgblight_toggle_noeeprom(void) { void rgblight_enable(void) { rgblight_config.enable = 1; // No need to update EEPROM here. rgblight_mode() will do that, actually - // eeconfig_update_rgblight(&rgblight_config); + // eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_mode(rgblight_config.mode); } @@ -382,7 +401,7 @@ void rgblight_enable_noeeprom(void) { void rgblight_disable(void) { rgblight_config.enable = 0; - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_timer_disable(); RGBLIGHT_SPLIT_SET_CHANGE_MODE; @@ -470,7 +489,7 @@ void rgblight_increase_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed < 3) rgblight_config.speed++; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED? if (write_to_eeprom) { - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); } } void rgblight_increase_speed(void) { @@ -484,7 +503,7 @@ void rgblight_decrease_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed > 0) rgblight_config.speed--; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?? if (write_to_eeprom) { - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); } } void rgblight_decrease_speed(void) { @@ -496,8 +515,9 @@ void rgblight_decrease_speed_noeeprom(void) { void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { if (rgblight_config.enable) { - rgb_t rgb = rgblight_hsv_to_rgb((hsv_t){hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val}); - rgblight_setrgb(rgb.r, rgb.g, rgb.b); + rgb_led_t tmp_led; + sethsv(hue, sat, val, &tmp_led); + rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } } @@ -511,12 +531,13 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { // same static color + rgb_led_t tmp_led; #ifdef RGBLIGHT_LAYERS_RETAIN_VAL // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val rgblight_config.val = val; #endif - rgb_t rgb = rgblight_hsv_to_rgb((hsv_t){hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val}); - rgblight_setrgb(rgb.r, rgb.g, rgb.b); + sethsv(hue, sat, val, &tmp_led); + rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } else { // all LEDs in same color if (1 == 0) { // dummy @@ -554,7 +575,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w _hue = hue - _hue; } dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, i + rgblight_ranges.effect_start_pos); + sethsv(_hue, sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } # ifdef RGBLIGHT_LAYERS_RETAIN_VAL // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val @@ -568,7 +589,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_config.sat = sat; rgblight_config.val = val; if (write_to_eeprom) { - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } else { dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); @@ -591,7 +612,7 @@ uint8_t rgblight_get_speed(void) { void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { rgblight_config.speed = speed; if (write_to_eeprom) { - eeconfig_update_rgblight(&rgblight_config); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed); } else { dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed); @@ -618,8 +639,8 @@ uint8_t rgblight_get_val(void) { return rgblight_config.val; } -hsv_t rgblight_get_hsv(void) { - return (hsv_t){rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; +HSV rgblight_get_hsv(void) { + return (HSV){rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; } void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { @@ -628,7 +649,12 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { } for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - rgblight_driver.set_color(rgblight_led_index(i), r, g, b); + led[i].r = r; + led[i].g = g; + led[i].b = b; +#ifdef WS2812_RGBW + led[i].w = 0; +#endif } rgblight_set(); } @@ -638,7 +664,12 @@ void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) { return; } - rgblight_driver.set_color(rgblight_led_index(index), r, g, b); + led[index].r = r; + led[index].g = g; + led[index].b = b; +#ifdef WS2812_RGBW + led[index].w = 0; +#endif rgblight_set(); } @@ -647,8 +678,9 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { return; } - rgb_t rgb = rgblight_hsv_to_rgb((hsv_t){hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val}); - rgblight_setrgb_at(rgb.r, rgb.g, rgb.b, index); + rgb_led_t tmp_led; + sethsv(hue, sat, val, &tmp_led); + rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); } #if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) || defined(RGBLIGHT_EFFECT_TWINKLE) @@ -669,7 +701,12 @@ void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8 } for (uint8_t i = start; i < end; i++) { - rgblight_driver.set_color(rgblight_led_index(i), r, g, b); + led[i].r = r; + led[i].g = g; + led[i].b = b; +#ifdef WS2812_RGBW + led[i].w = 0; +#endif } rgblight_set(); } @@ -679,8 +716,9 @@ void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, return; } - rgb_t rgb = rgblight_hsv_to_rgb((hsv_t){hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val}); - rgblight_setrgb_range(rgb.r, rgb.g, rgb.b, start, end); + rgb_led_t tmp_led; + sethsv(hue, sat, val, &tmp_led); + rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end); } #ifndef RGBLIGHT_SPLIT @@ -747,12 +785,12 @@ static void rgblight_layers_write(void) { break; // No more segments } // Write segment.count LEDs - int limit = MIN(segment.index + segment.count, RGBLIGHT_LED_COUNT); - for (int i = segment.index; i < limit; i++) { + rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLIGHT_LED_COUNT)]; + for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { # ifdef RGBLIGHT_LAYERS_RETAIN_VAL - sethsv(segment.hue, segment.sat, current_val, i); + sethsv(segment.hue, segment.sat, current_val, led_ptr); # else - sethsv(segment.hue, segment.sat, segment.val, i); + sethsv(segment.hue, segment.sat, segment.val, led_ptr); # endif } segment_ptr++; @@ -859,9 +897,17 @@ void rgblight_wakeup(void) { #endif void rgblight_set(void) { + rgb_led_t *start_led; + uint8_t num_leds = rgblight_ranges.clipping_num_leds; + if (!rgblight_config.enable) { for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - rgblight_driver.set_color(rgblight_led_index(i), 0, 0, 0); + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; +#ifdef WS2812_RGBW + led[i].w = 0; +#endif } } @@ -877,7 +923,22 @@ void rgblight_set(void) { } #endif - rgblight_driver.flush(); +#ifdef RGBLIGHT_LED_MAP + rgb_led_t led0[RGBLIGHT_LED_COUNT]; + for (uint8_t i = 0; i < RGBLIGHT_LED_COUNT; i++) { + led0[i] = led[pgm_read_byte(&led_map[i])]; + } + start_led = led0 + rgblight_ranges.clipping_start_pos; +#else + start_led = led + rgblight_ranges.clipping_start_pos; +#endif + +#ifdef WS2812_RGBW + for (uint8_t i = 0; i < num_leds; i++) { + convert_rgb_to_rgbw(&start_led[i]); + } +#endif + rgblight_driver.setleds(start_led, num_leds); } #ifdef RGBLIGHT_SPLIT @@ -1161,7 +1222,7 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, i + rgblight_ranges.effect_start_pos); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1198,8 +1259,13 @@ void rgblight_effect_snake(animation_status_t *anim) { # endif for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - rgblight_driver.set_color(rgblight_led_index(i + rgblight_ranges.effect_start_pos), 0, 0, 0); - + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; + ledp->r = 0; + ledp->g = 0; + ledp->b = 0; +# ifdef WS2812_RGBW + ledp->w = 0; +# endif for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) { k = pos + j * increment; if (k > RGBLIGHT_LED_COUNT) { @@ -1209,7 +1275,7 @@ void rgblight_effect_snake(animation_status_t *anim) { k = k + rgblight_ranges.effect_num_leds; } if (i == k) { - sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), i + rgblight_ranges.effect_start_pos); + sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp); } } } @@ -1254,16 +1320,26 @@ void rgblight_effect_knight(animation_status_t *anim) { # endif // Set all the LEDs to 0 for (i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - rgblight_driver.set_color(rgblight_led_index(i), 0, 0, 0); + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; +# ifdef WS2812_RGBW + led[i].w = 0; +# endif } // Determine which LEDs should be lit up for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) { cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; if (i >= low_bound && i <= high_bound) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, cur); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[cur]); } else { - rgblight_driver.set_color(rgblight_led_index(cur), 0, 0, 0); + led[cur].r = 0; + led[cur].g = 0; + led[cur].b = 0; +# ifdef WS2812_RGBW + led[cur].w = 0; +# endif } } rgblight_set(); @@ -1308,7 +1384,7 @@ void rgblight_effect_christmas(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue; - sethsv(local_hue, rgblight_config.sat, val, i + rgblight_ranges.effect_start_pos); + sethsv(local_hue, rgblight_config.sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1325,25 +1401,43 @@ void rgblight_effect_christmas(animation_status_t *anim) { __attribute__((weak)) const uint16_t RGBLED_RGBTEST_INTERVALS[] PROGMEM = {1024}; void rgblight_effect_rgbtest(animation_status_t *anim) { - uint8_t val = rgblight_get_val(); + static uint8_t maxval = 0; + uint8_t g; + uint8_t r; + uint8_t b; - uint8_t r = anim->pos & 1 ? val : 0; - uint8_t g = anim->pos & 2 ? val : 0; - uint8_t b = anim->pos & 4 ? val : 0; + if (maxval == 0) { + rgb_led_t tmp_led; + sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led); + maxval = tmp_led.r; + } + g = r = b = 0; + switch (anim->pos) { + case 0: + r = maxval; + break; + case 1: + g = maxval; + break; + case 2: + b = maxval; + break; + } rgblight_setrgb(r, g, b); - anim->pos = (anim->pos + 1) % 8; + anim->pos = (anim->pos + 1) % 3; } #endif #ifdef RGBLIGHT_EFFECT_ALTERNATING void rgblight_effect_alternating(animation_status_t *anim) { for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i + rgblight_ranges.effect_start_pos); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i + rgblight_ranges.effect_start_pos); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else { - sethsv(rgblight_config.hue, rgblight_config.sat, 0, i + rgblight_ranges.effect_start_pos); + sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp); } } rgblight_set(); @@ -1355,7 +1449,7 @@ void rgblight_effect_alternating(animation_status_t *anim) { __attribute__((weak)) const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {30, 15, 5}; typedef struct PACKED { - hsv_t hsv; + HSV hsv; uint8_t life; uint8_t max_life; } TwinkleState; @@ -1381,7 +1475,7 @@ void rgblight_effect_twinkle(animation_status_t *anim) { for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { TwinkleState *t = &(led_twinkle_state[i]); - hsv_t * c = &(t->hsv); + HSV * c = &(t->hsv); if (!random_color) { c->h = rgblight_config.hue; @@ -1410,7 +1504,8 @@ void rgblight_effect_twinkle(animation_status_t *anim) { // This LED is off, and was NOT selected to start brightening } - sethsv(c->h, c->s, c->v, i + rgblight_ranges.effect_start_pos); + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; + sethsv(c->h, c->s, c->v, ledp); } rgblight_set(); diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index c061e71895..0ed67ff6e3 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -16,8 +16,6 @@ #pragma once -#include "compiler_support.h" - // DEPRECATED DEFINES - DO NOT USE #if defined(RGBLED_NUM) # define RGBLIGHT_LED_COUNT RGBLED_NUM @@ -170,6 +168,8 @@ enum RGBLIGHT_EFFECT_MODE { #include #include "rgblight_drivers.h" #include "progmem.h" +#include "eeconfig.h" +#include "ws2812.h" #include "color.h" #ifdef RGBLIGHT_LAYERS @@ -249,7 +249,7 @@ extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM; extern const uint8_t RGBLED_TWINKLE_INTERVALS[3] PROGMEM; extern bool is_rgblight_initialized; -typedef union rgblight_config_t { +typedef union { uint64_t raw; struct { bool enable : 1; @@ -262,7 +262,7 @@ typedef union rgblight_config_t { }; } rgblight_config_t; -STATIC_ASSERT(sizeof(rgblight_config_t) == sizeof(uint64_t), "RGB Light EECONFIG out of spec."); +_Static_assert(sizeof(rgblight_config_t) == sizeof(uint64_t), "RGB Light EECONFIG out of spec."); typedef struct _rgblight_status_t { uint8_t base_mode; @@ -363,7 +363,7 @@ uint8_t rgblight_get_hue(void); uint8_t rgblight_get_sat(void); uint8_t rgblight_get_val(void); bool rgblight_is_enabled(void); -hsv_t rgblight_get_hsv(void); +HSV rgblight_get_hsv(void); /* === qmk_firmware (core)internal Functions === */ void rgblight_init(void); @@ -371,6 +371,8 @@ void rgblight_suspend(void); void rgblight_wakeup(void); uint64_t rgblight_read_qword(void); void rgblight_update_qword(uint64_t qword); +uint64_t eeconfig_read_rgblight(void); +void eeconfig_update_rgblight(uint64_t val); void eeconfig_update_rgblight_current(void); void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); diff --git a/quantum/rgblight/rgblight_breathe_table.h b/quantum/rgblight/rgblight_breathe_table.h index 5a8181c7d4..147b1bf09a 100644 --- a/quantum/rgblight/rgblight_breathe_table.h +++ b/quantum/rgblight/rgblight_breathe_table.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/rgblight/rgblight_drivers.c b/quantum/rgblight/rgblight_drivers.c index ef986ee13c..76e9031aec 100644 --- a/quantum/rgblight/rgblight_drivers.c +++ b/quantum/rgblight/rgblight_drivers.c @@ -7,20 +7,24 @@ # include "ws2812.h" const rgblight_driver_t rgblight_driver = { - .init = ws2812_init, - .set_color = ws2812_set_color, - .set_color_all = ws2812_set_color_all, - .flush = ws2812_flush, + .init = ws2812_init, + .setleds = ws2812_setleds, }; #elif defined(RGBLIGHT_APA102) # include "apa102.h" +// Temporary shim +static void apa102_setleds(rgb_led_t *ledarray, uint16_t number_of_leds) { + for (uint16_t i = 0; i < number_of_leds; i++) { + apa102_set_color(i, ledarray[i].r, ledarray[i].g, ledarray[i].b); + } + apa102_flush(); +} + const rgblight_driver_t rgblight_driver = { - .init = apa102_init, - .set_color = apa102_set_color, - .set_color_all = apa102_set_color_all, - .flush = apa102_flush, + .init = apa102_init, + .setleds = apa102_setleds, }; #endif diff --git a/quantum/rgblight/rgblight_drivers.h b/quantum/rgblight/rgblight_drivers.h index 16fb4cebd6..af28b918e1 100644 --- a/quantum/rgblight/rgblight_drivers.h +++ b/quantum/rgblight/rgblight_drivers.h @@ -4,12 +4,11 @@ #pragma once #include +#include "color.h" typedef struct { void (*init)(void); - void (*set_color)(int index, uint8_t red, uint8_t green, uint8_t blue); - void (*set_color_all)(uint8_t red, uint8_t green, uint8_t blue); - void (*flush)(void); + void (*setleds)(rgb_led_t *ledarray, uint16_t number_of_leds); } rgblight_driver_t; extern const rgblight_driver_t rgblight_driver; diff --git a/quantum/send_string/send_string.c b/quantum/send_string/send_string.c index 602f24dabe..44c5ec5ab9 100644 --- a/quantum/send_string/send_string.c +++ b/quantum/send_string/send_string.c @@ -150,65 +150,48 @@ void send_string(const char *string) { send_string_with_delay(string, TAP_CODE_DELAY); } -void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval) { +void send_string_with_delay(const char *string, uint8_t interval) { while (1) { - char ascii_code = getter(arg); + char ascii_code = *string; if (!ascii_code) break; if (ascii_code == SS_QMK_PREFIX) { - ascii_code = getter(arg); + ascii_code = *(++string); if (ascii_code == SS_TAP_CODE) { // tap - uint8_t keycode = getter(arg); + uint8_t keycode = *(++string); tap_code(keycode); } else if (ascii_code == SS_DOWN_CODE) { // down - uint8_t keycode = getter(arg); + uint8_t keycode = *(++string); register_code(keycode); } else if (ascii_code == SS_UP_CODE) { // up - uint8_t keycode = getter(arg); + uint8_t keycode = *(++string); unregister_code(keycode); } else if (ascii_code == SS_DELAY_CODE) { // delay - int ms = 0; - ascii_code = getter(arg); + int ms = 0; + uint8_t keycode = *(++string); - while (isdigit(ascii_code)) { + while (isdigit(keycode)) { ms *= 10; - ms += ascii_code - '0'; - ascii_code = getter(arg); + ms += keycode - '0'; + keycode = *(++string); } wait_ms(ms); } wait_ms(interval); - - // if we had a delay that terminated with a null, we're done - if (ascii_code == 0) break; } else { send_char_with_delay(ascii_code, interval); } + + ++string; } } -typedef struct send_string_memory_state_t { - const char *string; -} send_string_memory_state_t; - -char send_string_get_next_ram(void *arg) { - send_string_memory_state_t *state = (send_string_memory_state_t *)arg; - char ret = *state->string; - state->string++; - return ret; -} - -void send_string_with_delay(const char *string, uint8_t interval) { - send_string_memory_state_t state = {string}; - send_string_with_delay_impl(send_string_get_next_ram, &state, interval); -} - void send_char(char ascii_code) { send_char_with_delay(ascii_code, TAP_CODE_DELAY); } @@ -314,15 +297,42 @@ void send_string_P(const char *string) { send_string_with_delay_P(string, TAP_CODE_DELAY); } -char send_string_get_next_progmem(void *arg) { - send_string_memory_state_t *state = (send_string_memory_state_t *)arg; - char ret = pgm_read_byte(state->string); - state->string++; - return ret; -} - void send_string_with_delay_P(const char *string, uint8_t interval) { - send_string_memory_state_t state = {string}; - send_string_with_delay_impl(send_string_get_next_progmem, &state, interval); + while (1) { + char ascii_code = pgm_read_byte(string); + if (!ascii_code) break; + if (ascii_code == SS_QMK_PREFIX) { + ascii_code = pgm_read_byte(++string); + + if (ascii_code == SS_TAP_CODE) { + // tap + uint8_t keycode = pgm_read_byte(++string); + tap_code(keycode); + } else if (ascii_code == SS_DOWN_CODE) { + // down + uint8_t keycode = pgm_read_byte(++string); + register_code(keycode); + } else if (ascii_code == SS_UP_CODE) { + // up + uint8_t keycode = pgm_read_byte(++string); + unregister_code(keycode); + } else if (ascii_code == SS_DELAY_CODE) { + // delay + int ms = 0; + uint8_t keycode = pgm_read_byte(++string); + + while (isdigit(keycode)) { + ms *= 10; + ms += keycode - '0'; + keycode = pgm_read_byte(++string); + } + wait_ms(ms); + } + } else { + send_char_with_delay(ascii_code, interval); + } + + ++string; + } } #endif diff --git a/quantum/send_string/send_string.h b/quantum/send_string/send_string.h index 4f91252075..f727ec507d 100644 --- a/quantum/send_string/send_string.h +++ b/quantum/send_string/send_string.h @@ -161,12 +161,4 @@ void send_string_with_delay_P(const char *string, uint8_t interval); */ #define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval) -/** - * \brief Actual implementation function that iterates and sends the string returned by the getter function. - * - * The getter assumes that the next byte is available to be read, and returns it. `arg` is passed in and can be whatever - * makes most sense for the getter -- each invocation of `getter` must advance its position in the source. - */ -void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval); - /** \} */ diff --git a/quantum/sequencer/tests/rules.mk b/quantum/sequencer/tests/rules.mk index 74b680ae31..611459e060 100644 --- a/quantum/sequencer/tests/rules.mk +++ b/quantum/sequencer/tests/rules.mk @@ -8,5 +8,4 @@ sequencer_SRC := \ $(QUANTUM_PATH)/sequencer/tests/midi_mock.c \ $(QUANTUM_PATH)/sequencer/tests/sequencer_tests.cpp \ $(QUANTUM_PATH)/sequencer/sequencer.c \ - $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 59b6009ec4..9af3c29d75 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -13,8 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -#include "compiler_support.h" #include "split_util.h" #include "matrix.h" #include "keyboard.h" @@ -64,7 +62,7 @@ static struct { } split_config; #if defined(SPLIT_USB_DETECT) -STATIC_ASSERT((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL."); +_Static_assert((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL."); static bool usb_bus_detected(void) { for (uint16_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { // This will return true if a USB connection has been established @@ -90,9 +88,9 @@ static inline bool usb_bus_detected(void) { # endif # endif # if defined(SPLIT_USB_DETECT) -STATIC_ASSERT(SPLIT_USB_TIMEOUT < SPLIT_WATCHDOG_TIMEOUT, "SPLIT_WATCHDOG_TIMEOUT should not be below SPLIT_USB_TIMEOUT."); +_Static_assert(SPLIT_USB_TIMEOUT < SPLIT_WATCHDOG_TIMEOUT, "SPLIT_WATCHDOG_TIMEOUT should not be below SPLIT_USB_TIMEOUT."); # endif -STATIC_ASSERT(SPLIT_MAX_CONNECTION_ERRORS > 0, "SPLIT_WATCHDOG_ENABLE requires SPLIT_MAX_CONNECTION_ERRORS be above 0 for a functioning disconnection check."); +_Static_assert(SPLIT_MAX_CONNECTION_ERRORS > 0, "SPLIT_WATCHDOG_ENABLE requires SPLIT_MAX_CONNECTION_ERRORS be above 0 for a functioning disconnection check."); static uint32_t split_watchdog_started = 0; static bool split_watchdog_done = false; diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index 6f4c4dc660..f83b05b6a6 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -15,4 +15,4 @@ bool is_transport_connected(void); void split_watchdog_update(bool done); void split_watchdog_task(void); -bool split_watchdog_check(void); +bool split_watchdog_check(void); \ No newline at end of file diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 694737868a..5bfbe2aec7 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -16,8 +16,6 @@ #pragma once -#include "compiler_support.h" - enum serial_transaction_id { #ifdef USE_I2C I2C_EXECUTE_CALLBACK, @@ -124,4 +122,4 @@ enum serial_transaction_id { }; // Ensure we only use 5 bits for transaction -STATIC_ASSERT(NUM_TOTAL_TRANSACTIONS <= (1 << 5), "Max number of usable transactions exceeded"); +_Static_assert(NUM_TOTAL_TRANSACTIONS <= (1 << 5), "Max number of usable transactions exceeded"); diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index f66b2ad89f..6c1aeb284d 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -733,7 +733,7 @@ static bool pointing_handlers_master(matrix_row_t master_matrix[], matrix_row_t return okay; } -extern const pointing_device_driver_t *pointing_device_driver; +extern const pointing_device_driver_t pointing_device_driver; static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { # if defined(POINTING_DEVICE_LEFT) @@ -753,18 +753,18 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s last_exec = timer_read32(); # endif - uint16_t temp_cpi = !pointing_device_driver->get_cpi ? 0 : pointing_device_driver->get_cpi(); // check for NULL + uint16_t temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL split_shared_memory_lock(); split_slave_pointing_sync_t pointing; memcpy(&pointing, &split_shmem->pointing, sizeof(split_slave_pointing_sync_t)); split_shared_memory_unlock(); - if (pointing.cpi && pointing.cpi != temp_cpi && pointing_device_driver->set_cpi) { - pointing_device_driver->set_cpi(pointing.cpi); + if (pointing.cpi && pointing.cpi != temp_cpi && pointing_device_driver.set_cpi) { + pointing_device_driver.set_cpi(pointing.cpi); } - pointing.report = pointing_device_driver->get_report((report_mouse_t){0}); + pointing.report = pointing_device_driver.get_report((report_mouse_t){0}); // Now update the checksum given that the pointing has been written to pointing.checksum = crc8(&pointing.report, sizeof(report_mouse_t)); diff --git a/quantum/split_common/transport.c b/quantum/split_common/transport.c index ea687af1c2..83edc34859 100644 --- a/quantum/split_common/transport.c +++ b/quantum/split_common/transport.c @@ -17,7 +17,6 @@ #include #include -#include "compiler_support.h" #include "transactions.h" #include "transport.h" #include "transaction_id_define.h" @@ -37,7 +36,7 @@ # include "i2c_slave.h" // Ensure the I2C buffer has enough space -STATIC_ASSERT(sizeof(split_shared_memory_t) <= I2C_SLAVE_REG_COUNT, "split_shared_memory_t too large for I2C_SLAVE_REG_COUNT"); +_Static_assert(sizeof(split_shared_memory_t) <= I2C_SLAVE_REG_COUNT, "split_shared_memory_t too large for I2C_SLAVE_REG_COUNT"); split_shared_memory_t *const split_shmem = (split_shared_memory_t *)i2c_slave_reg; diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index dff1d43fb4..78a4cad585 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -16,6 +16,7 @@ #include "unicode.h" +#include "eeprom.h" #include "eeconfig.h" #include "action.h" #include "action_util.h" @@ -135,7 +136,7 @@ static void unicode_play_song(uint8_t mode) { #endif void unicode_input_mode_init(void) { - eeconfig_read_unicode_mode(&unicode_config); + unicode_config.raw = eeprom_read_byte(EECONFIG_UNICODEMODE); #if UNICODE_SELECTED_MODES != -1 # if UNICODE_CYCLE_PERSIST // Find input_mode in selected modes @@ -164,7 +165,7 @@ uint8_t get_unicode_input_mode(void) { } static void persist_unicode_input_mode(void) { - eeconfig_update_unicode_mode(&unicode_config); + eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); } void set_unicode_input_mode(uint8_t mode) { diff --git a/quantum/unicode/unicode.h b/quantum/unicode/unicode.h index 7cddc78b7a..90a54c8b18 100644 --- a/quantum/unicode/unicode.h +++ b/quantum/unicode/unicode.h @@ -17,8 +17,6 @@ #pragma once #include - -#include "compiler_support.h" #include "unicode_keycodes.h" /** @@ -28,14 +26,14 @@ * \{ */ -typedef union unicode_config_t { +typedef union { uint8_t raw; struct { uint8_t input_mode : 8; }; } unicode_config_t; -STATIC_ASSERT(sizeof(unicode_config_t) == sizeof(uint8_t), "Unicode EECONFIG out of spec."); +_Static_assert(sizeof(unicode_config_t) == sizeof(uint8_t), "Unicode EECONFIG out of spec."); extern unicode_config_t unicode_config; diff --git a/quantum/util.h b/quantum/util.h index 61ec7ac153..94d9f22317 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -4,7 +4,6 @@ #pragma once -#include "bits.h" #include "bitwise.h" // convert to string diff --git a/quantum/via.c b/quantum/via.c index 130ff74794..643d7aa3c3 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -22,24 +22,16 @@ # error "DYNAMIC_KEYMAP_ENABLE is not enabled" #endif -#ifdef VIA_INSECURE -# pragma message "VIA_INSECURE is enabled - firmware is susceptible to keyloggers" -#endif - #include "via.h" #include "raw_hid.h" #include "dynamic_keymap.h" +#include "eeprom.h" #include "eeconfig.h" #include "matrix.h" #include "timer.h" #include "wait.h" #include "version.h" // for QMK_BUILDDATE used in EEPROM magic -#include "nvm_via.h" - -#if defined(SECURE_ENABLE) -# include "secure.h" -#endif #if defined(AUDIO_ENABLE) # include "audio.h" @@ -73,26 +65,20 @@ bool via_eeprom_is_valid(void) { uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); - uint8_t ee_magic0; - uint8_t ee_magic1; - uint8_t ee_magic2; - nvm_via_read_magic(&ee_magic0, &ee_magic1, &ee_magic2); - - return ee_magic0 == magic0 && ee_magic1 == magic1 && ee_magic2 == magic2; + return (eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0) == magic0 && eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1) == magic1 && eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2) == magic2); } // Sets VIA/keyboard level usage of EEPROM to valid/invalid // Keyboard level code (eg. via_init_kb()) should not call this void via_eeprom_set_valid(bool valid) { - if (valid) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); - uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); - uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); - nvm_via_update_magic(magic0, magic1, magic2); - } else { - nvm_via_update_magic(0xFF, 0xFF, 0xFF); - } + char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); + uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); + uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); + + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0, valid ? magic0 : 0xFF); + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1, valid ? magic1 : 0xFF); + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2, valid ? magic2 : 0xFF); } // Override this at the keyboard code level to check @@ -118,8 +104,6 @@ void via_init(void) { } void eeconfig_init_via(void) { - // Erase any NVM storage if necessary - nvm_via_erase(); // set the magic number to false, in case this gets interrupted via_eeprom_set_valid(false); // This resets the layout options @@ -135,25 +119,30 @@ void eeconfig_init_via(void) { // This is generalized so the layout options EEPROM usage can be // variable, between 1 and 4 bytes. uint32_t via_get_layout_options(void) { - return nvm_via_read_layout_options(); + uint32_t value = 0; + // Start at the most significant byte + void *source = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR); + for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { + value = value << 8; + value |= eeprom_read_byte(source); + source++; + } + return value; } __attribute__((weak)) void via_set_layout_options_kb(uint32_t value) {} void via_set_layout_options(uint32_t value) { via_set_layout_options_kb(value); - nvm_via_update_layout_options(value); + // Start at the least significant byte + void *target = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE - 1); + for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { + eeprom_update_byte(target, value & 0xFF); + value = value >> 8; + target--; + } } -#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 -uint32_t via_read_custom_config(void *buf, uint32_t offset, uint32_t length) { - return nvm_via_read_custom_config(buf, offset, length); -} -uint32_t via_update_custom_config(const void *buf, uint32_t offset, uint32_t length) { - return nvm_via_update_custom_config(buf, offset, length); -} -#endif - #if defined(AUDIO_ENABLE) float via_device_indication_song[][2] = SONG(STARTUP_SOUND); #endif // AUDIO_ENABLE @@ -326,16 +315,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { uint8_t rows = 28 / ((MATRIX_COLS + 7) / 8); uint8_t i = 2; for (uint8_t row = 0; row < rows && row + offset < MATRIX_ROWS; row++) { -#if defined(VIA_INSECURE) matrix_row_t value = matrix_get_row(row + offset); -#elif defined(SECURE_ENABLE) - matrix_row_t value = 0; - if (secure_is_unlocked()) { - value = matrix_get_row(row + offset); - } -#else - matrix_row_t value = 0; -#endif #if (MATRIX_COLS > 24) command_data[i++] = (value >> 24) & 0xFF; #endif @@ -735,7 +715,7 @@ void via_qmk_rgb_matrix_set_value(uint8_t *data) { } void via_qmk_rgb_matrix_save(void) { - eeconfig_force_flush_rgb_matrix(); + eeconfig_update_rgb_matrix(); } #endif // RGB_MATRIX_ENABLE @@ -814,7 +794,7 @@ void via_qmk_led_matrix_set_value(uint8_t *data) { } void via_qmk_led_matrix_save(void) { - eeconfig_force_flush_led_matrix(); + eeconfig_update_led_matrix(); } #endif // LED_MATRIX_ENABLE @@ -881,7 +861,7 @@ void via_qmk_audio_set_value(uint8_t *data) { } void via_qmk_audio_save(void) { - eeconfig_update_audio(&audio_config); + eeconfig_update_audio(audio_config.raw); } #endif // QMK_AUDIO_ENABLE diff --git a/quantum/via.h b/quantum/via.h index 9f0eef10f7..01d4c48b37 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -16,8 +16,21 @@ #pragma once +#include "eeconfig.h" // for EECONFIG_SIZE #include "action.h" +// Keyboard level code can change where VIA stores the magic. +// The magic is the build date YYMMDD encoded as BCD in 3 bytes, +// thus installing firmware built on a different date to the one +// already installed can be detected and the EEPROM data is reset. +// The only reason this is important is in case EEPROM usage changes +// and the EEPROM was not explicitly reset by bootmagic lite. +#ifndef VIA_EEPROM_MAGIC_ADDR +# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE) +#endif + +#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR + 3) + // Changing the layout options size after release will invalidate EEPROM, // but this is something that should be set correctly on initial implementation. // 1 byte is enough for most uses (i.e. 8 binary states, or 6 binary + 1 ternary/quaternary ) @@ -33,10 +46,17 @@ # define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00000000 #endif +// The end of the EEPROM memory used by VIA +// By default, dynamic keymaps will start at this if there is no +// custom config +#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE) + #ifndef VIA_EEPROM_CUSTOM_CONFIG_SIZE # define VIA_EEPROM_CUSTOM_CONFIG_SIZE 0 #endif +#define VIA_EEPROM_CONFIG_END (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) + // This is changed only when the command IDs change, // so VIA Configurator can detect compatible firmware. #define VIA_PROTOCOL_VERSION 0x000C @@ -140,11 +160,6 @@ uint32_t via_get_layout_options(void); void via_set_layout_options(uint32_t value); void via_set_layout_options_kb(uint32_t value); -#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 -uint32_t via_read_custom_config(void *buf, uint32_t offset, uint32_t length); -uint32_t via_update_custom_config(const void *buf, uint32_t offset, uint32_t length); -#endif - // Used by VIA to tell a device to flash LEDs (or do something else) when that // device becomes the active device being configured, on startup or switching // between devices. @@ -187,4 +202,4 @@ void via_qmk_audio_command(uint8_t *data, uint8_t length); void via_qmk_audio_set_value(uint8_t *data); void via_qmk_audio_get_value(uint8_t *data); void via_qmk_audio_save(void); -#endif +#endif \ No newline at end of file diff --git a/quantum/wear_leveling/tests/rules.mk b/quantum/wear_leveling/tests/rules.mk index f5f36e5b6e..4d7a964049 100644 --- a/quantum/wear_leveling/tests/rules.mk +++ b/quantum/wear_leveling/tests/rules.mk @@ -63,4 +63,4 @@ wear_leveling_8byte_SRC := \ $(wear_leveling_common_SRC) \ $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_8byte.cpp wear_leveling_8byte_INC := \ - $(wear_leveling_common_INC) + $(wear_leveling_common_INC) \ No newline at end of file diff --git a/quantum/wear_leveling/wear_leveling.c b/quantum/wear_leveling/wear_leveling.c index 258f074a5c..429df45df5 100644 --- a/quantum/wear_leveling/wear_leveling.c +++ b/quantum/wear_leveling/wear_leveling.c @@ -3,7 +3,6 @@ #include #include "fnv.h" #include "wear_leveling.h" -#include "wear_leveling_drivers.h" #include "wear_leveling_internal.h" /* diff --git a/quantum/wear_leveling/wear_leveling_drivers.h b/quantum/wear_leveling/wear_leveling_drivers.h deleted file mode 100644 index e81f833fd1..0000000000 --- a/quantum/wear_leveling/wear_leveling_drivers.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#if defined(WEAR_LEVELING_EMBEDDED_FLASH) -# include "wear_leveling/wear_leveling_efl_config.h" -#elif defined(WEAR_LEVELING_SPI_FLASH) -# include "wear_leveling/wear_leveling_flash_spi_config.h" -#elif defined(WEAR_LEVELING_RP2040_FLASH) -# include "wear_leveling/wear_leveling_rp2040_flash_config.h" -#elif defined(WEAR_LEVELING_LEGACY) -# include "wear_leveling/wear_leveling_legacy_config.h" -#endif diff --git a/quantum/wear_leveling/wear_leveling_internal.h b/quantum/wear_leveling/wear_leveling_internal.h index c590f42235..e83f9b22ea 100644 --- a/quantum/wear_leveling/wear_leveling_internal.h +++ b/quantum/wear_leveling/wear_leveling_internal.h @@ -2,7 +2,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "compiler_support.h" +#ifdef __cplusplus +# define _Static_assert static_assert +#endif #include #include @@ -60,9 +62,9 @@ typedef uint64_t backing_store_int_t; #endif // WEAR_LEVELING_ASSERTS // Compile-time validation of configurable options -STATIC_ASSERT(WEAR_LEVELING_BACKING_SIZE >= (WEAR_LEVELING_LOGICAL_SIZE * 2), "Total backing size must be at least twice the size of the logical size"); -STATIC_ASSERT(WEAR_LEVELING_LOGICAL_SIZE % BACKING_STORE_WRITE_SIZE == 0, "Logical size must be a multiple of write size"); -STATIC_ASSERT(WEAR_LEVELING_BACKING_SIZE % WEAR_LEVELING_LOGICAL_SIZE == 0, "Backing size must be a multiple of logical size"); +_Static_assert(WEAR_LEVELING_BACKING_SIZE >= (WEAR_LEVELING_LOGICAL_SIZE * 2), "Total backing size must be at least twice the size of the logical size"); +_Static_assert(WEAR_LEVELING_LOGICAL_SIZE % BACKING_STORE_WRITE_SIZE == 0, "Logical size must be a multiple of write size"); +_Static_assert(WEAR_LEVELING_BACKING_SIZE % WEAR_LEVELING_LOGICAL_SIZE == 0, "Backing size must be a multiple of logical size"); // Backing Store API, to be implemented elsewhere by flash driver etc. bool backing_store_init(void); @@ -84,7 +86,7 @@ typedef union write_log_entry_t { uint8_t raw8[8]; } write_log_entry_t; -STATIC_ASSERT(sizeof(write_log_entry_t) == 8, "Wear leveling write log entry size was not 8"); +_Static_assert(sizeof(write_log_entry_t) == 8, "Wear leveling write log entry size was not 8"); /** * Log entry type discriminator. @@ -102,7 +104,7 @@ enum { LOG_ENTRY_TYPES }; -STATIC_ASSERT(LOG_ENTRY_TYPES <= (1 << 2), "Too many log entry types to fit into 2 bits of storage"); +_Static_assert(LOG_ENTRY_TYPES <= (1 << 2), "Too many log entry types to fit into 2 bits of storage"); #define BITMASK_FOR_BITCOUNT(n) ((1 << (n)) - 1) diff --git a/readme.md b/readme.md index 62aed12066..e5c0d41b7b 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) diff --git a/requirements.txt b/requirements.txt index 68b05d64e6..6bee746324 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,12 @@ # Python requirements -# platformdirs +appdirs argcomplete colorama dotty-dict hid hjson jsonschema>=4 -milc>=1.9.0 +milc>=1.4.2 pygments pyserial pyusb diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000000..88822b0b17 --- /dev/null +++ b/shell.nix @@ -0,0 +1,72 @@ +let + # We specify sources via Niv: use "niv update nixpkgs" to update nixpkgs, for example. + sources = import ./util/nix/sources.nix { }; +in +# However, if you want to override Niv's inputs, this will let you do that. +{ pkgs ? import sources.nixpkgs { } +, poetry2nix ? pkgs.callPackage (import sources.poetry2nix) { } +, avr ? true +, arm ? true +, teensy ? true }: +with pkgs; +let + avrlibc = pkgsCross.avr.libcCross; + + avr_incflags = [ + "-isystem ${avrlibc}/avr/include" + "-B${avrlibc}/avr/lib/avr5" + "-L${avrlibc}/avr/lib/avr5" + "-B${avrlibc}/avr/lib/avr35" + "-L${avrlibc}/avr/lib/avr35" + "-B${avrlibc}/avr/lib/avr51" + "-L${avrlibc}/avr/lib/avr51" + ]; + + # Builds the python env based on nix/pyproject.toml and + # nix/poetry.lock Use the "poetry update --lock", "poetry add + # --lock" etc. in the nix folder to adjust the contents of those + # files if the requirements*.txt files change + pythonEnv = poetry2nix.mkPoetryEnv { + projectDir = ./util/nix; + overrides = poetry2nix.overrides.withDefaults (self: super: { + qmk = super.qmk.overridePythonAttrs(old: { + # Allow QMK CLI to run "qmk" as a subprocess (the wrapper changes + # $PATH and breaks these invocations). + dontWrapPythonPrograms = true; + + # Fix "qmk setup" to use the Python interpreter from the environment + # when invoking "qmk doctor" (sys.executable gets its value from + # $NIX_PYTHONEXECUTABLE, which is set by the "qmk" wrapper from the + # Python environment, so "qmk doctor" then runs with the proper + # $NIX_PYTHONPATH too, because sys.executable actually points to + # another wrapper from the same Python environment). + postPatch = '' + substituteInPlace qmk_cli/subcommands/setup.py \ + --replace "[Path(sys.argv[0]).as_posix()" \ + "[Path(sys.executable).as_posix(), Path(sys.argv[0]).as_posix()" + ''; + }); + }); + }; +in +mkShell { + name = "qmk-firmware"; + + buildInputs = [ clang-tools_11 dfu-programmer dfu-util diffutils git pythonEnv niv ] + ++ lib.optional avr [ + pkgsCross.avr.buildPackages.binutils + pkgsCross.avr.buildPackages.gcc8 + avrlibc + avrdude + ] + ++ lib.optional arm [ gcc-arm-embedded ] + ++ lib.optional teensy [ teensy-loader-cli ]; + + AVR_CFLAGS = lib.optional avr avr_incflags; + AVR_ASFLAGS = lib.optional avr avr_incflags; + shellHook = '' + # Prevent the avr-gcc wrapper from picking up host GCC flags + # like -iframework, which is problematic on Darwin + unset NIX_CFLAGS_COMPILE_FOR_TARGET + ''; +} diff --git a/tests/basic/test_keycode_util.cpp b/tests/basic/test_keycode_util.cpp new file mode 100644 index 0000000000..693334676e --- /dev/null +++ b/tests/basic/test_keycode_util.cpp @@ -0,0 +1,52 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "test_common.hpp" + +class KeycodeToIdentifierSuite : public ::testing::TestWithParam> {}; + +TEST_P(KeycodeToIdentifierSuite, ConversionTests) { + ASSERT_EQ(get_keycode_identifier_or_default(GetParam().first), GetParam().second); +} + +INSTANTIATE_TEST_CASE_P(ConversionTestsP, KeycodeToIdentifierSuite, + // clang-format off +::testing::Values( + // Goto layer + std::make_pair(TO(0), "TO(0)"), + std::make_pair(TO(0x1F), "TO(31)"), + // Momentary switch layer + std::make_pair(MO(0), "MO(0)"), + std::make_pair(MO(0x1F), "MO(31)"), + // Set default layer + std::make_pair(DF(0), "DF(0)"), + std::make_pair(DF(0x1F), "DF(31)"), + // Toggle layer + std::make_pair(TG(0), "TG(0)"), + std::make_pair(TG(0x1F), "TG(31)"), + // One-shot layer + std::make_pair(OSL(0), "OSL(0)"), + std::make_pair(OSL(0x1F), "OSL(31)"), + // One-shot mod + std::make_pair(OSM(MOD_LSFT), "OSM(MOD_LSFT)"), + std::make_pair(OSM(MOD_LSFT | MOD_LCTL), "OSM(MOD_LCTL | MOD_LSFT)"), + // Layer Mod + std::make_pair(LM(0, MOD_LSFT), "LM(0, MOD_LSFT)"), + std::make_pair(LM(0xF, MOD_LSFT), "LM(15, MOD_LSFT)"), + std::make_pair(LM(0xF, MOD_LSFT | MOD_LCTL), "LM(15, MOD_LCTL | MOD_LSFT)"), + // Layer tap toggle + std::make_pair(TT(0), "TT(0)"), + std::make_pair(TT(0x1F), "TT(31)"), + // Layer tap + std::make_pair(LT(0, KC_A), "LT(0, KC_A)"), + std::make_pair(LT(0xF, KC_SPACE), "LT(15, KC_SPACE)"), + std::make_pair(LT(1, KC_SPC), "LT(1, KC_SPACE)"), + // Mod tap + std::make_pair(MT(MOD_LCTL, KC_A), "MT(MOD_LCTL, KC_A)"), + std::make_pair(MT(MOD_LCTL | MOD_LSFT, KC_A), "MT(MOD_LCTL | MOD_LSFT, KC_A)"), + std::make_pair(ALT_T(KC_TAB), "MT(MOD_LALT, KC_TAB)"), + // Mods + std::make_pair(LCTL(KC_A), "QK_MODS(KC_A, QK_LCTL)"), + std::make_pair(HYPR(KC_SPACE), "QK_MODS(KC_SPACE, QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI)") +)); +// clang-format on diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp index 4784c86694..64a8673a5c 100644 --- a/tests/basic/test_one_shot_keys.cpp +++ b/tests/basic/test_one_shot_keys.cpp @@ -168,7 +168,7 @@ TEST_F(OneShot, OSMChainingTwoOSMs) { tap_key(osm_key1); VERIFY_AND_CLEAR(driver); - /* Press and release OSM2 */ + /* Press and relesea OSM2 */ EXPECT_NO_REPORT(driver); tap_key(osm_key2); VERIFY_AND_CLEAR(driver); @@ -353,337 +353,3 @@ TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } - -TEST_F(OneShot, OSLWithMoAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey mo_key = KeymapKey{1, 1, 0, MO(2)}; - KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; - - set_keymap({osl_key, mo_key, regular_key}); - - /* Press OSL key */ - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release OSL key */ - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press MO */ - EXPECT_NO_REPORT(driver); - mo_key.press(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(2)); - VERIFY_AND_CLEAR(driver); - - /* Press regular key */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - regular_key.press(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(2)); - VERIFY_AND_CLEAR(driver); - - /* Release regular key */ - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release MO */ - EXPECT_NO_REPORT(driver); - mo_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(0)); - VERIFY_AND_CLEAR(driver); -} - -class OneShotLayerParametrizedTestFixture : public ::testing::WithParamInterface, public OneShot {}; - -TEST_P(OneShotLayerParametrizedTestFixture, OSLWithActionAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey action_key = KeymapKey{1, 1, 0, GetParam()}; - KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; - - set_keymap({osl_key, action_key, regular_key}); - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Tag Action key */ - EXPECT_NO_REPORT(driver); - tap_key(action_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(2)); - VERIFY_AND_CLEAR(driver); - - /* Press regular key */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - regular_key.press(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(2)); - VERIFY_AND_CLEAR(driver); - - /* Release regular key */ - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -INSTANTIATE_TEST_CASE_P(OneShotLayerTests, OneShotLayerParametrizedTestFixture, ::testing::Values(TG(2), TO(2))); - -TEST_F(OneShot, OSLWithDFAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey df_key = KeymapKey{1, 1, 0, DF(2)}; - KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; - - set_keymap({osl_key, df_key, regular_key}); - - layer_state_t default_layer_state_bak = default_layer_state; - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press DF key */ - EXPECT_NO_REPORT(driver); - df_key.press(); - run_one_scan_loop(); - EXPECT_EQ(default_layer_state, 0b001); - - VERIFY_AND_CLEAR(driver); - - /* Release DF key */ - EXPECT_NO_REPORT(driver); - df_key.release(); - run_one_scan_loop(); - EXPECT_EQ(default_layer_state, 0b100); - VERIFY_AND_CLEAR(driver); - - /* Press regular key */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release regular key */ - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - default_layer_state = default_layer_state_bak; -} - -TEST_F(OneShot, OSLChainingTwoOSLsAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl1_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osl2_key = KeymapKey{1, 1, 0, OSL(2)}; - KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; - - set_keymap({osl1_key, osl2_key, regular_key}); - - /* Press and release first OSL key */ - EXPECT_NO_REPORT(driver); - osl1_key.press(); - run_one_scan_loop(); - osl1_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press and release second OSL */ - EXPECT_NO_REPORT(driver); - osl2_key.press(); - run_one_scan_loop(); - osl2_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(2)); - VERIFY_AND_CLEAR(driver); - - /* Press regular key */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - EXPECT_EMPTY_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release regular key */ - EXPECT_NO_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(0)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithShortLT) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey lt_key = KeymapKey(1, 1, 0, LT(2, KC_A)); - - set_keymap({osl_key, lt_key}); - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Tap LT key. */ - EXPECT_REPORT(driver, (lt_key.report_code)).Times(1); - EXPECT_EMPTY_REPORT(driver); - tap_key(lt_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(0)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithLongLTAndRegularKey) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey lt_key = KeymapKey(1, 1, 0, LT(2, KC_A)); - KeymapKey regular_key = KeymapKey(2, 1, 1, KC_B); - - set_keymap({osl_key, lt_key, regular_key}); - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press LT key. */ - EXPECT_NO_REPORT(driver); - lt_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Idle for tapping term of mod tap hold key. */ - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - EXPECT_TRUE(layer_state_is(2)); - - /* Press regular key. */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release regular key. */ - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithShortModTapKeyAndRegularKey) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey mod_tap_hold_key = KeymapKey(1, 1, 0, SFT_T(KC_P)); - KeymapKey regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({osl_key, mod_tap_hold_key, regular_key}); - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Press regular key. */ - EXPECT_REPORT(driver, (regular_key.report_code)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release regular key. */ - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithLongModTapKeyAndRegularKey) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey mod_tap_hold_key = KeymapKey(1, 1, 0, SFT_T(KC_P)); - KeymapKey regular_key = KeymapKey(1, 2, 0, KC_A); - - set_keymap({osl_key, mod_tap_hold_key, regular_key}); - - /* Tap OSL key */ - EXPECT_NO_REPORT(driver); - tap_key(osl_key); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Idle for tapping term of mod tap hold key. */ - EXPECT_REPORT(driver, (KC_LSFT)); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Press regular key. */ - EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); - EXPECT_EMPTY_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/caps_word/test.mk b/tests/caps_word/test.mk index 6d5664aa05..2509b01858 100644 --- a/tests/caps_word/test.mk +++ b/tests/caps_word/test.mk @@ -15,7 +15,5 @@ CAPS_WORD_ENABLE = yes COMMAND_ENABLE = no -LAYER_LOCK_ENABLE = yes SPACE_CADET_ENABLE = yes -TRI_LAYER_ENABLE = yes diff --git a/tests/caps_word/test_caps_word.cpp b/tests/caps_word/test_caps_word.cpp index 4b58790915..28d86e9324 100644 --- a/tests/caps_word/test_caps_word.cpp +++ b/tests/caps_word/test_caps_word.cpp @@ -156,22 +156,21 @@ TEST_F(CapsWord, IdleTimeout) { // Turn on Caps Word and tap "A". caps_word_on(); tap_key(key_a); + VERIFY_AND_CLEAR(driver); - EXPECT_EMPTY_REPORT(driver); idle_for(CAPS_WORD_IDLE_TIMEOUT); run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); // Caps Word should be off and mods should be clear. EXPECT_EQ(is_caps_word_on(), false); EXPECT_EQ(get_mods() | get_weak_mods(), 0); + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); // Expect unshifted "A". EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); tap_key(key_a); - run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); } @@ -245,7 +244,6 @@ TEST_F(CapsWord, ShiftsAltGrSymbols) { // clang-format off EXPECT_CALL(driver, send_keyboard_mock(AnyOf( KeyboardReport(), - KeyboardReport(KC_LSFT), KeyboardReport(KC_RALT), KeyboardReport(KC_LSFT, KC_RALT)))) .Times(AnyNumber()); @@ -261,9 +259,6 @@ TEST_F(CapsWord, ShiftsAltGrSymbols) { tap_key(key_a); run_one_scan_loop(); key_altgr.release(); - run_one_scan_loop(); - - idle_for(CAPS_WORD_IDLE_TIMEOUT); VERIFY_AND_CLEAR(driver); } @@ -279,7 +274,6 @@ TEST_F(CapsWord, ShiftsModTapAltGrSymbols) { // clang-format off EXPECT_CALL(driver, send_keyboard_mock(AnyOf( KeyboardReport(), - KeyboardReport(KC_LSFT), KeyboardReport(KC_RALT), KeyboardReport(KC_LSFT, KC_RALT)))) .Times(AnyNumber()); @@ -295,11 +289,8 @@ TEST_F(CapsWord, ShiftsModTapAltGrSymbols) { tap_key(key_a); run_one_scan_loop(); key_altgr_t.release(); - run_one_scan_loop(); + EXPECT_TRUE(is_caps_word_on()); - - idle_for(CAPS_WORD_IDLE_TIMEOUT); - VERIFY_AND_CLEAR(driver); } @@ -544,11 +535,7 @@ TEST_P(CapsWordDoubleTapShift, Activation) { // machine at this point. This due to imperfect test isolation which can't // reset the caps word double shift timer on test case setup. idle_for(CAPS_WORD_IDLE_TIMEOUT); - - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); tap_key(esc); - VERIFY_AND_CLEAR(driver); } // Double tap doesn't count if another key is pressed between the taps. @@ -602,7 +589,6 @@ TEST_P(CapsWordDoubleTapShift, SlowTaps) { EXPECT_EQ(is_caps_word_on(), false); // Caps Word is still off. clear_oneshot_mods(); - send_keyboard_report(); VERIFY_AND_CLEAR(driver); } @@ -640,7 +626,7 @@ TEST_F(CapsWord, IgnoresOSLHold) { run_one_scan_loop(); tap_key(key_b); key_osl.release(); - idle_for(CAPS_WORD_IDLE_TIMEOUT + 1); + run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } @@ -659,39 +645,15 @@ TEST_F(CapsWord, IgnoresOSLTap) { KeyboardReport(), KeyboardReport(KC_LSFT)))) .Times(AnyNumber()); - // clang-format on EXPECT_REPORT(driver, (KC_LSFT, KC_B)); caps_word_on(); tap_key(key_osl); tap_key(key_b); - idle_for(CAPS_WORD_IDLE_TIMEOUT); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(CapsWord, IgnoresLayerLockKey) { - TestDriver driver; - KeymapKey key_llock(0, 1, 0, QK_LAYER_LOCK); - KeymapKey key_b(0, 0, 0, KC_B); - set_keymap({key_llock, key_b}); - - // Allow any number of reports with no keys or only modifiers. - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(), - KeyboardReport(KC_LSFT)))) - .Times(AnyNumber()); - // clang-format on - - EXPECT_REPORT(driver, (KC_LSFT, KC_B)); - caps_word_on(); - - tap_key(key_llock); - tap_key(key_b); - idle_for(CAPS_WORD_IDLE_TIMEOUT); + run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } +// clang-format on } // namespace diff --git a/tests/combo/combo_repress/config.h b/tests/combo/combo_repress/config.h deleted file mode 100644 index 61ba58177e..0000000000 --- a/tests/combo/combo_repress/config.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2024 @Filios92 -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define TAPPING_TERM 200 - -#define COMBO_PROCESS_KEY_REPRESS diff --git a/tests/combo/combo_repress/test.mk b/tests/combo/combo_repress/test.mk deleted file mode 100644 index cc3f482f4b..0000000000 --- a/tests/combo/combo_repress/test.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright 2024 @Filios92 -# SPDX-License-Identifier: GPL-2.0-or-later - -COMBO_ENABLE = yes - -INTROSPECTION_KEYMAP_C = test_combos_repress.c diff --git a/tests/combo/combo_repress/test_combo.cpp b/tests/combo/combo_repress/test_combo.cpp deleted file mode 100644 index b1a2d36cb3..0000000000 --- a/tests/combo/combo_repress/test_combo.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2024 @Filios92 -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.h" -#include "test_common.hpp" -#include "test_driver.hpp" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class ComboRepress : public TestFixture {}; - -TEST_F(ComboRepress, combo_repress_tapped) { - TestDriver driver; - KeymapKey key_f(0, 0, 0, KC_F); - KeymapKey key_g(0, 0, 1, KC_G); - set_keymap({key_f, key_g}); - - EXPECT_REPORT(driver, (KC_LEFT_ALT)).Times(2); - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT)); - EXPECT_EMPTY_REPORT(driver); - tap_combo({key_f, key_g}, 20); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ComboRepress, combo_repress_held_released_one_key_and_repressed) { - TestDriver driver; - KeymapKey key_f(0, 0, 0, KC_F); - KeymapKey key_g(0, 0, 1, KC_G); - KeymapKey key_h(0, 0, 2, KC_H); - KeymapKey key_j(0, 0, 3, KC_J); - set_keymap({key_f, key_g, key_h, key_j}); - - /* Press combo F+G */ - EXPECT_REPORT(driver, (KC_LEFT_ALT)).Times(2); - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT)); - key_f.press(); - run_one_scan_loop(); - key_g.press(); - run_one_scan_loop(); - idle_for(COMBO_TERM + 1); - VERIFY_AND_CLEAR(driver); - - /* Release G */ - EXPECT_NO_REPORT(driver); - key_g.release(); - idle_for(80); - VERIFY_AND_CLEAR(driver); - - /* Tap G */ - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT)); - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - tap_key(key_g, TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - /* Tap G, but hold for longer */ - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT)); - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - tap_key(key_g, TAPPING_TERM * 2); - VERIFY_AND_CLEAR(driver); - - idle_for(500); - - /* Tap other combo while holding F */ - EXPECT_REPORT(driver, (KC_ESCAPE, KC_LEFT_ALT)); - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - tap_combo({key_h, key_j}, TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - /* G press and hold */ - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT)); - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - key_g.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* F release and tap */ - EXPECT_REPORT(driver, (KC_LEFT_ALT, KC_LEFT_SHIFT)).Times(2); - EXPECT_REPORT(driver, (KC_TAB, KC_LEFT_ALT, KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - key_f.release(); - run_one_scan_loop(); - tap_key(key_f); - VERIFY_AND_CLEAR(driver); - - /* Release G */ - EXPECT_EMPTY_REPORT(driver); - key_g.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ComboRepress, combo_repress_normal_combo) { - TestDriver driver; - KeymapKey key_f(0, 0, 0, KC_F); - KeymapKey key_g(0, 0, 1, KC_G); - KeymapKey key_h(0, 0, 2, KC_H); - KeymapKey key_j(0, 0, 3, KC_J); - set_keymap({key_f, key_g, key_h, key_j}); - - /* Press combo H+J */ - EXPECT_REPORT(driver, (KC_ESCAPE)); - key_h.press(); - run_one_scan_loop(); - key_j.press(); - run_one_scan_loop(); - idle_for(COMBO_TERM + 10); - VERIFY_AND_CLEAR(driver); - - /* Release H */ - EXPECT_NO_REPORT(driver); - key_h.release(); - idle_for(80); - VERIFY_AND_CLEAR(driver); - - /* Tap H */ - EXPECT_REPORT(driver, (KC_H, KC_ESCAPE)); - EXPECT_REPORT(driver, (KC_ESCAPE)); - tap_key(key_h); - VERIFY_AND_CLEAR(driver); - - /* Tap H, but hold for longer */ - EXPECT_REPORT(driver, (KC_H, KC_ESCAPE)); - EXPECT_REPORT(driver, (KC_ESCAPE)); - tap_key(key_h, TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - idle_for(500); - - /* Tap other combo while holding K */ - EXPECT_REPORT(driver, (KC_ESCAPE, KC_LEFT_ALT)).Times(2); - EXPECT_REPORT(driver, (KC_ESCAPE, KC_TAB, KC_LEFT_ALT)); - EXPECT_REPORT(driver, (KC_ESCAPE)); - tap_combo({key_f, key_g}, TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - /* H press and hold */ - EXPECT_REPORT(driver, (KC_H, KC_ESCAPE)); - key_h.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* J release and tap */ - EXPECT_REPORT(driver, (KC_H)); - key_j.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - /* Release G */ - EXPECT_EMPTY_REPORT(driver); - key_h.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/combo/combo_repress/test_combos_repress.c b/tests/combo/combo_repress/test_combos_repress.c deleted file mode 100644 index 73fa77b0aa..0000000000 --- a/tests/combo/combo_repress/test_combos_repress.c +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2024 @Filios92 -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -enum combos { alttab, esc }; - -uint16_t const alttab_combo[] = {KC_F, KC_G, COMBO_END}; -uint16_t const esc_combo[] = {KC_H, KC_J, COMBO_END}; - -// clang-format off -combo_t key_combos[] = { - [alttab] = COMBO(alttab_combo, KC_NO), - [esc] = COMBO(esc_combo, KC_ESC) -}; -// clang-format on - -void process_combo_event(uint16_t combo_index, bool pressed) { - switch (combo_index) { - case alttab: - if (pressed) { - register_mods(MOD_LALT); - tap_code(KC_TAB); - } else { - unregister_mods(MOD_LALT); - } - break; - } -} - -bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) { - switch (combo_index) { - case alttab: - switch (keycode) { - case KC_F: - tap_code16(S(KC_TAB)); - return true; - case KC_G: - tap_code(KC_TAB); - return true; - } - } - return false; -} diff --git a/tests/combo/test_combo.cpp b/tests/combo/test_combo.cpp index d78ec55990..ac852f9d16 100644 --- a/tests/combo/test_combo.cpp +++ b/tests/combo/test_combo.cpp @@ -3,6 +3,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "keyboard_report_util.hpp" +#include "quantum.h" #include "keycode.h" #include "test_common.h" #include "test_driver.hpp" diff --git a/tests/keycode_string/config.h b/tests/keycode_string/config.h deleted file mode 100644 index 7fc76d7c2e..0000000000 --- a/tests/keycode_string/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" diff --git a/tests/keycode_string/test.mk b/tests/keycode_string/test.mk deleted file mode 100644 index aa255a1b6b..0000000000 --- a/tests/keycode_string/test.mk +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -EXTRAKEY_ENABLE = yes -KEYCODE_STRING_ENABLE = yes -KEY_LOCK_ENABLE = yes -MAGIC_ENABLE = yes -MOUSEKEY_ENABLE = yes -PROGRAMMABLE_BUTTON_ENABLE = yes -SECURE_ENABLE = yes -SWAP_HANDS_ENABLE = yes diff --git a/tests/keycode_string/test_keycode_string.cpp b/tests/keycode_string/test_keycode_string.cpp deleted file mode 100644 index e1dec70e7a..0000000000 --- a/tests/keycode_string/test_keycode_string.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include - -#include "test_common.hpp" - -enum { - MYMACRO1 = SAFE_RANGE, - MYMACRO2, -}; - -// clang-format off -extern "C" { - -KEYCODE_STRING_NAMES_KB( - KEYCODE_STRING_NAME(MYMACRO1), -); - -KEYCODE_STRING_NAMES_USER( - KEYCODE_STRING_NAME(MYMACRO2), - KEYCODE_STRING_NAME(KC_EXLM), -); - -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - {{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, - {{9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, - {{9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, - {{9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, -}; - -} // extern "C" -// clang-format on - -class KeycodeStringTest : public TestFixture {}; - -TEST_F(KeycodeStringTest, get_keycode_string) { - struct TestParams { - uint16_t keycode; - std::string expected; - }; - for (const auto [keycode, expected] : std::vector({ - {KC_TRNS, "KC_TRNS"}, - {KC_ESC, "KC_ESC"}, - {KC_A, "KC_A"}, - {KC_Z, "KC_Z"}, - {KC_0, "KC_0"}, - {KC_9, "KC_9"}, - {KC_KP_0, "KC_KP_0"}, - {KC_KP_9, "KC_KP_9"}, - {KC_LBRC, "KC_LBRC"}, - {KC_NUHS, "KC_NUHS"}, - {KC_NUBS, "KC_NUBS"}, - {KC_CAPS, "KC_CAPS"}, - {DB_TOGG, "DB_TOGG"}, - {KC_LCTL, "KC_LCTL"}, - {KC_LSFT, "KC_LSFT"}, - {KC_RALT, "KC_RALT"}, - {KC_RGUI, "KC_RGUI"}, - {KC_UP, "KC_UP"}, - {KC_HYPR, "KC_HYPR"}, - {KC_MEH, "KC_MEH"}, - // F1-F24 keycodes. - {KC_F1, "KC_F1"}, - {KC_F12, "KC_F12"}, - {KC_F13, "KC_F13"}, - {KC_F24, "KC_F24"}, - // Macro keycodes. - {MC_0, "MC_0"}, - {MC_31, "MC_31"}, - // Keyboard range keycodes. - {QK_KB_0, "QK_KB_0"}, - {QK_KB_31, "QK_KB_31"}, - // User range keycodes. - {QK_USER_2, "QK_USER_2"}, - {QK_USER_31, "QK_USER_31"}, - // Modified keycodes. - {KC_COLN, "S(KC_SCLN)"}, - {C(KC_PGUP), "C(KC_PGUP)"}, - {RALT(KC_BSPC), "RALT(KC_BSPC)"}, - // One-shot mods. - {OSM(MOD_LSFT), "OSM(MOD_LSFT)"}, - {OSM(MOD_RGUI), "OSM(MOD_RGUI)"}, - {OSM(MOD_RCTL | MOD_RGUI), "OSM(0x19)"}, - // Layer switch keycodes. - {DF(2), "DF(2)"}, - {PDF(12), "PDF(12)"}, - {MO(3), "MO(3)"}, - {TO(0), "TO(0)"}, - {TT(1), "TT(1)"}, - {TG(3), "TG(3)"}, - {OSL(3), "OSL(3)"}, - {LM(3, MOD_RALT), "LM(3,MOD_RALT)"}, - {LT(15, KC_QUOT), "LT(15,KC_QUOT)"}, - // Tap dance keycodes. - {TD(0), "TD(0)"}, - {TD(31), "TD(31)"}, - // Mod-tap keycodes. - {LSFT_T(KC_ENT), "LSFT_T(KC_ENT)"}, - {RCTL_T(KC_RGHT), "RCTL_T(KC_RGHT)"}, - {HYPR_T(KC_GRV), "HYPR_T(KC_GRV)"}, - {MEH_T(KC_EQL), "MEH_T(KC_EQL)"}, - {RSA_T(KC_LBRC), "MT(0x16,KC_LBRC)"}, - // Extrakey keycodes. - {KC_WBAK, "KC_WBAK"}, - {KC_WFWD, "KC_WFWD"}, - {KC_WREF, "KC_WREF"}, - {KC_VOLU, "KC_VOLU"}, - {KC_VOLD, "KC_VOLD"}, - // Mouse Key keycodes. - {MS_LEFT, "MS_LEFT"}, - {MS_RGHT, "MS_RGHT"}, - {MS_UP, "MS_UP"}, - {MS_WHLU, "MS_WHLU"}, - {MS_WHLD, "MS_WHLD"}, - {MS_BTN1, "MS_BTN1"}, - {MS_BTN8, "MS_BTN8"}, - // Swap Hands keycodes. - {SH_MON, "SH_MON"}, - {SH_TOGG, "SH_TOGG"}, - {SH_T(KC_PSCR), "SH_T(KC_PSCR)"}, - // Secure keycodes. - {SE_LOCK, "SE_LOCK"}, - {SE_UNLK, "SE_UNLK"}, - {SE_TOGG, "SE_TOGG"}, - {SE_REQ, "SE_REQ"}, - // Programmable button keycodes. - {PB_1, "PB_1"}, - {PB_32, "PB_32"}, - // Magic button keycodes. - {QK_MAGIC + 7, "QK_MAGIC+7"}, - // Quantum keycodes. - {QK_LOCK, "QK_LOCK"}, - {QK_QUANTUM + 7, "QK_QUANTUM+7"}, - // Custom keycode names. - {MYMACRO1, "MYMACRO1"}, - {MYMACRO2, "MYMACRO2"}, - {KC_EXLM, "KC_EXLM"}, - })) { - EXPECT_EQ(get_keycode_string(keycode), expected) << "where keycode = 0x" << std::hex << keycode; - } -} diff --git a/tests/layer_lock/config.h b/tests/layer_lock/config.h deleted file mode 100644 index 25d0b20c0e..0000000000 --- a/tests/layer_lock/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define LAYER_LOCK_IDLE_TIMEOUT 1000 diff --git a/tests/layer_lock/test.mk b/tests/layer_lock/test.mk deleted file mode 100644 index 05771e4dbf..0000000000 --- a/tests/layer_lock/test.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -# SPDX-License-Identifier: GPL-2.0-or-later - -# -------------------------------------------------------------------------------- -# Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- - -LAYER_LOCK_ENABLE = yes diff --git a/tests/layer_lock/test_layer_lock.cpp b/tests/layer_lock/test_layer_lock.cpp deleted file mode 100644 index 00742c3b43..0000000000 --- a/tests/layer_lock/test_layer_lock.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "keycodes.h" -#include "test_common.hpp" - -using testing::_; - -class LayerLock : public TestFixture {}; - -TEST_F(LayerLock, LayerLockState) { - TestDriver driver; - KeymapKey key_a = KeymapKey(0, 0, 0, KC_A); - KeymapKey key_b = KeymapKey(1, 0, 0, KC_B); - KeymapKey key_c = KeymapKey(2, 0, 0, KC_C); - KeymapKey key_d = KeymapKey(3, 0, 0, KC_C); - - set_keymap({key_a, key_b, key_c, key_d}); - - EXPECT_FALSE(is_layer_locked(1)); - EXPECT_FALSE(is_layer_locked(2)); - EXPECT_FALSE(is_layer_locked(3)); - - layer_lock_invert(1); // Layer 1: unlocked -> locked - layer_lock_on(2); // Layer 2: unlocked -> locked - layer_lock_off(3); // Layer 3: stays unlocked - - // Layers 1 and 2 are now on. - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(layer_state_is(2)); - // Layers 1 and 2 are now locked. - EXPECT_TRUE(is_layer_locked(1)); - EXPECT_TRUE(is_layer_locked(2)); - EXPECT_FALSE(is_layer_locked(3)); - - layer_lock_invert(1); // Layer 1: locked -> unlocked - layer_lock_on(2); // Layer 2: stays locked - layer_lock_on(3); // Layer 3: unlocked -> locked - - EXPECT_FALSE(layer_state_is(1)); - EXPECT_TRUE(layer_state_is(2)); - EXPECT_TRUE(layer_state_is(3)); - EXPECT_FALSE(is_layer_locked(1)); - EXPECT_TRUE(is_layer_locked(2)); - EXPECT_TRUE(is_layer_locked(3)); - - layer_lock_invert(1); // Layer 1: unlocked -> locked - layer_lock_off(2); // Layer 2: locked -> unlocked - - EXPECT_TRUE(layer_state_is(1)); - EXPECT_FALSE(layer_state_is(2)); - EXPECT_TRUE(layer_state_is(3)); - EXPECT_TRUE(is_layer_locked(1)); - EXPECT_FALSE(is_layer_locked(2)); - EXPECT_TRUE(is_layer_locked(3)); - - layer_lock_all_off(); // Layers 1 and 3: locked -> unlocked - - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(layer_state_is(2)); - EXPECT_FALSE(layer_state_is(3)); - EXPECT_FALSE(is_layer_locked(1)); - EXPECT_FALSE(is_layer_locked(2)); - EXPECT_FALSE(is_layer_locked(3)); -} - -TEST_F(LayerLock, LayerLockMomentaryTest) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_trns, key_ll}); - - EXPECT_NO_REPORT(driver); - key_layer.press(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_ll); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - key_layer.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - // Pressing Layer Lock again unlocks the lock. - EXPECT_NO_REPORT(driver); - key_ll.press(); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, LayerLockLayerTapTest) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, LT(1, KC_B)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_trns, key_ll}); - - EXPECT_NO_REPORT(driver); - key_layer.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_ll); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - // Pressing Layer Lock again unlocks the lock. - EXPECT_NO_REPORT(driver); - key_ll.press(); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, LayerLockOneshotTapTest) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, OSL(1)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_trns, key_ll}); - - EXPECT_NO_REPORT(driver); - tap_key(key_layer); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_ll); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - // Pressing Layer Lock again unlocks the lock. - EXPECT_NO_REPORT(driver); - key_ll.press(); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, LayerLockOneshotHoldTest) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, OSL(1)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_trns, key_ll}); - - EXPECT_NO_REPORT(driver); - key_layer.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_ll); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - key_layer.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - // Pressing Layer Lock again unlocks the lock. - EXPECT_NO_REPORT(driver); - key_ll.press(); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, LayerLockTimeoutTest) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_trns, key_ll}); - - EXPECT_NO_REPORT(driver); - key_layer.press(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_ll); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - key_layer.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(LAYER_LOCK_IDLE_TIMEOUT); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, ToKeyOverridesLayerLock) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); - KeymapKey key_to0 = KeymapKey(1, 0, 0, TO(0)); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_to0, key_ll}); - - EXPECT_NO_REPORT(driver); - layer_lock_on(1); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - tap_key(key_to0); // TO(0) overrides Layer Lock and unlocks layer 1. - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(LayerLock, LayerClearOverridesLayerLock) { - TestDriver driver; - KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); - KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); - KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); - - set_keymap({key_layer, key_a, key_ll}); - - EXPECT_NO_REPORT(driver); - layer_lock_on(1); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - EXPECT_TRUE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - layer_clear(); // layer_clear() overrides Layer Lock and unlocks layer 1. - key_a.press(); - run_one_scan_loop(); - EXPECT_FALSE(layer_state_is(1)); - EXPECT_FALSE(is_layer_locked(1)); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/mousekeys/config.h b/tests/mousekeys/config.h deleted file mode 100644 index 76bbbe8dae..0000000000 --- a/tests/mousekeys/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" diff --git a/tests/mousekeys/test.mk b/tests/mousekeys/test.mk deleted file mode 100644 index 6c605daecf..0000000000 --- a/tests/mousekeys/test.mk +++ /dev/null @@ -1 +0,0 @@ -MOUSEKEY_ENABLE = yes diff --git a/tests/mousekeys/test_mousekeys.cpp b/tests/mousekeys/test_mousekeys.cpp deleted file mode 100644 index a1b8e06cf7..0000000000 --- a/tests/mousekeys/test_mousekeys.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" - -using testing::_; - -struct MouseKeyExpectations { - int16_t x; - int16_t y; - int16_t h; - int16_t v; - uint16_t button_mask; -}; - -class Mousekey : public TestFixture {}; -class MousekeyParametrized : public ::testing::WithParamInterface>, public Mousekey {}; - -TEST_F(Mousekey, SendMouseNotCalledWhenNoKeyIsPressed) { - TestDriver driver; - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(Mousekey, PressAndHoldCursorUpIsCorrectlyReported) { - TestDriver driver; - KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_UP}; - - set_keymap({mouse_key}); - - EXPECT_MOUSE_REPORT(driver, (0, -8, 0, 0, 0)); - mouse_key.press(); - run_one_scan_loop(); - - EXPECT_MOUSE_REPORT(driver, (0, -2, 0, 0, 0)); - idle_for(MOUSEKEY_INTERVAL); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - mouse_key.release(); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Mousekey, PressAndHoldButtonOneCorrectlyReported) { - TestDriver driver; - KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}; - - set_keymap({mouse_key}); - - EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); - mouse_key.press(); - run_one_scan_loop(); - - idle_for(MOUSEKEY_INTERVAL); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - mouse_key.release(); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_P(MousekeyParametrized, PressAndReleaseIsCorrectlyReported) { - TestDriver driver; - KeymapKey mouse_key = GetParam().first; - MouseKeyExpectations expectations = GetParam().second; - - set_keymap({mouse_key}); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, expectations.button_mask)); - mouse_key.press(); - run_one_scan_loop(); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - mouse_key.release(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - Keys, - MousekeyParametrized, - ::testing::Values( - // Key , X, Y, H, V, Buttons Mask - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}, MouseKeyExpectations{ 0, 0, 0, 0, 1}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_2}, MouseKeyExpectations{ 0, 0, 0, 0, 2}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_3}, MouseKeyExpectations{ 0, 0, 0, 0, 4}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_4}, MouseKeyExpectations{ 0, 0, 0, 0, 8}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_5}, MouseKeyExpectations{ 0, 0, 0, 0, 16}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_6}, MouseKeyExpectations{ 0, 0, 0, 0, 32}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_7}, MouseKeyExpectations{ 0, 0, 0, 0, 64}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_8}, MouseKeyExpectations{ 0, 0, 0, 0, 128}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_UP}, MouseKeyExpectations{ 0,-8, 0, 0, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_DOWN}, MouseKeyExpectations{ 0, 8, 0, 0, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_LEFT}, MouseKeyExpectations{-8, 0, 0, 0, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_RIGHT}, MouseKeyExpectations{ 8, 0, 0, 0, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_UP}, MouseKeyExpectations{ 0, 0, 0, 1, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_DOWN}, MouseKeyExpectations{ 0, 0, 0,-1, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_LEFT}, MouseKeyExpectations{ 0, 0,-1, 0, 0}), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_RIGHT}, MouseKeyExpectations{ 0, 0, 1, 0, 0}) - )); -// clang-format on diff --git a/tests/no_tapping/no_action_tapping/test.mk b/tests/no_tapping/no_action_tapping/test.mk index 6ec384609c..29690d1adf 100644 --- a/tests/no_tapping/no_action_tapping/test.mk +++ b/tests/no_tapping/no_action_tapping/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- +# -------------------------------------------------------------------------------- \ No newline at end of file diff --git a/tests/no_tapping/no_mod_tap_mods/test.mk b/tests/no_tapping/no_mod_tap_mods/test.mk index 6ec384609c..29690d1adf 100644 --- a/tests/no_tapping/no_mod_tap_mods/test.mk +++ b/tests/no_tapping/no_mod_tap_mods/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- +# -------------------------------------------------------------------------------- \ No newline at end of file diff --git a/tests/pointing/config.h b/tests/pointing/config.h deleted file mode 100644 index 76bbbe8dae..0000000000 --- a/tests/pointing/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" diff --git a/tests/pointing/invertandrotate/config.h b/tests/pointing/invertandrotate/config.h deleted file mode 100644 index a3f3df7a54..0000000000 --- a/tests/pointing/invertandrotate/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define POINTING_DEVICE_INVERT_X -#define POINTING_DEVICE_ROTATION_90 diff --git a/tests/pointing/invertandrotate/test.mk b/tests/pointing/invertandrotate/test.mk deleted file mode 100644 index ba224d74f0..0000000000 --- a/tests/pointing/invertandrotate/test.mk +++ /dev/null @@ -1,2 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/invertandrotate/test_invertandrotate.cpp b/tests/pointing/invertandrotate/test_invertandrotate.cpp deleted file mode 100644 index b47739f415..0000000000 --- a/tests/pointing/invertandrotate/test_invertandrotate.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" - -using testing::_; - -struct SimpleReport { - int16_t x; - int16_t y; - int16_t h; - int16_t v; -}; - -class Pointing : public TestFixture {}; -class PointingInvertAndRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_P(PointingInvertAndRotateParametrized, PointingInvertAndRotateOrder) { - TestDriver driver; - SimpleReport input = GetParam().first; - SimpleReport expectations = GetParam().second; - - pd_set_x(input.x); - pd_set_y(input.y); - pd_set_h(input.h); - pd_set_v(input.v); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); - run_one_scan_loop(); - - // EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_clear_movement(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - InvertAndRotate, - PointingInvertAndRotateParametrized, - ::testing::Values( - // Input Expected // Actual Result - Rotate 90 then Invert X - std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // LEFT - DOWN - std::make_pair(SimpleReport{ 0, -1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT - std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, -1, 0, 0}), // RIGHT - UP - std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ -1, 0, 0, 0}) // DOWN - LEFT - // Input Expected // Invert X then Rotate 90 - // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, -1, 0, 0}), // LEFT - UP - // std::make_pair(SimpleReport{ 0, -1, 0, 0}, SimpleReport{ -1, 0, 0, 0}), // UP - LEFT - // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // RIGHT - DOWN - // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}) // DOWN - RIGHT - )); -// clang-format on diff --git a/tests/pointing/invertxy/config.h b/tests/pointing/invertxy/config.h deleted file mode 100644 index 6b29185d37..0000000000 --- a/tests/pointing/invertxy/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define POINTING_DEVICE_INVERT_X -#define POINTING_DEVICE_INVERT_Y diff --git a/tests/pointing/invertxy/test.mk b/tests/pointing/invertxy/test.mk deleted file mode 100644 index ba224d74f0..0000000000 --- a/tests/pointing/invertxy/test.mk +++ /dev/null @@ -1,2 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/invertxy/test_invertxy.cpp b/tests/pointing/invertxy/test_invertxy.cpp deleted file mode 100644 index 014f6f3cd0..0000000000 --- a/tests/pointing/invertxy/test_invertxy.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" - -using testing::_; - -struct SimpleReport { - int16_t x; - int16_t y; - int16_t h; - int16_t v; -}; - -class Pointing : public TestFixture {}; -class PointingInvertXYParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_P(PointingInvertXYParametrized, PointingInvertXY) { - TestDriver driver; - SimpleReport input = GetParam().first; - SimpleReport expectations = GetParam().second; - - pd_set_x(input.x); - pd_set_y(input.y); - pd_set_h(input.h); - pd_set_v(input.v); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); - run_one_scan_loop(); - - // EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_clear_movement(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - X_Y_XY, - PointingInvertXYParametrized, - ::testing::Values( - // Input Expected - std::make_pair(SimpleReport{ 33, 0, 0, 0}, SimpleReport{ -33, 0, 0, 0}), - std::make_pair(SimpleReport{ 0, -127, 0, 0}, SimpleReport{ 0, 127, 0, 0}), - std::make_pair(SimpleReport{ 10, -20, 0, 0}, SimpleReport{ -10, 20, 0, 0}) - )); -// clang-format on diff --git a/tests/pointing/rotate180/config.h b/tests/pointing/rotate180/config.h deleted file mode 100644 index a80f5482fd..0000000000 --- a/tests/pointing/rotate180/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define POINTING_DEVICE_ROTATION_180 diff --git a/tests/pointing/rotate180/test.mk b/tests/pointing/rotate180/test.mk deleted file mode 100644 index ba224d74f0..0000000000 --- a/tests/pointing/rotate180/test.mk +++ /dev/null @@ -1,2 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate180/test_rotate180.cpp b/tests/pointing/rotate180/test_rotate180.cpp deleted file mode 100644 index 736cf9ea25..0000000000 --- a/tests/pointing/rotate180/test_rotate180.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" - -using testing::_; - -struct SimpleReport { - int16_t x; - int16_t y; - int16_t h; - int16_t v; -}; - -class Pointing : public TestFixture {}; -class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_P(PointingRotateParametrized, PointingRotateXY) { - TestDriver driver; - SimpleReport input = GetParam().first; - SimpleReport expectations = GetParam().second; - - pd_set_x(input.x); - pd_set_y(input.y); - pd_set_h(input.h); - pd_set_v(input.v); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); - run_one_scan_loop(); - - // EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_clear_movement(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - Rotate180, - PointingRotateParametrized, - ::testing::Values( - // Input Expected - // Rotate Clockwise - std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // UP - DOWN - std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // DOWN - UP - std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{-1, 0, 0, 0}), // RIGHT - LEFT - std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 1, 0, 0, 0}) // LEFT - RIGHT - )); -// clang-format on diff --git a/tests/pointing/rotate270/config.h b/tests/pointing/rotate270/config.h deleted file mode 100644 index 3977dd95e6..0000000000 --- a/tests/pointing/rotate270/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define POINTING_DEVICE_ROTATION_270 diff --git a/tests/pointing/rotate270/test.mk b/tests/pointing/rotate270/test.mk deleted file mode 100644 index ba224d74f0..0000000000 --- a/tests/pointing/rotate270/test.mk +++ /dev/null @@ -1,2 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate270/test_rotate270.cpp b/tests/pointing/rotate270/test_rotate270.cpp deleted file mode 100644 index 6735f06248..0000000000 --- a/tests/pointing/rotate270/test_rotate270.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" - -using testing::_; - -struct SimpleReport { - int16_t x; - int16_t y; - int16_t h; - int16_t v; -}; - -class Pointing : public TestFixture {}; -class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_P(PointingRotateParametrized, PointingRotateXY) { - TestDriver driver; - SimpleReport input = GetParam().first; - SimpleReport expectations = GetParam().second; - - pd_set_x(input.x); - pd_set_y(input.y); - pd_set_h(input.h); - pd_set_v(input.v); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); - run_one_scan_loop(); - - // EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_clear_movement(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - Rotate270, - PointingRotateParametrized, - ::testing::Values( - // Input Expected - // Actual Result - Rotate Anticlockwise - std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT - std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT - std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // RIGHT - DOWN - std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}) // LEFT - UP - // Rotate Clockwise - // std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT - // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT - // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP - // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN - )); -// clang-format on diff --git a/tests/pointing/rotate90/config.h b/tests/pointing/rotate90/config.h deleted file mode 100644 index 3a18ec92e9..0000000000 --- a/tests/pointing/rotate90/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "test_common.h" - -#define POINTING_DEVICE_ROTATION_90 diff --git a/tests/pointing/rotate90/test.mk b/tests/pointing/rotate90/test.mk deleted file mode 100644 index ba224d74f0..0000000000 --- a/tests/pointing/rotate90/test.mk +++ /dev/null @@ -1,2 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate90/test_rotate90.cpp b/tests/pointing/rotate90/test_rotate90.cpp deleted file mode 100644 index 5c44faad0a..0000000000 --- a/tests/pointing/rotate90/test_rotate90.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" - -using testing::_; - -struct SimpleReport { - int16_t x; - int16_t y; - int16_t h; - int16_t v; -}; - -class Pointing : public TestFixture {}; -class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_P(PointingRotateParametrized, PointingRotateXY) { - TestDriver driver; - SimpleReport input = GetParam().first; - SimpleReport expectations = GetParam().second; - - pd_set_x(input.x); - pd_set_y(input.y); - pd_set_h(input.h); - pd_set_v(input.v); - - EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); - run_one_scan_loop(); - - // EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_clear_movement(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - Rotate90, - PointingRotateParametrized, - ::testing::Values( - // Input Expected - // Actual Result - Rotate Anticlockwise - std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT - std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT - std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP - std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN - // Rotate Clockwise - // std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT - // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT - // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - DOWN - // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - UP - )); -// clang-format on diff --git a/tests/pointing/test.mk b/tests/pointing/test.mk deleted file mode 100644 index 95fde21cb9..0000000000 --- a/tests/pointing/test.mk +++ /dev/null @@ -1,4 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -MOUSEKEY_ENABLE = no -POINTING_DEVICE_DRIVER = custom - diff --git a/tests/pointing/test_pointing.cpp b/tests/pointing/test_pointing.cpp deleted file mode 100644 index 6de6ad30f0..0000000000 --- a/tests/pointing/test_pointing.cpp +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gtest/gtest.h" -#include "mouse_report_util.hpp" -#include "test_common.hpp" -#include "test_pointing_device_driver.h" -#include "mousekey.h" - -using testing::_; - -class Pointing : public TestFixture {}; -class PointingButtonsViaMousekeysParametrized : public ::testing::WithParamInterface>, public Pointing {}; - -TEST_F(Pointing, NoMovementOnInitFailure) { - TestDriver driver; - - pointing_device_set_status(POINTING_DEVICE_STATUS_INIT_FAILED); - pd_set_x(-50); - pd_set_y(100); - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - pointing_device_set_status(POINTING_DEVICE_STATUS_SUCCESS); - EXPECT_MOUSE_REPORT(driver, (-50, 100, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, SendMouseIsNotCalledWithNoInput) { - TestDriver driver; - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(Pointing, Xnegative) { - TestDriver driver; - - pd_set_x(-10); - EXPECT_MOUSE_REPORT(driver, (-10, 0, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, Xpositive) { - TestDriver driver; - - pd_set_x(10); - EXPECT_MOUSE_REPORT(driver, (10, 0, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, Ynegative) { - TestDriver driver; - - pd_set_y(-20); - EXPECT_MOUSE_REPORT(driver, (0, -20, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, Ypositive) { - TestDriver driver; - - pd_set_y(20); - EXPECT_MOUSE_REPORT(driver, (0, 20, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, XandY) { - TestDriver driver; - - pd_set_x(-50); - pd_set_y(100); - EXPECT_MOUSE_REPORT(driver, (-50, 100, 0, 0, 0)); - run_one_scan_loop(); - - pd_clear_movement(); - // EXPECT_EMPTY_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, CorrectButtonIsReportedWhenPressed) { - TestDriver driver; - - EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); - pd_press_button(POINTING_DEVICE_BUTTON1); - run_one_scan_loop(); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - pd_release_button(POINTING_DEVICE_BUTTON1); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - pd_clear_all_buttons(); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_F(Pointing, CorrectButtonIsReportedWhenKeyPressed) { - TestDriver driver; - auto key = KeymapKey(0, 0, 0, QK_MOUSE_BUTTON_1); - set_keymap({key}); - - EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); - key.press(); - run_one_scan_loop(); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - key.release(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} - -TEST_P(PointingButtonsViaMousekeysParametrized, MouseKeysViaPointingDriver) { - TestDriver driver; - KeymapKey mouse_key = GetParam().first; - uint8_t button_mask = GetParam().second; - - set_keymap({mouse_key}); - - EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, button_mask)); - mouse_key.press(); - run_one_scan_loop(); - - EXPECT_EMPTY_MOUSE_REPORT(driver); - mouse_key.release(); - run_one_scan_loop(); - - EXPECT_NO_MOUSE_REPORT(driver); - run_one_scan_loop(); - - VERIFY_AND_CLEAR(driver); -} -// clang-format off -INSTANTIATE_TEST_CASE_P( - ButtonsOneToEight, - PointingButtonsViaMousekeysParametrized, - ::testing::Values( - // Key , Buttons Mask - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}, 1), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_2}, 2), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_3}, 4), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_4}, 8), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_5}, 16), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_6}, 32), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_7}, 64), - std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_8}, 128) - )); -// clang-format on diff --git a/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp b/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp index e2eed3dbb6..ae525acb45 100644 --- a/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp +++ b/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp @@ -210,7 +210,7 @@ TEST_F(AltRepeatKey, GetAltRepeatKeyKeycode) { {MO(1), 0, KC_NO}, // clang-format on })) { - SCOPED_TRACE(std::string("Input keycode: ") + get_keycode_string(params.keycode)); + SCOPED_TRACE(std::string("Input keycode: ") + get_keycode_identifier_or_default(params.keycode)); set_last_keycode(params.keycode); set_last_mods(params.mods); diff --git a/tests/repeat_key/test.mk b/tests/repeat_key/test.mk index 186207ffc2..aec8ff3bfb 100644 --- a/tests/repeat_key/test.mk +++ b/tests/repeat_key/test.mk @@ -16,4 +16,3 @@ REPEAT_KEY_ENABLE = yes AUTO_SHIFT_ENABLE = yes -LAYER_LOCK_ENABLE = yes diff --git a/tests/repeat_key/test_repeat_key.cpp b/tests/repeat_key/test_repeat_key.cpp index ed5d618761..eee44fc104 100644 --- a/tests/repeat_key/test_repeat_key.cpp +++ b/tests/repeat_key/test_repeat_key.cpp @@ -751,37 +751,4 @@ TEST_F(RepeatKey, RepeatKeyInvoke) { testing::Mock::VerifyAndClearExpectations(&driver); } -// Check that mods and Layer Lock are not remembered. -TEST_F(RepeatKey, IgnoredKeys) { - TestDriver driver; - KeymapKey regular_key(0, 0, 0, KC_A); - KeymapKey key_repeat(0, 1, 0, QK_REP); - KeymapKey key_lsft(0, 2, 0, KC_LSFT); - KeymapKey key_lctl(0, 3, 0, KC_LCTL); - KeymapKey key_llck(0, 4, 0, QK_LAYER_LOCK); - set_keymap({regular_key, key_repeat, key_lsft, key_lctl, key_llck}); - - // Allow any number of empty reports. - EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); - { - InSequence seq; - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A)); - } - - tap_key(regular_key); // Taps the KC_A key. - - // Tap Shift, Ctrl, and Layer Lock keys, which should not be remembered. - tap_keys(key_lsft, key_lctl, key_llck); - EXPECT_KEYCODE_EQ(get_last_keycode(), KC_A); - - // Tapping the Repeat Key should still reproduce KC_A. - tap_keys(key_repeat, key_repeat); - - testing::Mock::VerifyAndClearExpectations(&driver); -} - } // namespace diff --git a/tests/tap_hold_configurations/chordal_hold/default/config.h b/tests/tap_hold_configurations/chordal_hold/default/config.h deleted file mode 100644 index 2ba155df73..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/default/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2022 Vladislav Kucheriavykh - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" -#define CHORDAL_HOLD diff --git a/tests/tap_hold_configurations/chordal_hold/default/test.mk b/tests/tap_hold_configurations/chordal_hold/default/test.mk deleted file mode 100644 index 2b049cea3b..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/default/test.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2022 Vladislav Kucheriavykh -# Copyright 2024 Google LLC -# -# 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 . - -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c deleted file mode 100644 index 8a6a2c59b0..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, -}; diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp b/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp deleted file mode 100644 index ac4edd08b2..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright 2021 Stefan Kerkmann - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "action_util.h" -#include "keyboard_report_util.hpp" -#include "test_common.hpp" - -using testing::_; -using testing::InSequence; - -class OneShot : public TestFixture {}; -class OneShotParametrizedTestFixture : public ::testing::WithParamInterface>, public OneShot {}; - -TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_P(OneShotParametrizedTestFixture, OSMAsRegularModifierWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press OSM. - EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - // Press regular key. - regular_key.press(); - run_one_scan_loop(); - // Release regular key. - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSM. - EXPECT_REPORT(driver, (regular_key.report_code, osm_key.report_code)); - EXPECT_EMPTY_REPORT(driver); - osm_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -// clang-format off - -INSTANTIATE_TEST_CASE_P( - OneShotModifierTests, - OneShotParametrizedTestFixture, - ::testing::Values( - // First is osm key, second is regular key. - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LSFT), KC_LSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LCTL), KC_LCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LALT), KC_LALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LGUI), KC_LGUI}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RCTL), KC_RCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RSFT), KC_RSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RALT), KC_RALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RGUI), KC_RGUI}, KeymapKey{0, 1, 1, KC_A}) - )); -// clang-format on - -TEST_F(OneShot, OSLWithAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osl_key1 = KeymapKey{1, 0, 0, KC_X}; - KeymapKey regular_key0 = KeymapKey{0, 1, 0, KC_Y}; - KeymapKey regular_key1 = KeymapKey{1, 1, 0, KC_A}; - - set_keymap({osl_key, osl_key1, regular_key0, regular_key1}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (regular_key1.report_code)); - EXPECT_EMPTY_REPORT(driver); - regular_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_NO_REPORT(driver); - regular_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; - KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; - KeymapKey blank_key = KeymapKey{1, 0, 0, KC_NO}; - - set_keymap({osl_key, osm_key, regular_key, blank_key}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp deleted file mode 100644 index 70949e218c..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class ChordalHoldDefault : public TestFixture {}; - -TEST_F(ChordalHoldDefault, chord_nested_press_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - // Tap regular key. - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, chord_rolled_press_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key and regular key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, non_chord_with_mod_tap_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key and regular key both on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_P)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, tap_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - idle_for(TAPPING_TERM - 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, hold_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, two_mod_taps_same_hand_hold_til_timeout) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Continue holding til the tapping term. - EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); - EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, three_mod_taps_same_hand_streak_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - // - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_C)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order, with the first two keys released - // before pressing KC_C. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldDefault, tap_regular_key_while_layer_tap_key_is_held) { - TestDriver driver; - InSequence s; - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, layer_key}); - - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); // Press layer-tap-hold key. - run_one_scan_loop(); - regular_key.press(); // Press regular key. - run_one_scan_loop(); - regular_key.release(); // Release regular key. - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - layer_tap_hold_key.release(); // Release layer-tap-hold key. - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h deleted file mode 100644 index 87094b2fac..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2022 Vladislav Kucheriavykh - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" -#define CHORDAL_HOLD -#define HOLD_ON_OTHER_KEY_PRESS diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk deleted file mode 100644 index 2b049cea3b..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2022 Vladislav Kucheriavykh -# Copyright 2024 Google LLC -# -# 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 . - -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c deleted file mode 100644 index 8a6a2c59b0..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, -}; diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp deleted file mode 100644 index 7691f226af..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp +++ /dev/null @@ -1,850 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class ChordalHoldHoldOnOtherKeyPress : public TestFixture {}; - -TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_with_mod_tap_settled_as_hold) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_nested_press_settled_as_hold) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_rolled_press_settled_as_hold) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, non_chord_with_mod_tap_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key and regular key both on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_P)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, tap_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - idle_for(TAPPING_TERM - 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, hold_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_same_hand_hold_til_timeout) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Continue holding til the tapping term. - EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); - EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_nested_press_opposite_hands) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press first mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second mod-tap key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second mod-tap key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_nested_press_same_hand) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_same_hand_streak_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - // - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A)); - // EXPECT_REPORT(driver, (KC_A, KC_B)); - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_C)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order, with the first two keys released - // before pressing KC_C. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_same_hand_streak_orders) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - // Press mod-tap keys. - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - // Release keys 3, 2, 1. - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - idle_for(TAPPING_TERM); - // Press mod-tap keys. - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - // Release keys 3, 1, 2. - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A)); - // EXPECT_REPORT(driver, (KC_A, KC_B)); - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_A, KC_C)); - // EXPECT_REPORT(driver, (KC_A)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order, with the first two keys released - // before pressing KC_C. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_C)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - idle_for(TAPPING_TERM); - // Press mod-tap keys. - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - // Release keys 2, 3, 1. - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_two_left_one_right) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 2, then key 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 1, then key 2. - EXPECT_REPORT(driver, (KC_LEFT_CTRL)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_one_held_two_tapped) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 2, 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key3.press(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 1, 2. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key3.press(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, tap_regular_key_while_layer_tap_key_is_held) { - TestDriver driver; - InSequence s; - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto no_key = KeymapKey(1, 1, 0, XXXXXXX); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, no_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_B)); - regular_key.press(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, long_distinct_taps_of_layer_tap_key_and_regular_key) { - TestDriver driver; - InSequence s; - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto layer_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Idle for tapping term of layer tap hold key. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, nested_tap_of_layer_0_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on layer 0 but regular keys on layer 1. - auto first_layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_layer_tap_key = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_on_layer = KeymapKey(1, 1, 0, KC_B); - auto second_key_on_layer = KeymapKey(1, MATRIX_COLS - 1, 0, KC_Q); - - set_keymap({first_layer_tap_key, second_layer_tap_key, first_key_on_layer, second_key_on_layer}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - second_layer_tap_key.press(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_EMPTY_REPORT(driver); - second_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, lt_mt_one_regular_key) { - TestDriver driver; - InSequence s; - auto lt_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto mt_key0 = KeymapKey(0, 2, 0, SFT_T(KC_B)); - auto mt_key1 = KeymapKey(1, 2, 0, CTL_T(KC_C)); - auto regular_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_X); - auto no_key0 = KeymapKey(0, MATRIX_COLS - 1, 0, XXXXXXX); - auto no_key1 = KeymapKey(1, 1, 0, XXXXXXX); - - set_keymap({lt_key, mt_key0, mt_key1, regular_key, no_key0, no_key1}); - - // Press LT, MT. - EXPECT_NO_REPORT(driver); - lt_key.press(); - run_one_scan_loop(); - mt_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL, KC_X)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release the regular key. - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release MT key. - EXPECT_EMPTY_REPORT(driver); - mt_key1.release(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - - // Release LT key. - lt_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, nested_tap_of_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on all layers. - auto first_key_layer_0 = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_key_layer_0 = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_layer_1 = KeymapKey(1, 1, 0, LT(2, KC_B)); - auto second_key_layer_1 = KeymapKey(1, MATRIX_COLS - 1, 0, LT(2, KC_Q)); - auto first_key_layer_2 = KeymapKey(2, 1, 0, KC_TRNS); - auto second_key_layer_2 = KeymapKey(2, MATRIX_COLS - 1, 0, KC_TRNS); - - set_keymap({first_key_layer_0, second_key_layer_0, first_key_layer_1, second_key_layer_1, first_key_layer_2, second_key_layer_2}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second layer-tap key. - EXPECT_NO_REPORT(driver); - second_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - second_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, roll_layer_tap_key_with_regular_key) { - TestDriver driver; - InSequence s; - - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_B)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_tap_keys_stuttered_press) { - TestDriver driver; - InSequence s; - - auto mod_tap_key1 = KeymapKey(0, 1, 0, LSFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, LCTL_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Hold first mod-tap key until the tapping term. - EXPECT_REPORT(driver, (KC_LSFT)); - mod_tap_key1.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press the second mod-tap key, then quickly release and press the first. - EXPECT_NO_REPORT(driver); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LSFT, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_REPORT(driver, (KC_B, KC_A)); - mod_tap_key1.press(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); // Verify that Shift was released. - VERIFY_AND_CLEAR(driver); - - // Release both keys. - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h b/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h deleted file mode 100644 index f7bb7ab0ec..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2022 Vladislav Kucheriavykh - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" -#define CHORDAL_HOLD -#define PERMISSIVE_HOLD diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk deleted file mode 100644 index 2b049cea3b..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2022 Vladislav Kucheriavykh -# Copyright 2024 Google LLC -# -# 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 . - -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c deleted file mode 100644 index 8a6a2c59b0..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, -}; diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp deleted file mode 100644 index e48cba73e2..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* Copyright 2021 Stefan Kerkmann - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "action_util.h" -#include "keyboard_report_util.hpp" -#include "test_common.hpp" - -using testing::_; -using testing::InSequence; - -class OneShot : public TestFixture {}; -class OneShotParametrizedTestFixture : public ::testing::WithParamInterface>, public OneShot {}; - -TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_P(OneShotParametrizedTestFixture, OSMAsRegularModifierWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press OSM. - EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (osm_key.report_code)).Times(2); - EXPECT_REPORT(driver, (regular_key.report_code, osm_key.report_code)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSM. - EXPECT_EMPTY_REPORT(driver); - osm_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -// clang-format off - -INSTANTIATE_TEST_CASE_P( - OneShotModifierTests, - OneShotParametrizedTestFixture, - ::testing::Values( - // First is osm key, second is regular key. - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LSFT), KC_LSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LCTL), KC_LCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LALT), KC_LALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LGUI), KC_LGUI}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RCTL), KC_RCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RSFT), KC_RSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RALT), KC_RALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RGUI), KC_RGUI}, KeymapKey{0, 1, 1, KC_A}) - )); -// clang-format on - -TEST_F(OneShot, OSLWithAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osl_key1 = KeymapKey{1, 0, 0, KC_X}; - KeymapKey regular_key0 = KeymapKey{0, 1, 0, KC_Y}; - KeymapKey regular_key1 = KeymapKey{1, 1, 0, KC_A}; - - set_keymap({osl_key, osl_key1, regular_key0, regular_key1}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (regular_key1.report_code)); - EXPECT_EMPTY_REPORT(driver); - regular_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_NO_REPORT(driver); - regular_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; - KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; - KeymapKey blank_key = KeymapKey{1, 0, 0, KC_NO}; - - set_keymap({osl_key, osm_key, regular_key, blank_key}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp deleted file mode 100644 index 19e73edb02..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp +++ /dev/null @@ -1,941 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class ChordalHoldPermissiveHold : public TestFixture {}; - -TEST_F(ChordalHoldPermissiveHold, chordal_hold_handedness) { - EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 0}), 'L'); - EXPECT_EQ(chordal_hold_handedness({.col = MATRIX_COLS - 1, .row = 0}), 'R'); - EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 2}), '*'); -} - -TEST_F(ChordalHoldPermissiveHold, get_chordal_hold_default) { - auto make_record = [](uint8_t row, uint8_t col, keyevent_type_t type = KEY_EVENT) { - return keyrecord_t{ - .event = - { - .key = {.col = col, .row = row}, - .type = type, - .pressed = true, - }, - }; - }; - // Create two records on the left hand. - keyrecord_t record_l0 = make_record(0, 0); - keyrecord_t record_l1 = make_record(1, 0); - // Create a record on the right hand. - keyrecord_t record_r = make_record(0, MATRIX_COLS - 1); - - // Function should return true when records are on opposite hands. - EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_r)); - EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_l0)); - // ... and false when on the same hand. - EXPECT_FALSE(get_chordal_hold_default(&record_l0, &record_l1)); - EXPECT_FALSE(get_chordal_hold_default(&record_l1, &record_l0)); - // But (2, 0) has handedness '*', for which true is returned for chords - // with either hand. - keyrecord_t record_l2 = make_record(2, 0); - EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_l0)); - EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_r)); - - // Create a record resulting from a combo. - keyrecord_t record_combo = make_record(0, 0, COMBO_EVENT); - // Function returns true in all cases. - EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_combo)); - EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_combo)); - EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_l0)); - EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_r)); -} - -TEST_F(ChordalHoldPermissiveHold, chord_nested_press_settled_as_hold) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, chord_rolled_press_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key and regular key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, non_chord_with_mod_tap_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key and regular key both on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_P)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, tap_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - idle_for(TAPPING_TERM - 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, hold_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, two_mod_taps_same_hand_hold_til_timeout) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Continue holding til the tapping term. - EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); - EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, two_mod_taps_nested_press_opposite_hands) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, two_mod_taps_nested_press_same_hand) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, three_mod_taps_same_hand_streak_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - // - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_C)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order, with the first two keys released - // before pressing KC_C. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, three_mod_taps_same_hand_streak_orders) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 2, 1. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 1, 2. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 2, 3, 1. - // - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_A, KC_C)); - // EXPECT_REPORT(driver, (KC_A)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_C)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, three_mod_taps_opposite_hands_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - // - // NOTE: The correct order of events should be - // EXPECT_REPORT(driver, (KC_A, KC_B)); - // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_B, KC_C)); - // EXPECT_REPORT(driver, (KC_C)); - // EXPECT_EMPTY_REPORT(driver); - // - // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, - // the events are processed out of order, with the first two keys released - // before pressing KC_C. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, three_mod_taps_two_left_one_right) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 2, then key 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 1, then key 2. - EXPECT_REPORT(driver, (KC_LEFT_CTRL)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, three_mod_taps_one_held_two_tapped) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 2, 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 1, 2. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, two_mod_taps_one_regular_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_C); - - set_keymap({mod_tap_key1, mod_tap_key2, regular_key}); - - // Press keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_C)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, tap_regular_key_while_layer_tap_key_is_held) { - TestDriver driver; - InSequence s; - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto no_key = KeymapKey(1, 1, 0, XXXXXXX); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, no_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - // Press regular key. - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, nested_tap_of_layer_0_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on layer 2 but regular keys on layer 1. - auto first_layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_layer_tap_key = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_on_layer = KeymapKey(1, 1, 0, KC_B); - auto second_key_on_layer = KeymapKey(1, MATRIX_COLS - 1, 0, KC_Q); - - set_keymap({first_layer_tap_key, second_layer_tap_key, first_key_on_layer, second_key_on_layer}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.press(); - run_one_scan_loop(); - // Press second layer-tap key. - second_layer_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - second_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, lt_mt_one_regular_key) { - TestDriver driver; - InSequence s; - auto lt_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto mt_key0 = KeymapKey(0, 2, 0, SFT_T(KC_B)); - auto mt_key1 = KeymapKey(1, 2, 0, CTL_T(KC_C)); - auto regular_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_X); - auto no_key0 = KeymapKey(0, MATRIX_COLS - 1, 0, XXXXXXX); - auto no_key1 = KeymapKey(1, 1, 0, XXXXXXX); - - set_keymap({lt_key, mt_key0, mt_key1, regular_key, no_key0, no_key1}); - - // Press LT, MT, and regular key. - EXPECT_NO_REPORT(driver); - lt_key.press(); - run_one_scan_loop(); - mt_key1.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release the regular key. - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL, KC_X)); - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), MOD_BIT_LCTRL); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release MT key. - EXPECT_EMPTY_REPORT(driver); - mt_key1.release(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - - // Release LT key. - EXPECT_NO_REPORT(driver); - lt_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, nested_tap_of_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on all layers. - auto first_key_layer_0 = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_key_layer_0 = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_layer_1 = KeymapKey(1, 1, 0, LT(2, KC_B)); - auto second_key_layer_1 = KeymapKey(1, MATRIX_COLS - 1, 0, LT(2, KC_Q)); - auto first_key_layer_2 = KeymapKey(2, 1, 0, KC_TRNS); - auto second_key_layer_2 = KeymapKey(2, MATRIX_COLS - 1, 0, KC_TRNS); - - set_keymap({first_key_layer_0, second_key_layer_0, first_key_layer_1, second_key_layer_1, first_key_layer_2, second_key_layer_2}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second layer-tap key. - EXPECT_NO_REPORT(driver); - second_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - second_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, roll_layer_tap_key_with_regular_key) { - TestDriver driver; - InSequence s; - - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_A)); - layer_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHold, two_mod_tap_keys_stuttered_press) { - TestDriver driver; - InSequence s; - - auto mod_tap_key1 = KeymapKey(0, 1, 0, LSFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, LCTL_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Hold first mod-tap key until the tapping term. - EXPECT_REPORT(driver, (KC_LSFT)); - mod_tap_key1.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press the second mod-tap key, then quickly release and press the first. - EXPECT_NO_REPORT(driver); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LSFT, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_REPORT(driver, (KC_B, KC_A)); - mod_tap_key1.press(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); // Verify that Shift was released. - VERIFY_AND_CLEAR(driver); - - // Release both keys. - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/config.h b/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/config.h deleted file mode 100644 index 9267b94bec..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 Vladislav Kucheriavykh - * Copyright 2024-2025 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" -#define CHORDAL_HOLD -#define PERMISSIVE_HOLD -#define FLOW_TAP_TERM 150 diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test.mk b/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test.mk deleted file mode 100644 index 2b049cea3b..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2022 Vladislav Kucheriavykh -# Copyright 2024 Google LLC -# -# 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 . - -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_keymap.c deleted file mode 100644 index 8a6a2c59b0..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, -}; diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_one_shot_keys.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_one_shot_keys.cpp deleted file mode 100644 index e48cba73e2..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_one_shot_keys.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* Copyright 2021 Stefan Kerkmann - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "action_util.h" -#include "keyboard_report_util.hpp" -#include "test_common.hpp" - -using testing::_; -using testing::InSequence; - -class OneShot : public TestFixture {}; -class OneShotParametrizedTestFixture : public ::testing::WithParamInterface>, public OneShot {}; - -TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_P(OneShotParametrizedTestFixture, OSMAsRegularModifierWithAdditionalKeypress) { - TestDriver driver; - KeymapKey osm_key = GetParam().first; - KeymapKey regular_key = GetParam().second; - - set_keymap({osm_key, regular_key}); - - // Press OSM. - EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (osm_key.report_code)).Times(2); - EXPECT_REPORT(driver, (regular_key.report_code, osm_key.report_code)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSM. - EXPECT_EMPTY_REPORT(driver); - osm_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -// clang-format off - -INSTANTIATE_TEST_CASE_P( - OneShotModifierTests, - OneShotParametrizedTestFixture, - ::testing::Values( - // First is osm key, second is regular key. - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LSFT), KC_LSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LCTL), KC_LCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LALT), KC_LALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LGUI), KC_LGUI}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RCTL), KC_RCTL}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RSFT), KC_RSFT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RALT), KC_RALT}, KeymapKey{0, 1, 1, KC_A}), - std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RGUI), KC_RGUI}, KeymapKey{0, 1, 1, KC_A}) - )); -// clang-format on - -TEST_F(OneShot, OSLWithAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osl_key1 = KeymapKey{1, 0, 0, KC_X}; - KeymapKey regular_key0 = KeymapKey{0, 1, 0, KC_Y}; - KeymapKey regular_key1 = KeymapKey{1, 1, 0, KC_A}; - - set_keymap({osl_key, osl_key1, regular_key0, regular_key1}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (regular_key1.report_code)); - EXPECT_EMPTY_REPORT(driver); - regular_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_NO_REPORT(driver); - regular_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { - TestDriver driver; - InSequence s; - KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; - KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; - KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; - KeymapKey blank_key = KeymapKey{1, 0, 0, KC_NO}; - - set_keymap({osl_key, osm_key, regular_key, blank_key}); - - // Press OSL key. - EXPECT_NO_REPORT(driver); - osl_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release OSL key. - EXPECT_NO_REPORT(driver); - osl_key.release(); - run_one_scan_loop(); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Press and release OSM. - EXPECT_NO_REPORT(driver); - tap_key(osm_key); - EXPECT_TRUE(layer_state_is(1)); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_tap_hold.cpp deleted file mode 100644 index 05acb6f416..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold_flow_tap/test_tap_hold.cpp +++ /dev/null @@ -1,911 +0,0 @@ -// Copyright 2024-2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class ChordalHoldPermissiveHoldFlowTap : public TestFixture {}; - -TEST_F(ChordalHoldPermissiveHoldFlowTap, chordal_hold_handedness) { - EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 0}), 'L'); - EXPECT_EQ(chordal_hold_handedness({.col = MATRIX_COLS - 1, .row = 0}), 'R'); - EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 2}), '*'); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, get_chordal_hold_default) { - auto make_record = [](uint8_t row, uint8_t col, keyevent_type_t type = KEY_EVENT) { - return keyrecord_t{ - .event = - { - .key = {.col = col, .row = row}, - .type = type, - .pressed = true, - }, - }; - }; - // Create two records on the left hand. - keyrecord_t record_l0 = make_record(0, 0); - keyrecord_t record_l1 = make_record(1, 0); - // Create a record on the right hand. - keyrecord_t record_r = make_record(0, MATRIX_COLS - 1); - - // Function should return true when records are on opposite hands. - EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_r)); - EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_l0)); - // ... and false when on the same hand. - EXPECT_FALSE(get_chordal_hold_default(&record_l0, &record_l1)); - EXPECT_FALSE(get_chordal_hold_default(&record_l1, &record_l0)); - // But (2, 0) has handedness '*', for which true is returned for chords - // with either hand. - keyrecord_t record_l2 = make_record(2, 0); - EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_l0)); - EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_r)); - - // Create a record resulting from a combo. - keyrecord_t record_combo = make_record(0, 0, COMBO_EVENT); - // Function returns true in all cases. - EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_combo)); - EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_combo)); - EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_l0)); - EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_r)); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, chord_nested_press_settled_as_hold) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, chord_rolled_press_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - // Regular key on the right hand. - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap key and regular key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, non_chord_with_mod_tap_settled_as_tap) { - TestDriver driver; - InSequence s; - // Mod-tap key and regular key both on the left hand. - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({mod_tap_key, regular_key}); - - // Press mod-tap-hold key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_P)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, tap_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - idle_for(TAPPING_TERM - 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, hold_mod_tap_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - - set_keymap({mod_tap_key}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, two_mod_taps_same_hand_hold_til_timeout) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Continue holding til the tapping term. - EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); - EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, two_mod_taps_nested_press_opposite_hands) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, two_mod_taps_nested_press_same_hand) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, three_mod_taps_same_hand_streak_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, three_mod_taps_same_hand_streak_orders) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 2, 1. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 1, 2. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 2, 3, 1. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_A, KC_C)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, three_mod_taps_opposite_hands_roll) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 1, 2, 3. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, three_mod_taps_two_left_one_right) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 2, then key 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 3. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release key 1, then key 2. - EXPECT_REPORT(driver, (KC_LEFT_CTRL)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, three_mod_taps_one_held_two_tapped) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 2, 1. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys 3, 1, 2. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, two_mod_taps_one_regular_key) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_C); - - set_keymap({mod_tap_key1, mod_tap_key2, regular_key}); - - // Press keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_C)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, tap_regular_key_while_layer_tap_key_is_held) { - TestDriver driver; - InSequence s; - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto no_key = KeymapKey(1, 1, 0, XXXXXXX); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, no_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - // Press regular key. - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, nested_tap_of_layer_0_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on layer 2 but regular keys on layer 1. - auto first_layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_layer_tap_key = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_on_layer = KeymapKey(1, 1, 0, KC_B); - auto second_key_on_layer = KeymapKey(1, MATRIX_COLS - 1, 0, KC_Q); - - set_keymap({first_layer_tap_key, second_layer_tap_key, first_key_on_layer, second_key_on_layer}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.press(); - run_one_scan_loop(); - // Press second layer-tap key. - second_layer_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - second_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_layer_tap_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, lt_mt_one_regular_key) { - TestDriver driver; - InSequence s; - auto lt_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto mt_key0 = KeymapKey(0, 2, 0, SFT_T(KC_B)); - auto mt_key1 = KeymapKey(1, 2, 0, CTL_T(KC_C)); - auto regular_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_X); - auto no_key0 = KeymapKey(0, MATRIX_COLS - 1, 0, XXXXXXX); - auto no_key1 = KeymapKey(1, 1, 0, XXXXXXX); - - set_keymap({lt_key, mt_key0, mt_key1, regular_key, no_key0, no_key1}); - - // Press LT, MT, and regular key. - EXPECT_NO_REPORT(driver); - lt_key.press(); - run_one_scan_loop(); - mt_key1.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release the regular key. - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL, KC_X)); - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), MOD_BIT_LCTRL); - EXPECT_EQ(layer_state, 2); - VERIFY_AND_CLEAR(driver); - - // Release MT key. - EXPECT_EMPTY_REPORT(driver); - mt_key1.release(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - - // Release LT key. - EXPECT_NO_REPORT(driver); - lt_key.release(); - run_one_scan_loop(); - EXPECT_EQ(layer_state, 0); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, nested_tap_of_layer_tap_keys) { - TestDriver driver; - InSequence s; - // The keys are layer-taps on all layers. - auto first_key_layer_0 = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto second_key_layer_0 = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); - auto first_key_layer_1 = KeymapKey(1, 1, 0, LT(2, KC_B)); - auto second_key_layer_1 = KeymapKey(1, MATRIX_COLS - 1, 0, LT(2, KC_Q)); - auto first_key_layer_2 = KeymapKey(2, 1, 0, KC_TRNS); - auto second_key_layer_2 = KeymapKey(2, MATRIX_COLS - 1, 0, KC_TRNS); - - set_keymap({first_key_layer_0, second_key_layer_0, first_key_layer_1, second_key_layer_1, first_key_layer_2, second_key_layer_2}); - - // Press first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second layer-tap key. - EXPECT_NO_REPORT(driver); - second_key_layer_0.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second layer-tap key. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - second_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first layer-tap key. - EXPECT_NO_REPORT(driver); - first_key_layer_0.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, roll_layer_tap_key_with_regular_key) { - TestDriver driver; - InSequence s; - - auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); - - set_keymap({layer_tap_hold_key, regular_key, layer_key}); - - // Press layer-tap-hold key. - EXPECT_NO_REPORT(driver); - layer_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap-hold key. - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_A)); - layer_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release regular key. - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(ChordalHoldPermissiveHoldFlowTap, two_mod_tap_keys_stuttered_press) { - TestDriver driver; - InSequence s; - - auto mod_tap_key1 = KeymapKey(0, 1, 0, LSFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, LCTL_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Hold first mod-tap key until the tapping term. - EXPECT_REPORT(driver, (KC_LSFT)); - mod_tap_key1.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press the second mod-tap key, then quickly release and press the first. - EXPECT_NO_REPORT(driver); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LSFT, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_REPORT(driver, (KC_B, KC_A)); - mod_tap_key1.press(); - run_one_scan_loop(); - EXPECT_EQ(get_mods(), 0); // Verify that Shift was released. - VERIFY_AND_CLEAR(driver); - - // Release both keys. - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h deleted file mode 100644 index 4d704c5978..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2022 Isaac Elenbaas - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" - -#define CHORDAL_HOLD -#define PERMISSIVE_HOLD - -#define RETRO_SHIFT 2 * TAPPING_TERM -// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested -#define AUTO_SHIFT_TIMEOUT TAPPING_TERM -#define AUTO_SHIFT_MODIFIERS diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk deleted file mode 100644 index c39dfa9cb1..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2022 Isaac Elenbaas -# Copyright 2024 Google LLC -# -# 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 . - -AUTO_SHIFT_ENABLE = yes -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c deleted file mode 100644 index 8a6a2c59b0..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, - {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, -}; diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp deleted file mode 100644 index 16fbabbd8a..0000000000 --- a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp +++ /dev/null @@ -1,420 +0,0 @@ -/* Copyright 2022 Isaac Elenbaas - * Copyright 2024 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { - return true; -} - -using testing::_; -using testing::AnyNumber; -using testing::AnyOf; -using testing::InSequence; - -class RetroShiftPermissiveHold : public TestFixture {}; - -TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_hold_key, regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release regular key. */ - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LCTL, KC_A)); - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); - - set_keymap({mod_tap_hold_key, mod_tap_regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press mod-tap-regular key. */ - EXPECT_NO_REPORT(driver); - mod_tap_regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-regular key. */ - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LCTL, KC_A)); - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_hold_key, regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release regular key. */ - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LCTL, KC_A)); - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - idle_for(TAPPING_TERM); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); - - set_keymap({mod_tap_hold_key, mod_tap_regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press mod-tap-regular key. */ - EXPECT_NO_REPORT(driver); - mod_tap_regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-regular key. */ - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LCTL, KC_A)); - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_regular_key.release(); - run_one_scan_loop(); - idle_for(TAPPING_TERM); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_hold_key, regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - idle_for(AUTO_SHIFT_TIMEOUT); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release regular key. */ - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(KC_LCTL, KC_LSFT), - KeyboardReport(KC_LSFT), - KeyboardReport(KC_LCTL)))) - .Times(AnyNumber()); - // clang-format on - EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(KC_LCTL, KC_LSFT), - KeyboardReport(KC_LSFT)))) - .Times(AnyNumber()); - // clang-format on - EXPECT_REPORT(driver, (KC_LCTL)); - regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); - - set_keymap({mod_tap_hold_key, mod_tap_regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press mod-tap-regular key. */ - EXPECT_NO_REPORT(driver); - mod_tap_regular_key.press(); - run_one_scan_loop(); - idle_for(AUTO_SHIFT_TIMEOUT); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-regular key. */ - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(KC_LCTL, KC_LSFT), - KeyboardReport(KC_LSFT), - KeyboardReport(KC_LCTL)))) - .Times(AnyNumber()); - // clang-format on - EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(KC_LCTL, KC_LSFT), - KeyboardReport(KC_LSFT)))) - .Times(AnyNumber()); - // clang-format on - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_regular_key.release(); - run_one_scan_loop(); - idle_for(TAPPING_TERM); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_hold_key, regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release regular key. */ - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); - - set_keymap({mod_tap_hold_key, mod_tap_regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press mod-tap-regular key. */ - EXPECT_NO_REPORT(driver); - mod_tap_regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-regular key. */ - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); - - set_keymap({mod_tap_hold_key, regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LSFT, KC_A)); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - idle_for(AUTO_SHIFT_TIMEOUT); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release regular key. */ - EXPECT_NO_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} - -TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); - auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); - - set_keymap({mod_tap_hold_key, mod_tap_regular_key}); - - /* Press mod-tap-hold key. */ - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Press mod-tap-regular key. */ - EXPECT_NO_REPORT(driver); - mod_tap_regular_key.press(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - /* Release mod-tap-regular key. */ - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LSFT, KC_A)); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_EMPTY_REPORT(driver); - idle_for(AUTO_SHIFT_TIMEOUT); - mod_tap_regular_key.release(); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); -} diff --git a/tests/tap_hold_configurations/flow_tap/config.h b/tests/tap_hold_configurations/flow_tap/config.h deleted file mode 100644 index d6f385d8d4..0000000000 --- a/tests/tap_hold_configurations/flow_tap/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 Vladislav Kucheriavykh - * Copyright 2025 Google LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "test_common.h" - -#define FLOW_TAP_TERM 150 -#define PERMISSIVE_HOLD diff --git a/tests/tap_hold_configurations/flow_tap/test.mk b/tests/tap_hold_configurations/flow_tap/test.mk deleted file mode 100644 index 81ba8da66d..0000000000 --- a/tests/tap_hold_configurations/flow_tap/test.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2022 Vladislav Kucheriavykh -# -# 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 . - -COMBO_ENABLE = yes - -INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/flow_tap/test_keymap.c b/tests/tap_hold_configurations/flow_tap/test_keymap.c deleted file mode 100644 index 4dfe5e4cb6..0000000000 --- a/tests/tap_hold_configurations/flow_tap/test_keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "quantum.h" - -uint16_t const mt_lt_combo[] = {SFT_T(KC_X), LT(1, KC_Y), COMBO_END}; - -// clang-format off -combo_t key_combos[] = { - COMBO(mt_lt_combo, KC_Z), -}; -// clang-format on diff --git a/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp deleted file mode 100644 index d419a3b313..0000000000 --- a/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp +++ /dev/null @@ -1,844 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::AnyNumber; -using testing::InSequence; - -class FlowTapTest : public TestFixture {}; - -// Test an input of quick distinct taps. All should be settled as tapped. -TEST_F(FlowTapTest, distinct_taps) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); - auto mod_tap_key3 = KeymapKey(0, 3, 0, ALT_T(KC_D)); - - set_keymap({regular_key, mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key, FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Tap mod-tap 1. - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap mod-tap 2. - EXPECT_REPORT(driver, (KC_C)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap mod-tap 3. - EXPECT_REPORT(driver, (KC_D)); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key3.release(); - idle_for(FLOW_TAP_TERM + 1); // Pause between taps. - VERIFY_AND_CLEAR(driver); - - // Tap mod-tap 1. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap mod-tap 2. - EXPECT_REPORT(driver, (KC_C)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - idle_for(TAPPING_TERM + 1); - mod_tap_key2.release(); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); -} - -// By default, Flow Tap is disabled when mods other than Shift and AltGr are on. -TEST_F(FlowTapTest, hotkey_taps) { - TestDriver driver; - InSequence s; - auto ctrl_key = KeymapKey(0, 0, 0, KC_LCTL); - auto shft_key = KeymapKey(0, 1, 0, KC_LSFT); - auto alt_key = KeymapKey(0, 2, 0, KC_LALT); - auto gui_key = KeymapKey(0, 3, 0, KC_LGUI); - auto regular_key = KeymapKey(0, 4, 0, KC_A); - auto mod_tap_key = KeymapKey(0, 5, 0, RCTL_T(KC_B)); - - set_keymap({ctrl_key, shft_key, alt_key, gui_key, regular_key, mod_tap_key}); - - for (KeymapKey* mod_key : {&ctrl_key, &alt_key, &gui_key}) { - // Hold mod key. - EXPECT_REPORT(driver, (mod_key->code)); - mod_key->press(); - run_one_scan_loop(); - - // Tap regular key. - EXPECT_REPORT(driver, (mod_key->code, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (mod_key->code)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap, where Flow Tap is disabled due to the held mod. - EXPECT_REPORT(driver, (mod_key->code, KC_RCTL)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap. - EXPECT_REPORT(driver, (mod_key->code)); - mod_tap_key.release(); - run_one_scan_loop(); - - // Release mod key. - EXPECT_EMPTY_REPORT(driver); - mod_key->release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - } - - // Hold Shift key. - EXPECT_REPORT(driver, (KC_LSFT)); - shft_key.press(); - run_one_scan_loop(); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_LSFT, KC_A)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LSFT)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap, where Flow Tap applies to settle as tapped. - EXPECT_REPORT(driver, (KC_LSFT, KC_B)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap. - EXPECT_REPORT(driver, (KC_LSFT)); - mod_tap_key.release(); - run_one_scan_loop(); - - // Release Shift key. - EXPECT_EMPTY_REPORT(driver); - shft_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -// Test input with two mod-taps in a rolled press quickly after a regular key. -TEST_F(FlowTapTest, rolled_press) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); - - set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap key 1 quickly after regular key. The mod-tap should settle - // immediately as tapped, sending `KC_B`. - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap key 2 quickly. - EXPECT_REPORT(driver, (KC_B, KC_C)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for longer than the tapping term. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, long_flow_tap_settled_as_held) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); - - set_keymap({regular_key, mod_tap_key}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for the tapping term. - EXPECT_REPORT(driver, (KC_LSFT)); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, holding_multiple_mod_taps) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); - - set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); - regular_key.press(); - idle_for(10); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - mod_tap_key1.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, holding_mod_tap_with_regular_mod) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_key = KeymapKey(0, 1, 0, KC_LSFT); - auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); - - set_keymap({regular_key, mod_key, mod_tap_key}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press mod and mod-tap keys. - EXPECT_REPORT(driver, (KC_LSFT)); - mod_key.press(); - run_one_scan_loop(); - mod_tap_key.press(); - idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. - VERIFY_AND_CLEAR(driver); - - // Press regular key. - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); - regular_key.press(); - idle_for(10); - VERIFY_AND_CLEAR(driver); - - // Release keys. - EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - mod_key.release(); - run_one_scan_loop(); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, layer_tap_key) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_B)); - auto regular_key2 = KeymapKey(1, 0, 0, KC_C); - - set_keymap({regular_key, layer_tap_key, regular_key2}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Press layer-tap key, quickly after the regular key. - EXPECT_REPORT(driver, (KC_B)); - layer_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap key. - EXPECT_EMPTY_REPORT(driver); - layer_tap_key.release(); - run_one_scan_loop(); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Press layer-tap key, slowly after the regular key. - EXPECT_NO_REPORT(driver); - layer_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(layer_state, 1 << 1); - VERIFY_AND_CLEAR(driver); - - // Tap regular key2. - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap key. - EXPECT_NO_REPORT(driver); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, layer_tap_ignored_with_disabled_key) { - TestDriver driver; - InSequence s; - auto no_key = KeymapKey(0, 0, 0, KC_NO); - auto regular_key = KeymapKey(1, 0, 0, KC_ESC); - auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); - - set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); - - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); - layer_tap_key.press(); - idle_for(TAPPING_TERM + 1); - tap_key(regular_key); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, layer_tap_ignored_with_disabled_key_complex) { - TestDriver driver; - InSequence s; - auto regular_key1 = KeymapKey(0, 0, 0, KC_Q); - auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_SPC)); - auto mod_tap_key1 = KeymapKey(0, 2, 0, CTL_T(KC_T)); - // Place RALT_T(KC_I), where Flow Tap is enabled, in the same position on - // layer 0 as KC_RGHT, where Flow Tap is disabled. This tests that Flow Tap - // tracks the keycode from the correct layer. - auto mod_tap_key2 = KeymapKey(0, 3, 0, RALT_T(KC_I)); - auto regular_key2 = KeymapKey(1, 3, 0, KC_RGHT); - - set_keymap({regular_key1, layer_tap_key, mod_tap_key1, mod_tap_key2, regular_key2}); - - // Tap regular key 1. - EXPECT_REPORT(driver, (KC_Q)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key1); - idle_for(FLOW_TAP_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Hold layer-tap key. - EXPECT_NO_REPORT(driver); - layer_tap_key.press(); - run_one_scan_loop(); - // idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Tap regular key 2. - EXPECT_REPORT(driver, (KC_RGHT)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key2); - VERIFY_AND_CLEAR(driver); - - // Release layer-tap key. - EXPECT_NO_REPORT(driver); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Quickly hold mod-tap key 1. - EXPECT_NO_REPORT(driver); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LCTL)); - EXPECT_REPORT(driver, (KC_LCTL, KC_Q)); - EXPECT_REPORT(driver, (KC_LCTL)); - tap_key(regular_key1); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, layer_tap_ignored_with_enabled_key) { - TestDriver driver; - InSequence s; - auto no_key = KeymapKey(0, 0, 0, KC_NO); - auto regular_key = KeymapKey(1, 0, 0, KC_C); - auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); - auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); - - set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); - - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - layer_tap_key.press(); - idle_for(TAPPING_TERM + 1); - tap_key(regular_key); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - idle_for(TAPPING_TERM + 1); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, combo_key) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_X)); - auto layer_tap_key = KeymapKey(0, 2, 0, LT(1, KC_Y)); - - set_keymap({regular_key, mod_tap_key, layer_tap_key}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Press combo keys quickly after regular key. - EXPECT_REPORT(driver, (KC_Z)); - EXPECT_EMPTY_REPORT(driver); - tap_combo({mod_tap_key, layer_tap_key}); - VERIFY_AND_CLEAR(driver); - - // Press mod-tap key quickly. - EXPECT_REPORT(driver, (KC_X)); - mod_tap_key.press(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, oneshot_mod_key) { - TestDriver driver; - InSequence s; - auto regular_key = KeymapKey(0, 0, 0, KC_A); - auto osm_key = KeymapKey(0, 1, 0, OSM(MOD_LSFT)); - - set_keymap({regular_key, osm_key}); - - // Tap regular key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Tap OSM, tap regular key. - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LSFT, KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(osm_key); - tap_key(regular_key); - VERIFY_AND_CLEAR(driver); - - // Nested press of OSM and regular keys. - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_REPORT(driver, (KC_LSFT, KC_A)); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); - EXPECT_EMPTY_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - tap_key(regular_key); - osm_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, quick_tap) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_key}); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - tap_key(mod_tap_key); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, rolling_mt_mt) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for longer than the tapping term. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, rolling_lt_mt_regular) { - TestDriver driver; - InSequence s; - auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); - auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_B)); - auto regular_key = KeymapKey(0, 2, 0, KC_C); - - set_keymap({layer_tap_key, mod_tap_key, regular_key}); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - layer_tap_key.press(); - run_one_scan_loop(); - mod_tap_key.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B, KC_C)); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for longer than the tapping term. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, rolling_lt_regular_mt) { - TestDriver driver; - InSequence s; - auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); - auto regular_key = KeymapKey(0, 1, 0, KC_B); - auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); - - set_keymap({layer_tap_key, regular_key, mod_tap_key}); - - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - layer_tap_key.press(); - run_one_scan_loop(); - regular_key.press(); - run_one_scan_loop(); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B, KC_C)); - layer_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for longer than the tapping term. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap keys. - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, rolling_mt_mt_mt) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first mod-tap key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B, KC_C)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Hold for longer than the tapping term. - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - // Release other mod-tap keys. - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - mod_tap_key3.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(FlowTapTest, roll_release_132) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); - - // Press mod-tap keys. - EXPECT_NO_REPORT(driver); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key1.press(); - run_one_scan_loop(); - mod_tap_key2.press(); - idle_for(FLOW_TAP_TERM + 1); - mod_tap_key3.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first mod-tap key. - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_B)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release other mod-tap keys. - EXPECT_REPORT(driver, (KC_B, KC_C)); - EXPECT_REPORT(driver, (KC_B)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key3.release(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp b/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp deleted file mode 100644 index afcbde9937..0000000000 --- a/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp +++ /dev/null @@ -1,408 +0,0 @@ -/* Copyright 2024 John Rigoni - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "keycodes.h" -#include "test_common.hpp" -#include "action_tapping.h" -#include "test_keymap_key.hpp" - -using testing::_; -using testing::InSequence; - -class RetroTapKeyRoll : public TestFixture {}; - -TEST_F(RetroTapKeyRoll, regular_to_left_gui_mod_over_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_B); - - set_keymap({mod_tap_hold_key, regular_key}); - - EXPECT_REPORT(driver, (KC_B)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - idle_for(TAPPING_TERM); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B, KC_LEFT_GUI)); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, regular_to_mod_over_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto regular_key = KeymapKey(0, 2, 0, KC_B); - - set_keymap({mod_tap_hold_key, regular_key}); - - EXPECT_REPORT(driver, (KC_B)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B, KC_LEFT_SHIFT)); - mod_tap_hold_key.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, regular_to_mod_under_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto regular_key = KeymapKey(0, 2, 0, KC_B); - - set_keymap({mod_tap_hold_key, regular_key}); - - EXPECT_REPORT(driver, (KC_B)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_regular) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto regular_key = KeymapKey(0, 2, 0, KC_B); - - set_keymap({mod_tap_hold_key, regular_key}); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_B, KC_P)); - EXPECT_REPORT(driver, (KC_B)); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_regular) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); - auto regular_key = KeymapKey(0, 2, 0, KC_B); - - set_keymap({mod_tap_hold_key, regular_key}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_hold_key.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); - regular_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_B)); - mod_tap_hold_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - regular_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_under_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_lshft.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_gui.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_gui.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_mod_under_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_hold_lshft.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_gui.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_P)); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_gui.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_over_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_lshft.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_GUI)); - mod_tap_hold_gui.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_P, KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_gui.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_over_tap_term_offset) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_lshft.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - mod_tap_hold_gui.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - idle_for(TAPPING_TERM); - mod_tap_hold_gui.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_mod_over_tap_term) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - - set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_hold_lshft.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_GUI)); - mod_tap_hold_gui.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LEFT_GUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_P, KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_gui.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(RetroTapKeyRoll, mod_to_mod_to_mod) { - TestDriver driver; - InSequence s; - auto mod_tap_hold_lalt = KeymapKey(0, 1, 0, LALT_T(KC_R)); - auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); - auto mod_tap_hold_lctrl = KeymapKey(0, 3, 0, LCTL_T(KC_C)); - - set_keymap({mod_tap_hold_lalt, mod_tap_hold_lshft, mod_tap_hold_lctrl}); - - EXPECT_REPORT(driver, (KC_LEFT_ALT)); - mod_tap_hold_lalt.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_ALT)); - mod_tap_hold_lshft.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - mod_tap_hold_lalt.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_CTRL, KC_LEFT_SHIFT)); - EXPECT_NO_REPORT(driver); - mod_tap_hold_lctrl.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LEFT_CTRL)); - mod_tap_hold_lshft.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_C, KC_LEFT_SHIFT)); - EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_hold_lctrl.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} diff --git a/tests/test_common/build.mk b/tests/test_common/build.mk index 385da7adf9..d7423bc78a 100644 --- a/tests/test_common/build.mk +++ b/tests/test_common/build.mk @@ -14,4 +14,3 @@ # along with this program. If not, see . CUSTOM_MATRIX=yes -KEYCODE_STRING_ENABLE = yes diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index 5e40323669..5676483539 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -19,10 +19,6 @@ #include #include -extern "C" { -#include "keycode_string.h" -} - using namespace testing; extern std::map KEYCODE_ID_TABLE; @@ -33,6 +29,8 @@ std::vector get_keys(const report_keyboard_t& report) { std::vector result; #if defined(NKRO_ENABLE) # error NKRO support not implemented yet +#elif defined(RING_BUFFERED_6KRO_REPORT_ENABLE) +# error 6KRO support not implemented yet #else for (size_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { if (report.keys[i]) { @@ -76,7 +74,7 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) { os << "("; for (auto key = keys.cbegin(); key != keys.cend();) { - os << get_keycode_string(*key); + os << KEYCODE_ID_TABLE.at(*key); key++; if (key != keys.cend()) { os << ", "; @@ -86,7 +84,7 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) { os << ") ["; for (auto mod = mods.cbegin(); mod != mods.cend();) { - os << get_keycode_string(*mod); + os << KEYCODE_ID_TABLE.at(*mod); mod++; if (mod != mods.cend()) { os << ", "; diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp new file mode 100644 index 0000000000..4c28ab4d20 --- /dev/null +++ b/tests/test_common/keycode_table.cpp @@ -0,0 +1,754 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +// clang-format off +extern "C" { +#include +} +#include +#include +#include + +std::map KEYCODE_ID_TABLE = { + {KC_NO, "KC_NO"}, + {KC_TRANSPARENT, "KC_TRANSPARENT"}, + {KC_A, "KC_A"}, + {KC_B, "KC_B"}, + {KC_C, "KC_C"}, + {KC_D, "KC_D"}, + {KC_E, "KC_E"}, + {KC_F, "KC_F"}, + {KC_G, "KC_G"}, + {KC_H, "KC_H"}, + {KC_I, "KC_I"}, + {KC_J, "KC_J"}, + {KC_K, "KC_K"}, + {KC_L, "KC_L"}, + {KC_M, "KC_M"}, + {KC_N, "KC_N"}, + {KC_O, "KC_O"}, + {KC_P, "KC_P"}, + {KC_Q, "KC_Q"}, + {KC_R, "KC_R"}, + {KC_S, "KC_S"}, + {KC_T, "KC_T"}, + {KC_U, "KC_U"}, + {KC_V, "KC_V"}, + {KC_W, "KC_W"}, + {KC_X, "KC_X"}, + {KC_Y, "KC_Y"}, + {KC_Z, "KC_Z"}, + {KC_1, "KC_1"}, + {KC_2, "KC_2"}, + {KC_3, "KC_3"}, + {KC_4, "KC_4"}, + {KC_5, "KC_5"}, + {KC_6, "KC_6"}, + {KC_7, "KC_7"}, + {KC_8, "KC_8"}, + {KC_9, "KC_9"}, + {KC_0, "KC_0"}, + {KC_ENTER, "KC_ENTER"}, + {KC_ESCAPE, "KC_ESCAPE"}, + {KC_BACKSPACE, "KC_BACKSPACE"}, + {KC_TAB, "KC_TAB"}, + {KC_SPACE, "KC_SPACE"}, + {KC_MINUS, "KC_MINUS"}, + {KC_EQUAL, "KC_EQUAL"}, + {KC_LEFT_BRACKET, "KC_LEFT_BRACKET"}, + {KC_RIGHT_BRACKET, "KC_RIGHT_BRACKET"}, + {KC_BACKSLASH, "KC_BACKSLASH"}, + {KC_NONUS_HASH, "KC_NONUS_HASH"}, + {KC_SEMICOLON, "KC_SEMICOLON"}, + {KC_QUOTE, "KC_QUOTE"}, + {KC_GRAVE, "KC_GRAVE"}, + {KC_COMMA, "KC_COMMA"}, + {KC_DOT, "KC_DOT"}, + {KC_SLASH, "KC_SLASH"}, + {KC_CAPS_LOCK, "KC_CAPS_LOCK"}, + {KC_F1, "KC_F1"}, + {KC_F2, "KC_F2"}, + {KC_F3, "KC_F3"}, + {KC_F4, "KC_F4"}, + {KC_F5, "KC_F5"}, + {KC_F6, "KC_F6"}, + {KC_F7, "KC_F7"}, + {KC_F8, "KC_F8"}, + {KC_F9, "KC_F9"}, + {KC_F10, "KC_F10"}, + {KC_F11, "KC_F11"}, + {KC_F12, "KC_F12"}, + {KC_PRINT_SCREEN, "KC_PRINT_SCREEN"}, + {KC_SCROLL_LOCK, "KC_SCROLL_LOCK"}, + {KC_PAUSE, "KC_PAUSE"}, + {KC_INSERT, "KC_INSERT"}, + {KC_HOME, "KC_HOME"}, + {KC_PAGE_UP, "KC_PAGE_UP"}, + {KC_DELETE, "KC_DELETE"}, + {KC_END, "KC_END"}, + {KC_PAGE_DOWN, "KC_PAGE_DOWN"}, + {KC_RIGHT, "KC_RIGHT"}, + {KC_LEFT, "KC_LEFT"}, + {KC_DOWN, "KC_DOWN"}, + {KC_UP, "KC_UP"}, + {KC_NUM_LOCK, "KC_NUM_LOCK"}, + {KC_KP_SLASH, "KC_KP_SLASH"}, + {KC_KP_ASTERISK, "KC_KP_ASTERISK"}, + {KC_KP_MINUS, "KC_KP_MINUS"}, + {KC_KP_PLUS, "KC_KP_PLUS"}, + {KC_KP_ENTER, "KC_KP_ENTER"}, + {KC_KP_1, "KC_KP_1"}, + {KC_KP_2, "KC_KP_2"}, + {KC_KP_3, "KC_KP_3"}, + {KC_KP_4, "KC_KP_4"}, + {KC_KP_5, "KC_KP_5"}, + {KC_KP_6, "KC_KP_6"}, + {KC_KP_7, "KC_KP_7"}, + {KC_KP_8, "KC_KP_8"}, + {KC_KP_9, "KC_KP_9"}, + {KC_KP_0, "KC_KP_0"}, + {KC_KP_DOT, "KC_KP_DOT"}, + {KC_NONUS_BACKSLASH, "KC_NONUS_BACKSLASH"}, + {KC_APPLICATION, "KC_APPLICATION"}, + {KC_KB_POWER, "KC_KB_POWER"}, + {KC_KP_EQUAL, "KC_KP_EQUAL"}, + {KC_F13, "KC_F13"}, + {KC_F14, "KC_F14"}, + {KC_F15, "KC_F15"}, + {KC_F16, "KC_F16"}, + {KC_F17, "KC_F17"}, + {KC_F18, "KC_F18"}, + {KC_F19, "KC_F19"}, + {KC_F20, "KC_F20"}, + {KC_F21, "KC_F21"}, + {KC_F22, "KC_F22"}, + {KC_F23, "KC_F23"}, + {KC_F24, "KC_F24"}, + {KC_EXECUTE, "KC_EXECUTE"}, + {KC_HELP, "KC_HELP"}, + {KC_MENU, "KC_MENU"}, + {KC_SELECT, "KC_SELECT"}, + {KC_STOP, "KC_STOP"}, + {KC_AGAIN, "KC_AGAIN"}, + {KC_UNDO, "KC_UNDO"}, + {KC_CUT, "KC_CUT"}, + {KC_COPY, "KC_COPY"}, + {KC_PASTE, "KC_PASTE"}, + {KC_FIND, "KC_FIND"}, + {KC_KB_MUTE, "KC_KB_MUTE"}, + {KC_KB_VOLUME_UP, "KC_KB_VOLUME_UP"}, + {KC_KB_VOLUME_DOWN, "KC_KB_VOLUME_DOWN"}, + {KC_LOCKING_CAPS_LOCK, "KC_LOCKING_CAPS_LOCK"}, + {KC_LOCKING_NUM_LOCK, "KC_LOCKING_NUM_LOCK"}, + {KC_LOCKING_SCROLL_LOCK, "KC_LOCKING_SCROLL_LOCK"}, + {KC_KP_COMMA, "KC_KP_COMMA"}, + {KC_KP_EQUAL_AS400, "KC_KP_EQUAL_AS400"}, + {KC_INTERNATIONAL_1, "KC_INTERNATIONAL_1"}, + {KC_INTERNATIONAL_2, "KC_INTERNATIONAL_2"}, + {KC_INTERNATIONAL_3, "KC_INTERNATIONAL_3"}, + {KC_INTERNATIONAL_4, "KC_INTERNATIONAL_4"}, + {KC_INTERNATIONAL_5, "KC_INTERNATIONAL_5"}, + {KC_INTERNATIONAL_6, "KC_INTERNATIONAL_6"}, + {KC_INTERNATIONAL_7, "KC_INTERNATIONAL_7"}, + {KC_INTERNATIONAL_8, "KC_INTERNATIONAL_8"}, + {KC_INTERNATIONAL_9, "KC_INTERNATIONAL_9"}, + {KC_LANGUAGE_1, "KC_LANGUAGE_1"}, + {KC_LANGUAGE_2, "KC_LANGUAGE_2"}, + {KC_LANGUAGE_3, "KC_LANGUAGE_3"}, + {KC_LANGUAGE_4, "KC_LANGUAGE_4"}, + {KC_LANGUAGE_5, "KC_LANGUAGE_5"}, + {KC_LANGUAGE_6, "KC_LANGUAGE_6"}, + {KC_LANGUAGE_7, "KC_LANGUAGE_7"}, + {KC_LANGUAGE_8, "KC_LANGUAGE_8"}, + {KC_LANGUAGE_9, "KC_LANGUAGE_9"}, + {KC_ALTERNATE_ERASE, "KC_ALTERNATE_ERASE"}, + {KC_SYSTEM_REQUEST, "KC_SYSTEM_REQUEST"}, + {KC_CANCEL, "KC_CANCEL"}, + {KC_CLEAR, "KC_CLEAR"}, + {KC_PRIOR, "KC_PRIOR"}, + {KC_RETURN, "KC_RETURN"}, + {KC_SEPARATOR, "KC_SEPARATOR"}, + {KC_OUT, "KC_OUT"}, + {KC_OPER, "KC_OPER"}, + {KC_CLEAR_AGAIN, "KC_CLEAR_AGAIN"}, + {KC_CRSEL, "KC_CRSEL"}, + {KC_EXSEL, "KC_EXSEL"}, + {KC_SYSTEM_POWER, "KC_SYSTEM_POWER"}, + {KC_SYSTEM_SLEEP, "KC_SYSTEM_SLEEP"}, + {KC_SYSTEM_WAKE, "KC_SYSTEM_WAKE"}, + {KC_AUDIO_MUTE, "KC_AUDIO_MUTE"}, + {KC_AUDIO_VOL_UP, "KC_AUDIO_VOL_UP"}, + {KC_AUDIO_VOL_DOWN, "KC_AUDIO_VOL_DOWN"}, + {KC_MEDIA_NEXT_TRACK, "KC_MEDIA_NEXT_TRACK"}, + {KC_MEDIA_PREV_TRACK, "KC_MEDIA_PREV_TRACK"}, + {KC_MEDIA_STOP, "KC_MEDIA_STOP"}, + {KC_MEDIA_PLAY_PAUSE, "KC_MEDIA_PLAY_PAUSE"}, + {KC_MEDIA_SELECT, "KC_MEDIA_SELECT"}, + {KC_MEDIA_EJECT, "KC_MEDIA_EJECT"}, + {KC_MAIL, "KC_MAIL"}, + {KC_CALCULATOR, "KC_CALCULATOR"}, + {KC_MY_COMPUTER, "KC_MY_COMPUTER"}, + {KC_WWW_SEARCH, "KC_WWW_SEARCH"}, + {KC_WWW_HOME, "KC_WWW_HOME"}, + {KC_WWW_BACK, "KC_WWW_BACK"}, + {KC_WWW_FORWARD, "KC_WWW_FORWARD"}, + {KC_WWW_STOP, "KC_WWW_STOP"}, + {KC_WWW_REFRESH, "KC_WWW_REFRESH"}, + {KC_WWW_FAVORITES, "KC_WWW_FAVORITES"}, + {KC_MEDIA_FAST_FORWARD, "KC_MEDIA_FAST_FORWARD"}, + {KC_MEDIA_REWIND, "KC_MEDIA_REWIND"}, + {KC_BRIGHTNESS_UP, "KC_BRIGHTNESS_UP"}, + {KC_BRIGHTNESS_DOWN, "KC_BRIGHTNESS_DOWN"}, + {KC_CONTROL_PANEL, "KC_CONTROL_PANEL"}, + {KC_ASSISTANT, "KC_ASSISTANT"}, + {KC_MISSION_CONTROL, "KC_MISSION_CONTROL"}, + {KC_LAUNCHPAD, "KC_LAUNCHPAD"}, + {QK_MOUSE_CURSOR_UP, "QK_MOUSE_CURSOR_UP"}, + {QK_MOUSE_CURSOR_DOWN, "QK_MOUSE_CURSOR_DOWN"}, + {QK_MOUSE_CURSOR_LEFT, "QK_MOUSE_CURSOR_LEFT"}, + {QK_MOUSE_CURSOR_RIGHT, "QK_MOUSE_CURSOR_RIGHT"}, + {QK_MOUSE_BUTTON_1, "QK_MOUSE_BUTTON_1"}, + {QK_MOUSE_BUTTON_2, "QK_MOUSE_BUTTON_2"}, + {QK_MOUSE_BUTTON_3, "QK_MOUSE_BUTTON_3"}, + {QK_MOUSE_BUTTON_4, "QK_MOUSE_BUTTON_4"}, + {QK_MOUSE_BUTTON_5, "QK_MOUSE_BUTTON_5"}, + {QK_MOUSE_BUTTON_6, "QK_MOUSE_BUTTON_6"}, + {QK_MOUSE_BUTTON_7, "QK_MOUSE_BUTTON_7"}, + {QK_MOUSE_BUTTON_8, "QK_MOUSE_BUTTON_8"}, + {QK_MOUSE_WHEEL_UP, "QK_MOUSE_WHEEL_UP"}, + {QK_MOUSE_WHEEL_DOWN, "QK_MOUSE_WHEEL_DOWN"}, + {QK_MOUSE_WHEEL_LEFT, "QK_MOUSE_WHEEL_LEFT"}, + {QK_MOUSE_WHEEL_RIGHT, "QK_MOUSE_WHEEL_RIGHT"}, + {QK_MOUSE_ACCELERATION_0, "QK_MOUSE_ACCELERATION_0"}, + {QK_MOUSE_ACCELERATION_1, "QK_MOUSE_ACCELERATION_1"}, + {QK_MOUSE_ACCELERATION_2, "QK_MOUSE_ACCELERATION_2"}, + {KC_LEFT_CTRL, "KC_LEFT_CTRL"}, + {KC_LEFT_SHIFT, "KC_LEFT_SHIFT"}, + {KC_LEFT_ALT, "KC_LEFT_ALT"}, + {KC_LEFT_GUI, "KC_LEFT_GUI"}, + {KC_RIGHT_CTRL, "KC_RIGHT_CTRL"}, + {KC_RIGHT_SHIFT, "KC_RIGHT_SHIFT"}, + {KC_RIGHT_ALT, "KC_RIGHT_ALT"}, + {KC_RIGHT_GUI, "KC_RIGHT_GUI"}, + {QK_SWAP_HANDS_TOGGLE, "QK_SWAP_HANDS_TOGGLE"}, + {QK_SWAP_HANDS_TAP_TOGGLE, "QK_SWAP_HANDS_TAP_TOGGLE"}, + {QK_SWAP_HANDS_MOMENTARY_ON, "QK_SWAP_HANDS_MOMENTARY_ON"}, + {QK_SWAP_HANDS_MOMENTARY_OFF, "QK_SWAP_HANDS_MOMENTARY_OFF"}, + {QK_SWAP_HANDS_OFF, "QK_SWAP_HANDS_OFF"}, + {QK_SWAP_HANDS_ON, "QK_SWAP_HANDS_ON"}, + {QK_SWAP_HANDS_ONE_SHOT, "QK_SWAP_HANDS_ONE_SHOT"}, + {QK_MAGIC_SWAP_CONTROL_CAPS_LOCK, "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK"}, + {QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK, "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK"}, + {QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK, "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK"}, + {QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF, "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF"}, + {QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON, "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON"}, + {QK_MAGIC_SWAP_LALT_LGUI, "QK_MAGIC_SWAP_LALT_LGUI"}, + {QK_MAGIC_UNSWAP_LALT_LGUI, "QK_MAGIC_UNSWAP_LALT_LGUI"}, + {QK_MAGIC_SWAP_RALT_RGUI, "QK_MAGIC_SWAP_RALT_RGUI"}, + {QK_MAGIC_UNSWAP_RALT_RGUI, "QK_MAGIC_UNSWAP_RALT_RGUI"}, + {QK_MAGIC_GUI_ON, "QK_MAGIC_GUI_ON"}, + {QK_MAGIC_GUI_OFF, "QK_MAGIC_GUI_OFF"}, + {QK_MAGIC_TOGGLE_GUI, "QK_MAGIC_TOGGLE_GUI"}, + {QK_MAGIC_SWAP_GRAVE_ESC, "QK_MAGIC_SWAP_GRAVE_ESC"}, + {QK_MAGIC_UNSWAP_GRAVE_ESC, "QK_MAGIC_UNSWAP_GRAVE_ESC"}, + {QK_MAGIC_SWAP_BACKSLASH_BACKSPACE, "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE"}, + {QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE, "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE"}, + {QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE, "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE"}, + {QK_MAGIC_NKRO_ON, "QK_MAGIC_NKRO_ON"}, + {QK_MAGIC_NKRO_OFF, "QK_MAGIC_NKRO_OFF"}, + {QK_MAGIC_TOGGLE_NKRO, "QK_MAGIC_TOGGLE_NKRO"}, + {QK_MAGIC_SWAP_ALT_GUI, "QK_MAGIC_SWAP_ALT_GUI"}, + {QK_MAGIC_UNSWAP_ALT_GUI, "QK_MAGIC_UNSWAP_ALT_GUI"}, + {QK_MAGIC_TOGGLE_ALT_GUI, "QK_MAGIC_TOGGLE_ALT_GUI"}, + {QK_MAGIC_SWAP_LCTL_LGUI, "QK_MAGIC_SWAP_LCTL_LGUI"}, + {QK_MAGIC_UNSWAP_LCTL_LGUI, "QK_MAGIC_UNSWAP_LCTL_LGUI"}, + {QK_MAGIC_SWAP_RCTL_RGUI, "QK_MAGIC_SWAP_RCTL_RGUI"}, + {QK_MAGIC_UNSWAP_RCTL_RGUI, "QK_MAGIC_UNSWAP_RCTL_RGUI"}, + {QK_MAGIC_SWAP_CTL_GUI, "QK_MAGIC_SWAP_CTL_GUI"}, + {QK_MAGIC_UNSWAP_CTL_GUI, "QK_MAGIC_UNSWAP_CTL_GUI"}, + {QK_MAGIC_TOGGLE_CTL_GUI, "QK_MAGIC_TOGGLE_CTL_GUI"}, + {QK_MAGIC_EE_HANDS_LEFT, "QK_MAGIC_EE_HANDS_LEFT"}, + {QK_MAGIC_EE_HANDS_RIGHT, "QK_MAGIC_EE_HANDS_RIGHT"}, + {QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK, "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK"}, + {QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK, "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK"}, + {QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK, "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK"}, + {QK_MIDI_ON, "QK_MIDI_ON"}, + {QK_MIDI_OFF, "QK_MIDI_OFF"}, + {QK_MIDI_TOGGLE, "QK_MIDI_TOGGLE"}, + {QK_MIDI_NOTE_C_0, "QK_MIDI_NOTE_C_0"}, + {QK_MIDI_NOTE_C_SHARP_0, "QK_MIDI_NOTE_C_SHARP_0"}, + {QK_MIDI_NOTE_D_0, "QK_MIDI_NOTE_D_0"}, + {QK_MIDI_NOTE_D_SHARP_0, "QK_MIDI_NOTE_D_SHARP_0"}, + {QK_MIDI_NOTE_E_0, "QK_MIDI_NOTE_E_0"}, + {QK_MIDI_NOTE_F_0, "QK_MIDI_NOTE_F_0"}, + {QK_MIDI_NOTE_F_SHARP_0, "QK_MIDI_NOTE_F_SHARP_0"}, + {QK_MIDI_NOTE_G_0, "QK_MIDI_NOTE_G_0"}, + {QK_MIDI_NOTE_G_SHARP_0, "QK_MIDI_NOTE_G_SHARP_0"}, + {QK_MIDI_NOTE_A_0, "QK_MIDI_NOTE_A_0"}, + {QK_MIDI_NOTE_A_SHARP_0, "QK_MIDI_NOTE_A_SHARP_0"}, + {QK_MIDI_NOTE_B_0, "QK_MIDI_NOTE_B_0"}, + {QK_MIDI_NOTE_C_1, "QK_MIDI_NOTE_C_1"}, + {QK_MIDI_NOTE_C_SHARP_1, "QK_MIDI_NOTE_C_SHARP_1"}, + {QK_MIDI_NOTE_D_1, "QK_MIDI_NOTE_D_1"}, + {QK_MIDI_NOTE_D_SHARP_1, "QK_MIDI_NOTE_D_SHARP_1"}, + {QK_MIDI_NOTE_E_1, "QK_MIDI_NOTE_E_1"}, + {QK_MIDI_NOTE_F_1, "QK_MIDI_NOTE_F_1"}, + {QK_MIDI_NOTE_F_SHARP_1, "QK_MIDI_NOTE_F_SHARP_1"}, + {QK_MIDI_NOTE_G_1, "QK_MIDI_NOTE_G_1"}, + {QK_MIDI_NOTE_G_SHARP_1, "QK_MIDI_NOTE_G_SHARP_1"}, + {QK_MIDI_NOTE_A_1, "QK_MIDI_NOTE_A_1"}, + {QK_MIDI_NOTE_A_SHARP_1, "QK_MIDI_NOTE_A_SHARP_1"}, + {QK_MIDI_NOTE_B_1, "QK_MIDI_NOTE_B_1"}, + {QK_MIDI_NOTE_C_2, "QK_MIDI_NOTE_C_2"}, + {QK_MIDI_NOTE_C_SHARP_2, "QK_MIDI_NOTE_C_SHARP_2"}, + {QK_MIDI_NOTE_D_2, "QK_MIDI_NOTE_D_2"}, + {QK_MIDI_NOTE_D_SHARP_2, "QK_MIDI_NOTE_D_SHARP_2"}, + {QK_MIDI_NOTE_E_2, "QK_MIDI_NOTE_E_2"}, + {QK_MIDI_NOTE_F_2, "QK_MIDI_NOTE_F_2"}, + {QK_MIDI_NOTE_F_SHARP_2, "QK_MIDI_NOTE_F_SHARP_2"}, + {QK_MIDI_NOTE_G_2, "QK_MIDI_NOTE_G_2"}, + {QK_MIDI_NOTE_G_SHARP_2, "QK_MIDI_NOTE_G_SHARP_2"}, + {QK_MIDI_NOTE_A_2, "QK_MIDI_NOTE_A_2"}, + {QK_MIDI_NOTE_A_SHARP_2, "QK_MIDI_NOTE_A_SHARP_2"}, + {QK_MIDI_NOTE_B_2, "QK_MIDI_NOTE_B_2"}, + {QK_MIDI_NOTE_C_3, "QK_MIDI_NOTE_C_3"}, + {QK_MIDI_NOTE_C_SHARP_3, "QK_MIDI_NOTE_C_SHARP_3"}, + {QK_MIDI_NOTE_D_3, "QK_MIDI_NOTE_D_3"}, + {QK_MIDI_NOTE_D_SHARP_3, "QK_MIDI_NOTE_D_SHARP_3"}, + {QK_MIDI_NOTE_E_3, "QK_MIDI_NOTE_E_3"}, + {QK_MIDI_NOTE_F_3, "QK_MIDI_NOTE_F_3"}, + {QK_MIDI_NOTE_F_SHARP_3, "QK_MIDI_NOTE_F_SHARP_3"}, + {QK_MIDI_NOTE_G_3, "QK_MIDI_NOTE_G_3"}, + {QK_MIDI_NOTE_G_SHARP_3, "QK_MIDI_NOTE_G_SHARP_3"}, + {QK_MIDI_NOTE_A_3, "QK_MIDI_NOTE_A_3"}, + {QK_MIDI_NOTE_A_SHARP_3, "QK_MIDI_NOTE_A_SHARP_3"}, + {QK_MIDI_NOTE_B_3, "QK_MIDI_NOTE_B_3"}, + {QK_MIDI_NOTE_C_4, "QK_MIDI_NOTE_C_4"}, + {QK_MIDI_NOTE_C_SHARP_4, "QK_MIDI_NOTE_C_SHARP_4"}, + {QK_MIDI_NOTE_D_4, "QK_MIDI_NOTE_D_4"}, + {QK_MIDI_NOTE_D_SHARP_4, "QK_MIDI_NOTE_D_SHARP_4"}, + {QK_MIDI_NOTE_E_4, "QK_MIDI_NOTE_E_4"}, + {QK_MIDI_NOTE_F_4, "QK_MIDI_NOTE_F_4"}, + {QK_MIDI_NOTE_F_SHARP_4, "QK_MIDI_NOTE_F_SHARP_4"}, + {QK_MIDI_NOTE_G_4, "QK_MIDI_NOTE_G_4"}, + {QK_MIDI_NOTE_G_SHARP_4, "QK_MIDI_NOTE_G_SHARP_4"}, + {QK_MIDI_NOTE_A_4, "QK_MIDI_NOTE_A_4"}, + {QK_MIDI_NOTE_A_SHARP_4, "QK_MIDI_NOTE_A_SHARP_4"}, + {QK_MIDI_NOTE_B_4, "QK_MIDI_NOTE_B_4"}, + {QK_MIDI_NOTE_C_5, "QK_MIDI_NOTE_C_5"}, + {QK_MIDI_NOTE_C_SHARP_5, "QK_MIDI_NOTE_C_SHARP_5"}, + {QK_MIDI_NOTE_D_5, "QK_MIDI_NOTE_D_5"}, + {QK_MIDI_NOTE_D_SHARP_5, "QK_MIDI_NOTE_D_SHARP_5"}, + {QK_MIDI_NOTE_E_5, "QK_MIDI_NOTE_E_5"}, + {QK_MIDI_NOTE_F_5, "QK_MIDI_NOTE_F_5"}, + {QK_MIDI_NOTE_F_SHARP_5, "QK_MIDI_NOTE_F_SHARP_5"}, + {QK_MIDI_NOTE_G_5, "QK_MIDI_NOTE_G_5"}, + {QK_MIDI_NOTE_G_SHARP_5, "QK_MIDI_NOTE_G_SHARP_5"}, + {QK_MIDI_NOTE_A_5, "QK_MIDI_NOTE_A_5"}, + {QK_MIDI_NOTE_A_SHARP_5, "QK_MIDI_NOTE_A_SHARP_5"}, + {QK_MIDI_NOTE_B_5, "QK_MIDI_NOTE_B_5"}, + {QK_MIDI_OCTAVE_N2, "QK_MIDI_OCTAVE_N2"}, + {QK_MIDI_OCTAVE_N1, "QK_MIDI_OCTAVE_N1"}, + {QK_MIDI_OCTAVE_0, "QK_MIDI_OCTAVE_0"}, + {QK_MIDI_OCTAVE_1, "QK_MIDI_OCTAVE_1"}, + {QK_MIDI_OCTAVE_2, "QK_MIDI_OCTAVE_2"}, + {QK_MIDI_OCTAVE_3, "QK_MIDI_OCTAVE_3"}, + {QK_MIDI_OCTAVE_4, "QK_MIDI_OCTAVE_4"}, + {QK_MIDI_OCTAVE_5, "QK_MIDI_OCTAVE_5"}, + {QK_MIDI_OCTAVE_6, "QK_MIDI_OCTAVE_6"}, + {QK_MIDI_OCTAVE_7, "QK_MIDI_OCTAVE_7"}, + {QK_MIDI_OCTAVE_DOWN, "QK_MIDI_OCTAVE_DOWN"}, + {QK_MIDI_OCTAVE_UP, "QK_MIDI_OCTAVE_UP"}, + {QK_MIDI_TRANSPOSE_N6, "QK_MIDI_TRANSPOSE_N6"}, + {QK_MIDI_TRANSPOSE_N5, "QK_MIDI_TRANSPOSE_N5"}, + {QK_MIDI_TRANSPOSE_N4, "QK_MIDI_TRANSPOSE_N4"}, + {QK_MIDI_TRANSPOSE_N3, "QK_MIDI_TRANSPOSE_N3"}, + {QK_MIDI_TRANSPOSE_N2, "QK_MIDI_TRANSPOSE_N2"}, + {QK_MIDI_TRANSPOSE_N1, "QK_MIDI_TRANSPOSE_N1"}, + {QK_MIDI_TRANSPOSE_0, "QK_MIDI_TRANSPOSE_0"}, + {QK_MIDI_TRANSPOSE_1, "QK_MIDI_TRANSPOSE_1"}, + {QK_MIDI_TRANSPOSE_2, "QK_MIDI_TRANSPOSE_2"}, + {QK_MIDI_TRANSPOSE_3, "QK_MIDI_TRANSPOSE_3"}, + {QK_MIDI_TRANSPOSE_4, "QK_MIDI_TRANSPOSE_4"}, + {QK_MIDI_TRANSPOSE_5, "QK_MIDI_TRANSPOSE_5"}, + {QK_MIDI_TRANSPOSE_6, "QK_MIDI_TRANSPOSE_6"}, + {QK_MIDI_TRANSPOSE_DOWN, "QK_MIDI_TRANSPOSE_DOWN"}, + {QK_MIDI_TRANSPOSE_UP, "QK_MIDI_TRANSPOSE_UP"}, + {QK_MIDI_VELOCITY_0, "QK_MIDI_VELOCITY_0"}, + {QK_MIDI_VELOCITY_1, "QK_MIDI_VELOCITY_1"}, + {QK_MIDI_VELOCITY_2, "QK_MIDI_VELOCITY_2"}, + {QK_MIDI_VELOCITY_3, "QK_MIDI_VELOCITY_3"}, + {QK_MIDI_VELOCITY_4, "QK_MIDI_VELOCITY_4"}, + {QK_MIDI_VELOCITY_5, "QK_MIDI_VELOCITY_5"}, + {QK_MIDI_VELOCITY_6, "QK_MIDI_VELOCITY_6"}, + {QK_MIDI_VELOCITY_7, "QK_MIDI_VELOCITY_7"}, + {QK_MIDI_VELOCITY_8, "QK_MIDI_VELOCITY_8"}, + {QK_MIDI_VELOCITY_9, "QK_MIDI_VELOCITY_9"}, + {QK_MIDI_VELOCITY_10, "QK_MIDI_VELOCITY_10"}, + {QK_MIDI_VELOCITY_DOWN, "QK_MIDI_VELOCITY_DOWN"}, + {QK_MIDI_VELOCITY_UP, "QK_MIDI_VELOCITY_UP"}, + {QK_MIDI_CHANNEL_1, "QK_MIDI_CHANNEL_1"}, + {QK_MIDI_CHANNEL_2, "QK_MIDI_CHANNEL_2"}, + {QK_MIDI_CHANNEL_3, "QK_MIDI_CHANNEL_3"}, + {QK_MIDI_CHANNEL_4, "QK_MIDI_CHANNEL_4"}, + {QK_MIDI_CHANNEL_5, "QK_MIDI_CHANNEL_5"}, + {QK_MIDI_CHANNEL_6, "QK_MIDI_CHANNEL_6"}, + {QK_MIDI_CHANNEL_7, "QK_MIDI_CHANNEL_7"}, + {QK_MIDI_CHANNEL_8, "QK_MIDI_CHANNEL_8"}, + {QK_MIDI_CHANNEL_9, "QK_MIDI_CHANNEL_9"}, + {QK_MIDI_CHANNEL_10, "QK_MIDI_CHANNEL_10"}, + {QK_MIDI_CHANNEL_11, "QK_MIDI_CHANNEL_11"}, + {QK_MIDI_CHANNEL_12, "QK_MIDI_CHANNEL_12"}, + {QK_MIDI_CHANNEL_13, "QK_MIDI_CHANNEL_13"}, + {QK_MIDI_CHANNEL_14, "QK_MIDI_CHANNEL_14"}, + {QK_MIDI_CHANNEL_15, "QK_MIDI_CHANNEL_15"}, + {QK_MIDI_CHANNEL_16, "QK_MIDI_CHANNEL_16"}, + {QK_MIDI_CHANNEL_DOWN, "QK_MIDI_CHANNEL_DOWN"}, + {QK_MIDI_CHANNEL_UP, "QK_MIDI_CHANNEL_UP"}, + {QK_MIDI_ALL_NOTES_OFF, "QK_MIDI_ALL_NOTES_OFF"}, + {QK_MIDI_SUSTAIN, "QK_MIDI_SUSTAIN"}, + {QK_MIDI_PORTAMENTO, "QK_MIDI_PORTAMENTO"}, + {QK_MIDI_SOSTENUTO, "QK_MIDI_SOSTENUTO"}, + {QK_MIDI_SOFT, "QK_MIDI_SOFT"}, + {QK_MIDI_LEGATO, "QK_MIDI_LEGATO"}, + {QK_MIDI_MODULATION, "QK_MIDI_MODULATION"}, + {QK_MIDI_MODULATION_SPEED_DOWN, "QK_MIDI_MODULATION_SPEED_DOWN"}, + {QK_MIDI_MODULATION_SPEED_UP, "QK_MIDI_MODULATION_SPEED_UP"}, + {QK_MIDI_PITCH_BEND_DOWN, "QK_MIDI_PITCH_BEND_DOWN"}, + {QK_MIDI_PITCH_BEND_UP, "QK_MIDI_PITCH_BEND_UP"}, + {QK_SEQUENCER_ON, "QK_SEQUENCER_ON"}, + {QK_SEQUENCER_OFF, "QK_SEQUENCER_OFF"}, + {QK_SEQUENCER_TOGGLE, "QK_SEQUENCER_TOGGLE"}, + {QK_SEQUENCER_TEMPO_DOWN, "QK_SEQUENCER_TEMPO_DOWN"}, + {QK_SEQUENCER_TEMPO_UP, "QK_SEQUENCER_TEMPO_UP"}, + {QK_SEQUENCER_RESOLUTION_DOWN, "QK_SEQUENCER_RESOLUTION_DOWN"}, + {QK_SEQUENCER_RESOLUTION_UP, "QK_SEQUENCER_RESOLUTION_UP"}, + {QK_SEQUENCER_STEPS_ALL, "QK_SEQUENCER_STEPS_ALL"}, + {QK_SEQUENCER_STEPS_CLEAR, "QK_SEQUENCER_STEPS_CLEAR"}, + {QK_JOYSTICK_BUTTON_0, "QK_JOYSTICK_BUTTON_0"}, + {QK_JOYSTICK_BUTTON_1, "QK_JOYSTICK_BUTTON_1"}, + {QK_JOYSTICK_BUTTON_2, "QK_JOYSTICK_BUTTON_2"}, + {QK_JOYSTICK_BUTTON_3, "QK_JOYSTICK_BUTTON_3"}, + {QK_JOYSTICK_BUTTON_4, "QK_JOYSTICK_BUTTON_4"}, + {QK_JOYSTICK_BUTTON_5, "QK_JOYSTICK_BUTTON_5"}, + {QK_JOYSTICK_BUTTON_6, "QK_JOYSTICK_BUTTON_6"}, + {QK_JOYSTICK_BUTTON_7, "QK_JOYSTICK_BUTTON_7"}, + {QK_JOYSTICK_BUTTON_8, "QK_JOYSTICK_BUTTON_8"}, + {QK_JOYSTICK_BUTTON_9, "QK_JOYSTICK_BUTTON_9"}, + {QK_JOYSTICK_BUTTON_10, "QK_JOYSTICK_BUTTON_10"}, + {QK_JOYSTICK_BUTTON_11, "QK_JOYSTICK_BUTTON_11"}, + {QK_JOYSTICK_BUTTON_12, "QK_JOYSTICK_BUTTON_12"}, + {QK_JOYSTICK_BUTTON_13, "QK_JOYSTICK_BUTTON_13"}, + {QK_JOYSTICK_BUTTON_14, "QK_JOYSTICK_BUTTON_14"}, + {QK_JOYSTICK_BUTTON_15, "QK_JOYSTICK_BUTTON_15"}, + {QK_JOYSTICK_BUTTON_16, "QK_JOYSTICK_BUTTON_16"}, + {QK_JOYSTICK_BUTTON_17, "QK_JOYSTICK_BUTTON_17"}, + {QK_JOYSTICK_BUTTON_18, "QK_JOYSTICK_BUTTON_18"}, + {QK_JOYSTICK_BUTTON_19, "QK_JOYSTICK_BUTTON_19"}, + {QK_JOYSTICK_BUTTON_20, "QK_JOYSTICK_BUTTON_20"}, + {QK_JOYSTICK_BUTTON_21, "QK_JOYSTICK_BUTTON_21"}, + {QK_JOYSTICK_BUTTON_22, "QK_JOYSTICK_BUTTON_22"}, + {QK_JOYSTICK_BUTTON_23, "QK_JOYSTICK_BUTTON_23"}, + {QK_JOYSTICK_BUTTON_24, "QK_JOYSTICK_BUTTON_24"}, + {QK_JOYSTICK_BUTTON_25, "QK_JOYSTICK_BUTTON_25"}, + {QK_JOYSTICK_BUTTON_26, "QK_JOYSTICK_BUTTON_26"}, + {QK_JOYSTICK_BUTTON_27, "QK_JOYSTICK_BUTTON_27"}, + {QK_JOYSTICK_BUTTON_28, "QK_JOYSTICK_BUTTON_28"}, + {QK_JOYSTICK_BUTTON_29, "QK_JOYSTICK_BUTTON_29"}, + {QK_JOYSTICK_BUTTON_30, "QK_JOYSTICK_BUTTON_30"}, + {QK_JOYSTICK_BUTTON_31, "QK_JOYSTICK_BUTTON_31"}, + {QK_PROGRAMMABLE_BUTTON_1, "QK_PROGRAMMABLE_BUTTON_1"}, + {QK_PROGRAMMABLE_BUTTON_2, "QK_PROGRAMMABLE_BUTTON_2"}, + {QK_PROGRAMMABLE_BUTTON_3, "QK_PROGRAMMABLE_BUTTON_3"}, + {QK_PROGRAMMABLE_BUTTON_4, "QK_PROGRAMMABLE_BUTTON_4"}, + {QK_PROGRAMMABLE_BUTTON_5, "QK_PROGRAMMABLE_BUTTON_5"}, + {QK_PROGRAMMABLE_BUTTON_6, "QK_PROGRAMMABLE_BUTTON_6"}, + {QK_PROGRAMMABLE_BUTTON_7, "QK_PROGRAMMABLE_BUTTON_7"}, + {QK_PROGRAMMABLE_BUTTON_8, "QK_PROGRAMMABLE_BUTTON_8"}, + {QK_PROGRAMMABLE_BUTTON_9, "QK_PROGRAMMABLE_BUTTON_9"}, + {QK_PROGRAMMABLE_BUTTON_10, "QK_PROGRAMMABLE_BUTTON_10"}, + {QK_PROGRAMMABLE_BUTTON_11, "QK_PROGRAMMABLE_BUTTON_11"}, + {QK_PROGRAMMABLE_BUTTON_12, "QK_PROGRAMMABLE_BUTTON_12"}, + {QK_PROGRAMMABLE_BUTTON_13, "QK_PROGRAMMABLE_BUTTON_13"}, + {QK_PROGRAMMABLE_BUTTON_14, "QK_PROGRAMMABLE_BUTTON_14"}, + {QK_PROGRAMMABLE_BUTTON_15, "QK_PROGRAMMABLE_BUTTON_15"}, + {QK_PROGRAMMABLE_BUTTON_16, "QK_PROGRAMMABLE_BUTTON_16"}, + {QK_PROGRAMMABLE_BUTTON_17, "QK_PROGRAMMABLE_BUTTON_17"}, + {QK_PROGRAMMABLE_BUTTON_18, "QK_PROGRAMMABLE_BUTTON_18"}, + {QK_PROGRAMMABLE_BUTTON_19, "QK_PROGRAMMABLE_BUTTON_19"}, + {QK_PROGRAMMABLE_BUTTON_20, "QK_PROGRAMMABLE_BUTTON_20"}, + {QK_PROGRAMMABLE_BUTTON_21, "QK_PROGRAMMABLE_BUTTON_21"}, + {QK_PROGRAMMABLE_BUTTON_22, "QK_PROGRAMMABLE_BUTTON_22"}, + {QK_PROGRAMMABLE_BUTTON_23, "QK_PROGRAMMABLE_BUTTON_23"}, + {QK_PROGRAMMABLE_BUTTON_24, "QK_PROGRAMMABLE_BUTTON_24"}, + {QK_PROGRAMMABLE_BUTTON_25, "QK_PROGRAMMABLE_BUTTON_25"}, + {QK_PROGRAMMABLE_BUTTON_26, "QK_PROGRAMMABLE_BUTTON_26"}, + {QK_PROGRAMMABLE_BUTTON_27, "QK_PROGRAMMABLE_BUTTON_27"}, + {QK_PROGRAMMABLE_BUTTON_28, "QK_PROGRAMMABLE_BUTTON_28"}, + {QK_PROGRAMMABLE_BUTTON_29, "QK_PROGRAMMABLE_BUTTON_29"}, + {QK_PROGRAMMABLE_BUTTON_30, "QK_PROGRAMMABLE_BUTTON_30"}, + {QK_PROGRAMMABLE_BUTTON_31, "QK_PROGRAMMABLE_BUTTON_31"}, + {QK_PROGRAMMABLE_BUTTON_32, "QK_PROGRAMMABLE_BUTTON_32"}, + {QK_AUDIO_ON, "QK_AUDIO_ON"}, + {QK_AUDIO_OFF, "QK_AUDIO_OFF"}, + {QK_AUDIO_TOGGLE, "QK_AUDIO_TOGGLE"}, + {QK_AUDIO_CLICKY_TOGGLE, "QK_AUDIO_CLICKY_TOGGLE"}, + {QK_AUDIO_CLICKY_ON, "QK_AUDIO_CLICKY_ON"}, + {QK_AUDIO_CLICKY_OFF, "QK_AUDIO_CLICKY_OFF"}, + {QK_AUDIO_CLICKY_UP, "QK_AUDIO_CLICKY_UP"}, + {QK_AUDIO_CLICKY_DOWN, "QK_AUDIO_CLICKY_DOWN"}, + {QK_AUDIO_CLICKY_RESET, "QK_AUDIO_CLICKY_RESET"}, + {QK_MUSIC_ON, "QK_MUSIC_ON"}, + {QK_MUSIC_OFF, "QK_MUSIC_OFF"}, + {QK_MUSIC_TOGGLE, "QK_MUSIC_TOGGLE"}, + {QK_MUSIC_MODE_NEXT, "QK_MUSIC_MODE_NEXT"}, + {QK_AUDIO_VOICE_NEXT, "QK_AUDIO_VOICE_NEXT"}, + {QK_AUDIO_VOICE_PREVIOUS, "QK_AUDIO_VOICE_PREVIOUS"}, + {QK_STENO_BOLT, "QK_STENO_BOLT"}, + {QK_STENO_GEMINI, "QK_STENO_GEMINI"}, + {QK_STENO_COMB, "QK_STENO_COMB"}, + {QK_STENO_COMB_MAX, "QK_STENO_COMB_MAX"}, + {QK_MACRO_0, "QK_MACRO_0"}, + {QK_MACRO_1, "QK_MACRO_1"}, + {QK_MACRO_2, "QK_MACRO_2"}, + {QK_MACRO_3, "QK_MACRO_3"}, + {QK_MACRO_4, "QK_MACRO_4"}, + {QK_MACRO_5, "QK_MACRO_5"}, + {QK_MACRO_6, "QK_MACRO_6"}, + {QK_MACRO_7, "QK_MACRO_7"}, + {QK_MACRO_8, "QK_MACRO_8"}, + {QK_MACRO_9, "QK_MACRO_9"}, + {QK_MACRO_10, "QK_MACRO_10"}, + {QK_MACRO_11, "QK_MACRO_11"}, + {QK_MACRO_12, "QK_MACRO_12"}, + {QK_MACRO_13, "QK_MACRO_13"}, + {QK_MACRO_14, "QK_MACRO_14"}, + {QK_MACRO_15, "QK_MACRO_15"}, + {QK_MACRO_16, "QK_MACRO_16"}, + {QK_MACRO_17, "QK_MACRO_17"}, + {QK_MACRO_18, "QK_MACRO_18"}, + {QK_MACRO_19, "QK_MACRO_19"}, + {QK_MACRO_20, "QK_MACRO_20"}, + {QK_MACRO_21, "QK_MACRO_21"}, + {QK_MACRO_22, "QK_MACRO_22"}, + {QK_MACRO_23, "QK_MACRO_23"}, + {QK_MACRO_24, "QK_MACRO_24"}, + {QK_MACRO_25, "QK_MACRO_25"}, + {QK_MACRO_26, "QK_MACRO_26"}, + {QK_MACRO_27, "QK_MACRO_27"}, + {QK_MACRO_28, "QK_MACRO_28"}, + {QK_MACRO_29, "QK_MACRO_29"}, + {QK_MACRO_30, "QK_MACRO_30"}, + {QK_MACRO_31, "QK_MACRO_31"}, + {QK_BACKLIGHT_ON, "QK_BACKLIGHT_ON"}, + {QK_BACKLIGHT_OFF, "QK_BACKLIGHT_OFF"}, + {QK_BACKLIGHT_TOGGLE, "QK_BACKLIGHT_TOGGLE"}, + {QK_BACKLIGHT_DOWN, "QK_BACKLIGHT_DOWN"}, + {QK_BACKLIGHT_UP, "QK_BACKLIGHT_UP"}, + {QK_BACKLIGHT_STEP, "QK_BACKLIGHT_STEP"}, + {QK_BACKLIGHT_TOGGLE_BREATHING, "QK_BACKLIGHT_TOGGLE_BREATHING"}, + {QK_LED_MATRIX_ON, "QK_LED_MATRIX_ON"}, + {QK_LED_MATRIX_OFF, "QK_LED_MATRIX_OFF"}, + {QK_LED_MATRIX_TOGGLE, "QK_LED_MATRIX_TOGGLE"}, + {QK_LED_MATRIX_MODE_NEXT, "QK_LED_MATRIX_MODE_NEXT"}, + {QK_LED_MATRIX_MODE_PREVIOUS, "QK_LED_MATRIX_MODE_PREVIOUS"}, + {QK_LED_MATRIX_BRIGHTNESS_UP, "QK_LED_MATRIX_BRIGHTNESS_UP"}, + {QK_LED_MATRIX_BRIGHTNESS_DOWN, "QK_LED_MATRIX_BRIGHTNESS_DOWN"}, + {QK_LED_MATRIX_SPEED_UP, "QK_LED_MATRIX_SPEED_UP"}, + {QK_LED_MATRIX_SPEED_DOWN, "QK_LED_MATRIX_SPEED_DOWN"}, + {QK_UNDERGLOW_TOGGLE, "QK_UNDERGLOW_TOGGLE"}, + {QK_UNDERGLOW_MODE_NEXT, "QK_UNDERGLOW_MODE_NEXT"}, + {QK_UNDERGLOW_MODE_PREVIOUS, "QK_UNDERGLOW_MODE_PREVIOUS"}, + {QK_UNDERGLOW_HUE_UP, "QK_UNDERGLOW_HUE_UP"}, + {QK_UNDERGLOW_HUE_DOWN, "QK_UNDERGLOW_HUE_DOWN"}, + {QK_UNDERGLOW_SATURATION_UP, "QK_UNDERGLOW_SATURATION_UP"}, + {QK_UNDERGLOW_SATURATION_DOWN, "QK_UNDERGLOW_SATURATION_DOWN"}, + {QK_UNDERGLOW_VALUE_UP, "QK_UNDERGLOW_VALUE_UP"}, + {QK_UNDERGLOW_VALUE_DOWN, "QK_UNDERGLOW_VALUE_DOWN"}, + {QK_UNDERGLOW_SPEED_UP, "QK_UNDERGLOW_SPEED_UP"}, + {QK_UNDERGLOW_SPEED_DOWN, "QK_UNDERGLOW_SPEED_DOWN"}, + {RGB_MODE_PLAIN, "RGB_MODE_PLAIN"}, + {RGB_MODE_BREATHE, "RGB_MODE_BREATHE"}, + {RGB_MODE_RAINBOW, "RGB_MODE_RAINBOW"}, + {RGB_MODE_SWIRL, "RGB_MODE_SWIRL"}, + {RGB_MODE_SNAKE, "RGB_MODE_SNAKE"}, + {RGB_MODE_KNIGHT, "RGB_MODE_KNIGHT"}, + {RGB_MODE_XMAS, "RGB_MODE_XMAS"}, + {RGB_MODE_GRADIENT, "RGB_MODE_GRADIENT"}, + {RGB_MODE_RGBTEST, "RGB_MODE_RGBTEST"}, + {RGB_MODE_TWINKLE, "RGB_MODE_TWINKLE"}, + {QK_RGB_MATRIX_ON, "QK_RGB_MATRIX_ON"}, + {QK_RGB_MATRIX_OFF, "QK_RGB_MATRIX_OFF"}, + {QK_RGB_MATRIX_TOGGLE, "QK_RGB_MATRIX_TOGGLE"}, + {QK_RGB_MATRIX_MODE_NEXT, "QK_RGB_MATRIX_MODE_NEXT"}, + {QK_RGB_MATRIX_MODE_PREVIOUS, "QK_RGB_MATRIX_MODE_PREVIOUS"}, + {QK_RGB_MATRIX_HUE_UP, "QK_RGB_MATRIX_HUE_UP"}, + {QK_RGB_MATRIX_HUE_DOWN, "QK_RGB_MATRIX_HUE_DOWN"}, + {QK_RGB_MATRIX_SATURATION_UP, "QK_RGB_MATRIX_SATURATION_UP"}, + {QK_RGB_MATRIX_SATURATION_DOWN, "QK_RGB_MATRIX_SATURATION_DOWN"}, + {QK_RGB_MATRIX_VALUE_UP, "QK_RGB_MATRIX_VALUE_UP"}, + {QK_RGB_MATRIX_VALUE_DOWN, "QK_RGB_MATRIX_VALUE_DOWN"}, + {QK_RGB_MATRIX_SPEED_UP, "QK_RGB_MATRIX_SPEED_UP"}, + {QK_RGB_MATRIX_SPEED_DOWN, "QK_RGB_MATRIX_SPEED_DOWN"}, + {QK_BOOTLOADER, "QK_BOOTLOADER"}, + {QK_REBOOT, "QK_REBOOT"}, + {QK_DEBUG_TOGGLE, "QK_DEBUG_TOGGLE"}, + {QK_CLEAR_EEPROM, "QK_CLEAR_EEPROM"}, + {QK_MAKE, "QK_MAKE"}, + {QK_AUTO_SHIFT_DOWN, "QK_AUTO_SHIFT_DOWN"}, + {QK_AUTO_SHIFT_UP, "QK_AUTO_SHIFT_UP"}, + {QK_AUTO_SHIFT_REPORT, "QK_AUTO_SHIFT_REPORT"}, + {QK_AUTO_SHIFT_ON, "QK_AUTO_SHIFT_ON"}, + {QK_AUTO_SHIFT_OFF, "QK_AUTO_SHIFT_OFF"}, + {QK_AUTO_SHIFT_TOGGLE, "QK_AUTO_SHIFT_TOGGLE"}, + {QK_GRAVE_ESCAPE, "QK_GRAVE_ESCAPE"}, + {QK_VELOCIKEY_TOGGLE, "QK_VELOCIKEY_TOGGLE"}, + {QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN"}, + {QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE"}, + {QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN"}, + {QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE"}, + {QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN"}, + {QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE"}, + {QK_SPACE_CADET_RIGHT_SHIFT_ENTER, "QK_SPACE_CADET_RIGHT_SHIFT_ENTER"}, + {QK_OUTPUT_AUTO, "QK_OUTPUT_AUTO"}, + {QK_OUTPUT_USB, "QK_OUTPUT_USB"}, + {QK_OUTPUT_BLUETOOTH, "QK_OUTPUT_BLUETOOTH"}, + {QK_UNICODE_MODE_NEXT, "QK_UNICODE_MODE_NEXT"}, + {QK_UNICODE_MODE_PREVIOUS, "QK_UNICODE_MODE_PREVIOUS"}, + {QK_UNICODE_MODE_MACOS, "QK_UNICODE_MODE_MACOS"}, + {QK_UNICODE_MODE_LINUX, "QK_UNICODE_MODE_LINUX"}, + {QK_UNICODE_MODE_WINDOWS, "QK_UNICODE_MODE_WINDOWS"}, + {QK_UNICODE_MODE_BSD, "QK_UNICODE_MODE_BSD"}, + {QK_UNICODE_MODE_WINCOMPOSE, "QK_UNICODE_MODE_WINCOMPOSE"}, + {QK_UNICODE_MODE_EMACS, "QK_UNICODE_MODE_EMACS"}, + {QK_HAPTIC_ON, "QK_HAPTIC_ON"}, + {QK_HAPTIC_OFF, "QK_HAPTIC_OFF"}, + {QK_HAPTIC_TOGGLE, "QK_HAPTIC_TOGGLE"}, + {QK_HAPTIC_RESET, "QK_HAPTIC_RESET"}, + {QK_HAPTIC_FEEDBACK_TOGGLE, "QK_HAPTIC_FEEDBACK_TOGGLE"}, + {QK_HAPTIC_BUZZ_TOGGLE, "QK_HAPTIC_BUZZ_TOGGLE"}, + {QK_HAPTIC_MODE_NEXT, "QK_HAPTIC_MODE_NEXT"}, + {QK_HAPTIC_MODE_PREVIOUS, "QK_HAPTIC_MODE_PREVIOUS"}, + {QK_HAPTIC_CONTINUOUS_TOGGLE, "QK_HAPTIC_CONTINUOUS_TOGGLE"}, + {QK_HAPTIC_CONTINUOUS_UP, "QK_HAPTIC_CONTINUOUS_UP"}, + {QK_HAPTIC_CONTINUOUS_DOWN, "QK_HAPTIC_CONTINUOUS_DOWN"}, + {QK_HAPTIC_DWELL_UP, "QK_HAPTIC_DWELL_UP"}, + {QK_HAPTIC_DWELL_DOWN, "QK_HAPTIC_DWELL_DOWN"}, + {QK_COMBO_ON, "QK_COMBO_ON"}, + {QK_COMBO_OFF, "QK_COMBO_OFF"}, + {QK_COMBO_TOGGLE, "QK_COMBO_TOGGLE"}, + {QK_DYNAMIC_MACRO_RECORD_START_1, "QK_DYNAMIC_MACRO_RECORD_START_1"}, + {QK_DYNAMIC_MACRO_RECORD_START_2, "QK_DYNAMIC_MACRO_RECORD_START_2"}, + {QK_DYNAMIC_MACRO_RECORD_STOP, "QK_DYNAMIC_MACRO_RECORD_STOP"}, + {QK_DYNAMIC_MACRO_PLAY_1, "QK_DYNAMIC_MACRO_PLAY_1"}, + {QK_DYNAMIC_MACRO_PLAY_2, "QK_DYNAMIC_MACRO_PLAY_2"}, + {QK_LEADER, "QK_LEADER"}, + {QK_LOCK, "QK_LOCK"}, + {QK_ONE_SHOT_ON, "QK_ONE_SHOT_ON"}, + {QK_ONE_SHOT_OFF, "QK_ONE_SHOT_OFF"}, + {QK_ONE_SHOT_TOGGLE, "QK_ONE_SHOT_TOGGLE"}, + {QK_KEY_OVERRIDE_TOGGLE, "QK_KEY_OVERRIDE_TOGGLE"}, + {QK_KEY_OVERRIDE_ON, "QK_KEY_OVERRIDE_ON"}, + {QK_KEY_OVERRIDE_OFF, "QK_KEY_OVERRIDE_OFF"}, + {QK_SECURE_LOCK, "QK_SECURE_LOCK"}, + {QK_SECURE_UNLOCK, "QK_SECURE_UNLOCK"}, + {QK_SECURE_TOGGLE, "QK_SECURE_TOGGLE"}, + {QK_SECURE_REQUEST, "QK_SECURE_REQUEST"}, + {QK_DYNAMIC_TAPPING_TERM_PRINT, "QK_DYNAMIC_TAPPING_TERM_PRINT"}, + {QK_DYNAMIC_TAPPING_TERM_UP, "QK_DYNAMIC_TAPPING_TERM_UP"}, + {QK_DYNAMIC_TAPPING_TERM_DOWN, "QK_DYNAMIC_TAPPING_TERM_DOWN"}, + {QK_CAPS_WORD_TOGGLE, "QK_CAPS_WORD_TOGGLE"}, + {QK_AUTOCORRECT_ON, "QK_AUTOCORRECT_ON"}, + {QK_AUTOCORRECT_OFF, "QK_AUTOCORRECT_OFF"}, + {QK_AUTOCORRECT_TOGGLE, "QK_AUTOCORRECT_TOGGLE"}, + {QK_TRI_LAYER_LOWER, "QK_TRI_LAYER_LOWER"}, + {QK_TRI_LAYER_UPPER, "QK_TRI_LAYER_UPPER"}, + {QK_REPEAT_KEY, "QK_REPEAT_KEY"}, + {QK_ALT_REPEAT_KEY, "QK_ALT_REPEAT_KEY"}, + {QK_KB_0, "QK_KB_0"}, + {QK_KB_1, "QK_KB_1"}, + {QK_KB_2, "QK_KB_2"}, + {QK_KB_3, "QK_KB_3"}, + {QK_KB_4, "QK_KB_4"}, + {QK_KB_5, "QK_KB_5"}, + {QK_KB_6, "QK_KB_6"}, + {QK_KB_7, "QK_KB_7"}, + {QK_KB_8, "QK_KB_8"}, + {QK_KB_9, "QK_KB_9"}, + {QK_KB_10, "QK_KB_10"}, + {QK_KB_11, "QK_KB_11"}, + {QK_KB_12, "QK_KB_12"}, + {QK_KB_13, "QK_KB_13"}, + {QK_KB_14, "QK_KB_14"}, + {QK_KB_15, "QK_KB_15"}, + {QK_KB_16, "QK_KB_16"}, + {QK_KB_17, "QK_KB_17"}, + {QK_KB_18, "QK_KB_18"}, + {QK_KB_19, "QK_KB_19"}, + {QK_KB_20, "QK_KB_20"}, + {QK_KB_21, "QK_KB_21"}, + {QK_KB_22, "QK_KB_22"}, + {QK_KB_23, "QK_KB_23"}, + {QK_KB_24, "QK_KB_24"}, + {QK_KB_25, "QK_KB_25"}, + {QK_KB_26, "QK_KB_26"}, + {QK_KB_27, "QK_KB_27"}, + {QK_KB_28, "QK_KB_28"}, + {QK_KB_29, "QK_KB_29"}, + {QK_KB_30, "QK_KB_30"}, + {QK_KB_31, "QK_KB_31"}, + {QK_USER_0, "QK_USER_0"}, + {QK_USER_1, "QK_USER_1"}, + {QK_USER_2, "QK_USER_2"}, + {QK_USER_3, "QK_USER_3"}, + {QK_USER_4, "QK_USER_4"}, + {QK_USER_5, "QK_USER_5"}, + {QK_USER_6, "QK_USER_6"}, + {QK_USER_7, "QK_USER_7"}, + {QK_USER_8, "QK_USER_8"}, + {QK_USER_9, "QK_USER_9"}, + {QK_USER_10, "QK_USER_10"}, + {QK_USER_11, "QK_USER_11"}, + {QK_USER_12, "QK_USER_12"}, + {QK_USER_13, "QK_USER_13"}, + {QK_USER_14, "QK_USER_14"}, + {QK_USER_15, "QK_USER_15"}, + {QK_USER_16, "QK_USER_16"}, + {QK_USER_17, "QK_USER_17"}, + {QK_USER_18, "QK_USER_18"}, + {QK_USER_19, "QK_USER_19"}, + {QK_USER_20, "QK_USER_20"}, + {QK_USER_21, "QK_USER_21"}, + {QK_USER_22, "QK_USER_22"}, + {QK_USER_23, "QK_USER_23"}, + {QK_USER_24, "QK_USER_24"}, + {QK_USER_25, "QK_USER_25"}, + {QK_USER_26, "QK_USER_26"}, + {QK_USER_27, "QK_USER_27"}, + {QK_USER_28, "QK_USER_28"}, + {QK_USER_29, "QK_USER_29"}, + {QK_USER_30, "QK_USER_30"}, + {QK_USER_31, "QK_USER_31"}, +}; diff --git a/tests/test_common/keycode_util.cpp b/tests/test_common/keycode_util.cpp new file mode 100644 index 0000000000..9f88d40ec7 --- /dev/null +++ b/tests/test_common/keycode_util.cpp @@ -0,0 +1,128 @@ +#include "keycode_util.hpp" +#include +extern "C" { +#include "action_code.h" +#include "keycode.h" +#include "quantum_keycodes.h" +#include "util.h" +} +#include +#include +#include + +extern std::map KEYCODE_ID_TABLE; + +std::string get_mods(uint8_t mods) { + std::stringstream s; + if ((mods & MOD_RCTL) == MOD_RCTL) { + s << XSTR(MOD_RCTL) << " | "; + } else if ((mods & MOD_LCTL) == MOD_LCTL) { + s << XSTR(MOD_LCTL) << " | "; + } + + if ((mods & MOD_RSFT) == MOD_RSFT) { + s << XSTR(MOD_RSFT) << " | "; + } else if ((mods & MOD_LSFT) == MOD_LSFT) { + s << XSTR(MOD_LSFT) << " | "; + } + + if ((mods & MOD_RALT) == MOD_RALT) { + s << XSTR(MOD_RALT) << " | "; + } else if ((mods & MOD_LALT) == MOD_LALT) { + s << XSTR(MOD_LALT) << " | "; + } + + if ((mods & MOD_RGUI) == MOD_RGUI) { + s << XSTR(MOD_RGUI) << " | "; + } else if ((mods & MOD_LGUI) == MOD_LGUI) { + s << XSTR(MOD_LGUI) << " | "; + } + + auto _mods = s.str(); + + if (_mods.size()) { + _mods.resize(_mods.size() - 3); + } + + return std::string(_mods); +} + +std::string get_qk_mods(uint16_t keycode) { + std::stringstream s; + if ((keycode & QK_RCTL) == QK_RCTL) { + s << XSTR(QK_RCTL) << " | "; + } else if ((keycode & QK_LCTL) == QK_LCTL) { + s << XSTR(QK_LCTL) << " | "; + } + + if ((keycode & QK_RSFT) == QK_RSFT) { + s << XSTR(QK_RSFT) << " | "; + } else if ((keycode & QK_LSFT) == QK_LSFT) { + s << XSTR(QK_LSFT) << " | "; + } + + if ((keycode & QK_RALT) == QK_RALT) { + s << XSTR(QK_RALT) << " | "; + } else if ((keycode & QK_LALT) == QK_LALT) { + s << XSTR(QK_LALT) << " | "; + } + + if ((keycode & QK_RGUI) == QK_RGUI) { + s << XSTR(QK_RGUI) << " | "; + } else if ((keycode & QK_LGUI) == QK_LGUI) { + s << XSTR(QK_LGUI) << " | "; + } + + auto _mods = s.str(); + + if (_mods.size()) { + _mods.resize(_mods.size() - 3); + } + + return std::string(_mods); +} + +std::string generate_identifier(uint16_t kc) { + std::stringstream s; + if (IS_QK_MOD_TAP(kc)) { + s << "MT(" << get_mods(QK_MOD_TAP_GET_MODS(kc)) << ", " << KEYCODE_ID_TABLE.at(kc & 0xFF) << ")"; + } else if (IS_QK_LAYER_TAP(kc)) { + s << "LT(" << +QK_LAYER_TAP_GET_LAYER(kc) << ", " << KEYCODE_ID_TABLE.at(kc & 0xFF) << ")"; + } else if (IS_QK_TO(kc)) { + s << "TO(" << +QK_TO_GET_LAYER(kc) << ")"; + } else if (IS_QK_MOMENTARY(kc)) { + s << "MO(" << +QK_MOMENTARY_GET_LAYER(kc) << ")"; + } else if (IS_QK_DEF_LAYER(kc)) { + s << "DF(" << +QK_DEF_LAYER_GET_LAYER(kc) << ")"; + } else if (IS_QK_TOGGLE_LAYER(kc)) { + s << "TG(" << +QK_TOGGLE_LAYER_GET_LAYER(kc) << ")"; + } else if (IS_QK_LAYER_TAP_TOGGLE(kc)) { + s << "TT(" << +QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) << ")"; + } else if (IS_QK_ONE_SHOT_LAYER(kc)) { + s << "OSL(" << +QK_ONE_SHOT_LAYER_GET_LAYER(kc) << ")"; + } else if (IS_QK_LAYER_MOD(kc)) { + s << "LM(" << +QK_LAYER_MOD_GET_LAYER(kc) << ", " << get_mods(QK_LAYER_MOD_GET_MODS(kc)) << ")"; + } else if (IS_QK_ONE_SHOT_MOD(kc)) { + s << "OSM(" << get_mods(QK_ONE_SHOT_MOD_GET_MODS(kc)) << ")"; + } else if (IS_QK_MODS(kc)) { + s << "QK_MODS(" << KEYCODE_ID_TABLE.at(QK_MODS_GET_BASIC_KEYCODE(kc)) << ", " << get_qk_mods(kc) << ")"; + } else if (IS_QK_TAP_DANCE(kc)) { + s << "TD(" << +(kc & 0xFF) << ")"; + } else { + // Fallback - we didn't found any matching keycode, generate the hex representation. + s << "unknown keycode: 0x" << std::hex << kc << ". Add conversion to " << XSTR(generate_identifier); + } + + return std::string(s.str()); +} + +std::string get_keycode_identifier_or_default(uint16_t keycode) { + auto identifier = KEYCODE_ID_TABLE.find(keycode); + if (identifier != KEYCODE_ID_TABLE.end()) { + return identifier->second; + } + + KEYCODE_ID_TABLE[keycode] = generate_identifier(keycode); + + return KEYCODE_ID_TABLE[keycode]; +} diff --git a/tests/test_common/keycode_util.hpp b/tests/test_common/keycode_util.hpp new file mode 100644 index 0000000000..3143ab364e --- /dev/null +++ b/tests/test_common/keycode_util.hpp @@ -0,0 +1,6 @@ +#pragma once + +#include +#include + +std::string get_keycode_identifier_or_default(uint16_t keycode); diff --git a/tests/test_common/mouse_report_util.cpp b/tests/test_common/mouse_report_util.cpp deleted file mode 100644 index 60cdeced24..0000000000 --- a/tests/test_common/mouse_report_util.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "mouse_report_util.hpp" -#include -#include -#include - -using namespace testing; - -bool operator==(const report_mouse_t& lhs, const report_mouse_t& rhs) { - return lhs.x == rhs.x && lhs.y == rhs.y && lhs.h == rhs.h && lhs.v == rhs.v && lhs.buttons == rhs.buttons; -} - -std::ostream& operator<<(std::ostream& os, const report_mouse_t& report) { - os << std::setw(10) << std::left << "mouse report: "; - - if (report.x == 0 && report.y == 0 && report.h == 0 && report.v == 0 && report.buttons == 0) { - return os << "empty" << std::endl; - } - - os << "(X:" << (int)report.x << ", Y:" << (int)report.y << ", H:" << (int)report.h << ", V:" << (int)report.v << ", B:" << (int)report.buttons << ")"; - return os << std::endl; -} - -MouseReportMatcher::MouseReportMatcher(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask) { - memset(&m_report, 0, sizeof(report_mouse_t)); - m_report.x = x; - m_report.y = y; - m_report.h = h; - m_report.v = v; - m_report.buttons = button_mask; -} - -bool MouseReportMatcher::MatchAndExplain(report_mouse_t& report, MatchResultListener* listener) const { - return m_report == report; -} - -void MouseReportMatcher::DescribeTo(::std::ostream* os) const { - *os << "is equal to " << m_report; -} - -void MouseReportMatcher::DescribeNegationTo(::std::ostream* os) const { - *os << "is not equal to " << m_report; -} diff --git a/tests/test_common/mouse_report_util.hpp b/tests/test_common/mouse_report_util.hpp deleted file mode 100644 index 645f6aa58c..0000000000 --- a/tests/test_common/mouse_report_util.hpp +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once -#include "report.h" -#include -#include "gmock/gmock.h" - -bool operator==(const report_mouse_t& lhs, const report_mouse_t& rhs); -std::ostream& operator<<(std::ostream& stream, const report_mouse_t& value); - -class MouseReportMatcher : public testing::MatcherInterface { - public: - MouseReportMatcher(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask); - virtual bool MatchAndExplain(report_mouse_t& report, testing::MatchResultListener* listener) const override; - virtual void DescribeTo(::std::ostream* os) const override; - virtual void DescribeNegationTo(::std::ostream* os) const override; - - private: - report_mouse_t m_report; -}; - -inline testing::Matcher MouseReport(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask) { - return testing::MakeMatcher(new MouseReportMatcher(x, y, h, v, button_mask)); -} diff --git a/tests/test_common/pointing_device_driver.c b/tests/test_common/pointing_device_driver.c deleted file mode 100644 index 42c7a814a4..0000000000 --- a/tests/test_common/pointing_device_driver.c +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "report.h" -#include "test_pointing_device_driver.h" -#include - -typedef struct { - bool pressed; - bool dirty; -} pd_button_state_t; - -typedef struct { - int16_t x; - int16_t y; - int16_t h; - int16_t v; - pd_button_state_t button_state[8]; - uint16_t cpi; - bool initiated; -} pd_config_t; - -static pd_config_t pd_config = {0}; - -bool pointing_device_driver_init(void) { - pd_set_init(true); - return pd_config.initiated; -} - -report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { - for (uint8_t i = 0; i < 8; i++) { - if (pd_config.button_state[i].dirty) { - pd_config.button_state[i].dirty = false; - if (pd_config.button_state[i].pressed) { - mouse_report.buttons |= 1 << (i); - } else { - mouse_report.buttons &= ~(1 << (i)); - } - } - } - mouse_report.x = pd_config.x; - mouse_report.y = pd_config.y; - mouse_report.h = pd_config.h; - mouse_report.v = pd_config.v; - return mouse_report; -} - -__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { - return pd_config.cpi; -} - -__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) { - pd_config.cpi = cpi; -} - -void pd_press_button(uint8_t btn) { - pd_config.button_state[btn].dirty = true; - pd_config.button_state[btn].pressed = true; -} -void pd_release_button(uint8_t btn) { - pd_config.button_state[btn].dirty = true; - pd_config.button_state[btn].pressed = false; -} - -void pd_clear_all_buttons(void) { - for (uint8_t i = 0; i < 8; i++) { - pd_config.button_state[i].dirty = true; - pd_config.button_state[i].pressed = false; - } -} - -void pd_set_x(int16_t x) { - pd_config.x = x; -} - -void pd_clear_x(void) { - pd_set_x(0); -} - -void pd_set_y(int16_t y) { - pd_config.y = y; -} -void pd_clear_y(void) { - pd_set_y(0); -} - -void pd_set_h(int16_t h) { - pd_config.h = h; -} -void pd_clear_h(void) { - pd_set_h(0); -} - -void pd_set_v(int16_t v) { - pd_config.v = v; -} -void pd_clear_v(void) { - pd_set_v(0); -} - -void pd_clear_movement(void) { - pd_set_x(0); - pd_set_y(0); - pd_set_h(0); - pd_set_v(0); -} - -void pd_set_init(bool success) { - pd_config.initiated = success; -} diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index 70b920ac86..d410b225f9 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -54,7 +54,6 @@ void TestDriver::send_nkro(report_nkro_t* report) { } void TestDriver::send_mouse(report_mouse_t* report) { - test_logger.trace() << std::setw(10) << std::left << "send_mouse: (X:" << (int)report->x << ", Y:" << (int)report->y << ", H:" << (int)report->h << ", V:" << (int)report->v << ", B:" << (int)report->buttons << ")" << std::endl; m_this->send_mouse_mock(*report); } diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index 5c36c80dfc..ec75d3fff2 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -20,9 +20,7 @@ #include #include "host.h" #include "keyboard_report_util.hpp" -extern "C" { -#include "keycode_string.h" -} +#include "keycode_util.hpp" #include "test_logger.hpp" class TestDriver { @@ -68,25 +66,6 @@ class TestDriver { */ #define EXPECT_REPORT(driver, report) EXPECT_CALL((driver), send_keyboard_mock(KeyboardReport report)) -/** - * @brief Sets gmock expectation that a mouse report of `report` will be sent. - * For this macro to parse correctly, the `report` arg must be surrounded by - * parentheses ( ). For instance, - * - * // Expect that a report of "X:-10 Y:0 H:0 V:10 BTN:1 " is sent to the host. - * EXPECT_REPORT(driver, (-10, 0, 0, 0, 1)); - * - * is shorthand for - * - * EXPECT_CALL(driver, send_mouse_mock(MouseReport(-10, 0, 0, 0, 1))); - * - * It is possible to use .Times() and other gmock APIS with EXPECT_REPORT, for instance, - * allow only single report to be sent: - * - * EXPECT_REPORT(driver, (-10, 0, 0, 0, 1)).Times(1); - */ -#define EXPECT_MOUSE_REPORT(driver, report) EXPECT_CALL((driver), send_mouse_mock(MouseReport report)) - /** * @brief Sets gmock expectation that Unicode `code_point` is sent with UNICODE_MODE_LINUX input * mode. For instance for U+2013, @@ -108,15 +87,6 @@ class TestDriver { */ #define EXPECT_EMPTY_REPORT(driver) EXPECT_REPORT(driver, ()) -/** - * @brief Sets gmock expectation that a empty keyboard report will be sent. - * It is possible to use .Times() and other gmock APIS with EXPECT_EMPTY_MOUSE_REPORT, for instance, - * allow any number of empty reports with: - * - * EXPECT_EMPTY_MOUSE_REPORT(driver).Times(AnyNumber()); - */ -#define EXPECT_EMPTY_MOUSE_REPORT(driver) EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 0)) - /** * @brief Sets gmock expectation that a keyboard report will be sent, without matching its content. * It is possible to use .Times() and other gmock APIS with EXPECT_ANY_REPORT, for instance, @@ -126,33 +96,19 @@ class TestDriver { */ #define EXPECT_ANY_REPORT(driver) EXPECT_CALL((driver), send_keyboard_mock(_)) -/** - * @brief Sets gmock expectation that a mouse report will be sent, without matching its content. - * It is possible to use .Times() and other gmock APIS with EXPECT_ANY_MOUSE_REPORT, for instance, - * allow a single arbitrary report with: - * - * EXPECT_ANY_MOUSE_REPORT(driver).Times(1); - */ -#define EXPECT_ANY_MOUSE_REPORT(driver) EXPECT_CALL((driver), send_mouse_mock(_)) - /** * @brief Sets gmock expectation that no keyboard report will be sent at all. */ #define EXPECT_NO_REPORT(driver) EXPECT_ANY_REPORT(driver).Times(0) -/** - * @brief Sets gmock expectation that no keyboard report will be sent at all. - */ -#define EXPECT_NO_MOUSE_REPORT(driver) EXPECT_ANY_MOUSE_REPORT(driver).Times(0) - /** @brief Tests whether keycode `actual` is equal to `expected`. */ #define EXPECT_KEYCODE_EQ(actual, expected) EXPECT_THAT((actual), KeycodeEq((expected))) -MATCHER_P(KeycodeEq, expected_keycode, "is equal to " + testing::PrintToString(expected_keycode) + ", keycode " + get_keycode_string(expected_keycode)) { +MATCHER_P(KeycodeEq, expected_keycode, "is equal to " + testing::PrintToString(expected_keycode) + ", keycode " + get_keycode_identifier_or_default(expected_keycode)) { if (arg == expected_keycode) { return true; } - *result_listener << "keycode " << get_keycode_string(arg); + *result_listener << "keycode " << get_keycode_identifier_or_default(arg); return false; } diff --git a/tests/test_common/test_fixture.cpp b/tests/test_common/test_fixture.cpp index 00084721d6..3cfb2cb4c2 100644 --- a/tests/test_common/test_fixture.cpp +++ b/tests/test_common/test_fixture.cpp @@ -7,7 +7,6 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" #include "keyboard_report_util.hpp" -#include "mouse_report_util.hpp" #include "keycode.h" #include "test_driver.hpp" #include "test_logger.hpp" @@ -46,7 +45,7 @@ void TestFixture::SetUpTestCase() { // The following is enough to bootstrap the values set in main eeconfig_init_quantum(); - eeconfig_update_debug(&debug_config); + eeconfig_update_debug(debug_config.raw); TestDriver driver; keyboard_init(); @@ -70,9 +69,6 @@ TestFixture::~TestFixture() { /* Reset keyboard state. */ clear_all_keys(); -#ifdef MOUSEKEY_ENABLE - EXPECT_EMPTY_MOUSE_REPORT(driver); -#endif clear_keyboard(); clear_oneshot_mods(); diff --git a/tests/test_common/test_keymap_key.hpp b/tests/test_common/test_keymap_key.hpp index ba2c2912e3..37b4c827e4 100644 --- a/tests/test_common/test_keymap_key.hpp +++ b/tests/test_common/test_keymap_key.hpp @@ -18,10 +18,10 @@ #include #include +#include "keycode_util.hpp" extern "C" { #include "keyboard.h" #include "test_matrix.h" -#include "keycode_string.h" } #include @@ -29,11 +29,11 @@ extern "C" { typedef uint8_t layer_t; struct KeymapKey { - KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(keycode), name(get_keycode_string(keycode)) { + KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(keycode), name(get_keycode_identifier_or_default(keycode)) { validate(); } - KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode, uint16_t report_code) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(report_code), name{get_keycode_string(keycode)} { + KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode, uint16_t report_code) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(report_code), name{get_keycode_identifier_or_default(keycode)} { validate(); } diff --git a/tests/test_common/test_pointing_device_driver.h b/tests/test_common/test_pointing_device_driver.h deleted file mode 100644 index ae136b21cd..0000000000 --- a/tests/test_common/test_pointing_device_driver.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 Dasky (@daskygit) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -void pd_press_button(uint8_t btn); -void pd_release_button(uint8_t btn); -void pd_clear_all_buttons(void); - -void pd_set_x(int16_t x); -void clear_x(void); - -void pd_set_y(int16_t y); -void pd_clear_y(void); - -void pd_set_h(int16_t h); -void pd_clear_h(void); - -void pd_set_v(int16_t v); -void pd_clear_v(void); - -void pd_clear_movement(void); - -void pd_set_init(bool success); - -#ifdef __cplusplus -} -#endif diff --git a/tmk_core/protocol.mk b/tmk_core/protocol.mk index 81520c1bc8..796b4e8787 100644 --- a/tmk_core/protocol.mk +++ b/tmk_core/protocol.mk @@ -33,6 +33,10 @@ ifeq ($(strip $(PROGRAMMABLE_BUTTON_ENABLE)), yes) SHARED_EP_ENABLE = yes endif +ifeq ($(strip $(RAW_ENABLE)), yes) + OPT_DEFS += -DRAW_ENABLE +endif + ifeq ($(strip $(CONSOLE_ENABLE)), yes) OPT_DEFS += -DCONSOLE_ENABLE else @@ -42,8 +46,16 @@ else endif ifeq ($(strip $(NKRO_ENABLE)), yes) - OPT_DEFS += -DNKRO_ENABLE - SHARED_EP_ENABLE = yes + ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) + $(info NKRO is not currently supported with Bluetooth, and has been disabled.) + else + OPT_DEFS += -DNKRO_ENABLE + SHARED_EP_ENABLE = yes + endif +endif + +ifeq ($(strip $(RING_BUFFERED_6KRO_REPORT_ENABLE)), yes) + OPT_DEFS += -DRING_BUFFERED_6KRO_REPORT_ENABLE endif ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes) diff --git a/tmk_core/protocol/arm_atsam/adc.c b/tmk_core/protocol/arm_atsam/adc.c new file mode 100644 index 0000000000..3afcbddf10 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/adc.c @@ -0,0 +1,115 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" + +uint16_t v_5v; +uint16_t v_5v_avg; +uint16_t v_con_1; +uint16_t v_con_2; +uint16_t v_con_1_boot; +uint16_t v_con_2_boot; + +void ADC0_clock_init(void) { + DBGC(DC_ADC0_CLOCK_INIT_BEGIN); + + MCLK->APBDMASK.bit.ADC0_ = 1; // ADC0 Clock Enable + + GCLK->PCHCTRL[ADC0_GCLK_ID].bit.GEN = GEN_OSC0; // Select generator clock + GCLK->PCHCTRL[ADC0_GCLK_ID].bit.CHEN = 1; // Enable peripheral clock + + DBGC(DC_ADC0_CLOCK_INIT_COMPLETE); +} + +void ADC0_init(void) { + DBGC(DC_ADC0_INIT_BEGIN); + + // MCU + PORT->Group[1].DIRCLR.reg = 1 << 0; // PB00 as input 5V + PORT->Group[1].DIRCLR.reg = 1 << 1; // PB01 as input CON2 + PORT->Group[1].DIRCLR.reg = 1 << 2; // PB02 as input CON1 + PORT->Group[1].PMUX[0].bit.PMUXE = 1; // PB00 mux select B ADC 5V + PORT->Group[1].PMUX[0].bit.PMUXO = 1; // PB01 mux select B ADC CON2 + PORT->Group[1].PMUX[1].bit.PMUXE = 1; // PB02 mux select B ADC CON1 + PORT->Group[1].PINCFG[0].bit.PMUXEN = 1; // PB01 mux ADC Enable 5V + PORT->Group[1].PINCFG[1].bit.PMUXEN = 1; // PB01 mux ADC Enable CON2 + PORT->Group[1].PINCFG[2].bit.PMUXEN = 1; // PB02 mux ADC Enable CON1 + + // ADC + ADC0->CTRLA.bit.SWRST = 1; + while (ADC0->SYNCBUSY.bit.SWRST) { + DBGC(DC_ADC0_SWRST_SYNCING_1); + } + while (ADC0->CTRLA.bit.SWRST) { + DBGC(DC_ADC0_SWRST_SYNCING_2); + } + + // Clock divide + ADC0->CTRLA.bit.PRESCALER = ADC_CTRLA_PRESCALER_DIV2_Val; + + // Averaging + ADC0->AVGCTRL.bit.SAMPLENUM = ADC_AVGCTRL_SAMPLENUM_4_Val; + while (ADC0->SYNCBUSY.bit.AVGCTRL) { + DBGC(DC_ADC0_AVGCTRL_SYNCING_1); + } + if (ADC0->AVGCTRL.bit.SAMPLENUM == ADC_AVGCTRL_SAMPLENUM_1_Val) + ADC0->AVGCTRL.bit.ADJRES = 0; + else if (ADC0->AVGCTRL.bit.SAMPLENUM == ADC_AVGCTRL_SAMPLENUM_2_Val) + ADC0->AVGCTRL.bit.ADJRES = 1; + else if (ADC0->AVGCTRL.bit.SAMPLENUM == ADC_AVGCTRL_SAMPLENUM_4_Val) + ADC0->AVGCTRL.bit.ADJRES = 2; + else if (ADC0->AVGCTRL.bit.SAMPLENUM == ADC_AVGCTRL_SAMPLENUM_8_Val) + ADC0->AVGCTRL.bit.ADJRES = 3; + else + ADC0->AVGCTRL.bit.ADJRES = 4; + while (ADC0->SYNCBUSY.bit.AVGCTRL) { + DBGC(DC_ADC0_AVGCTRL_SYNCING_2); + } + + // Settling + ADC0->SAMPCTRL.bit.SAMPLEN = 45; // Sampling Time Length: 1-63, 1 ADC CLK per + while (ADC0->SYNCBUSY.bit.SAMPCTRL) { + DBGC(DC_ADC0_SAMPCTRL_SYNCING_1); + } + + // Load factory calibration data + ADC0->CALIB.bit.BIASCOMP = ((*(uint32_t *)ADC0_FUSES_BIASCOMP_ADDR) & ADC0_FUSES_BIASCOMP_Msk) >> ADC0_FUSES_BIASCOMP_Pos; + ADC0->CALIB.bit.BIASR2R = ((*(uint32_t *)ADC0_FUSES_BIASR2R_ADDR) & ADC0_FUSES_BIASR2R_Msk) >> ADC0_FUSES_BIASR2R_Pos; + ADC0->CALIB.bit.BIASREFBUF = ((*(uint32_t *)ADC0_FUSES_BIASREFBUF_ADDR) & ADC0_FUSES_BIASREFBUF_Msk) >> ADC0_FUSES_BIASREFBUF_Pos; + + // Enable + ADC0->CTRLA.bit.ENABLE = 1; + while (ADC0->SYNCBUSY.bit.ENABLE) { + DBGC(DC_ADC0_ENABLE_SYNCING_1); + } + + DBGC(DC_ADC0_INIT_COMPLETE); +} + +uint16_t adc_get(uint8_t muxpos) { + ADC0->INPUTCTRL.bit.MUXPOS = muxpos; + while (ADC0->SYNCBUSY.bit.INPUTCTRL) { + } + + ADC0->SWTRIG.bit.START = 1; + while (ADC0->SYNCBUSY.bit.SWTRIG) { + } + while (!ADC0->INTFLAG.bit.RESRDY) { + } + + return ADC0->RESULT.reg; +} diff --git a/tmk_core/protocol/arm_atsam/adc.h b/tmk_core/protocol/arm_atsam/adc.h new file mode 100644 index 0000000000..74fbb0e66f --- /dev/null +++ b/tmk_core/protocol/arm_atsam/adc.h @@ -0,0 +1,37 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _ADC_H_ +#define _ADC_H_ + +#define ADC_5V_START_LEVEL 2365 + +#define ADC_5V ADC_INPUTCTRL_MUXPOS_AIN12_Val +#define ADC_CON1 ADC_INPUTCTRL_MUXPOS_AIN14_Val +#define ADC_CON2 ADC_INPUTCTRL_MUXPOS_AIN13_Val + +extern uint16_t v_5v; +extern uint16_t v_5v_avg; +extern uint16_t v_con_1; +extern uint16_t v_con_2; +extern uint16_t v_con_1_boot; +extern uint16_t v_con_2_boot; + +void ADC0_clock_init(void); +void ADC0_init(void); + +#endif //_ADC_H_ diff --git a/tmk_core/protocol/arm_atsam/arm_atsam.mk b/tmk_core/protocol/arm_atsam/arm_atsam.mk new file mode 100644 index 0000000000..ffd1fa9f50 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/arm_atsam.mk @@ -0,0 +1,31 @@ +ARM_ATSAM_DIR = protocol/arm_atsam + +SRC += $(ARM_ATSAM_DIR)/adc.c +SRC += $(ARM_ATSAM_DIR)/clks.c +SRC += $(ARM_ATSAM_DIR)/d51_util.c +SRC += $(ARM_ATSAM_DIR)/i2c_master.c +ifeq ($(RGB_MATRIX_DRIVER),custom) + SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix_programs.c + SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix.c +endif +SRC += $(ARM_ATSAM_DIR)/main_arm_atsam.c +SRC += $(ARM_ATSAM_DIR)/shift_register.c +SRC += $(ARM_ATSAM_DIR)/spi_master.c +SRC += $(ARM_ATSAM_DIR)/startup.c + +SRC += $(ARM_ATSAM_DIR)/usb/main_usb.c +SRC += $(ARM_ATSAM_DIR)/usb/udc.c +SRC += $(ARM_ATSAM_DIR)/usb/udi_cdc.c +SRC += $(ARM_ATSAM_DIR)/usb/udi_hid.c +SRC += $(ARM_ATSAM_DIR)/usb/udi_hid_kbd.c +SRC += $(ARM_ATSAM_DIR)/usb/udi_hid_kbd_desc.c +SRC += $(ARM_ATSAM_DIR)/usb/ui.c +SRC += $(ARM_ATSAM_DIR)/usb/usb.c +SRC += $(ARM_ATSAM_DIR)/usb/usb_device_udd.c +SRC += $(ARM_ATSAM_DIR)/usb/usb_hub.c +SRC += $(ARM_ATSAM_DIR)/usb/usb_util.c + +SRC += $(DRIVER_PATH)/usb2422.c + +# Search Path +VPATH += $(TMK_DIR)/$(ARM_ATSAM_DIR) diff --git a/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h b/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h new file mode 100644 index 0000000000..db9827f6a2 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h @@ -0,0 +1,47 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _ARM_ATSAM_PROTOCOL_H_ +#define _ARM_ATSAM_PROTOCOL_H_ + +#include "samd51j18a.h" + +#include "timer.h" +#include "d51_util.h" +#include "clks.h" +#include "wait.h" +#include "adc.h" +#include "i2c_master.h" +#include "shift_register.h" + +#include "./usb/usb_hub.h" + +#ifndef MD_BOOTLOADER + +# include "main_arm_atsam.h" +# ifdef RGB_MATRIX_ENABLE +# include "md_rgb_matrix.h" +# include "rgb_matrix.h" +# endif +# include "issi3733_driver.h" +# include "./usb/compiler.h" +# include "./usb/udc.h" +# include "./usb/udi_cdc.h" + +#endif // MD_BOOTLOADER + +#endif //_ARM_ATSAM_PROTOCOL_H_ diff --git a/tmk_core/protocol/arm_atsam/clks.c b/tmk_core/protocol/arm_atsam/clks.c new file mode 100644 index 0000000000..9b9475c616 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/clks.c @@ -0,0 +1,436 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" + +#include + +volatile clk_t system_clks; +volatile uint64_t ms_clk; +uint32_t usec_delay_mult; +#define USEC_DELAY_LOOP_CYCLES 3 // Sum of instruction cycles in us delay loop + +const uint32_t sercom_apbbase[] = {(uint32_t)SERCOM0, (uint32_t)SERCOM1, (uint32_t)SERCOM2, (uint32_t)SERCOM3, (uint32_t)SERCOM4, (uint32_t)SERCOM5}; +const uint8_t sercom_pchan[] = {7, 8, 23, 24, 34, 35}; + +#define USE_DPLL_IND 0 +#define USE_DPLL_DEF GCLK_SOURCE_DPLL0 + +void CLK_oscctrl_init(void) { + Oscctrl *posctrl = OSCCTRL; + Gclk * pgclk = GCLK; + + DBGC(DC_CLK_OSC_INIT_BEGIN); + + // default setup on por + system_clks.freq_dfll = FREQ_DFLL_DEFAULT; + system_clks.freq_gclk[0] = system_clks.freq_dfll; + + // configure and startup 16MHz xosc0 + posctrl->XOSCCTRL[0].bit.ENABLE = 0; + posctrl->XOSCCTRL[0].bit.STARTUP = 0xD; + posctrl->XOSCCTRL[0].bit.ENALC = 1; + posctrl->XOSCCTRL[0].bit.IMULT = 5; + posctrl->XOSCCTRL[0].bit.IPTAT = 3; + posctrl->XOSCCTRL[0].bit.ONDEMAND = 0; + posctrl->XOSCCTRL[0].bit.XTALEN = 1; + posctrl->XOSCCTRL[0].bit.ENABLE = 1; + while (posctrl->STATUS.bit.XOSCRDY0 == 0) { + DBGC(DC_CLK_OSC_INIT_XOSC0_SYNC); + } + system_clks.freq_xosc0 = FREQ_XOSC0; + + // configure and startup DPLL + posctrl->Dpll[USE_DPLL_IND].DPLLCTRLA.bit.ENABLE = 0; + while (posctrl->Dpll[USE_DPLL_IND].DPLLSYNCBUSY.bit.ENABLE) { + DBGC(DC_CLK_OSC_INIT_DPLL_SYNC_DISABLE); + } + posctrl->Dpll[USE_DPLL_IND].DPLLCTRLB.bit.REFCLK = 2; // select XOSC0 (16MHz) + posctrl->Dpll[USE_DPLL_IND].DPLLCTRLB.bit.DIV = 7; // 16 MHz / (2 * (7 + 1)) = 1 MHz + posctrl->Dpll[USE_DPLL_IND].DPLLRATIO.bit.LDR = PLL_RATIO; // 1 MHz * (PLL_RATIO(47) + 1) = 48MHz + while (posctrl->Dpll[USE_DPLL_IND].DPLLSYNCBUSY.bit.DPLLRATIO) { + DBGC(DC_CLK_OSC_INIT_DPLL_SYNC_RATIO); + } + posctrl->Dpll[USE_DPLL_IND].DPLLCTRLA.bit.ONDEMAND = 0; + posctrl->Dpll[USE_DPLL_IND].DPLLCTRLA.bit.ENABLE = 1; + while (posctrl->Dpll[USE_DPLL_IND].DPLLSYNCBUSY.bit.ENABLE) { + DBGC(DC_CLK_OSC_INIT_DPLL_SYNC_ENABLE); + } + while (posctrl->Dpll[USE_DPLL_IND].DPLLSTATUS.bit.LOCK == 0) { + DBGC(DC_CLK_OSC_INIT_DPLL_WAIT_LOCK); + } + while (posctrl->Dpll[USE_DPLL_IND].DPLLSTATUS.bit.CLKRDY == 0) { + DBGC(DC_CLK_OSC_INIT_DPLL_WAIT_CLKRDY); + } + system_clks.freq_dpll[0] = (system_clks.freq_xosc0 / 2 / (posctrl->Dpll[USE_DPLL_IND].DPLLCTRLB.bit.DIV + 1)) * (posctrl->Dpll[USE_DPLL_IND].DPLLRATIO.bit.LDR + 1); + + // change gclk0 to DPLL + pgclk->GENCTRL[GEN_DPLL0].bit.SRC = USE_DPLL_DEF; + while (pgclk->SYNCBUSY.bit.GENCTRL0) { + DBGC(DC_CLK_OSC_INIT_GCLK_SYNC_GENCTRL0); + } + + system_clks.freq_gclk[0] = system_clks.freq_dpll[0]; + + usec_delay_mult = system_clks.freq_gclk[0] / (USEC_DELAY_LOOP_CYCLES * 1000000); + if (usec_delay_mult < 1) usec_delay_mult = 1; // Never allow a multiplier of zero + + DBGC(DC_CLK_OSC_INIT_COMPLETE); +} + +// configure for 1MHz (1 usec timebase) +// call CLK_set_gclk_freq(GEN_TC45, FREQ_TC45_DEFAULT); +uint32_t CLK_set_gclk_freq(uint8_t gclkn, uint32_t freq) { + Gclk *pgclk = GCLK; + + DBGC(DC_CLK_SET_GCLK_FREQ_BEGIN); + + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_SET_GCLK_FREQ_SYNC_1); + } + pgclk->GENCTRL[gclkn].bit.SRC = USE_DPLL_DEF; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_SET_GCLK_FREQ_SYNC_2); + } + pgclk->GENCTRL[gclkn].bit.DIV = (uint8_t)(system_clks.freq_dpll[0] / freq); + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_SET_GCLK_FREQ_SYNC_3); + } + pgclk->GENCTRL[gclkn].bit.DIVSEL = 0; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_SET_GCLK_FREQ_SYNC_4); + } + pgclk->GENCTRL[gclkn].bit.GENEN = 1; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_SET_GCLK_FREQ_SYNC_5); + } + system_clks.freq_gclk[gclkn] = system_clks.freq_dpll[0] / pgclk->GENCTRL[gclkn].bit.DIV; + + DBGC(DC_CLK_SET_GCLK_FREQ_COMPLETE); + + return system_clks.freq_gclk[gclkn]; +} + +void CLK_init_osc(void) { + uint8_t gclkn = GEN_OSC0; + Gclk * pgclk = GCLK; + + DBGC(DC_CLK_INIT_OSC_BEGIN); + + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_INIT_OSC_SYNC_1); + } + pgclk->GENCTRL[gclkn].bit.SRC = GCLK_SOURCE_XOSC0; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_INIT_OSC_SYNC_2); + } + pgclk->GENCTRL[gclkn].bit.DIV = 1; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_INIT_OSC_SYNC_3); + } + pgclk->GENCTRL[gclkn].bit.DIVSEL = 0; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_INIT_OSC_SYNC_4); + } + pgclk->GENCTRL[gclkn].bit.GENEN = 1; + while (pgclk->SYNCBUSY.vec.GENCTRL) { + DBGC(DC_CLK_INIT_OSC_SYNC_5); + } + system_clks.freq_gclk[gclkn] = system_clks.freq_xosc0; + + DBGC(DC_CLK_INIT_OSC_COMPLETE); +} + +void CLK_reset_time(void) { + Tc *ptc4 = TC4; + Tc *ptc0 = TC0; + + ms_clk = 0; + + DBGC(DC_CLK_RESET_TIME_BEGIN); + + // stop counters + ptc4->COUNT16.CTRLA.bit.ENABLE = 0; + while (ptc4->COUNT16.SYNCBUSY.bit.ENABLE) { + } + ptc0->COUNT32.CTRLA.bit.ENABLE = 0; + while (ptc0->COUNT32.SYNCBUSY.bit.ENABLE) { + } + // zero counters + ptc4->COUNT16.COUNT.reg = 0; + while (ptc4->COUNT16.SYNCBUSY.bit.COUNT) { + } + ptc0->COUNT32.COUNT.reg = 0; + while (ptc0->COUNT32.SYNCBUSY.bit.COUNT) { + } + // start counters + ptc0->COUNT32.CTRLA.bit.ENABLE = 1; + while (ptc0->COUNT32.SYNCBUSY.bit.ENABLE) { + } + ptc4->COUNT16.CTRLA.bit.ENABLE = 1; + while (ptc4->COUNT16.SYNCBUSY.bit.ENABLE) { + } + + DBGC(DC_CLK_RESET_TIME_COMPLETE); +} + +void TC4_Handler() { + if (TC4->COUNT16.INTFLAG.bit.MC0) { + TC4->COUNT16.INTFLAG.reg = TC_INTENCLR_MC0; + ms_clk++; + } +} + +uint32_t CLK_enable_timebase(void) { + Gclk * pgclk = GCLK; + Mclk * pmclk = MCLK; + Tc * ptc4 = TC4; + Tc * ptc0 = TC0; + Evsys *pevsys = EVSYS; + + DBGC(DC_CLK_ENABLE_TIMEBASE_BEGIN); + + // gclk2 highspeed time base + CLK_set_gclk_freq(GEN_TC45, FREQ_TC45_DEFAULT); + CLK_init_osc(); + + // unmask TC4, sourcegclk2 to TC4 + pmclk->APBCMASK.bit.TC4_ = 1; + pgclk->PCHCTRL[TC4_GCLK_ID].bit.GEN = GEN_TC45; + pgclk->PCHCTRL[TC4_GCLK_ID].bit.CHEN = 1; + + // configure TC4 + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_BEGIN); + ptc4->COUNT16.CTRLA.bit.ENABLE = 0; + while (ptc4->COUNT16.SYNCBUSY.bit.ENABLE) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_DISABLE); + } + ptc4->COUNT16.CTRLA.bit.SWRST = 1; + while (ptc4->COUNT16.SYNCBUSY.bit.SWRST) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_SWRST_1); + } + while (ptc4->COUNT16.CTRLA.bit.SWRST) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_SWRST_2); + } + + // CTRLA defaults + // CTRLB as default, counting up + ptc4->COUNT16.CTRLBCLR.reg = 5; + while (ptc4->COUNT16.SYNCBUSY.bit.CTRLB) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_CLTRB); + } + ptc4->COUNT16.CC[0].reg = 999; + while (ptc4->COUNT16.SYNCBUSY.bit.CC0) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_CC0); + } + // ptc4->COUNT16.DBGCTRL.bit.DBGRUN = 1; + + // wave mode + ptc4->COUNT16.WAVE.bit.WAVEGEN = 1; // MFRQ match frequency mode, toggle each CC match + // generate event for next stage + ptc4->COUNT16.EVCTRL.bit.MCEO0 = 1; + + NVIC_EnableIRQ(TC4_IRQn); + ptc4->COUNT16.INTENSET.bit.MC0 = 1; + + DBGC(DC_CLK_ENABLE_TIMEBASE_TC4_COMPLETE); + + // unmask TC0,1, sourcegclk2 to TC0,1 + pmclk->APBAMASK.bit.TC0_ = 1; + pgclk->PCHCTRL[TC0_GCLK_ID].bit.GEN = GEN_TC45; + pgclk->PCHCTRL[TC0_GCLK_ID].bit.CHEN = 1; + + pmclk->APBAMASK.bit.TC1_ = 1; + pgclk->PCHCTRL[TC1_GCLK_ID].bit.GEN = GEN_TC45; + pgclk->PCHCTRL[TC1_GCLK_ID].bit.CHEN = 1; + + // configure TC0 + DBGC(DC_CLK_ENABLE_TIMEBASE_TC0_BEGIN); + ptc0->COUNT32.CTRLA.bit.ENABLE = 0; + while (ptc0->COUNT32.SYNCBUSY.bit.ENABLE) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_DISABLE); + } + ptc0->COUNT32.CTRLA.bit.SWRST = 1; + while (ptc0->COUNT32.SYNCBUSY.bit.SWRST) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_SWRST_1); + } + while (ptc0->COUNT32.CTRLA.bit.SWRST) { + DBGC(DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_SWRST_2); + } + // CTRLA as default + ptc0->COUNT32.CTRLA.bit.MODE = 2; // 32 bit mode + ptc0->COUNT32.EVCTRL.bit.TCEI = 1; // enable incoming events + ptc0->COUNT32.EVCTRL.bit.EVACT = 2; // count events + + DBGC(DC_CLK_ENABLE_TIMEBASE_TC0_COMPLETE); + + DBGC(DC_CLK_ENABLE_TIMEBASE_EVSYS_BEGIN); + + // configure event system + pmclk->APBBMASK.bit.EVSYS_ = 1; + pgclk->PCHCTRL[EVSYS_GCLK_ID_0].bit.GEN = GEN_TC45; + pgclk->PCHCTRL[EVSYS_GCLK_ID_0].bit.CHEN = 1; + pevsys->USER[44].reg = EVSYS_ID_USER_PORT_EV_0; // TC0 will get event channel 0 + pevsys->Channel[0].CHANNEL.bit.EDGSEL = EVSYS_CHANNEL_EDGSEL_RISING_EDGE_Val; // Rising edge + pevsys->Channel[0].CHANNEL.bit.PATH = EVSYS_CHANNEL_PATH_SYNCHRONOUS_Val; // Synchronous + pevsys->Channel[0].CHANNEL.bit.EVGEN = EVSYS_ID_GEN_TC4_MCX_0; // TC4 MC0 + + DBGC(DC_CLK_ENABLE_TIMEBASE_EVSYS_COMPLETE); + + CLK_reset_time(); + + ADC0_clock_init(); + + DBGC(DC_CLK_ENABLE_TIMEBASE_COMPLETE); + + return 0; +} + +void CLK_delay_us(uint32_t usec) { + asm("CBZ R0, return\n\t" // If usec == 0, branch to return label + ); + asm("MULS R0, %0\n\t" // Multiply R0(usec) by usec_delay_mult and store in R0 + ".balign 16\n\t" // Ensure loop is aligned for fastest performance + "loop: SUBS R0, #1\n\t" // Subtract 1 from R0 and update flags (1 cycle) + "BNE loop\n\t" // Branch if non-zero to loop label (2 cycles) NOTE: USEC_DELAY_LOOP_CYCLES is the sum of loop cycles + "return:\n\t" // Return label + : // No output registers + : "r"(usec_delay_mult) // For %0 + ); + // Note: BX LR generated +} + +void CLK_delay_ms(uint64_t msec) { + msec += timer_read64(); + while (msec > timer_read64()) { + } +} + +void clk_enable_sercom_apbmask(int sercomn) { + Mclk *pmclk = MCLK; + switch (sercomn) { + case 0: + pmclk->APBAMASK.bit.SERCOM0_ = 1; + break; + case 1: + pmclk->APBAMASK.bit.SERCOM1_ = 1; + break; + case 2: + pmclk->APBBMASK.bit.SERCOM2_ = 1; + break; + case 3: + pmclk->APBBMASK.bit.SERCOM3_ = 1; + break; + default: + break; + } +} + +// call CLK_oscctrl_init first +// call CLK_set_spi_freq(CHAN_SERCOM_SPI, FREQ_SPI_DEFAULT); +uint32_t CLK_set_spi_freq(uint8_t sercomn, uint32_t freq) { + DBGC(DC_CLK_SET_SPI_FREQ_BEGIN); + + Gclk * pgclk = GCLK; + Sercom *psercom = (Sercom *)sercom_apbbase[sercomn]; + clk_enable_sercom_apbmask(sercomn); + + // all gclk0 for now + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.GEN = 0; + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.CHEN = 1; + + psercom->I2CM.CTRLA.bit.SWRST = 1; + while (psercom->I2CM.SYNCBUSY.bit.SWRST) { + } + while (psercom->I2CM.CTRLA.bit.SWRST) { + } + + psercom->SPI.BAUD.reg = (uint8_t)(system_clks.freq_gclk[0] / 2 / freq - 1); + system_clks.freq_spi = system_clks.freq_gclk[0] / 2 / (psercom->SPI.BAUD.reg + 1); + system_clks.freq_sercom[sercomn] = system_clks.freq_spi; + + DBGC(DC_CLK_SET_SPI_FREQ_COMPLETE); + + return system_clks.freq_spi; +} + +// call CLK_oscctrl_init first +// call CLK_set_i2c0_freq(CHAN_SERCOM_I2C0, FREQ_I2C0_DEFAULT); +uint32_t CLK_set_i2c0_freq(uint8_t sercomn, uint32_t freq) { + DBGC(DC_CLK_SET_I2C0_FREQ_BEGIN); + + Gclk * pgclk = GCLK; + Sercom *psercom = (Sercom *)sercom_apbbase[sercomn]; + clk_enable_sercom_apbmask(sercomn); + + // all gclk0 for now + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.GEN = 0; + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.CHEN = 1; + + psercom->I2CM.CTRLA.bit.SWRST = 1; + while (psercom->I2CM.SYNCBUSY.bit.SWRST) { + } + while (psercom->I2CM.CTRLA.bit.SWRST) { + } + + psercom->I2CM.BAUD.bit.BAUD = (uint8_t)(system_clks.freq_gclk[0] / 2 / freq - 1); + system_clks.freq_i2c0 = system_clks.freq_gclk[0] / 2 / (psercom->I2CM.BAUD.bit.BAUD + 1); + system_clks.freq_sercom[sercomn] = system_clks.freq_i2c0; + + DBGC(DC_CLK_SET_I2C0_FREQ_COMPLETE); + + return system_clks.freq_i2c0; +} + +// call CLK_oscctrl_init first +// call CLK_set_i2c1_freq(CHAN_SERCOM_I2C1, FREQ_I2C1_DEFAULT); +uint32_t CLK_set_i2c1_freq(uint8_t sercomn, uint32_t freq) { + DBGC(DC_CLK_SET_I2C1_FREQ_BEGIN); + + Gclk * pgclk = GCLK; + Sercom *psercom = (Sercom *)sercom_apbbase[sercomn]; + clk_enable_sercom_apbmask(sercomn); + + // all gclk0 for now + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.GEN = 0; + pgclk->PCHCTRL[sercom_pchan[sercomn]].bit.CHEN = 1; + + psercom->I2CM.CTRLA.bit.SWRST = 1; + while (psercom->I2CM.SYNCBUSY.bit.SWRST) { + } + while (psercom->I2CM.CTRLA.bit.SWRST) { + } + + psercom->I2CM.BAUD.bit.BAUD = (uint8_t)(system_clks.freq_gclk[0] / 2 / freq - 10); + system_clks.freq_i2c1 = system_clks.freq_gclk[0] / 2 / (psercom->I2CM.BAUD.bit.BAUD + 10); + system_clks.freq_sercom[sercomn] = system_clks.freq_i2c1; + + DBGC(DC_CLK_SET_I2C1_FREQ_COMPLETE); + + return system_clks.freq_i2c1; +} + +void CLK_init(void) { + DBGC(DC_CLK_INIT_BEGIN); + + memset((void *)&system_clks, 0, sizeof(system_clks)); + + CLK_oscctrl_init(); + CLK_enable_timebase(); + + DBGC(DC_CLK_INIT_COMPLETE); +} diff --git a/tmk_core/protocol/arm_atsam/clks.h b/tmk_core/protocol/arm_atsam/clks.h new file mode 100644 index 0000000000..6ee71aff8f --- /dev/null +++ b/tmk_core/protocol/arm_atsam/clks.h @@ -0,0 +1,89 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _CLKS_H_ +#define _CLKS_H_ + +#ifndef MD_BOOTLOADER + +// From keyboard +# include "config_led.h" +# include "config.h" + +#endif // MD_BOOTLOADER + +#define PLL_RATIO 47 // mcu frequency ((X+1)MHz) +#define FREQ_DFLL_DEFAULT 48000000 // DFLL frequency / usb clock +#define FREQ_SPI_DEFAULT 1000000 // spi to 595 shift regs +#define FREQ_I2C0_DEFAULT 100000 // i2c to hub +#define FREQ_I2C1_DEFAULT I2C_HZ // i2c to LED drivers +#define FREQ_TC45_DEFAULT 1000000 // 1 usec resolution + +// I2C1 Set ~Result PWM Time (2x Drivers) +// 1000000 1090000 +// 900000 1000000 3.82ms +// 800000 860000 +// 700000 750000 +// 600000 630000 +// 580000 615000 6.08ms +// 500000 522000 + +#define FREQ_XOSC0 16000000 + +#define CHAN_SERCOM_SPI 2 // shift regs +#define CHAN_SERCOM_I2C0 0 // hub +#define CHAN_SERCOM_I2C1 1 // led drivers +#define CHAN_SERCOM_UART 3 // debug util + +// Generator clock channels +#define GEN_DPLL0 0 +#define GEN_OSC0 1 +#define GEN_TC45 2 + +#define SERCOM_COUNT 5 +#define GCLK_COUNT 12 + +typedef struct clk_s { + uint32_t freq_dfll; + uint32_t freq_dpll[2]; + uint32_t freq_sercom[SERCOM_COUNT]; + uint32_t freq_gclk[GCLK_COUNT]; + uint32_t freq_xosc0; + uint32_t freq_spi; + uint32_t freq_i2c0; + uint32_t freq_i2c1; + uint32_t freq_uart; + uint32_t freq_adc0; +} clk_t; + +extern volatile clk_t system_clks; +extern volatile uint64_t ms_clk; + +void CLK_oscctrl_init(void); +void CLK_reset_time(void); +uint32_t CLK_set_gclk_freq(uint8_t gclkn, uint32_t freq); +uint32_t CLK_enable_timebase(void); +uint64_t timer_read64(void); +void CLK_delay_us(uint32_t usec); +void CLK_delay_ms(uint64_t msec); + +uint32_t CLK_set_spi_freq(uint8_t sercomn, uint32_t freq); +uint32_t CLK_set_i2c0_freq(uint8_t sercomn, uint32_t freq); +uint32_t CLK_set_i2c1_freq(uint8_t sercomn, uint32_t freq); +void CLK_init(void); + +#endif // _CLKS_H_ diff --git a/tmk_core/protocol/arm_atsam/d51_util.c b/tmk_core/protocol/arm_atsam/d51_util.c new file mode 100644 index 0000000000..5903233085 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/d51_util.c @@ -0,0 +1,244 @@ +#include "d51_util.h" + +static volatile uint32_t w; + +// Display unsigned 32-bit number by port toggling DBG_1 (to view on a scope) +// Read as follows: 1230 = | | | | | | || (note zero is fast double toggle) +#define DBG_PAUSE 5 +void dbg_print(uint32_t x) { + int8_t t; + uint32_t n; + uint32_t p, p2; + + if (x < 10) + t = 0; + else if (x < 100) + t = 1; + else if (x < 1000) + t = 2; + else if (x < 10000) + t = 3; + else if (x < 100000) + t = 4; + else if (x < 1000000) + t = 5; + else if (x < 10000000) + t = 6; + else if (x < 100000000) + t = 7; + else if (x < 1000000000) + t = 8; + else + t = 9; + + while (t >= 0) { + p2 = t; + p = 1; + while (p2--) + p *= 10; + n = x / p; + x -= n * p; + if (!n) { + DBG_1_ON; + DBG_1_OFF; + DBG_1_ON; + DBG_1_OFF; + n--; + } else { + while (n > 0) { + DBG_1_ON; + DBG_1_OFF; + n--; + } + } + + t--; + } + + for (w = DBG_PAUSE; w; w--) + ; // Long pause after number is complete +} + +// Display unsigned 32-bit number through debug led +// Read as follows: 1230 = [*] [* *] [* * *] [**] (note zero is fast double flash) +#define DLED_ONTIME 1000000 +#define DLED_PAUSE 1500000 +void dled_print(uint32_t x, uint8_t long_pause) { + int8_t t; + uint32_t n; + uint32_t p, p2; + + if (x < 10) + t = 0; + else if (x < 100) + t = 1; + else if (x < 1000) + t = 2; + else if (x < 10000) + t = 3; + else if (x < 100000) + t = 4; + else if (x < 1000000) + t = 5; + else if (x < 10000000) + t = 6; + else if (x < 100000000) + t = 7; + else if (x < 1000000000) + t = 8; + else + t = 9; + + while (t >= 0) { + p2 = t; + p = 1; + while (p2--) + p *= 10; + n = x / p; + x -= n * p; + if (!n) { + DBG_LED_ON; + for (w = DLED_ONTIME / 4; w; w--) + ; + DBG_LED_OFF; + for (w = DLED_ONTIME / 4; w; w--) + ; + DBG_LED_ON; + for (w = DLED_ONTIME / 4; w; w--) + ; + DBG_LED_OFF; + for (w = DLED_ONTIME / 4; w; w--) + ; + n--; + } else { + while (n > 0) { + DBG_LED_ON; + for (w = DLED_ONTIME; w; w--) + ; + DBG_LED_OFF; + for (w = DLED_ONTIME / 2; w; w--) + ; + n--; + } + } + + for (w = DLED_PAUSE; w; w--) + ; + t--; + } + + if (long_pause) { + for (w = DLED_PAUSE * 4; w; w--) + ; + } +} + +#ifdef DEBUG_BOOT_TRACING_ENABLE + +volatile uint32_t debug_code; + +// These macros are for compile time substitution +# define DEBUG_BOOT_TRACING_EXTINTn (DEBUG_BOOT_TRACING_PIN % _U_(0x10)) +# define DEBUG_BOOT_TRACING_EXTINTb (_U_(0x1) << DEBUG_BOOT_TRACING_EXTINTn) +# define DEBUG_BOOT_TRACING_CONFIG_INDn (DEBUG_BOOT_TRACING_EXTINTn / _U_(0x8)) +# define DEBUG_BOOT_TRACING_CONFIG_SENSEn (DEBUG_BOOT_TRACING_EXTINTn % _U_(0x8)) +# define DEBUG_BOOT_TRACING_CONFIG_SENSEb (DEBUG_BOOT_TRACING_CONFIG_SENSEn * _U_(0x4)) +# define DEBUG_BOOT_TRACING_IRQn (EIC_0_IRQn + DEBUG_BOOT_TRACING_EXTINTn) + +// These macros perform PORT+PIN definition translation to IRQn in the preprocessor +# define PORTPIN_TO_IRQn_EXPAND(def) def +# define PORTPIN_TO_IRQn_DEF(def) PORTPIN_TO_IRQn_EXPAND(def) +# if DEBUG_BOOT_TRACING_PIN < 10 +# define PORTPIN_TO_IRQn_TODEF(port, pin) PORTPIN_TO_IRQn_DEF(PIN_##port##0##pin##A_EIC_EXTINT_NUM) +# else +# define PORTPIN_TO_IRQn_TODEF(port, pin) PORTPIN_TO_IRQn_DEF(PIN_##port##pin##A_EIC_EXTINT_NUM) +# endif +# define PORTPIN_TO_IRQn(port, pin) PORTPIN_TO_IRQn_TODEF(port, pin) + +// These macros perform function name output in the preprocessor +# define DEBUG_BOOT_TRACING_HANDLER_CONCAT(irq) void EIC_##irq##_Handler(void) +# define DEBUG_BOOT_TRACING_HANDLER(irq) DEBUG_BOOT_TRACING_HANDLER_CONCAT(irq) + +// To generate the function name of the IRQ handler catching boot tracing, +// certain macros must be undefined, so save their current values to macro stack +# pragma push_macro("PA") +# pragma push_macro("PB") +# pragma push_macro("_L_") + +// Undefine / redefine pushed macros +# undef PA +# undef PB +# undef _L_ +# define _L_(x) x + +// Perform the work and output +// Ex: PORT PB, PIN 31 = void EIC_15_Handler(void) +DEBUG_BOOT_TRACING_HANDLER(PORTPIN_TO_IRQn(DEBUG_BOOT_TRACING_PORT, DEBUG_BOOT_TRACING_PIN)) +// Restore macros +# pragma pop_macro("PA") +# pragma pop_macro("PB") +# pragma pop_macro("_L_") +{ + // This is only for non-functional keyboard troubleshooting and should be disabled after boot + // Intention is to lock up the keyboard here with repeating debug led code + while (1) { + dled_print(debug_code, 1); + } +} + +void debug_code_init(void) { + DBGC(DC_UNSET); + + // Configure Ports for EIC + PORT->Group[DEBUG_BOOT_TRACING_PORT].DIRCLR.reg = 1 << DEBUG_BOOT_TRACING_PIN; // Input + PORT->Group[DEBUG_BOOT_TRACING_PORT].OUTSET.reg = 1 << DEBUG_BOOT_TRACING_PIN; // High + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.INEN = 1; // Input Enable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.PULLEN = 1; // Pull Enable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.PMUXEN = 1; // Mux Enable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PMUX[DEBUG_BOOT_TRACING_PIN / 2].bit.PMUXO = 0; // Mux A + + // Enable CLK_EIC_APB + MCLK->APBAMASK.bit.EIC_ = 1; + + // Configure EIC + EIC->CTRLA.bit.SWRST = 1; + while (EIC->SYNCBUSY.bit.SWRST) { + } + EIC->ASYNCH.reg = DEBUG_BOOT_TRACING_EXTINTb; + EIC->INTENSET.reg = DEBUG_BOOT_TRACING_EXTINTb; + EIC->CONFIG[DEBUG_BOOT_TRACING_CONFIG_INDn].reg |= (EIC_CONFIG_SENSE0_FALL_Val << DEBUG_BOOT_TRACING_CONFIG_SENSEb); + EIC->CTRLA.bit.ENABLE = 1; + while (EIC->SYNCBUSY.bit.ENABLE) { + } + + // Enable EIC IRQ + NVIC_EnableIRQ(DEBUG_BOOT_TRACING_IRQn); +} + +void debug_code_disable(void) { + // Disable EIC IRQ + NVIC_DisableIRQ(DEBUG_BOOT_TRACING_IRQn); + + // Disable EIC + EIC->CTRLA.bit.ENABLE = 0; + while (EIC->SYNCBUSY.bit.ENABLE) { + } + + // Default port configuration + PORT->Group[DEBUG_BOOT_TRACING_PORT].DIRCLR.reg = 1 << DEBUG_BOOT_TRACING_PIN; // Input + PORT->Group[DEBUG_BOOT_TRACING_PORT].OUTCLR.reg = 1 << DEBUG_BOOT_TRACING_PIN; // Low + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.INEN = 0; // Input Disable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.PULLEN = 0; // Pull Disable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PINCFG[DEBUG_BOOT_TRACING_PIN].bit.PMUXEN = 0; // Mux Disable + PORT->Group[DEBUG_BOOT_TRACING_PORT].PMUX[DEBUG_BOOT_TRACING_PIN / 2].bit.PMUXO = 0; // Mux A + + // Disable CLK_EIC_APB + MCLK->APBAMASK.bit.EIC_ = 0; +} + +#else + +void debug_code_init(void) {} +void debug_code_disable(void) {} + +#endif // DEBUG_BOOT_TRACING_ENABLE diff --git a/tmk_core/protocol/arm_atsam/d51_util.h b/tmk_core/protocol/arm_atsam/d51_util.h new file mode 100644 index 0000000000..d301e55411 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/d51_util.h @@ -0,0 +1,224 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _D51_UTIL_H_ +#define _D51_UTIL_H_ + +#include "samd51j18a.h" + +/* Debug LED */ +#if DEBUG_LED_ENABLE == 1 +# define DBG_LED_ENA PORT->Group[DEBUG_LED_PORT].DIRSET.reg = (1 << DEBUG_LED_PIN) +# define DBG_LED_DIS PORT->Group[DEBUG_LED_PORT].DIRCLR.reg = (1 << DEBUG_LED_PIN) +# define DBG_LED_ON PORT->Group[DEBUG_LED_PORT].OUTSET.reg = (1 << DEBUG_LED_PIN) +# define DBG_LED_OFF PORT->Group[DEBUG_LED_PORT].OUTCLR.reg = (1 << DEBUG_LED_PIN) +#else +# define DBG_LED_ENA +# define DBG_LED_DIS +# define DBG_LED_ON +# define DBG_LED_OFF +#endif + +/* Debug Port 1 */ +#if DEBUG_PORT1_ENABLE == 1 +# define DBG_1_ENA PORT->Group[DEBUG_PORT1_PORT].DIRSET.reg = (1 << DEBUG_PORT1_PIN) +# define DBG_1_DIS PORT->Group[DEBUG_PORT1_PORT].DIRCLR.reg = (1 << DEBUG_PORT1_PIN) +# define DBG_1_ON PORT->Group[DEBUG_PORT1_PORT].OUTSET.reg = (1 << DEBUG_PORT1_PIN) +# define DBG_1_OFF PORT->Group[DEBUG_PORT1_PORT].OUTCLR.reg = (1 << DEBUG_PORT1_PIN) +#else +# define DBG_1_ENA +# define DBG_1_DIS +# define DBG_1_ON +# define DBG_1_OFF +#endif + +/* Debug Port 2 */ +#if DEBUG_PORT2_ENABLE == 1 +# define DBG_2_ENA PORT->Group[DEBUG_PORT2_PORT].DIRSET.reg = (1 << DEBUG_PORT2_PIN) +# define DBG_2_DIS PORT->Group[DEBUG_PORT2_PORT].DIRCLR.reg = (1 << DEBUG_PORT2_PIN) +# define DBG_2_ON PORT->Group[DEBUG_PORT2_PORT].OUTSET.reg = (1 << DEBUG_PORT2_PIN) +# define DBG_2_OFF PORT->Group[DEBUG_PORT2_PORT].OUTCLR.reg = (1 << DEBUG_PORT2_PIN) +#else +# define DBG_2_ENA +# define DBG_2_DIS +# define DBG_2_ON +# define DBG_2_OFF +#endif + +/* Debug Port 3 */ +#if DEBUG_PORT3_ENABLE == 1 +# define DBG_3_ENA PORT->Group[DEBUG_PORT3_PORT].DIRSET.reg = (1 << DEBUG_PORT3_PIN) +# define DBG_3_DIS PORT->Group[DEBUG_PORT3_PORT].DIRCLR.reg = (1 << DEBUG_PORT3_PIN) +# define DBG_3_ON PORT->Group[DEBUG_PORT3_PORT].OUTSET.reg = (1 << DEBUG_PORT3_PIN) +# define DBG_3_OFF PORT->Group[DEBUG_PORT3_PORT].OUTCLR.reg = (1 << DEBUG_PORT3_PIN) +#else +# define DBG_3_ENA +# define DBG_3_DIS +# define DBG_3_ON +# define DBG_3_OFF +#endif + +void dbg_print(uint32_t x); +void dled_print(uint32_t x, uint8_t long_pause); + +void debug_code_init(void); +void debug_code_disable(void); + +#ifdef DEBUG_BOOT_TRACING_ENABLE + +# define DBGC(n) debug_code = n + +extern volatile uint32_t debug_code; + +enum debug_code_list { + DC_UNSET = 0, + DC_CLK_INIT_BEGIN, + DC_CLK_INIT_COMPLETE, + DC_CLK_SET_I2C1_FREQ_BEGIN, + DC_CLK_SET_I2C1_FREQ_COMPLETE, + DC_CLK_SET_I2C0_FREQ_BEGIN, + DC_CLK_SET_I2C0_FREQ_COMPLETE, + DC_CLK_SET_SPI_FREQ_BEGIN, + DC_CLK_SET_SPI_FREQ_COMPLETE, + DC_CLK_ENABLE_TIMEBASE_BEGIN, + DC_CLK_ENABLE_TIMEBASE_SYNC_ENABLE, + DC_CLK_ENABLE_TIMEBASE_SYNC_SWRST_1, + DC_CLK_ENABLE_TIMEBASE_SYNC_SWRST_2, + DC_CLK_ENABLE_TIMEBASE_TC4_BEGIN, + DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_DISABLE, + DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_SWRST_1, + DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_SWRST_2, + DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_CLTRB, + DC_CLK_ENABLE_TIMEBASE_TC4_SYNC_CC0, + DC_CLK_ENABLE_TIMEBASE_TC4_COMPLETE, + DC_CLK_ENABLE_TIMEBASE_TC5_BEGIN, + DC_CLK_ENABLE_TIMEBASE_TC5_SYNC_DISABLE, + DC_CLK_ENABLE_TIMEBASE_TC5_SYNC_SWRST_1, + DC_CLK_ENABLE_TIMEBASE_TC5_SYNC_SWRST_2, + DC_CLK_ENABLE_TIMEBASE_TC5_SYNC_CLTRB, + DC_CLK_ENABLE_TIMEBASE_TC5_COMPLETE, + DC_CLK_ENABLE_TIMEBASE_TC0_BEGIN, + DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_DISABLE, + DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_SWRST_1, + DC_CLK_ENABLE_TIMEBASE_TC0_SYNC_SWRST_2, + DC_CLK_ENABLE_TIMEBASE_TC0_COMPLETE, + DC_CLK_ENABLE_TIMEBASE_EVSYS_BEGIN, + DC_CLK_ENABLE_TIMEBASE_EVSYS_COMPLETE, + DC_CLK_ENABLE_TIMEBASE_COMPLETE, + DC_CLK_SET_GCLK_FREQ_BEGIN, + DC_CLK_SET_GCLK_FREQ_SYNC_1, + DC_CLK_SET_GCLK_FREQ_SYNC_2, + DC_CLK_SET_GCLK_FREQ_SYNC_3, + DC_CLK_SET_GCLK_FREQ_SYNC_4, + DC_CLK_SET_GCLK_FREQ_SYNC_5, + DC_CLK_SET_GCLK_FREQ_COMPLETE, + DC_CLK_INIT_OSC_BEGIN, + DC_CLK_INIT_OSC_SYNC_1, + DC_CLK_INIT_OSC_SYNC_2, + DC_CLK_INIT_OSC_SYNC_3, + DC_CLK_INIT_OSC_SYNC_4, + DC_CLK_INIT_OSC_SYNC_5, + DC_CLK_INIT_OSC_COMPLETE, + DC_CLK_RESET_TIME_BEGIN, + DC_CLK_RESET_TIME_COMPLETE, + DC_CLK_OSC_INIT_BEGIN, + DC_CLK_OSC_INIT_XOSC0_SYNC, + DC_CLK_OSC_INIT_DPLL_SYNC_DISABLE, + DC_CLK_OSC_INIT_DPLL_SYNC_RATIO, + DC_CLK_OSC_INIT_DPLL_SYNC_ENABLE, + DC_CLK_OSC_INIT_DPLL_WAIT_LOCK, + DC_CLK_OSC_INIT_DPLL_WAIT_CLKRDY, + DC_CLK_OSC_INIT_GCLK_SYNC_GENCTRL0, + DC_CLK_OSC_INIT_COMPLETE, + DC_SPI_INIT_BEGIN, + DC_SPI_WRITE_DRE, + DC_SPI_WRITE_TXC_1, + DC_SPI_WRITE_TXC_2, + DC_SPI_SYNC_ENABLING, + DC_SPI_INIT_COMPLETE, + DC_PORT_DETECT_INIT_BEGIN, + DC_PORT_DETECT_INIT_FAILED, + DC_PORT_DETECT_INIT_COMPLETE, + DC_USB_RESET_BEGIN, + DC_USB_RESET_COMPLETE, + DC_USB_SET_HOST_BY_VOLTAGE_BEGIN, + DC_USB_SET_HOST_5V_LOW_WAITING, + DC_USB_SET_HOST_BY_VOLTAGE_COMPLETE, + DC_USB_CONFIGURE_BEGIN, + DC_USB_CONFIGURE_GET_SERIAL, + DC_USB_CONFIGURE_COMPLETE, + DC_USB_WRITE2422_BLOCK_BEGIN, + DC_USB_WRITE2422_BLOCK_SYNC_SYSOP, + DC_USB_WRITE2422_BLOCK_COMPLETE, + DC_ADC0_CLOCK_INIT_BEGIN, + DC_ADC0_CLOCK_INIT_COMPLETE, + DC_ADC0_INIT_BEGIN, + DC_ADC0_SWRST_SYNCING_1, + DC_ADC0_SWRST_SYNCING_2, + DC_ADC0_AVGCTRL_SYNCING_1, + DC_ADC0_AVGCTRL_SYNCING_2, + DC_ADC0_SAMPCTRL_SYNCING_1, + DC_ADC0_ENABLE_SYNCING_1, + DC_ADC0_INIT_COMPLETE, + DC_I2C0_INIT_BEGIN, + DC_I2C0_INIT_SYNC_ENABLING, + DC_I2C0_INIT_SYNC_SYSOP, + DC_I2C0_INIT_WAIT_IDLE, + DC_I2C0_INIT_COMPLETE, + DC_I2C1_INIT_BEGIN, + DC_I2C1_INIT_SYNC_ENABLING, + DC_I2C1_INIT_SYNC_SYSOP, + DC_I2C1_INIT_WAIT_IDLE, + DC_I2C1_INIT_COMPLETE, + DC_I2C3733_INIT_CONTROL_BEGIN, + DC_I2C3733_INIT_CONTROL_COMPLETE, + DC_I2C3733_INIT_DRIVERS_BEGIN, + DC_I2C3733_INIT_DRIVERS_COMPLETE, + DC_I2C_DMAC_LED_INIT_BEGIN, + DC_I2C_DMAC_LED_INIT_COMPLETE, + DC_I2C3733_CONTROL_SET_BEGIN, + DC_I2C3733_CONTROL_SET_COMPLETE, + DC_LED_MATRIX_INIT_BEGIN, + DC_LED_MATRIX_INIT_COMPLETE, + DC_USB2422_INIT_BEGIN, + DC_USB2422_INIT_WAIT_5V_LOW, + DC_USB2422_INIT_OSC_SYNC_DISABLING, + DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_1, + DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_2, + DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_3, + DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_4, + DC_USB2422_INIT_OSC_SYNC_DFLLMUL, + DC_USB2422_INIT_OSC_SYNC_ENABLING, + DC_USB2422_INIT_USB_SYNC_SWRST, + DC_USB2422_INIT_USB_WAIT_SWRST, + DC_USB2422_INIT_USB_SYNC_ENABLING, + DC_USB2422_INIT_COMPLETE, + DC_MAIN_UDC_START_BEGIN, + DC_MAIN_UDC_START_COMPLETE, + DC_MAIN_CDC_INIT_BEGIN, + DC_MAIN_CDC_INIT_COMPLETE, + /* Never change the order of error codes! Only add codes to end! */ +}; + +#else + +# define DBGC(n) \ + {} + +#endif // DEBUG_BOOT_TRACING_ENABLE + +#endif //_D51_UTIL_H_ diff --git a/tmk_core/protocol/arm_atsam/i2c_master.c b/tmk_core/protocol/arm_atsam/i2c_master.c new file mode 100644 index 0000000000..07ffcc8172 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/i2c_master.c @@ -0,0 +1,593 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" + +#if !defined(MD_BOOTLOADER) && defined(RGB_MATRIX_ENABLE) + +# include + +// From keyboard +# include "config.h" +# include "config_led.h" +# include "matrix.h" + +# define I2C_LED_USE_DMA 1 // Set 1 to use background DMA transfers for leds, Set 0 to use inline software transfers + +DmacDescriptor dmac_desc; +DmacDescriptor dmac_desc_wb; + +static uint8_t i2c_led_q[I2C_Q_SIZE]; // I2C queue circular buffer +static uint8_t i2c_led_q_s; // Start of circular buffer +static uint8_t i2c_led_q_e; // End of circular buffer +static uint8_t i2c_led_q_full; // Queue full counter for reset + +static uint8_t dma_sendbuf[I2C_DMA_MAX_SEND]; // Data being written to I2C + +volatile uint8_t i2c_led_q_running; + +#endif // !defined(MD_BOOTLOADER) && defined(RGB_MATRIX_ENABLE) + +void i2c0_init(void) { + DBGC(DC_I2C0_INIT_BEGIN); + + CLK_set_i2c0_freq(CHAN_SERCOM_I2C0, FREQ_I2C0_DEFAULT); + + // MCU + PORT->Group[0].PMUX[4].bit.PMUXE = 2; + PORT->Group[0].PMUX[4].bit.PMUXO = 2; + PORT->Group[0].PINCFG[8].bit.PMUXEN = 1; + PORT->Group[0].PINCFG[9].bit.PMUXEN = 1; + + // I2C + // Note: SW Reset handled in CLK_set_i2c0_freq clks.c + + SERCOM0->I2CM.CTRLA.bit.MODE = 5; // Set master mode + + SERCOM0->I2CM.CTRLA.bit.SPEED = 0; // Set to 1 for Fast-mode Plus (FM+) up to 1 MHz + SERCOM0->I2CM.CTRLA.bit.RUNSTDBY = 1; // Enabled + + SERCOM0->I2CM.CTRLA.bit.ENABLE = 1; // Enable the device + while (SERCOM0->I2CM.SYNCBUSY.bit.ENABLE) { + DBGC(DC_I2C0_INIT_SYNC_ENABLING); + } // Wait for SYNCBUSY.ENABLE to clear + + SERCOM0->I2CM.STATUS.bit.BUSSTATE = 1; // Force into IDLE state + while (SERCOM0->I2CM.SYNCBUSY.bit.SYSOP) { + DBGC(DC_I2C0_INIT_SYNC_SYSOP); + } + while (SERCOM0->I2CM.STATUS.bit.BUSSTATE != 1) { + DBGC(DC_I2C0_INIT_WAIT_IDLE); + } // Wait while not idle + + DBGC(DC_I2C0_INIT_COMPLETE); +} + +uint8_t i2c0_start(uint8_t address) { + SERCOM0->I2CM.ADDR.bit.ADDR = address; + while (SERCOM0->I2CM.SYNCBUSY.bit.SYSOP) { + } + while (SERCOM0->I2CM.INTFLAG.bit.MB == 0) { + } + while (SERCOM0->I2CM.STATUS.bit.RXNACK) { + } + + return 1; +} + +uint8_t i2c0_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout) { + if (!length) return 0; + + i2c0_start(address); + + while (length) { + SERCOM0->I2CM.DATA.bit.DATA = *data; + while (SERCOM0->I2CM.INTFLAG.bit.MB == 0) { + } + while (SERCOM0->I2CM.STATUS.bit.RXNACK) { + } + + data++; + length--; + } + + i2c0_stop(); + + return 1; +} + +void i2c0_stop(void) { + if (SERCOM0->I2CM.STATUS.bit.CLKHOLD || SERCOM0->I2CM.INTFLAG.bit.MB == 1 || SERCOM0->I2CM.STATUS.bit.BUSSTATE != 1) { + SERCOM0->I2CM.CTRLB.bit.CMD = 3; + while (SERCOM0->I2CM.SYNCBUSY.bit.SYSOP) + ; + while (SERCOM0->I2CM.STATUS.bit.CLKHOLD) + ; + while (SERCOM0->I2CM.INTFLAG.bit.MB) + ; + while (SERCOM0->I2CM.STATUS.bit.BUSSTATE != 1) + ; + } +} + +#if !defined(MD_BOOTLOADER) && defined(RGB_MATRIX_ENABLE) +void i2c1_init(void) { + DBGC(DC_I2C1_INIT_BEGIN); + + CLK_set_i2c1_freq(CHAN_SERCOM_I2C1, FREQ_I2C1_DEFAULT); + + /* MCU */ + PORT->Group[0].PMUX[8].bit.PMUXE = 2; + PORT->Group[0].PMUX[8].bit.PMUXO = 2; + PORT->Group[0].PINCFG[16].bit.PMUXEN = 1; + PORT->Group[0].PINCFG[17].bit.PMUXEN = 1; + + /* I2C */ + // Note: SW Reset handled in CLK_set_i2c1_freq clks.c + + SERCOM1->I2CM.CTRLA.bit.MODE = 5; // MODE: Set master mode (No sync) + SERCOM1->I2CM.CTRLA.bit.SPEED = 1; // SPEED: Fm+ up to 1MHz (No sync) + SERCOM1->I2CM.CTRLA.bit.RUNSTDBY = 1; // RUNSTBY: Enabled (No sync) + + SERCOM1->I2CM.CTRLB.bit.SMEN = 1; // SMEN: Smart mode enabled (For DMA)(No sync) + + NVIC_EnableIRQ(SERCOM1_0_IRQn); + SERCOM1->I2CM.INTENSET.bit.ERROR = 1; + + SERCOM1->I2CM.CTRLA.bit.ENABLE = 1; // ENABLE: Enable the device (sync SYNCBUSY.ENABLE) + while (SERCOM1->I2CM.SYNCBUSY.bit.ENABLE) { + DBGC(DC_I2C1_INIT_SYNC_ENABLING); + } // Wait for SYNCBUSY.ENABLE to clear + + SERCOM1->I2CM.STATUS.bit.BUSSTATE = 1; // BUSSTATE: Force into IDLE state (sync SYNCBUSY.SYSOP) + while (SERCOM1->I2CM.SYNCBUSY.bit.SYSOP) { + DBGC(DC_I2C1_INIT_SYNC_SYSOP); + } + while (SERCOM1->I2CM.STATUS.bit.BUSSTATE != 1) { + DBGC(DC_I2C1_INIT_WAIT_IDLE); + } // Wait while not idle + + DBGC(DC_I2C1_INIT_COMPLETE); +} + +uint8_t i2c1_start(uint8_t address) { + SERCOM1->I2CM.ADDR.bit.ADDR = address; + while (SERCOM1->I2CM.SYNCBUSY.bit.SYSOP) { + } + while (SERCOM1->I2CM.INTFLAG.bit.MB == 0) { + } + while (SERCOM1->I2CM.STATUS.bit.RXNACK) { + } + + return 1; +} + +uint8_t i2c1_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout) { + if (!length) return 0; + + i2c1_start(address); + + while (length) { + SERCOM1->I2CM.DATA.bit.DATA = *data; + while (SERCOM1->I2CM.INTFLAG.bit.MB == 0) { + } + while (SERCOM1->I2CM.STATUS.bit.RXNACK) { + } + + data++; + length--; + } + + i2c1_stop(); + + return 1; +} + +void i2c1_stop(void) { + if (SERCOM1->I2CM.STATUS.bit.CLKHOLD || SERCOM1->I2CM.INTFLAG.bit.MB == 1 || SERCOM1->I2CM.STATUS.bit.BUSSTATE != 1) { + SERCOM1->I2CM.CTRLB.bit.CMD = 3; + while (SERCOM1->I2CM.SYNCBUSY.bit.SYSOP) + ; + while (SERCOM1->I2CM.STATUS.bit.CLKHOLD) + ; + while (SERCOM1->I2CM.INTFLAG.bit.MB) + ; + while (SERCOM1->I2CM.STATUS.bit.BUSSTATE != 1) + ; + } +} + +void i2c_led_send_CRWL(uint8_t drvid) { + uint8_t i2cdata[] = {ISSI3733_CMDRWL, ISSI3733_CMDRWL_WRITE_ENABLE_ONCE}; + i2c1_transmit(issidrv[drvid].addr, i2cdata, sizeof(i2cdata), 0); +} + +void i2c_led_select_page(uint8_t drvid, uint8_t pageno) { + uint8_t i2cdata[] = {ISSI3733_CMDR, pageno}; + i2c1_transmit(issidrv[drvid].addr, i2cdata, sizeof(i2cdata), 0); +} + +void i2c_led_send_GCR(uint8_t drvid) { + uint8_t i2cdata[] = {ISSI3733_GCCR, 0x00}; + + if (gcr_actual > LED_GCR_MAX) gcr_actual = LED_GCR_MAX; + i2cdata[1] = gcr_actual; + + i2c1_transmit(issidrv[drvid].addr, i2cdata, sizeof(i2cdata), 0); +} + +void i2c_led_send_onoff(uint8_t drvid) { +# if I2C_LED_USE_DMA != 1 + if (!i2c_led_q_running) { +# endif + i2c_led_send_CRWL(drvid); + i2c_led_select_page(drvid, 0); +# if I2C_LED_USE_DMA != 1 + } +# endif + + *issidrv[drvid].onoff = 0; // Force start location offset to zero + i2c1_transmit(issidrv[drvid].addr, issidrv[drvid].onoff, ISSI3733_PG0_BYTES, 0); +} + +void i2c_led_send_mode_op_gcr(uint8_t drvid, uint8_t mode, uint8_t operation) { + uint8_t i2cdata[] = {ISSI3733_CR, mode | operation, gcr_actual}; + i2c1_transmit(issidrv[drvid].addr, i2cdata, sizeof(i2cdata), 0); +} + +void i2c_led_send_pur_pdr(uint8_t drvid, uint8_t pur, uint8_t pdr) { + uint8_t i2cdata[] = {ISSI3733_SWYR_PUR, pur, pdr}; + + i2c1_transmit(issidrv[drvid].addr, i2cdata, sizeof(i2cdata), 0); +} + +void i2c_led_send_pwm(uint8_t drvid) { +# if I2C_LED_USE_DMA != 1 + if (!i2c_led_q_running) { +# endif + i2c_led_send_CRWL(drvid); + i2c_led_select_page(drvid, 0); +# if I2C_LED_USE_DMA != 1 + } +# endif + + *issidrv[drvid].pwm = 0; // Force start location offset to zero + i2c1_transmit(issidrv[drvid].addr, issidrv[drvid].pwm, ISSI3733_PG1_BYTES, 0); +} + +uint8_t I2C3733_Init_Control(void) { + DBGC(DC_I2C3733_INIT_CONTROL_BEGIN); + + // Hardware state shutdown on boot + // USB state machine will enable driver when communication is ready + I2C3733_Control_Set(0); + + wait_ms(1); + + sr_exp_data.bit.IRST = 0; + SR_EXP_WriteData(); + + wait_ms(1); + + DBGC(DC_I2C3733_INIT_CONTROL_COMPLETE); + + return 1; +} + +uint8_t I2C3733_Init_Drivers(void) { + DBGC(DC_I2C3733_INIT_DRIVERS_BEGIN); + + gcr_actual = ISSI3733_GCR_DEFAULT; + gcr_actual_last = gcr_actual; + + if (gcr_actual > LED_GCR_MAX) gcr_actual = LED_GCR_MAX; + gcr_desired = gcr_actual; + + void issi3733_prepare_arrays(void); + issi3733_prepare_arrays(); + + // Set up master device + i2c_led_send_CRWL(0); + i2c_led_select_page(0, 3); + i2c_led_send_mode_op_gcr(0, 0, ISSI3733_CR_SSD_NORMAL); // No SYNC due to brightness mismatch with second driver + + // Set up slave device + i2c_led_send_CRWL(1); + i2c_led_select_page(1, 3); + i2c_led_send_mode_op_gcr(1, 0, ISSI3733_CR_SSD_NORMAL); // No SYNC due to brightness mismatch with first driver and slight flicker at rgb values 1,2 + + i2c_led_send_CRWL(0); + i2c_led_select_page(0, 3); + i2c_led_send_pur_pdr(0, ISSI3733_SWYR_PUR_8000, ISSI3733_CSXR_PDR_8000); + + i2c_led_send_CRWL(1); + i2c_led_select_page(1, 3); + i2c_led_send_pur_pdr(1, ISSI3733_SWYR_PUR_8000, ISSI3733_CSXR_PDR_8000); + + DBGC(DC_I2C3733_INIT_DRIVERS_COMPLETE); + + return 1; +} + +void I2C_DMAC_LED_Init(void) { + Dmac *dmac = DMAC; + + DBGC(DC_I2C_DMAC_LED_INIT_BEGIN); + + // Disable device + dmac->CTRL.bit.DMAENABLE = 0; // Disable DMAC + while (dmac->CTRL.bit.DMAENABLE) { + } // Wait for disabled state in case of ongoing transfers + dmac->CTRL.bit.SWRST = 1; // Software Reset DMAC + while (dmac->CTRL.bit.SWRST) { + } // Wait for software reset to complete + + // Configure device + dmac->BASEADDR.reg = (uint32_t)&dmac_desc; // Set descriptor base address + dmac->WRBADDR.reg = (uint32_t)&dmac_desc_wb; // Set descriptor write back address + dmac->CTRL.reg |= 0x0f00; // Handle all priorities (LVL0-3) + + // Disable channel + dmac->Channel[0].CHCTRLA.bit.ENABLE = 0; // Disable the channel + while (dmac->Channel[0].CHCTRLA.bit.ENABLE) { + } // Wait for disabled state in case of ongoing transfers + dmac->Channel[0].CHCTRLA.bit.SWRST = 1; // Software Reset the channel + while (dmac->Channel[0].CHCTRLA.bit.SWRST) { + } // Wait for software reset to complete + + // Configure channel + dmac->Channel[0].CHCTRLA.bit.THRESHOLD = 0; // 1BEAT + dmac->Channel[0].CHCTRLA.bit.BURSTLEN = 0; // SINGLE + dmac->Channel[0].CHCTRLA.bit.TRIGACT = 2; // BURST + dmac->Channel[0].CHCTRLA.bit.TRIGSRC = SERCOM1_DMAC_ID_TX; // Trigger source + dmac->Channel[0].CHCTRLA.bit.RUNSTDBY = 1; // Run in standby + + NVIC_EnableIRQ(DMAC_0_IRQn); + dmac->Channel[0].CHINTENSET.bit.TCMPL = 1; + dmac->Channel[0].CHINTENSET.bit.TERR = 1; + + // Enable device + dmac->CTRL.bit.DMAENABLE = 1; // Enable DMAC + while (dmac->CTRL.bit.DMAENABLE == 0) { + } // Wait for enable state + + DBGC(DC_I2C_DMAC_LED_INIT_COMPLETE); +} + +// state = 1 enable +// state = 0 disable +void I2C3733_Control_Set(uint8_t state) { + DBGC(DC_I2C3733_CONTROL_SET_BEGIN); + + sr_exp_data.bit.SDB_N = (state == 1 ? 1 : 0); + SR_EXP_WriteData(); + + DBGC(DC_I2C3733_CONTROL_SET_COMPLETE); +} + +void i2c_led_desc_defaults(void) { + dmac_desc.BTCTRL.bit.STEPSIZE = 0; // SRCINC used in favor for auto 1 inc + dmac_desc.BTCTRL.bit.STEPSEL = 0; // SRCINC used in favor for auto 1 inc + dmac_desc.BTCTRL.bit.DSTINC = 0; // The Destination Address Increment is disabled + dmac_desc.BTCTRL.bit.SRCINC = 1; // The Source Address Increment is enabled (Inc by 1) + dmac_desc.BTCTRL.bit.BEATSIZE = 0; // 8-bit bus transfer + dmac_desc.BTCTRL.bit.BLOCKACT = 0; // Channel will be disabled if it is the last block transfer in the transaction + dmac_desc.BTCTRL.bit.EVOSEL = 0; // Event generation disabled + dmac_desc.BTCTRL.bit.VALID = 1; // Set dmac valid +} + +void i2c_led_prepare_send_dma(uint8_t *data, uint8_t len) { + i2c_led_desc_defaults(); + + dmac_desc.BTCNT.reg = len; + dmac_desc.SRCADDR.reg = (uint32_t)data + len; + dmac_desc.DSTADDR.reg = (uint32_t)&SERCOM1->I2CM.DATA.reg; + dmac_desc.DESCADDR.reg = 0; +} + +void i2c_led_begin_dma(uint8_t drvid) { + DMAC->Channel[0].CHCTRLA.bit.ENABLE = 1; // Enable the channel + + SERCOM1->I2CM.ADDR.reg = (dmac_desc.BTCNT.reg << 16) | 0x2000 | issidrv[drvid].addr; // Begin transfer +} + +void i2c_led_send_CRWL_dma(uint8_t drvid) { + *(dma_sendbuf + 0) = ISSI3733_CMDRWL; + *(dma_sendbuf + 1) = ISSI3733_CMDRWL_WRITE_ENABLE_ONCE; + i2c_led_prepare_send_dma(dma_sendbuf, 2); + + i2c_led_begin_dma(drvid); +} + +void i2c_led_select_page_dma(uint8_t drvid, uint8_t pageno) { + *(dma_sendbuf + 0) = ISSI3733_CMDR; + *(dma_sendbuf + 1) = pageno; + i2c_led_prepare_send_dma(dma_sendbuf, 2); + + i2c_led_begin_dma(drvid); +} + +void i2c_led_send_GCR_dma(uint8_t drvid) { + *(dma_sendbuf + 0) = ISSI3733_GCCR; + *(dma_sendbuf + 1) = gcr_actual; + i2c_led_prepare_send_dma(dma_sendbuf, 2); + + i2c_led_begin_dma(drvid); +} + +void i2c_led_send_pwm_dma(uint8_t drvid) { + // Note: This copies the CURRENT pwm buffer, which may be getting modified + memcpy(dma_sendbuf, issidrv[drvid].pwm, ISSI3733_PG1_BYTES); + *dma_sendbuf = 0; // Force start location offset to zero + i2c_led_prepare_send_dma(dma_sendbuf, ISSI3733_PG1_BYTES); + + i2c_led_begin_dma(drvid); +} + +void i2c_led_send_onoff_dma(uint8_t drvid) { + // Note: This copies the CURRENT onoff buffer, which may be getting modified + memcpy(dma_sendbuf, issidrv[drvid].onoff, ISSI3733_PG0_BYTES); + *dma_sendbuf = 0; // Force start location offset to zero + i2c_led_prepare_send_dma(dma_sendbuf, ISSI3733_PG0_BYTES); + + i2c_led_begin_dma(drvid); +} + +void i2c_led_q_init(void) { + memset(i2c_led_q, 0, I2C_Q_SIZE); + i2c_led_q_s = 0; + i2c_led_q_e = 0; + i2c_led_q_running = 0; + i2c_led_q_full = 0; +} + +uint8_t i2c_led_q_isempty(void) { + return i2c_led_q_s == i2c_led_q_e; +} + +uint8_t i2c_led_q_size(void) { + return (i2c_led_q_e - i2c_led_q_s) % I2C_Q_SIZE; +} + +uint8_t i2c_led_q_available(void) { + return I2C_Q_SIZE - i2c_led_q_size() - 1; // Never allow end to meet start +} + +void i2c_led_q_add(uint8_t cmd) { + // WARNING: Always request room before adding commands! + + // Assign command + i2c_led_q[i2c_led_q_e] = cmd; + + i2c_led_q_e = (i2c_led_q_e + 1) % I2C_Q_SIZE; // Move end up one or wrap +} + +void i2c_led_q_s_advance(void) { + i2c_led_q_s = (i2c_led_q_s + 1) % I2C_Q_SIZE; // Move start up one or wrap +} + +// Always request room before adding commands +// PS: In case the queue somehow gets filled, it will reset if it can not clear up +// PS: Could only get this to happen through unrealistic timings to overload the I2C bus +uint8_t i2c_led_q_request_room(uint8_t request_size) { + if (request_size > i2c_led_q_available()) { + i2c_led_q_full++; + + if (i2c_led_q_full >= 100) // Give the queue a chance to clear up + { + DBG_LED_ON; + I2C_DMAC_LED_Init(); + i2c_led_q_init(); + return 1; + } + + return 0; + } + + i2c_led_q_full = 0; + + return 1; +} + +uint8_t i2c_led_q_run(void) { + if (i2c_led_q_isempty()) { + i2c_led_q_running = 0; + return 0; + } + + if (i2c_led_q_running) return 1; + + i2c_led_q_running = 1; + +# if I2C_LED_USE_DMA != 1 + while (!i2c_led_q_isempty()) { +# endif + // run command + if (i2c_led_q[i2c_led_q_s] == I2C_Q_CRWL) { + i2c_led_q_s_advance(); + uint8_t drvid = i2c_led_q[i2c_led_q_s]; +# if I2C_LED_USE_DMA == 1 + i2c_led_send_CRWL_dma(drvid); +# else + i2c_led_send_CRWL(drvid); +# endif + } else if (i2c_led_q[i2c_led_q_s] == I2C_Q_PAGE_SELECT) { + i2c_led_q_s_advance(); + uint8_t drvid = i2c_led_q[i2c_led_q_s]; + i2c_led_q_s_advance(); + uint8_t page = i2c_led_q[i2c_led_q_s]; +# if I2C_LED_USE_DMA == 1 + i2c_led_select_page_dma(drvid, page); +# else + i2c_led_select_page(drvid, page); +# endif + } else if (i2c_led_q[i2c_led_q_s] == I2C_Q_PWM) { + i2c_led_q_s_advance(); + uint8_t drvid = i2c_led_q[i2c_led_q_s]; +# if I2C_LED_USE_DMA == 1 + i2c_led_send_pwm_dma(drvid); +# else + i2c_led_send_pwm(drvid); +# endif + } else if (i2c_led_q[i2c_led_q_s] == I2C_Q_GCR) { + i2c_led_q_s_advance(); + uint8_t drvid = i2c_led_q[i2c_led_q_s]; +# if I2C_LED_USE_DMA == 1 + i2c_led_send_GCR_dma(drvid); +# else + i2c_led_send_GCR(drvid); +# endif + } else if (i2c_led_q[i2c_led_q_s] == I2C_Q_ONOFF) { + i2c_led_q_s_advance(); + uint8_t drvid = i2c_led_q[i2c_led_q_s]; +# if I2C_LED_USE_DMA == 1 + i2c_led_send_onoff_dma(drvid); +# else + i2c_led_send_onoff(drvid); +# endif + } + + i2c_led_q_s_advance(); // Advance last run command or if the command byte was not serviced + +# if I2C_LED_USE_DMA != 1 + } + + i2c_led_q_running = 0; +# endif + + return 1; +} + +__attribute__((weak)) void i2c_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + i2c0_init(); + } +} + +i2c_status_t i2c_transmit(uint8_t address, const uint8_t *data, uint16_t length, uint16_t timeout) { + uint8_t ret = i2c0_transmit(address, (uint8_t *)data, length, timeout); + SERCOM0->I2CM.CTRLB.bit.CMD = 0x03; + while (SERCOM0->I2CM.SYNCBUSY.bit.SYSOP) { + DBGC(DC_USB_WRITE2422_BLOCK_SYNC_SYSOP); + } + return ret ? I2C_STATUS_SUCCESS : I2C_STATUS_ERROR; +} + +#endif // !defined(MD_BOOTLOADER) && defined(RGB_MATRIX_ENABLE) diff --git a/tmk_core/protocol/arm_atsam/i2c_master.h b/tmk_core/protocol/arm_atsam/i2c_master.h new file mode 100644 index 0000000000..5459923de4 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/i2c_master.h @@ -0,0 +1,113 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _I2C_MASTER_H_ +#define _I2C_MASTER_H_ + +#ifndef MD_BOOTLOADER + +# include "samd51j18a.h" +# include "issi3733_driver.h" +# include "config.h" + +extern __attribute__((__aligned__(16))) DmacDescriptor dmac_desc; +extern __attribute__((__aligned__(16))) DmacDescriptor dmac_desc_wb; + +uint8_t I2C3733_Init_Control(void); +uint8_t I2C3733_Init_Drivers(void); +void I2C3733_Control_Set(uint8_t state); +void I2C_DMAC_LED_Init(void); + +# define I2C_Q_SIZE 100 + +# define I2C_Q_NA 100 +# define I2C_Q_CRWL 101 +# define I2C_Q_PAGE_SELECT 102 +# define I2C_Q_PWM 103 +# define I2C_Q_GCR 104 +# define I2C_Q_ONOFF 105 + +# define I2C_DMA_MAX_SEND 255 + +extern volatile uint8_t i2c_led_q_running; + +# define I2C_LED_Q_PWM(a) \ + { \ + if (i2c_led_q_request_room(7)) { \ + i2c_led_q_add(I2C_Q_CRWL); \ + i2c_led_q_add(a); \ + i2c_led_q_add(I2C_Q_PAGE_SELECT); \ + i2c_led_q_add(a); \ + i2c_led_q_add(ISSI3733_PG_PWM); \ + i2c_led_q_add(I2C_Q_PWM); \ + i2c_led_q_add(a); \ + } \ + } + +# define I2C_LED_Q_GCR(a) \ + { \ + if (i2c_led_q_request_room(7)) { \ + i2c_led_q_add(I2C_Q_CRWL); \ + i2c_led_q_add(a); \ + i2c_led_q_add(I2C_Q_PAGE_SELECT); \ + i2c_led_q_add(a); \ + i2c_led_q_add(ISSI3733_PG_FN); \ + i2c_led_q_add(I2C_Q_GCR); \ + i2c_led_q_add(a); \ + } \ + } + +# define I2C_LED_Q_ONOFF(a) \ + { \ + if (i2c_led_q_request_room(7)) { \ + i2c_led_q_add(I2C_Q_CRWL); \ + i2c_led_q_add(a); \ + i2c_led_q_add(I2C_Q_PAGE_SELECT); \ + i2c_led_q_add(a); \ + i2c_led_q_add(ISSI3733_PG_ONOFF); \ + i2c_led_q_add(I2C_Q_ONOFF); \ + i2c_led_q_add(a); \ + } \ + } + +void i2c_led_q_init(void); +void i2c_led_q_add(uint8_t cmd); +void i2c_led_q_s_advance(void); +uint8_t i2c_led_q_size(void); +uint8_t i2c_led_q_request_room(uint8_t request_size); +uint8_t i2c_led_q_run(void); + +void i2c1_init(void); +uint8_t i2c1_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout); +void i2c1_stop(void); + +#endif // MD_BOOTLOADER + +void i2c0_init(void); +uint8_t i2c0_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout); +void i2c0_stop(void); + +// Terrible interface compatiblity... +#define I2C_STATUS_SUCCESS (0) +#define I2C_STATUS_ERROR (-1) + +typedef int16_t i2c_status_t; + +void i2c_init(void); +i2c_status_t i2c_transmit(uint8_t address, const uint8_t *data, uint16_t length, uint16_t timeout); + +#endif // _I2C_MASTER_H_ diff --git a/tmk_core/protocol/arm_atsam/issi3733_driver.h b/tmk_core/protocol/arm_atsam/issi3733_driver.h new file mode 100644 index 0000000000..c01f147e13 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/issi3733_driver.h @@ -0,0 +1,201 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _ISSI3733_DRIVER_H_ +#define _ISSI3733_DRIVER_H_ + +// ISII3733 Registers + +#define ISSI3733_CMDR 0xFD // Command Register (Write Only) + +#define ISSI3733_CMDRWL 0xFE // Command Register Write Lock (Read/Write) +#define ISSI3733_CMDRWL_WRITE_DISABLE 0x00 // Lock register +#define ISSI3733_CMDRWL_WRITE_ENABLE_ONCE 0xC5 // Enable one write to register then reset to locked + +#define ISSI3733_IMR 0xF0 // Interrupt Mask Register (Write Only) +#define ISSI3733_IMR_IAC_ON 0x08 // Auto Clear Interrupt Bit - Interrupt auto clear when INTB stay low exceeds 8ms +#define ISSI3733_IMR_IAB_ON 0x04 // Auto Breath Interrupt Bit - Enable auto breath loop finish interrupt +#define ISSI3733_IMR_IS_ON 0x02 // Dot Short Interrupt Bit - Enable dot short interrupt +#define ISSI3733_IMR_IO_ON 0x01 // Dot Open Interrupt Bit - Enable dot open interrupt + +#define ISSI3733_ISR 0xF1 // Interrupt Status Register (Read Only) +#define ISSI3733_ISR_ABM3_FINISH 0x10 // Auto Breath Mode 3 Finish Bit - ABM3 finished +#define ISSI3733_ISR_ABM2_FINISH 0x08 // Auto Breath Mode 2 Finish Bit - ABM2 finished +#define ISSI3733_ISR_ABM1_FINISH 0x04 // Auto Breath Mode 1 Finish Bit - ABM1 finished +#define ISSI3733_ISR_SB 0x02 // Short Bit - Shorted +#define ISSI3733_ISR_OB 0x01 // Open Bit - Opened + +#define ISSI3733_PG0 0x00 // LED Control Register +#define ISSI3733_PG1 0x01 // PWM Register +#define ISSI3733_PG2 0x02 // Auto Breath Mode Register +#define ISSI3733_PG3 0x03 // Function Register + +#define ISSI3733_PG_ONOFF ISSI3733_PG0 +#define ISSI3733_PG_OR ISSI3733_PG0 +#define ISSI3733_PG_SR ISSI3733_PG0 +#define ISSI3733_PG_PWM ISSI3733_PG1 +#define ISSI3733_PG_ABM ISSI3733_PG2 +#define ISSI3733_PG_FN ISSI3733_PG3 + +#define ISSI3733_CR 0x00 // Configuration Register + +// PG3: Configuration Register: Synchronize Configuration +#define ISSI3733_CR_SYNC_MASTER 0x40 // Master +#define ISSI3733_CR_SYNC_SLAVE 0x80 // Slave +#define ISSI3733_CR_SYNC_HIGH_IMP 0xC0 // High Impedance + +// PG3: Configuration Register: Open/Short Detection Enable Bit +//#define ISSI3733_CR_OSD_DISABLE 0x00 //Disable open/short detection +#define ISSI3733_CR_OSD_ENABLE 0x04 // Enable open/short detection + +// PG3: Configuration Register: Auto Breath Enable +//#define ISSI3733_CR_B_EN_PWM 0x00 //PWM Mode Enable +#define ISSI3733_CR_B_EN_AUTO 0x02 // Auto Breath Mode Enable + +// PG3: Configuration Register: Software Shutdown Control +//#define ISSI3733_CR_SSD_SHUTDOWN 0x00 //Software shutdown +#define ISSI3733_CR_SSD_NORMAL 0x01 // Normal operation + +#define ISSI3733_GCCR 0x01 // Global Current Control Register + +// 1 Byte, Iout = (GCC / 256) * (840 / Rext) +// TODO: Give user define for Rext + +// PG3: Auto Breath Control Register 1 +#define ISSI3733_ABCR1_ABM1 0x02 // Auto Breath Control Register 1 of ABM-1 +#define ISSI3733_ABCR1_ABM2 0x06 // Auto Breath Control Register 1 of ABM-2 +#define ISSI3733_ABCR1_ABM3 0x0A // Auto Breath Control Register 1 of ABM-3 + +// Rise time +#define ISSI3733_ABCR1_T1_0021 0x00 // 0.21s +#define ISSI3733_ABCR1_T1_0042 0x20 // 0.42s +#define ISSI3733_ABCR1_T1_0084 0x40 // 0.84s +#define ISSI3733_ABCR1_T1_0168 0x60 // 1.68s +#define ISSI3733_ABCR1_T1_0336 0x80 // 3.36s +#define ISSI3733_ABCR1_T1_0672 0xA0 // 6.72s +#define ISSI3733_ABCR1_T1_1344 0xC0 // 13.44s +#define ISSI3733_ABCR1_T1_2688 0xE0 // 26.88s + +// Max value time +#define ISSI3733_ABCR1_T2_0000 0x00 // 0s +#define ISSI3733_ABCR1_T2_0021 0x02 // 0.21s +#define ISSI3733_ABCR1_T2_0042 0x04 // 0.42s +#define ISSI3733_ABCR1_T2_0084 0x06 // 0.84s +#define ISSI3733_ABCR1_T2_0168 0x08 // 1.68s +#define ISSI3733_ABCR1_T2_0336 0x0A // 3.36s +#define ISSI3733_ABCR1_T2_0672 0x0C // 6.72s +#define ISSI3733_ABCR1_T2_1344 0x0E // 13.44s +#define ISSI3733_ABCR1_T2_2688 0x10 // 26.88s + +// PG3: Auto Breath Control Register 2 +#define ISSI3733_ABCR2_ABM1 0x03 // Auto Breath Control Register 2 of ABM-1 +#define ISSI3733_ABCR2_ABM2 0x07 // Auto Breath Control Register 2 of ABM-2 +#define ISSI3733_ABCR2_ABM3 0x0B // Auto Breath Control Register 2 of ABM-3 + +// Fall time +#define ISSI3733_ABCR2_T3_0021 0x00 // 0.21s +#define ISSI3733_ABCR2_T3_0042 0x20 // 0.42s +#define ISSI3733_ABCR2_T3_0084 0x40 // 0.84s +#define ISSI3733_ABCR2_T3_0168 0x60 // 1.68s +#define ISSI3733_ABCR2_T3_0336 0x80 // 3.36s +#define ISSI3733_ABCR2_T3_0672 0xA0 // 6.72s +#define ISSI3733_ABCR2_T3_1344 0xC0 // 13.44s +#define ISSI3733_ABCR2_T3_2688 0xE0 // 26.88s + +// Min value time +#define ISSI3733_ABCR2_T4_0000 0x00 // 0s +#define ISSI3733_ABCR2_T4_0021 0x02 // 0.21s +#define ISSI3733_ABCR2_T4_0042 0x04 // 0.42s +#define ISSI3733_ABCR2_T4_0084 0x06 // 0.84s +#define ISSI3733_ABCR2_T4_0168 0x08 // 1.68s +#define ISSI3733_ABCR2_T4_0336 0x0A // 3.36s +#define ISSI3733_ABCR2_T4_0672 0x0C // 6.72s +#define ISSI3733_ABCR2_T4_1344 0x0E // 13.44s +#define ISSI3733_ABCR2_T4_2688 0x10 // 26.88s +#define ISSI3733_ABCR2_T4_5376 0x12 // 53.76s +#define ISSI3733_ABCR2_T4_10752 0x14 // 107.52s + +// PG3: Auto Breath Control Register 3 +#define ISSI3733_ABCR3_ABM1 0x04 // Auto Breath Control Register 3 of ABM-1 +#define ISSI3733_ABCR3_ABM2 0x08 // Auto Breath Control Register 3 of ABM-2 +#define ISSI3733_ABCR3_ABM3 0x0C // Auto Breath Control Register 3 of ABM-3 + +#define ISSI3733_ABCR3_LTA_LOOP_ENDLESS 0x00 +#define ISSI3733_ABCR3_LTA_LOOP_1 0x01 +#define ISSI3733_ABCR3_LTA_LOOP_2 0x02 +#define ISSI3733_ABCR3_LTA_LOOP_3 0x03 +#define ISSI3733_ABCR3_LTA_LOOP_4 0x04 +#define ISSI3733_ABCR3_LTA_LOOP_5 0x05 +#define ISSI3733_ABCR3_LTA_LOOP_6 0x06 +#define ISSI3733_ABCR3_LTA_LOOP_7 0x07 +#define ISSI3733_ABCR3_LTA_LOOP_8 0x08 +#define ISSI3733_ABCR3_LTA_LOOP_9 0x09 +#define ISSI3733_ABCR3_LTA_LOOP_10 0x0A +#define ISSI3733_ABCR3_LTA_LOOP_11 0x0B +#define ISSI3733_ABCR3_LTA_LOOP_12 0x0C +#define ISSI3733_ABCR3_LTA_LOOP_13 0x0D +#define ISSI3733_ABCR3_LTA_LOOP_14 0x0E +#define ISSI3733_ABCR3_LTA_LOOP_15 0x0F + +// Loop Begin +#define ISSI3733_ABCR3_LB_T1 0x00 +#define ISSI3733_ABCR3_LB_T2 0x10 +#define ISSI3733_ABCR3_LB_T3 0x20 +#define ISSI3733_ABCR3_LB_T4 0x30 + +// Loop End +#define ISSI3733_ABCR3_LE_T3 0x00 // End at Off state +#define ISSI3733_ABCR3_LE_T1 0x40 // End at On State + +// PG3: Auto Breath Control Register 4 +#define ISSI3733_ABCR4_ABM1 0x05 // Auto Breath Control Register 4 of ABM-1 +#define ISSI3733_ABCR4_ABM2 0x09 // Auto Breath Control Register 4 of ABM-2 +#define ISSI3733_ABCR4_ABM3 0x0D // Auto Breath Control Register 4 of ABM-3 + +#define ISSI3733_ABCR4_LTB_LOOP_ENDLESS 0x00 +// Or 8bit loop times + +// PG3: Time Update Register +#define ISSI3733_TUR 0x0E +#define ISSI3733_TUR_UPDATE 0x00 // Write to update 02h~0Dh time registers after configuring + +// PG3: SWy Pull-Up Resistor Selection Register +#define ISSI3733_SWYR_PUR 0x0F +#define ISSI3733_SWYR_PUR_NONE 0x00 // No pull-up resistor +#define ISSI3733_SWYR_PUR_500 0x01 // 0.5k Ohm +#define ISSI3733_SWYR_PUR_1000 0x02 // 1.0k Ohm +#define ISSI3733_SWYR_PUR_2000 0x03 // 2.0k Ohm +#define ISSI3733_SWYR_PUR_4000 0x04 // 4.0k Ohm +#define ISSI3733_SWYR_PUR_8000 0x05 // 8.0k Ohm +#define ISSI3733_SWYR_PUR_16000 0x06 // 16k Ohm +#define ISSI3733_SWYR_PUR_32000 0x07 // 32k Ohm + +// PG3: CSx Pull-Down Resistor Selection Register +#define ISSI3733_CSXR_PDR 0x10 +#define ISSI3733_CSXR_PDR_NONE 0x00 // No pull-down resistor +#define ISSI3733_CSXR_PDR_500 0x01 // 0.5k Ohm +#define ISSI3733_CSXR_PDR_1000 0x02 // 1.0k Ohm +#define ISSI3733_CSXR_PDR_2000 0x03 // 2.0k Ohm +#define ISSI3733_CSXR_PDR_4000 0x04 // 4.0k Ohm +#define ISSI3733_CSXR_PDR_8000 0x05 // 8.0k Ohm +#define ISSI3733_CSXR_PDR_16000 0x06 // 16k Ohm +#define ISSI3733_CSXR_PDR_32000 0x07 // 32k Ohm + +// PG3: Reset Register +#define ISSI3733_RR 0x11 // Read to reset all registers to default values + +#endif //_ISSI3733_DRIVER_H_ diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c new file mode 100644 index 0000000000..15592bf908 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c @@ -0,0 +1,381 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "samd51j18a.h" +#include "keyboard.h" + +#include "report.h" +#include "host.h" +#include "host_driver.h" +#include "suspend.h" +#include "keycode_config.h" +#include + +// From protocol directory +#include "arm_atsam_protocol.h" + +// From keyboard's directory +#include "config_led.h" + +uint8_t g_usb_state = USB_FSMSTATUS_FSMSTATE_OFF_Val; // Saved USB state from hardware value to detect changes + +void main_subtasks(void); +uint8_t keyboard_leds(void); +void send_keyboard(report_keyboard_t *report); +void send_nkro(report_nkro_t *report); +void send_mouse(report_mouse_t *report); +void send_extra(report_extra_t *report); + +#ifdef DEFERRED_EXEC_ENABLE +void deferred_exec_task(void); +#endif // DEFERRED_EXEC_ENABLE + +host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; + +uint8_t led_states; + +uint8_t keyboard_leds(void) { +#ifdef NKRO_ENABLE + if (keymap_config.nkro) + return udi_hid_nkro_report_set; + else +#endif // NKRO_ENABLE + return udi_hid_kbd_report_set; +} + +void send_keyboard(report_keyboard_t *report) { + uint32_t irqflags; + + while (udi_hid_kbd_b_report_trans_ongoing) { + main_subtasks(); + } // Run other tasks while waiting for USB to be free + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + memcpy(udi_hid_kbd_report, report, UDI_HID_KBD_REPORT_SIZE); + udi_hid_kbd_b_report_valid = 1; + udi_hid_kbd_send_report(); + + __DMB(); + __set_PRIMASK(irqflags); +} + +void send_nkro(report_nkro_t *report) { +#ifdef NKRO_ENABLE + uint32_t irqflags; + + while (udi_hid_nkro_b_report_trans_ongoing) { + main_subtasks(); + } // Run other tasks while waiting for USB to be free + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + /* + Skipping ahead `sizeof(report->report_id)` bytes + since `report_id` is not used by this driver + */ + void *report_no_report_id = (void *)((char *)report + sizeof(report->report_id)); + + memcpy(udi_hid_nkro_report, report_no_report_id, UDI_HID_NKRO_REPORT_SIZE); + udi_hid_nkro_b_report_valid = 1; + udi_hid_nkro_send_report(); + + __DMB(); + __set_PRIMASK(irqflags); +#endif +} + +void send_mouse(report_mouse_t *report) { +#ifdef MOUSEKEY_ENABLE + uint32_t irqflags; + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + +# ifdef MOUSE_SHARED_EP + /* + Skipping ahead `sizeof(report->report_id)` bytes + since `report_id` is not used by this driver + */ + void *report_no_report_id = (void *)((char *)report + sizeof(report->report_id)); + + memcpy(udi_hid_mou_report, report_no_report_id, UDI_HID_MOU_REPORT_SIZE); +# else + memcpy(udi_hid_mou_report, report, UDI_HID_MOU_REPORT_SIZE); +# endif + udi_hid_mou_b_report_valid = 1; + udi_hid_mou_send_report(); + + __DMB(); + __set_PRIMASK(irqflags); +#endif // MOUSEKEY_ENABLE +} + +void send_extra(report_extra_t *report) { +#ifdef EXTRAKEY_ENABLE + uint32_t irqflags; + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + memcpy(udi_hid_exk_report, report, UDI_HID_EXK_REPORT_SIZE); + udi_hid_exk_b_report_valid = 1; + udi_hid_exk_send_report(); + + __DMB(); + __set_PRIMASK(irqflags); +#endif // EXTRAKEY_ENABLE +} + +#ifdef CONSOLE_ENABLE +# define CONSOLE_PRINTBUF_SIZE 512 +static char console_printbuf[CONSOLE_PRINTBUF_SIZE]; +static uint16_t console_printbuf_len = 0; + +int8_t sendchar(uint8_t c) { + if (console_printbuf_len >= CONSOLE_PRINTBUF_SIZE) return -1; + + console_printbuf[console_printbuf_len++] = c; + return 0; +} + +void main_subtask_console_flush(void) { + while (udi_hid_con_b_report_trans_ongoing) { + } // Wait for any previous transfers to complete + + uint16_t result = console_printbuf_len; + uint32_t irqflags; + char * pconbuf = console_printbuf; // Pointer to start send from + int send_out = CONSOLE_EPSIZE; // Bytes to send per transfer + + while (result > 0) { // While not error and bytes remain + while (udi_hid_con_b_report_trans_ongoing) { + } // Wait for any previous transfers to complete + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + if (result < CONSOLE_EPSIZE) { // If remaining bytes are less than console epsize + memset(udi_hid_con_report, 0, CONSOLE_EPSIZE); // Clear the buffer + send_out = result; // Send remaining size + } + + memcpy(udi_hid_con_report, pconbuf, send_out); // Copy data into the send buffer + + udi_hid_con_b_report_valid = 1; // Set report valid + udi_hid_con_send_report(); // Send report + + __DMB(); + __set_PRIMASK(irqflags); + + result -= send_out; // Decrement result by bytes sent + pconbuf += send_out; // Increment buffer point by bytes sent + } + + console_printbuf_len = 0; +} + +#endif // CONSOLE_ENABLE + +void main_subtask_usb_state(void) { + static uint64_t fsmstate_on_delay = 0; // Delay timer to be sure USB is actually operating before bringing up hardware + uint8_t fsmstate_now = USB->DEVICE.FSMSTATUS.reg; // Current state from hardware register + + if (fsmstate_now == USB_FSMSTATUS_FSMSTATE_SUSPEND_Val) // If USB SUSPENDED + { + fsmstate_on_delay = 0; // Clear ON delay timer + + if (g_usb_state != USB_FSMSTATUS_FSMSTATE_SUSPEND_Val) // If previously not SUSPENDED + { + suspend_power_down(); // Run suspend routine + g_usb_state = fsmstate_now; // Save current USB state + } + } else if (fsmstate_now == USB_FSMSTATUS_FSMSTATE_SLEEP_Val) // Else if USB SLEEPING + { + fsmstate_on_delay = 0; // Clear ON delay timer + + if (g_usb_state != USB_FSMSTATUS_FSMSTATE_SLEEP_Val) // If previously not SLEEPING + { + suspend_power_down(); // Run suspend routine + g_usb_state = fsmstate_now; // Save current USB state + } + } else if (fsmstate_now == USB_FSMSTATUS_FSMSTATE_ON_Val) // Else if USB ON + { + if (g_usb_state != USB_FSMSTATUS_FSMSTATE_ON_Val) // If previously not ON + { + if (fsmstate_on_delay == 0) // If ON delay timer is cleared + { + fsmstate_on_delay = timer_read64() + 250; // Set ON delay timer + } else if (timer_read64() > fsmstate_on_delay) // Else if ON delay timer is active and timed out + { + suspend_wakeup_init(); // Run wakeup routine + g_usb_state = fsmstate_now; // Save current USB state + } + } + } else // Else if USB is in a state not being tracked + { + fsmstate_on_delay = 0; // Clear ON delay timer + } +} + +void main_subtask_power_check(void) { + static uint64_t next_5v_checkup = 0; + + if (timer_read64() > next_5v_checkup) { + next_5v_checkup = timer_read64() + 5; + + v_5v = adc_get(ADC_5V); + v_5v_avg = 0.9 * v_5v_avg + 0.1 * v_5v; + +#ifdef RGB_MATRIX_ENABLE + gcr_compute(); +#endif + } +} + +void main_subtask_usb_extra_device(void) { + static uint64_t next_usb_checkup = 0; + + if (timer_read64() > next_usb_checkup) { + next_usb_checkup = timer_read64() + 10; + + USB_HandleExtraDevice(); + } +} + +#ifdef RAW_ENABLE +void main_subtask_raw(void) { + udi_hid_raw_receive_report(); +} +#endif + +void main_subtasks(void) { + main_subtask_usb_state(); + main_subtask_power_check(); + main_subtask_usb_extra_device(); +#ifdef CONSOLE_ENABLE + main_subtask_console_flush(); +#endif +#ifdef RAW_ENABLE + main_subtask_raw(); +#endif +} + +int main(void) { + DBG_LED_ENA; + DBG_1_ENA; + DBG_1_OFF; + DBG_2_ENA; + DBG_2_OFF; + DBG_3_ENA; + DBG_3_OFF; + + debug_code_init(); + + CLK_init(); + + ADC0_init(); + + SR_EXP_Init(); + +#ifdef RGB_MATRIX_ENABLE + i2c1_init(); +#endif // RGB_MATRIX_ENABLE + + USB_Hub_init(); + + DBGC(DC_MAIN_UDC_START_BEGIN); + udc_start(); + DBGC(DC_MAIN_UDC_START_COMPLETE); + + DBGC(DC_MAIN_CDC_INIT_BEGIN); + CDC_init(); + DBGC(DC_MAIN_CDC_INIT_COMPLETE); + + while (USB_Hub_Port_Detect_Init() == 0) { + } + + DBG_LED_OFF; + +#ifdef RGB_MATRIX_ENABLE + while (I2C3733_Init_Control() != 1) { + } + while (I2C3733_Init_Drivers() != 1) { + } + + I2C_DMAC_LED_Init(); + + i2c_led_q_init(); + + for (uint8_t drvid = 0; drvid < ISSI3733_DRIVER_COUNT; drvid++) + I2C_LED_Q_ONOFF(drvid); // Queue data +#endif // RGB_MATRIX_ENABLE + + keyboard_setup(); + + keyboard_init(); + + host_set_driver(&arm_atsam_driver); + +#ifdef CONSOLE_ENABLE + uint64_t next_print = 0; +#endif // CONSOLE_ENABLE + + v_5v_avg = adc_get(ADC_5V); + + debug_code_disable(); + + while (1) { + main_subtasks(); // Note these tasks will also be run while waiting for USB keyboard polling intervals + + if (g_usb_state == USB_FSMSTATUS_FSMSTATE_SUSPEND_Val || g_usb_state == USB_FSMSTATUS_FSMSTATE_SLEEP_Val) { + if (suspend_wakeup_condition()) { + udc_remotewakeup(); // Send remote wakeup signal + wait_ms(50); + } + + continue; + } + + keyboard_task(); + +#ifdef CONSOLE_ENABLE + if (timer_read64() > next_print) { + next_print = timer_read64() + 250; + // Add any debug information here that you want to see very often + // dprintf("5v=%u 5vu=%u dlow=%u dhi=%u gca=%u gcd=%u\r\n", v_5v, v_5v_avg, v_5v_avg - V5_LOW, v_5v_avg - V5_HIGH, gcr_actual, gcr_desired); + } +#endif // CONSOLE_ENABLE + +#ifdef DEFERRED_EXEC_ENABLE + // Run deferred executions + deferred_exec_task(); +#endif // DEFERRED_EXEC_ENABLE + + // Run housekeeping + housekeeping_task(); + } + + return 1; +} diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.h b/tmk_core/protocol/arm_atsam/main_arm_atsam.h new file mode 100644 index 0000000000..78205e2e1b --- /dev/null +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.h @@ -0,0 +1,23 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _MAIN_ARM_ATSAM_H_ +#define _MAIN_ARM_ATSAM_H_ + +uint8_t keyboard_leds(void); + +#endif //_MAIN_ARM_ATSAM_H_ diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c new file mode 100644 index 0000000000..0f316b256c --- /dev/null +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c @@ -0,0 +1,556 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#define FLUSH_TIMEOUT 5000 +#define EECONFIG_MD_LED ((uint8_t*)(EECONFIG_SIZE + 64)) +#define MD_LED_CONFIG_VERSION 1 + +#ifdef RGB_MATRIX_ENABLE +# include "arm_atsam_protocol.h" +# include "led.h" +# include "rgb_matrix.h" +# include "eeprom.h" +# include "host.h" +# include +# include + +# ifdef USE_MASSDROP_CONFIGURATOR +// TODO?: wire these up to keymap.c +md_led_config_t md_led_config = {0}; + +EECONFIG_DEBOUNCE_HELPER(md_led, EECONFIG_MD_LED, md_led_config); + +void eeconfig_update_md_led_default(void) { + md_led_config.ver = MD_LED_CONFIG_VERSION; + + gcr_desired = LED_GCR_MAX; + led_animation_orientation = 0; + led_animation_direction = 0; + led_animation_breathing = 0; + led_animation_id = 0; + led_animation_speed = 4.0f; + led_lighting_mode = LED_MODE_NORMAL; + led_enabled = 1; + led_animation_breathe_cur = BREATHE_MIN_STEP; + breathe_dir = 1; + led_animation_circular = 0; + led_edge_brightness = 1.0f; + led_ratio_brightness = 1.0f; + led_edge_mode = LED_EDGE_MODE_ALL; + + eeconfig_flush_md_led(true); +} + +void md_led_changed(void) { + eeconfig_flag_md_led(true); +} + +// todo: use real task rather than this bodge +void housekeeping_task_kb(void) { + eeconfig_flush_md_led_task(FLUSH_TIMEOUT); +} + +__attribute__((weak)) led_instruction_t led_instructions[] = {{.end = 1}}; +static void md_rgb_matrix_config_override(int i); +# else +uint8_t gcr_desired; +# endif // USE_MASSDROP_CONFIGURATOR + +void SERCOM1_0_Handler(void) { + if (SERCOM1->I2CM.INTFLAG.bit.ERROR) { + SERCOM1->I2CM.INTFLAG.reg = SERCOM_I2CM_INTENCLR_ERROR; + } +} + +void DMAC_0_Handler(void) { + if (DMAC->Channel[0].CHINTFLAG.bit.TCMPL) { + DMAC->Channel[0].CHINTFLAG.reg = DMAC_CHINTENCLR_TCMPL; + + i2c1_stop(); + + i2c_led_q_running = 0; + + i2c_led_q_run(); + + return; + } + + if (DMAC->Channel[0].CHINTFLAG.bit.TERR) { + DMAC->Channel[0].CHINTFLAG.reg = DMAC_CHINTENCLR_TERR; + } +} + +issi3733_driver_t issidrv[ISSI3733_DRIVER_COUNT]; + +issi3733_led_t led_map[ISSI3733_LED_COUNT] = ISSI3733_LED_MAP; +RGB led_buffer[ISSI3733_LED_COUNT]; + +uint8_t gcr_actual; +uint8_t gcr_actual_last; +# ifdef USE_MASSDROP_CONFIGURATOR +uint8_t gcr_breathe; +float breathe_mult; +float pomod; +# endif + +# define ACT_GCR_NONE 0 +# define ACT_GCR_INC 1 +# define ACT_GCR_DEC 2 + +# define LED_GCR_STEP_AUTO 2 + +static uint8_t gcr_min_counter; +static uint8_t v_5v_cat_hit; + +// WARNING: Automatic GCR is in place to prevent USB shutdown and LED driver overloading +void gcr_compute(void) { + uint8_t action = ACT_GCR_NONE; + uint8_t gcr_use = gcr_desired; + +# ifdef USE_MASSDROP_CONFIGURATOR + if (led_animation_breathing) { + gcr_use = gcr_breathe; + } +# endif + + // If the 5v takes a catastrophic hit, disable the LED drivers briefly, assert auto gcr mode, min gcr and let the auto take over + if (v_5v < V5_CAT) { + I2C3733_Control_Set(0); + // CDC_print("USB: WARNING: 5V catastrophic level reached! Disabling LED drivers!\r\n"); //Blocking print is bad here! + v_5v_cat_hit = 20; //~100ms recover + gcr_actual = 0; // Minimize GCR + usb_gcr_auto = 1; // Force auto mode enabled + return; + } else if (v_5v_cat_hit > 1) { + v_5v_cat_hit--; + return; + } else if (v_5v_cat_hit == 1) { + I2C3733_Control_Set(1); + CDC_print("USB: WARNING: Re-enabling LED drivers\r\n"); + v_5v_cat_hit = 0; + return; + } + + if (usb_gcr_auto) { + if (v_5v_avg < V5_LOW) + action = ACT_GCR_DEC; + else if (v_5v_avg > V5_HIGH && gcr_actual < gcr_use) + action = ACT_GCR_INC; + else if (gcr_actual > gcr_use) + action = ACT_GCR_DEC; + } else { + if (gcr_actual < gcr_use) + action = ACT_GCR_INC; + else if (gcr_actual > gcr_use) + action = ACT_GCR_DEC; + } + + if (action == ACT_GCR_NONE) { + gcr_min_counter = 0; + } else if (action == ACT_GCR_INC) { + if (LED_GCR_STEP_AUTO > LED_GCR_MAX - gcr_actual) + gcr_actual = LED_GCR_MAX; // Obey max and prevent wrapping + else + gcr_actual += LED_GCR_STEP_AUTO; + gcr_min_counter = 0; + } else if (action == ACT_GCR_DEC) { + if (LED_GCR_STEP_AUTO > gcr_actual) // Prevent wrapping + { + gcr_actual = 0; + // At this point, power can no longer be cut from the LED drivers, so focus on cutting out extra port if active + if (usb_extra_state != USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG) // If not in a wait for replug state + { + if (usb_extra_state == USB_EXTRA_STATE_ENABLED) // If extra usb is enabled + { + gcr_min_counter++; + if (gcr_min_counter > 200) // 5ms per check = 1s delay + { + USB_ExtraSetState(USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG); + usb_extra_manual = 0; // Force disable manual mode of extra port + if (usb_extra_manual) + CDC_print("USB: Disabling extra port until replug and manual mode toggle!\r\n"); + else + CDC_print("USB: Disabling extra port until replug!\r\n"); + } + } + } + } else { + // Power successfully cut back from LED drivers + gcr_actual -= LED_GCR_STEP_AUTO; + gcr_min_counter = 0; + +# ifdef USE_MASSDROP_CONFIGURATOR + // If breathe mode is active, the top end can fluctuate if the host can not supply enough current + // So set the breathe GCR to where it becomes stable + if (led_animation_breathing == 1) { + gcr_breathe = gcr_actual; + // PS: At this point, setting breathing to exhale makes a noticebly shorter cycle + // and the same would happen maybe one or two more times. Therefore I'm favoring + // powering through one full breathe and letting gcr settle completely + } +# endif + } + } +} + +void issi3733_prepare_arrays(void) { + static bool s_init = false; + if (s_init) { + return; + } + s_init = true; + + memset(issidrv, 0, sizeof(issi3733_driver_t) * ISSI3733_DRIVER_COUNT); + + int i; + uint8_t addrs[ISSI3733_DRIVER_COUNT] = ISSI3773_DRIVER_ADDRESSES; + + for (i = 0; i < ISSI3733_DRIVER_COUNT; i++) { + issidrv[i].addr = addrs[i]; + } + + for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { + // BYTE: 1 + (SW-1)*16 + (CS-1) + led_map[i].rgb.g = issidrv[led_map[i].adr.drv - 1].pwm + 1 + ((led_map[i].adr.swg - 1) * 16 + (led_map[i].adr.cs - 1)); + led_map[i].rgb.r = issidrv[led_map[i].adr.drv - 1].pwm + 1 + ((led_map[i].adr.swr - 1) * 16 + (led_map[i].adr.cs - 1)); + led_map[i].rgb.b = issidrv[led_map[i].adr.drv - 1].pwm + 1 + ((led_map[i].adr.swb - 1) * 16 + (led_map[i].adr.cs - 1)); + + // BYTE: 1 + (SW-1)*2 + (CS-1)/8 + // BIT: (CS-1)%8 + *(issidrv[led_map[i].adr.drv - 1].onoff + 1 + (led_map[i].adr.swg - 1) * 2 + (led_map[i].adr.cs - 1) / 8) |= (1 << ((led_map[i].adr.cs - 1) % 8)); + *(issidrv[led_map[i].adr.drv - 1].onoff + 1 + (led_map[i].adr.swr - 1) * 2 + (led_map[i].adr.cs - 1) / 8) |= (1 << ((led_map[i].adr.cs - 1) % 8)); + *(issidrv[led_map[i].adr.drv - 1].onoff + 1 + (led_map[i].adr.swb - 1) * 2 + (led_map[i].adr.cs - 1) / 8) |= (1 << ((led_map[i].adr.cs - 1) % 8)); + } +} + +void md_rgb_matrix_prepare(void) { + for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { + *led_map[i].rgb.r = 0; + *led_map[i].rgb.g = 0; + *led_map[i].rgb.b = 0; + } +} + +static void led_set_one(int i, uint8_t r, uint8_t g, uint8_t b) { + if (i < ISSI3733_LED_COUNT) { +# ifdef USE_MASSDROP_CONFIGURATOR + md_rgb_matrix_config_override(i); +# else + led_buffer[i].r = r; + led_buffer[i].g = g; + led_buffer[i].b = b; +# endif + } +} + +static void led_set_all(uint8_t r, uint8_t g, uint8_t b) { + for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { + led_set_one(i, r, g, b); + } +} + +static void init(void) { + DBGC(DC_LED_MATRIX_INIT_BEGIN); + +# ifdef USE_MASSDROP_CONFIGURATOR + eeconfig_init_md_led(); + if (md_led_config.ver != MD_LED_CONFIG_VERSION) { + eeconfig_update_md_led_default(); + } +# endif + + issi3733_prepare_arrays(); + + md_rgb_matrix_prepare(); + + gcr_min_counter = 0; + v_5v_cat_hit = 0; + + DBGC(DC_LED_MATRIX_INIT_COMPLETE); +} + +static void flush(void) { +# ifdef USE_MASSDROP_CONFIGURATOR + if (!led_enabled) { + return; + } // Prevent calculations and I2C traffic if LED drivers are not enabled +# else + if (!sr_exp_data.bit.SDB_N) { + return; + } // Prevent calculations and I2C traffic if LED drivers are not enabled +# endif + + // Wait for previous transfer to complete + while (i2c_led_q_running) { + } + + // Copy buffer to live DMA region + for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { + *led_map[i].rgb.r = led_buffer[i].r; + *led_map[i].rgb.g = led_buffer[i].g; + *led_map[i].rgb.b = led_buffer[i].b; + } + +# ifdef USE_MASSDROP_CONFIGURATOR + breathe_mult = 1; + + if (led_animation_breathing) { + //+60us 119 LED + led_animation_breathe_cur += BREATHE_STEP * breathe_dir; + + if (led_animation_breathe_cur >= BREATHE_MAX_STEP) + breathe_dir = -1; + else if (led_animation_breathe_cur <= BREATHE_MIN_STEP) + breathe_dir = 1; + + // Brightness curve created for 256 steps, 0 - ~98% + breathe_mult = 0.000015 * led_animation_breathe_cur * led_animation_breathe_cur; + if (breathe_mult > 1) + breathe_mult = 1; + else if (breathe_mult < 0) + breathe_mult = 0; + } + + // This should only be performed once per frame + pomod = (float)((g_rgb_timer / 10) % (uint32_t)(1000.0f / led_animation_speed)) / 10.0f * led_animation_speed; + pomod *= 100.0f; + pomod = (uint32_t)pomod % 10000; + pomod /= 100.0f; + +# endif // USE_MASSDROP_CONFIGURATOR + + uint8_t drvid; + + // NOTE: GCR does not need to be timed with LED processing, but there is really no harm + if (gcr_actual != gcr_actual_last) { + for (drvid = 0; drvid < ISSI3733_DRIVER_COUNT; drvid++) + I2C_LED_Q_GCR(drvid); // Queue data + gcr_actual_last = gcr_actual; + } + + for (drvid = 0; drvid < ISSI3733_DRIVER_COUNT; drvid++) + I2C_LED_Q_PWM(drvid); // Queue data + + i2c_led_q_run(); +} + +void md_rgb_matrix_indicators_advanced(uint8_t led_min, uint8_t led_max) { + led_t led_state = host_keyboard_led_state(); + if (led_state.raw && rgb_matrix_config.enable) { + for (uint8_t i = led_min; i < led_max; i++) { + if ( +# if USB_LED_NUM_LOCK_SCANCODE != 255 + (led_map[i].scan == USB_LED_NUM_LOCK_SCANCODE && led_state.num_lock) || +# endif // NUM LOCK +# if USB_LED_CAPS_LOCK_SCANCODE != 255 + (led_map[i].scan == USB_LED_CAPS_LOCK_SCANCODE && led_state.caps_lock) || +# endif // CAPS LOCK +# if USB_LED_SCROLL_LOCK_SCANCODE != 255 + (led_map[i].scan == USB_LED_SCROLL_LOCK_SCANCODE && led_state.scroll_lock) || +# endif // SCROLL LOCK +# if USB_LED_COMPOSE_SCANCODE != 255 + (led_map[i].scan == USB_LED_COMPOSE_SCANCODE && led_state.compose) || +# endif // COMPOSE +# if USB_LED_KANA_SCANCODE != 255 + (led_map[i].scan == USB_LED_KANA_SCANCODE && led_state.kana) || +# endif // KANA + (0)) { + if (rgb_matrix_get_flags() & LED_FLAG_INDICATOR) { + led_buffer[i].r = 255 - led_buffer[i].r; + led_buffer[i].g = 255 - led_buffer[i].g; + led_buffer[i].b = 255 - led_buffer[i].b; + } + } + } + } +} + +const rgb_matrix_driver_t rgb_matrix_driver = {.init = init, .flush = flush, .set_color = led_set_one, .set_color_all = led_set_all}; + +/*============================================================================== += Legacy Lighting Support = +==============================================================================*/ + +# ifdef USE_MASSDROP_CONFIGURATOR +// Ported from Massdrop QMK GitHub Repo + +static void led_run_pattern(led_setup_t* f, float* ro, float* go, float* bo, float pos) { + float po; + + while (f->end != 1) { + po = pos; // Reset po for new frame + + // Add in any moving effects + if ((!led_animation_direction && f->ef & EF_SCR_R) || (led_animation_direction && (f->ef & EF_SCR_L))) { + po -= pomod; + + if (po > 100) + po -= 100; + else if (po < 0) + po += 100; + } else if ((!led_animation_direction && f->ef & EF_SCR_L) || (led_animation_direction && (f->ef & EF_SCR_R))) { + po += pomod; + + if (po > 100) + po -= 100; + else if (po < 0) + po += 100; + } + + // Check if LED's po is in current frame + if (po < f->hs) { + f++; + continue; + } + if (po > f->he) { + f++; + continue; + } + // note: < 0 or > 100 continue + + // Calculate the po within the start-stop percentage for color blending + po = (po - f->hs) / (f->he - f->hs); + + // Add in any color effects + if (f->ef & EF_OVER) { + *ro = (po * (f->re - f->rs)) + f->rs; // + 0.5; + *go = (po * (f->ge - f->gs)) + f->gs; // + 0.5; + *bo = (po * (f->be - f->bs)) + f->bs; // + 0.5; + } else if (f->ef & EF_SUBTRACT) { + *ro -= (po * (f->re - f->rs)) + f->rs; // + 0.5; + *go -= (po * (f->ge - f->gs)) + f->gs; // + 0.5; + *bo -= (po * (f->be - f->bs)) + f->bs; // + 0.5; + } else { + *ro += (po * (f->re - f->rs)) + f->rs; // + 0.5; + *go += (po * (f->ge - f->gs)) + f->gs; // + 0.5; + *bo += (po * (f->be - f->bs)) + f->bs; // + 0.5; + } + + f++; + } +} + +# define RGB_MAX_DISTANCE 232.9635f + +static void md_rgb_matrix_config_override(int i) { + float ro = 0; + float go = 0; + float bo = 0; + float po; + + uint8_t highest_active_layer = get_highest_layer(layer_state); + + if (led_animation_circular) { + // TODO: should use min/max values from LED configuration instead of + // hard-coded 224, 64 + // po = sqrtf((powf(fabsf((disp.width / 2) - (led_cur->x - disp.left)), 2) + powf(fabsf((disp.height / 2) - (led_cur->y - disp.bottom)), 2))) / disp.max_distance * 100; + po = sqrtf((powf(fabsf((224 / 2) - (float)g_led_config.point[i].x), 2) + powf(fabsf((64 / 2) - (float)g_led_config.point[i].y), 2))) / RGB_MAX_DISTANCE * 100; + } else { + if (led_animation_orientation) { + po = (float)g_led_config.point[i].y / 64.f * 100; + } else { + po = (float)g_led_config.point[i].x / 224.f * 100; + } + } + + if (led_edge_mode == LED_EDGE_MODE_ALTERNATE && LED_IS_EDGE_ALT(led_map[i].scan)) { + // Do not act on this LED (Edge alternate lighting mode) + } else if (led_lighting_mode == LED_MODE_KEYS_ONLY && HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + // Do not act on this LED + } else if (led_lighting_mode == LED_MODE_NON_KEYS_ONLY && !HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + // Do not act on this LED + } else if (led_lighting_mode == LED_MODE_INDICATORS_ONLY) { + // Do not act on this LED (Only show indicators) + } else { + led_instruction_t* led_cur_instruction = led_instructions; + while (!led_cur_instruction->end) { + // Check if this applies to current layer + if ((led_cur_instruction->flags & LED_FLAG_MATCH_LAYER) && (led_cur_instruction->layer != highest_active_layer)) { + goto next_iter; + } + + // Check if this applies to current index + if (led_cur_instruction->flags & LED_FLAG_MATCH_ID) { + uint8_t modid = i / 32; // Calculate which id# contains the led bit + uint32_t modidbit = 1 << (i % 32); // Calculate the bit within the id# + uint32_t* bitfield = &led_cur_instruction->id0 + modid; // Add modid as offset to id0 address. *bitfield is now idX of the led id + if (~(*bitfield) & modidbit) { // Check if led bit is not set in idX + goto next_iter; + } + } + + if (led_cur_instruction->flags & LED_FLAG_USE_RGB) { + ro = led_cur_instruction->r; + go = led_cur_instruction->g; + bo = led_cur_instruction->b; + } else if (led_cur_instruction->flags & LED_FLAG_USE_PATTERN) { + led_run_pattern(led_setups[led_cur_instruction->pattern_id], &ro, &go, &bo, po); + } else if (led_cur_instruction->flags & LED_FLAG_USE_ROTATE_PATTERN) { + led_run_pattern(led_setups[led_animation_id], &ro, &go, &bo, po); + } + + next_iter: + led_cur_instruction++; + } + + if (ro > 255) + ro = 255; + else if (ro < 0) + ro = 0; + if (go > 255) + go = 255; + else if (go < 0) + go = 0; + if (bo > 255) + bo = 255; + else if (bo < 0) + bo = 0; + + if (led_animation_breathing) { + ro *= breathe_mult; + go *= breathe_mult; + bo *= breathe_mult; + } + } + + // Adjust edge LED brightness + if (led_edge_brightness != 1 && LED_IS_EDGE(led_map[i].scan)) { + ro *= led_edge_brightness; + go *= led_edge_brightness; + bo *= led_edge_brightness; + } + + // Adjust ratio of key vs. underglow (edge) LED brightness + if (LED_IS_EDGE(led_map[i].scan) && led_ratio_brightness > 1.0) { + // Decrease edge (underglow) LEDs + ro *= (2.0 - led_ratio_brightness); + go *= (2.0 - led_ratio_brightness); + bo *= (2.0 - led_ratio_brightness); + } else if (LED_IS_KEY(led_map[i].scan) && led_ratio_brightness < 1.0) { + // Decrease KEY LEDs + ro *= led_ratio_brightness; + go *= led_ratio_brightness; + bo *= led_ratio_brightness; + } + + led_buffer[i].r = (uint8_t)ro; + led_buffer[i].g = (uint8_t)go; + led_buffer[i].b = (uint8_t)bo; +} + +# endif // USE_MASSDROP_CONFIGURATOR +#endif // RGB_MATRIX_ENABLE diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.h b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h new file mode 100644 index 0000000000..bb3312e8e7 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h @@ -0,0 +1,200 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include + +// From keyboard +#include "config_led.h" + +// CS1-CS16 Current Source "Col" +#define ISSI3733_CS_COUNT 16 + +// SW1-SW12 Switch "Row" +#define ISSI3733_SW_COUNT 12 + +#define ISSI3733_LED_RGB_COUNT ISSI3733_CS_COUNT *ISSI3733_SW_COUNT +#define ISSI3733_PG0_BYTES ISSI3733_LED_RGB_COUNT / 8 + 1 //+1 for first byte being memory start offset for I2C transfer +#define ISSI3733_PG1_BYTES ISSI3733_LED_RGB_COUNT + 1 //+1 for first byte being memory start offset for I2C transfer +#define ISSI3733_PG2_BYTES ISSI3733_LED_RGB_COUNT + 1 //+1 for first byte being memory start offset for I2C transfer +#define ISSI3733_PG3_BYTES 18 + 1 //+1 for first byte being memory start offset for I2C transfer + +#define ISSI3733_PG_ONOFF_BYTES ISSI3733_PG0_BYTES +#define ISSI3733_PG_OR_BYTES ISSI3733_PG0_BYTES +#define ISSI3733_PG_SR_BYTES ISSI3733_PG0_BYTES +#define ISSI3733_PG_PWM_BYTES ISSI3733_PG1_BYTES +#define ISSI3733_PG_ABM_BYTES ISSI3733_PG2_BYTES +#define ISSI3733_PG_FN_BYTES ISSI3733_PG3_BYTES + +typedef struct issi3733_driver_s { + uint8_t addr; // Address of the driver according to wiring "ISSI3733: Table 1 Slave Address" + uint8_t onoff[ISSI3733_PG_ONOFF_BYTES]; // PG0 - LED Control Register - LED On/Off Register + uint8_t open[ISSI3733_PG_OR_BYTES]; // PG0 - LED Control Register - LED Open Register + uint8_t shrt[ISSI3733_PG_SR_BYTES]; // PG0 - LED Control Register - LED Short Register + uint8_t pwm[ISSI3733_PG_PWM_BYTES]; // PG1 - PWM Register + uint8_t abm[ISSI3733_PG_ABM_BYTES]; // PG2 - Auto Breath Mode Register + uint8_t conf[ISSI3733_PG_FN_BYTES]; // PG3 - Function Register +} issi3733_driver_t; + +typedef struct issi3733_rgb_s { + uint8_t *r; // Direct access into PWM data + uint8_t *g; // Direct access into PWM data + uint8_t *b; // Direct access into PWM data +} issi3733_rgb_t; + +typedef struct issi3733_rgb_adr_s { + uint8_t drv; // Driver from given list + uint8_t cs; // CS + uint8_t swr; // SW Red + uint8_t swg; // SW Green + uint8_t swb; // SW Blue +} issi3733_rgb_adr_t; + +typedef struct issi3733_led_s { + uint8_t id; // According to PCB ref + issi3733_rgb_t rgb; // PWM settings of R G B + issi3733_rgb_adr_t adr; // Hardware addresses + float x; // Physical position X + float y; // Physical position Y + float px; // Physical position X in percent + float py; // Physical position Y in percent + uint8_t scan; // Key scan code from wiring (set 0xFF if no key) +} issi3733_led_t; + +extern issi3733_driver_t issidrv[ISSI3733_DRIVER_COUNT]; + +extern uint8_t gcr_breathe; +extern uint8_t gcr_actual; +extern uint8_t gcr_actual_last; + +void gcr_compute(void); + +void md_rgb_matrix_indicators_advanced(uint8_t led_min, uint8_t led_max); + +/*------------------------- Legacy Lighting Support ------------------------*/ + +#ifdef USE_MASSDROP_CONFIGURATOR + +# define EF_NONE 0x00000000 // No effect +# define EF_OVER 0x00000001 // Overwrite any previous color information with new +# define EF_SCR_L 0x00000002 // Scroll left +# define EF_SCR_R 0x00000004 // Scroll right +# define EF_SUBTRACT 0x00000008 // Subtract color values + +typedef struct led_setup_s { + float hs; // Band begin at percent + float he; // Band end at percent + uint8_t rs; // Red start value + uint8_t re; // Red end value + uint8_t gs; // Green start value + uint8_t ge; // Green end value + uint8_t bs; // Blue start value + uint8_t be; // Blue end value + uint32_t ef; // Animation and color effects + uint8_t end; // Set to signal end of the setup +} led_setup_t; + +extern const uint8_t led_setups_count; +extern void * led_setups[]; + +// LED Extra Instructions +# define LED_FLAG_NULL 0x00 // Matching and coloring not used (default) +# define LED_FLAG_MATCH_ID 0x01 // Match on the ID of the LED (set id#'s to desired bit pattern, first LED is id 1) +# define LED_FLAG_MATCH_LAYER 0x02 // Match on the current active layer (set layer to desired match layer) +# define LED_FLAG_USE_RGB 0x10 // Use a specific RGB value (set r, g, b to desired output color values) +# define LED_FLAG_USE_PATTERN 0x20 // Use a specific pattern ID (set pattern_id to desired output pattern) +# define LED_FLAG_USE_ROTATE_PATTERN 0x40 // Use pattern the user has cycled to manually + +typedef struct led_instruction_s { + uint16_t flags; // Bitfield for LED instructions + uint32_t id0; // Bitwise id, IDs 0-31 + uint32_t id1; // Bitwise id, IDs 32-63 + uint32_t id2; // Bitwise id, IDs 64-95 + uint32_t id3; // Bitwise id, IDs 96-127 + uint32_t id4; // Bitwise id, IDs 128-159 + uint32_t id5; // Bitwise id, IDs 160-191 + uint8_t layer; + uint8_t r; + uint8_t g; + uint8_t b; + uint8_t pattern_id; + uint8_t end; +} led_instruction_t; + +extern led_instruction_t led_instructions[]; + +typedef struct led_config_s { + uint8_t ver; // assumed to be zero on eeprom reset + + uint8_t desired_gcr; + uint8_t animation_breathing; + uint8_t animation_id; + float animation_speed; + uint8_t lighting_mode; + uint8_t enabled; + uint8_t animation_breathe_cur; + uint8_t animation_direction; + uint8_t animation_breathe_dir; + uint8_t animation_orientation; + uint8_t animation_circular; + float edge_brightness; + float ratio_brightness; + uint8_t edge_mode; +} md_led_config_t; + +extern md_led_config_t md_led_config; + +void md_led_changed(void); + +# define gcr_desired md_led_config.desired_gcr +# define led_animation_breathing md_led_config.animation_breathing +# define led_animation_id md_led_config.animation_id +# define led_animation_speed md_led_config.animation_speed +# define led_lighting_mode md_led_config.lighting_mode +# define led_enabled md_led_config.enabled +# define led_animation_breathe_cur md_led_config.animation_breathe_cur +# define led_animation_direction md_led_config.animation_direction +# define breathe_dir md_led_config.animation_breathe_dir +# define led_animation_orientation md_led_config.animation_orientation +# define led_animation_circular md_led_config.animation_circular +# define led_edge_brightness md_led_config.edge_brightness +# define led_ratio_brightness md_led_config.ratio_brightness +# define led_edge_mode md_led_config.edge_mode + +# define LED_MODE_NORMAL 0 // Must be 0 +# define LED_MODE_KEYS_ONLY 1 +# define LED_MODE_NON_KEYS_ONLY 2 +# define LED_MODE_INDICATORS_ONLY 3 +# define LED_MODE_MAX_INDEX LED_MODE_INDICATORS_ONLY // Must be highest value + +# define LED_EDGE_MODE_ALL 0 // All edge LEDs are active (Must be 0) +# define LED_EDGE_MODE_ALTERNATE 1 // Alternate mode of edge LEDs are active (Intention is for 'only every other edge LED' to be active) +# define LED_EDGE_MODE_MAX LED_EDGE_MODE_ALTERNATE // Must be the highest valued LED edge mode + +# define LED_EDGE_FULL_MODE 255 // LEDs configured with this scan code will always be on for edge lighting modes +# define LED_EDGE_ALT_MODE 254 // LEDs configured with this scan code will turn off in edge alternating mode +# define LED_EDGE_MIN_SCAN 254 // LEDs configured with scan code >= to this are assigned as edge LEDs +# define LED_INDICATOR_SCAN 253 // LEDs configured as dedicated indicators + +# define LED_IS_KEY(scan) (scan < LED_INDICATOR_SCAN) // Return true if an LED's scan value indicates it is a key LED +# define LED_IS_EDGE(scan) (scan >= LED_EDGE_MIN_SCAN) // Return true if an LED's scan value indicates an edge LED +# define LED_IS_EDGE_ALT(scan) (scan == LED_EDGE_ALT_MODE) // Return true if an LED's scan value indicates an alternate edge mode LED +# define LED_IS_INDICATOR(scan) (scan == LED_INDICATOR_SCAN) // Return true if an LED's scan value indicates it is a dedicated Indicator +#else +extern uint8_t gcr_desired; +#endif // USE_MASSDROP_CONFIGURATOR diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c new file mode 100644 index 0000000000..476b605297 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c @@ -0,0 +1,102 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifdef RGB_MATRIX_ENABLE +# ifdef USE_MASSDROP_CONFIGURATOR + +# include "md_rgb_matrix.h" +# include "util.h" + +// Teal <-> Salmon +led_setup_t leds_teal_salmon[] = { + {.hs = 0, .he = 33, .rs = 24, .re = 24, .gs = 215, .ge = 215, .bs = 204, .be = 204, .ef = EF_NONE}, + {.hs = 33, .he = 66, .rs = 24, .re = 255, .gs = 215, .ge = 114, .bs = 204, .be = 118, .ef = EF_NONE}, + {.hs = 66, .he = 100, .rs = 255, .re = 255, .gs = 114, .ge = 114, .bs = 118, .be = 118, .ef = EF_NONE}, + {.end = 1}, +}; + +// Yellow +led_setup_t leds_yellow[] = { + {.hs = 0, .he = 100, .rs = 255, .re = 255, .gs = 255, .ge = 255, .bs = 0, .be = 0, .ef = EF_NONE}, + {.end = 1}, +}; + +// Off +led_setup_t leds_off[] = { + {.hs = 0, .he = 100, .rs = 0, .re = 0, .gs = 0, .ge = 0, .bs = 0, .be = 0, .ef = EF_NONE}, + {.end = 1}, +}; + +// Red +led_setup_t leds_red[] = { + {.hs = 0, .he = 100, .rs = 255, .re = 255, .gs = 0, .ge = 0, .bs = 0, .be = 0, .ef = EF_NONE}, + {.end = 1}, +}; + +// Green +led_setup_t leds_green[] = { + {.hs = 0, .he = 100, .rs = 0, .re = 0, .gs = 255, .ge = 255, .bs = 0, .be = 0, .ef = EF_NONE}, + {.end = 1}, +}; + +// Blue +led_setup_t leds_blue[] = { + {.hs = 0, .he = 100, .rs = 0, .re = 0, .gs = 0, .ge = 0, .bs = 255, .be = 255, .ef = EF_NONE}, + {.end = 1}, +}; + +// White +led_setup_t leds_white[] = { + {.hs = 0, .he = 100, .rs = 255, .re = 255, .gs = 255, .ge = 255, .bs = 255, .be = 255, .ef = EF_NONE}, + {.end = 1}, +}; + +// White with moving red stripe +led_setup_t leds_white_with_red_stripe[] = { + {.hs = 0, .he = 100, .rs = 255, .re = 255, .gs = 255, .ge = 255, .bs = 255, .be = 255, .ef = EF_NONE}, + {.hs = 0, .he = 15, .rs = 0, .re = 0, .gs = 0, .ge = 255, .bs = 0, .be = 255, .ef = EF_SCR_R | EF_SUBTRACT}, + {.hs = 15, .he = 30, .rs = 0, .re = 0, .gs = 255, .ge = 0, .bs = 255, .be = 0, .ef = EF_SCR_R | EF_SUBTRACT}, + {.end = 1}, +}; + +// Black with moving red stripe +led_setup_t leds_black_with_red_stripe[] = { + {.hs = 0, .he = 15, .rs = 0, .re = 255, .gs = 0, .ge = 0, .bs = 0, .be = 0, .ef = EF_SCR_R}, + {.hs = 15, .he = 30, .rs = 255, .re = 0, .gs = 0, .ge = 0, .bs = 0, .be = 0, .ef = EF_SCR_R}, + {.end = 1}, +}; + +// Rainbow no scrolling +led_setup_t leds_rainbow_ns[] = { + {.hs = 0, .he = 16.67, .rs = 255, .re = 255, .gs = 0, .ge = 255, .bs = 0, .be = 0, .ef = EF_OVER}, {.hs = 16.67, .he = 33.33, .rs = 255, .re = 0, .gs = 255, .ge = 255, .bs = 0, .be = 0, .ef = EF_OVER}, {.hs = 33.33, .he = 50, .rs = 0, .re = 0, .gs = 255, .ge = 255, .bs = 0, .be = 255, .ef = EF_OVER}, {.hs = 50, .he = 66.67, .rs = 0, .re = 0, .gs = 255, .ge = 0, .bs = 255, .be = 255, .ef = EF_OVER}, {.hs = 66.67, .he = 83.33, .rs = 0, .re = 255, .gs = 0, .ge = 0, .bs = 255, .be = 255, .ef = EF_OVER}, {.hs = 83.33, .he = 100, .rs = 255, .re = 255, .gs = 0, .ge = 0, .bs = 255, .be = 0, .ef = EF_OVER}, {.end = 1}, +}; + +// Rainbow scrolling +led_setup_t leds_rainbow_s[] = { + {.hs = 0, .he = 16.67, .rs = 255, .re = 255, .gs = 0, .ge = 255, .bs = 0, .be = 0, .ef = EF_OVER | EF_SCR_R}, {.hs = 16.67, .he = 33.33, .rs = 255, .re = 0, .gs = 255, .ge = 255, .bs = 0, .be = 0, .ef = EF_OVER | EF_SCR_R}, {.hs = 33.33, .he = 50, .rs = 0, .re = 0, .gs = 255, .ge = 255, .bs = 0, .be = 255, .ef = EF_OVER | EF_SCR_R}, {.hs = 50, .he = 66.67, .rs = 0, .re = 0, .gs = 255, .ge = 0, .bs = 255, .be = 255, .ef = EF_OVER | EF_SCR_R}, {.hs = 66.67, .he = 83.33, .rs = 0, .re = 255, .gs = 0, .ge = 0, .bs = 255, .be = 255, .ef = EF_OVER | EF_SCR_R}, {.hs = 83.33, .he = 100, .rs = 255, .re = 255, .gs = 0, .ge = 0, .bs = 255, .be = 0, .ef = EF_OVER | EF_SCR_R}, {.end = 1}, +}; + +// Add new LED animations here using one from above as example +// The last entry must be { .end = 1 } +// Add the new animation name to the list below following its format + +void *led_setups[] = {leds_rainbow_s, leds_rainbow_ns, leds_teal_salmon, leds_yellow, leds_red, leds_green, leds_blue, leds_white, leds_white_with_red_stripe, leds_black_with_red_stripe, leds_off}; + +const uint8_t led_setups_count = ARRAY_SIZE(led_setups); + +# endif // USE_MASSDROP_CONFIGURATOR +#endif // RGB_MATRIX_ENABLE \ No newline at end of file diff --git a/tmk_core/protocol/arm_atsam/shift_register.c b/tmk_core/protocol/arm_atsam/shift_register.c new file mode 100644 index 0000000000..e81db4a19d --- /dev/null +++ b/tmk_core/protocol/arm_atsam/shift_register.c @@ -0,0 +1,122 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" + +#include "spi_master.h" +#include "wait.h" +#include "gpio.h" + +// #define SR_USE_BITBANG + +// Bodge for when spi_master is not available +#ifdef SR_USE_BITBANG +# define CLOCK_DELAY 10 + +void shift_init_impl(void) { + gpio_set_pin_output(SR_EXP_RCLK_PIN); + gpio_set_pin_output(SPI_DATAOUT_PIN); + gpio_set_pin_output(SPI_SCLK_PIN); +} + +void shift_out_impl(const uint8_t *data, uint16_t length) { + gpio_write_pin_low(SR_EXP_RCLK_PIN); + for (uint16_t i = 0; i < length; i++) { + uint8_t val = data[i]; + + // shift out lsb first + for (uint8_t bit = 0; bit < 8; bit++) { + gpio_write_pin(SPI_DATAOUT_PIN, !!(val & (1 << bit))); + gpio_write_pin(SPI_SCLK_PIN, true); + wait_us(CLOCK_DELAY); + + gpio_write_pin(SPI_SCLK_PIN, false); + wait_us(CLOCK_DELAY); + } + } + gpio_write_pin_high(SR_EXP_RCLK_PIN); + return SPI_STATUS_SUCCESS; +} + +#else + +void shift_init_impl(void) { + spi_init(); +} + +void shift_out_impl(const uint8_t *data, uint16_t length) { + spi_start(SR_EXP_RCLK_PIN, true, 0, 0); + + spi_transmit(data, length); + + spi_stop(); +} +#endif + +// *************************************************************** + +void shift_out(const uint8_t *data, uint16_t length) { + shift_out_impl(data, length); +} + +void shift_enable(void) { + gpio_set_pin_output(SR_EXP_OE_PIN); + gpio_write_pin_low(SR_EXP_OE_PIN); +} + +void shift_disable(void) { + gpio_set_pin_output(SR_EXP_OE_PIN); + gpio_write_pin_high(SR_EXP_OE_PIN); +} + +void shift_init(void) { + shift_disable(); + shift_init_impl(); +} + +// *************************************************************** + +sr_exp_t sr_exp_data; + +void SR_EXP_WriteData(void) { + uint8_t data[2] = { + sr_exp_data.reg & 0xFF, // Shift in bits 7-0 + (sr_exp_data.reg >> 8) & 0xFF, // Shift in bits 15-8 + }; + shift_out(data, 2); +} + +void SR_EXP_Init(void) { + shift_init(); + + sr_exp_data.reg = 0; + sr_exp_data.bit.HUB_CONNECT = 0; + sr_exp_data.bit.HUB_RESET_N = 0; + sr_exp_data.bit.S_UP = 0; + sr_exp_data.bit.E_UP_N = 1; + sr_exp_data.bit.S_DN1 = 1; + sr_exp_data.bit.E_DN1_N = 1; + sr_exp_data.bit.E_VBUS_1 = 0; + sr_exp_data.bit.E_VBUS_2 = 0; + sr_exp_data.bit.SRC_1 = 1; + sr_exp_data.bit.SRC_2 = 1; + sr_exp_data.bit.IRST = 1; + sr_exp_data.bit.SDB_N = 0; + SR_EXP_WriteData(); + + shift_enable(); +} diff --git a/tmk_core/protocol/arm_atsam/shift_register.h b/tmk_core/protocol/arm_atsam/shift_register.h new file mode 100644 index 0000000000..56a8c7f717 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/shift_register.h @@ -0,0 +1,49 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include + +/* Data structure to define Shift Register output expander hardware */ +/* This structure gets shifted into registers LSB first */ +typedef union { + struct { + uint16_t RSVD4 : 1; /*!< bit: 0 */ + uint16_t RSVD3 : 1; /*!< bit: 1 */ + uint16_t RSVD2 : 1; /*!< bit: 2 */ + uint16_t RSVD1 : 1; /*!< bit: 3 */ + uint16_t SDB_N : 1; /*!< bit: 4 SHUTDOWN THE CHIP WHEN 0, RUN WHEN 1 */ + uint16_t IRST : 1; /*!< bit: 5 RESET THE IS3733 I2C WHEN 1, RUN WHEN 0 */ + uint16_t SRC_2 : 1; /*!< bit: 6 ADVERTISE A SOURCE TO USBC-2 CC */ + uint16_t SRC_1 : 1; /*!< bit: 7 ADVERTISE A SOURCE TO USBC-1 CC */ + uint16_t E_VBUS_2 : 1; /*!< bit: 8 ENABLE 5V OUT TO USBC-2 WHEN 1 */ + uint16_t E_VBUS_1 : 1; /*!< bit: 9 ENABLE 5V OUT TO USBC-1 WHEN 1 */ + uint16_t E_DN1_N : 1; /*!< bit: 10 ENABLE DN1 1:2 MUX WHEN 0 */ + uint16_t S_DN1 : 1; /*!< bit: 11 SELECT DN1 PATH 0:USBC-1, 1:USBC-2 */ + uint16_t E_UP_N : 1; /*!< bit: 12 ENABLE SUP 1:2 MUX WHEN 0 */ + uint16_t S_UP : 1; /*!< bit: 13 SELECT UP PATH 0:USBC-1, 1:USBC-2 */ + uint16_t HUB_RESET_N : 1; /*!< bit: 14 RESET USB HUB WHEN 0, RUN WHEN 1 */ + uint16_t HUB_CONNECT : 1; /*!< bit: 15 SIGNAL VBUS CONNECT TO USB HUB WHEN 1 */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} sr_exp_t; + +extern sr_exp_t sr_exp_data; + +void SR_EXP_WriteData(void); +void SR_EXP_Init(void); diff --git a/tmk_core/protocol/arm_atsam/spi_master.c b/tmk_core/protocol/arm_atsam/spi_master.c new file mode 100644 index 0000000000..fedb9654fd --- /dev/null +++ b/tmk_core/protocol/arm_atsam/spi_master.c @@ -0,0 +1,109 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" +#include "spi_master.h" +#include "gpio.h" + +/* Determine bits to set for mux selection */ +#if SPI_DATAOUT_PIN % 2 == 0 +# define SPI_DATAOUT_MUX_SEL PMUXE +#else +# define SPI_DATAOUT_MUX_SEL PMUXO +#endif + +/* Determine bits to set for mux selection */ +#if SPI_SCLK_PIN % 2 == 0 +# define SPI_SCLK_MUX_SEL PMUXE +#else +# define SPI_SCLK_MUX_SEL PMUXO +#endif + +static pin_t currentSelectPin = NO_PIN; + +__attribute__((weak)) void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + DBGC(DC_SPI_INIT_BEGIN); + + CLK_set_spi_freq(CHAN_SERCOM_SPI, FREQ_SPI_DEFAULT); + + // Set up MCU SPI pins + PORT->Group[SAMD_PORT(SPI_DATAOUT_PIN)].PMUX[SAMD_PIN(SPI_DATAOUT_PIN) / 2].bit.SPI_DATAOUT_MUX_SEL = SPI_DATAOUT_MUX; // MUX select for sercom + PORT->Group[SAMD_PORT(SPI_SCLK_PIN)].PMUX[SAMD_PIN(SPI_SCLK_PIN) / 2].bit.SPI_SCLK_MUX_SEL = SPI_SCLK_MUX; // MUX select for sercom + PORT->Group[SAMD_PORT(SPI_DATAOUT_PIN)].PINCFG[SAMD_PIN(SPI_DATAOUT_PIN)].bit.PMUXEN = 1; // MUX Enable + PORT->Group[SAMD_PORT(SPI_SCLK_PIN)].PINCFG[SAMD_PIN(SPI_SCLK_PIN)].bit.PMUXEN = 1; // MUX Enable + + DBGC(DC_SPI_INIT_COMPLETE); + } +} + +bool spi_start(pin_t csPin, bool lsbFirst, uint8_t mode, uint16_t divisor) { + if (currentSelectPin != NO_PIN || csPin == NO_PIN) { + return false; + } + + currentSelectPin = csPin; + gpio_set_pin_output(currentSelectPin); + gpio_write_pin_low(currentSelectPin); + + SPI_SERCOM->SPI.CTRLA.bit.DORD = lsbFirst; // Data Order - LSB is transferred first + SPI_SERCOM->SPI.CTRLA.bit.CPOL = 1; // Clock Polarity - SCK high when idle. Leading edge of cycle is falling. Trailing rising. + SPI_SERCOM->SPI.CTRLA.bit.CPHA = 1; // Clock Phase - Leading Edge Falling, change, Trailing Edge - Rising, sample + SPI_SERCOM->SPI.CTRLA.bit.DIPO = 3; // Data In Pinout - SERCOM PAD[3] is used as data input (Configure away from DOPO. Not using input.) + SPI_SERCOM->SPI.CTRLA.bit.DOPO = 0; // Data Output PAD[0], Serial Clock PAD[1] + SPI_SERCOM->SPI.CTRLA.bit.MODE = 3; // Operating Mode - Master operation + + SPI_SERCOM->SPI.CTRLA.bit.ENABLE = 1; // Enable - Peripheral is enabled or being enabled + while (SPI_SERCOM->SPI.SYNCBUSY.bit.ENABLE) { + DBGC(DC_SPI_SYNC_ENABLING); + } + return true; +} + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length) { + while (!(SPI_SERCOM->SPI.INTFLAG.bit.DRE)) { + DBGC(DC_SPI_WRITE_DRE); + } + + for (uint16_t i = 0; i < length; i++) { + SPI_SERCOM->SPI.DATA.bit.DATA = data[i]; + while (!(SPI_SERCOM->SPI.INTFLAG.bit.TXC)) { + DBGC(DC_SPI_WRITE_TXC_1); + } + } + + return SPI_STATUS_SUCCESS; +} + +void spi_stop(void) { + if (currentSelectPin != NO_PIN) { + gpio_set_pin_output(currentSelectPin); + gpio_write_pin_high(currentSelectPin); + currentSelectPin = NO_PIN; + } +} + +// Not implemented yet.... + +spi_status_t spi_write(uint8_t data); + +spi_status_t spi_read(void); + +spi_status_t spi_receive(uint8_t *data, uint16_t length); diff --git a/tmk_core/protocol/arm_atsam/spi_master.h b/tmk_core/protocol/arm_atsam/spi_master.h new file mode 100644 index 0000000000..80678a5707 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/spi_master.h @@ -0,0 +1,50 @@ +/* Copyright 2021 QMK + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "gpio.h" + +typedef int16_t spi_status_t; + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif +void spi_init(void); + +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +spi_status_t spi_write(uint8_t data); + +spi_status_t spi_read(void); + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +void spi_stop(void); +#ifdef __cplusplus +} +#endif diff --git a/tmk_core/protocol/arm_atsam/startup.c b/tmk_core/protocol/arm_atsam/startup.c new file mode 100644 index 0000000000..ce043bad51 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/startup.c @@ -0,0 +1,563 @@ +/** + * \file + * + * \brief gcc starttup file for SAMD51 + * + * Copyright (c) 2017 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#include "samd51.h" + +/* Initialize segments */ +extern uint32_t _sfixed; +extern uint32_t _efixed; +extern uint32_t _etext; +extern uint32_t _srelocate; +extern uint32_t _erelocate; +extern uint32_t _szero; +extern uint32_t _ezero; +extern uint32_t _sstack; +extern uint32_t _estack; + +/** \cond DOXYGEN_SHOULD_SKIP_THIS */ +int main(void); +/** \endcond */ + +void __libc_init_array(void); + +/* Default empty handler */ +void Dummy_Handler(void); + +/* Cortex-M4 core handlers */ +void NMI_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void HardFault_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void MemManage_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void BusFault_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void UsageFault_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void SVC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void DebugMon_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void PendSV_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void SysTick_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); + +/* Peripherals handlers */ +void PM_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void MCLK_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void OSCCTRL_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ +void OSCCTRL_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ +void OSCCTRL_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ +void OSCCTRL_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ +void OSCCTRL_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ +void OSC32KCTRL_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void SUPC_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ +void SUPC_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SUPC_BOD12DET, SUPC_BOD33DET */ +void WDT_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void RTC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void EIC_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_0 */ +void EIC_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_1 */ +void EIC_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_2 */ +void EIC_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_3 */ +void EIC_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_4 */ +void EIC_5_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_5 */ +void EIC_6_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_6 */ +void EIC_7_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_7 */ +void EIC_8_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_8 */ +void EIC_9_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_9 */ +void EIC_10_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_10 */ +void EIC_11_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_11 */ +void EIC_12_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_12 */ +void EIC_13_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_13 */ +void EIC_14_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_14 */ +void EIC_15_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EIC_EXTINT_15 */ +void FREQM_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void NVMCTRL_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ +void NVMCTRL_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ +void DMAC_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ +void DMAC_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ +void DMAC_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ +void DMAC_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ +void DMAC_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, + DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ +void EVSYS_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EVSYS_EVD_0, EVSYS_OVR_0 */ +void EVSYS_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EVSYS_EVD_1, EVSYS_OVR_1 */ +void EVSYS_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EVSYS_EVD_2, EVSYS_OVR_2 */ +void EVSYS_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EVSYS_EVD_3, EVSYS_OVR_3 */ +void EVSYS_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ +void PAC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void TAL_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TAL_BRK */ +void TAL_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TAL_IPS_0, TAL_IPS_1 */ +void RAMECC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void SERCOM0_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM0_0 */ +void SERCOM0_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM0_1 */ +void SERCOM0_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM0_2 */ +void SERCOM0_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ +void SERCOM1_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM1_0 */ +void SERCOM1_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM1_1 */ +void SERCOM1_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM1_2 */ +void SERCOM1_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ +void SERCOM2_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM2_0 */ +void SERCOM2_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM2_1 */ +void SERCOM2_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM2_2 */ +void SERCOM2_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ +void SERCOM3_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM3_0 */ +void SERCOM3_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM3_1 */ +void SERCOM3_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM3_2 */ +void SERCOM3_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ +#ifdef ID_SERCOM4 +void SERCOM4_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM4_0 */ +void SERCOM4_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM4_1 */ +void SERCOM4_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM4_2 */ +void SERCOM4_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ +#endif +#ifdef ID_SERCOM5 +void SERCOM5_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM5_0 */ +void SERCOM5_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM5_1 */ +void SERCOM5_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM5_2 */ +void SERCOM5_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ +#endif +#ifdef ID_SERCOM6 +void SERCOM6_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM6_0 */ +void SERCOM6_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM6_1 */ +void SERCOM6_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM6_2 */ +void SERCOM6_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ +#endif +#ifdef ID_SERCOM7 +void SERCOM7_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM7_0 */ +void SERCOM7_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM7_1 */ +void SERCOM7_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM7_2 */ +void SERCOM7_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ +#endif +#ifdef ID_CAN0 +void CAN0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_CAN1 +void CAN1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_USB +void USB_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ +void USB_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* USB_SOF_HSOF */ +void USB_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ +void USB_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ +#endif +#ifdef ID_GMAC +void GMAC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +void TCC0_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ +void TCC0_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_0 */ +void TCC0_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_1 */ +void TCC0_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_2 */ +void TCC0_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_3 */ +void TCC0_5_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_4 */ +void TCC0_6_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC0_MC_5 */ +void TCC1_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ +void TCC1_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC1_MC_0 */ +void TCC1_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC1_MC_1 */ +void TCC1_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC1_MC_2 */ +void TCC1_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC1_MC_3 */ +void TCC2_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ +void TCC2_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC2_MC_0 */ +void TCC2_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC2_MC_1 */ +void TCC2_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC2_MC_2 */ +#ifdef ID_TCC3 +void TCC3_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ +void TCC3_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC3_MC_0 */ +void TCC3_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC3_MC_1 */ +#endif +#ifdef ID_TCC4 +void TCC4_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ +void TCC4_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC4_MC_0 */ +void TCC4_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* TCC4_MC_1 */ +#endif +void TC0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void TC1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void TC2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void TC3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#ifdef ID_TC4 +void TC4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_TC5 +void TC5_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_TC6 +void TC6_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_TC7 +void TC7_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +void PDEC_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ +void PDEC_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* PDEC_MC_0 */ +void PDEC_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* PDEC_MC_1 */ +void ADC0_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* ADC0_OVERRUN, ADC0_WINMON */ +void ADC0_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* ADC0_RESRDY */ +void ADC1_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* ADC1_OVERRUN, ADC1_WINMON */ +void ADC1_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* ADC1_RESRDY */ +void AC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void DAC_0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ +void DAC_1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DAC_EMPTY_0 */ +void DAC_2_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DAC_EMPTY_1 */ +void DAC_3_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DAC_RESRDY_0 */ +void DAC_4_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); /* DAC_RESRDY_1 */ +#ifdef ID_I2S +void I2S_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +void PCC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void AES_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +void TRNG_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#ifdef ID_ICM +void ICM_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_PUKCC +void PUKCC_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +void QSPI_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#ifdef ID_SDHC0 +void SDHC0_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif +#ifdef ID_SDHC1 +void SDHC1_Handler(void) __attribute__((weak, alias("Dummy_Handler"))); +#endif + +/* Exception Table */ +__attribute__((section(".vectors"))) const DeviceVectors exception_table = { + + /* Configure Initial Stack Pointer, using linker-generated symbols */ + .pvStack = (void *)(&_estack), + + .pfnReset_Handler = (void *)Reset_Handler, + .pfnNMI_Handler = (void *)NMI_Handler, + .pfnHardFault_Handler = (void *)HardFault_Handler, + .pfnMemManage_Handler = (void *)MemManage_Handler, + .pfnBusFault_Handler = (void *)BusFault_Handler, + .pfnUsageFault_Handler = (void *)UsageFault_Handler, + .pvReservedM9 = (void *)(0UL), /* Reserved */ + .pvReservedM8 = (void *)(0UL), /* Reserved */ + .pvReservedM7 = (void *)(0UL), /* Reserved */ + .pvReservedM6 = (void *)(0UL), /* Reserved */ + .pfnSVC_Handler = (void *)SVC_Handler, + .pfnDebugMon_Handler = (void *)DebugMon_Handler, + .pvReservedM3 = (void *)(0UL), /* Reserved */ + .pfnPendSV_Handler = (void *)PendSV_Handler, + .pfnSysTick_Handler = (void *)SysTick_Handler, + + /* Configurable interrupts */ + .pfnPM_Handler = (void *)PM_Handler, /* 0 Power Manager */ + .pfnMCLK_Handler = (void *)MCLK_Handler, /* 1 Main Clock */ + .pfnOSCCTRL_0_Handler = (void *)OSCCTRL_0_Handler, /* 2 OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + .pfnOSCCTRL_1_Handler = (void *)OSCCTRL_1_Handler, /* 3 OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + .pfnOSCCTRL_2_Handler = (void *)OSCCTRL_2_Handler, /* 4 OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + .pfnOSCCTRL_3_Handler = (void *)OSCCTRL_3_Handler, /* 5 OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + .pfnOSCCTRL_4_Handler = (void *)OSCCTRL_4_Handler, /* 6 OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + .pfnOSC32KCTRL_Handler = (void *)OSC32KCTRL_Handler, /* 7 32kHz Oscillators Control */ + .pfnSUPC_0_Handler = (void *)SUPC_0_Handler, /* 8 SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + .pfnSUPC_1_Handler = (void *)SUPC_1_Handler, /* 9 SUPC_BOD12DET, SUPC_BOD33DET */ + .pfnWDT_Handler = (void *)WDT_Handler, /* 10 Watchdog Timer */ + .pfnRTC_Handler = (void *)RTC_Handler, /* 11 Real-Time Counter */ + .pfnEIC_0_Handler = (void *)EIC_0_Handler, /* 12 EIC_EXTINT_0 */ + .pfnEIC_1_Handler = (void *)EIC_1_Handler, /* 13 EIC_EXTINT_1 */ + .pfnEIC_2_Handler = (void *)EIC_2_Handler, /* 14 EIC_EXTINT_2 */ + .pfnEIC_3_Handler = (void *)EIC_3_Handler, /* 15 EIC_EXTINT_3 */ + .pfnEIC_4_Handler = (void *)EIC_4_Handler, /* 16 EIC_EXTINT_4 */ + .pfnEIC_5_Handler = (void *)EIC_5_Handler, /* 17 EIC_EXTINT_5 */ + .pfnEIC_6_Handler = (void *)EIC_6_Handler, /* 18 EIC_EXTINT_6 */ + .pfnEIC_7_Handler = (void *)EIC_7_Handler, /* 19 EIC_EXTINT_7 */ + .pfnEIC_8_Handler = (void *)EIC_8_Handler, /* 20 EIC_EXTINT_8 */ + .pfnEIC_9_Handler = (void *)EIC_9_Handler, /* 21 EIC_EXTINT_9 */ + .pfnEIC_10_Handler = (void *)EIC_10_Handler, /* 22 EIC_EXTINT_10 */ + .pfnEIC_11_Handler = (void *)EIC_11_Handler, /* 23 EIC_EXTINT_11 */ + .pfnEIC_12_Handler = (void *)EIC_12_Handler, /* 24 EIC_EXTINT_12 */ + .pfnEIC_13_Handler = (void *)EIC_13_Handler, /* 25 EIC_EXTINT_13 */ + .pfnEIC_14_Handler = (void *)EIC_14_Handler, /* 26 EIC_EXTINT_14 */ + .pfnEIC_15_Handler = (void *)EIC_15_Handler, /* 27 EIC_EXTINT_15 */ + .pfnFREQM_Handler = (void *)FREQM_Handler, /* 28 Frequency Meter */ + .pfnNVMCTRL_0_Handler = (void *)NVMCTRL_0_Handler, /* 29 NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + .pfnNVMCTRL_1_Handler = (void *)NVMCTRL_1_Handler, /* 30 NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + .pfnDMAC_0_Handler = (void *)DMAC_0_Handler, /* 31 DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + .pfnDMAC_1_Handler = (void *)DMAC_1_Handler, /* 32 DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + .pfnDMAC_2_Handler = (void *)DMAC_2_Handler, /* 33 DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + .pfnDMAC_3_Handler = (void *)DMAC_3_Handler, /* 34 DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + .pfnDMAC_4_Handler = (void *)DMAC_4_Handler, /* 35 DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, + DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + .pfnEVSYS_0_Handler = (void *)EVSYS_0_Handler, /* 36 EVSYS_EVD_0, EVSYS_OVR_0 */ + .pfnEVSYS_1_Handler = (void *)EVSYS_1_Handler, /* 37 EVSYS_EVD_1, EVSYS_OVR_1 */ + .pfnEVSYS_2_Handler = (void *)EVSYS_2_Handler, /* 38 EVSYS_EVD_2, EVSYS_OVR_2 */ + .pfnEVSYS_3_Handler = (void *)EVSYS_3_Handler, /* 39 EVSYS_EVD_3, EVSYS_OVR_3 */ + .pfnEVSYS_4_Handler = (void *)EVSYS_4_Handler, /* 40 EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + .pfnPAC_Handler = (void *)PAC_Handler, /* 41 Peripheral Access Controller */ + .pfnTAL_0_Handler = (void *)TAL_0_Handler, /* 42 TAL_BRK */ + .pfnTAL_1_Handler = (void *)TAL_1_Handler, /* 43 TAL_IPS_0, TAL_IPS_1 */ + .pvReserved44 = (void *)(0UL), /* 44 Reserved */ + .pfnRAMECC_Handler = (void *)RAMECC_Handler, /* 45 RAM ECC */ + .pfnSERCOM0_0_Handler = (void *)SERCOM0_0_Handler, /* 46 SERCOM0_0 */ + .pfnSERCOM0_1_Handler = (void *)SERCOM0_1_Handler, /* 47 SERCOM0_1 */ + .pfnSERCOM0_2_Handler = (void *)SERCOM0_2_Handler, /* 48 SERCOM0_2 */ + .pfnSERCOM0_3_Handler = (void *)SERCOM0_3_Handler, /* 49 SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + .pfnSERCOM1_0_Handler = (void *)SERCOM1_0_Handler, /* 50 SERCOM1_0 */ + .pfnSERCOM1_1_Handler = (void *)SERCOM1_1_Handler, /* 51 SERCOM1_1 */ + .pfnSERCOM1_2_Handler = (void *)SERCOM1_2_Handler, /* 52 SERCOM1_2 */ + .pfnSERCOM1_3_Handler = (void *)SERCOM1_3_Handler, /* 53 SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + .pfnSERCOM2_0_Handler = (void *)SERCOM2_0_Handler, /* 54 SERCOM2_0 */ + .pfnSERCOM2_1_Handler = (void *)SERCOM2_1_Handler, /* 55 SERCOM2_1 */ + .pfnSERCOM2_2_Handler = (void *)SERCOM2_2_Handler, /* 56 SERCOM2_2 */ + .pfnSERCOM2_3_Handler = (void *)SERCOM2_3_Handler, /* 57 SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + .pfnSERCOM3_0_Handler = (void *)SERCOM3_0_Handler, /* 58 SERCOM3_0 */ + .pfnSERCOM3_1_Handler = (void *)SERCOM3_1_Handler, /* 59 SERCOM3_1 */ + .pfnSERCOM3_2_Handler = (void *)SERCOM3_2_Handler, /* 60 SERCOM3_2 */ + .pfnSERCOM3_3_Handler = (void *)SERCOM3_3_Handler, /* 61 SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ +#ifdef ID_SERCOM4 + .pfnSERCOM4_0_Handler = (void *)SERCOM4_0_Handler, /* 62 SERCOM4_0 */ + .pfnSERCOM4_1_Handler = (void *)SERCOM4_1_Handler, /* 63 SERCOM4_1 */ + .pfnSERCOM4_2_Handler = (void *)SERCOM4_2_Handler, /* 64 SERCOM4_2 */ + .pfnSERCOM4_3_Handler = (void *)SERCOM4_3_Handler, /* 65 SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ +#else + .pvReserved62 = (void *)(0UL), /* 62 Reserved */ + .pvReserved63 = (void *)(0UL), /* 63 Reserved */ + .pvReserved64 = (void *)(0UL), /* 64 Reserved */ + .pvReserved65 = (void *)(0UL), /* 65 Reserved */ +#endif +#ifdef ID_SERCOM5 + .pfnSERCOM5_0_Handler = (void *)SERCOM5_0_Handler, /* 66 SERCOM5_0 */ + .pfnSERCOM5_1_Handler = (void *)SERCOM5_1_Handler, /* 67 SERCOM5_1 */ + .pfnSERCOM5_2_Handler = (void *)SERCOM5_2_Handler, /* 68 SERCOM5_2 */ + .pfnSERCOM5_3_Handler = (void *)SERCOM5_3_Handler, /* 69 SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ +#else + .pvReserved66 = (void *)(0UL), /* 66 Reserved */ + .pvReserved67 = (void *)(0UL), /* 67 Reserved */ + .pvReserved68 = (void *)(0UL), /* 68 Reserved */ + .pvReserved69 = (void *)(0UL), /* 69 Reserved */ +#endif +#ifdef ID_SERCOM6 + .pfnSERCOM6_0_Handler = (void *)SERCOM6_0_Handler, /* 70 SERCOM6_0 */ + .pfnSERCOM6_1_Handler = (void *)SERCOM6_1_Handler, /* 71 SERCOM6_1 */ + .pfnSERCOM6_2_Handler = (void *)SERCOM6_2_Handler, /* 72 SERCOM6_2 */ + .pfnSERCOM6_3_Handler = (void *)SERCOM6_3_Handler, /* 73 SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ +#else + .pvReserved70 = (void *)(0UL), /* 70 Reserved */ + .pvReserved71 = (void *)(0UL), /* 71 Reserved */ + .pvReserved72 = (void *)(0UL), /* 72 Reserved */ + .pvReserved73 = (void *)(0UL), /* 73 Reserved */ +#endif +#ifdef ID_SERCOM7 + .pfnSERCOM7_0_Handler = (void *)SERCOM7_0_Handler, /* 74 SERCOM7_0 */ + .pfnSERCOM7_1_Handler = (void *)SERCOM7_1_Handler, /* 75 SERCOM7_1 */ + .pfnSERCOM7_2_Handler = (void *)SERCOM7_2_Handler, /* 76 SERCOM7_2 */ + .pfnSERCOM7_3_Handler = (void *)SERCOM7_3_Handler, /* 77 SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ +#else + .pvReserved74 = (void *)(0UL), /* 74 Reserved */ + .pvReserved75 = (void *)(0UL), /* 75 Reserved */ + .pvReserved76 = (void *)(0UL), /* 76 Reserved */ + .pvReserved77 = (void *)(0UL), /* 77 Reserved */ +#endif +#ifdef ID_CAN0 + .pfnCAN0_Handler = (void *)CAN0_Handler, /* 78 Control Area Network 0 */ +#else + .pvReserved78 = (void *)(0UL), /* 78 Reserved */ +#endif +#ifdef ID_CAN1 + .pfnCAN1_Handler = (void *)CAN1_Handler, /* 79 Control Area Network 1 */ +#else + .pvReserved79 = (void *)(0UL), /* 79 Reserved */ +#endif +#ifdef ID_USB + .pfnUSB_0_Handler = (void *)USB_0_Handler, /* 80 USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + .pfnUSB_1_Handler = (void *)USB_1_Handler, /* 81 USB_SOF_HSOF */ + .pfnUSB_2_Handler = (void *)USB_2_Handler, /* 82 USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + .pfnUSB_3_Handler = (void *)USB_3_Handler, /* 83 USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ +#else + .pvReserved80 = (void *)(0UL), /* 80 Reserved */ + .pvReserved81 = (void *)(0UL), /* 81 Reserved */ + .pvReserved82 = (void *)(0UL), /* 82 Reserved */ + .pvReserved83 = (void *)(0UL), /* 83 Reserved */ +#endif +#ifdef ID_GMAC + .pfnGMAC_Handler = (void *)GMAC_Handler, /* 84 Ethernet MAC */ +#else + .pvReserved84 = (void *)(0UL), /* 84 Reserved */ +#endif + .pfnTCC0_0_Handler = (void *)TCC0_0_Handler, /* 85 TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + .pfnTCC0_1_Handler = (void *)TCC0_1_Handler, /* 86 TCC0_MC_0 */ + .pfnTCC0_2_Handler = (void *)TCC0_2_Handler, /* 87 TCC0_MC_1 */ + .pfnTCC0_3_Handler = (void *)TCC0_3_Handler, /* 88 TCC0_MC_2 */ + .pfnTCC0_4_Handler = (void *)TCC0_4_Handler, /* 89 TCC0_MC_3 */ + .pfnTCC0_5_Handler = (void *)TCC0_5_Handler, /* 90 TCC0_MC_4 */ + .pfnTCC0_6_Handler = (void *)TCC0_6_Handler, /* 91 TCC0_MC_5 */ + .pfnTCC1_0_Handler = (void *)TCC1_0_Handler, /* 92 TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + .pfnTCC1_1_Handler = (void *)TCC1_1_Handler, /* 93 TCC1_MC_0 */ + .pfnTCC1_2_Handler = (void *)TCC1_2_Handler, /* 94 TCC1_MC_1 */ + .pfnTCC1_3_Handler = (void *)TCC1_3_Handler, /* 95 TCC1_MC_2 */ + .pfnTCC1_4_Handler = (void *)TCC1_4_Handler, /* 96 TCC1_MC_3 */ + .pfnTCC2_0_Handler = (void *)TCC2_0_Handler, /* 97 TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + .pfnTCC2_1_Handler = (void *)TCC2_1_Handler, /* 98 TCC2_MC_0 */ + .pfnTCC2_2_Handler = (void *)TCC2_2_Handler, /* 99 TCC2_MC_1 */ + .pfnTCC2_3_Handler = (void *)TCC2_3_Handler, /* 100 TCC2_MC_2 */ +#ifdef ID_TCC3 + .pfnTCC3_0_Handler = (void *)TCC3_0_Handler, /* 101 TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + .pfnTCC3_1_Handler = (void *)TCC3_1_Handler, /* 102 TCC3_MC_0 */ + .pfnTCC3_2_Handler = (void *)TCC3_2_Handler, /* 103 TCC3_MC_1 */ +#else + .pvReserved101 = (void *)(0UL), /* 101 Reserved */ + .pvReserved102 = (void *)(0UL), /* 102 Reserved */ + .pvReserved103 = (void *)(0UL), /* 103 Reserved */ +#endif +#ifdef ID_TCC4 + .pfnTCC4_0_Handler = (void *)TCC4_0_Handler, /* 104 TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + .pfnTCC4_1_Handler = (void *)TCC4_1_Handler, /* 105 TCC4_MC_0 */ + .pfnTCC4_2_Handler = (void *)TCC4_2_Handler, /* 106 TCC4_MC_1 */ +#else + .pvReserved104 = (void *)(0UL), /* 104 Reserved */ + .pvReserved105 = (void *)(0UL), /* 105 Reserved */ + .pvReserved106 = (void *)(0UL), /* 106 Reserved */ +#endif + .pfnTC0_Handler = (void *)TC0_Handler, /* 107 Basic Timer Counter 0 */ + .pfnTC1_Handler = (void *)TC1_Handler, /* 108 Basic Timer Counter 1 */ + .pfnTC2_Handler = (void *)TC2_Handler, /* 109 Basic Timer Counter 2 */ + .pfnTC3_Handler = (void *)TC3_Handler, /* 110 Basic Timer Counter 3 */ +#ifdef ID_TC4 + .pfnTC4_Handler = (void *)TC4_Handler, /* 111 Basic Timer Counter 4 */ +#else + .pvReserved111 = (void *)(0UL), /* 111 Reserved */ +#endif +#ifdef ID_TC5 + .pfnTC5_Handler = (void *)TC5_Handler, /* 112 Basic Timer Counter 5 */ +#else + .pvReserved112 = (void *)(0UL), /* 112 Reserved */ +#endif +#ifdef ID_TC6 + .pfnTC6_Handler = (void *)TC6_Handler, /* 113 Basic Timer Counter 6 */ +#else + .pvReserved113 = (void *)(0UL), /* 113 Reserved */ +#endif +#ifdef ID_TC7 + .pfnTC7_Handler = (void *)TC7_Handler, /* 114 Basic Timer Counter 7 */ +#else + .pvReserved114 = (void *)(0UL), /* 114 Reserved */ +#endif + .pfnPDEC_0_Handler = (void *)PDEC_0_Handler, /* 115 PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + .pfnPDEC_1_Handler = (void *)PDEC_1_Handler, /* 116 PDEC_MC_0 */ + .pfnPDEC_2_Handler = (void *)PDEC_2_Handler, /* 117 PDEC_MC_1 */ + .pfnADC0_0_Handler = (void *)ADC0_0_Handler, /* 118 ADC0_OVERRUN, ADC0_WINMON */ + .pfnADC0_1_Handler = (void *)ADC0_1_Handler, /* 119 ADC0_RESRDY */ + .pfnADC1_0_Handler = (void *)ADC1_0_Handler, /* 120 ADC1_OVERRUN, ADC1_WINMON */ + .pfnADC1_1_Handler = (void *)ADC1_1_Handler, /* 121 ADC1_RESRDY */ + .pfnAC_Handler = (void *)AC_Handler, /* 122 Analog Comparators */ + .pfnDAC_0_Handler = (void *)DAC_0_Handler, /* 123 DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + .pfnDAC_1_Handler = (void *)DAC_1_Handler, /* 124 DAC_EMPTY_0 */ + .pfnDAC_2_Handler = (void *)DAC_2_Handler, /* 125 DAC_EMPTY_1 */ + .pfnDAC_3_Handler = (void *)DAC_3_Handler, /* 126 DAC_RESRDY_0 */ + .pfnDAC_4_Handler = (void *)DAC_4_Handler, /* 127 DAC_RESRDY_1 */ +#ifdef ID_I2S + .pfnI2S_Handler = (void *)I2S_Handler, /* 128 Inter-IC Sound Interface */ +#else + .pvReserved128 = (void *)(0UL), /* 128 Reserved */ +#endif + .pfnPCC_Handler = (void *)PCC_Handler, /* 129 Parallel Capture Controller */ + .pfnAES_Handler = (void *)AES_Handler, /* 130 Advanced Encryption Standard */ + .pfnTRNG_Handler = (void *)TRNG_Handler, /* 131 True Random Generator */ +#ifdef ID_ICM + .pfnICM_Handler = (void *)ICM_Handler, /* 132 Integrity Check Monitor */ +#else + .pvReserved132 = (void *)(0UL), /* 132 Reserved */ +#endif +#ifdef ID_PUKCC + .pfnPUKCC_Handler = (void *)PUKCC_Handler, /* 133 PUblic-Key Cryptography Controller */ +#else + .pvReserved133 = (void *)(0UL), /* 133 Reserved */ +#endif + .pfnQSPI_Handler = (void *)QSPI_Handler, /* 134 Quad SPI interface */ +#ifdef ID_SDHC0 + .pfnSDHC0_Handler = (void *)SDHC0_Handler, /* 135 SD/MMC Host Controller 0 */ +#else + .pvReserved135 = (void *)(0UL), /* 135 Reserved */ +#endif +#ifdef ID_SDHC1 + .pfnSDHC1_Handler = (void *)SDHC1_Handler /* 136 SD/MMC Host Controller 1 */ +#else + .pvReserved136 = (void *)(0UL) /* 136 Reserved */ +#endif +}; + +// WARNING: These are only for CTRL bootloader release "v2.18Jun 22 2018 17:28:08" for bootloader_jump support +extern uint32_t _eram; +#define BOOTLOADER_MAGIC 0x3B9ACA00 +#define MAGIC_ADDR (uint32_t *)((intptr_t)(&_eram) - 4) + +/** + * \brief This is the code that gets called on processor reset. + * To initialize the device, and call the main() routine. + */ +void Reset_Handler(void) { +#ifdef KEYBOARD_massdrop_ctrl + /* WARNING: This is only for CTRL bootloader release "v2.18Jun 22 2018 17:28:08" for bootloader_jump support */ + if (*MAGIC_ADDR == BOOTLOADER_MAGIC) { + /* At this point, the bootloader's memory is initialized properly, so undo the jump to here, then jump back */ + *MAGIC_ADDR = 0x00000000; /* Change value to prevent potential bootloader entrance loop */ + __set_MSP(0x20008818); /* MSP according to bootloader */ + SCB->VTOR = 0x00000000; /* Vector table back to bootloader's */ + asm("bx %0" ::"r"(0x00001267)); /* Jump past bootloader RCAUSE check using THUMB */ + } +#endif + uint32_t *pSrc, *pDest; + + /* Initialize the relocate segment */ + pSrc = &_etext; + pDest = &_srelocate; + + if (pSrc != pDest) { + for (; pDest < &_erelocate;) { + *pDest++ = *pSrc++; + } + } + + /* Clear the zero segment */ + for (pDest = &_szero; pDest < &_ezero;) { + *pDest++ = 0; + } + + /* Set the vector table base address */ + pSrc = (uint32_t *)&_sfixed; + SCB->VTOR = ((uint32_t)pSrc & SCB_VTOR_TBLOFF_Msk); + +#if __FPU_USED + /* Enable FPU */ + SCB->CPACR |= (0xFu << 20); + __DSB(); + __ISB(); +#endif + + /* Initialize the C library */ + __libc_init_array(); + + /* Branch to main function */ + main(); + + /* Infinite loop */ + while (1) + ; +} + +/** + * \brief Default interrupt handler for unused IRQs. + */ +void Dummy_Handler(void) { + while (1) { + } +} diff --git a/tmk_core/protocol/arm_atsam/usb/compiler.h b/tmk_core/protocol/arm_atsam/usb/compiler.h new file mode 100644 index 0000000000..9fb04ff628 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/compiler.h @@ -0,0 +1,1079 @@ +/** + * \file + * + * \brief Commonly used includes, types and macros. + * + * Copyright (C) 2012-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef UTILS_COMPILER_H_INCLUDED +#define UTILS_COMPILER_H_INCLUDED + +/** + * \defgroup group_sam0_utils Compiler abstraction layer and code utilities + * + * Compiler abstraction layer and code utilities for Cortex-M0+ based Atmel SAM devices. + * This module provides various abstraction layers and utilities to make code compatible between different compilers. + * + * @{ + */ + +#if (defined __ICCARM__) +# include +#endif + +#include +//#include +//#include +//#include +//#include + +#ifndef __ASSEMBLY__ + +# include +# include +# include +# include + +/** + * \def UNUSED + * \brief Marking \a v as a unused parameter or value. + */ +# define UNUSED(v) (void)(v) + +/** + * \def barrier + * \brief Memory barrier + */ +# ifdef __GNUC__ +# define barrier() asm volatile("" ::: "memory") +# else +# define barrier() asm("") +# endif + +/** + * \brief Emit the compiler pragma \a arg. + * + * \param[in] arg The pragma directive as it would appear after \e \#pragma + * (i.e. not stringified). + */ +# define COMPILER_PRAGMA(arg) _Pragma(# arg) + +/** + * \def COMPILER_PACK_SET(alignment) + * \brief Set maximum alignment for subsequent struct and union definitions to \a alignment. + */ +# define COMPILER_PACK_SET(alignment) COMPILER_PRAGMA(pack(alignment)) + +/** + * \def COMPILER_PACK_RESET() + * \brief Set default alignment for subsequent struct and union definitions. + */ +# define COMPILER_PACK_RESET() COMPILER_PRAGMA(pack()) + +/** + * \brief Set aligned boundary. + */ +# if (defined __GNUC__) || (defined __CC_ARM) +# define COMPILER_ALIGNED(a) __attribute__((__aligned__(a))) +# elif (defined __ICCARM__) +# define COMPILER_ALIGNED(a) COMPILER_PRAGMA(data_alignment = a) +# endif + +/** + * \brief Set word-aligned boundary. + */ +# if (defined __GNUC__) || defined(__CC_ARM) +# define COMPILER_WORD_ALIGNED __attribute__((__aligned__(4))) +# elif (defined __ICCARM__) +# define COMPILER_WORD_ALIGNED COMPILER_PRAGMA(data_alignment = 4) +# endif + +/** + * \def __always_inline + * \brief The function should always be inlined. + * + * This annotation instructs the compiler to ignore its inlining + * heuristics and inline the function no matter how big it thinks it + * becomes. + */ +# if !defined(__always_inline) +# if defined(__CC_ARM) +# define __always_inline __forceinline +# elif (defined __GNUC__) +# define __always_inline __attribute__((__always_inline__)) +# elif (defined __ICCARM__) +# define __always_inline _Pragma("inline=forced") +# endif +# endif + +/** + * \def __no_inline + * \brief The function should never be inlined + * + * This annotation instructs the compiler to ignore its inlining + * heuristics and not inline the function no matter how small it thinks it + * becomes. + */ +# if defined(__CC_ARM) +# define __no_inline __attribute__((noinline)) +# elif (defined __GNUC__) +# define __no_inline __attribute__((noinline)) +# elif (defined __ICCARM__) +# define __no_inline _Pragma("inline=never") +# endif + +/** \brief This macro is used to test fatal errors. + * + * The macro tests if the expression is false. If it is, a fatal error is + * detected and the application hangs up. If \c TEST_SUITE_DEFINE_ASSERT_MACRO + * is defined, a unit test version of the macro is used, to allow execution + * of further tests after a false expression. + * + * \param[in] expr Expression to evaluate and supposed to be nonzero. + */ +# if defined(_ASSERT_ENABLE_) +# if defined(TEST_SUITE_DEFINE_ASSERT_MACRO) +# include "unit_test/suite.h" +# else +# undef TEST_SUITE_DEFINE_ASSERT_MACRO +# define Assert(expr) \ + { \ + if (!(expr)) asm("BKPT #0"); \ + } +# endif +# else +# define Assert(expr) ((void)0) +# endif + +/* Define WEAK attribute */ +# if defined(__CC_ARM) +# define WEAK __attribute__((weak)) +# elif defined(__ICCARM__) +# define WEAK __weak +# elif defined(__GNUC__) +# define WEAK __attribute__((weak)) +# endif + +/* Define NO_INIT attribute */ +# if defined(__CC_ARM) +# define NO_INIT __attribute__((zero_init)) +# elif defined(__ICCARM__) +# define NO_INIT __no_init +# elif defined(__GNUC__) +# define NO_INIT __attribute__((section(".no_init"))) +# endif + +//#include "interrupt.h" + +/** \name Usual Types + * @{ */ +# ifndef __cplusplus +# if !defined(__bool_true_false_are_defined) +typedef unsigned char bool; +# endif +# endif +typedef uint16_t le16_t; +typedef uint16_t be16_t; +typedef uint32_t le32_t; +typedef uint32_t be32_t; +typedef uint32_t iram_size_t; +/** @} */ + +/** \name Aliasing Aggregate Types + * @{ */ + +/** 16-bit union. */ +typedef union { + int16_t s16; + uint16_t u16; + int8_t s8[2]; + uint8_t u8[2]; +} Union16; + +/** 32-bit union. */ +typedef union { + int32_t s32; + uint32_t u32; + int16_t s16[2]; + uint16_t u16[2]; + int8_t s8[4]; + uint8_t u8[4]; +} Union32; + +/** 64-bit union. */ +typedef union { + int64_t s64; + uint64_t u64; + int32_t s32[2]; + uint32_t u32[2]; + int16_t s16[4]; + uint16_t u16[4]; + int8_t s8[8]; + uint8_t u8[8]; +} Union64; + +/** Union of pointers to 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef union { + int64_t * s64ptr; + uint64_t *u64ptr; + int32_t * s32ptr; + uint32_t *u32ptr; + int16_t * s16ptr; + uint16_t *u16ptr; + int8_t * s8ptr; + uint8_t * u8ptr; +} UnionPtr; + +/** Union of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef union { + volatile int64_t * s64ptr; + volatile uint64_t *u64ptr; + volatile int32_t * s32ptr; + volatile uint32_t *u32ptr; + volatile int16_t * s16ptr; + volatile uint16_t *u16ptr; + volatile int8_t * s8ptr; + volatile uint8_t * u8ptr; +} UnionVPtr; + +/** Union of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef union { + const int64_t * s64ptr; + const uint64_t *u64ptr; + const int32_t * s32ptr; + const uint32_t *u32ptr; + const int16_t * s16ptr; + const uint16_t *u16ptr; + const int8_t * s8ptr; + const uint8_t * u8ptr; +} UnionCPtr; + +/** Union of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef union { + const volatile int64_t * s64ptr; + const volatile uint64_t *u64ptr; + const volatile int32_t * s32ptr; + const volatile uint32_t *u32ptr; + const volatile int16_t * s16ptr; + const volatile uint16_t *u16ptr; + const volatile int8_t * s8ptr; + const volatile uint8_t * u8ptr; +} UnionCVPtr; + +/** Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef struct { + int64_t * s64ptr; + uint64_t *u64ptr; + int32_t * s32ptr; + uint32_t *u32ptr; + int16_t * s16ptr; + uint16_t *u16ptr; + int8_t * s8ptr; + uint8_t * u8ptr; +} StructPtr; + +/** Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef struct { + volatile int64_t * s64ptr; + volatile uint64_t *u64ptr; + volatile int32_t * s32ptr; + volatile uint32_t *u32ptr; + volatile int16_t * s16ptr; + volatile uint16_t *u16ptr; + volatile int8_t * s8ptr; + volatile uint8_t * u8ptr; +} StructVPtr; + +/** Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef struct { + const int64_t * s64ptr; + const uint64_t *u64ptr; + const int32_t * s32ptr; + const uint32_t *u32ptr; + const int16_t * s16ptr; + const uint16_t *u16ptr; + const int8_t * s8ptr; + const uint8_t * u8ptr; +} StructCPtr; + +/** Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. */ +typedef struct { + const volatile int64_t * s64ptr; + const volatile uint64_t *u64ptr; + const volatile int32_t * s32ptr; + const volatile uint32_t *u32ptr; + const volatile int16_t * s16ptr; + const volatile uint16_t *u16ptr; + const volatile int8_t * s8ptr; + const volatile uint8_t * u8ptr; +} StructCVPtr; + +/** @} */ + +#endif /* #ifndef __ASSEMBLY__ */ + +/** \name Usual Constants + * @{ */ +// kmod #define DISABLE 0 +// kmod #define ENABLE 1 + +#ifndef __cplusplus +# if !defined(__bool_true_false_are_defined) +# define false 0 +# define true 1 +# endif +#endif +/** @} */ + +#ifndef __ASSEMBLY__ + +/** \name Optimization Control + * @{ */ + +/** + * \def likely(exp) + * \brief The expression \a exp is likely to be true + */ +# if !defined(likely) || defined(__DOXYGEN__) +# define likely(exp) (exp) +# endif + +/** + * \def unlikely(exp) + * \brief The expression \a exp is unlikely to be true + */ +# if !defined(unlikely) || defined(__DOXYGEN__) +# define unlikely(exp) (exp) +# endif + +/** + * \def is_constant(exp) + * \brief Determine if an expression evaluates to a constant value. + * + * \param[in] exp Any expression + * + * \return true if \a exp is constant, false otherwise. + */ +# if (defined __GNUC__) || (defined __CC_ARM) +# define is_constant(exp) __builtin_constant_p(exp) +# else +# define is_constant(exp) (0) +# endif + +/** @} */ + +/** \name Bit-Field Handling + * @{ */ + +/** \brief Reads the bits of a value specified by a given bit-mask. + * + * \param[in] value Value to read bits from. + * \param[in] mask Bit-mask indicating bits to read. + * + * \return Read bits. + */ +# define Rd_bits(value, mask) ((value) & (mask)) + +/** \brief Writes the bits of a C lvalue specified by a given bit-mask. + * + * \param[in] lvalue C lvalue to write bits to. + * \param[in] mask Bit-mask indicating bits to write. + * \param[in] bits Bits to write. + * + * \return Resulting value with written bits. + */ +# define Wr_bits(lvalue, mask, bits) ((lvalue) = ((lvalue) & ~(mask)) | ((bits) & (mask))) + +/** \brief Tests the bits of a value specified by a given bit-mask. + * + * \param[in] value Value of which to test bits. + * \param[in] mask Bit-mask indicating bits to test. + * + * \return \c 1 if at least one of the tested bits is set, else \c 0. + */ +# define Tst_bits(value, mask) (Rd_bits(value, mask) != 0) + +/** \brief Clears the bits of a C lvalue specified by a given bit-mask. + * + * \param[in] lvalue C lvalue of which to clear bits. + * \param[in] mask Bit-mask indicating bits to clear. + * + * \return Resulting value with cleared bits. + */ +# define Clr_bits(lvalue, mask) ((lvalue) &= ~(mask)) + +/** \brief Sets the bits of a C lvalue specified by a given bit-mask. + * + * \param[in] lvalue C lvalue of which to set bits. + * \param[in] mask Bit-mask indicating bits to set. + * + * \return Resulting value with set bits. + */ +# define Set_bits(lvalue, mask) ((lvalue) |= (mask)) + +/** \brief Toggles the bits of a C lvalue specified by a given bit-mask. + * + * \param[in] lvalue C lvalue of which to toggle bits. + * \param[in] mask Bit-mask indicating bits to toggle. + * + * \return Resulting value with toggled bits. + */ +# define Tgl_bits(lvalue, mask) ((lvalue) ^= (mask)) + +/** \brief Reads the bit-field of a value specified by a given bit-mask. + * + * \param[in] value Value to read a bit-field from. + * \param[in] mask Bit-mask indicating the bit-field to read. + * + * \return Read bit-field. + */ +# define Rd_bitfield(value, mask) (Rd_bits(value, mask) >> ctz(mask)) + +/** \brief Writes the bit-field of a C lvalue specified by a given bit-mask. + * + * \param[in] lvalue C lvalue to write a bit-field to. + * \param[in] mask Bit-mask indicating the bit-field to write. + * \param[in] bitfield Bit-field to write. + * + * \return Resulting value with written bit-field. + */ +# define Wr_bitfield(lvalue, mask, bitfield) (Wr_bits(lvalue, mask, (uint32_t)(bitfield) << ctz(mask))) + +/** @} */ + +/** \name Zero-Bit Counting + * + * Under GCC, __builtin_clz and __builtin_ctz behave like macros when + * applied to constant expressions (values known at compile time), so they are + * more optimized than the use of the corresponding assembly instructions and + * they can be used as constant expressions e.g. to initialize objects having + * static storage duration, and like the corresponding assembly instructions + * when applied to non-constant expressions (values unknown at compile time), so + * they are more optimized than an assembly periphrasis. Hence, clz and ctz + * ensure a possible and optimized behavior for both constant and non-constant + * expressions. + * + * @{ */ + +/** \brief Counts the leading zero bits of the given value considered as a 32-bit integer. + * + * \param[in] u Value of which to count the leading zero bits. + * + * \return The count of leading zero bits in \a u. + */ +# if (defined __GNUC__) || (defined __CC_ARM) +# define clz(u) ((u) ? __builtin_clz(u) : 32) +# else +# define clz(u) (((u) == 0) ? 32 : ((u) & (1ul << 31)) ? 0 : ((u) & (1ul << 30)) ? 1 : ((u) & (1ul << 29)) ? 2 : ((u) & (1ul << 28)) ? 3 : ((u) & (1ul << 27)) ? 4 : ((u) & (1ul << 26)) ? 5 : ((u) & (1ul << 25)) ? 6 : ((u) & (1ul << 24)) ? 7 : ((u) & (1ul << 23)) ? 8 : ((u) & (1ul << 22)) ? 9 : ((u) & (1ul << 21)) ? 10 : ((u) & (1ul << 20)) ? 11 : ((u) & (1ul << 19)) ? 12 : ((u) & (1ul << 18)) ? 13 : ((u) & (1ul << 17)) ? 14 : ((u) & (1ul << 16)) ? 15 : ((u) & (1ul << 15)) ? 16 : ((u) & (1ul << 14)) ? 17 : ((u) & (1ul << 13)) ? 18 : ((u) & (1ul << 12)) ? 19 : ((u) & (1ul << 11)) ? 20 : ((u) & (1ul << 10)) ? 21 : ((u) & (1ul << 9)) ? 22 : ((u) & (1ul << 8)) ? 23 : ((u) & (1ul << 7)) ? 24 : ((u) & (1ul << 6)) ? 25 : ((u) & (1ul << 5)) ? 26 : ((u) & (1ul << 4)) ? 27 : ((u) & (1ul << 3)) ? 28 : ((u) & (1ul << 2)) ? 29 : ((u) & (1ul << 1)) ? 30 : 31) +# endif + +/** \brief Counts the trailing zero bits of the given value considered as a 32-bit integer. + * + * \param[in] u Value of which to count the trailing zero bits. + * + * \return The count of trailing zero bits in \a u. + */ +# if (defined __GNUC__) || (defined __CC_ARM) +# define ctz(u) ((u) ? __builtin_ctz(u) : 32) +# else +# define ctz(u) ((u) & (1ul << 0) ? 0 : (u) & (1ul << 1) ? 1 : (u) & (1ul << 2) ? 2 : (u) & (1ul << 3) ? 3 : (u) & (1ul << 4) ? 4 : (u) & (1ul << 5) ? 5 : (u) & (1ul << 6) ? 6 : (u) & (1ul << 7) ? 7 : (u) & (1ul << 8) ? 8 : (u) & (1ul << 9) ? 9 : (u) & (1ul << 10) ? 10 : (u) & (1ul << 11) ? 11 : (u) & (1ul << 12) ? 12 : (u) & (1ul << 13) ? 13 : (u) & (1ul << 14) ? 14 : (u) & (1ul << 15) ? 15 : (u) & (1ul << 16) ? 16 : (u) & (1ul << 17) ? 17 : (u) & (1ul << 18) ? 18 : (u) & (1ul << 19) ? 19 : (u) & (1ul << 20) ? 20 : (u) & (1ul << 21) ? 21 : (u) & (1ul << 22) ? 22 : (u) & (1ul << 23) ? 23 : (u) & (1ul << 24) ? 24 : (u) & (1ul << 25) ? 25 : (u) & (1ul << 26) ? 26 : (u) & (1ul << 27) ? 27 : (u) & (1ul << 28) ? 28 : (u) & (1ul << 29) ? 29 : (u) & (1ul << 30) ? 30 : (u) & (1ul << 31) ? 31 : 32) +# endif + +/** @} */ + +/** \name Bit Reversing + * @{ */ + +/** \brief Reverses the bits of \a u8. + * + * \param[in] u8 U8 of which to reverse the bits. + * + * \return Value resulting from \a u8 with reversed bits. + */ +# define bit_reverse8(u8) ((U8)(bit_reverse32((U8)(u8)) >> 24)) + +/** \brief Reverses the bits of \a u16. + * + * \param[in] u16 U16 of which to reverse the bits. + * + * \return Value resulting from \a u16 with reversed bits. + */ +# define bit_reverse16(u16) ((uint16_t)(bit_reverse32((uint16_t)(u16)) >> 16)) + +/** \brief Reverses the bits of \a u32. + * + * \param[in] u32 U32 of which to reverse the bits. + * + * \return Value resulting from \a u32 with reversed bits. + */ +# define bit_reverse32(u32) __RBIT(u32) + +/** \brief Reverses the bits of \a u64. + * + * \param[in] u64 U64 of which to reverse the bits. + * + * \return Value resulting from \a u64 with reversed bits. + */ +# define bit_reverse64(u64) ((uint64_t)(((uint64_t)bit_reverse32((uint64_t)(u64) >> 32)) | ((uint64_t)bit_reverse32((uint64_t)(u64)) << 32))) + +/** @} */ + +/** \name Alignment + * @{ */ + +/** \brief Tests alignment of the number \a val with the \a n boundary. + * + * \param[in] val Input value. + * \param[in] n Boundary. + * + * \return \c 1 if the number \a val is aligned with the \a n boundary, else \c 0. + */ +# define Test_align(val, n) (!Tst_bits(val, (n)-1)) + +/** \brief Gets alignment of the number \a val with respect to the \a n boundary. + * + * \param[in] val Input value. + * \param[in] n Boundary. + * + * \return Alignment of the number \a val with respect to the \a n boundary. + */ +# define Get_align(val, n) (Rd_bits(val, (n)-1)) + +/** \brief Sets alignment of the lvalue number \a lval to \a alg with respect to the \a n boundary. + * + * \param[in] lval Input/output lvalue. + * \param[in] n Boundary. + * \param[in] alg Alignment. + * + * \return New value of \a lval resulting from its alignment set to \a alg with respect to the \a n boundary. + */ +# define Set_align(lval, n, alg) (Wr_bits(lval, (n)-1, alg)) + +/** \brief Aligns the number \a val with the upper \a n boundary. + * + * \param[in] val Input value. + * \param[in] n Boundary. + * + * \return Value resulting from the number \a val aligned with the upper \a n boundary. + */ +# define Align_up(val, n) (((val) + ((n)-1)) & ~((n)-1)) + +/** \brief Aligns the number \a val with the lower \a n boundary. + * + * \param[in] val Input value. + * \param[in] n Boundary. + * + * \return Value resulting from the number \a val aligned with the lower \a n boundary. + */ +# define Align_down(val, n) ((val) & ~((n)-1)) + +/** @} */ + +/** \name Mathematics + * + * The same considerations as for clz and ctz apply here but GCC does not + * provide built-in functions to access the assembly instructions abs, min and + * max and it does not produce them by itself in most cases, so two sets of + * macros are defined here: + * - Abs, Min and Max to apply to constant expressions (values known at + * compile time); + * - abs, min and max to apply to non-constant expressions (values unknown at + * compile time), abs is found in stdlib.h. + * + * @{ */ + +/** \brief Takes the absolute value of \a a. + * + * \param[in] a Input value. + * + * \return Absolute value of \a a. + * + * \note More optimized if only used with values known at compile time. + */ +# define Abs(a) (((a) < 0) ? -(a) : (a)) + +# ifndef __cplusplus +/** \brief Takes the minimal value of \a a and \a b. + * + * \param[in] a Input value. + * \param[in] b Input value. + * + * \return Minimal value of \a a and \a b. + * + * \note More optimized if only used with values known at compile time. + */ +# define Min(a, b) (((a) < (b)) ? (a) : (b)) + +/** \brief Takes the maximal value of \a a and \a b. + * + * \param[in] a Input value. + * \param[in] b Input value. + * + * \return Maximal value of \a a and \a b. + * + * \note More optimized if only used with values known at compile time. + */ +# define Max(a, b) (((a) > (b)) ? (a) : (b)) + +/** \brief Takes the minimal value of \a a and \a b. + * + * \param[in] a Input value. + * \param[in] b Input value. + * + * \return Minimal value of \a a and \a b. + * + * \note More optimized if only used with values unknown at compile time. + */ +# define min(a, b) Min(a, b) + +/** \brief Takes the maximal value of \a a and \a b. + * + * \param[in] a Input value. + * \param[in] b Input value. + * + * \return Maximal value of \a a and \a b. + * + * \note More optimized if only used with values unknown at compile time. + */ +# define max(a, b) Max(a, b) +# endif + +/** @} */ + +/** \brief Calls the routine at address \a addr. + * + * It generates a long call opcode. + * + * For example, `Long_call(0x80000000)' generates a software reset on a UC3 if + * it is invoked from the CPU supervisor mode. + * + * \param[in] addr Address of the routine to call. + * + * \note It may be used as a long jump opcode in some special cases. + */ +# define Long_call(addr) ((*(void (*)(void))(addr))()) + +/** \name MCU Endianism Handling + * ARM is MCU little endian. + * + * @{ */ +# define BE16(x) swap16(x) +# define LE16(x) (x) + +# define le16_to_cpu(x) (x) +# define cpu_to_le16(x) (x) +# define LE16_TO_CPU(x) (x) +# define CPU_TO_LE16(x) (x) + +# define be16_to_cpu(x) swap16(x) +# define cpu_to_be16(x) swap16(x) +# define BE16_TO_CPU(x) swap16(x) +# define CPU_TO_BE16(x) swap16(x) + +# define le32_to_cpu(x) (x) +# define cpu_to_le32(x) (x) +# define LE32_TO_CPU(x) (x) +# define CPU_TO_LE32(x) (x) + +# define be32_to_cpu(x) swap32(x) +# define cpu_to_be32(x) swap32(x) +# define BE32_TO_CPU(x) swap32(x) +# define CPU_TO_BE32(x) swap32(x) +/** @} */ + +/** \name Endianism Conversion + * + * The same considerations as for clz and ctz apply here but GCC's + * __builtin_bswap_32 and __builtin_bswap_64 do not behave like macros when + * applied to constant expressions, so two sets of macros are defined here: + * - Swap16, Swap32 and Swap64 to apply to constant expressions (values known + * at compile time); + * - swap16, swap32 and swap64 to apply to non-constant expressions (values + * unknown at compile time). + * + * @{ */ + +/** \brief Toggles the endianism of \a u16 (by swapping its bytes). + * + * \param[in] u16 U16 of which to toggle the endianism. + * + * \return Value resulting from \a u16 with toggled endianism. + * + * \note More optimized if only used with values known at compile time. + */ +# define Swap16(u16) ((uint16_t)(((uint16_t)(u16) >> 8) | ((uint16_t)(u16) << 8))) + +/** \brief Toggles the endianism of \a u32 (by swapping its bytes). + * + * \param[in] u32 U32 of which to toggle the endianism. + * + * \return Value resulting from \a u32 with toggled endianism. + * + * \note More optimized if only used with values known at compile time. + */ +# define Swap32(u32) ((uint32_t)(((uint32_t)Swap16((uint32_t)(u32) >> 16)) | ((uint32_t)Swap16((uint32_t)(u32)) << 16))) + +/** \brief Toggles the endianism of \a u64 (by swapping its bytes). + * + * \param[in] u64 U64 of which to toggle the endianism. + * + * \return Value resulting from \a u64 with toggled endianism. + * + * \note More optimized if only used with values known at compile time. + */ +# define Swap64(u64) ((uint64_t)(((uint64_t)Swap32((uint64_t)(u64) >> 32)) | ((uint64_t)Swap32((uint64_t)(u64)) << 32))) + +/** \brief Toggles the endianism of \a u16 (by swapping its bytes). + * + * \param[in] u16 U16 of which to toggle the endianism. + * + * \return Value resulting from \a u16 with toggled endianism. + * + * \note More optimized if only used with values unknown at compile time. + */ +# define swap16(u16) Swap16(u16) + +/** \brief Toggles the endianism of \a u32 (by swapping its bytes). + * + * \param[in] u32 U32 of which to toggle the endianism. + * + * \return Value resulting from \a u32 with toggled endianism. + * + * \note More optimized if only used with values unknown at compile time. + */ +# if (defined __GNUC__) +# define swap32(u32) ((uint32_t)__builtin_bswap32((uint32_t)(u32))) +# else +# define swap32(u32) Swap32(u32) +# endif + +/** \brief Toggles the endianism of \a u64 (by swapping its bytes). + * + * \param[in] u64 U64 of which to toggle the endianism. + * + * \return Value resulting from \a u64 with toggled endianism. + * + * \note More optimized if only used with values unknown at compile time. + */ +# if (defined __GNUC__) +# define swap64(u64) ((uint64_t)__builtin_bswap64((uint64_t)(u64))) +# else +# define swap64(u64) ((uint64_t)(((uint64_t)swap32((uint64_t)(u64) >> 32)) | ((uint64_t)swap32((uint64_t)(u64)) << 32))) +# endif + +/** @} */ + +/** \name Target Abstraction + * + * @{ */ + +# define _GLOBEXT_ extern /**< extern storage-class specifier. */ +# define _CONST_TYPE_ const /**< const type qualifier. */ +# define _MEM_TYPE_SLOW_ /**< Slow memory type. */ +# define _MEM_TYPE_MEDFAST_ /**< Fairly fast memory type. */ +# define _MEM_TYPE_FAST_ /**< Fast memory type. */ + +# define memcmp_ram2ram memcmp /**< Target-specific memcmp of RAM to RAM. */ +# define memcmp_code2ram memcmp /**< Target-specific memcmp of RAM to NVRAM. */ +# define memcpy_ram2ram memcpy /**< Target-specific memcpy from RAM to RAM. */ +# define memcpy_code2ram memcpy /**< Target-specific memcpy from NVRAM to RAM. */ + +/** @} */ + +/** + * \brief Calculate \f$ \left\lceil \frac{a}{b} \right\rceil \f$ using + * integer arithmetic. + * + * \param[in] a An integer + * \param[in] b Another integer + * + * \return (\a a / \a b) rounded up to the nearest integer. + */ +# define div_ceil(a, b) (((a) + (b)-1) / (b)) + +#endif /* #ifndef __ASSEMBLY__ */ +#ifdef __ICCARM__ +/** \name Compiler Keywords + * + * Port of some keywords from GCC to IAR Embedded Workbench. + * + * @{ */ + +# define __asm__ asm +# define __inline__ inline +# define __volatile__ + +/** @} */ + +#endif + +#define FUNC_PTR void * +/** + * \def unused + * \brief Marking \a v as a unused parameter or value. + */ +#define unused(v) \ + do { \ + (void)(v); \ + } while (0) + +/* Define RAMFUNC attribute */ +#if defined(__CC_ARM) /* Keil uVision 4 */ +# define RAMFUNC __attribute__((section(".ramfunc"))) +#elif defined(__ICCARM__) /* IAR Ewarm 5.41+ */ +# define RAMFUNC __ramfunc +#elif defined(__GNUC__) /* GCC CS3 2009q3-68 */ +# define RAMFUNC __attribute__((section(".ramfunc"))) +#endif + +/* Define OPTIMIZE_HIGH attribute */ +#if defined(__CC_ARM) /* Keil uVision 4 */ +# define OPTIMIZE_HIGH _Pragma("O3") +#elif defined(__ICCARM__) /* IAR Ewarm 5.41+ */ +# define OPTIMIZE_HIGH _Pragma("optimize=high") +#elif defined(__GNUC__) /* GCC CS3 2009q3-68 */ +# define OPTIMIZE_HIGH __attribute__((optimize("s"))) +#endif +// kmod #define PASS 0 +// kmod #define FAIL 1 +// kmod #define LOW 0 +// kmod #define HIGH 1 + +typedef int8_t S8; //!< 8-bit signed integer. +typedef uint8_t U8; //!< 8-bit unsigned integer. +typedef int16_t S16; //!< 16-bit signed integer. +typedef uint16_t U16; //!< 16-bit unsigned integer. +typedef int32_t S32; //!< 32-bit signed integer. +typedef uint32_t U32; //!< 32-bit unsigned integer. +typedef int64_t S64; //!< 64-bit signed integer. +typedef uint64_t U64; //!< 64-bit unsigned integer. +typedef float F32; //!< 32-bit floating-point number. +typedef double F64; //!< 64-bit floating-point number. + +#define MSB(u16) (((U8 *)&(u16))[1]) //!< Most significant byte of \a u16. +#define LSB(u16) (((U8 *)&(u16))[0]) //!< Least significant byte of \a u16. + +#define MSH(u32) (((U16 *)&(u32))[1]) //!< Most significant half-word of \a u32. +#define LSH(u32) (((U16 *)&(u32))[0]) //!< Least significant half-word of \a u32. +#define MSB0W(u32) (((U8 *)&(u32))[3]) //!< Most significant byte of 1st rank of \a u32. +#define MSB1W(u32) (((U8 *)&(u32))[2]) //!< Most significant byte of 2nd rank of \a u32. +#define MSB2W(u32) (((U8 *)&(u32))[1]) //!< Most significant byte of 3rd rank of \a u32. +#define MSB3W(u32) (((U8 *)&(u32))[0]) //!< Most significant byte of 4th rank of \a u32. +#define LSB3W(u32) MSB0W(u32) //!< Least significant byte of 4th rank of \a u32. +#define LSB2W(u32) MSB1W(u32) //!< Least significant byte of 3rd rank of \a u32. +#define LSB1W(u32) MSB2W(u32) //!< Least significant byte of 2nd rank of \a u32. +#define LSB0W(u32) MSB3W(u32) //!< Least significant byte of 1st rank of \a u32. + +#define MSW(u64) (((U32 *)&(u64))[1]) //!< Most significant word of \a u64. +#define LSW(u64) (((U32 *)&(u64))[0]) //!< Least significant word of \a u64. +#define MSH0(u64) (((U16 *)&(u64))[3]) //!< Most significant half-word of 1st rank of \a u64. +#define MSH1(u64) (((U16 *)&(u64))[2]) //!< Most significant half-word of 2nd rank of \a u64. +#define MSH2(u64) (((U16 *)&(u64))[1]) //!< Most significant half-word of 3rd rank of \a u64. +#define MSH3(u64) (((U16 *)&(u64))[0]) //!< Most significant half-word of 4th rank of \a u64. +#define LSH3(u64) MSH0(u64) //!< Least significant half-word of 4th rank of \a u64. +#define LSH2(u64) MSH1(u64) //!< Least significant half-word of 3rd rank of \a u64. +#define LSH1(u64) MSH2(u64) //!< Least significant half-word of 2nd rank of \a u64. +#define LSH0(u64) MSH3(u64) //!< Least significant half-word of 1st rank of \a u64. +#define MSB0D(u64) (((U8 *)&(u64))[7]) //!< Most significant byte of 1st rank of \a u64. +#define MSB1D(u64) (((U8 *)&(u64))[6]) //!< Most significant byte of 2nd rank of \a u64. +#define MSB2D(u64) (((U8 *)&(u64))[5]) //!< Most significant byte of 3rd rank of \a u64. +#define MSB3D(u64) (((U8 *)&(u64))[4]) //!< Most significant byte of 4th rank of \a u64. +#define MSB4D(u64) (((U8 *)&(u64))[3]) //!< Most significant byte of 5th rank of \a u64. +#define MSB5D(u64) (((U8 *)&(u64))[2]) //!< Most significant byte of 6th rank of \a u64. +#define MSB6D(u64) (((U8 *)&(u64))[1]) //!< Most significant byte of 7th rank of \a u64. +#define MSB7D(u64) (((U8 *)&(u64))[0]) //!< Most significant byte of 8th rank of \a u64. +#define LSB7D(u64) MSB0D(u64) //!< Least significant byte of 8th rank of \a u64. +#define LSB6D(u64) MSB1D(u64) //!< Least significant byte of 7th rank of \a u64. +#define LSB5D(u64) MSB2D(u64) //!< Least significant byte of 6th rank of \a u64. +#define LSB4D(u64) MSB3D(u64) //!< Least significant byte of 5th rank of \a u64. +#define LSB3D(u64) MSB4D(u64) //!< Least significant byte of 4th rank of \a u64. +#define LSB2D(u64) MSB5D(u64) //!< Least significant byte of 3rd rank of \a u64. +#define LSB1D(u64) MSB6D(u64) //!< Least significant byte of 2nd rank of \a u64. +#define LSB0D(u64) MSB7D(u64) //!< Least significant byte of 1st rank of \a u64. + +#define LSB0(u32) LSB0W(u32) //!< Least significant byte of 1st rank of \a u32. +#define LSB1(u32) LSB1W(u32) //!< Least significant byte of 2nd rank of \a u32. +#define LSB2(u32) LSB2W(u32) //!< Least significant byte of 3rd rank of \a u32. +#define LSB3(u32) LSB3W(u32) //!< Least significant byte of 4th rank of \a u32. +#define MSB3(u32) MSB3W(u32) //!< Most significant byte of 4th rank of \a u32. +#define MSB2(u32) MSB2W(u32) //!< Most significant byte of 3rd rank of \a u32. +#define MSB1(u32) MSB1W(u32) //!< Most significant byte of 2nd rank of \a u32. +#define MSB0(u32) MSB0W(u32) //!< Most significant byte of 1st rank of \a u32. + +#if defined(__ICCARM__) +# define SHORTENUM __packed +#elif defined(__GNUC__) +# define SHORTENUM __attribute__((packed)) +#endif + +/* No operation */ +#if defined(__ICCARM__) +# define nop() __no_operation() +#elif defined(__GNUC__) +# define nop() (__NOP()) +#endif + +#define FLASH_DECLARE(x) const x +#define FLASH_EXTERN(x) extern const x +#define PGM_READ_BYTE(x) *(x) +#define PGM_READ_WORD(x) *(x) +#define MEMCPY_ENDIAN memcpy +#define PGM_READ_BLOCK(dst, src, len) memcpy((dst), (src), (len)) + +/*Defines the Flash Storage for the request and response of MAC*/ +#define CMD_ID_OCTET (0) + +/* Converting of values from CPU endian to little endian. */ +#define CPU_ENDIAN_TO_LE16(x) (x) +#define CPU_ENDIAN_TO_LE32(x) (x) +#define CPU_ENDIAN_TO_LE64(x) (x) + +/* Converting of values from little endian to CPU endian. */ +#define LE16_TO_CPU_ENDIAN(x) (x) +#define LE32_TO_CPU_ENDIAN(x) (x) +#define LE64_TO_CPU_ENDIAN(x) (x) + +/* Converting of constants from little endian to CPU endian. */ +#define CLE16_TO_CPU_ENDIAN(x) (x) +#define CLE32_TO_CPU_ENDIAN(x) (x) +#define CLE64_TO_CPU_ENDIAN(x) (x) + +/* Converting of constants from CPU endian to little endian. */ +#define CCPU_ENDIAN_TO_LE16(x) (x) +#define CCPU_ENDIAN_TO_LE32(x) (x) +#define CCPU_ENDIAN_TO_LE64(x) (x) + +#define ADDR_COPY_DST_SRC_16(dst, src) ((dst) = (src)) +#define ADDR_COPY_DST_SRC_64(dst, src) ((dst) = (src)) + +/** + * @brief Converts a 64-Bit value into a 8 Byte array + * + * @param[in] value 64-Bit value + * @param[out] data Pointer to the 8 Byte array to be updated with 64-Bit value + * @ingroup apiPalApi + */ +static inline void convert_64_bit_to_byte_array(uint64_t value, uint8_t *data) { + uint8_t index = 0; + + while (index < 8) { + data[index++] = value & 0xFF; + value = value >> 8; + } +} + +/** + * @brief Converts a 16-Bit value into a 2 Byte array + * + * @param[in] value 16-Bit value + * @param[out] data Pointer to the 2 Byte array to be updated with 16-Bit value + * @ingroup apiPalApi + */ +static inline void convert_16_bit_to_byte_array(uint16_t value, uint8_t *data) { + data[0] = value & 0xFF; + data[1] = (value >> 8) & 0xFF; +} + +/* Converts a 16-Bit value into a 2 Byte array */ +static inline void convert_spec_16_bit_to_byte_array(uint16_t value, uint8_t *data) { + data[0] = value & 0xFF; + data[1] = (value >> 8) & 0xFF; +} + +/* Converts a 16-Bit value into a 2 Byte array */ +static inline void convert_16_bit_to_byte_address(uint16_t value, uint8_t *data) { + data[0] = value & 0xFF; + data[1] = (value >> 8) & 0xFF; +} + +/* + * @brief Converts a 2 Byte array into a 16-Bit value + * + * @param data Specifies the pointer to the 2 Byte array + * + * @return 16-Bit value + * @ingroup apiPalApi + */ +static inline uint16_t convert_byte_array_to_16_bit(uint8_t *data) { + return (data[0] | ((uint16_t)data[1] << 8)); +} + +/* Converts a 4 Byte array into a 32-Bit value */ +static inline uint32_t convert_byte_array_to_32_bit(uint8_t *data) { + union { + uint32_t u32; + uint8_t u8[4]; + } long_addr; + + uint8_t index; + + for (index = 0; index < 4; index++) { + long_addr.u8[index] = *data++; + } + + return long_addr.u32; +} + +/** + * @brief Converts a 8 Byte array into a 64-Bit value + * + * @param data Specifies the pointer to the 8 Byte array + * + * @return 64-Bit value + * @ingroup apiPalApi + */ +static inline uint64_t convert_byte_array_to_64_bit(uint8_t *data) { + union { + uint64_t u64; + uint8_t u8[8]; + } long_addr; + + uint8_t index; + + for (index = 0; index < 8; index++) { + long_addr.u8[index] = *data++; + } + + return long_addr.u64; +} + +/** @} */ + +#endif /* UTILS_COMPILER_H_INCLUDED */ diff --git a/tmk_core/protocol/arm_atsam/usb/conf_usb.h b/tmk_core/protocol/arm_atsam/usb/conf_usb.h new file mode 100644 index 0000000000..50d189a202 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/conf_usb.h @@ -0,0 +1,164 @@ +/** + * \file + * + * \brief USB configuration file + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _CONF_USB_H_ +#define _CONF_USB_H_ + +#include "compiler.h" +#include "udi_device_conf.h" + +#define UDI_CDC_DEFAULT_RATE 115200 +#define UDI_CDC_DEFAULT_STOPBITS CDC_STOP_BITS_1 +#define UDI_CDC_DEFAULT_PARITY CDC_PAR_NONE +#define UDI_CDC_DEFAULT_DATABITS 8 + +//! Device definition (mandatory) +#define USB_DEVICE_VENDOR_ID VENDOR_ID +#define USB_DEVICE_PRODUCT_ID PRODUCT_ID +#define USB_DEVICE_VERSION DEVICE_VER +#define USB_DEVICE_POWER 500 // Consumption on Vbus line (mA) +#define USB_DEVICE_ATTR (USB_CONFIG_ATTR_REMOTE_WAKEUP | USB_CONFIG_ATTR_BUS_POWERED) +// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_BUS_POWERED) +// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_SELF_POWERED) +// (USB_CONFIG_ATTR_SELF_POWERED) +// (USB_CONFIG_ATTR_BUS_POWERED) + +//! USB Device string definitions (Optional) +#define USB_DEVICE_MANUFACTURE_NAME MANUFACTURER +#define USB_DEVICE_PRODUCT_NAME PRODUCT +#define USB_DEVICE_SERIAL_NAME SERIAL_NUM + +// Comment out USB_DEVICE_SERIAL_USE_BOOTLOADER_SERIAL to prevent ROM lookup of factory programmed serial number +#define USB_DEVICE_SERIAL_USE_BOOTLOADER_SERIAL + +/** + * Device speeds support + * @{ + */ +//! To define a Low speed device +//#define USB_DEVICE_LOW_SPEED + +//! To authorize the High speed +#if (UC3A3 || UC3A4) +//#define USB_DEVICE_HS_SUPPORT +#elif (SAM3XA || SAM3U) +//#define USB_DEVICE_HS_SUPPORT +#endif +//@} + +/** + * USB Device Callbacks definitions (Optional) + * @{ + */ +#define UDC_VBUS_EVENT(b_vbus_high) +#define UDC_SOF_EVENT() main_sof_action() +#define UDC_SUSPEND_EVENT() main_suspend_action() +#define UDC_RESUME_EVENT() main_resume_action() +//! Mandatory when USB_DEVICE_ATTR authorizes remote wakeup feature +#define UDC_REMOTEWAKEUP_ENABLE() main_remotewakeup_enable() +#define UDC_REMOTEWAKEUP_DISABLE() main_remotewakeup_disable() +//! When a extra string descriptor must be supported +//! other than manufacturer, product and serial string +// #define UDC_GET_EXTRA_STRING() +//@} + +//@} + +/** + * USB Interface Configuration + * @{ + */ +/** + * Configuration of HID Keyboard interface + * @{ + */ +//! Interface callback definition +#define UDI_HID_KBD_ENABLE_EXT() main_kbd_enable() +#define UDI_HID_KBD_DISABLE_EXT() main_kbd_disable() +//#define UDI_HID_KBD_CHANGE_LED(value) ui_kbd_led(value) + +#ifdef NKRO_ENABLE +# define UDI_HID_NKRO_ENABLE_EXT() main_nkro_enable() +# define UDI_HID_NKRO_DISABLE_EXT() main_nkro_disable() +//#define UDI_HID_NKRO_CHANGE_LED(value) ui_kbd_led(value) +#endif + +#ifdef EXTRAKEY_ENABLE +# define UDI_HID_EXK_ENABLE_EXT() main_exk_enable() +# define UDI_HID_EXK_DISABLE_EXT() main_exk_disable() +#endif + +#ifdef CONSOLE_ENABLE +# define UDI_HID_CON_ENABLE_EXT() main_con_enable() +# define UDI_HID_CON_DISABLE_EXT() main_con_disable() +#endif + +#ifdef MOUSE_ENABLE +# define UDI_HID_MOU_ENABLE_EXT() main_mou_enable() +# define UDI_HID_MOU_DISABLE_EXT() main_mou_disable() +#endif + +#ifdef RAW_ENABLE +# define UDI_HID_RAW_ENABLE_EXT() main_raw_enable() +# define UDI_HID_RAW_DISABLE_EXT() main_raw_disable() +# define UDI_HID_RAW_RECEIVE(buffer, len) main_raw_receive(buffer, len) +#endif + +//@} +//@} + +/** + * USB Device Driver Configuration + * @{ + */ +//@} + +//! The includes of classes and other headers must be done at the end of this file to avoid compile error +#include "udi_hid_kbd_conf.h" +#include "usb_main.h" +#include "ui.h" + +#endif // _CONF_USB_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/main_usb.c b/tmk_core/protocol/arm_atsam/usb/main_usb.c new file mode 100644 index 0000000000..ee6ed25b85 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/main_usb.c @@ -0,0 +1,120 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "samd51j18a.h" +#include "conf_usb.h" +#include "udd.h" + +#ifdef RAW_ENABLE +# include "raw_hid.h" +#endif + +uint8_t keyboard_protocol = 1; + +void main_suspend_action(void) { + ui_powerdown(); +} + +void main_resume_action(void) { + ui_wakeup(); +} + +void main_sof_action(void) { + ui_process(udd_get_frame_number()); +} + +void main_remotewakeup_enable(void) { + ui_wakeup_enable(); +} + +void main_remotewakeup_disable(void) { + ui_wakeup_disable(); +} + +volatile bool main_b_kbd_enable = false; +bool main_kbd_enable(void) { + main_b_kbd_enable = true; + return true; +} + +void main_kbd_disable(void) { + main_b_kbd_enable = false; +} + +#ifdef NKRO_ENABLE +volatile bool main_b_nkro_enable = false; +bool main_nkro_enable(void) { + main_b_nkro_enable = true; + return true; +} + +void main_nkro_disable(void) { + main_b_nkro_enable = false; +} +#endif + +#ifdef EXTRAKEY_ENABLE +volatile bool main_b_exk_enable = false; +bool main_exk_enable(void) { + main_b_exk_enable = true; + return true; +} + +void main_exk_disable(void) { + main_b_exk_enable = false; +} +#endif + +#ifdef CONSOLE_ENABLE +volatile bool main_b_con_enable = false; +bool main_con_enable(void) { + main_b_con_enable = true; + return true; +} + +void main_con_disable(void) { + main_b_con_enable = false; +} +#endif + +#ifdef MOUSE_ENABLE +volatile bool main_b_mou_enable = false; +bool main_mou_enable(void) { + main_b_mou_enable = true; + return true; +} + +void main_mou_disable(void) { + main_b_mou_enable = false; +} +#endif + +#ifdef RAW_ENABLE +volatile bool main_b_raw_enable = false; +bool main_raw_enable(void) { + main_b_raw_enable = true; + return true; +} + +void main_raw_disable(void) { + main_b_raw_enable = false; +} + +void main_raw_receive(uint8_t *buffer, uint8_t len) { + raw_hid_receive(buffer, len); +} +#endif diff --git a/tmk_core/protocol/arm_atsam/usb/status_codes.h b/tmk_core/protocol/arm_atsam/usb/status_codes.h new file mode 100644 index 0000000000..72819a0d7d --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/status_codes.h @@ -0,0 +1,158 @@ +/** + * \file + * + * \brief Status code definitions. + * + * This file defines various status codes returned by functions, + * indicating success or failure as well as what kind of failure. + * + * Copyright (C) 2012-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef STATUS_CODES_H_INCLUDED +#define STATUS_CODES_H_INCLUDED + +#include + +/** + * \defgroup group_sam0_utils_status_codes Status Codes + * + * \ingroup group_sam0_utils + * + * @{ + */ + +/** Mask to retrieve the error category of a status code. */ +#define STATUS_CATEGORY_MASK 0xF0 + +/** Mask to retrieve the error code within the category of a status code. */ +#define STATUS_ERROR_MASK 0x0F + +/** Status code error categories. */ +enum status_categories { + STATUS_CATEGORY_OK = 0x00, + STATUS_CATEGORY_COMMON = 0x10, + STATUS_CATEGORY_ANALOG = 0x30, + STATUS_CATEGORY_COM = 0x40, + STATUS_CATEGORY_IO = 0x50, +}; + +/** + * Status code that may be returned by shell commands and protocol + * implementations. + * + * \note Any change to these status codes and the corresponding + * message strings is strictly forbidden. New codes can be added, + * however, but make sure that any message string tables are updated + * at the same time. + */ +enum status_code { + STATUS_OK = STATUS_CATEGORY_OK | 0x00, + STATUS_VALID_DATA = STATUS_CATEGORY_OK | 0x01, + STATUS_NO_CHANGE = STATUS_CATEGORY_OK | 0x02, + STATUS_ABORTED = STATUS_CATEGORY_OK | 0x04, + STATUS_BUSY = STATUS_CATEGORY_OK | 0x05, + STATUS_SUSPEND = STATUS_CATEGORY_OK | 0x06, + + STATUS_ERR_IO = STATUS_CATEGORY_COMMON | 0x00, + STATUS_ERR_REQ_FLUSHED = STATUS_CATEGORY_COMMON | 0x01, + STATUS_ERR_TIMEOUT = STATUS_CATEGORY_COMMON | 0x02, + STATUS_ERR_BAD_DATA = STATUS_CATEGORY_COMMON | 0x03, + STATUS_ERR_NOT_FOUND = STATUS_CATEGORY_COMMON | 0x04, + STATUS_ERR_UNSUPPORTED_DEV = STATUS_CATEGORY_COMMON | 0x05, + STATUS_ERR_NO_MEMORY = STATUS_CATEGORY_COMMON | 0x06, + STATUS_ERR_INVALID_ARG = STATUS_CATEGORY_COMMON | 0x07, + STATUS_ERR_BAD_ADDRESS = STATUS_CATEGORY_COMMON | 0x08, + STATUS_ERR_BAD_FORMAT = STATUS_CATEGORY_COMMON | 0x0A, + STATUS_ERR_BAD_FRQ = STATUS_CATEGORY_COMMON | 0x0B, + STATUS_ERR_DENIED = STATUS_CATEGORY_COMMON | 0x0c, + STATUS_ERR_ALREADY_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0d, + STATUS_ERR_OVERFLOW = STATUS_CATEGORY_COMMON | 0x0e, + STATUS_ERR_NOT_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0f, + + STATUS_ERR_SAMPLERATE_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x00, + STATUS_ERR_RESOLUTION_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x01, + + STATUS_ERR_BAUDRATE_UNAVAILABLE = STATUS_CATEGORY_COM | 0x00, + STATUS_ERR_PACKET_COLLISION = STATUS_CATEGORY_COM | 0x01, + STATUS_ERR_PROTOCOL = STATUS_CATEGORY_COM | 0x02, + + STATUS_ERR_PIN_MUX_INVALID = STATUS_CATEGORY_IO | 0x00, +}; +typedef enum status_code status_code_genare_t; + +/** + Status codes used by MAC stack. + */ +enum status_code_wireless { + // STATUS_OK = 0, //!< Success + ERR_IO_ERROR = -1, //!< I/O error + ERR_FLUSHED = -2, //!< Request flushed from queue + ERR_TIMEOUT = -3, //!< Operation timed out + ERR_BAD_DATA = -4, //!< Data integrity check failed + ERR_PROTOCOL = -5, //!< Protocol error + ERR_UNSUPPORTED_DEV = -6, //!< Unsupported device + ERR_NO_MEMORY = -7, //!< Insufficient memory + ERR_INVALID_ARG = -8, //!< Invalid argument + ERR_BAD_ADDRESS = -9, //!< Bad address + ERR_BUSY = -10, //!< Resource is busy + ERR_BAD_FORMAT = -11, //!< Data format not recognized + ERR_NO_TIMER = -12, //!< No timer available + ERR_TIMER_ALREADY_RUNNING = -13, //!< Timer already running + ERR_TIMER_NOT_RUNNING = -14, //!< Timer not running + + /** + * \brief Operation in progress + * + * This status code is for driver-internal use when an operation + * is currently being performed. + * + * \note Drivers should never return this status code to any + * callers. It is strictly for internal use. + */ + OPERATION_IN_PROGRESS = -128, +}; + +typedef enum status_code_wireless status_code_t; + +/** @} */ + +#endif /* STATUS_CODES_H_INCLUDED */ diff --git a/tmk_core/protocol/arm_atsam/usb/udc.c b/tmk_core/protocol/arm_atsam/usb/udc.c new file mode 100644 index 0000000000..2a371c200a --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udc.c @@ -0,0 +1,1072 @@ +/** + * \file + * + * \brief USB Device Controller (UDC) + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udd.h" +#include "udc_desc.h" +#include "udi_device_conf.h" +#include "udi.h" +#include "udc.h" + +#define BOOTLOADER_SERIAL_MAX_SIZE 20 // DO NOT MODIFY! + +/** + * \ingroup udc_group + * \defgroup udc_group_interne Implementation of UDC + * + * Internal implementation + * @{ + */ + +//! \name Internal variables to manage the USB device +//! @{ + +//! Device status state (see enum usb_device_status in usb_protocol.h) +static le16_t udc_device_status; + +COMPILER_WORD_ALIGNED +//! Device interface setting value +static uint8_t udc_iface_setting = 0; + +//! Device Configuration number selected by the USB host +COMPILER_WORD_ALIGNED +static uint8_t udc_num_configuration = 0; + +//! Pointer on the selected speed device configuration +static udc_config_speed_t UDC_DESC_STORAGE *udc_ptr_conf; + +//! Pointer on interface descriptor used by SETUP request. +static usb_iface_desc_t UDC_DESC_STORAGE *udc_ptr_iface; + +//! @} + +//! \name Internal structure to store the USB device main strings +//! @{ + +/** + * \brief Language ID of USB device (US ID by default) + */ +COMPILER_WORD_ALIGNED +static UDC_DESC_STORAGE usb_str_lgid_desc_t udc_string_desc_languageid = {.desc.bLength = sizeof(usb_str_lgid_desc_t), .desc.bDescriptorType = USB_DT_STRING, .string = {LE16(USB_LANGID_EN_US)}}; + +/** + * \brief USB device manufacture name storage + * String is allocated only if USB_DEVICE_MANUFACTURE_NAME is declared + * by usb application configuration + */ +#ifdef USB_DEVICE_MANUFACTURE_NAME +static uint8_t udc_string_manufacturer_name[] = USB_DEVICE_MANUFACTURE_NAME; +# define USB_DEVICE_MANUFACTURE_NAME_SIZE (sizeof(udc_string_manufacturer_name) - 1) +#else +# define USB_DEVICE_MANUFACTURE_NAME_SIZE 0 +#endif + +/** + * \brief USB device product name storage + * String is allocated only if USB_DEVICE_PRODUCT_NAME is declared + * by usb application configuration + */ +#ifdef USB_DEVICE_PRODUCT_NAME +static uint8_t udc_string_product_name[] = USB_DEVICE_PRODUCT_NAME; +# define USB_DEVICE_PRODUCT_NAME_SIZE (sizeof(udc_string_product_name) - 1) +#else +# define USB_DEVICE_PRODUCT_NAME_SIZE 0 +#endif + +#if defined USB_DEVICE_SERIAL_NAME +# define USB_DEVICE_SERIAL_NAME_SIZE (sizeof(USB_DEVICE_SERIAL_NAME) - 1) +#else +# define USB_DEVICE_SERIAL_NAME_SIZE 0 +#endif + +extern uint32_t _srom; + +uint8_t usb_device_serial_name_size = 0; +#if defined USB_DEVICE_SERIAL_USE_BOOTLOADER_SERIAL +uint8_t bootloader_serial_number[BOOTLOADER_SERIAL_MAX_SIZE + 1] = ""; +#endif +static const uint8_t *udc_get_string_serial_name(void) { +#if defined USB_DEVICE_SERIAL_USE_BOOTLOADER_SERIAL + uint32_t serial_ptrloc = (uint32_t)&_srom - 4; + uint32_t serial_address = *(uint32_t *)serial_ptrloc; // Address of bootloader's serial number if available + + if (serial_address != 0xFFFFFFFF && serial_address < serial_ptrloc) // Check for factory programmed serial address + { + if ((serial_address & 0xFF) % 4 == 0) // Check alignment + { + uint16_t *serial_use = (uint16_t *)(serial_address); // Point to address of string in rom + uint8_t serial_length = 0; + + while ((*(serial_use + serial_length) > 32 && *(serial_use + serial_length) < 127) && serial_length < BOOTLOADER_SERIAL_MAX_SIZE) { + bootloader_serial_number[serial_length] = *(serial_use + serial_length) & 0xFF; + serial_length++; + } + bootloader_serial_number[serial_length] = 0; + + usb_device_serial_name_size = serial_length; + + return bootloader_serial_number; // Use serial programmed into bootloader rom + } + } +#endif + + usb_device_serial_name_size = USB_DEVICE_SERIAL_NAME_SIZE; + +#if defined USB_DEVICE_SERIAL_NAME + return (const uint8_t *)USB_DEVICE_SERIAL_NAME; // Use serial supplied by keyboard's config.h +#else + return 0; // No serial supplied +#endif +} + +/** + * \brief USB device string descriptor + * Structure used to transfer ASCII strings to USB String descriptor structure. + */ +#ifndef BOOTLOADER_SERIAL_MAX_SIZE +# define BOOTLOADER_SERIAL_MAX_SIZE 0 +#endif // BOOTLOADER_SERIAL_MAX_SIZE +struct udc_string_desc_t { + usb_str_desc_t header; + le16_t string[Max(Max(Max(USB_DEVICE_MANUFACTURE_NAME_SIZE, USB_DEVICE_PRODUCT_NAME_SIZE), USB_DEVICE_SERIAL_NAME_SIZE), BOOTLOADER_SERIAL_MAX_SIZE)]; +}; +COMPILER_WORD_ALIGNED +static UDC_DESC_STORAGE struct udc_string_desc_t udc_string_desc = {.header.bDescriptorType = USB_DT_STRING}; +//! @} + +usb_iface_desc_t UDC_DESC_STORAGE *udc_get_interface_desc(void) { + return udc_ptr_iface; +} + +/** + * \brief Returns a value to check the end of USB Configuration descriptor + * + * \return address after the last byte of USB Configuration descriptor + */ +static usb_conf_desc_t UDC_DESC_STORAGE *udc_get_eof_conf(void) { + return (UDC_DESC_STORAGE usb_conf_desc_t *)((uint8_t *)udc_ptr_conf->desc + le16_to_cpu(udc_ptr_conf->desc->wTotalLength)); +} + +#if (0 != USB_DEVICE_MAX_EP) +/** + * \brief Search specific descriptor in global interface descriptor + * + * \param desc Address of interface descriptor + * or previous specific descriptor found + * \param desc_id Descriptor ID to search + * + * \return address of specific descriptor found + * \return NULL if it is the end of global interface descriptor + */ +static usb_conf_desc_t UDC_DESC_STORAGE *udc_next_desc_in_iface(usb_conf_desc_t UDC_DESC_STORAGE *desc, uint8_t desc_id) { + usb_conf_desc_t UDC_DESC_STORAGE *ptr_eof_desc; + + ptr_eof_desc = udc_get_eof_conf(); + // Go to next descriptor + desc = (UDC_DESC_STORAGE usb_conf_desc_t *)((uint8_t *)desc + desc->bLength); + // Check the end of configuration descriptor + while (ptr_eof_desc > desc) { + // If new interface descriptor is found, + // then it is the end of the current global interface descriptor + if (USB_DT_INTERFACE == desc->bDescriptorType) { + break; // End of global interface descriptor + } + if (desc_id == desc->bDescriptorType) { + return desc; // Specific descriptor found + } + // Go to next descriptor + desc = (UDC_DESC_STORAGE usb_conf_desc_t *)((uint8_t *)desc + desc->bLength); + } + return NULL; // No specific descriptor found +} +#endif + +/** + * \brief Search an interface descriptor + * This routine updates the internal pointer udc_ptr_iface. + * + * \param iface_num Interface number to find in Configuration Descriptor + * \param setting_num Setting number of interface to find + * + * \return 1 if found or 0 if not found + */ +static bool udc_update_iface_desc(uint8_t iface_num, uint8_t setting_num) { + usb_conf_desc_t UDC_DESC_STORAGE *ptr_end_desc; + + if (0 == udc_num_configuration) { + return false; + } + + if (iface_num >= udc_ptr_conf->desc->bNumInterfaces) { + return false; + } + + // Start at the beginning of configuration descriptor + udc_ptr_iface = (UDC_DESC_STORAGE usb_iface_desc_t *)udc_ptr_conf->desc; + + // Check the end of configuration descriptor + ptr_end_desc = udc_get_eof_conf(); + while (ptr_end_desc > (UDC_DESC_STORAGE usb_conf_desc_t *)udc_ptr_iface) { + if (USB_DT_INTERFACE == udc_ptr_iface->bDescriptorType) { + // A interface descriptor is found + // Check interface and alternate setting number + if ((iface_num == udc_ptr_iface->bInterfaceNumber) && (setting_num == udc_ptr_iface->bAlternateSetting)) { + return true; // Interface found + } + } + // Go to next descriptor + udc_ptr_iface = (UDC_DESC_STORAGE usb_iface_desc_t *)((uint8_t *)udc_ptr_iface + udc_ptr_iface->bLength); + } + return false; // Interface not found +} + +/** + * \brief Disables an usb device interface (UDI) + * This routine call the UDI corresponding to interface number + * + * \param iface_num Interface number to disable + * + * \return 1 if it is done or 0 if interface is not found + */ +static bool udc_iface_disable(uint8_t iface_num) { + udi_api_t UDC_DESC_STORAGE *udi_api; + + // Select first alternate setting of the interface + // to update udc_ptr_iface before call iface->getsetting() + if (!udc_update_iface_desc(iface_num, 0)) { + return false; + } + + // Select the interface with the current alternate setting + udi_api = udc_ptr_conf->udi_apis[iface_num]; + +#if (0 != USB_DEVICE_MAX_EP) + if (!udc_update_iface_desc(iface_num, udi_api->getsetting())) { + return false; + } + + // Start at the beginning of interface descriptor + { + usb_ep_desc_t UDC_DESC_STORAGE *ep_desc; + ep_desc = (UDC_DESC_STORAGE usb_ep_desc_t *)udc_ptr_iface; + while (1) { + // Search Endpoint descriptor included in global interface descriptor + ep_desc = (UDC_DESC_STORAGE usb_ep_desc_t *)udc_next_desc_in_iface((UDC_DESC_STORAGE usb_conf_desc_t *)ep_desc, USB_DT_ENDPOINT); + if (NULL == ep_desc) { + break; + } + // Free the endpoint used by the interface + udd_ep_free(ep_desc->bEndpointAddress); + } + } +#endif + + // Disable interface + udi_api->disable(); + return true; +} + +/** + * \brief Enables an usb device interface (UDI) + * This routine calls the UDI corresponding + * to the interface and setting number. + * + * \param iface_num Interface number to enable + * \param setting_num Setting number to enable + * + * \return 1 if it is done or 0 if interface is not found + */ +static bool udc_iface_enable(uint8_t iface_num, uint8_t setting_num) { + // Select the interface descriptor + if (!udc_update_iface_desc(iface_num, setting_num)) { + return false; + } + +#if (0 != USB_DEVICE_MAX_EP) + usb_ep_desc_t UDC_DESC_STORAGE *ep_desc; + + // Start at the beginning of the global interface descriptor + ep_desc = (UDC_DESC_STORAGE usb_ep_desc_t *)udc_ptr_iface; + while (1) { + // Search Endpoint descriptor included in the global interface descriptor + ep_desc = (UDC_DESC_STORAGE usb_ep_desc_t *)udc_next_desc_in_iface((UDC_DESC_STORAGE usb_conf_desc_t *)ep_desc, USB_DT_ENDPOINT); + if (NULL == ep_desc) break; + // Alloc the endpoint used by the interface + if (!udd_ep_alloc(ep_desc->bEndpointAddress, ep_desc->bmAttributes, le16_to_cpu(ep_desc->wMaxPacketSize))) { + return false; + } + } +#endif + // Enable the interface + return udc_ptr_conf->udi_apis[iface_num]->enable(); +} + +/*! \brief Start the USB Device stack + */ +void udc_start(void) { + udd_enable(); +} + +/*! \brief Stop the USB Device stack + */ +void udc_stop(void) { + udd_disable(); + udc_reset(); +} + +/** + * \brief Reset the current configuration of the USB device, + * This routines can be called by UDD when a RESET on the USB line occurs. + */ +void udc_reset(void) { + uint8_t iface_num; + + if (udc_num_configuration) { + for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { + udc_iface_disable(iface_num); + } + } + udc_num_configuration = 0; +#if (USB_CONFIG_ATTR_REMOTE_WAKEUP == (USB_DEVICE_ATTR & USB_CONFIG_ATTR_REMOTE_WAKEUP)) + if (CPU_TO_LE16(USB_DEV_STATUS_REMOTEWAKEUP) & udc_device_status) { + // Remote wakeup is enabled then disable it + UDC_REMOTEWAKEUP_DISABLE(); + } +#endif + udc_device_status = +#if (USB_DEVICE_ATTR & USB_CONFIG_ATTR_SELF_POWERED) + CPU_TO_LE16(USB_DEV_STATUS_SELF_POWERED); +#else + CPU_TO_LE16(USB_DEV_STATUS_BUS_POWERED); +#endif +} + +void udc_sof_notify(void) { + uint8_t iface_num; + + if (udc_num_configuration) { + for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { + if (udc_ptr_conf->udi_apis[iface_num]->sof_notify != NULL) { + udc_ptr_conf->udi_apis[iface_num]->sof_notify(); + } + } + } +} + +/** + * \brief Standard device request to get device status + * + * \return true if success + */ +static bool udc_req_std_dev_get_status(void) { + if (udd_g_ctrlreq.req.wLength != sizeof(udc_device_status)) { + return false; + } + + udd_set_setup_payload((uint8_t *)&udc_device_status, sizeof(udc_device_status)); + return true; +} + +#if (0 != USB_DEVICE_MAX_EP) +/** + * \brief Standard endpoint request to get endpoint status + * + * \return true if success + */ +static bool udc_req_std_ep_get_status(void) { + static le16_t udc_ep_status; + + if (udd_g_ctrlreq.req.wLength != sizeof(udc_ep_status)) { + return false; + } + + udc_ep_status = udd_ep_is_halted(udd_g_ctrlreq.req.wIndex & 0xFF) ? CPU_TO_LE16(USB_EP_STATUS_HALTED) : 0; + + udd_set_setup_payload((uint8_t *)&udc_ep_status, sizeof(udc_ep_status)); + return true; +} +#endif + +/** + * \brief Standard device request to change device status + * + * \return true if success + */ +static bool udc_req_std_dev_clear_feature(void) { + if (udd_g_ctrlreq.req.wLength) { + return false; + } + + if (udd_g_ctrlreq.req.wValue == USB_DEV_FEATURE_REMOTE_WAKEUP) { + udc_device_status &= CPU_TO_LE16(~(uint32_t)USB_DEV_STATUS_REMOTEWAKEUP); +#if (USB_CONFIG_ATTR_REMOTE_WAKEUP == (USB_DEVICE_ATTR & USB_CONFIG_ATTR_REMOTE_WAKEUP)) + UDC_REMOTEWAKEUP_DISABLE(); +#endif + return true; + } + return false; +} + +#if (0 != USB_DEVICE_MAX_EP) +/** + * \brief Standard endpoint request to clear endpoint feature + * + * \return true if success + */ +static bool udc_req_std_ep_clear_feature(void) { + if (udd_g_ctrlreq.req.wLength) { + return false; + } + + if (udd_g_ctrlreq.req.wValue == USB_EP_FEATURE_HALT) { + return udd_ep_clear_halt(udd_g_ctrlreq.req.wIndex & 0xFF); + } + return false; +} +#endif + +/** + * \brief Standard device request to set a feature + * + * \return true if success + */ +static bool udc_req_std_dev_set_feature(void) { + if (udd_g_ctrlreq.req.wLength) { + return false; + } + + switch (udd_g_ctrlreq.req.wValue) { + case USB_DEV_FEATURE_REMOTE_WAKEUP: +#if (USB_CONFIG_ATTR_REMOTE_WAKEUP == (USB_DEVICE_ATTR & USB_CONFIG_ATTR_REMOTE_WAKEUP)) + udc_device_status |= CPU_TO_LE16(USB_DEV_STATUS_REMOTEWAKEUP); + UDC_REMOTEWAKEUP_ENABLE(); + return true; +#else + return false; +#endif + +#ifdef USB_DEVICE_HS_SUPPORT + case USB_DEV_FEATURE_TEST_MODE: + if (!udd_is_high_speed()) { + break; + } + if (udd_g_ctrlreq.req.wIndex & 0xff) { + break; + } + // Unconfigure the device, terminating all ongoing requests + udc_reset(); + switch ((udd_g_ctrlreq.req.wIndex >> 8) & 0xFF) { + case USB_DEV_TEST_MODE_J: + udd_g_ctrlreq.callback = udd_test_mode_j; + return true; + + case USB_DEV_TEST_MODE_K: + udd_g_ctrlreq.callback = udd_test_mode_k; + return true; + + case USB_DEV_TEST_MODE_SE0_NAK: + udd_g_ctrlreq.callback = udd_test_mode_se0_nak; + return true; + + case USB_DEV_TEST_MODE_PACKET: + udd_g_ctrlreq.callback = udd_test_mode_packet; + return true; + + case USB_DEV_TEST_MODE_FORCE_ENABLE: // Only for downstream facing hub ports + default: + break; + } + break; +#endif + default: + break; + } + return false; +} + +/** + * \brief Standard endpoint request to halt an endpoint + * + * \return true if success + */ +#if (0 != USB_DEVICE_MAX_EP) +static bool udc_req_std_ep_set_feature(void) { + if (udd_g_ctrlreq.req.wLength) { + return false; + } + if (udd_g_ctrlreq.req.wValue == USB_EP_FEATURE_HALT) { + udd_ep_abort(udd_g_ctrlreq.req.wIndex & 0xFF); + return udd_ep_set_halt(udd_g_ctrlreq.req.wIndex & 0xFF); + } + return false; +} +#endif + +/** + * \brief Change the address of device + * Callback called at the end of request set address + */ +static void udc_valid_address(void) { + udd_set_address(udd_g_ctrlreq.req.wValue & 0x7F); +} + +/** + * \brief Standard device request to set device address + * + * \return true if success + */ +static bool udc_req_std_dev_set_address(void) { + if (udd_g_ctrlreq.req.wLength) { + return false; + } + + // The address must be changed at the end of setup request after the handshake + // then we use a callback to change address + udd_g_ctrlreq.callback = udc_valid_address; + return true; +} + +/** + * \brief Standard device request to get device string descriptor + * + * \return true if success + */ +static bool udc_req_std_dev_get_str_desc(void) { + uint8_t i; + const uint8_t *str; + uint8_t str_length = 0; + + // Link payload pointer to the string corresponding at request + switch (udd_g_ctrlreq.req.wValue & 0xff) { + case 0: + udd_set_setup_payload((uint8_t *)&udc_string_desc_languageid, sizeof(udc_string_desc_languageid)); + break; + +#ifdef USB_DEVICE_MANUFACTURE_NAME + case 1: + str_length = USB_DEVICE_MANUFACTURE_NAME_SIZE; + str = udc_string_manufacturer_name; + break; +#endif +#ifdef USB_DEVICE_PRODUCT_NAME + case 2: + str_length = USB_DEVICE_PRODUCT_NAME_SIZE; + str = udc_string_product_name; + break; +#endif + case 3: + str = udc_get_string_serial_name(); + str_length = usb_device_serial_name_size; + break; + default: +#ifdef UDC_GET_EXTRA_STRING + if (UDC_GET_EXTRA_STRING()) { + break; + } +#endif + return false; + } + + if (str_length) { + for (i = 0; i < str_length; i++) { + udc_string_desc.string[i] = cpu_to_le16((le16_t)str[i]); + } + + udc_string_desc.header.bLength = 2 + (str_length)*2; + udd_set_setup_payload((uint8_t *)&udc_string_desc, udc_string_desc.header.bLength); + } + + return true; +} + +/** + * \brief Standard device request to get descriptors about USB device + * + * \return true if success + */ +static bool udc_req_std_dev_get_descriptor(void) { + uint8_t conf_num; + + conf_num = udd_g_ctrlreq.req.wValue & 0xff; + + // Check descriptor ID + switch ((uint8_t)(udd_g_ctrlreq.req.wValue >> 8)) { + case USB_DT_DEVICE: + // Device descriptor requested +#ifdef USB_DEVICE_HS_SUPPORT + if (!udd_is_high_speed()) { + udd_set_setup_payload((uint8_t *)udc_config.confdev_hs, udc_config.confdev_hs->bLength); + } else +#endif + { + udd_set_setup_payload((uint8_t *)udc_config.confdev_lsfs, udc_config.confdev_lsfs->bLength); + } + break; + + case USB_DT_CONFIGURATION: + // Configuration descriptor requested +#ifdef USB_DEVICE_HS_SUPPORT + if (udd_is_high_speed()) { + // HS descriptor + if (conf_num >= udc_config.confdev_hs->bNumConfigurations) { + return false; + } + udd_set_setup_payload((uint8_t *)udc_config.conf_hs[conf_num].desc, le16_to_cpu(udc_config.conf_hs[conf_num].desc->wTotalLength)); + } else +#endif + { + // FS descriptor + if (conf_num >= udc_config.confdev_lsfs->bNumConfigurations) { + return false; + } + udd_set_setup_payload((uint8_t *)udc_config.conf_lsfs[conf_num].desc, le16_to_cpu(udc_config.conf_lsfs[conf_num].desc->wTotalLength)); + } + ((usb_conf_desc_t *)udd_g_ctrlreq.payload)->bDescriptorType = USB_DT_CONFIGURATION; + break; + +#ifdef USB_DEVICE_HS_SUPPORT + case USB_DT_DEVICE_QUALIFIER: + // Device qualifier descriptor requested + udd_set_setup_payload((uint8_t *)udc_config.qualifier, udc_config.qualifier->bLength); + break; + + case USB_DT_OTHER_SPEED_CONFIGURATION: + // Other configuration descriptor requested + if (!udd_is_high_speed()) { + // HS descriptor + if (conf_num >= udc_config.confdev_hs->bNumConfigurations) { + return false; + } + udd_set_setup_payload((uint8_t *)udc_config.conf_hs[conf_num].desc, le16_to_cpu(udc_config.conf_hs[conf_num].desc->wTotalLength)); + } else { + // FS descriptor + if (conf_num >= udc_config.confdev_lsfs->bNumConfigurations) { + return false; + } + udd_set_setup_payload((uint8_t *)udc_config.conf_lsfs[conf_num].desc, le16_to_cpu(udc_config.conf_lsfs[conf_num].desc->wTotalLength)); + } + ((usb_conf_desc_t *)udd_g_ctrlreq.payload)->bDescriptorType = USB_DT_OTHER_SPEED_CONFIGURATION; + break; +#endif + + case USB_DT_BOS: + // Device BOS descriptor requested + if (udc_config.conf_bos == NULL) { + return false; + } + udd_set_setup_payload((uint8_t *)udc_config.conf_bos, udc_config.conf_bos->wTotalLength); + break; + + case USB_DT_STRING: + // String descriptor requested + if (!udc_req_std_dev_get_str_desc()) { + return false; + } + break; + + default: + // Unknown descriptor requested + return false; + } + // if the descriptor is larger than length requested, then reduce it + if (udd_g_ctrlreq.req.wLength < udd_g_ctrlreq.payload_size) { + udd_g_ctrlreq.payload_size = udd_g_ctrlreq.req.wLength; + } + return true; +} + +/** + * \brief Standard device request to get configuration number + * + * \return true if success + */ +static bool udc_req_std_dev_get_configuration(void) { + if (udd_g_ctrlreq.req.wLength != 1) { + return false; + } + + udd_set_setup_payload(&udc_num_configuration, 1); + return true; +} + +/** + * \brief Standard device request to enable a configuration + * + * \return true if success + */ +static bool udc_req_std_dev_set_configuration(void) { + uint8_t iface_num; + + // Check request length + if (udd_g_ctrlreq.req.wLength) { + return false; + } + // Authorize configuration only if the address is valid + if (!udd_getaddress()) { + return false; + } + // Check the configuration number requested +#ifdef USB_DEVICE_HS_SUPPORT + if (udd_is_high_speed()) { + // HS descriptor + if ((udd_g_ctrlreq.req.wValue & 0xFF) > udc_config.confdev_hs->bNumConfigurations) { + return false; + } + } else +#endif + { + // FS descriptor + if ((udd_g_ctrlreq.req.wValue & 0xFF) > udc_config.confdev_lsfs->bNumConfigurations) { + return false; + } + } + + // Reset current configuration + udc_reset(); + + // Enable new configuration + udc_num_configuration = udd_g_ctrlreq.req.wValue & 0xFF; + if (udc_num_configuration == 0) { + return true; // Default empty configuration requested + } + // Update pointer of the configuration descriptor +#ifdef USB_DEVICE_HS_SUPPORT + if (udd_is_high_speed()) { + // HS descriptor + udc_ptr_conf = &udc_config.conf_hs[udc_num_configuration - 1]; + } else +#endif + { + // FS descriptor + udc_ptr_conf = &udc_config.conf_lsfs[udc_num_configuration - 1]; + } + // Enable all interfaces of the selected configuration + for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { + if (!udc_iface_enable(iface_num, 0)) { + return false; + } + } + return true; +} + +/** + * \brief Standard interface request + * to get the alternate setting number of an interface + * + * \return true if success + */ +static bool udc_req_std_iface_get_setting(void) { + uint8_t iface_num; + udi_api_t UDC_DESC_STORAGE *udi_api; + + if (udd_g_ctrlreq.req.wLength != 1) { + return false; // Error in request + } + if (!udc_num_configuration) { + return false; // The device is not is configured state yet + } + + // Check the interface number included in the request + iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; + if (iface_num >= udc_ptr_conf->desc->bNumInterfaces) { + return false; + } + + // Select first alternate setting of the interface to update udc_ptr_iface + // before call iface->getsetting() + if (!udc_update_iface_desc(iface_num, 0)) { + return false; + } + // Get alternate setting from UDI + udi_api = udc_ptr_conf->udi_apis[iface_num]; + udc_iface_setting = udi_api->getsetting(); + + // Link value to payload pointer of request + udd_set_setup_payload(&udc_iface_setting, 1); + return true; +} + +/** + * \brief Standard interface request + * to set an alternate setting of an interface + * + * \return true if success + */ +static bool udc_req_std_iface_set_setting(void) { + uint8_t iface_num, setting_num; + + if (udd_g_ctrlreq.req.wLength) { + return false; // Error in request + } + if (!udc_num_configuration) { + return false; // The device is not is configured state yet + } + + iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; + setting_num = udd_g_ctrlreq.req.wValue & 0xFF; + + // Disable current setting + if (!udc_iface_disable(iface_num)) { + return false; + } + + // Enable new setting + return udc_iface_enable(iface_num, setting_num); +} + +/** + * \brief Main routine to manage the standard USB SETUP request + * + * \return true if the request is supported + */ +static bool udc_reqstd(void) { + if (Udd_setup_is_in()) { + // GET Standard Requests + if (udd_g_ctrlreq.req.wLength == 0) { + return false; // Error for USB host + } + + if (USB_REQ_RECIP_DEVICE == Udd_setup_recipient()) { + // Standard Get Device request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_GET_STATUS: + return udc_req_std_dev_get_status(); + case USB_REQ_GET_DESCRIPTOR: + return udc_req_std_dev_get_descriptor(); + case USB_REQ_GET_CONFIGURATION: + return udc_req_std_dev_get_configuration(); + default: + break; + } + } + + if (USB_REQ_RECIP_INTERFACE == Udd_setup_recipient()) { + // Standard Get Interface request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_GET_INTERFACE: + return udc_req_std_iface_get_setting(); + default: + break; + } + } +#if (0 != USB_DEVICE_MAX_EP) + if (USB_REQ_RECIP_ENDPOINT == Udd_setup_recipient()) { + // Standard Get Endpoint request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_GET_STATUS: + return udc_req_std_ep_get_status(); + default: + break; + } + } +#endif + } else { + // SET Standard Requests + if (USB_REQ_RECIP_DEVICE == Udd_setup_recipient()) { + // Standard Set Device request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_SET_ADDRESS: + return udc_req_std_dev_set_address(); + case USB_REQ_CLEAR_FEATURE: + return udc_req_std_dev_clear_feature(); + case USB_REQ_SET_FEATURE: + return udc_req_std_dev_set_feature(); + case USB_REQ_SET_CONFIGURATION: + return udc_req_std_dev_set_configuration(); + case USB_REQ_SET_DESCRIPTOR: + /* Not supported (defined as optional by the USB 2.0 spec) */ + break; + default: + break; + } + } + + if (USB_REQ_RECIP_INTERFACE == Udd_setup_recipient()) { + // Standard Set Interface request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_SET_INTERFACE: + return udc_req_std_iface_set_setting(); + default: + break; + } + } +#if (0 != USB_DEVICE_MAX_EP) + if (USB_REQ_RECIP_ENDPOINT == Udd_setup_recipient()) { + // Standard Set Endpoint request + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_CLEAR_FEATURE: + return udc_req_std_ep_clear_feature(); + case USB_REQ_SET_FEATURE: + return udc_req_std_ep_set_feature(); + default: + break; + } + } +#endif + } + return false; +} + +/** + * \brief Send the SETUP interface request to UDI + * + * \return true if the request is supported + */ +static bool udc_req_iface(void) { + uint8_t iface_num; + udi_api_t UDC_DESC_STORAGE *udi_api; + + if (0 == udc_num_configuration) { + return false; // The device is not is configured state yet + } + // Check interface number + iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; + if (iface_num >= udc_ptr_conf->desc->bNumInterfaces) { + return false; + } + + //* To update udc_ptr_iface with the selected interface in request + // Select first alternate setting of interface to update udc_ptr_iface + // before calling udi_api->getsetting() + if (!udc_update_iface_desc(iface_num, 0)) { + return false; + } + // Select the interface with the current alternate setting + udi_api = udc_ptr_conf->udi_apis[iface_num]; + if (!udc_update_iface_desc(iface_num, udi_api->getsetting())) { + return false; + } + + // Send the SETUP request to the UDI corresponding to the interface number + return udi_api->setup(); +} + +/** + * \brief Send the SETUP interface request to UDI + * + * \return true if the request is supported + */ +static bool udc_req_ep(void) { + uint8_t iface_num; + udi_api_t UDC_DESC_STORAGE *udi_api; + + if (0 == udc_num_configuration) { + return false; // The device is not is configured state yet + } + // Send this request on all enabled interfaces + iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; + for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { + // Select the interface with the current alternate setting + udi_api = udc_ptr_conf->udi_apis[iface_num]; + if (!udc_update_iface_desc(iface_num, udi_api->getsetting())) { + return false; + } + + // Send the SETUP request to the UDI + if (udi_api->setup()) { + return true; + } + } + return false; +} + +/** + * \brief Main routine to manage the USB SETUP request. + * + * This function parses a USB SETUP request and submits an appropriate + * response back to the host or, in the case of SETUP OUT requests + * with data, sets up a buffer for receiving the data payload. + * + * The main standard requests defined by the USB 2.0 standard are handled + * internally. The interface requests are sent to UDI, and the specific request + * sent to a specific application callback. + * + * \return true if the request is supported, else the request is stalled by UDD + */ +bool udc_process_setup(void) { + // By default no data (receive/send) and no callbacks registered + udd_g_ctrlreq.payload_size = 0; + udd_g_ctrlreq.callback = NULL; + udd_g_ctrlreq.over_under_run = NULL; + + if (Udd_setup_is_in()) { + if (udd_g_ctrlreq.req.wLength == 0) { + return false; // Error from USB host + } + } + + // If standard request then try to decode it in UDC + if (Udd_setup_type() == USB_REQ_TYPE_STANDARD) { + if (udc_reqstd()) { + return true; + } + } + + // If interface request then try to decode it in UDI + if (Udd_setup_recipient() == USB_REQ_RECIP_INTERFACE) { + if (udc_req_iface()) { + return true; + } + } + + // If endpoint request then try to decode it in UDI + if (Udd_setup_recipient() == USB_REQ_RECIP_ENDPOINT) { + if (udc_req_ep()) { + return true; + } + } + + // Here SETUP request unknown by UDC and UDIs +#ifdef USB_DEVICE_SPECIFIC_REQUEST + // Try to decode it in specific callback + return USB_DEVICE_SPECIFIC_REQUEST(); // Ex: Vendor request,... +#else + return false; +#endif +} + +//! @} diff --git a/tmk_core/protocol/arm_atsam/usb/udc.h b/tmk_core/protocol/arm_atsam/usb/udc.h new file mode 100644 index 0000000000..f2144059eb --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udc.h @@ -0,0 +1,256 @@ +/** + * \file + * + * \brief Interface of the USB Device Controller (UDC) + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDC_H_ +#define _UDC_H_ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udc_desc.h" +#include "udd.h" + +#if USB_DEVICE_VENDOR_ID == 0 +# error USB_DEVICE_VENDOR_ID cannot be equal to 0 +#endif + +#if USB_DEVICE_PRODUCT_ID == 0 +# error USB_DEVICE_PRODUCT_ID cannot be equal to 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \ingroup usb_device_group + * \defgroup udc_group USB Device Controller (UDC) + * + * The UDC provides a high-level abstraction of the usb device. + * You can use these functions to control the main device state + * (start/attach/wakeup). + * + * \section USB_DEVICE_CONF USB Device Custom configuration + * The following USB Device configuration must be included in the conf_usb.h + * file of the application. + * + * USB_DEVICE_VENDOR_ID (Word)
+ * Vendor ID provided by USB org (ATMEL 0x03EB). + * + * USB_DEVICE_PRODUCT_ID (Word)
+ * Product ID (Referenced in usb_atmel.h). + * + * USB_DEVICE_MAJOR_VERSION (Byte)
+ * Major version of the device + * + * USB_DEVICE_MINOR_VERSION (Byte)
+ * Minor version of the device + * + * USB_DEVICE_MANUFACTURE_NAME (string)
+ * ASCII name for the manufacture + * + * USB_DEVICE_PRODUCT_NAME (string)
+ * ASCII name for the product + * + * USB_DEVICE_SERIAL_NAME (string)
+ * ASCII name to enable and set a serial number + * + * USB_DEVICE_POWER (Numeric)
+ * (unit mA) Maximum device power + * + * USB_DEVICE_ATTR (Byte)
+ * USB attributes available: + * - USB_CONFIG_ATTR_SELF_POWERED + * - USB_CONFIG_ATTR_REMOTE_WAKEUP + * Note: if remote wake enabled then defines remotewakeup callbacks, + * see Table 5-2. External API from UDC - Callback + * + * USB_DEVICE_LOW_SPEED (Only defined)
+ * Force the USB Device to run in low speed + * + * USB_DEVICE_HS_SUPPORT (Only defined)
+ * Authorize the USB Device to run in high speed + * + * USB_DEVICE_MAX_EP (Byte)
+ * Define the maximum endpoint number used by the USB Device.
+ * This one is already defined in UDI default configuration. + * Ex: + * - When endpoint control 0x00, endpoint 0x01 and + * endpoint 0x82 is used then USB_DEVICE_MAX_EP=2 + * - When only endpoint control 0x00 is used then USB_DEVICE_MAX_EP=0 + * - When endpoint 0x01 and endpoint 0x81 is used then USB_DEVICE_MAX_EP=1
+ * (configuration not possible on USBB interface) + * @{ + */ + +/** + * \brief Authorizes the VBUS event + * + * \return true, if the VBUS monitoring is possible. + * + * \section udc_vbus_monitoring VBus monitoring used cases + * + * The VBus monitoring is used only for USB SELF Power application. + * + * - By default the USB device is automatically attached when Vbus is high + * or when USB is start for devices without internal Vbus monitoring. + * conf_usb.h file does not contains define USB_DEVICE_ATTACH_AUTO_DISABLE. + * \code //#define USB_DEVICE_ATTACH_AUTO_DISABLE \endcode + * + * - Add custom VBUS monitoring. conf_usb.h file contains define + * USB_DEVICE_ATTACH_AUTO_DISABLE: + * \code #define USB_DEVICE_ATTACH_AUTO_DISABLE \endcode + * User C file contains: + * \code + // Authorize VBUS monitoring + if (!udc_include_vbus_monitoring()) { + // Implement custom VBUS monitoring via GPIO or other + } + Event_VBUS_present() // VBUS interrupt or GPIO interrupt or other + { + // Attach USB Device + udc_attach(); + } +\endcode + * + * - Case of battery charging. conf_usb.h file contains define + * USB_DEVICE_ATTACH_AUTO_DISABLE: + * \code #define USB_DEVICE_ATTACH_AUTO_DISABLE \endcode + * User C file contains: + * \code + Event VBUS present() // VBUS interrupt or GPIO interrupt or .. + { + // Authorize battery charging, but wait key press to start USB. + } + Event Key press() + { + // Stop batteries charging + // Start USB + udc_attach(); + } +\endcode + */ +static inline bool udc_include_vbus_monitoring(void) { + return udd_include_vbus_monitoring(); +} + +/*! \brief Start the USB Device stack + */ +void udc_start(void); + +/*! \brief Stop the USB Device stack + */ +void udc_stop(void); + +/** + * \brief Attach device to the bus when possible + * + * \warning If a VBus control is included in driver, + * then it will attach device when an acceptable Vbus + * level from the host is detected. + */ +static inline void udc_attach(void) { + udd_attach(); +} + +/** + * \brief Detaches the device from the bus + * + * The driver must remove pull-up on USB line D- or D+. + */ +static inline void udc_detach(void) { + udd_detach(); +} + +/*! \brief The USB driver sends a resume signal called \e "Upstream Resume" + * This is authorized only when the remote wakeup feature is enabled by host. + */ +inline void udc_remotewakeup(void) { + udd_send_remotewakeup(); +} + +/** + * \brief Returns a pointer on the current interface descriptor + * + * \return pointer on the current interface descriptor. + */ +usb_iface_desc_t UDC_DESC_STORAGE *udc_get_interface_desc(void); + +//@} + +/** + * \ingroup usb_group + * \defgroup usb_device_group USB Stack Device + * + * This module includes USB Stack Device implementation. + * The stack is divided in three parts: + * - USB Device Controller (UDC) provides USB chapter 9 compliance + * - USB Device Interface (UDI) provides USB Class compliance + * - USB Device Driver (UDD) provides USB Driver for each Atmel MCU + + * Many USB Device applications can be implemented on Atmel MCU. + * Atmel provides many application notes for different applications: + * - AVR4900, provides general information about Device Stack + * - AVR4901, explains how to create a new class + * - AVR4902, explains how to create a composite device + * - AVR49xx, all device classes provided in ASF have an application note + * + * A basic USB knowledge is required to understand the USB Device + * Class application notes (HID,MS,CDC,PHDC,...). + * Then, to create an USB device with + * only one class provided by ASF, refer directly to the application note + * corresponding to this USB class. The USB Device application note for + * New Class and Composite is dedicated to advanced USB users. + * + * @{ + */ + +//! @} + +#ifdef __cplusplus +} +#endif + +#endif // _UDC_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udc_desc.h b/tmk_core/protocol/arm_atsam/usb/udc_desc.h new file mode 100644 index 0000000000..50861da964 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udc_desc.h @@ -0,0 +1,132 @@ +/** + * \file + * + * \brief Common API for USB Device Interface + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDC_DESC_H_ +#define _UDC_DESC_H_ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udi.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \ingroup udc_group + * \defgroup udc_desc_group USB Device Descriptor + * + * @{ + */ + +/** + * \brief Defines the memory's location of USB descriptors + * + * By default the Descriptor is stored in RAM + * (UDC_DESC_STORAGE is defined empty). + * + * If you have need to free RAM space, + * it is possible to put descriptor in flash in following case: + * - USB driver authorize flash transfer (USBB on UC3 and USB on Mega) + * - USB Device is not high speed (UDC no need to change USB descriptors) + * + * For UC3 application used "const". + * + * For Mega application used "code". + */ +#define UDC_DESC_STORAGE +// Descriptor storage in internal RAM +#if (defined UDC_DATA_USE_HRAM_SUPPORT) +# if defined(__GNUC__) +# define UDC_DATA(x) COMPILER_WORD_ALIGNED __attribute__((__section__(".data_hram0"))) +# define UDC_BSS(x) COMPILER_ALIGNED(x) __attribute__((__section__(".bss_hram0"))) +# elif defined(__ICCAVR32__) +# define UDC_DATA(x) COMPILER_ALIGNED(x) __data32 +# define UDC_BSS(x) COMPILER_ALIGNED(x) __data32 +# endif +#else +# define UDC_DATA(x) COMPILER_ALIGNED(x) +# define UDC_BSS(x) COMPILER_ALIGNED(x) +#endif + +/** + * \brief Configuration descriptor and UDI link for one USB speed + */ +typedef struct { + //! USB configuration descriptor + usb_conf_desc_t UDC_DESC_STORAGE *desc; + //! Array of UDI API pointer + udi_api_t UDC_DESC_STORAGE *UDC_DESC_STORAGE *udi_apis; +} udc_config_speed_t; + +/** + * \brief All information about the USB Device + */ +typedef struct { + //! USB device descriptor for low or full speed + usb_dev_desc_t UDC_DESC_STORAGE *confdev_lsfs; + //! USB configuration descriptor and UDI API pointers for low or full speed + udc_config_speed_t UDC_DESC_STORAGE *conf_lsfs; +#ifdef USB_DEVICE_HS_SUPPORT + //! USB device descriptor for high speed + usb_dev_desc_t UDC_DESC_STORAGE *confdev_hs; + //! USB device qualifier, only use in high speed mode + usb_dev_qual_desc_t UDC_DESC_STORAGE *qualifier; + //! USB configuration descriptor and UDI API pointers for high speed + udc_config_speed_t UDC_DESC_STORAGE *conf_hs; +#endif + usb_dev_bos_desc_t UDC_DESC_STORAGE *conf_bos; +} udc_config_t; + +//! Global variables of USB Device Descriptor and UDI links +extern UDC_DESC_STORAGE udc_config_t udc_config; + +//@} + +#ifdef __cplusplus +} +#endif +#endif // _UDC_DESC_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udd.h b/tmk_core/protocol/arm_atsam/usb/udd.h new file mode 100644 index 0000000000..d9f58baf0b --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udd.h @@ -0,0 +1,384 @@ +/** + * \file + * + * \brief Common API for USB Device Drivers (UDD) + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDD_H_ +#define _UDD_H_ + +#include "usb_protocol.h" +#include "udc_desc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \ingroup usb_device_group + * \defgroup udd_group USB Device Driver (UDD) + * + * The UDD driver provides a low-level abstraction of the device + * controller hardware. Most events coming from the hardware such as + * interrupts, which may cause the UDD to call into the UDC and UDI. + * + * @{ + */ + +//! \brief Endpoint identifier +typedef uint8_t udd_ep_id_t; + +//! \brief Endpoint transfer status +//! Returned in parameters of callback register via udd_ep_run routine. +typedef enum { + UDD_EP_TRANSFER_OK = 0, + UDD_EP_TRANSFER_ABORT = 1, +} udd_ep_status_t; + +/** + * \brief Global variable to give and record information of the setup request management + * + * This global variable allows to decode and response a setup request. + * It can be updated by udc_process_setup() from UDC or *setup() from UDIs. + */ +typedef struct { + //! Data received in USB SETUP packet + //! Note: The swap of "req.wValues" from uin16_t to le16_t is done by UDD. + usb_setup_req_t req; + + //! Point to buffer to send or fill with data following SETUP packet + //! This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer) + uint8_t *payload; + + //! Size of buffer to send or fill, and content the number of byte transfered + uint16_t payload_size; + + //! Callback called after reception of ZLP from setup request + void (*callback)(void); + + //! Callback called when the buffer given (.payload) is full or empty. + //! This one return false to abort data transfer, or true with a new buffer in .payload. + bool (*over_under_run)(void); +} udd_ctrl_request_t; +extern udd_ctrl_request_t udd_g_ctrlreq; + +//! Return true if the setup request \a udd_g_ctrlreq indicates IN data transfer +#define Udd_setup_is_in() (USB_REQ_DIR_IN == (udd_g_ctrlreq.req.bmRequestType & USB_REQ_DIR_MASK)) + +//! Return true if the setup request \a udd_g_ctrlreq indicates OUT data transfer +#define Udd_setup_is_out() (USB_REQ_DIR_OUT == (udd_g_ctrlreq.req.bmRequestType & USB_REQ_DIR_MASK)) + +//! Return the type of the SETUP request \a udd_g_ctrlreq. \see usb_reqtype. +#define Udd_setup_type() (udd_g_ctrlreq.req.bmRequestType & USB_REQ_TYPE_MASK) + +//! Return the recipient of the SETUP request \a udd_g_ctrlreq. \see usb_recipient +#define Udd_setup_recipient() (udd_g_ctrlreq.req.bmRequestType & USB_REQ_RECIP_MASK) + +/** + * \brief End of halt callback function type. + * Registered by routine udd_ep_wait_stall_clear() + * Callback called when endpoint stall is cleared. + */ +typedef void (*udd_callback_halt_cleared_t)(void); + +/** + * \brief End of transfer callback function type. + * Registered by routine udd_ep_run() + * Callback called by USB interrupt after data transfer or abort (reset,...). + * + * \param status UDD_EP_TRANSFER_OK, if transfer is complete + * \param status UDD_EP_TRANSFER_ABORT, if transfer is aborted + * \param n number of data transfered + */ +typedef void (*udd_callback_trans_t)(udd_ep_status_t status, iram_size_t nb_transfered, udd_ep_id_t ep); + +/** + * \brief Authorizes the VBUS event + * + * \return true, if the VBUS monitoring is possible. + */ +bool udd_include_vbus_monitoring(void); + +/** + * \brief Enables the USB Device mode + */ +void udd_enable(void); + +/** + * \brief Disables the USB Device mode + */ +void udd_disable(void); + +/** + * \brief Attach device to the bus when possible + * + * \warning If a VBus control is included in driver, + * then it will attach device when an acceptable Vbus + * level from the host is detected. + */ +void udd_attach(void); + +/** + * \brief Detaches the device from the bus + * + * The driver must remove pull-up on USB line D- or D+. + */ +void udd_detach(void); + +/** + * \brief Test whether the USB Device Controller is running at high + * speed or not. + * + * \return \c true if the Device is running at high speed mode, otherwise \c false. + */ +bool udd_is_high_speed(void); + +/** + * \brief Changes the USB address of device + * + * \param address New USB address + */ +void udd_set_address(uint8_t address); + +/** + * \brief Returns the USB address of device + * + * \return USB address + */ +uint8_t udd_getaddress(void); + +/** + * \brief Returns the current start of frame number + * + * \return current start of frame number. + */ +uint16_t udd_get_frame_number(void); + +/** + * \brief Returns the current micro start of frame number + * + * \return current micro start of frame number required in high speed mode. + */ +uint16_t udd_get_micro_frame_number(void); + +/*! \brief The USB driver sends a resume signal called Upstream Resume + */ +void udd_send_remotewakeup(void); + +/** + * \brief Load setup payload + * + * \param payload Pointer on payload + * \param payload_size Size of payload + */ +void udd_set_setup_payload(uint8_t *payload, uint16_t payload_size); + +/** + * \name Endpoint Management + * + * The following functions allow drivers to create and remove + * endpoints, as well as set, clear and query their "halted" and + * "wedged" states. + */ +//@{ + +#if (USB_DEVICE_MAX_EP != 0) + +/** + * \brief Configures and enables an endpoint + * + * \param ep Endpoint number including direction (USB_EP_DIR_IN/USB_EP_DIR_OUT). + * \param bmAttributes Attributes of endpoint declared in the descriptor. + * \param MaxEndpointSize Endpoint maximum size + * + * \return \c 1 if the endpoint is enabled, otherwise \c 0. + */ +bool udd_ep_alloc(udd_ep_id_t ep, uint8_t bmAttributes, uint16_t MaxEndpointSize); + +/** + * \brief Disables an endpoint + * + * \param ep Endpoint number including direction (USB_EP_DIR_IN/USB_EP_DIR_OUT). + */ +void udd_ep_free(udd_ep_id_t ep); + +/** + * \brief Check if the endpoint \a ep is halted. + * + * \param ep The ID of the endpoint to check. + * + * \return \c 1 if \a ep is halted, otherwise \c 0. + */ +bool udd_ep_is_halted(udd_ep_id_t ep); + +/** + * \brief Set the halted state of the endpoint \a ep + * + * After calling this function, any transaction on \a ep will result + * in a STALL handshake being sent. Any pending transactions will be + * performed first, however. + * + * \param ep The ID of the endpoint to be halted + * + * \return \c 1 if \a ep is halted, otherwise \c 0. + */ +bool udd_ep_set_halt(udd_ep_id_t ep); + +/** + * \brief Clear the halted state of the endpoint \a ep + * + * After calling this function, any transaction on \a ep will + * be handled normally, i.e. a STALL handshake will not be sent, and + * the data toggle sequence will start at DATA0. + * + * \param ep The ID of the endpoint to be un-halted + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +bool udd_ep_clear_halt(udd_ep_id_t ep); + +/** + * \brief Registers a callback to call when endpoint halt is cleared + * + * \param ep The ID of the endpoint to use + * \param callback NULL or function to call when endpoint halt is cleared + * + * \warning if the endpoint is not halted then the \a callback is called immediately. + * + * \return \c 1 if the register is accepted, otherwise \c 0. + */ +bool udd_ep_wait_stall_clear(udd_ep_id_t ep, udd_callback_halt_cleared_t callback); + +/** + * \brief Allows to receive or send data on an endpoint + * + * The driver uses a specific DMA USB to transfer data + * from internal RAM to endpoint, if this one is available. + * When the transfer is finished or aborted (stall, reset, ...), the \a callback is called. + * The \a callback returns the transfer status and eventually the number of byte transfered. + * Note: The control endpoint is not authorized. + * + * \param ep The ID of the endpoint to use + * \param b_shortpacket Enabled automatic short packet + * \param buf Buffer on Internal RAM to send or fill. + * It must be align, then use COMPILER_WORD_ALIGNED. + * \param buf_size Buffer size to send or fill + * \param callback NULL or function to call at the end of transfer + * + * \warning About \a b_shortpacket, for IN endpoint it means that a short packet + * (or a Zero Length Packet) will be sent to the USB line to properly close the usb + * transfer at the end of the data transfer. + * For Bulk and Interrupt OUT endpoint, it will automatically stop the transfer + * at the end of the data transfer (received short packet). + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +bool udd_ep_run(udd_ep_id_t ep, bool b_shortpacket, uint8_t *buf, iram_size_t buf_size, udd_callback_trans_t callback); +/** + * \brief Aborts transfer on going on endpoint + * + * If a transfer is on going, then it is stopped and + * the callback registered is called to signal the end of transfer. + * Note: The control endpoint is not authorized. + * + * \param ep Endpoint to abort + */ +void udd_ep_abort(udd_ep_id_t ep); + +#endif + +//@} + +/** + * \name High speed test mode management + * + * The following functions allow the device to jump to a specific test mode required in high speed mode. + */ +//@{ +void udd_test_mode_j(void); +void udd_test_mode_k(void); +void udd_test_mode_se0_nak(void); +void udd_test_mode_packet(void); +//@} + +/** + * \name UDC callbacks to provide for UDD + * + * The following callbacks are used by UDD. + */ +//@{ + +/** + * \brief Decodes and manages a setup request + * + * The driver call it when a SETUP packet is received. + * The \c udd_g_ctrlreq contains the data of SETUP packet. + * If this callback accepts the setup request then it must + * return \c 1 and eventually update \c udd_g_ctrlreq to send or receive data. + * + * \return \c 1 if the request is accepted, otherwise \c 0. + */ +extern bool udc_process_setup(void); + +/** + * \brief Reset the UDC + * + * The UDC must reset all configuration. + */ +extern void udc_reset(void); + +/** + * \brief To signal that a SOF is occurred + * + * The UDC must send the signal to all UDIs enabled + */ +extern void udc_sof_notify(void); + +//@} + +//@} + +#ifdef __cplusplus +} +#endif +#endif // _UDD_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi.h b/tmk_core/protocol/arm_atsam/usb/udi.h new file mode 100644 index 0000000000..60b117f3ca --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi.h @@ -0,0 +1,133 @@ +/** + * \file + * + * \brief Common API for USB Device Interface + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDI_H_ +#define _UDI_H_ + +#include "conf_usb.h" +#include "usb_protocol.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \ingroup usb_device_group + * \defgroup udi_group USB Device Interface (UDI) + * The UDI provides a common API for all classes, + * and this is used by UDC for the main control of USB Device interface. + * @{ + */ + +/** + * \brief UDI API. + * + * The callbacks within this structure are called only by + * USB Device Controller (UDC) + * + * The udc_get_interface_desc() can be use by UDI to know the interface descriptor + * selected by UDC. + */ +typedef struct { + /** + * \brief Enable the interface. + * + * This function is called when the host selects a configuration + * to which this interface belongs through a Set Configuration + * request, and when the host selects an alternate setting of + * this interface through a Set Interface request. + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ + bool (*enable)(void); + + /** + * \brief Disable the interface. + * + * This function is called when this interface is currently + * active, and + * - the host selects any configuration through a Set + * Configuration request, or + * - the host issues a USB reset, or + * - the device is detached from the host (i.e. Vbus is no + * longer present) + */ + void (*disable)(void); + + /** + * \brief Handle a control request directed at an interface. + * + * This function is called when this interface is currently + * active and the host sends a SETUP request + * with this interface as the recipient. + * + * Use udd_g_ctrlreq to decode and response to SETUP request. + * + * \return \c 1 if this interface supports the SETUP request, otherwise \c 0. + */ + bool (*setup)(void); + + /** + * \brief Returns the current setting of the selected interface. + * + * This function is called when UDC when know alternate setting of selected interface. + * + * \return alternate setting of selected interface + */ + uint8_t (*getsetting)(void); + + /** + * \brief To signal that a SOF is occurred + */ + void (*sof_notify)(void); +} udi_api_t; + +//@} + +#ifdef __cplusplus +} +#endif +#endif // _UDI_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_cdc.c b/tmk_core/protocol/arm_atsam/usb/udi_cdc.c new file mode 100644 index 0000000000..d40030f36d --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_cdc.c @@ -0,0 +1,1267 @@ +/** + * \file + * + * \brief USB Device Communication Device Class (CDC) interface. + * + * Copyright (c) 2009-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#include "samd51j18a.h" +#include "conf_usb.h" +#include "usb_protocol.h" +#include "usb_protocol_cdc.h" +#include "udd.h" +#include "udc.h" +#include "udi_cdc.h" +#include +#include "udi_cdc_conf.h" +#include "udi_device_conf.h" +#include "stdarg.h" +#include "tmk_core/protocol/arm_atsam/clks.h" + +#ifdef VIRTSER_ENABLE + +# ifdef UDI_CDC_LOW_RATE +# ifdef USB_DEVICE_HS_SUPPORT +# define UDI_CDC_TX_BUFFERS (UDI_CDC_DATA_EPS_HS_SIZE) +# define UDI_CDC_RX_BUFFERS (UDI_CDC_DATA_EPS_HS_SIZE) +# else +# define UDI_CDC_TX_BUFFERS (UDI_CDC_DATA_EPS_FS_SIZE) +# define UDI_CDC_RX_BUFFERS (UDI_CDC_DATA_EPS_FS_SIZE) +# endif +# else +# ifdef USB_DEVICE_HS_SUPPORT +# define UDI_CDC_TX_BUFFERS (UDI_CDC_DATA_EPS_HS_SIZE) +# define UDI_CDC_RX_BUFFERS (UDI_CDC_DATA_EPS_HS_SIZE) +# else +# define UDI_CDC_TX_BUFFERS (5 * UDI_CDC_DATA_EPS_FS_SIZE) +# define UDI_CDC_RX_BUFFERS (5 * UDI_CDC_DATA_EPS_FS_SIZE) +# endif +# endif + +# ifndef UDI_CDC_TX_EMPTY_NOTIFY +# define UDI_CDC_TX_EMPTY_NOTIFY(port) +# endif + +/** + * \ingroup udi_cdc_group + * \defgroup udi_cdc_group_udc Interface with USB Device Core (UDC) + * + * Structures and functions required by UDC. + * + * @{ + */ +bool udi_cdc_comm_enable(void); +void udi_cdc_comm_disable(void); +bool udi_cdc_comm_setup(void); +bool udi_cdc_data_enable(void); +void udi_cdc_data_disable(void); +bool udi_cdc_data_setup(void); +uint8_t udi_cdc_getsetting(void); +void udi_cdc_data_sof_notify(void); +UDC_DESC_STORAGE udi_api_t udi_api_cdc_comm = {.enable = udi_cdc_comm_enable, .disable = udi_cdc_comm_disable, .setup = udi_cdc_comm_setup, .getsetting = udi_cdc_getsetting, .sof_notify = NULL}; +UDC_DESC_STORAGE udi_api_t udi_api_cdc_data = { + .enable = udi_cdc_data_enable, + .disable = udi_cdc_data_disable, + .setup = udi_cdc_data_setup, + .getsetting = udi_cdc_getsetting, + .sof_notify = udi_cdc_data_sof_notify, +}; +//@} + +/** + * \ingroup udi_cdc_group + * \defgroup udi_cdc_group_internal Implementation of UDI CDC + * + * Class internal implementation + * @{ + */ + +/** + * \name Internal routines + */ +//@{ + +/** + * \name Routines to control serial line + */ +//@{ + +/** + * \brief Returns the port number corresponding at current setup request + * + * \return port number + */ +static uint8_t udi_cdc_setup_to_port(void); + +/** + * \brief Sends line coding to application + * + * Called after SETUP request when line coding data is received. + */ +static void udi_cdc_line_coding_received(void); + +/** + * \brief Records new state + * + * \param port Communication port number to manage + * \param b_set State is enabled if true, else disabled + * \param bit_mask Field to process (see CDC_SERIAL_STATE_ defines) + */ +static void udi_cdc_ctrl_state_change(uint8_t port, bool b_set, le16_t bit_mask); + +/** + * \brief Check and eventually notify the USB host of new state + * + * \param port Communication port number to manage + * \param ep Port communication endpoint + */ +static void udi_cdc_ctrl_state_notify(uint8_t port, udd_ep_id_t ep); + +/** + * \brief Ack sent of serial state message + * Callback called after serial state message sent + * + * \param status UDD_EP_TRANSFER_OK, if transfer finished + * \param status UDD_EP_TRANSFER_ABORT, if transfer aborted + * \param n number of data transfered + */ +static void udi_cdc_serial_state_msg_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep); + +//@} + +/** + * \name Routines to process data transfer + */ +//@{ + +/** + * \brief Enable the reception of data from the USB host + * + * The value udi_cdc_rx_trans_sel indicate the RX buffer to fill. + * + * \param port Communication port number to manage + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +static bool udi_cdc_rx_start(uint8_t port); + +/** + * \brief Update rx buffer management with a new data + * Callback called after data reception on USB line + * + * \param status UDD_EP_TRANSFER_OK, if transfer finish + * \param status UDD_EP_TRANSFER_ABORT, if transfer aborted + * \param n number of data received + */ +static void udi_cdc_data_received(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep); + +/** + * \brief Ack sent of tx buffer + * Callback called after data transfer on USB line + * + * \param status UDD_EP_TRANSFER_OK, if transfer finished + * \param status UDD_EP_TRANSFER_ABORT, if transfer aborted + * \param n number of data transfered + */ +static void udi_cdc_data_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep); + +/** + * \brief Send buffer on line or wait a SOF event + * + * \param port Communication port number to manage + */ +static void udi_cdc_tx_send(uint8_t port); + +//@} + +//@} + +/** + * \name Information about configuration of communication line + */ +//@{ +COMPILER_WORD_ALIGNED +static usb_cdc_line_coding_t udi_cdc_line_coding[UDI_CDC_PORT_NB]; +static bool udi_cdc_serial_state_msg_ongoing[UDI_CDC_PORT_NB]; +static volatile le16_t udi_cdc_state[UDI_CDC_PORT_NB]; +COMPILER_WORD_ALIGNED static usb_cdc_notify_serial_state_t uid_cdc_state_msg[UDI_CDC_PORT_NB]; + +//! Status of CDC COMM interfaces +static volatile uint8_t udi_cdc_nb_comm_enabled = 0; +//@} + +/** + * \name Variables to manage RX/TX transfer requests + * Two buffers for each sense are used to optimize the speed. + */ +//@{ + +//! Status of CDC DATA interfaces +static volatile uint8_t udi_cdc_nb_data_enabled = 0; +static volatile bool udi_cdc_data_running = false; +//! Buffer to receive data +COMPILER_WORD_ALIGNED static uint8_t udi_cdc_rx_buf[UDI_CDC_PORT_NB][2][UDI_CDC_RX_BUFFERS]; +//! Data available in RX buffers +static volatile uint16_t udi_cdc_rx_buf_nb[UDI_CDC_PORT_NB][2]; +//! Give the current RX buffer used (rx0 if 0, rx1 if 1) +static volatile uint8_t udi_cdc_rx_buf_sel[UDI_CDC_PORT_NB]; +//! Read position in current RX buffer +static volatile uint16_t udi_cdc_rx_pos[UDI_CDC_PORT_NB]; +//! Signal a transfer on-going +static volatile bool udi_cdc_rx_trans_ongoing[UDI_CDC_PORT_NB]; + +//! Define a transfer halted +# define UDI_CDC_TRANS_HALTED 2 + +//! Buffer to send data +COMPILER_WORD_ALIGNED static uint8_t udi_cdc_tx_buf[UDI_CDC_PORT_NB][2][UDI_CDC_TX_BUFFERS]; +//! Data available in TX buffers +static uint16_t udi_cdc_tx_buf_nb[UDI_CDC_PORT_NB][2]; +//! Give current TX buffer used (tx0 if 0, tx1 if 1) +static volatile uint8_t udi_cdc_tx_buf_sel[UDI_CDC_PORT_NB]; +//! Value of SOF during last TX transfer +static uint16_t udi_cdc_tx_sof_num[UDI_CDC_PORT_NB]; +//! Signal a transfer on-going +static volatile bool udi_cdc_tx_trans_ongoing[UDI_CDC_PORT_NB]; +//! Signal that both buffer content data to send +static volatile bool udi_cdc_tx_both_buf_to_send[UDI_CDC_PORT_NB]; + +//@} + +bool udi_cdc_comm_enable(void) { + uint8_t port; + uint8_t iface_comm_num; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + udi_cdc_nb_comm_enabled = 0; + //#else + // if (udi_cdc_nb_comm_enabled > UDI_CDC_PORT_NB) { + // udi_cdc_nb_comm_enabled = 0; + // } + // port = udi_cdc_nb_comm_enabled; + //#endif + + // Initialize control signal management + udi_cdc_state[port] = CPU_TO_LE16(0); + + uid_cdc_state_msg[port].header.bmRequestType = USB_REQ_DIR_IN | USB_REQ_TYPE_CLASS | USB_REQ_RECIP_INTERFACE; + uid_cdc_state_msg[port].header.bNotification = USB_REQ_CDC_NOTIFY_SERIAL_STATE; + uid_cdc_state_msg[port].header.wValue = LE16(0); + + /* + switch (port) { + #define UDI_CDC_PORT_TO_IFACE_COMM(index, unused) \ + case index: \ + iface_comm_num = UDI_CDC_COMM_IFACE_NUMBER_##index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_PORT_TO_IFACE_COMM, ~) + #undef UDI_CDC_PORT_TO_IFACE_COMM + default: + iface_comm_num = UDI_CDC_COMM_IFACE_NUMBER_0; + break; + } + */ + iface_comm_num = UDI_CDC_COMM_IFACE_NUMBER_0; + + uid_cdc_state_msg[port].header.wIndex = LE16(iface_comm_num); + uid_cdc_state_msg[port].header.wLength = LE16(2); + uid_cdc_state_msg[port].value = CPU_TO_LE16(0); + + udi_cdc_line_coding[port].dwDTERate = CPU_TO_LE32(UDI_CDC_DEFAULT_RATE); + udi_cdc_line_coding[port].bCharFormat = UDI_CDC_DEFAULT_STOPBITS; + udi_cdc_line_coding[port].bParityType = UDI_CDC_DEFAULT_PARITY; + udi_cdc_line_coding[port].bDataBits = UDI_CDC_DEFAULT_DATABITS; + // Call application callback + // to initialize memories or indicate that interface is enabled +# if 0 + UDI_CDC_SET_CODING_EXT(port,(&udi_cdc_line_coding[port])); + if (!UDI_CDC_ENABLE_EXT(port)) { + return false; + } +# endif + udi_cdc_nb_comm_enabled++; + return true; +} + +bool udi_cdc_data_enable(void) { + uint8_t port; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + udi_cdc_nb_data_enabled = 0; + //#else + // if (udi_cdc_nb_data_enabled > UDI_CDC_PORT_NB) { + // udi_cdc_nb_data_enabled = 0; + // } + // port = udi_cdc_nb_data_enabled; + //#endif + + // Initialize TX management + udi_cdc_tx_trans_ongoing[port] = false; + udi_cdc_tx_both_buf_to_send[port] = false; + udi_cdc_tx_buf_sel[port] = 0; + udi_cdc_tx_buf_nb[port][0] = 0; + udi_cdc_tx_buf_nb[port][1] = 0; + udi_cdc_tx_sof_num[port] = 0; + udi_cdc_tx_send(port); + + // Initialize RX management + udi_cdc_rx_trans_ongoing[port] = false; + udi_cdc_rx_buf_sel[port] = 0; + udi_cdc_rx_buf_nb[port][0] = 0; + udi_cdc_rx_buf_nb[port][1] = 0; + udi_cdc_rx_pos[port] = 0; + if (!udi_cdc_rx_start(port)) { + return false; + } + udi_cdc_nb_data_enabled++; + if (udi_cdc_nb_data_enabled == UDI_CDC_PORT_NB) { + udi_cdc_data_running = true; + } + return true; +} + +void udi_cdc_comm_disable(void) { + Assert(udi_cdc_nb_comm_enabled != 0); + udi_cdc_nb_comm_enabled--; +} + +void udi_cdc_data_disable(void) { + // uint8_t port; + + Assert(udi_cdc_nb_data_enabled != 0); + udi_cdc_nb_data_enabled--; + // port = udi_cdc_nb_data_enabled; + // UDI_CDC_DISABLE_EXT(port); + udi_cdc_data_running = false; +} + +bool udi_cdc_comm_setup(void) { + uint8_t port = udi_cdc_setup_to_port(); + + if (Udd_setup_is_in()) { + // GET Interface Requests + if (Udd_setup_type() == USB_REQ_TYPE_CLASS) { + // Requests Class Interface Get + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_CDC_GET_LINE_CODING: + // Get configuration of CDC line + if (sizeof(usb_cdc_line_coding_t) != udd_g_ctrlreq.req.wLength) return false; // Error for USB host + udd_g_ctrlreq.payload = (uint8_t *)&udi_cdc_line_coding[port]; + udd_g_ctrlreq.payload_size = sizeof(usb_cdc_line_coding_t); + return true; + } + } + } + if (Udd_setup_is_out()) { + // SET Interface Requests + if (Udd_setup_type() == USB_REQ_TYPE_CLASS) { + // Requests Class Interface Set + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_CDC_SET_LINE_CODING: + // Change configuration of CDC line + if (sizeof(usb_cdc_line_coding_t) != udd_g_ctrlreq.req.wLength) return false; // Error for USB host + udd_g_ctrlreq.callback = udi_cdc_line_coding_received; + udd_g_ctrlreq.payload = (uint8_t *)&udi_cdc_line_coding[port]; + udd_g_ctrlreq.payload_size = sizeof(usb_cdc_line_coding_t); + return true; + case USB_REQ_CDC_SET_CONTROL_LINE_STATE: + // According cdc spec 1.1 chapter 6.2.14 + // UDI_CDC_SET_DTR_EXT(port, (0 != + // (udd_g_ctrlreq.req.wValue + // & CDC_CTRL_SIGNAL_DTE_PRESENT))); + // UDI_CDC_SET_RTS_EXT(port, (0 != + // (udd_g_ctrlreq.req.wValue + // & CDC_CTRL_SIGNAL_ACTIVATE_CARRIER))); + return true; + } + } + } + return false; // request Not supported +} + +bool udi_cdc_data_setup(void) { + return false; // request Not supported +} + +uint8_t udi_cdc_getsetting(void) { + return 0; // CDC don't have multiple alternate setting +} + +void udi_cdc_data_sof_notify(void) { + static uint8_t port_notify = 0; + + // A call of udi_cdc_data_sof_notify() is done for each port + udi_cdc_tx_send(port_notify); + /* +#if UDI_CDC_PORT_NB != 1 // To optimize code + port_notify++; + if (port_notify >= UDI_CDC_PORT_NB) { + port_notify = 0; + } +#endif + */ +} + +//------------------------------------------------- +//------- Internal routines to control serial line + +static uint8_t udi_cdc_setup_to_port(void) { + uint8_t port; + + /* + switch (udd_g_ctrlreq.req.wIndex & 0xFF) { +#define UDI_CDC_IFACE_COMM_TO_PORT(iface, unused) \ + case UDI_CDC_COMM_IFACE_NUMBER_##iface: \ + port = iface; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_IFACE_COMM_TO_PORT, ~) +#undef UDI_CDC_IFACE_COMM_TO_PORT + default: + port = 0; + break; + } + */ + port = 0; + + return port; +} + +static void udi_cdc_line_coding_received(void) { + uint8_t port = udi_cdc_setup_to_port(); + UNUSED(port); + + // UDI_CDC_SET_CODING_EXT(port, (&udi_cdc_line_coding[port])); +} + +static void udi_cdc_ctrl_state_change(uint8_t port, bool b_set, le16_t bit_mask) { + udd_ep_id_t ep_comm; + uint32_t irqflags; // irqflags_t + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + // Update state + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + if (b_set) { + udi_cdc_state[port] |= bit_mask; + } else { + udi_cdc_state[port] &= ~(unsigned)bit_mask; + } + __DMB(); + __set_PRIMASK(irqflags); + + /* + // Send it if possible and state changed + switch (port) { +#define UDI_CDC_PORT_TO_COMM_EP(index, unused) \ + case index: \ + ep_comm = UDI_CDC_COMM_EP_##index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_PORT_TO_COMM_EP, ~) +#undef UDI_CDC_PORT_TO_COMM_EP + default: + ep_comm = UDI_CDC_COMM_EP_0; + break; + } + */ + ep_comm = UDI_CDC_COMM_EP_0; + + udi_cdc_ctrl_state_notify(port, ep_comm); +} + +static void udi_cdc_ctrl_state_notify(uint8_t port, udd_ep_id_t ep) { +# if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; +# endif + + // Send it if possible and state changed + if ((!udi_cdc_serial_state_msg_ongoing[port]) && (udi_cdc_state[port] != uid_cdc_state_msg[port].value)) { + // Fill notification message + uid_cdc_state_msg[port].value = udi_cdc_state[port]; + // Send notification message + udi_cdc_serial_state_msg_ongoing[port] = udd_ep_run(ep, false, (uint8_t *)&uid_cdc_state_msg[port], sizeof(uid_cdc_state_msg[0]), udi_cdc_serial_state_msg_sent); + } +} + +static void udi_cdc_serial_state_msg_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep) { + uint8_t port; + UNUSED(n); + UNUSED(status); + + /* + switch (ep) { +#define UDI_CDC_GET_PORT_FROM_COMM_EP(iface, unused) \ + case UDI_CDC_COMM_EP_##iface: \ + port = iface; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_GET_PORT_FROM_COMM_EP, ~) +#undef UDI_CDC_GET_PORT_FROM_COMM_EP + default: + port = 0; + break; + } + */ + port = 0; + + udi_cdc_serial_state_msg_ongoing[port] = false; + + // For the irregular signals like break, the incoming ring signal, + // or the overrun error state, this will reset their values to zero + // and again will not send another notification until their state changes. + udi_cdc_state[port] &= ~(CDC_SERIAL_STATE_BREAK | CDC_SERIAL_STATE_RING | CDC_SERIAL_STATE_FRAMING | CDC_SERIAL_STATE_PARITY | CDC_SERIAL_STATE_OVERRUN); + uid_cdc_state_msg[port].value &= ~(CDC_SERIAL_STATE_BREAK | CDC_SERIAL_STATE_RING | CDC_SERIAL_STATE_FRAMING | CDC_SERIAL_STATE_PARITY | CDC_SERIAL_STATE_OVERRUN); + // Send it if possible and state changed + udi_cdc_ctrl_state_notify(port, ep); +} + +//------------------------------------------------- +//------- Internal routines to process data transfer + +static bool udi_cdc_rx_start(uint8_t port) { + uint32_t irqflags; // irqflags_t + uint8_t buf_sel_trans; + udd_ep_id_t ep; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + buf_sel_trans = udi_cdc_rx_buf_sel[port]; + if (udi_cdc_rx_trans_ongoing[port] || (udi_cdc_rx_pos[port] < udi_cdc_rx_buf_nb[port][buf_sel_trans])) { + // Transfer already on-going or current buffer no empty + __DMB(); + __set_PRIMASK(irqflags); + return false; + } + + // Change current buffer + udi_cdc_rx_pos[port] = 0; + udi_cdc_rx_buf_sel[port] = (buf_sel_trans == 0) ? 1 : 0; + + // Start transfer on RX + udi_cdc_rx_trans_ongoing[port] = true; + __DMB(); + __set_PRIMASK(irqflags); + + if (udi_cdc_multi_is_rx_ready(port)) { + // UDI_CDC_RX_NOTIFY(port); + } + + /* + // Send the buffer with enable of short packet + switch (port) { +#define UDI_CDC_PORT_TO_DATA_EP_OUT(index, unused) \ + case index: \ + ep = UDI_CDC_DATA_EP_OUT_##index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_PORT_TO_DATA_EP_OUT, ~) +#undef UDI_CDC_PORT_TO_DATA_EP_OUT + default: + ep = UDI_CDC_DATA_EP_OUT_0; + break; + } + */ + ep = UDI_CDC_DATA_EP_OUT_0; + + return udd_ep_run(ep, true, udi_cdc_rx_buf[port][buf_sel_trans], UDI_CDC_RX_BUFFERS, udi_cdc_data_received); +} + +static void udi_cdc_data_received(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep) { + uint8_t buf_sel_trans; + uint8_t port; + + /* + switch (ep) { +#define UDI_CDC_DATA_EP_OUT_TO_PORT(index, unused) \ + case UDI_CDC_DATA_EP_OUT_##index: \ + port = index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_DATA_EP_OUT_TO_PORT, ~) +#undef UDI_CDC_DATA_EP_OUT_TO_PORT + default: + port = 0; + break; + } + */ + port = 0; + + if (UDD_EP_TRANSFER_OK != status) { + // Abort reception + return; + } + + buf_sel_trans = (udi_cdc_rx_buf_sel[port] == 0) ? 1 : 0; + + if (!n) { + udd_ep_run(ep, true, udi_cdc_rx_buf[port][buf_sel_trans], UDI_CDC_RX_BUFFERS, udi_cdc_data_received); + return; + } + + udi_cdc_rx_buf_nb[port][buf_sel_trans] = n; + udi_cdc_rx_trans_ongoing[port] = false; + udi_cdc_rx_start(port); +} + +static void udi_cdc_data_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep) { + uint8_t port; + UNUSED(n); + + /* + switch (ep) { +#define UDI_CDC_DATA_EP_IN_TO_PORT(index, unused) \ + case UDI_CDC_DATA_EP_IN_##index: \ + port = index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_DATA_EP_IN_TO_PORT, ~) +#undef UDI_CDC_DATA_EP_IN_TO_PORT + default: + port = 0; + break; + } + */ + port = 0; + + if (UDD_EP_TRANSFER_OK != status) { + // Abort transfer + return; + } + + udi_cdc_tx_buf_nb[port][(udi_cdc_tx_buf_sel[port] == 0) ? 1 : 0] = 0; + udi_cdc_tx_both_buf_to_send[port] = false; + udi_cdc_tx_trans_ongoing[port] = false; + + if (n != 0) { + UDI_CDC_TX_EMPTY_NOTIFY(port); + } + + udi_cdc_tx_send(port); +} + +static void udi_cdc_tx_send(uint8_t port) { + uint32_t irqflags; // irqflags_t + uint8_t buf_sel_trans; + bool b_short_packet; + udd_ep_id_t ep; + static uint16_t sof_zlp_counter = 0; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + if (udi_cdc_tx_trans_ongoing[port]) { + return; // Already on going or wait next SOF to send next data + } + if (udd_is_high_speed()) { + if (udi_cdc_tx_sof_num[port] == udd_get_micro_frame_number()) { + return; // Wait next SOF to send next data + } + } else { + if (udi_cdc_tx_sof_num[port] == udd_get_frame_number()) { + return; // Wait next SOF to send next data + } + } + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + buf_sel_trans = udi_cdc_tx_buf_sel[port]; + if (udi_cdc_tx_buf_nb[port][buf_sel_trans] == 0) { + sof_zlp_counter++; + if (((!udd_is_high_speed()) && (sof_zlp_counter < 100)) || (udd_is_high_speed() && (sof_zlp_counter < 800))) { + __DMB(); + __set_PRIMASK(irqflags); + return; + } + } + sof_zlp_counter = 0; + + if (!udi_cdc_tx_both_buf_to_send[port]) { + // Send current Buffer + // and switch the current buffer + udi_cdc_tx_buf_sel[port] = (buf_sel_trans == 0) ? 1 : 0; + } else { + // Send the other Buffer + // and no switch the current buffer + buf_sel_trans = (buf_sel_trans == 0) ? 1 : 0; + } + udi_cdc_tx_trans_ongoing[port] = true; + __DMB(); + __set_PRIMASK(irqflags); + + b_short_packet = (udi_cdc_tx_buf_nb[port][buf_sel_trans] != UDI_CDC_TX_BUFFERS); + if (b_short_packet) { + if (udd_is_high_speed()) { + udi_cdc_tx_sof_num[port] = udd_get_micro_frame_number(); + } else { + udi_cdc_tx_sof_num[port] = udd_get_frame_number(); + } + } else { + udi_cdc_tx_sof_num[port] = 0; // Force next transfer without wait SOF + } + + /* + // Send the buffer with enable of short packet + switch (port) { +#define UDI_CDC_PORT_TO_DATA_EP_IN(index, unused) \ + case index: \ + ep = UDI_CDC_DATA_EP_IN_##index; \ + break; + MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_PORT_TO_DATA_EP_IN, ~) +#undef UDI_CDC_PORT_TO_DATA_EP_IN + default: + ep = UDI_CDC_DATA_EP_IN_0; + break; + } + */ + ep = UDI_CDC_DATA_EP_IN_0; + + udd_ep_run(ep, b_short_packet, udi_cdc_tx_buf[port][buf_sel_trans], udi_cdc_tx_buf_nb[port][buf_sel_trans], udi_cdc_data_sent); +} + +//--------------------------------------------- +//------- Application interface + +void udi_cdc_ctrl_signal_dcd(bool b_set) { + udi_cdc_ctrl_state_change(0, b_set, CDC_SERIAL_STATE_DCD); +} + +void udi_cdc_ctrl_signal_dsr(bool b_set) { + udi_cdc_ctrl_state_change(0, b_set, CDC_SERIAL_STATE_DSR); +} + +void udi_cdc_signal_framing_error(void) { + udi_cdc_ctrl_state_change(0, true, CDC_SERIAL_STATE_FRAMING); +} + +void udi_cdc_signal_parity_error(void) { + udi_cdc_ctrl_state_change(0, true, CDC_SERIAL_STATE_PARITY); +} + +void udi_cdc_signal_overrun(void) { + udi_cdc_ctrl_state_change(0, true, CDC_SERIAL_STATE_OVERRUN); +} + +void udi_cdc_multi_ctrl_signal_dcd(uint8_t port, bool b_set) { + udi_cdc_ctrl_state_change(port, b_set, CDC_SERIAL_STATE_DCD); +} + +void udi_cdc_multi_ctrl_signal_dsr(uint8_t port, bool b_set) { + udi_cdc_ctrl_state_change(port, b_set, CDC_SERIAL_STATE_DSR); +} + +void udi_cdc_multi_signal_framing_error(uint8_t port) { + udi_cdc_ctrl_state_change(port, true, CDC_SERIAL_STATE_FRAMING); +} + +void udi_cdc_multi_signal_parity_error(uint8_t port) { + udi_cdc_ctrl_state_change(port, true, CDC_SERIAL_STATE_PARITY); +} + +void udi_cdc_multi_signal_overrun(uint8_t port) { + udi_cdc_ctrl_state_change(port, true, CDC_SERIAL_STATE_OVERRUN); +} + +iram_size_t udi_cdc_multi_get_nb_received_data(uint8_t port) { + uint32_t irqflags; // irqflags_t + uint16_t pos; + iram_size_t nb_received; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + pos = udi_cdc_rx_pos[port]; + nb_received = udi_cdc_rx_buf_nb[port][udi_cdc_rx_buf_sel[port]] - pos; + __DMB(); + __set_PRIMASK(irqflags); + return nb_received; +} + +iram_size_t udi_cdc_get_nb_received_data(void) { + return udi_cdc_multi_get_nb_received_data(0); +} + +bool udi_cdc_multi_is_rx_ready(uint8_t port) { + return (udi_cdc_multi_get_nb_received_data(port) > 0); +} + +bool udi_cdc_is_rx_ready(void) { + return udi_cdc_multi_is_rx_ready(0); +} + +int udi_cdc_multi_getc(uint8_t port) { + uint32_t irqflags; // irqflags_t + int rx_data = 0; + bool b_databit_9; + uint16_t pos; + uint8_t buf_sel; + bool again; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + b_databit_9 = (9 == udi_cdc_line_coding[port].bDataBits); + +udi_cdc_getc_process_one_byte: + // Check available data + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + pos = udi_cdc_rx_pos[port]; + buf_sel = udi_cdc_rx_buf_sel[port]; + again = pos >= udi_cdc_rx_buf_nb[port][buf_sel]; + __DMB(); + __set_PRIMASK(irqflags); + while (again) { + if (!udi_cdc_data_running) { + return 0; + } + goto udi_cdc_getc_process_one_byte; + } + + // Read data + rx_data |= udi_cdc_rx_buf[port][buf_sel][pos]; + udi_cdc_rx_pos[port] = pos + 1; + + udi_cdc_rx_start(port); + + if (b_databit_9) { + // Receive MSB + b_databit_9 = false; + rx_data = rx_data << 8; + goto udi_cdc_getc_process_one_byte; + } + return rx_data; +} + +int udi_cdc_getc(void) { + return udi_cdc_multi_getc(0); +} + +iram_size_t udi_cdc_multi_read_buf(uint8_t port, void *buf, iram_size_t size) { + uint32_t irqflags; // irqflags_t + uint8_t * ptr_buf = (uint8_t *)buf; + iram_size_t copy_nb; + uint16_t pos; + uint8_t buf_sel; + bool again; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + +udi_cdc_read_buf_loop_wait: + // Check available data + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + pos = udi_cdc_rx_pos[port]; + buf_sel = udi_cdc_rx_buf_sel[port]; + again = pos >= udi_cdc_rx_buf_nb[port][buf_sel]; + __DMB(); + __set_PRIMASK(irqflags); + while (again) { + if (!udi_cdc_data_running) { + return size; + } + goto udi_cdc_read_buf_loop_wait; + } + + // Read data + copy_nb = udi_cdc_rx_buf_nb[port][buf_sel] - pos; + if (copy_nb > size) { + copy_nb = size; + } + memcpy(ptr_buf, &udi_cdc_rx_buf[port][buf_sel][pos], copy_nb); + udi_cdc_rx_pos[port] += copy_nb; + ptr_buf += copy_nb; + size -= copy_nb; + udi_cdc_rx_start(port); + + if (size) { + goto udi_cdc_read_buf_loop_wait; + } + return 0; +} + +static iram_size_t udi_cdc_multi_read_no_polling(uint8_t port, void *buf, iram_size_t size) { + uint8_t * ptr_buf = (uint8_t *)buf; + iram_size_t nb_avail_data; + uint16_t pos; + uint8_t buf_sel; + uint32_t irqflags; // irqflags_t + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + // Data interface not started... exit + if (!udi_cdc_data_running) { + return 0; + } + + // Get number of available data + // Check available data + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + pos = udi_cdc_rx_pos[port]; + buf_sel = udi_cdc_rx_buf_sel[port]; + nb_avail_data = udi_cdc_rx_buf_nb[port][buf_sel] - pos; + __DMB(); + __set_PRIMASK(irqflags); + // If the buffer contains less than the requested number of data, + // adjust read size + if (nb_avail_data < size) { + size = nb_avail_data; + } + if (size > 0) { + memcpy(ptr_buf, &udi_cdc_rx_buf[port][buf_sel][pos], size); + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + udi_cdc_rx_pos[port] += size; + __DMB(); + __set_PRIMASK(irqflags); + ptr_buf += size; + udi_cdc_rx_start(port); + } + return (nb_avail_data); +} + +iram_size_t udi_cdc_read_no_polling(void *buf, iram_size_t size) { + return udi_cdc_multi_read_no_polling(0, buf, size); +} + +iram_size_t udi_cdc_read_buf(void *buf, iram_size_t size) { + return udi_cdc_multi_read_buf(0, buf, size); +} + +iram_size_t udi_cdc_multi_get_free_tx_buffer(uint8_t port) { + uint32_t irqflags; // irqflags_t + iram_size_t buf_sel_nb, retval; + uint8_t buf_sel; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + buf_sel = udi_cdc_tx_buf_sel[port]; + buf_sel_nb = udi_cdc_tx_buf_nb[port][buf_sel]; + if (buf_sel_nb == UDI_CDC_TX_BUFFERS) { + if ((!udi_cdc_tx_trans_ongoing[port]) && (!udi_cdc_tx_both_buf_to_send[port])) { + /* One buffer is full, but the other buffer is not used. + * (not used = transfer on-going) + * then move to the other buffer to store data */ + udi_cdc_tx_both_buf_to_send[port] = true; + udi_cdc_tx_buf_sel[port] = (buf_sel == 0) ? 1 : 0; + buf_sel_nb = 0; + } + } + retval = UDI_CDC_TX_BUFFERS - buf_sel_nb; + __DMB(); + __set_PRIMASK(irqflags); + return retval; +} + +iram_size_t udi_cdc_get_free_tx_buffer(void) { + return udi_cdc_multi_get_free_tx_buffer(0); +} + +bool udi_cdc_multi_is_tx_ready(uint8_t port) { + return (udi_cdc_multi_get_free_tx_buffer(port) != 0); +} + +bool udi_cdc_is_tx_ready(void) { + return udi_cdc_multi_is_tx_ready(0); +} + +int udi_cdc_multi_putc(uint8_t port, int value) { + uint32_t irqflags; // irqflags_t + bool b_databit_9; + uint8_t buf_sel; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + b_databit_9 = (9 == udi_cdc_line_coding[port].bDataBits); + +udi_cdc_putc_process_one_byte: + // Check available space + if (!udi_cdc_multi_is_tx_ready(port)) { + if (!udi_cdc_data_running) { + return false; + } + goto udi_cdc_putc_process_one_byte; + } + + // Write value + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + buf_sel = udi_cdc_tx_buf_sel[port]; + udi_cdc_tx_buf[port][buf_sel][udi_cdc_tx_buf_nb[port][buf_sel]++] = value; + __DMB(); + __set_PRIMASK(irqflags); + + if (b_databit_9) { + // Send MSB + b_databit_9 = false; + value = value >> 8; + goto udi_cdc_putc_process_one_byte; + } + return true; +} + +int udi_cdc_putc(int value) { + return udi_cdc_multi_putc(0, value); +} + +iram_size_t udi_cdc_multi_write_buf(uint8_t port, const void *buf, iram_size_t size) { + uint32_t irqflags; // irqflags_t + uint8_t buf_sel; + uint16_t buf_nb; + iram_size_t copy_nb; + uint8_t * ptr_buf = (uint8_t *)buf; + + //#if UDI_CDC_PORT_NB == 1 // To optimize code + port = 0; + //#endif + + if (9 == udi_cdc_line_coding[port].bDataBits) { + size *= 2; + } + +udi_cdc_write_buf_loop_wait: + + // Check available space + if (!udi_cdc_multi_is_tx_ready(port)) { + if (!udi_cdc_data_running) { + return size; + } + goto udi_cdc_write_buf_loop_wait; + } + + // Write values + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + buf_sel = udi_cdc_tx_buf_sel[port]; + buf_nb = udi_cdc_tx_buf_nb[port][buf_sel]; + copy_nb = UDI_CDC_TX_BUFFERS - buf_nb; + if (copy_nb > size) { + copy_nb = size; + } + memcpy(&udi_cdc_tx_buf[port][buf_sel][buf_nb], ptr_buf, copy_nb); + udi_cdc_tx_buf_nb[port][buf_sel] = buf_nb + copy_nb; + __DMB(); + __set_PRIMASK(irqflags); + + // Update buffer pointer + ptr_buf = ptr_buf + copy_nb; + size -= copy_nb; + + if (size) { + goto udi_cdc_write_buf_loop_wait; + } + + return 0; +} + +iram_size_t udi_cdc_write_buf(const void *buf, iram_size_t size) { + return udi_cdc_multi_write_buf(0, buf, size); +} + +# define MAX_PRINT 256 +# define CDC_SEND_INTERVAL 2 +uint32_t cdc_tx_send_time_next; + +void CDC_send(void) { + while (timer_read64() < cdc_tx_send_time_next) + ; + udi_cdc_tx_send(0); + cdc_tx_send_time_next = timer_read64() + CDC_SEND_INTERVAL; +} + +uint32_t CDC_print(char *printbuf) { + uint32_t count = 0; + char * buf = printbuf; + char c; + + if (timer_read64() < 5000) return 0; + + while ((c = *buf++) != 0 && !(count >= MAX_PRINT)) { + count++; + if (!udi_cdc_is_tx_ready()) return 0; + udi_cdc_putc(c); + if (count >= UDI_CDC_TX_BUFFERS) { + count = 0; + CDC_send(); + } + } + if (count) { + CDC_send(); + } + return 1; +} + +char printbuf[CDC_PRINTBUF_SIZE]; + +int CDC_printf(const char *_Format, ...) { + va_list va; // Variable argument list variable + int result; + + va_start(va, _Format); // Initialize the variable argument list + result = vsnprintf(printbuf, CDC_PRINTBUF_SIZE, _Format, va); + va_end(va); + + CDC_print(printbuf); + + return result; +} + +// global "inbuf" if desired +inbuf_t inbuf; + +uint32_t CDC_input_buf(inbuf_t inbuf, uint32_t inbuf_size) { + int RXChar; + int entered = 0; + + if (!udi_cdc_is_rx_ready()) return 0; + udi_cdc_get_nb_received_data(); + RXChar = udi_cdc_getc(); + + if (RXChar) { + switch (RXChar) { + case '\t': // tab - repeat last + inbuf.count = inbuf.lastcount; + inbuf.buf[inbuf.count + 1] = 0; + CDC_print(inbuf.buf); + break; + case '\r': // enter + inbuf.buf[inbuf.count] = 0; + inbuf.lastcount = inbuf.count; + inbuf.count = 0; + entered = 1; + break; + case '\b': // backspace + if (inbuf.count > 0) { + inbuf.count -= 1; + CDC_print("\b \b\0"); + } else + CDC_print("\a\0"); + break; + default: + if ((RXChar >= 32) && (RXChar <= 126)) { + if (inbuf.count < inbuf_size - 1) { + inbuf.buf[inbuf.count] = RXChar; + inbuf.buf[inbuf.count + 1] = 0; + CDC_print(&inbuf.buf[inbuf.count]); + inbuf.count += 1; + } else + CDC_print("\a\0"); + } + break; + } + RXChar = 0; + } + return entered; +} + +uint32_t CDC_input() { + return CDC_input_buf(inbuf, CDC_INBUF_SIZE); +} + +void CDC_init(void) { + inbuf.count = 0; + inbuf.lastcount = 0; + printbuf[0] = 0; + cdc_tx_send_time_next = timer_read64() + CDC_SEND_INTERVAL; +} + +#else // CDC line 62 + +char printbuf[CDC_PRINTBUF_SIZE]; + +void CDC_send(void) { + return; +} + +uint32_t CDC_print(char *printbuf) { + return 0; +} + +int CDC_printf(const char *_Format, ...) { + return 0; +} + +inbuf_t inbuf; + +uint32_t CDC_input(void) { + return 0; +} + +void CDC_init(void) { + inbuf.count = 0; + inbuf.lastcount = 0; + printbuf[0] = 0; +} + +#endif // CDC line 62 + +//@} diff --git a/tmk_core/protocol/arm_atsam/usb/udi_cdc.h b/tmk_core/protocol/arm_atsam/usb/udi_cdc.h new file mode 100644 index 0000000000..ff4f521ce0 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_cdc.h @@ -0,0 +1,376 @@ +/** + * \file + * + * \brief USB Device Communication Device Class (CDC) interface definitions. + * + * Copyright (c) 2009-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDI_CDC_H_ +#define _UDI_CDC_H_ + +#ifdef VIRTSER_ENABLE + +# include "conf_usb.h" +# include "usb_protocol.h" +# include "usb_protocol_cdc.h" +# include "udd.h" +# include "udc_desc.h" +# include "udi.h" + +// Check the number of port +# ifndef UDI_CDC_PORT_NB +# define UDI_CDC_PORT_NB 1 +# endif +# if (UDI_CDC_PORT_NB > 1) +# error UDI_CDC_PORT_NB must be at most 1 +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +/** + * \addtogroup udi_cdc_group_udc + * @{ + */ + +//! Global structure which contains standard UDI API for UDC +extern UDC_DESC_STORAGE udi_api_t udi_api_cdc_comm; +extern UDC_DESC_STORAGE udi_api_t udi_api_cdc_data; +//@} + +//#define CDC_ACM_SIZE 64 see usb_protocol_cdc.h +//#define CDC_RX_SIZE 64 + +//! CDC communication endpoints size for all speeds +# define UDI_CDC_COMM_EP_SIZE CDC_ACM_SIZE +//! CDC data endpoints size for FS speed (8B, 16B, 32B, 64B) +# define UDI_CDC_DATA_EPS_FS_SIZE CDC_RX_SIZE + +//@} + +/** + * \ingroup udi_group + * \defgroup udi_cdc_group USB Device Interface (UDI) for Communication Class Device (CDC) + * + * Common APIs used by high level application to use this USB class. + * + * These routines are used to transfer and control data + * to/from USB CDC endpoint. + * + * See \ref udi_cdc_quickstart. + * @{ + */ + +/** + * \name Interface for application with single CDC interface support + */ +//@{ + +/** + * \brief Notify a state change of DCD signal + * + * \param b_set DCD is enabled if true, else disabled + */ +void udi_cdc_ctrl_signal_dcd(bool b_set); + +/** + * \brief Notify a state change of DSR signal + * + * \param b_set DSR is enabled if true, else disabled + */ +void udi_cdc_ctrl_signal_dsr(bool b_set); + +/** + * \brief Notify a framing error + */ +void udi_cdc_signal_framing_error(void); + +/** + * \brief Notify a parity error + */ +void udi_cdc_signal_parity_error(void); + +/** + * \brief Notify a overrun + */ +void udi_cdc_signal_overrun(void); + +/** + * \brief Gets the number of byte received + * + * \return the number of data available + */ +iram_size_t udi_cdc_get_nb_received_data(void); + +/** + * \brief This function checks if a character has been received on the CDC line + * + * \return \c 1 if a byte is ready to be read. + */ +bool udi_cdc_is_rx_ready(void); + +/** + * \brief Waits and gets a value on CDC line + * + * \return value read on CDC line + */ +int udi_cdc_getc(void); + +/** + * \brief Reads a RAM buffer on CDC line + * + * \param buf Values read + * \param size Number of value read + * + * \return the number of data remaining + */ +iram_size_t udi_cdc_read_buf(void* buf, iram_size_t size); + +/** + * \brief Non polling reads of a up to 'size' data from CDC line + * + * \param port Communication port number to manage + * \param buf Buffer where to store read data + * \param size Maximum number of data to read (size of buffer) + * + * \return the number of data effectively read + */ +iram_size_t udi_cdc_read_no_polling(void* buf, iram_size_t size); + +/** + * \brief Gets the number of free byte in TX buffer + * + * \return the number of free byte in TX buffer + */ +iram_size_t udi_cdc_get_free_tx_buffer(void); + +/** + * \brief This function checks if a new character sent is possible + * The type int is used to support scanf redirection from compiler LIB. + * + * \return \c 1 if a new character can be sent + */ +bool udi_cdc_is_tx_ready(void); + +/** + * \brief Puts a byte on CDC line + * The type int is used to support printf redirection from compiler LIB. + * + * \param value Value to put + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +int udi_cdc_putc(int value); + +/** + * \brief Writes a RAM buffer on CDC line + * + * \param buf Values to write + * \param size Number of value to write + * + * \return the number of data remaining + */ +iram_size_t udi_cdc_write_buf(const void* buf, iram_size_t size); +//@} + +/** + * \name Interface for application with multi CDC interfaces support + */ +//@{ + +/** + * \brief Notify a state change of DCD signal + * + * \param port Communication port number to manage + * \param b_set DCD is enabled if true, else disabled + */ +void udi_cdc_multi_ctrl_signal_dcd(uint8_t port, bool b_set); + +/** + * \brief Notify a state change of DSR signal + * + * \param port Communication port number to manage + * \param b_set DSR is enabled if true, else disabled + */ +void udi_cdc_multi_ctrl_signal_dsr(uint8_t port, bool b_set); + +/** + * \brief Notify a framing error + * + * \param port Communication port number to manage + */ +void udi_cdc_multi_signal_framing_error(uint8_t port); + +/** + * \brief Notify a parity error + * + * \param port Communication port number to manage + */ +void udi_cdc_multi_signal_parity_error(uint8_t port); + +/** + * \brief Notify a overrun + * + * \param port Communication port number to manage + */ +void udi_cdc_multi_signal_overrun(uint8_t port); + +/** + * \brief Gets the number of byte received + * + * \param port Communication port number to manage + * + * \return the number of data available + */ +iram_size_t udi_cdc_multi_get_nb_received_data(uint8_t port); + +/** + * \brief This function checks if a character has been received on the CDC line + * + * \param port Communication port number to manage + * + * \return \c 1 if a byte is ready to be read. + */ +bool udi_cdc_multi_is_rx_ready(uint8_t port); + +/** + * \brief Waits and gets a value on CDC line + * + * \param port Communication port number to manage + * + * \return value read on CDC line + */ +int udi_cdc_multi_getc(uint8_t port); + +/** + * \brief Reads a RAM buffer on CDC line + * + * \param port Communication port number to manage + * \param buf Values read + * \param size Number of values read + * + * \return the number of data remaining + */ +iram_size_t udi_cdc_multi_read_buf(uint8_t port, void* buf, iram_size_t size); + +/** + * \brief Gets the number of free byte in TX buffer + * + * \param port Communication port number to manage + * + * \return the number of free byte in TX buffer + */ +iram_size_t udi_cdc_multi_get_free_tx_buffer(uint8_t port); + +/** + * \brief This function checks if a new character sent is possible + * The type int is used to support scanf redirection from compiler LIB. + * + * \param port Communication port number to manage + * + * \return \c 1 if a new character can be sent + */ +bool udi_cdc_multi_is_tx_ready(uint8_t port); + +/** + * \brief Puts a byte on CDC line + * The type int is used to support printf redirection from compiler LIB. + * + * \param port Communication port number to manage + * \param value Value to put + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +int udi_cdc_multi_putc(uint8_t port, int value); + +/** + * \brief Writes a RAM buffer on CDC line + * + * \param port Communication port number to manage + * \param buf Values to write + * \param size Number of value to write + * + * \return the number of data remaining + */ +iram_size_t udi_cdc_multi_write_buf(uint8_t port, const void* buf, iram_size_t size); +//@} + +# define CDC_PRINTBUF_SIZE 256 +extern char printbuf[CDC_PRINTBUF_SIZE]; + +# define CDC_INBUF_SIZE 256 + +typedef struct { + uint32_t count; + uint32_t lastcount; + char buf[CDC_INBUF_SIZE]; +} inbuf_t; + +#else // VIRTSER_ENABLE + +// keep these to accommodate calls if remaining +# define CDC_PRINTBUF_SIZE 1 +extern char printbuf[CDC_PRINTBUF_SIZE]; + +# define CDC_INBUF_SIZE 1 + +typedef struct { + uint32_t count; + uint32_t lastcount; + char buf[CDC_INBUF_SIZE]; +} inbuf_t; + +extern inbuf_t inbuf; + +#endif // VIRTSER_ENABLE + +uint32_t CDC_print(char* printbuf); +int CDC_printf(const char* _Format, ...); +uint32_t CDC_input(void); +void CDC_init(void); + +#ifdef __cplusplus +} +#endif + +#endif // _UDI_CDC_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_cdc_conf.h b/tmk_core/protocol/arm_atsam/usb/udi_cdc_conf.h new file mode 100644 index 0000000000..e17ed7bf44 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_cdc_conf.h @@ -0,0 +1,72 @@ +/** + * \file + * + * \brief Default CDC configuration for a USB Device with a single interface + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDI_CDC_CONF_H_ +#define _UDI_CDC_CONF_H_ + +#include "usb_protocol_cdc.h" +#include "conf_usb.h" +#include "udi_device_conf.h" + +#ifndef UDI_CDC_PORT_NB +# define UDI_CDC_PORT_NB 1 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define UDI_CDC_DATA_EP_IN_0 ((CDC_TX_ENDPOINT) | (USB_EP_DIR_IN)) // TX +#define UDI_CDC_DATA_EP_OUT_0 ((CDC_RX_ENDPOINT) | (USB_EP_DIR_OUT)) // RX +#define UDI_CDC_COMM_EP_0 ((CDC_ACM_ENDPOINT) | (USB_EP_DIR_IN)) // Notify endpoint + +#define UDI_CDC_COMM_IFACE_NUMBER_0 (CDC_STATUS_INTERFACE) +#define UDI_CDC_DATA_IFACE_NUMBER_0 (CDC_DATA_INTERFACE) + +#ifdef __cplusplus +} +#endif +#endif // _UDI_CDC_CONF_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h b/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h new file mode 100644 index 0000000000..a3c6f1c397 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h @@ -0,0 +1,806 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _UDI_DEVICE_CONF_H_ +#define _UDI_DEVICE_CONF_H_ + +#include "udi_device_epsize.h" +#include "usb_protocol.h" +#include "compiler.h" +#include "usb_protocol_hid.h" + +#ifndef USB_POLLING_INTERVAL_MS +# define USB_POLLING_INTERVAL_MS 10 +#endif + +#ifdef VIRTSER_ENABLE +// because CDC uses IAD (interface association descriptor +// per USB Interface Association Descriptor Device Class Code and Use Model 7/23/2003 Rev 1.0) +# define DEVICE_CLASS 0xEF +# define DEVICE_SUBCLASS 0x02 +# define DEVICE_PROTOCOL 0x01 +#else +# define DEVICE_CLASS 0x00 +# define DEVICE_SUBCLASS 0x00 +# define DEVICE_PROTOCOL 0x00 +#endif + +/* number of interfaces */ +#define NEXT_INTERFACE_0 0 + +#define KEYBOARD_INTERFACE NEXT_INTERFACE_0 +#define NEXT_INTERFACE_1 (KEYBOARD_INTERFACE + 1) +#define UDI_HID_KBD_IFACE_NUMBER KEYBOARD_INTERFACE + +// It is important that the Raw HID interface is at a constant +// interface number, to support Linux/OSX platforms and chrome.hid +// If Raw HID is enabled, let it be always 1. +#ifdef RAW_ENABLE +# define RAW_INTERFACE NEXT_INTERFACE_1 +# define NEXT_INTERFACE_2 (RAW_INTERFACE + 1) +#else +# define NEXT_INTERFACE_2 NEXT_INTERFACE_1 +#endif + +#ifdef MOUSE_ENABLE +# define MOUSE_INTERFACE NEXT_INTERFACE_2 +# define UDI_HID_MOU_IFACE_NUMBER MOUSE_INTERFACE +# define NEXT_INTERFACE_3 (MOUSE_INTERFACE + 1) +#else +# define NEXT_INTERFACE_3 NEXT_INTERFACE_2 +#endif + +#ifdef EXTRAKEY_ENABLE +# define EXTRAKEY_INTERFACE NEXT_INTERFACE_3 +# define NEXT_INTERFACE_4 (EXTRAKEY_INTERFACE + 1) +# define UDI_HID_EXK_IFACE_NUMBER EXTRAKEY_INTERFACE +#else +# define NEXT_INTERFACE_4 NEXT_INTERFACE_3 +#endif + +#ifdef CONSOLE_ENABLE +# define CON_INTERFACE NEXT_INTERFACE_4 +# define NEXT_INTERFACE_5 (CON_INTERFACE + 1) +# define UDI_HID_CON_IFACE_NUMBER CON_INTERFACE +#else +# define NEXT_INTERFACE_5 NEXT_INTERFACE_4 +#endif + +#ifdef NKRO_ENABLE +# define NKRO_INTERFACE NEXT_INTERFACE_5 +# define NEXT_INTERFACE_6 (NKRO_INTERFACE + 1) +# define UDI_HID_NKRO_IFACE_NUMBER NKRO_INTERFACE +#else +# define NEXT_INTERFACE_6 NEXT_INTERFACE_5 +#endif + +#ifdef MIDI_ENABLE +# define AC_INTERFACE NEXT_INTERFACE_6 +# define AS_INTERFACE (AC_INTERFACE + 1) +# define NEXT_INTERFACE_7 (AS_INTERFACE + 1) +#else +# define NEXT_INTERFACE_7 NEXT_INTERFACE_6 +#endif + +#ifdef VIRTSER_ENABLE +# define CCI_INTERFACE NEXT_INTERFACE_7 +# define CDI_INTERFACE (CCI_INTERFACE + 1) +# define NEXT_INTERFACE_8 (CDI_INTERFACE + 1) +# define CDC_STATUS_INTERFACE CCI_INTERFACE +# define CDC_DATA_INTERFACE CDI_INTERFACE +#else +# define NEXT_INTERFACE_8 NEXT_INTERFACE_7 +#endif + +/* nubmer of interfaces */ +#define TOTAL_INTERFACES NEXT_INTERFACE_8 +#define USB_DEVICE_NB_INTERFACE TOTAL_INTERFACES + +// ********************************************************************** +// Endopoint number and size +// ********************************************************************** +#define USB_DEVICE_EP_CTRL_SIZE 8 + +#define NEXT_IN_EPNUM_0 1 +#define NEXT_OUT_EPNUM_0 1 + +#define KEYBOARD_IN_EPNUM NEXT_IN_EPNUM_0 +#define UDI_HID_KBD_EP_IN KEYBOARD_IN_EPNUM +#define NEXT_IN_EPNUM_1 (KEYBOARD_IN_EPNUM + 1) +#define UDI_HID_KBD_EP_SIZE KEYBOARD_EPSIZE +#define KBD_POLLING_INTERVAL USB_POLLING_INTERVAL_MS +#ifndef UDI_HID_KBD_STRING_ID +# define UDI_HID_KBD_STRING_ID 0 +#endif + +#ifdef MOUSE_ENABLE +# define MOUSE_IN_EPNUM NEXT_IN_EPNUM_1 +# define NEXT_IN_EPNUM_2 (MOUSE_IN_EPNUM + 1) +# define UDI_HID_MOU_EP_IN MOUSE_IN_EPNUM +# define UDI_HID_MOU_EP_SIZE MOUSE_EPSIZE +# define MOU_POLLING_INTERVAL USB_POLLING_INTERVAL_MS +# ifndef UDI_HID_MOU_STRING_ID +# define UDI_HID_MOU_STRING_ID 0 +# endif +#else +# define NEXT_IN_EPNUM_2 NEXT_IN_EPNUM_1 +#endif + +#ifdef EXTRAKEY_ENABLE +# define EXTRAKEY_IN_EPNUM NEXT_IN_EPNUM_2 +# define UDI_HID_EXK_EP_IN EXTRAKEY_IN_EPNUM +# define NEXT_IN_EPNUM_3 (EXTRAKEY_IN_EPNUM + 1) +# define UDI_HID_EXK_EP_SIZE EXTRAKEY_EPSIZE +# define EXTRAKEY_POLLING_INTERVAL USB_POLLING_INTERVAL_MS +# ifndef UDI_HID_EXK_STRING_ID +# define UDI_HID_EXK_STRING_ID 0 +# endif +#else +# define NEXT_IN_EPNUM_3 NEXT_IN_EPNUM_2 +#endif + +#ifdef RAW_ENABLE +# define RAW_IN_EPNUM NEXT_IN_EPNUM_3 +# define UDI_HID_RAW_EP_IN RAW_IN_EPNUM +# define NEXT_IN_EPNUM_4 (RAW_IN_EPNUM + 1) +# define RAW_OUT_EPNUM NEXT_OUT_EPNUM_0 +# define UDI_HID_RAW_EP_OUT RAW_OUT_EPNUM +# define NEXT_OUT_EPNUM_1 (RAW_OUT_EPNUM + 1) +# define RAW_POLLING_INTERVAL 1 +# ifndef UDI_HID_RAW_STRING_ID +# define UDI_HID_RAW_STRING_ID 0 +# endif +#else +# define NEXT_IN_EPNUM_4 NEXT_IN_EPNUM_3 +# define NEXT_OUT_EPNUM_1 NEXT_OUT_EPNUM_0 +#endif + +#ifdef CONSOLE_ENABLE +# define CON_IN_EPNUM NEXT_IN_EPNUM_4 +# define UDI_HID_CON_EP_IN CON_IN_EPNUM +# define NEXT_IN_EPNUM_5 (CON_IN_EPNUM + 1) +# define CON_OUT_EPNUM NEXT_OUT_EPNUM_1 +# define UDI_HID_CON_EP_OUT CON_OUT_EPNUM +# define NEXT_OUT_EPNUM_2 (CON_OUT_EPNUM + 1) +# define CON_POLLING_INTERVAL 1 +# ifndef UDI_HID_CON_STRING_ID +# define UDI_HID_CON_STRING_ID 0 +# endif +#else +# define NEXT_IN_EPNUM_5 NEXT_IN_EPNUM_4 +# define NEXT_OUT_EPNUM_2 NEXT_OUT_EPNUM_1 +#endif + +#ifdef NKRO_ENABLE +# define NKRO_IN_EPNUM NEXT_IN_EPNUM_5 +# define UDI_HID_NKRO_EP_IN NKRO_IN_EPNUM +# define NEXT_IN_EPNUM_6 (NKRO_IN_EPNUM + 1) +# define UDI_HID_NKRO_EP_SIZE NKRO_EPSIZE +# define NKRO_POLLING_INTERVAL 1 +# ifndef UDI_HID_NKRO_STRING_ID +# define UDI_HID_NKRO_STRING_ID 0 +# endif +#else +# define NEXT_IN_EPNUM_6 NEXT_IN_EPNUM_5 +#endif + +#ifdef MIDI_ENABLE +# define MIDI_STREAM_IN_EPNUM NEXT_IN_EPNUM_6 +# define NEXT_IN_EPNUM_7 (MIDI_STREAM_IN_EPNUM + 1) +# define MIDI_STREAM_OUT_EPNUM NEXT_OUT_EPNUM_2 +# define NEXT_OUT_EPNUM_3 (MIDI_STREAM_OUT_EPNUM + 1) +# define MIDI_POLLING_INTERVAL 5 +#else +# define NEXT_IN_EPNUM_7 NEXT_IN_EPNUM_6 +# define NEXT_OUT_EPNUM_3 NEXT_OUT_EPNUM_2 +#endif + +#ifdef VIRTSER_ENABLE +# define CDC_NOTIFICATION_EPNUM NEXT_IN_EPNUM_7 +# define CDC_ACM_ENDPOINT CDC_NOTIFICATION_EPNUM +# define CDC_TX_ENDPOINT (CDC_NOTIFICATION_EPNUM + 1) +# define NEXT_IN_EPNUM_8 (CDC_TX_ENDPOINT + 1) + +# define CDC_OUT_EPNUM NEXT_OUT_EPNUM_3 +# define CDC_RX_ENDPOINT CDC_OUT_EPNUM +# define NEXT_OUT_EPNUM_4 (CDC_OUT_EPNUM + 1) + +# define CDC_ACM_SIZE CDC_NOTIFICATION_EPSIZE +# define CDC_RX_SIZE CDC_EPSIZE // KFSMOD was 64 +# define CDC_TX_SIZE CDC_RX_SIZE +# define CDC_ACM_POLLING_INTERVAL 255 +# define CDC_EP_INTERVAL_STATUS CDC_ACM_POLLING_INTERVAL +# define CDC_DATA_POLLING_INTERVAL 5 +# define CDC_EP_INTERVAL_DATA CDC_DATA_POLLING_INTERVAL +# define CDC_STATUS_NAME L"Virtual Serial Port - Status" +# define CDC_DATA_NAME L"Virtual Serial Port - Data" +#else +# define NEXT_IN_EPNUM_8 NEXT_IN_EPNUM_7 +# define NEXT_OUT_EPNUM_4 NEXT_OUT_EPNUM_3 +#endif + +#define TOTAL_OUT_EP NEXT_OUT_EPNUM_4 +#define TOTAL_IN_EP NEXT_IN_EPNUM_8 +#define USB_DEVICE_MAX_EP (max(NEXT_OUT_EPNUM_4, NEXT_IN_EPNUM_8)) + +#if USB_DEVICE_MAX_EP > 8 +# error "There are not enough available endpoints to support all functions. Remove some in the rules.mk file.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, VIRTSER)" +#endif + +// ********************************************************************** +// KBD Descriptor structure and content +// ********************************************************************** +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep; +} udi_hid_kbd_desc_t; + +typedef struct { + uint8_t array[59]; +} udi_hid_kbd_report_desc_t; + +// clang-format off + +# define UDI_HID_KBD_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = UDI_HID_KBD_IFACE_NUMBER, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 1, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_BOOT, \ + .bInterfaceProtocol = HID_PROTOCOL_KEYBOARD, \ + .iInterface = UDI_HID_KBD_STRING_ID, \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_kbd_report_desc_t)), \ + }, \ + .ep = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_KBD_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(UDI_HID_KBD_EP_SIZE), \ + .bInterval = KBD_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +// set report buffer (from host) +extern uint8_t udi_hid_kbd_report_set; + +// report buffer (to host) +#define UDI_HID_KBD_REPORT_SIZE 8 +extern uint8_t udi_hid_kbd_report[UDI_HID_KBD_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +// ********************************************************************** +// EXK Descriptor structure and content +// ********************************************************************** +#ifdef EXTRAKEY_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep; +} udi_hid_exk_desc_t; + +typedef struct { + uint8_t array[50]; +} udi_hid_exk_report_desc_t; + +// clang-format off + +# define UDI_HID_EXK_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = UDI_HID_EXK_IFACE_NUMBER, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 1, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_BOOT, \ + .bInterfaceProtocol = HID_PROTOCOL_GENERIC, \ + .iInterface = UDI_HID_EXK_STRING_ID \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_exk_report_desc_t)) \ + }, \ + .ep = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_EXK_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(UDI_HID_EXK_EP_SIZE), \ + .bInterval = EXTRAKEY_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +// report buffer +# define UDI_HID_EXK_REPORT_SIZE 3 +extern uint8_t udi_hid_exk_report[UDI_HID_EXK_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +#endif // EXTRAKEY_ENABLE + +// ********************************************************************** +// NKRO Descriptor structure and content +// ********************************************************************** +#ifdef NKRO_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep; +} udi_hid_nkro_desc_t; + +typedef struct { + uint8_t array[57]; +} udi_hid_nkro_report_desc_t; + +// clang-format off + +# define UDI_HID_NKRO_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = UDI_HID_NKRO_IFACE_NUMBER, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 1, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_NOBOOT, \ + .bInterfaceProtocol = HID_PROTOCOL_KEYBOARD, \ + .iInterface = UDI_HID_NKRO_STRING_ID \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_nkro_report_desc_t)) \ + }, \ + .ep = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_NKRO_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(UDI_HID_NKRO_EP_SIZE), \ + .bInterval = NKRO_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +// set report buffer +extern uint8_t udi_hid_nkro_report_set; + +// report buffer +# define UDI_HID_NKRO_REPORT_SIZE 32 +extern uint8_t udi_hid_nkro_report[UDI_HID_NKRO_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +#endif // NKRO_ENABLE + +// ********************************************************************** +// MOU Descriptor structure and content +// ********************************************************************** +#ifdef MOUSE_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep; +} udi_hid_mou_desc_t; + +typedef struct { + uint8_t array[77]; // MOU PDS +} udi_hid_mou_report_desc_t; + +// clang-format off + +# define UDI_HID_MOU_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = MOUSE_INTERFACE, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 1, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_BOOT, \ + .bInterfaceProtocol = HID_PROTOCOL_MOUSE, \ + .iInterface = UDI_HID_MOU_STRING_ID \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_mou_report_desc_t)) \ + }, \ + .ep = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_MOU_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(UDI_HID_MOU_EP_SIZE), \ + .bInterval = MOU_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +// report buffer +# define UDI_HID_MOU_REPORT_SIZE 5 // MOU PDS +extern uint8_t udi_hid_mou_report[UDI_HID_MOU_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +#endif // MOUSE_ENABLE + +// ********************************************************************** +// RAW Descriptor structure and content +// ********************************************************************** +#ifdef RAW_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep_out; + usb_ep_desc_t ep_in; +} udi_hid_raw_desc_t; + +typedef struct { + uint8_t array[26]; +} udi_hid_raw_report_desc_t; + +// clang-format off + +# define UDI_HID_RAW_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = RAW_INTERFACE, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 2, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_NOBOOT, \ + .bInterfaceProtocol = HID_SUB_CLASS_NOBOOT, \ + .iInterface = UDI_HID_RAW_STRING_ID \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_raw_report_desc_t)) \ + }, \ + .ep_out = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_RAW_EP_OUT | USB_EP_DIR_OUT, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(RAW_EPSIZE), \ + .bInterval = RAW_POLLING_INTERVAL \ + }, \ + .ep_in = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_RAW_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(RAW_EPSIZE), \ + .bInterval = RAW_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +# define UDI_HID_RAW_REPORT_SIZE RAW_EPSIZE + +extern uint8_t udi_hid_raw_report_set[UDI_HID_RAW_REPORT_SIZE]; + +// report buffer +extern uint8_t udi_hid_raw_report[UDI_HID_RAW_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +#endif // RAW_ENABLE + +// ********************************************************************** +// CON Descriptor structure and content +// ********************************************************************** +#ifdef CONSOLE_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + usb_iface_desc_t iface; + usb_hid_descriptor_t hid; + usb_ep_desc_t ep_out; + usb_ep_desc_t ep_in; +} udi_hid_con_desc_t; + +typedef struct { + uint8_t array[34]; +} udi_hid_con_report_desc_t; + +// clang-format off + +# define UDI_HID_CON_DESC { \ + .iface = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = UDI_HID_CON_IFACE_NUMBER, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 2, \ + .bInterfaceClass = HID_CLASS, \ + .bInterfaceSubClass = HID_SUB_CLASS_NOBOOT, \ + .bInterfaceProtocol = HID_SUB_CLASS_NOBOOT, \ + .iInterface = UDI_HID_CON_STRING_ID \ + }, \ + .hid = { \ + .bLength = sizeof(usb_hid_descriptor_t), \ + .bDescriptorType = USB_DT_HID, \ + .bcdHID = LE16(USB_HID_BDC_V1_11), \ + .bCountryCode = USB_HID_NO_COUNTRY_CODE, \ + .bNumDescriptors = USB_HID_NUM_DESC, \ + .bRDescriptorType = USB_DT_HID_REPORT, \ + .wDescriptorLength = LE16(sizeof(udi_hid_con_report_desc_t)) \ + }, \ + .ep_out = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_CON_EP_OUT | USB_EP_DIR_OUT, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(CONSOLE_EPSIZE), \ + .bInterval = CON_POLLING_INTERVAL \ + }, \ + .ep_in = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = UDI_HID_CON_EP_IN | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(CONSOLE_EPSIZE), \ + .bInterval = CON_POLLING_INTERVAL \ + } \ +} + +// clang-format on + +# define UDI_HID_CON_REPORT_SIZE CONSOLE_EPSIZE + +extern uint8_t udi_hid_con_report_set[UDI_HID_CON_REPORT_SIZE]; + +// report buffer +extern uint8_t udi_hid_con_report[UDI_HID_CON_REPORT_SIZE]; + +COMPILER_PACK_RESET() + +#endif // CONSOLE_ENABLE + +// ********************************************************************** +// CDC Descriptor structure and content +// ********************************************************************** +#ifdef VIRTSER_ENABLE + +COMPILER_PACK_SET(1) + +typedef struct { + uint8_t bFunctionLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + le16_t bcdCDC; +} usb_cdc_hdr_desc_t; + +typedef struct { + uint8_t bFunctionLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bmCapabilities; + uint8_t bDataInterface; +} usb_cdc_call_mgmt_desc_t; + +typedef struct { + uint8_t bFunctionLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bmCapabilities; +} usb_cdc_acm_desc_t; + +typedef struct { + uint8_t bFunctionLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bMasterInterface; + uint8_t bSlaveInterface0; +} usb_cdc_union_desc_t; + +typedef struct { + usb_association_desc_t iaface; + usb_iface_desc_t iface_c; + usb_cdc_hdr_desc_t fd; + usb_cdc_call_mgmt_desc_t mfd; + usb_cdc_acm_desc_t acmd; + usb_cdc_union_desc_t ufd; + usb_ep_desc_t ep_c; + usb_iface_desc_t iface_d; + usb_ep_desc_t ep_tx; + usb_ep_desc_t ep_rx; +} udi_cdc_desc_t; + +// clang-format off + +# define CDC_DESCRIPTOR { \ + .iaface = { \ + .bLength = sizeof(usb_association_desc_t), \ + .bDescriptorType = USB_DT_IAD, \ + .bFirstInterface = CDC_STATUS_INTERFACE, \ + .bInterfaceCount = 2, \ + .bFunctionClass = CDC_CLASS_DEVICE, \ + .bFunctionSubClass = CDC_SUBCLASS_ACM, \ + .bFunctionProtocol = CDC_PROTOCOL_V25TER, \ + .iFunction = 0 \ + }, \ + .iface_c = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = CDC_STATUS_INTERFACE, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 1, \ + .bInterfaceClass = 0x02, \ + .bInterfaceSubClass = 0x02, \ + .bInterfaceProtocol = CDC_PROTOCOL_V25TER, \ + .iInterface = 0 \ + }, \ + .fd = { \ + .bFunctionLength = sizeof(usb_cdc_hdr_desc_t), \ + .bDescriptorType = CDC_CS_INTERFACE, \ + .bDescriptorSubtype = CDC_SCS_HEADER, \ + .bcdCDC = 0x0110 \ + }, \ + .mfd = { \ + .bFunctionLength = sizeof(usb_cdc_call_mgmt_desc_t), \ + .bDescriptorType = CDC_CS_INTERFACE, \ + .bDescriptorSubtype = CDC_SCS_CALL_MGMT, \ + .bmCapabilities = CDC_CALL_MGMT_SUPPORTED, \ + .bDataInterface = CDC_DATA_INTERFACE \ + }, \ + .acmd = { \ + .bFunctionLength = sizeof(usb_cdc_acm_desc_t), \ + .bDescriptorType = CDC_CS_INTERFACE, \ + .bDescriptorSubtype = CDC_SCS_ACM, \ + .bmCapabilities = CDC_ACM_SUPPORT_LINE_REQUESTS \ + }, \ + .ufd = { \ + .bFunctionLength = sizeof(usb_cdc_union_desc_t), \ + .bDescriptorType = CDC_CS_INTERFACE, \ + .bDescriptorSubtype = CDC_SCS_UNION, \ + .bMasterInterface = CDC_STATUS_INTERFACE, \ + .bSlaveInterface0 = CDC_DATA_INTERFACE \ + }, \ + .ep_c = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = CDC_ACM_ENDPOINT | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_INTERRUPT, \ + .wMaxPacketSize = LE16(CDC_ACM_SIZE), \ + .bInterval = CDC_EP_INTERVAL_STATUS \ + }, \ + .iface_d = { \ + .bLength = sizeof(usb_iface_desc_t), \ + .bDescriptorType = USB_DT_INTERFACE, \ + .bInterfaceNumber = CDC_DATA_INTERFACE, \ + .bAlternateSetting = 0, \ + .bNumEndpoints = 2, \ + .bInterfaceClass = CDC_CLASS_DATA, \ + .bInterfaceSubClass = 0, \ + .bInterfaceProtocol = 0, \ + .iInterface = 0 \ + }, \ + .ep_rx = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = CDC_RX_ENDPOINT | USB_EP_DIR_OUT, \ + .bmAttributes = USB_EP_TYPE_BULK, \ + .wMaxPacketSize = LE16(CDC_RX_SIZE), \ + .bInterval = CDC_EP_INTERVAL_DATA \ + }, \ + .ep_tx = { \ + .bLength = sizeof(usb_ep_desc_t), \ + .bDescriptorType = USB_DT_ENDPOINT, \ + .bEndpointAddress = CDC_TX_ENDPOINT | USB_EP_DIR_IN, \ + .bmAttributes = USB_EP_TYPE_BULK, \ + .wMaxPacketSize = LE16(CDC_TX_SIZE), \ + .bInterval = CDC_EP_INTERVAL_DATA \ + } \ +} + +// clang-format on + +COMPILER_PACK_RESET() + +#endif // VIRTSER_ENABLE + +// ********************************************************************** +// CONFIGURATION Descriptor structure and content +// ********************************************************************** +COMPILER_PACK_SET(1) + +typedef struct { + usb_conf_desc_t conf; + udi_hid_kbd_desc_t hid_kbd; +#ifdef MOUSE_ENABLE + udi_hid_mou_desc_t hid_mou; +#endif +#ifdef EXTRAKEY_ENABLE + udi_hid_exk_desc_t hid_exk; +#endif +#ifdef RAW_ENABLE + udi_hid_raw_desc_t hid_raw; +#endif +#ifdef CONSOLE_ENABLE + udi_hid_con_desc_t hid_con; +#endif +#ifdef NKRO_ENABLE + udi_hid_nkro_desc_t hid_nkro; +#endif +#ifdef MIDI_ENABLE + udi_hid_midi_desc_t hid_midi; +#endif +#ifdef VIRTSER_ENABLE + udi_cdc_desc_t cdc_serial; +#endif +} udc_desc_t; + +COMPILER_PACK_RESET() + +#endif //_UDI_DEVICE_CONF_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h new file mode 100644 index 0000000000..47bd02c074 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h @@ -0,0 +1,31 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _UDI_DEVICE_EPSIZE_H_ +#define _UDI_DEVICE_EPSIZE_H_ + +#define KEYBOARD_EPSIZE 8 +#define MOUSE_EPSIZE 16 +#define EXTRAKEY_EPSIZE 8 +#define RAW_EPSIZE 32 +#define CONSOLE_EPSIZE 32 +#define NKRO_EPSIZE 32 +#define MIDI_STREAM_EPSIZE 64 +#define CDC_NOTIFICATION_EPSIZE 8 +#define CDC_EPSIZE 16 + +#endif //_UDI_DEVICE_EPSIZE_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid.c b/tmk_core/protocol/arm_atsam/usb/udi_hid.c new file mode 100644 index 0000000000..73e384a039 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid.c @@ -0,0 +1,148 @@ +/** + * \file + * + * \brief USB Device Human Interface Device (HID) interface. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udd.h" +#include "udc.h" +#include "udi_hid.h" + +/** + * \ingroup udi_hid_group + * \defgroup udi_hid_group_internal Implementation of HID common library + * @{ + */ + +/** + * \brief Send the specific descriptors requested by SETUP request + * + * \retval true if the descriptor is supported + */ +static bool udi_hid_reqstdifaceget_descriptor(uint8_t *report_desc); + +bool udi_hid_setup(uint8_t *rate, uint8_t *protocol, uint8_t *report_desc, bool (*setup_report)(void)) { + if (Udd_setup_is_in()) { + // Requests Interface GET + if (Udd_setup_type() == USB_REQ_TYPE_STANDARD) { + // Requests Standard Interface Get + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_GET_DESCRIPTOR: + return udi_hid_reqstdifaceget_descriptor(report_desc); + } + } + if (Udd_setup_type() == USB_REQ_TYPE_CLASS) { + // Requests Class Interface Get + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_HID_GET_REPORT: + return setup_report(); + + case USB_REQ_HID_GET_IDLE: + udd_g_ctrlreq.payload = rate; + udd_g_ctrlreq.payload_size = 1; + return true; + + case USB_REQ_HID_GET_PROTOCOL: + udd_g_ctrlreq.payload = protocol; + udd_g_ctrlreq.payload_size = 1; + return true; + } + } + } + if (Udd_setup_is_out()) { + // Requests Interface SET + if (Udd_setup_type() == USB_REQ_TYPE_CLASS) { + // Requests Class Interface Set + switch (udd_g_ctrlreq.req.bRequest) { + case USB_REQ_HID_SET_REPORT: + return setup_report(); + + case USB_REQ_HID_SET_IDLE: + *rate = udd_g_ctrlreq.req.wValue >> 8; + return true; + + case USB_REQ_HID_SET_PROTOCOL: + if (0 != udd_g_ctrlreq.req.wLength) return false; + *protocol = udd_g_ctrlreq.req.wValue; + return true; + } + } + } + return false; // Request not supported +} + +//--------------------------------------------- +//------- Internal routines + +static bool udi_hid_reqstdifaceget_descriptor(uint8_t *report_desc) { + usb_hid_descriptor_t UDC_DESC_STORAGE *ptr_hid_desc; + + // Get the USB descriptor which is located after the interface descriptor + // This descriptor must be the HID descriptor + ptr_hid_desc = (usb_hid_descriptor_t UDC_DESC_STORAGE *)((uint8_t *)udc_get_interface_desc() + sizeof(usb_iface_desc_t)); + if (USB_DT_HID != ptr_hid_desc->bDescriptorType) return false; + + // The SETUP request can ask for: + // - an USB_DT_HID descriptor + // - or USB_DT_HID_REPORT descriptor + // - or USB_DT_HID_PHYSICAL descriptor + if (USB_DT_HID == (uint8_t)(udd_g_ctrlreq.req.wValue >> 8)) { + // USB_DT_HID descriptor requested then send it + udd_g_ctrlreq.payload = (uint8_t *)ptr_hid_desc; + udd_g_ctrlreq.payload_size = min(udd_g_ctrlreq.req.wLength, ptr_hid_desc->bLength); + return true; + } + // The HID_X descriptor requested must correspond to report type + // included in the HID descriptor + if (ptr_hid_desc->bRDescriptorType == (uint8_t)(udd_g_ctrlreq.req.wValue >> 8)) { + // Send HID Report descriptor given by high level + udd_g_ctrlreq.payload = report_desc; + udd_g_ctrlreq.payload_size = min(udd_g_ctrlreq.req.wLength, le16_to_cpu(ptr_hid_desc->wDescriptorLength)); + return true; + } + return false; +} + +//@} diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid.h b/tmk_core/protocol/arm_atsam/usb/udi_hid.h new file mode 100644 index 0000000000..a08b7db744 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid.h @@ -0,0 +1,85 @@ +/** + * \file + * + * \brief USB Device Human Interface Device (HID) interface definitions. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDI_HID_H_ +#define _UDI_HID_H_ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "usb_protocol_hid.h" +#include "udd.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \ingroup udi_group + * \defgroup udi_hid_group USB Device Interface (UDI) for Human Interface Device (HID) + * + * Common library for all Human Interface Device (HID) implementation. + * + * @{ + */ + +/** + * \brief Decode HID setup request + * + * \param rate Pointer on rate of current HID interface + * \param protocol Pointer on protocol of current HID interface + * \param report_desc Pointer on report descriptor of current HID interface + * \param set_report Pointer on set_report callback of current HID interface + * + * \return \c 1 if function was successfully done, otherwise \c 0. + */ +bool udi_hid_setup(uint8_t *rate, uint8_t *protocol, uint8_t *report_desc, bool (*setup_report)(void)); + +//@} + +#ifdef __cplusplus +} +#endif +#endif // _UDI_HID_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c new file mode 100644 index 0000000000..bf190b1f18 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c @@ -0,0 +1,861 @@ +/** + * \file + * + * \brief USB Device Human Interface Device (HID) keyboard interface. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#include "samd51j18a.h" +#include "d51_util.h" +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udd.h" +#include "udc.h" +#include "udi_device_conf.h" +#include "udi_hid.h" +#include "udi_hid_kbd.h" +#include +#include "report.h" +#include "usb_descriptor_common.h" + +//*************************************************************************** +// KBD +//*************************************************************************** +bool udi_hid_kbd_enable(void); +void udi_hid_kbd_disable(void); +bool udi_hid_kbd_setup(void); +uint8_t udi_hid_kbd_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_kbd = { + .enable = (bool (*)(void))udi_hid_kbd_enable, + .disable = (void (*)(void))udi_hid_kbd_disable, + .setup = (bool (*)(void))udi_hid_kbd_setup, + .getsetting = (uint8_t(*)(void))udi_hid_kbd_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_kbd_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_kbd_protocol; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_kbd_report_set; + +bool udi_hid_kbd_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_kbd_report[UDI_HID_KBD_REPORT_SIZE]; + +volatile bool udi_hid_kbd_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_kbd_report_trans[UDI_HID_KBD_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_kbd_report_desc_t udi_hid_kbd_report_desc = {{ + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x06, // Usage (Keyboard) + 0xA1, 0x01, // Collection (Application) + // Modifiers (8 bits) + 0x05, 0x07, // Usage Page (Keyboard) + 0x19, 0xE0, // Usage Minimum (Keyboard Left Control) + 0x29, 0xE7, // Usage Maximum (Keyboard Right GUI) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x08, // Report Count (8) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Reserved (1 byte) + 0x81, 0x01, // Input (Constant) + // Keycodes (6 bytes) + 0x19, 0x00, // Usage Minimum (0) + 0x29, 0xFF, // Usage Maximum (255) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0xFF, // Logical Maximum (255) + 0x95, 0x06, // Report Count (6) + 0x75, 0x08, // Report Size (8) + 0x81, 0x00, // Input (Data, Array, Absolute) + + // Status LEDs (5 bits) + 0x05, 0x08, // Usage Page (LED) + 0x19, 0x01, // Usage Minimum (Num Lock) + 0x29, 0x05, // Usage Maximum (Kana) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x05, // Report Count (5) + 0x75, 0x01, // Report Size (1) + 0x91, 0x02, // Output (Data, Variable, Absolute) + // LED padding (3 bits) + 0x95, 0x03, // Report Count (3) + 0x91, 0x01, // Output (Constant) + 0xC0 // End Collection +}}; + +static bool udi_hid_kbd_setreport(void); + +static void udi_hid_kbd_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); + +static void udi_hid_kbd_setreport_valid(void); + +bool udi_hid_kbd_enable(void) { + // Initialize internal values + udi_hid_kbd_rate = 0; + udi_hid_kbd_protocol = 0; + udi_hid_kbd_b_report_trans_ongoing = false; + memset(udi_hid_kbd_report, 0, UDI_HID_KBD_REPORT_SIZE); + udi_hid_kbd_b_report_valid = false; + return UDI_HID_KBD_ENABLE_EXT(); +} + +void udi_hid_kbd_disable(void) { + UDI_HID_KBD_DISABLE_EXT(); +} + +bool udi_hid_kbd_setup(void) { + return udi_hid_setup(&udi_hid_kbd_rate, &udi_hid_kbd_protocol, (uint8_t *)&udi_hid_kbd_report_desc, udi_hid_kbd_setreport); +} + +uint8_t udi_hid_kbd_getsetting(void) { + return 0; +} + +static bool udi_hid_kbd_setreport(void) { + if ((USB_HID_REPORT_TYPE_OUTPUT == (udd_g_ctrlreq.req.wValue >> 8)) && (0 == (0xFF & udd_g_ctrlreq.req.wValue)) && (1 == udd_g_ctrlreq.req.wLength)) { + // Report OUT type on report ID 0 from USB Host + udd_g_ctrlreq.payload = &udi_hid_kbd_report_set; + udd_g_ctrlreq.callback = udi_hid_kbd_setreport_valid; + udd_g_ctrlreq.payload_size = 1; + return true; + } + return false; +} + +bool udi_hid_kbd_send_report(void) { + if (!main_b_kbd_enable) { + return false; + } + + if (udi_hid_kbd_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_kbd_report_trans, udi_hid_kbd_report, UDI_HID_KBD_REPORT_SIZE); + udi_hid_kbd_b_report_valid = false; + udi_hid_kbd_b_report_trans_ongoing = udd_ep_run(UDI_HID_KBD_EP_IN | USB_EP_DIR_IN, false, udi_hid_kbd_report_trans, UDI_HID_KBD_REPORT_SIZE, udi_hid_kbd_report_sent); + + return udi_hid_kbd_b_report_trans_ongoing; +} + +static void udi_hid_kbd_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_kbd_b_report_trans_ongoing = false; + if (udi_hid_kbd_b_report_valid) { + udi_hid_kbd_send_report(); + } +} + +static void udi_hid_kbd_setreport_valid(void) { + // UDI_HID_KBD_CHANGE_LED(udi_hid_kbd_report_set); +} + +//******************************************************************************************** +// NKRO Keyboard +//******************************************************************************************** +#ifdef NKRO_ENABLE + +bool udi_hid_nkro_enable(void); +void udi_hid_nkro_disable(void); +bool udi_hid_nkro_setup(void); +uint8_t udi_hid_nkro_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_nkro = { + .enable = (bool (*)(void))udi_hid_nkro_enable, + .disable = (void (*)(void))udi_hid_nkro_disable, + .setup = (bool (*)(void))udi_hid_nkro_setup, + .getsetting = (uint8_t(*)(void))udi_hid_nkro_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_nkro_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_nkro_protocol; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_nkro_report_set; + +bool udi_hid_nkro_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_nkro_report[UDI_HID_NKRO_REPORT_SIZE]; + +volatile bool udi_hid_nkro_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_nkro_report_trans[UDI_HID_NKRO_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_nkro_report_desc_t udi_hid_nkro_report_desc = {{ + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x06, // Usage (Keyboard) + 0xA1, 0x01, // Collection (Application) + + // Modifiers (8 bits) + 0x05, 0x07, // Usage Page (Keyboard/Keypad) + 0x19, 0xE0, // Usage Minimum (Keyboard Left Control) + 0x29, 0xE7, // Usage Maximum (Keyboard Right GUI) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x08, // Report Count (8) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Keycodes + 0x05, 0x07, // Usage Page (Keyboard/Keypad) + 0x19, 0x00, // Usage Minimum (0) + 0x29, 0xF7, // Usage Maximum (247) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0xF8, // Report Count (248) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute, Bitfield) + + // Status LEDs (5 bits) + 0x05, 0x08, // Usage Page (LED) + 0x19, 0x01, // Usage Minimum (Num Lock) + 0x29, 0x05, // Usage Maximum (Kana) + 0x95, 0x05, // Report Count (5) + 0x75, 0x01, // Report Size (1) + 0x91, 0x02, // Output (Data, Variable, Absolute) + // LED padding (3 bits) + 0x95, 0x01, // Report Count (1) + 0x75, 0x03, // Report Size (3) + 0x91, 0x03, // Output (Constant) + 0xC0 // End Collection +}}; + +static bool udi_hid_nkro_setreport(void); +static void udi_hid_nkro_setreport_valid(void); +static void udi_hid_nkro_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); + +bool udi_hid_nkro_enable(void) { + // Initialize internal values + udi_hid_nkro_rate = 0; + udi_hid_nkro_protocol = 0; + udi_hid_nkro_b_report_trans_ongoing = false; + memset(udi_hid_nkro_report, 0, UDI_HID_NKRO_REPORT_SIZE); + udi_hid_nkro_b_report_valid = false; + return UDI_HID_NKRO_ENABLE_EXT(); +} + +void udi_hid_nkro_disable(void) { + UDI_HID_NKRO_DISABLE_EXT(); +} + +bool udi_hid_nkro_setup(void) { + return udi_hid_setup(&udi_hid_nkro_rate, &udi_hid_nkro_protocol, (uint8_t *)&udi_hid_nkro_report_desc, udi_hid_nkro_setreport); +} + +uint8_t udi_hid_nkro_getsetting(void) { + return 0; +} + +// keyboard receives LED report here +static bool udi_hid_nkro_setreport(void) { + if ((USB_HID_REPORT_TYPE_OUTPUT == (udd_g_ctrlreq.req.wValue >> 8)) && (0 == (0xFF & udd_g_ctrlreq.req.wValue)) && (1 == udd_g_ctrlreq.req.wLength)) { + // Report OUT type on report ID 0 from USB Host + udd_g_ctrlreq.payload = &udi_hid_nkro_report_set; + udd_g_ctrlreq.callback = udi_hid_nkro_setreport_valid; // must call routine to transform setreport to LED state + udd_g_ctrlreq.payload_size = 1; + return true; + } + return false; +} + +bool udi_hid_nkro_send_report(void) { + if (!main_b_nkro_enable) { + return false; + } + + if (udi_hid_nkro_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_nkro_report_trans, udi_hid_nkro_report, UDI_HID_NKRO_REPORT_SIZE); + udi_hid_nkro_b_report_valid = false; + udi_hid_nkro_b_report_trans_ongoing = udd_ep_run(UDI_HID_NKRO_EP_IN | USB_EP_DIR_IN, false, udi_hid_nkro_report_trans, UDI_HID_NKRO_REPORT_SIZE, udi_hid_nkro_report_sent); + + return udi_hid_nkro_b_report_trans_ongoing; +} + +static void udi_hid_nkro_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_nkro_b_report_trans_ongoing = false; + if (udi_hid_nkro_b_report_valid) { + udi_hid_nkro_send_report(); + } +} + +static void udi_hid_nkro_setreport_valid(void) { + // UDI_HID_NKRO_CHANGE_LED(udi_hid_nkro_report_set); +} + +#endif // NKRO_ENABLE + +//******************************************************************************************** +// EXK (extra-keys) SYS-CTRL Keyboard +//******************************************************************************************** +#ifdef EXTRAKEY_ENABLE + +bool udi_hid_exk_enable(void); +void udi_hid_exk_disable(void); +bool udi_hid_exk_setup(void); +uint8_t udi_hid_exk_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_exk = { + .enable = (bool (*)(void))udi_hid_exk_enable, + .disable = (void (*)(void))udi_hid_exk_disable, + .setup = (bool (*)(void))udi_hid_exk_setup, + .getsetting = (uint8_t(*)(void))udi_hid_exk_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_exk_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_exk_protocol; + +// COMPILER_WORD_ALIGNED +// uint8_t udi_hid_exk_report_set; + +bool udi_hid_exk_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_exk_report[UDI_HID_EXK_REPORT_SIZE]; + +static bool udi_hid_exk_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_exk_report_trans[UDI_HID_EXK_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_exk_report_desc_t udi_hid_exk_report_desc = {{ + // clang-format off + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x80, // Usage (System Control) + 0xA1, 0x01, // Collection (Application) + 0x85, REPORT_ID_SYSTEM, // Report ID + 0x19, 0x01, // Usage Minimum (Pointer) + 0x2A, 0xB7, 0x00, // Usage Maximum (System Display LCD Autoscale) + 0x15, 0x01, // Logical Minimum + 0x26, 0xB7, 0x00, // Logical Maximum + 0x95, 0x01, // Report Count (1) + 0x75, 0x10, // Report Size (16) + 0x81, 0x00, // Input (Data, Array, Absolute) + 0xC0, // End Collection + + 0x05, 0x0C, // Usage Page (Consumer) + 0x09, 0x01, // Usage (Consumer Control) + 0xA1, 0x01, // Collection (Application) + 0x85, REPORT_ID_CONSUMER, // Report ID + 0x19, 0x01, // Usage Minimum (Consumer Control) + 0x2A, 0xA0, 0x02, // Usage Maximum (AC Desktop Show All Applications) + 0x15, 0x01, // Logical Minimum + 0x26, 0xA0, 0x02, // Logical Maximum + 0x95, 0x01, // Report Count (1) + 0x75, 0x10, // Report Size (16) + 0x81, 0x00, // Input (Data, Array, Absolute) + 0xC0 // End Collection + //clang-format on +}}; + +static void udi_hid_exk_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); + +bool udi_hid_exk_enable(void) { + // Initialize internal values + udi_hid_exk_rate = 0; + udi_hid_exk_protocol = 0; + udi_hid_exk_b_report_trans_ongoing = false; + memset(udi_hid_exk_report, 0, UDI_HID_EXK_REPORT_SIZE); + udi_hid_exk_b_report_valid = false; + return UDI_HID_EXK_ENABLE_EXT(); +} + +void udi_hid_exk_disable(void) { UDI_HID_EXK_DISABLE_EXT(); } + +bool udi_hid_exk_setup(void) { return udi_hid_setup(&udi_hid_exk_rate, &udi_hid_exk_protocol, (uint8_t *)&udi_hid_exk_report_desc, NULL); } + +uint8_t udi_hid_exk_getsetting(void) { return 0; } + +bool udi_hid_exk_send_report(void) { + if (!main_b_exk_enable) { + return false; + } + + if (udi_hid_exk_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_exk_report_trans, udi_hid_exk_report, UDI_HID_EXK_REPORT_SIZE); + udi_hid_exk_b_report_valid = false; + udi_hid_exk_b_report_trans_ongoing = udd_ep_run(UDI_HID_EXK_EP_IN | USB_EP_DIR_IN, false, udi_hid_exk_report_trans, UDI_HID_EXK_REPORT_SIZE, udi_hid_exk_report_sent); + + return udi_hid_exk_b_report_trans_ongoing; +} + +static void udi_hid_exk_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_exk_b_report_trans_ongoing = false; + if (udi_hid_exk_b_report_valid) { + udi_hid_exk_send_report(); + } +} + +#endif // EXTRAKEY_ENABLE + +//******************************************************************************************** +// MOU Mouse +//******************************************************************************************** +#ifdef MOUSE_ENABLE + +bool udi_hid_mou_enable(void); +void udi_hid_mou_disable(void); +bool udi_hid_mou_setup(void); +uint8_t udi_hid_mou_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_mou = { + .enable = (bool (*)(void))udi_hid_mou_enable, + .disable = (void (*)(void))udi_hid_mou_disable, + .setup = (bool (*)(void))udi_hid_mou_setup, + .getsetting = (uint8_t(*)(void))udi_hid_mou_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_mou_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_mou_protocol; + +// COMPILER_WORD_ALIGNED +// uint8_t udi_hid_mou_report_set; //No set report + +bool udi_hid_mou_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_mou_report[UDI_HID_MOU_REPORT_SIZE]; + +static bool udi_hid_mou_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_mou_report_trans[UDI_HID_MOU_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_mou_report_desc_t udi_hid_mou_report_desc = {{ + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x02, // Usage (Mouse) + 0xA1, 0x01, // Collection (Application) + 0x09, 0x01, // Usage (Pointer) + 0xA1, 0x00, // Collection (Physical) + // Buttons (5 bits) + 0x05, 0x09, // Usage Page (Button) + 0x19, 0x01, // Usage Minimum (Button 1) + 0x29, 0x05, // Usage Maximun (Button 5) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x05, // Report Count (5) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Button padding (3 bits) + 0x95, 0x01, // Report Count (1) + 0x75, 0x03, // Report Size (3) + 0x81, 0x01, // Input (Constant) + + // X/Y position (2 bytes) + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x30, // Usage (X) + 0x09, 0x31, // Usage (Y) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) + 0x95, 0x02, // Report Count (2) + 0x75, 0x08, // Report Size (8) + 0x81, 0x06, // Input (Data, Variable, Relative) + + // Vertical wheel (1 byte) + 0x09, 0x38, // Usage (Wheel) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) + 0x95, 0x01, // Report Count (1) + 0x75, 0x08, // Report Size (8) + 0x81, 0x06, // Input (Data, Variable, Relative) + + // Horizontal wheel (1 byte) + 0x05, 0x0C, // Usage Page (Consumer) + 0x0A, 0x38, 0x02, // Usage (AC Pan) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) + 0x95, 0x01, // Report Count (1) + 0x75, 0x08, // Report Size (8) + 0x81, 0x06, // Input (Data, Variable, Relative) + 0xC0, // End Collection + 0xC0 // End Collection +}}; + +static void udi_hid_mou_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); + +bool udi_hid_mou_enable(void) { + // Initialize internal values + udi_hid_mou_rate = 0; + udi_hid_mou_protocol = 0; + udi_hid_mou_b_report_trans_ongoing = false; + memset(udi_hid_mou_report, 0, UDI_HID_MOU_REPORT_SIZE); + udi_hid_mou_b_report_valid = false; + return UDI_HID_MOU_ENABLE_EXT(); +} + +void udi_hid_mou_disable(void) { UDI_HID_MOU_DISABLE_EXT(); } + +bool udi_hid_mou_setup(void) { return udi_hid_setup(&udi_hid_mou_rate, &udi_hid_mou_protocol, (uint8_t *)&udi_hid_mou_report_desc, NULL); } + +uint8_t udi_hid_mou_getsetting(void) { return 0; } + +bool udi_hid_mou_send_report(void) { + if (!main_b_mou_enable) { + return false; + } + + if (udi_hid_mou_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_mou_report_trans, udi_hid_mou_report, UDI_HID_MOU_REPORT_SIZE); + udi_hid_mou_b_report_valid = false; + udi_hid_mou_b_report_trans_ongoing = udd_ep_run(UDI_HID_MOU_EP_IN | USB_EP_DIR_IN, false, udi_hid_mou_report_trans, UDI_HID_MOU_REPORT_SIZE, udi_hid_mou_report_sent); + + return udi_hid_mou_b_report_trans_ongoing; +} + +static void udi_hid_mou_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_mou_b_report_trans_ongoing = false; + if (udi_hid_mou_b_report_valid) { + udi_hid_mou_send_report(); + } +} + +#endif // MOUSE_ENABLE + +//******************************************************************************************** +// RAW +//******************************************************************************************** +#ifdef RAW_ENABLE + +bool udi_hid_raw_enable(void); +void udi_hid_raw_disable(void); +bool udi_hid_raw_setup(void); +uint8_t udi_hid_raw_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_raw = { + .enable = (bool (*)(void))udi_hid_raw_enable, + .disable = (void (*)(void))udi_hid_raw_disable, + .setup = (bool (*)(void))udi_hid_raw_setup, + .getsetting = (uint8_t(*)(void))udi_hid_raw_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_raw_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_raw_protocol; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_raw_report_set[UDI_HID_RAW_REPORT_SIZE]; + +static bool udi_hid_raw_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_raw_report[UDI_HID_RAW_REPORT_SIZE]; + +static bool udi_hid_raw_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_raw_report_trans[UDI_HID_RAW_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_raw_report_recv[UDI_HID_RAW_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_raw_report_desc_t udi_hid_raw_report_desc = {{ + 0x06, HID_VALUE_16(RAW_USAGE_PAGE), // Usage Page (Vendor Defined) + 0x09, RAW_USAGE_ID, // Usage (Vendor Defined) + 0xA1, 0x01, // Collection (Application) + 0x75, 0x08, // Report Size (8) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0xFF, // Logical Maximum (255) + // Data to host + 0x09, 0x62, // Usage (Vendor Defined) + 0x95, RAW_EPSIZE, // Report Count + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Data from host + 0x09, 0x63, // Usage (Vendor Defined) + 0x95, RAW_EPSIZE, // Report Count + 0x91, 0x02, // Output (Data, Variable, Absolute) + 0xC0 // End Collection +}}; + +static bool udi_hid_raw_setreport(void); +static void udi_hid_raw_setreport_valid(void); + +static void udi_hid_raw_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); +static void udi_hid_raw_report_rcvd(udd_ep_status_t status, iram_size_t nb_rcvd, udd_ep_id_t ep); + +bool udi_hid_raw_enable(void) { + // Initialize internal values + udi_hid_raw_rate = 0; + udi_hid_raw_protocol = 0; + udi_hid_raw_b_report_trans_ongoing = false; + memset(udi_hid_raw_report, 0, UDI_HID_RAW_REPORT_SIZE); + udi_hid_raw_b_report_valid = false; + return UDI_HID_RAW_ENABLE_EXT(); +} + +void udi_hid_raw_disable(void) { UDI_HID_RAW_DISABLE_EXT(); } + +bool udi_hid_raw_setup(void) { return udi_hid_setup(&udi_hid_raw_rate, &udi_hid_raw_protocol, (uint8_t *)&udi_hid_raw_report_desc, udi_hid_raw_setreport); } + +uint8_t udi_hid_raw_getsetting(void) { return 0; } + +static bool udi_hid_raw_setreport(void) { + if ((USB_HID_REPORT_TYPE_OUTPUT == (udd_g_ctrlreq.req.wValue >> 8)) && (0 == (0xFF & udd_g_ctrlreq.req.wValue)) && (UDI_HID_RAW_REPORT_SIZE == udd_g_ctrlreq.req.wLength)) { + // Report OUT type on report ID 0 from USB Host + udd_g_ctrlreq.payload = udi_hid_raw_report_set; + udd_g_ctrlreq.callback = udi_hid_raw_setreport_valid; // must call routine to transform setreport to LED state + udd_g_ctrlreq.payload_size = UDI_HID_RAW_REPORT_SIZE; + return true; + } + return false; +} + +bool udi_hid_raw_send_report(void) { + if (!main_b_raw_enable) { + return false; + } + + if (udi_hid_raw_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_raw_report_trans, udi_hid_raw_report, UDI_HID_RAW_REPORT_SIZE); + udi_hid_raw_b_report_valid = false; + udi_hid_raw_b_report_trans_ongoing = udd_ep_run(UDI_HID_RAW_EP_IN | USB_EP_DIR_IN, false, udi_hid_raw_report_trans, UDI_HID_RAW_REPORT_SIZE, udi_hid_raw_report_sent); + + return udi_hid_raw_b_report_trans_ongoing; +} + +static void udi_hid_raw_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_raw_b_report_trans_ongoing = false; + if (udi_hid_raw_b_report_valid) { + udi_hid_raw_send_report(); + } +} + +static void udi_hid_raw_setreport_valid(void) {} + +void raw_hid_send(uint8_t *data, uint8_t length) { + if (main_b_raw_enable && !udi_hid_raw_b_report_trans_ongoing && length == UDI_HID_RAW_REPORT_SIZE) { + memcpy(udi_hid_raw_report, data, UDI_HID_RAW_REPORT_SIZE); + udi_hid_raw_send_report(); + } +} + +bool udi_hid_raw_receive_report(void) { + if (!main_b_raw_enable) { + return false; + } + + return udd_ep_run(UDI_HID_RAW_EP_OUT | USB_EP_DIR_OUT, false, udi_hid_raw_report_recv, UDI_HID_RAW_REPORT_SIZE, udi_hid_raw_report_rcvd); +} + +static void udi_hid_raw_report_rcvd(udd_ep_status_t status, iram_size_t nb_rcvd, udd_ep_id_t ep) { + UNUSED(ep); + + if (status == UDD_EP_TRANSFER_OK && nb_rcvd == UDI_HID_RAW_REPORT_SIZE) { + UDI_HID_RAW_RECEIVE(udi_hid_raw_report_recv, UDI_HID_RAW_REPORT_SIZE); + } +} + +#endif // RAW_ENABLE + +//******************************************************************************************** +// CON +//******************************************************************************************** +#ifdef CONSOLE_ENABLE + +bool udi_hid_con_enable(void); +void udi_hid_con_disable(void); +bool udi_hid_con_setup(void); +uint8_t udi_hid_con_getsetting(void); + +UDC_DESC_STORAGE udi_api_t udi_api_hid_con = { + .enable = (bool (*)(void))udi_hid_con_enable, + .disable = (void (*)(void))udi_hid_con_disable, + .setup = (bool (*)(void))udi_hid_con_setup, + .getsetting = (uint8_t(*)(void))udi_hid_con_getsetting, + .sof_notify = NULL, +}; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_con_rate; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_con_protocol; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_con_report_set[UDI_HID_CON_REPORT_SIZE]; + +bool udi_hid_con_b_report_valid; + +COMPILER_WORD_ALIGNED +uint8_t udi_hid_con_report[UDI_HID_CON_REPORT_SIZE]; + +volatile bool udi_hid_con_b_report_trans_ongoing; + +COMPILER_WORD_ALIGNED +static uint8_t udi_hid_con_report_trans[UDI_HID_CON_REPORT_SIZE]; + +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udi_hid_con_report_desc_t udi_hid_con_report_desc = {{ + 0x06, 0x31, 0xFF, // Usage Page (Vendor Defined - PJRC Teensy compatible) + 0x09, 0x74, // Usage (Vendor Defined - PJRC Teensy compatible) + 0xA1, 0x01, // Collection (Application) + // Data to host + 0x09, 0x75, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0x00) + 0x26, 0xFF, 0x00, // Logical Maximum (0x00FF) + 0x95, CONSOLE_EPSIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Data from host + 0x09, 0x76, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0x00) + 0x26, 0xFF, 0x00, // Logical Maximum (0x00FF) + 0x95, CONSOLE_EPSIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x91, 0x02, // Output (Data) + 0xC0 // End Collection +}}; + +static bool udi_hid_con_setreport(void); +static void udi_hid_con_setreport_valid(void); + +static void udi_hid_con_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep); + +bool udi_hid_con_enable(void) { + // Initialize internal values + udi_hid_con_rate = 0; + udi_hid_con_protocol = 0; + udi_hid_con_b_report_trans_ongoing = false; + memset(udi_hid_con_report, 0, UDI_HID_CON_REPORT_SIZE); + udi_hid_con_b_report_valid = false; + return UDI_HID_CON_ENABLE_EXT(); +} + +void udi_hid_con_disable(void) { UDI_HID_CON_DISABLE_EXT(); } + +bool udi_hid_con_setup(void) { return udi_hid_setup(&udi_hid_con_rate, &udi_hid_con_protocol, (uint8_t *)&udi_hid_con_report_desc, udi_hid_con_setreport); } + +uint8_t udi_hid_con_getsetting(void) { return 0; } + +static bool udi_hid_con_setreport(void) { + if ((USB_HID_REPORT_TYPE_OUTPUT == (udd_g_ctrlreq.req.wValue >> 8)) && (0 == (0xFF & udd_g_ctrlreq.req.wValue)) && (UDI_HID_CON_REPORT_SIZE == udd_g_ctrlreq.req.wLength)) { + udd_g_ctrlreq.payload = udi_hid_con_report_set; + udd_g_ctrlreq.callback = udi_hid_con_setreport_valid; + udd_g_ctrlreq.payload_size = UDI_HID_CON_REPORT_SIZE; + return true; + } + return false; +} + +bool udi_hid_con_send_report(void) { + if (!main_b_con_enable) { + return false; + } + + if (udi_hid_con_b_report_trans_ongoing) { + return false; + } + + memcpy(udi_hid_con_report_trans, udi_hid_con_report, UDI_HID_CON_REPORT_SIZE); + udi_hid_con_b_report_valid = false; + udi_hid_con_b_report_trans_ongoing = udd_ep_run(UDI_HID_CON_EP_IN | USB_EP_DIR_IN, false, udi_hid_con_report_trans, UDI_HID_CON_REPORT_SIZE, udi_hid_con_report_sent); + + return udi_hid_con_b_report_trans_ongoing; +} + +static void udi_hid_con_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep) { + UNUSED(status); + UNUSED(nb_sent); + UNUSED(ep); + udi_hid_con_b_report_trans_ongoing = false; + if (udi_hid_con_b_report_valid) { + udi_hid_con_send_report(); + } +} + +static void udi_hid_con_setreport_valid(void) {} + +#endif // CONSOLE_ENABLE diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.h b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.h new file mode 100644 index 0000000000..e17538fa70 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.h @@ -0,0 +1,120 @@ +/** + * \file + * + * \brief USB Device Human Interface Device (HID) keyboard interface. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDC_HID_KBD_H_ +#define _UDC_HID_KBD_H_ + +#include "udc_desc.h" +#include "udi.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//****************************************************************************** +// Keyboard interface definitions +//****************************************************************************** +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_kbd; +extern bool udi_hid_kbd_b_report_valid; +extern volatile bool udi_hid_kbd_b_report_trans_ongoing; +extern uint8_t udi_hid_kbd_report_set; +bool udi_hid_kbd_send_report(void); + +//******************************************************************************************** +// NKRO Keyboard +//******************************************************************************************** +#ifdef NKRO_ENABLE +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_nkro; +extern bool udi_hid_nkro_b_report_valid; +extern volatile bool udi_hid_nkro_b_report_trans_ongoing; +bool udi_hid_nkro_send_report(void); +#endif // NKRO_ENABLE + +//******************************************************************************************** +// SYS-CTRL interface +//******************************************************************************************** +#ifdef EXTRAKEY_ENABLE +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_exk; +extern bool udi_hid_exk_b_report_valid; +bool udi_hid_exk_send_report(void); +#endif // EXTRAKEY_ENABLE + +//******************************************************************************************** +// CON Console +//******************************************************************************************** +#ifdef CONSOLE_ENABLE +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_con; +extern bool udi_hid_con_b_report_valid; +extern uint8_t udi_hid_con_report_set[UDI_HID_CON_REPORT_SIZE]; +extern volatile bool udi_hid_con_b_report_trans_ongoing; +bool udi_hid_con_send_report(void); +#endif // CONSOLE_ENABLE + +//******************************************************************************************** +// MOU Mouse +//******************************************************************************************** +#ifdef MOUSE_ENABLE +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_mou; +extern bool udi_hid_mou_b_report_valid; +bool udi_hid_mou_send_report(void); +#endif // MOUSE_ENABLE + +//******************************************************************************************** +// RAW Raw +//******************************************************************************************** +#ifdef RAW_ENABLE +extern UDC_DESC_STORAGE udi_api_t udi_api_hid_raw; +bool udi_hid_raw_send_report(void); +bool udi_hid_raw_receive_report(void); +#endif // RAW_ENABLE + +//@} + +#ifdef __cplusplus +} +#endif + +#endif // _UDC_HID_KBD_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_conf.h b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_conf.h new file mode 100644 index 0000000000..db5db17ed5 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_conf.h @@ -0,0 +1,60 @@ +/** + * \file + * + * \brief Default HID keyboard configuration for a USB Device + * with a single interface HID keyboard + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UDI_HID_KBD_CONF_H_ +#define _UDI_HID_KBD_CONF_H_ + +/** + * \addtogroup udi_hid_keyboard_group_single_desc + * @{ + */ + +#include "udi_device_conf.h" + +#include "udi_hid_kbd.h" + +#endif // _UDI_HID_KBD_CONF_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c new file mode 100644 index 0000000000..2a60868ed2 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c @@ -0,0 +1,179 @@ +/** + * \file + * + * \brief Default descriptors for a USB Device + * with a single interface HID keyboard + * + * Copyright (c) 2009-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#include "conf_usb.h" +#include "usb_protocol.h" +#include "udc_desc.h" +#include "udi_device_conf.h" +#include "udi_hid_kbd.h" +#include "udi_cdc.h" + +/** + * \ingroup udi_hid_keyboard_group + * \defgroup udi_hid_keyboard_group_single_desc USB device descriptors for a single interface + * + * The following structures provide the USB device descriptors required + * for USB Device with a single interface HID keyboard. + * + * It is ready to use and do not require more definition. + * @{ + */ + +//! USB Device Descriptor +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE usb_dev_desc_t udc_device_desc = {.bLength = sizeof(usb_dev_desc_t), + .bDescriptorType = USB_DT_DEVICE, + .bcdUSB = LE16(USB_V2_0), + .bDeviceClass = DEVICE_CLASS, + .bDeviceSubClass = DEVICE_SUBCLASS, + .bDeviceProtocol = DEVICE_PROTOCOL, + .bMaxPacketSize0 = USB_DEVICE_EP_CTRL_SIZE, + .idVendor = LE16(USB_DEVICE_VENDOR_ID), + .idProduct = LE16(USB_DEVICE_PRODUCT_ID), + .bcdDevice = LE16(USB_DEVICE_VERSION), +#ifdef USB_DEVICE_MANUFACTURE_NAME + .iManufacturer = 1, +#else + .iManufacturer = 0, // No manufacture string +#endif +#ifdef USB_DEVICE_PRODUCT_NAME + .iProduct = 2, +#else + .iProduct = 0, // No product string +#endif +#if (defined USB_DEVICE_SERIAL_NAME || defined USB_DEVICE_GET_SERIAL_NAME_POINTER) + .iSerialNumber = 3, +#else + .iSerialNumber = 0, // No serial string +#endif + .bNumConfigurations = 1}; + +#if 0 +# ifdef USB_DEVICE_HS_SUPPORT +//! USB Device Qualifier Descriptor for HS +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE usb_dev_qual_desc_t udc_device_qual = { + .bLength = sizeof(usb_dev_qual_desc_t), + .bDescriptorType = USB_DT_DEVICE_QUALIFIER, + .bcdUSB = LE16(USB_V2_0), + .bDeviceClass = 0, + .bDeviceSubClass = 0, + .bDeviceProtocol = 0, + .bMaxPacketSize0 = USB_DEVICE_EP_CTRL_SIZE, + .bNumConfigurations = 1 +}; +# endif +#endif + +//! USB Device Configuration Descriptor filled for FS and HS +COMPILER_WORD_ALIGNED +UDC_DESC_STORAGE udc_desc_t udc_desc = { + .conf.bLength = sizeof(usb_conf_desc_t), + .conf.bDescriptorType = USB_DT_CONFIGURATION, + .conf.wTotalLength = LE16(sizeof(udc_desc_t)), + .conf.bNumInterfaces = USB_DEVICE_NB_INTERFACE, + .conf.bConfigurationValue = 1, + .conf.iConfiguration = 0, + .conf.bmAttributes = /* USB_CONFIG_ATTR_MUST_SET | */ USB_DEVICE_ATTR, + .conf.bMaxPower = USB_CONFIG_MAX_POWER(USB_DEVICE_POWER), + .hid_kbd = UDI_HID_KBD_DESC, +#ifdef RAW_ENABLE + .hid_raw = UDI_HID_RAW_DESC, +#endif +#ifdef MOUSE_ENABLE + .hid_mou = UDI_HID_MOU_DESC, +#endif +#ifdef EXTRAKEY_ENABLE + .hid_exk = UDI_HID_EXK_DESC, +#endif +#ifdef CONSOLE_ENABLE + .hid_con = UDI_HID_CON_DESC, +#endif +#ifdef NKRO_ENABLE + .hid_nkro = UDI_HID_NKRO_DESC, +#endif +#ifdef VIRTSER_ENABLE + .cdc_serial = CDC_DESCRIPTOR, +#endif +}; + +UDC_DESC_STORAGE udi_api_t *udi_apis[USB_DEVICE_NB_INTERFACE] = { + &udi_api_hid_kbd, +#ifdef RAW_ENABLE + &udi_api_hid_raw, +#endif +#ifdef MOUSE_ENABLE + &udi_api_hid_mou, +#endif +#ifdef EXTRAKEY_ENABLE + &udi_api_hid_exk, +#endif +#ifdef CONSOLE_ENABLE + &udi_api_hid_con, +#endif +#ifdef NKRO_ENABLE + &udi_api_hid_nkro, +#endif +#ifdef VIRTSER_ENABLE + &udi_api_cdc_comm, &udi_api_cdc_data, +#endif +}; + +//! Add UDI with USB Descriptors FS & HS +UDC_DESC_STORAGE udc_config_speed_t udc_config_fshs[1] = {{ + .desc = (usb_conf_desc_t UDC_DESC_STORAGE *)&udc_desc, + .udi_apis = udi_apis, +}}; + +//! Add all information about USB Device in global structure for UDC +UDC_DESC_STORAGE udc_config_t udc_config = { + .confdev_lsfs = &udc_device_desc, + .conf_lsfs = udc_config_fshs, +}; + +//@} +//@} diff --git a/tmk_core/protocol/arm_atsam/usb/ui.c b/tmk_core/protocol/arm_atsam/usb/ui.c new file mode 100644 index 0000000000..f5263d7289 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/ui.c @@ -0,0 +1,83 @@ +/** + * \file + * + * \brief User Interface + * + * Copyright (c) 2014-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef ARM_MATH_CM4 +# define ARM_MATH_CM4 +#endif + +#undef LITTLE_ENDIAN // redefined in samd51j18a.h +#include "samd51j18a.h" +#include "ui.h" + +//! Sequence process running each \c SEQUENCE_PERIOD ms +#define SEQUENCE_PERIOD 150 + +#if 0 +/* Interrupt on "pin change" from push button to do wakeup on USB + * Note: + * This interrupt is enable when the USB host enable remote wakeup feature + * This interrupt wakeup the CPU if this one is in idle mode + */ +static void ui_wakeup_handler(void) +{ + /* It is a wakeup then send wakeup USB */ + udc_remotewakeup(); +} +#endif + +void ui_init(void) {} + +void ui_powerdown(void) {} + +void ui_wakeup_enable(void) {} + +void ui_wakeup_disable(void) {} + +void ui_wakeup(void) {} + +void ui_process(uint16_t framenumber) {} + +void ui_kbd_led(uint8_t value) {} diff --git a/tmk_core/protocol/arm_atsam/usb/ui.h b/tmk_core/protocol/arm_atsam/usb/ui.h new file mode 100644 index 0000000000..d1c767d457 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/ui.h @@ -0,0 +1,76 @@ +/** + * \file + * + * \brief Common User Interface for HID Keyboard application + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _UI_H_ +#define _UI_H_ + +//! \brief Initializes the user interface +void ui_init(void); + +//! \brief Enters the user interface in power down mode +void ui_powerdown(void); + +//! \brief Enables the asynchronous interrupts of the user interface +void ui_wakeup_enable(void); + +//! \brief Disables the asynchronous interrupts of the user interface +void ui_wakeup_disable(void); + +//! \brief Exits the user interface of power down mode +void ui_wakeup(void); + +/*! \brief This process is called each 1ms + * It is called only if the USB interface is enabled. + * + * \param framenumber Current frame number + */ +void ui_process(uint16_t framenumber); + +/*! \brief Turn on or off the keyboard LEDs + */ +void ui_kbd_led(uint8_t value); + +#endif // _UI_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb.c b/tmk_core/protocol/arm_atsam/usb/usb.c new file mode 100644 index 0000000000..1abf0a2f4d --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb.c @@ -0,0 +1,1083 @@ +/** + * \file + * + * \brief SAM USB Driver. + * + * Copyright (C) 2014-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#define DEVICE_MODE_ONLY true +#define SAMD11 DEVICE_MODE_ONLY + +#ifndef ARM_MATH_CM4 +# define ARM_MATH_CM4 +#endif + +#include "compiler.h" +#undef LITTLE_ENDIAN // redefined in samd51j18a.h +#include "samd51j18a.h" +#include +#include +#include "arm_math.h" +#include "status_codes.h" +#include "usb.h" + +/** Fields definition from a LPM TOKEN */ +#define USB_LPM_ATTRIBUT_BLINKSTATE_MASK (0xF << 0) +#define USB_LPM_ATTRIBUT_HIRD_MASK (0xF << 4) +#define USB_LPM_ATTRIBUT_REMOTEWAKE_MASK (1 << 8) +#define USB_LPM_ATTRIBUT_BLINKSTATE(value) ((value & 0xF) << 0) +#define USB_LPM_ATTRIBUT_HIRD(value) ((value & 0xF) << 4) +#define USB_LPM_ATTRIBUT_REMOTEWAKE(value) ((value & 1) << 8) +#define USB_LPM_ATTRIBUT_BLINKSTATE_L1 USB_LPM_ATTRIBUT_BLINKSTATE(1) + +/** + * \brief Mask selecting the index part of an endpoint address + */ +#define USB_EP_ADDR_MASK 0x0f + +/** + * \brief Endpoint transfer direction is IN + */ +#define USB_EP_DIR_IN 0x80 + +/** + * \brief Endpoint transfer direction is OUT + */ +#define USB_EP_DIR_OUT 0x00 + +/** + * \name USB SRAM data containing pipe descriptor table + * The content of the USB SRAM can be : + * - modified by USB hardware interface to update pipe status. + * Thereby, it is read by software. + * - modified by USB software to control pipe. + * Thereby, it is read by hardware. + * This data section is volatile. + * + * @{ + */ +COMPILER_PACK_SET(1) +COMPILER_WORD_ALIGNED +union { + UsbDeviceDescriptor usb_endpoint_table[USB_EPT_NUM]; +} usb_descriptor_table; +COMPILER_PACK_RESET() +/** @} */ + +/** + * \brief Local USB module instance + */ +static struct usb_module *_usb_instances; + +/* Device LPM callback variable */ +static uint32_t device_callback_lpm_wakeup_enable; + +/** + * \brief Device endpoint callback parameter variable, used to transfer info to UDD wrapper layer + */ +static struct usb_endpoint_callback_parameter ep_callback_para; + +/** + * \internal USB Device IRQ Mask Bits Map + */ +static const uint16_t _usb_device_irq_bits[USB_DEVICE_CALLBACK_N] = { + USB_DEVICE_INTFLAG_SOF, USB_DEVICE_INTFLAG_EORST, USB_DEVICE_INTFLAG_WAKEUP | USB_DEVICE_INTFLAG_EORSM | USB_DEVICE_INTFLAG_UPRSM, USB_DEVICE_INTFLAG_RAMACER, USB_DEVICE_INTFLAG_SUSPEND, USB_DEVICE_INTFLAG_LPMNYET, USB_DEVICE_INTFLAG_LPMSUSP, +}; + +/** + * \internal USB Device IRQ Mask Bits Map + */ +static const uint8_t _usb_endpoint_irq_bits[USB_DEVICE_EP_CALLBACK_N] = {USB_DEVICE_EPINTFLAG_TRCPT_Msk, USB_DEVICE_EPINTFLAG_TRFAIL_Msk, USB_DEVICE_EPINTFLAG_RXSTP, USB_DEVICE_EPINTFLAG_STALL_Msk}; + +/** + * \brief Registers a USB device callback + * + * Registers a callback function which is implemented by the user. + * + * \note The callback must be enabled by \ref usb_device_enable_callback, + * in order for the interrupt handler to call it when the conditions for the + * callback type is met. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] callback_type Callback type given by an enum + * \param[in] callback_func Pointer to callback function + * + * \return Status of the registration operation. + * \retval STATUS_OK The callback was registered successfully. + */ +enum status_code usb_device_register_callback(struct usb_module *module_inst, enum usb_device_callback callback_type, usb_device_callback_t callback_func) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(callback_func); + + /* Register callback function */ + module_inst->device_callback[callback_type] = callback_func; + + /* Set the bit corresponding to the callback_type */ + module_inst->device_registered_callback_mask |= _usb_device_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Unregisters a USB device callback + * + * Unregisters an asynchronous callback implemented by the user. Removing it + * from the internal callback registration table. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the de-registration operation. + * \retval STATUS_OK The callback was unregistered successfully. + */ +enum status_code usb_device_unregister_callback(struct usb_module *module_inst, enum usb_device_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + + /* Unregister callback function */ + module_inst->device_callback[callback_type] = NULL; + + /* Clear the bit corresponding to the callback_type */ + module_inst->device_registered_callback_mask &= ~_usb_device_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Enables USB device callback generation for a given type. + * + * Enables asynchronous callbacks for a given logical type. + * This must be called before USB device generate callback events. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the callback enable operation. + * \retval STATUS_OK The callback was enabled successfully. + */ +enum status_code usb_device_enable_callback(struct usb_module *module_inst, enum usb_device_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + /* clear related flag */ + module_inst->hw->DEVICE.INTFLAG.reg = _usb_device_irq_bits[callback_type]; + + /* Enable callback */ + module_inst->device_enabled_callback_mask |= _usb_device_irq_bits[callback_type]; + + module_inst->hw->DEVICE.INTENSET.reg = _usb_device_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Disables USB device callback generation for a given type. + * + * Disables asynchronous callbacks for a given logical type. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the callback disable operation. + * \retval STATUS_OK The callback was disabled successfully. + */ +enum status_code usb_device_disable_callback(struct usb_module *module_inst, enum usb_device_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + /* Disable callback */ + module_inst->device_enabled_callback_mask &= ~_usb_device_irq_bits[callback_type]; + + module_inst->hw->DEVICE.INTENCLR.reg = _usb_device_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Registers a USB device endpoint callback + * + * Registers a callback function which is implemented by the user. + * + * \note The callback must be enabled by \ref usb_device_endpoint_enable_callback, + * in order for the interrupt handler to call it when the conditions for the + * callback type is met. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] ep_num Endpoint to configure + * \param[in] callback_type Callback type given by an enum + * \param[in] callback_func Pointer to callback function + * + * \return Status of the registration operation. + * \retval STATUS_OK The callback was registered successfully. + */ +enum status_code usb_device_endpoint_register_callback(struct usb_module *module_inst, uint8_t ep_num, enum usb_device_endpoint_callback callback_type, usb_device_endpoint_callback_t callback_func) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(ep_num < USB_EPT_NUM); + Assert(callback_func); + + /* Register callback function */ + module_inst->device_endpoint_callback[ep_num][callback_type] = callback_func; + + /* Set the bit corresponding to the callback_type */ + module_inst->device_endpoint_registered_callback_mask[ep_num] |= _usb_endpoint_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Unregisters a USB device endpoint callback + * + * Unregisters an callback implemented by the user. Removing it + * from the internal callback registration table. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] ep_num Endpoint to configure + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the de-registration operation. + * \retval STATUS_OK The callback was unregistered successfully. + */ +enum status_code usb_device_endpoint_unregister_callback(struct usb_module *module_inst, uint8_t ep_num, enum usb_device_endpoint_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(ep_num < USB_EPT_NUM); + + /* Unregister callback function */ + module_inst->device_endpoint_callback[ep_num][callback_type] = NULL; + + /* Clear the bit corresponding to the callback_type */ + module_inst->device_endpoint_registered_callback_mask[ep_num] &= ~_usb_endpoint_irq_bits[callback_type]; + + return STATUS_OK; +} + +/** + * \brief Enables USB device endpoint callback generation for a given type. + * + * Enables callbacks for a given logical type. + * This must be called before USB device pipe generate callback events. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] ep Endpoint to configure + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the callback enable operation. + * \retval STATUS_OK The callback was enabled successfully. + */ +enum status_code usb_device_endpoint_enable_callback(struct usb_module *module_inst, uint8_t ep, enum usb_device_endpoint_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + Assert(ep_num < USB_EPT_NUM); + + /* Enable callback */ + module_inst->device_endpoint_enabled_callback_mask[ep_num] |= _usb_endpoint_irq_bits[callback_type]; + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_TRCPT) { + if (ep_num == 0) { // control endpoint + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRCPT0 | USB_DEVICE_EPINTENSET_TRCPT1; + } else if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRCPT1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRCPT0; + } + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL) { + if (ep_num == 0) { // control endpoint + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRFAIL0 | USB_DEVICE_EPINTENSET_TRFAIL1; + } else if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRFAIL1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_TRFAIL0; + } + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_RXSTP) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_RXSTP; + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_STALL) { + if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_STALL1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENSET.reg = USB_DEVICE_EPINTENSET_STALL0; + } + } + + return STATUS_OK; +} + +/** + * \brief Disables USB device endpoint callback generation for a given type. + * + * Disables callbacks for a given logical type. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] ep Endpoint to configure + * \param[in] callback_type Callback type given by an enum + * + * \return Status of the callback disable operation. + * \retval STATUS_OK The callback was disabled successfully. + */ +enum status_code usb_device_endpoint_disable_callback(struct usb_module *module_inst, uint8_t ep, enum usb_device_endpoint_callback callback_type) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + Assert(ep_num < USB_EPT_NUM); + + /* Enable callback */ + module_inst->device_endpoint_enabled_callback_mask[ep_num] &= ~_usb_endpoint_irq_bits[callback_type]; + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_TRCPT) { + if (ep_num == 0) { // control endpoint + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRCPT0 | USB_DEVICE_EPINTENCLR_TRCPT1; + } else if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRCPT1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRCPT0; + } + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL) { + if (ep_num == 0) { // control endpoint + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRFAIL0 | USB_DEVICE_EPINTENCLR_TRFAIL1; + } else if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRFAIL1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_TRFAIL0; + } + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_RXSTP) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_RXSTP; + } + + if (callback_type == USB_DEVICE_ENDPOINT_CALLBACK_STALL) { + if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_STALL1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTENCLR.reg = USB_DEVICE_EPINTENCLR_STALL0; + } + } + + return STATUS_OK; +} + +/** + * \brief Initializes an USB device endpoint configuration structure to defaults. + * + * Initializes a given USB device endpoint configuration structure to a + * set of known default values. This function should be called on all new + * instances of these configuration structures before being modified by the + * user application. + * + * The default configuration is as follows: + * \li endpoint address is 0 + * \li endpoint size is 8 bytes + * \li auto_zlp is false + * \li endpoint type is control + * + * \param[out] ep_config Configuration structure to initialize to default values + */ +void usb_device_endpoint_get_config_defaults(struct usb_device_endpoint_config *ep_config) { + /* Sanity check arguments */ + Assert(ep_config); + + /* Write default config to config struct */ + ep_config->ep_address = 0; + ep_config->ep_size = USB_ENDPOINT_8_BYTE; + ep_config->auto_zlp = false; + ep_config->ep_type = USB_DEVICE_ENDPOINT_TYPE_CONTROL; +} + +/** + * \brief Writes an USB device endpoint configuration to the hardware module. + * + * Writes out a given configuration of an USB device endpoint + * configuration to the hardware module. If the pipe is already configured, + * the new configuration will replace the existing one. + * + * \param[in] module_inst Pointer to USB software instance struct + * \param[in] ep_config Configuration settings for the endpoint + * + * \return Status of the device endpoint configuration operation + * \retval STATUS_OK The device endpoint was configured successfully + * \retval STATUS_ERR_DENIED The endpoint address is already configured + */ +enum status_code usb_device_endpoint_set_config(struct usb_module *module_inst, struct usb_device_endpoint_config *ep_config) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(ep_config); + + uint8_t ep_num = ep_config->ep_address & USB_EP_ADDR_MASK; + uint8_t ep_bank = (ep_config->ep_address & USB_EP_DIR_IN) ? 1 : 0; + + switch (ep_config->ep_type) { + case USB_DEVICE_ENDPOINT_TYPE_DISABLE: + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE0(0) | USB_DEVICE_EPCFG_EPTYPE1(0); + return STATUS_OK; + + case USB_DEVICE_ENDPOINT_TYPE_CONTROL: + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE0_Msk) == 0 && (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE1_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE0(1) | USB_DEVICE_EPCFG_EPTYPE1(1); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY; + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY; + } else { + return STATUS_ERR_DENIED; + } + if (true == ep_config->auto_zlp) { + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].PCKSIZE.reg |= USB_DEVICE_PCKSIZE_AUTO_ZLP; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.reg |= USB_DEVICE_PCKSIZE_AUTO_ZLP; + } else { + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].PCKSIZE.reg &= ~USB_DEVICE_PCKSIZE_AUTO_ZLP; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.reg &= ~USB_DEVICE_PCKSIZE_AUTO_ZLP; + } + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].PCKSIZE.bit.SIZE = ep_config->ep_size; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.SIZE = ep_config->ep_size; + return STATUS_OK; + + case USB_DEVICE_ENDPOINT_TYPE_ISOCHRONOUS: + if (ep_bank) { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE1_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE1(2); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY; + } else { + return STATUS_ERR_DENIED; + } + } else { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE0_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE0(2); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY; + } else { + return STATUS_ERR_DENIED; + } + } + break; + + case USB_DEVICE_ENDPOINT_TYPE_BULK: + if (ep_bank) { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE1_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE1(3); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY; + } else { + return STATUS_ERR_DENIED; + } + } else { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE0_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE0(3); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY; + } else { + return STATUS_ERR_DENIED; + } + } + break; + + case USB_DEVICE_ENDPOINT_TYPE_INTERRUPT: + if (ep_bank) { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE1_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE1(4); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY; + } else { + return STATUS_ERR_DENIED; + } + } else { + if ((module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg & USB_DEVICE_EPCFG_EPTYPE0_Msk) == 0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.reg |= USB_DEVICE_EPCFG_EPTYPE0(4); + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY; + } else { + return STATUS_ERR_DENIED; + } + } + break; + + default: + break; + } + + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[ep_bank].PCKSIZE.bit.SIZE = ep_config->ep_size; + + if (true == ep_config->auto_zlp) { + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[ep_bank].PCKSIZE.reg |= USB_DEVICE_PCKSIZE_AUTO_ZLP; + } else { + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[ep_bank].PCKSIZE.reg &= ~USB_DEVICE_PCKSIZE_AUTO_ZLP; + } + + return STATUS_OK; +} + +/** + * \brief Check if current endpoint is configured + * + * \param module_inst Pointer to USB software instance struct + * \param ep Endpoint address (direction & number) + * + * \return \c true if endpoint is configured and ready to use + */ +bool usb_device_endpoint_is_configured(struct usb_module *module_inst, uint8_t ep) { + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + uint8_t flag; + + if (ep & USB_EP_DIR_IN) { + flag = (uint8_t)(module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.bit.EPTYPE1); + } else { + flag = (uint8_t)(module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.bit.EPTYPE0); + } + return ((enum usb_device_endpoint_type)(flag) != USB_DEVICE_ENDPOINT_TYPE_DISABLE); +} + +/** + * \brief Abort ongoing job on the endpoint + * + * \param module_inst Pointer to USB software instance struct + * \param ep Endpoint address + */ +void usb_device_endpoint_abort_job(struct usb_module *module_inst, uint8_t ep) { + uint8_t ep_num; + ep_num = ep & USB_EP_ADDR_MASK; + + // Stop transfer + if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY; + // Eventually ack a transfer occur during abort + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY; + // Eventually ack a transfer occur during abort + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT0; + } +} + +/** + * \brief Check if endpoint is halted + * + * \param module_inst Pointer to USB software instance struct + * \param ep Endpoint address + * + * \return \c true if the endpoint is halted + */ +bool usb_device_endpoint_is_halted(struct usb_module *module_inst, uint8_t ep) { + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + if (ep & USB_EP_DIR_IN) { + return (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ1); + } else { + return (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ0); + } +} + +/** + * \brief Halt the endpoint (send STALL) + * + * \param module_inst Pointer to USB software instance struct + * \param ep Endpoint address + */ +void usb_device_endpoint_set_halt(struct usb_module *module_inst, uint8_t ep) { + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + // Stall endpoint + if (ep & USB_EP_DIR_IN) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_STALLRQ1; + } else { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_STALLRQ0; + } +} + +/** + * \brief Clear endpoint halt state + * + * \param module_inst Pointer to USB software instance struct + * \param ep Endpoint address + */ +void usb_device_endpoint_clear_halt(struct usb_module *module_inst, uint8_t ep) { + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + if (ep & USB_EP_DIR_IN) { + if (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ1) { + // Remove stall request + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ1; + if (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_STALL1) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL1; + // The Stall has occurred, then reset data toggle + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSSET_DTGLIN; + } + } + } else { + if (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ0) { + // Remove stall request + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ0; + if (module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_STALL0) { + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL0; + // The Stall has occurred, then reset data toggle + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSSET_DTGLOUT; + } + } + } +} + +/** + * \brief Start write buffer job on a endpoint + * + * \param module_inst Pointer to USB module instance + * \param ep_num Endpoint number + * \param pbuf Pointer to buffer + * \param buf_size Size of buffer + * + * \return Status of procedure + * \retval STATUS_OK Job started successfully + * \retval STATUS_ERR_DENIED Endpoint is not ready + */ +enum status_code usb_device_endpoint_write_buffer_job(struct usb_module *module_inst, uint8_t ep_num, uint8_t *pbuf, uint32_t buf_size) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + Assert(ep_num < USB_EPT_NUM); + + uint8_t flag; + flag = (uint8_t)(module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.bit.EPTYPE1); + if ((enum usb_device_endpoint_type)(flag) == USB_DEVICE_ENDPOINT_TYPE_DISABLE) { + return STATUS_ERR_DENIED; + }; + + /* get endpoint configuration from setting register */ + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].ADDR.reg = (uint32_t)pbuf; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.MULTI_PACKET_SIZE = 0; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.BYTE_COUNT = buf_size; + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK1RDY; + + return STATUS_OK; +} + +/** + * \brief Start read buffer job on a endpoint + * + * \param module_inst Pointer to USB module instance + * \param ep_num Endpoint number + * \param pbuf Pointer to buffer + * \param buf_size Size of buffer + * + * \return Status of procedure + * \retval STATUS_OK Job started successfully + * \retval STATUS_ERR_DENIED Endpoint is not ready + */ +enum status_code usb_device_endpoint_read_buffer_job(struct usb_module *module_inst, uint8_t ep_num, uint8_t *pbuf, uint32_t buf_size) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + Assert(ep_num < USB_EPT_NUM); + + uint8_t flag; + flag = (uint8_t)(module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPCFG.bit.EPTYPE0); + if ((enum usb_device_endpoint_type)(flag) == USB_DEVICE_ENDPOINT_TYPE_DISABLE) { + return STATUS_ERR_DENIED; + }; + + /* get endpoint configuration from setting register */ + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].ADDR.reg = (uint32_t)pbuf; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE = buf_size; + usb_descriptor_table.usb_endpoint_table[ep_num].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT = 0; + module_inst->hw->DEVICE.DeviceEndpoint[ep_num].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK0RDY; + + return STATUS_OK; +} + +/** + * \brief Start setup packet read job on a endpoint + * + * \param module_inst Pointer to USB device module instance + * \param pbuf Pointer to buffer + * + * \return Status of procedure + * \retval STATUS_OK Job started successfully + * \retval STATUS_ERR_DENIED Endpoint is not ready + */ +enum status_code usb_device_endpoint_setup_buffer_job(struct usb_module *module_inst, uint8_t *pbuf) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + /* get endpoint configuration from setting register */ + usb_descriptor_table.usb_endpoint_table[0].DeviceDescBank[0].ADDR.reg = (uint32_t)pbuf; + usb_descriptor_table.usb_endpoint_table[0].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE = 8; + usb_descriptor_table.usb_endpoint_table[0].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT = 0; + module_inst->hw->DEVICE.DeviceEndpoint[0].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK0RDY; + + return STATUS_OK; +} + +static void _usb_device_interrupt_handler(void) { + uint16_t ep_inst; + uint16_t flags, flags_run; + ep_inst = _usb_instances->hw->DEVICE.EPINTSMRY.reg; + + /* device interrupt */ + if (0 == ep_inst) { + int i; + + /* get interrupt flags */ + flags = _usb_instances->hw->DEVICE.INTFLAG.reg; + flags_run = flags & _usb_instances->device_enabled_callback_mask & _usb_instances->device_registered_callback_mask; + + for (i = 0; i < USB_DEVICE_CALLBACK_N; i++) { + if (flags & _usb_device_irq_bits[i]) { + _usb_instances->hw->DEVICE.INTFLAG.reg = _usb_device_irq_bits[i]; + } + if (flags_run & _usb_device_irq_bits[i]) { + if (i == USB_DEVICE_CALLBACK_LPMSUSP) { + device_callback_lpm_wakeup_enable = usb_descriptor_table.usb_endpoint_table[0].DeviceDescBank[0].EXTREG.bit.VARIABLE & USB_LPM_ATTRIBUT_REMOTEWAKE_MASK; + } + (_usb_instances->device_callback[i])(_usb_instances, &device_callback_lpm_wakeup_enable); + } + } + + } else { + /* endpoint interrupt */ + + for (uint8_t i = 0; i < USB_EPT_NUM; i++) { + if (ep_inst & (1 << i)) { + flags = _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg; + flags_run = flags & _usb_instances->device_endpoint_enabled_callback_mask[i] & _usb_instances->device_endpoint_registered_callback_mask[i]; + + // endpoint transfer stall interrupt + if (flags & USB_DEVICE_EPINTFLAG_STALL_Msk) { + if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_STALL1) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL1; + ep_callback_para.endpoint_address = USB_EP_DIR_IN | i; + } else if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_STALL0) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL0; + ep_callback_para.endpoint_address = USB_EP_DIR_OUT | i; + } + + if (flags_run & USB_DEVICE_EPINTFLAG_STALL_Msk) { + (_usb_instances->device_endpoint_callback[i][USB_DEVICE_ENDPOINT_CALLBACK_STALL])(_usb_instances, &ep_callback_para); + } + return; + } + + // endpoint received setup interrupt + if (flags & USB_DEVICE_EPINTFLAG_RXSTP) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_RXSTP; + if (_usb_instances->device_endpoint_enabled_callback_mask[i] & _usb_endpoint_irq_bits[USB_DEVICE_ENDPOINT_CALLBACK_RXSTP]) { + ep_callback_para.received_bytes = (uint16_t)(usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT); + (_usb_instances->device_endpoint_callback[i][USB_DEVICE_ENDPOINT_CALLBACK_RXSTP])(_usb_instances, &ep_callback_para); + } + return; + } + + // endpoint transfer complete interrupt + if (flags & USB_DEVICE_EPINTFLAG_TRCPT_Msk) { + if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRCPT1) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT1; + ep_callback_para.endpoint_address = USB_EP_DIR_IN | i; + ep_callback_para.sent_bytes = (uint16_t)(usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[1].PCKSIZE.bit.BYTE_COUNT); + + } else if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRCPT0) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT0; + ep_callback_para.endpoint_address = USB_EP_DIR_OUT | i; + ep_callback_para.received_bytes = (uint16_t)(usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT); + ep_callback_para.out_buffer_size = (uint16_t)(usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE); + } + if (flags_run & USB_DEVICE_EPINTFLAG_TRCPT_Msk) { + (_usb_instances->device_endpoint_callback[i][USB_DEVICE_ENDPOINT_CALLBACK_TRCPT])(_usb_instances, &ep_callback_para); + } + return; + } + + // endpoint transfer fail interrupt + if (flags & USB_DEVICE_EPINTFLAG_TRFAIL_Msk) { + if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRFAIL1) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRFAIL1; + if (usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[1].STATUS_BK.reg & USB_DEVICE_STATUS_BK_ERRORFLOW) { + usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[1].STATUS_BK.reg &= ~USB_DEVICE_STATUS_BK_ERRORFLOW; + } + ep_callback_para.endpoint_address = USB_EP_DIR_IN | i; + if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRCPT1) { + return; + } + } else if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRFAIL0) { + _usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRFAIL0; + if (usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[0].STATUS_BK.reg & USB_DEVICE_STATUS_BK_ERRORFLOW) { + usb_descriptor_table.usb_endpoint_table[i].DeviceDescBank[0].STATUS_BK.reg &= ~USB_DEVICE_STATUS_BK_ERRORFLOW; + } + ep_callback_para.endpoint_address = USB_EP_DIR_OUT | i; + if (_usb_instances->hw->DEVICE.DeviceEndpoint[i].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_TRCPT0) { + return; + } + } + + if (flags_run & USB_DEVICE_EPINTFLAG_TRFAIL_Msk) { + (_usb_instances->device_endpoint_callback[i][USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL])(_usb_instances, &ep_callback_para); + } + return; + } + } + } + } +} + +/** + * \brief Enable the USB module peripheral + * + * \param module_inst pointer to USB module instance + */ +void usb_enable(struct usb_module *module_inst) { + Assert(module_inst); + Assert(module_inst->hw); + + module_inst->hw->DEVICE.CTRLA.reg |= USB_CTRLA_ENABLE; + while (module_inst->hw->DEVICE.SYNCBUSY.reg == USB_SYNCBUSY_ENABLE) + ; +} + +/** + * \brief Disable the USB module peripheral + * + * \param module_inst pointer to USB module instance + */ +void usb_disable(struct usb_module *module_inst) { + Assert(module_inst); + Assert(module_inst->hw); + + module_inst->hw->DEVICE.INTENCLR.reg = USB_DEVICE_INTENCLR_MASK; + module_inst->hw->DEVICE.INTFLAG.reg = USB_DEVICE_INTFLAG_MASK; + module_inst->hw->DEVICE.CTRLA.reg &= ~USB_CTRLA_ENABLE; + while (module_inst->hw->DEVICE.SYNCBUSY.reg == USB_SYNCBUSY_ENABLE) + ; +} + +/** + * \brief Interrupt handler for the USB module. + */ +void USB_0_Handler(void) { + if (_usb_instances->hw->DEVICE.CTRLA.bit.MODE) { + } else { + /*device mode ISR */ + _usb_device_interrupt_handler(); + } +} + +void USB_1_Handler(void) { + _usb_device_interrupt_handler(); +} + +void USB_2_Handler(void) { + _usb_device_interrupt_handler(); +} + +void USB_3_Handler(void) { + _usb_device_interrupt_handler(); +} + +/** + * \brief Get the default USB module settings + * + * \param[out] module_config Configuration structure to initialize to default values + */ +void usb_get_config_defaults(struct usb_config *module_config) { + Assert(module_config); + + /* Sanity check arguments */ + Assert(module_config); + /* Write default configuration to config struct */ + module_config->select_host_mode = 0; + module_config->run_in_standby = 1; + module_config->source_generator = 0; + module_config->speed_mode = USB_SPEED_FULL; +} + +#define NVM_USB_PAD_TRANSN_POS 45 +#define NVM_USB_PAD_TRANSN_SIZE 5 +#define NVM_USB_PAD_TRANSP_POS 50 +#define NVM_USB_PAD_TRANSP_SIZE 5 +#define NVM_USB_PAD_TRIM_POS 55 +#define NVM_USB_PAD_TRIM_SIZE 3 + +/** + * \brief Initializes USB module instance + * + * Enables the clock and initializes the USB module, based on the given + * configuration values. + * + * \param[in,out] module_inst Pointer to the software module instance struct + * \param[in] hw Pointer to the USB hardware module + * \param[in] module_config Pointer to the USB configuration options struct + * + * \return Status of the initialization procedure. + * + * \retval STATUS_OK The module was initialized successfully + */ + +#define GCLK_USB 10 + +enum status_code usb_init(struct usb_module *module_inst, Usb *const hw, struct usb_config *module_config) { + /* Sanity check arguments */ + Assert(hw); + Assert(module_inst); + Assert(module_config); + + uint32_t i, j; + uint32_t pad_transn, pad_transp, pad_trim; + + Gclk * pgclk = GCLK; + Mclk * pmclk = MCLK; + Port * pport = PORT; + Oscctrl *posc = OSCCTRL; + + _usb_instances = module_inst; + + /* Associate the software module instance with the hardware module */ + module_inst->hw = hw; + + // setup peripheral and synchronous bus clocks to USB + pmclk->AHBMASK.bit.USB_ = 1; + pmclk->APBBMASK.bit.USB_ = 1; + + /* Set up the USB DP/DN pins */ + pport->Group[0].PMUX[12].reg = 0x77; // PA24, PA25, function column H for USB D-, D+ + pport->Group[0].PINCFG[24].bit.PMUXEN = 1; + pport->Group[0].PINCFG[25].bit.PMUXEN = 1; + pport->Group[1].PMUX[11].bit.PMUXE = 7; // PB22, function column H for USB SOF_1KHz output + pport->Group[1].PINCFG[22].bit.PMUXEN = 1; + + // configure and enable DFLL for USB clock recovery mode at 48MHz + posc->DFLLCTRLA.bit.ENABLE = 0; + while (posc->DFLLSYNC.bit.ENABLE) + ; + while (posc->DFLLSYNC.bit.DFLLCTRLB) + ; + posc->DFLLCTRLB.bit.USBCRM = 1; + while (posc->DFLLSYNC.bit.DFLLCTRLB) + ; + posc->DFLLCTRLB.bit.MODE = 1; + while (posc->DFLLSYNC.bit.DFLLCTRLB) + ; + posc->DFLLCTRLB.bit.QLDIS = 0; + while (posc->DFLLSYNC.bit.DFLLCTRLB) + ; + posc->DFLLCTRLB.bit.CCDIS = 1; + posc->DFLLMUL.bit.MUL = 0xbb80; // 4800 x 1KHz + while (posc->DFLLSYNC.bit.DFLLMUL) + ; + posc->DFLLCTRLA.bit.ENABLE = 1; + while (posc->DFLLSYNC.bit.ENABLE) + ; + + /* Setup clock for module */ + pgclk->PCHCTRL[GCLK_USB].bit.GEN = 0; + pgclk->PCHCTRL[GCLK_USB].bit.CHEN = 1; + + /* Reset */ + hw->DEVICE.CTRLA.bit.SWRST = 1; + while (hw->DEVICE.SYNCBUSY.bit.SWRST) { + /* Sync wait */ + } + + /* Change QOS values to have the best performance and correct USB behaviour */ + USB->DEVICE.QOSCTRL.bit.CQOS = 2; + USB->DEVICE.QOSCTRL.bit.DQOS = 2; + + /* Load Pad Calibration */ + + pad_transn = (USB_FUSES_TRANSN_ADDR >> USB_FUSES_TRANSN_Pos) & USB_FUSES_TRANSN_Msk; + if (pad_transn == 0x1F) { + pad_transn = 5; + } + + hw->DEVICE.PADCAL.bit.TRANSN = pad_transn; + + pad_transp = (USB_FUSES_TRANSP_ADDR >> USB_FUSES_TRANSP_Pos) & USB_FUSES_TRANSP_Msk; + if (pad_transp == 0x1F) { + pad_transp = 29; + } + + hw->DEVICE.PADCAL.bit.TRANSP = pad_transp; + + pad_trim = (USB_FUSES_TRIM_ADDR >> USB_FUSES_TRIM_Pos) & USB_FUSES_TRIM_Msk; + if (pad_trim == 0x07) { + pad_trim = 3; + } + + hw->DEVICE.PADCAL.bit.TRIM = pad_trim; + + /* Set the configuration */ + hw->DEVICE.CTRLA.bit.MODE = module_config->select_host_mode; + hw->DEVICE.CTRLA.bit.RUNSTDBY = module_config->run_in_standby; + hw->DEVICE.DESCADD.reg = (uint32_t)(&usb_descriptor_table.usb_endpoint_table[0]); + if (USB_SPEED_FULL == module_config->speed_mode) { + module_inst->hw->DEVICE.CTRLB.bit.SPDCONF = USB_DEVICE_CTRLB_SPDCONF_FS_Val; + } else if (USB_SPEED_LOW == module_config->speed_mode) { + module_inst->hw->DEVICE.CTRLB.bit.SPDCONF = USB_DEVICE_CTRLB_SPDCONF_LS_Val; + } + + memset((uint8_t *)(&usb_descriptor_table.usb_endpoint_table[0]), 0, sizeof(usb_descriptor_table.usb_endpoint_table)); + + /* device callback related */ + for (i = 0; i < USB_DEVICE_CALLBACK_N; i++) { + module_inst->device_callback[i] = NULL; + } + for (i = 0; i < USB_EPT_NUM; i++) { + for (j = 0; j < USB_DEVICE_EP_CALLBACK_N; j++) { + module_inst->device_endpoint_callback[i][j] = NULL; + } + } + module_inst->device_registered_callback_mask = 0; + module_inst->device_enabled_callback_mask = 0; + for (j = 0; j < USB_EPT_NUM; j++) { + module_inst->device_endpoint_registered_callback_mask[j] = 0; + module_inst->device_endpoint_enabled_callback_mask[j] = 0; + } + + /* Enable interrupts for this USB module */ + NVIC_EnableIRQ(USB_0_IRQn); + NVIC_EnableIRQ(USB_2_IRQn); + NVIC_EnableIRQ(USB_3_IRQn); + + return STATUS_OK; +} diff --git a/tmk_core/protocol/arm_atsam/usb/usb.h b/tmk_core/protocol/arm_atsam/usb/usb.h new file mode 100644 index 0000000000..270143a112 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb.h @@ -0,0 +1,462 @@ +/** + * \file + * + * \brief SAM USB Driver + * + * Copyright (C) 2014-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ +#ifndef USB_H_INCLUDED +#define USB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \defgroup asfdoc_sam0_usb_group SAM Universal Serial Bus (USB) + * + * The Universal Serial Bus (USB) module complies with the USB 2.1 specification. + * + * The following peripherals are used by this module: + * - USB (Universal Serial Bus) + * + * The following devices can use this module: + * - Atmel | SMART SAM D51 + * + * The USB module covers following mode: + * \if USB_DEVICE_MODE + * - USB Device Mode + * \endif + * \if USB_HOST_MODE + * - USB Host Mode + * \endif + * + * The USB module covers following speed: + * \if USB_HS_MODE + * - USB High Speed (480Mbit/s) + * \endif + * - USB Full Speed (12Mbit/s) + * \if USB_LS_MODE + * - USB Low Speed (1.5Mbit/s) + * \endif + * + * \if USB_LPM_MODE + * The USB module supports Link Power Management (LPM-L1) protocol. + * \endif + * + * USB support needs whole set of enumeration process, to make the device + * recognizable and usable. The USB driver is designed to interface to the + * USB Stack in Atmel Software Framework (ASF). + * + * \if USB_DEVICE_MODE + * \section asfdoc_sam0_usb_device USB Device Mode + * The ASF USB Device Stack has defined the USB Device Driver (UDD) interface, + * to support USB device operations. The USB module device driver complies with + * this interface, so that the USB Device Stack can work based on the + * USB module. + * + * Refer to + * "ASF - USB Device Stack" for more details. + * \endif + * + * \if USB_HOST_MODE + * \section adfdoc_sam0_usb_host USB Host Mode + * The ASF USB Host Stack has defined the USB Host Driver (UHD) interface, + * to support USB host operations. The USB module host driver complies with + * this interface, so that the USB Host Stack can work based on the USB module. + * + * Refer to + * "ASF - USB Host Stack" for more details. + * \endif + */ + +/** Enum for the speed status for the USB module */ +enum usb_speed { + USB_SPEED_LOW, + USB_SPEED_FULL, +}; + +/** Enum for the possible callback types for the USB in host module */ +enum usb_host_callback { + USB_HOST_CALLBACK_SOF, + USB_HOST_CALLBACK_RESET, + USB_HOST_CALLBACK_WAKEUP, + USB_HOST_CALLBACK_DNRSM, + USB_HOST_CALLBACK_UPRSM, + USB_HOST_CALLBACK_RAMACER, + USB_HOST_CALLBACK_CONNECT, + USB_HOST_CALLBACK_DISCONNECT, + USB_HOST_CALLBACK_N, +}; + +/** Enum for the possible callback types for the USB pipe in host module */ +enum usb_host_pipe_callback { + USB_HOST_PIPE_CALLBACK_TRANSFER_COMPLETE, + USB_HOST_PIPE_CALLBACK_ERROR, + USB_HOST_PIPE_CALLBACK_SETUP, + USB_HOST_PIPE_CALLBACK_STALL, + USB_HOST_PIPE_CALLBACK_N, +}; + +/** + * \brief Host pipe types. + */ +enum usb_host_pipe_type { + USB_HOST_PIPE_TYPE_DISABLE, + USB_HOST_PIPE_TYPE_CONTROL, + USB_HOST_PIPE_TYPE_ISO, + USB_HOST_PIPE_TYPE_BULK, + USB_HOST_PIPE_TYPE_INTERRUPT, + USB_HOST_PIPE_TYPE_EXTENDED, +}; + +/** + * \brief Host pipe token types. + */ +enum usb_host_pipe_token { + USB_HOST_PIPE_TOKEN_SETUP, + USB_HOST_PIPE_TOKEN_IN, + USB_HOST_PIPE_TOKEN_OUT, +}; + +/** + * \brief Enumeration for the possible callback types for the USB in device module + */ +enum usb_device_callback { + USB_DEVICE_CALLBACK_SOF, + USB_DEVICE_CALLBACK_RESET, + USB_DEVICE_CALLBACK_WAKEUP, + USB_DEVICE_CALLBACK_RAMACER, + USB_DEVICE_CALLBACK_SUSPEND, + USB_DEVICE_CALLBACK_LPMNYET, + USB_DEVICE_CALLBACK_LPMSUSP, + USB_DEVICE_CALLBACK_N, +}; + +/** + * \brief Enumeration for the possible callback types for the USB endpoint in device module + */ +enum usb_device_endpoint_callback { + USB_DEVICE_ENDPOINT_CALLBACK_TRCPT, + USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL, + USB_DEVICE_ENDPOINT_CALLBACK_RXSTP, + USB_DEVICE_ENDPOINT_CALLBACK_STALL, + USB_DEVICE_EP_CALLBACK_N, +}; + +/** + * \brief Device Endpoint types. + */ +enum usb_device_endpoint_type { + USB_DEVICE_ENDPOINT_TYPE_DISABLE, + USB_DEVICE_ENDPOINT_TYPE_CONTROL, + USB_DEVICE_ENDPOINT_TYPE_ISOCHRONOUS, + USB_DEVICE_ENDPOINT_TYPE_BULK, + USB_DEVICE_ENDPOINT_TYPE_INTERRUPT, +}; + +/** + * \brief Endpoint Size + */ +enum usb_endpoint_size { + USB_ENDPOINT_8_BYTE, + USB_ENDPOINT_16_BYTE, + USB_ENDPOINT_32_BYTE, + USB_ENDPOINT_64_BYTE, + USB_ENDPOINT_128_BYTE, + USB_ENDPOINT_256_BYTE, + USB_ENDPOINT_512_BYTE, + USB_ENDPOINT_1023_BYTE, +}; + +/** + * \brief Link Power Management Handshake. + */ +enum usb_device_lpm_mode { + USB_DEVICE_LPM_NOT_SUPPORT, + USB_DEVICE_LPM_ACK, + USB_DEVICE_LPM_NYET, +}; + +/** + * \brief Module structure + */ +struct usb_module; + +/** + * \name Host Callback Functions Types + * @{ + */ +typedef void (*usb_host_callback_t)(struct usb_module *module_inst); +typedef void (*usb_host_pipe_callback_t)(struct usb_module *module_inst, void *); +/** @} */ + +/** + * \name Device Callback Functions Types + * @{ + */ +typedef void (*usb_device_callback_t)(struct usb_module *module_inst, void *pointer); +typedef void (*usb_device_endpoint_callback_t)(struct usb_module *module_inst, void *pointer); +/** @} */ + +/** USB configurations */ +struct usb_config { + /** \c true for host, \c false for device. */ + bool select_host_mode; + /** When \c true the module is enabled during standby. */ + bool run_in_standby; + /** Generic Clock Generator source channel. */ + // enum gclk_generator source_generator; + uint8_t source_generator; + /** Speed mode */ + // enum usb_speed speed_mode; + uint8_t speed_mode; +}; + +/** + * \brief USB software module instance structure. + * + * USB software module instance structure, used to retain software state + * information of an associated hardware module instance. + * + */ +struct usb_module { + /** Hardware module pointer of the associated USB peripheral. */ + Usb *hw; + + /** Array to store device related callback functions */ + usb_device_callback_t device_callback[USB_DEVICE_CALLBACK_N]; + usb_device_endpoint_callback_t device_endpoint_callback[USB_EPT_NUM][USB_DEVICE_EP_CALLBACK_N]; + /** Bit mask for device callbacks registered */ + uint16_t device_registered_callback_mask; + /** Bit mask for device callbacks enabled */ + uint16_t device_enabled_callback_mask; + /** Bit mask for device endpoint callbacks registered */ + uint8_t device_endpoint_registered_callback_mask[USB_EPT_NUM]; + /** Bit mask for device endpoint callbacks enabled */ + uint8_t device_endpoint_enabled_callback_mask[USB_EPT_NUM]; +}; + +/** USB device endpoint configurations */ +struct usb_device_endpoint_config { + /** device address */ + uint8_t ep_address; + /** endpoint size */ + enum usb_endpoint_size ep_size; + /** automatic zero length packet mode, \c true to enable */ + bool auto_zlp; + /** type of endpoint with Bank */ + enum usb_device_endpoint_type ep_type; +}; + +/** USB device endpoint callback status parameter structure */ +struct usb_endpoint_callback_parameter { + uint16_t received_bytes; + uint16_t sent_bytes; + uint16_t out_buffer_size; + uint8_t endpoint_address; +}; + +void usb_enable(struct usb_module *module_inst); +void usb_disable(struct usb_module *module_inst); + +/** + * \brief Get the status of USB module's state machine + * + * \param module_inst Pointer to USB module instance + */ +static inline uint8_t usb_get_state_machine_status(struct usb_module *module_inst) { + /* Sanity check arguments */ + Assert(module_inst); + Assert(module_inst->hw); + + return module_inst->hw->DEVICE.FSMSTATUS.reg; +} + +void usb_get_config_defaults(struct usb_config *module_config); +enum status_code usb_init(struct usb_module *module_inst, Usb *const hw, struct usb_config *module_config); + +/** + * \brief Attach USB device to the bus + * + * \param module_inst Pointer to USB device module instance + */ +static inline void usb_device_attach(struct usb_module *module_inst) { + module_inst->hw->DEVICE.CTRLB.reg &= ~USB_DEVICE_CTRLB_DETACH; +} + +/** + * \brief Detach USB device from the bus + * + * \param module_inst Pointer to USB device module instance + */ +static inline void usb_device_detach(struct usb_module *module_inst) { + module_inst->hw->DEVICE.CTRLB.reg |= USB_DEVICE_CTRLB_DETACH; +} + +/** + * \brief Get the speed mode of USB device + * + * \param module_inst Pointer to USB device module instance + * \return USB Speed mode (\ref usb_speed). + */ +static inline enum usb_speed usb_device_get_speed(struct usb_module *module_inst) { + if (!(module_inst->hw->DEVICE.STATUS.reg & USB_DEVICE_STATUS_SPEED_Msk)) { + return USB_SPEED_FULL; + } else { + return USB_SPEED_LOW; + } +} + +/** + * \brief Get the address of USB device + * + * \param module_inst Pointer to USB device module instance + * \return USB device address value. + */ +static inline uint8_t usb_device_get_address(struct usb_module *module_inst) { + return ((uint8_t)(module_inst->hw->DEVICE.DADD.bit.DADD)); +} + +/** + * \brief Set the speed mode of USB device + * + * \param module_inst Pointer to USB device module instance + * \param address USB device address value + */ +static inline void usb_device_set_address(struct usb_module *module_inst, uint8_t address) { + module_inst->hw->DEVICE.DADD.reg = USB_DEVICE_DADD_ADDEN | address; +} + +/** + * \brief Get the frame number of USB device + * + * \param module_inst Pointer to USB device module instance + * \return USB device frame number value. + */ +static inline uint16_t usb_device_get_frame_number(struct usb_module *module_inst) { + return ((uint16_t)(module_inst->hw->DEVICE.FNUM.bit.FNUM)); +} + +/** + * \brief Get the micro-frame number of USB device + * + * \param module_inst Pointer to USB device module instance + * \return USB device micro-frame number value. + */ +static inline uint16_t usb_device_get_micro_frame_number(struct usb_module *module_inst) { + return ((uint16_t)(module_inst->hw->DEVICE.FNUM.reg)); +} + +/** + * \brief USB device send the resume wakeup + * + * \param module_inst Pointer to USB device module instance + */ +static inline void usb_device_send_remote_wake_up(struct usb_module *module_inst) { + module_inst->hw->DEVICE.CTRLB.reg |= USB_DEVICE_CTRLB_UPRSM; +} + +/** + * \brief USB device set the LPM mode + * + * \param module_inst Pointer to USB device module instance + * \param lpm_mode LPM mode + */ +static inline void usb_device_set_lpm_mode(struct usb_module *module_inst, enum usb_device_lpm_mode lpm_mode) { + module_inst->hw->DEVICE.CTRLB.bit.LPMHDSK = lpm_mode; +} + +/** + * \name USB Device Callback Management + * @{ + */ +enum status_code usb_device_register_callback(struct usb_module *module_inst, enum usb_device_callback callback_type, usb_device_callback_t callback_func); +enum status_code usb_device_unregister_callback(struct usb_module *module_inst, enum usb_device_callback callback_type); +enum status_code usb_device_enable_callback(struct usb_module *module_inst, enum usb_device_callback callback_type); +enum status_code usb_device_disable_callback(struct usb_module *module_inst, enum usb_device_callback callback_type); +/** @} */ + +/** + * \name USB Device Endpoint Configuration + * @{ + */ +void usb_device_endpoint_get_config_defaults(struct usb_device_endpoint_config *ep_config); +enum status_code usb_device_endpoint_set_config(struct usb_module *module_inst, struct usb_device_endpoint_config *ep_config); +bool usb_device_endpoint_is_configured(struct usb_module *module_inst, uint8_t ep); +/** @} */ + +/** + * \name USB Device Endpoint Callback Management + * @{ + */ +enum status_code usb_device_endpoint_register_callback(struct usb_module *module_inst, uint8_t ep_num, enum usb_device_endpoint_callback callback_type, usb_device_endpoint_callback_t callback_func); +enum status_code usb_device_endpoint_unregister_callback(struct usb_module *module_inst, uint8_t ep_num, enum usb_device_endpoint_callback callback_type); +enum status_code usb_device_endpoint_enable_callback(struct usb_module *module_inst, uint8_t ep, enum usb_device_endpoint_callback callback_type); +enum status_code usb_device_endpoint_disable_callback(struct usb_module *module_inst, uint8_t ep, enum usb_device_endpoint_callback callback_type); +/** @} */ + +/** + * \name USB Device Endpoint Job Management + * @{ + */ +enum status_code usb_device_endpoint_write_buffer_job(struct usb_module *module_inst, uint8_t ep_num, uint8_t *pbuf, uint32_t buf_size); +enum status_code usb_device_endpoint_read_buffer_job(struct usb_module *module_inst, uint8_t ep_num, uint8_t *pbuf, uint32_t buf_size); +enum status_code usb_device_endpoint_setup_buffer_job(struct usb_module *module_inst, uint8_t *pbuf); +void usb_device_endpoint_abort_job(struct usb_module *module_inst, uint8_t ep); +/** @} */ + +/** + * \name USB Device Endpoint Operations + * @{ + */ + +bool usb_device_endpoint_is_halted(struct usb_module *module_inst, uint8_t ep); +void usb_device_endpoint_set_halt(struct usb_module *module_inst, uint8_t ep); +void usb_device_endpoint_clear_halt(struct usb_module *module_inst, uint8_t ep); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* USB_H_INCLUDED */ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_atmel.h b/tmk_core/protocol/arm_atsam/usb/usb_atmel.h new file mode 100644 index 0000000000..82bafdc7d1 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_atmel.h @@ -0,0 +1,189 @@ +/** + * \file + * + * \brief All USB VIDs and PIDs from Atmel USB applications + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _USB_ATMEL_H_ +#define _USB_ATMEL_H_ + +/** + * \defgroup usb_group USB Stack + * + * This stack includes the USB Device Stack, USB Host Stack and common + * definitions. + * @{ + */ + +//! @} + +/** + * \ingroup usb_group + * \defgroup usb_atmel_ids_group Atmel USB Identifiers + * + * This module defines Atmel PID and VIDs constants. + * + * @{ + */ + +//! \name Vendor Identifier assigned by USB org to ATMEL +#define USB_VID_ATMEL 0x03EB + +//! \name Product Identifier assigned by ATMEL to AVR applications +//! @{ + +//! \name The range from 2000h to 20FFh is reserved to the old PID for C51, MEGA, and others. +//! @{ +#define USB_PID_ATMEL_MEGA_HIDGENERIC 0x2013 +#define USB_PID_ATMEL_MEGA_HIDKEYBOARD 0x2017 +#define USB_PID_ATMEL_MEGA_CDC 0x2018 +#define USB_PID_ATMEL_MEGA_AUDIO_IN 0x2019 +#define USB_PID_ATMEL_MEGA_MS 0x201A +#define USB_PID_ATMEL_MEGA_AUDIO_IN_OUT 0x201B +#define USB_PID_ATMEL_MEGA_HIDMOUSE 0x201C +#define USB_PID_ATMEL_MEGA_HIDMOUSE_CERTIF_U4 0x201D +#define USB_PID_ATMEL_MEGA_CDC_MULTI 0x201E +#define USB_PID_ATMEL_MEGA_MS_HIDMS_HID_USBKEY 0x2022 +#define USB_PID_ATMEL_MEGA_MS_HIDMS_HID_STK525 0x2023 +#define USB_PID_ATMEL_MEGA_MS_2 0x2029 +#define USB_PID_ATMEL_MEGA_MS_HIDMS 0x202A +#define USB_PID_ATMEL_MEGA_MS_3 0x2032 +#define USB_PID_ATMEL_MEGA_LIBUSB 0x2050 +//! @} + +//! \name The range 2100h to 21FFh is reserved to PIDs for AVR Tools. +//! @{ +#define USB_PID_ATMEL_XPLAINED 0x2122 +#define USB_PID_ATMEL_XMEGA_USB_ZIGBIT_2_4GHZ 0x214A +#define USB_PID_ATMEL_XMEGA_USB_ZIGBIT_SUBGHZ 0x214B +//! @} + +//! \name The range 2300h to 23FFh is reserved to PIDs for demo from ASF1.7=> +//! @{ +#define USB_PID_ATMEL_UC3_ENUM 0x2300 +#define USB_PID_ATMEL_UC3_MS 0x2301 +#define USB_PID_ATMEL_UC3_MS_SDRAM_LOADER 0x2302 +#define USB_PID_ATMEL_UC3_EVK1100_CTRLPANEL 0x2303 +#define USB_PID_ATMEL_UC3_HID 0x2304 +#define USB_PID_ATMEL_UC3_EVK1101_CTRLPANEL_HID 0x2305 +#define USB_PID_ATMEL_UC3_EVK1101_CTRLPANEL_HID_MS 0x2306 +#define USB_PID_ATMEL_UC3_CDC 0x2307 +#define USB_PID_ATMEL_UC3_AUDIO_MICRO 0x2308 +#define USB_PID_ATMEL_UC3_CDC_DEBUG 0x2310 // Virtual Com (debug interface) on EVK11xx +#define USB_PID_ATMEL_UC3_AUDIO_SPEAKER_MICRO 0x2311 +#define USB_PID_ATMEL_UC3_CDC_MSC 0x2312 +//! @} + +//! \name The range 2400h to 24FFh is reserved to PIDs for ASF applications +//! @{ +#define USB_PID_ATMEL_ASF_HIDMOUSE 0x2400 +#define USB_PID_ATMEL_ASF_HIDKEYBOARD 0x2401 +#define USB_PID_ATMEL_ASF_HIDGENERIC 0x2402 +#define USB_PID_ATMEL_ASF_MSC 0x2403 +#define USB_PID_ATMEL_ASF_CDC 0x2404 +#define USB_PID_ATMEL_ASF_PHDC 0x2405 +#define USB_PID_ATMEL_ASF_HIDMTOUCH 0x2406 +#define USB_PID_ATMEL_ASF_MSC_HIDMOUSE 0x2420 +#define USB_PID_ATMEL_ASF_MSC_HIDS_CDC 0x2421 +#define USB_PID_ATMEL_ASF_MSC_HIDKEYBOARD 0x2422 +#define USB_PID_ATMEL_ASF_VENDOR_CLASS 0x2423 +#define USB_PID_ATMEL_ASF_MSC_CDC 0x2424 +#define USB_PID_ATMEL_ASF_TWO_CDC 0x2425 +#define USB_PID_ATMEL_ASF_SEVEN_CDC 0x2426 +#define USB_PID_ATMEL_ASF_XPLAIN_BC_POWERONLY 0x2430 +#define USB_PID_ATMEL_ASF_XPLAIN_BC_TERMINAL 0x2431 +#define USB_PID_ATMEL_ASF_XPLAIN_BC_TOUCH 0x2432 +#define USB_PID_ATMEL_ASF_AUDIO_SPEAKER 0x2433 +#define USB_PID_ATMEL_ASF_XMEGA_B1_XPLAINED 0x2434 +//! @} + +//! \name The range 2F00h to 2FFFh is reserved to official PIDs for AVR bootloaders +//! Note, !!!! don't use this range for demos or examples !!!! +//! @{ +#define USB_PID_ATMEL_DFU_ATXMEGA64C3 0x2FD6 +#define USB_PID_ATMEL_DFU_ATXMEGA128C3 0x2FD7 +#define USB_PID_ATMEL_DFU_ATXMEGA16C4 0x2FD8 +#define USB_PID_ATMEL_DFU_ATXMEGA32C4 0x2FD9 +#define USB_PID_ATMEL_DFU_ATXMEGA256C3 0x2FDA +#define USB_PID_ATMEL_DFU_ATXMEGA384C3 0x2FDB +#define USB_PID_ATMEL_DFU_ATUCL3_L4 0x2FDC +#define USB_PID_ATMEL_DFU_ATXMEGA64A4U 0x2FDD +#define USB_PID_ATMEL_DFU_ATXMEGA128A4U 0x2FDE + +#define USB_PID_ATMEL_DFU_ATXMEGA64B3 0x2FDF +#define USB_PID_ATMEL_DFU_ATXMEGA128B3 0x2FE0 +#define USB_PID_ATMEL_DFU_ATXMEGA64B1 0x2FE1 +#define USB_PID_ATMEL_DFU_ATXMEGA256A3BU 0x2FE2 +#define USB_PID_ATMEL_DFU_ATXMEGA16A4U 0x2FE3 +#define USB_PID_ATMEL_DFU_ATXMEGA32A4U 0x2FE4 +#define USB_PID_ATMEL_DFU_ATXMEGA64A3U 0x2FE5 +#define USB_PID_ATMEL_DFU_ATXMEGA128A3U 0x2FE6 +#define USB_PID_ATMEL_DFU_ATXMEGA192A3U 0x2FE7 +#define USB_PID_ATMEL_DFU_ATXMEGA64A1U 0x2FE8 +#define USB_PID_ATMEL_DFU_ATUC3D 0x2FE9 +#define USB_PID_ATMEL_DFU_ATXMEGA128B1 0x2FEA +#define USB_PID_ATMEL_DFU_AT32UC3C 0x2FEB +#define USB_PID_ATMEL_DFU_ATXMEGA256A3U 0x2FEC +#define USB_PID_ATMEL_DFU_ATXMEGA128A1U 0x2FED +#define USB_PID_ATMEL_DFU_ATMEGA8U2 0x2FEE +#define USB_PID_ATMEL_DFU_ATMEGA16U2 0x2FEF +#define USB_PID_ATMEL_DFU_ATMEGA32U2 0x2FF0 +#define USB_PID_ATMEL_DFU_AT32UC3A3 0x2FF1 +#define USB_PID_ATMEL_DFU_ATMEGA32U6 0x2FF2 +#define USB_PID_ATMEL_DFU_ATMEGA16U4 0x2FF3 +#define USB_PID_ATMEL_DFU_ATMEGA32U4 0x2FF4 +#define USB_PID_ATMEL_DFU_AT32AP7200 0x2FF5 +#define USB_PID_ATMEL_DFU_AT32UC3B 0x2FF6 +#define USB_PID_ATMEL_DFU_AT90USB82 0x2FF7 +#define USB_PID_ATMEL_DFU_AT32UC3A 0x2FF8 +#define USB_PID_ATMEL_DFU_AT90USB64 0x2FF9 +#define USB_PID_ATMEL_DFU_AT90USB162 0x2FFA +#define USB_PID_ATMEL_DFU_AT90USB128 0x2FFB +// 2FFCh to 2FFFh used by C51 family products +//! @} + +//! @} + +//! @} + +#endif // _USB_ATMEL_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_device_udd.c b/tmk_core/protocol/arm_atsam/usb/usb_device_udd.c new file mode 100644 index 0000000000..bc5e79d9f0 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_device_udd.c @@ -0,0 +1,1046 @@ +/** + * \file + * + * \brief USB Device wrapper layer for compliance with common driver UDD + * + * Copyright (C) 2014-2016 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ +#include "samd51j18a.h" +#include +#include + +// Get USB device configuration +#include "conf_usb.h" +#include "udd.h" +#include "usb.h" +#include "status_codes.h" + +/** + * \ingroup usb_device_group + * \defgroup usb_device_udd_group USB Device Driver Implement (UDD) + * USB low-level driver for USB device mode + * @{ + */ +// Check USB device configuration +#ifdef USB_DEVICE_HS_SUPPORT +# error The High speed mode is not supported on this part, please remove USB_DEVICE_HS_SUPPORT in conf_usb.h +#endif + +// Note: This driver is adapted for SAMD51 + +#ifndef UDC_REMOTEWAKEUP_LPM_ENABLE +# define UDC_REMOTEWAKEUP_LPM_ENABLE() +#endif +#ifndef UDC_REMOTEWAKEUP_LPM_DISABLE +# define UDC_REMOTEWAKEUP_LPM_DISABLE() +#endif +#ifndef UDC_SUSPEND_LPM_EVENT +# define UDC_SUSPEND_LPM_EVENT() +#endif + +/* for debug text */ +#ifdef USB_DEBUG +# define dbg_print printf +#else +# define dbg_print(...) +#endif + +/** Maximum size of a transfer in multi-packet mode */ +#define UDD_ENDPOINT_MAX_TRANS ((8 * 1024) - 1) + +/** USB software device instance structure */ +struct usb_module usb_device; + +/** + * \name Clock management + * + * @{ + */ + +#define UDD_CLOCK_GEN 0 + +static inline void udd_wait_clock_ready(void) {} + +/** + * \name Power management + * + * @{ + */ +#define udd_sleep_mode(arg) +/** @} */ + +/** + * \name Control endpoint low level management routine. + * + * This function performs control endpoint management. + * It handles the SETUP/DATA/HANDSHAKE phases of a control transaction. + * + * @{ + */ + +/** + * \brief Buffer to store the data received on control endpoint (SETUP/OUT endpoint 0) + * + * Used to avoid a RAM buffer overflow in case of the payload buffer + * is smaller than control endpoint size + */ +UDC_BSS(4) +uint8_t udd_ctrl_buffer[USB_DEVICE_EP_CTRL_SIZE]; + +/** Bit definitions about endpoint control state machine for udd_ep_control_state */ +typedef enum { + UDD_EPCTRL_SETUP = 0, //!< Wait a SETUP packet + UDD_EPCTRL_DATA_OUT = 1, //!< Wait a OUT data packet + UDD_EPCTRL_DATA_IN = 2, //!< Wait a IN data packet + UDD_EPCTRL_HANDSHAKE_WAIT_IN_ZLP = 3, //!< Wait a IN ZLP packet + UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP = 4, //!< Wait a OUT ZLP packet + UDD_EPCTRL_STALL_REQ = 5, //!< STALL enabled on IN & OUT packet +} udd_ctrl_ep_state_t; + +/** Global variable to give and record information of the set up request management */ +udd_ctrl_request_t udd_g_ctrlreq; + +/** State of the endpoint control management */ +static udd_ctrl_ep_state_t udd_ep_control_state; + +/** Total number of data received/sent during data packet phase with previous payload buffers */ +static uint16_t udd_ctrl_prev_payload_nb_trans; + +/** Number of data received/sent to/from udd_g_ctrlreq.payload buffer */ +static uint16_t udd_ctrl_payload_nb_trans; + +/** @} */ + +/** + * \name Management of bulk/interrupt/isochronous endpoints + * + * The UDD manages the data transfer on endpoints: + * - Start data transfer on endpoint with USB Device DMA + * - Send a ZLP packet if requested + * - Call callback registered to signal end of transfer + * The transfer abort and stall feature are supported. + * + * @{ + */ + +/** + * \brief Buffer to store the data received on bulk/interrupt endpoints + * + * Used to avoid a RAM buffer overflow in case of the user buffer + * is smaller than endpoint size + * + * \warning The protected interrupt endpoint size is 512 bytes maximum. + * \warning The isochronous and endpoint is not protected by this system and + * the user must always use a buffer corresponding at endpoint size. + */ + +#if (defined USB_DEVICE_LOW_SPEED) +UDC_BSS(4) uint8_t udd_ep_out_cache_buffer[USB_DEVICE_MAX_EP][8]; +#elif (defined USB_DEVICE_HS_SUPPORT) +UDC_BSS(4) uint8_t udd_ep_out_cache_buffer[USB_DEVICE_MAX_EP][512]; +#else +UDC_BSS(4) uint8_t udd_ep_out_cache_buffer[USB_DEVICE_MAX_EP][64]; +#endif + +/** Structure definition about job registered on an endpoint */ +typedef struct { + union { + //! Callback to call at the end of transfer + udd_callback_trans_t call_trans; + //! Callback to call when the endpoint halt is cleared + udd_callback_halt_cleared_t call_nohalt; + }; + //! Buffer located in internal RAM to send or fill during job + uint8_t *buf; + //! Size of buffer to send or fill + iram_size_t buf_size; + //! Total number of data transferred on endpoint + iram_size_t nb_trans; + //! Endpoint size + uint16_t ep_size; + //! A job is registered on this endpoint + uint8_t busy : 1; + //! A short packet is requested for this job on endpoint IN + uint8_t b_shortpacket : 1; + //! The cache buffer is currently used on endpoint OUT + uint8_t b_use_out_cache_buffer : 1; +} udd_ep_job_t; + +/** Array to register a job on bulk/interrupt/isochronous endpoint */ +static udd_ep_job_t udd_ep_job[2 * USB_DEVICE_MAX_EP]; + +/** @} */ + +/** + * \brief Get the detailed job by endpoint number + * \param[in] ep Endpoint Address + * \retval pointer to an udd_ep_job_t structure instance + */ +static udd_ep_job_t *udd_ep_get_job(udd_ep_id_t ep) { + if ((ep == 0) || (ep == 0x80)) { + return NULL; + } else { + return &udd_ep_job[(2 * (ep & USB_EP_ADDR_MASK) + ((ep & USB_EP_DIR_IN) ? 1 : 0)) - 2]; + } +} + +/** + * \brief Endpoint IN process, continue to send packets or zero length packet + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ep_trans_in_next(void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + udd_ep_id_t ep = ep_callback_para->endpoint_address; + uint16_t ep_size, nb_trans; + uint16_t next_trans; + udd_ep_id_t ep_num; + udd_ep_job_t * ptr_job; + + ptr_job = udd_ep_get_job(ep); + ep_num = ep & USB_EP_ADDR_MASK; + + ep_size = ptr_job->ep_size; + /* Update number of data transferred */ + nb_trans = ep_callback_para->sent_bytes; + ptr_job->nb_trans += nb_trans; + + /* Need to send other data */ + if (ptr_job->nb_trans != ptr_job->buf_size) { + next_trans = ptr_job->buf_size - ptr_job->nb_trans; + if (UDD_ENDPOINT_MAX_TRANS < next_trans) { + /* The USB hardware support a maximum + * transfer size of UDD_ENDPOINT_MAX_TRANS Bytes */ + next_trans = UDD_ENDPOINT_MAX_TRANS - (UDD_ENDPOINT_MAX_TRANS % ep_size); + } + /* Need ZLP, if requested and last packet is not a short packet */ + ptr_job->b_shortpacket = ptr_job->b_shortpacket && (0 == (next_trans % ep_size)); + usb_device_endpoint_write_buffer_job(&usb_device, ep_num, &ptr_job->buf[ptr_job->nb_trans], next_trans); + return; + } + + /* Need to send a ZLP after all data transfer */ + if (ptr_job->b_shortpacket) { + ptr_job->b_shortpacket = false; + /* Start new transfer */ + usb_device_endpoint_write_buffer_job(&usb_device, ep_num, &ptr_job->buf[ptr_job->nb_trans], 0); + return; + } + + /* Job complete then call callback */ + ptr_job->busy = false; + if (NULL != ptr_job->call_trans) { + ptr_job->call_trans(UDD_EP_TRANSFER_OK, ptr_job->nb_trans, ep); + } +} + +/** + * \brief Endpoint OUT process, continue to receive packets or zero length packet + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ep_trans_out_next(void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + udd_ep_id_t ep = ep_callback_para->endpoint_address; + uint16_t ep_size, nb_trans; + uint16_t next_trans; + udd_ep_id_t ep_num; + udd_ep_job_t * ptr_job; + + ptr_job = udd_ep_get_job(ep); + ep_num = ep & USB_EP_ADDR_MASK; + + ep_size = ptr_job->ep_size; + /* Update number of data transferred */ + nb_trans = ep_callback_para->received_bytes; + + /* Can be necessary to copy data receive from cache buffer to user buffer */ + if (ptr_job->b_use_out_cache_buffer) { + memcpy(&ptr_job->buf[ptr_job->nb_trans], udd_ep_out_cache_buffer[ep_num - 1], ptr_job->buf_size % ep_size); + } + + /* Update number of data transferred */ + ptr_job->nb_trans += nb_trans; + if (ptr_job->nb_trans > ptr_job->buf_size) { + ptr_job->nb_trans = ptr_job->buf_size; + } + + /* If all previous data requested are received and user buffer not full + * then need to receive other data */ + if ((nb_trans == ep_callback_para->out_buffer_size) && (ptr_job->nb_trans != ptr_job->buf_size)) { + next_trans = ptr_job->buf_size - ptr_job->nb_trans; + if (UDD_ENDPOINT_MAX_TRANS < next_trans) { + /* The USB hardware support a maximum transfer size + * of UDD_ENDPOINT_MAX_TRANS Bytes */ + next_trans = UDD_ENDPOINT_MAX_TRANS - (UDD_ENDPOINT_MAX_TRANS % ep_size); + } else { + next_trans -= next_trans % ep_size; + } + + if (next_trans < ep_size) { + /* Use the cache buffer for Bulk or Interrupt size endpoint */ + ptr_job->b_use_out_cache_buffer = true; + usb_device_endpoint_read_buffer_job(&usb_device, ep_num, udd_ep_out_cache_buffer[ep_num - 1], ep_size); + } else { + usb_device_endpoint_read_buffer_job(&usb_device, ep_num, &ptr_job->buf[ptr_job->nb_trans], next_trans); + } + return; + } + + /* Job complete then call callback */ + ptr_job->busy = false; + if (NULL != ptr_job->call_trans) { + ptr_job->call_trans(UDD_EP_TRANSFER_OK, ptr_job->nb_trans, ep); + } +} + +/** + * \brief Endpoint Transfer Complete callback function, to do the next transfer depends on the direction(IN or OUT) + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ep_transfer_process(struct usb_module *module_inst, void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + udd_ep_id_t ep = ep_callback_para->endpoint_address; + + if (ep & USB_EP_DIR_IN) { + udd_ep_trans_in_next(pointer); + } else { + udd_ep_trans_out_next(pointer); + } +} + +void udd_ep_abort(udd_ep_id_t ep) { + udd_ep_job_t *ptr_job; + + usb_device_endpoint_abort_job(&usb_device, ep); + + /* Job complete then call callback */ + ptr_job = udd_ep_get_job(ep); + if (!ptr_job->busy) { + return; + } + ptr_job->busy = false; + if (NULL != ptr_job->call_trans) { + /* It can be a Transfer or stall callback */ + ptr_job->call_trans(UDD_EP_TRANSFER_ABORT, ptr_job->nb_trans, ep); + } +} + +bool udd_is_high_speed(void) { + return false; +} + +uint16_t udd_get_frame_number(void) { + return usb_device_get_frame_number(&usb_device); +} + +uint16_t udd_get_micro_frame_number(void) { + return usb_device_get_micro_frame_number(&usb_device); +} + +void udd_ep_free(udd_ep_id_t ep) { + struct usb_device_endpoint_config config_ep; + usb_device_endpoint_get_config_defaults(&config_ep); + + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + udd_ep_abort(ep); + + config_ep.ep_address = ep; + config_ep.ep_type = USB_DEVICE_ENDPOINT_TYPE_DISABLE; + usb_device_endpoint_set_config(&usb_device, &config_ep); + usb_device_endpoint_unregister_callback(&usb_device, ep_num, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT); + usb_device_endpoint_disable_callback(&usb_device, ep, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT); +} + +bool udd_ep_alloc(udd_ep_id_t ep, uint8_t bmAttributes, uint16_t MaxEndpointSize) { + struct usb_device_endpoint_config config_ep; + usb_device_endpoint_get_config_defaults(&config_ep); + + config_ep.ep_address = ep; + + if (MaxEndpointSize <= 8) { + config_ep.ep_size = USB_ENDPOINT_8_BYTE; + } else if (MaxEndpointSize <= 16) { + config_ep.ep_size = USB_ENDPOINT_16_BYTE; + } else if (MaxEndpointSize <= 32) { + config_ep.ep_size = USB_ENDPOINT_32_BYTE; + } else if (MaxEndpointSize <= 64) { + config_ep.ep_size = USB_ENDPOINT_64_BYTE; + } else if (MaxEndpointSize <= 128) { + config_ep.ep_size = USB_ENDPOINT_128_BYTE; + } else if (MaxEndpointSize <= 256) { + config_ep.ep_size = USB_ENDPOINT_256_BYTE; + } else if (MaxEndpointSize <= 512) { + config_ep.ep_size = USB_ENDPOINT_512_BYTE; + } else if (MaxEndpointSize <= 1023) { + config_ep.ep_size = USB_ENDPOINT_1023_BYTE; + } else { + return false; + } + udd_ep_job_t *ptr_job = udd_ep_get_job(ep); + ptr_job->ep_size = MaxEndpointSize; + + bmAttributes = bmAttributes & USB_EP_TYPE_MASK; + + /* Check endpoint type */ + if (USB_EP_TYPE_ISOCHRONOUS == bmAttributes) { + config_ep.ep_type = USB_DEVICE_ENDPOINT_TYPE_ISOCHRONOUS; + } else if (USB_EP_TYPE_BULK == bmAttributes) { + config_ep.ep_type = USB_DEVICE_ENDPOINT_TYPE_BULK; + } else if (USB_EP_TYPE_INTERRUPT == bmAttributes) { + config_ep.ep_type = USB_DEVICE_ENDPOINT_TYPE_INTERRUPT; + } else { + return false; + } + + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + if (STATUS_OK != usb_device_endpoint_set_config(&usb_device, &config_ep)) { + return false; + } + usb_device_endpoint_register_callback(&usb_device, ep_num, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT, udd_ep_transfer_process); + usb_device_endpoint_enable_callback(&usb_device, ep, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT); + usb_device_endpoint_enable_callback(&usb_device, ep, USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL); + + return true; +} + +bool udd_ep_is_halted(udd_ep_id_t ep) { + return usb_device_endpoint_is_halted(&usb_device, ep); +} + +bool udd_ep_set_halt(udd_ep_id_t ep) { + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + if (USB_DEVICE_MAX_EP < ep_num) { + return false; + } + + usb_device_endpoint_set_halt(&usb_device, ep); + + udd_ep_abort(ep); + return true; +} + +bool udd_ep_clear_halt(udd_ep_id_t ep) { + udd_ep_job_t *ptr_job; + uint8_t ep_num = ep & USB_EP_ADDR_MASK; + + if (USB_DEVICE_MAX_EP < ep_num) { + return false; + } + ptr_job = udd_ep_get_job(ep); + + usb_device_endpoint_clear_halt(&usb_device, ep); + + /* If a job is register on clear halt action then execute callback */ + if (ptr_job->busy == true) { + ptr_job->busy = false; + ptr_job->call_nohalt(); + } + + return true; +} + +bool udd_ep_wait_stall_clear(udd_ep_id_t ep, udd_callback_halt_cleared_t callback) { + udd_ep_id_t ep_num; + udd_ep_job_t *ptr_job; + + ep_num = ep & USB_EP_ADDR_MASK; + if (USB_DEVICE_MAX_EP < ep_num) { + return false; + } + + ptr_job = udd_ep_get_job(ep); + if (ptr_job->busy == true) { + return false; /* Job already on going */ + } + + /* Wait clear halt endpoint */ + if (usb_device_endpoint_is_halted(&usb_device, ep)) { + /* Endpoint halted then registers the callback */ + ptr_job->busy = true; + ptr_job->call_nohalt = callback; + return true; + } else if (usb_device_endpoint_is_configured(&usb_device, ep)) { + callback(); /* Endpoint not halted then call directly callback */ + return true; + } else { + return false; + } +} + +/** + * \brief Control Endpoint stall sending data + */ +static void udd_ctrl_stall_data(void) { + udd_ep_control_state = UDD_EPCTRL_STALL_REQ; + + usb_device_endpoint_set_halt(&usb_device, USB_EP_DIR_IN); + usb_device_endpoint_clear_halt(&usb_device, USB_EP_DIR_OUT); +} + +bool udd_ep_run(udd_ep_id_t ep, bool b_shortpacket, uint8_t *buf, iram_size_t buf_size, udd_callback_trans_t callback) { + udd_ep_id_t ep_num; + udd_ep_job_t *ptr_job; + uint32_t irqflags; + + ep_num = ep & USB_EP_ADDR_MASK; + + if ((USB_DEVICE_MAX_EP < ep_num) || (udd_ep_is_halted(ep))) { + return false; + } + + ptr_job = udd_ep_get_job(ep); + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + if (ptr_job->busy == true) { + __DMB(); + __set_PRIMASK(irqflags); + return false; /* Job already on going */ + } + + ptr_job->busy = true; + __DMB(); + __set_PRIMASK(irqflags); + + /* No job running, set up a new one */ + ptr_job->buf = buf; + ptr_job->buf_size = buf_size; + ptr_job->nb_trans = 0; + ptr_job->call_trans = callback; + ptr_job->b_shortpacket = b_shortpacket; + ptr_job->b_use_out_cache_buffer = false; + + /* Initialize value to simulate a empty transfer */ + uint16_t next_trans; + + if (ep & USB_EP_DIR_IN) { + if (0 != ptr_job->buf_size) { + next_trans = ptr_job->buf_size; + if (UDD_ENDPOINT_MAX_TRANS < next_trans) { + next_trans = UDD_ENDPOINT_MAX_TRANS - (UDD_ENDPOINT_MAX_TRANS % ptr_job->ep_size); + } + ptr_job->b_shortpacket = ptr_job->b_shortpacket && (0 == (next_trans % ptr_job->ep_size)); + } else if (true == ptr_job->b_shortpacket) { + ptr_job->b_shortpacket = false; /* avoid to send zero length packet again */ + next_trans = 0; + } else { + ptr_job->busy = false; + if (NULL != ptr_job->call_trans) { + ptr_job->call_trans(UDD_EP_TRANSFER_OK, 0, ep); + } + return true; + } + return (STATUS_OK == usb_device_endpoint_write_buffer_job(&usb_device, ep_num, &ptr_job->buf[0], next_trans)); + } else { + if (0 != ptr_job->buf_size) { + next_trans = ptr_job->buf_size; + if (UDD_ENDPOINT_MAX_TRANS < next_trans) { + /* The USB hardware support a maximum transfer size + * of UDD_ENDPOINT_MAX_TRANS Bytes */ + next_trans = UDD_ENDPOINT_MAX_TRANS - (UDD_ENDPOINT_MAX_TRANS % ptr_job->ep_size); + } else { + next_trans -= next_trans % ptr_job->ep_size; + } + if (next_trans < ptr_job->ep_size) { + ptr_job->b_use_out_cache_buffer = true; + return (STATUS_OK == usb_device_endpoint_read_buffer_job(&usb_device, ep_num, udd_ep_out_cache_buffer[ep_num - 1], ptr_job->ep_size)); + } else { + return (STATUS_OK == usb_device_endpoint_read_buffer_job(&usb_device, ep_num, &ptr_job->buf[0], next_trans)); + } + } else { + ptr_job->busy = false; + if (NULL != ptr_job->call_trans) { + ptr_job->call_trans(UDD_EP_TRANSFER_OK, 0, ep); + } + return true; + } + } +} + +void udd_set_address(uint8_t address) { + usb_device_set_address(&usb_device, address); +} + +uint8_t udd_getaddress(void) { + return usb_device_get_address(&usb_device); +} + +void udd_send_remotewakeup(void) { + uint32_t try = 5; + udd_wait_clock_ready(); + udd_sleep_mode(UDD_STATE_IDLE); + while (2 != usb_get_state_machine_status(&usb_device) && try--) { + usb_device_send_remote_wake_up(&usb_device); + } +} + +void udd_set_setup_payload(uint8_t *payload, uint16_t payload_size) { + udd_g_ctrlreq.payload = payload; + udd_g_ctrlreq.payload_size = payload_size; +} + +/** + * \brief Control Endpoint translate the data in buffer into Device Request Struct + */ +static void udd_ctrl_fetch_ram(void) { + udd_g_ctrlreq.req.bmRequestType = udd_ctrl_buffer[0]; + udd_g_ctrlreq.req.bRequest = udd_ctrl_buffer[1]; + udd_g_ctrlreq.req.wValue = ((uint16_t)(udd_ctrl_buffer[3]) << 8) + udd_ctrl_buffer[2]; + udd_g_ctrlreq.req.wIndex = ((uint16_t)(udd_ctrl_buffer[5]) << 8) + udd_ctrl_buffer[4]; + udd_g_ctrlreq.req.wLength = ((uint16_t)(udd_ctrl_buffer[7]) << 8) + udd_ctrl_buffer[6]; +} + +/** + * \brief Control Endpoint send out zero length packet + */ +static void udd_ctrl_send_zlp_in(void) { + udd_ep_control_state = UDD_EPCTRL_HANDSHAKE_WAIT_IN_ZLP; + usb_device_endpoint_setup_buffer_job(&usb_device, udd_ctrl_buffer); + usb_device_endpoint_write_buffer_job(&usb_device, 0, udd_g_ctrlreq.payload, 0); +} + +/** + * \brief Process control endpoint IN transaction + */ +static void udd_ctrl_in_sent(void) { + static bool b_shortpacket = false; + uint16_t nb_remain; + + nb_remain = udd_g_ctrlreq.payload_size - udd_ctrl_payload_nb_trans; + + if (0 == nb_remain) { + /* All content of current buffer payload are sent Update number of total data sending by previous payload buffer */ + udd_ctrl_prev_payload_nb_trans += udd_ctrl_payload_nb_trans; + if ((udd_g_ctrlreq.req.wLength == udd_ctrl_prev_payload_nb_trans) || b_shortpacket) { + /* All data requested are transferred or a short packet has been sent, then it is the end of data phase. + * Generate an OUT ZLP for handshake phase */ + udd_ep_control_state = UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP; + usb_device_endpoint_setup_buffer_job(&usb_device, udd_ctrl_buffer); + return; + } + /* Need of new buffer because the data phase is not complete */ + if ((!udd_g_ctrlreq.over_under_run) || (!udd_g_ctrlreq.over_under_run())) { + /* Under run then send zlp on IN + * Here nb_remain=0, this allows to send a IN ZLP */ + } else { + /* A new payload buffer is given */ + udd_ctrl_payload_nb_trans = 0; + nb_remain = udd_g_ctrlreq.payload_size; + } + } + + /* Continue transfer and send next data */ + if (nb_remain >= USB_DEVICE_EP_CTRL_SIZE) { + nb_remain = USB_DEVICE_EP_CTRL_SIZE; + b_shortpacket = false; + } else { + b_shortpacket = true; + } + + /* Link payload buffer directly on USB hardware */ + usb_device_endpoint_write_buffer_job(&usb_device, 0, udd_g_ctrlreq.payload + udd_ctrl_payload_nb_trans, nb_remain); + + udd_ctrl_payload_nb_trans += nb_remain; +} + +/** + * \brief Process control endpoint OUT transaction + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ctrl_out_received(void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + + uint16_t nb_data; + nb_data = ep_callback_para->received_bytes; /* Read data received during OUT phase */ + + if (udd_g_ctrlreq.payload_size < (udd_ctrl_payload_nb_trans + nb_data)) { + /* Payload buffer too small */ + nb_data = udd_g_ctrlreq.payload_size - udd_ctrl_payload_nb_trans; + } + + memcpy((uint8_t *)(udd_g_ctrlreq.payload + udd_ctrl_payload_nb_trans), udd_ctrl_buffer, nb_data); + udd_ctrl_payload_nb_trans += nb_data; + + if ((USB_DEVICE_EP_CTRL_SIZE != nb_data) || (udd_g_ctrlreq.req.wLength <= (udd_ctrl_prev_payload_nb_trans + udd_ctrl_payload_nb_trans))) { + /* End of reception because it is a short packet + * or all data are transferred */ + + /* Before send ZLP, call intermediate callback + * in case of data receive generate a stall */ + udd_g_ctrlreq.payload_size = udd_ctrl_payload_nb_trans; + if (NULL != udd_g_ctrlreq.over_under_run) { + if (!udd_g_ctrlreq.over_under_run()) { + /* Stall ZLP */ + udd_ep_control_state = UDD_EPCTRL_STALL_REQ; + /* Stall all packets on IN & OUT control endpoint */ + udd_ep_set_halt(0); + /* Ack reception of OUT to replace NAK by a STALL */ + return; + } + } + /* Send IN ZLP to ACK setup request */ + udd_ctrl_send_zlp_in(); + return; + } + + if (udd_g_ctrlreq.payload_size == udd_ctrl_payload_nb_trans) { + /* Overrun then request a new payload buffer */ + if (!udd_g_ctrlreq.over_under_run) { + /* No callback available to request a new payload buffer + * Stall ZLP */ + udd_ep_control_state = UDD_EPCTRL_STALL_REQ; + /* Stall all packets on IN & OUT control endpoint */ + udd_ep_set_halt(0); + return; + } + if (!udd_g_ctrlreq.over_under_run()) { + /* No new payload buffer delivered + * Stall ZLP */ + udd_ep_control_state = UDD_EPCTRL_STALL_REQ; + /* Stall all packets on IN & OUT control endpoint */ + udd_ep_set_halt(0); + return; + } + /* New payload buffer available + * Update number of total data received */ + udd_ctrl_prev_payload_nb_trans += udd_ctrl_payload_nb_trans; + + /* Reinitialize reception on payload buffer */ + udd_ctrl_payload_nb_trans = 0; + } + usb_device_endpoint_read_buffer_job(&usb_device, 0, udd_ctrl_buffer, USB_DEVICE_EP_CTRL_SIZE); +} + +/** + * \internal + * \brief Endpoint 0 (control) SETUP received callback + * \param[in] module_inst pointer to USB module instance + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void _usb_ep0_on_setup(struct usb_module *module_inst, void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + + if (UDD_EPCTRL_SETUP != udd_ep_control_state) { + if (NULL != udd_g_ctrlreq.callback) { + udd_g_ctrlreq.callback(); + } + udd_ep_control_state = UDD_EPCTRL_SETUP; + } + if (8 != ep_callback_para->received_bytes) { + udd_ctrl_stall_data(); + return; + } else { + udd_ctrl_fetch_ram(); + if (false == udc_process_setup()) { + udd_ctrl_stall_data(); + return; + } else if (Udd_setup_is_in()) { + udd_ctrl_prev_payload_nb_trans = 0; + udd_ctrl_payload_nb_trans = 0; + udd_ep_control_state = UDD_EPCTRL_DATA_IN; + usb_device_endpoint_read_buffer_job(&usb_device, 0, udd_ctrl_buffer, USB_DEVICE_EP_CTRL_SIZE); + udd_ctrl_in_sent(); + } else { + if (0 == udd_g_ctrlreq.req.wLength) { + udd_ctrl_send_zlp_in(); + return; + } else { + udd_ctrl_prev_payload_nb_trans = 0; + udd_ctrl_payload_nb_trans = 0; + udd_ep_control_state = UDD_EPCTRL_DATA_OUT; + /* Initialize buffer size and enable OUT bank */ + usb_device_endpoint_read_buffer_job(&usb_device, 0, udd_ctrl_buffer, USB_DEVICE_EP_CTRL_SIZE); + } + } + } +} + +/** + * \brief Control Endpoint Process when underflow condition has occurred + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ctrl_underflow(void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + + if (UDD_EPCTRL_DATA_OUT == udd_ep_control_state) { + /* Host want to stop OUT transaction + * then stop to wait OUT data phase and wait IN ZLP handshake */ + udd_ctrl_send_zlp_in(); + } else if (UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP == udd_ep_control_state) { + /* A OUT handshake is waiting by device, + * but host want extra IN data then stall extra IN data */ + usb_device_endpoint_set_halt(&usb_device, ep_callback_para->endpoint_address); + } +} + +/** + * \brief Control Endpoint Process when overflow condition has occurred + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void udd_ctrl_overflow(void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + + if (UDD_EPCTRL_DATA_IN == udd_ep_control_state) { + /* Host want to stop IN transaction + * then stop to wait IN data phase and wait OUT ZLP handshake */ + udd_ep_control_state = UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP; + } else if (UDD_EPCTRL_HANDSHAKE_WAIT_IN_ZLP == udd_ep_control_state) { + /* A IN handshake is waiting by device, + * but host want extra OUT data then stall extra OUT data and following status stage */ + usb_device_endpoint_set_halt(&usb_device, ep_callback_para->endpoint_address); + } +} + +/** + * \internal + * \brief Control endpoint transfer fail callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void _usb_ep0_on_tansfer_fail(struct usb_module *module_inst, void *pointer) { + struct usb_endpoint_callback_parameter *ep_callback_para = (struct usb_endpoint_callback_parameter *)pointer; + + if (ep_callback_para->endpoint_address & USB_EP_DIR_IN) { + udd_ctrl_underflow(pointer); + } else { + udd_ctrl_overflow(pointer); + } +} + +/** + * \internal + * \brief Control endpoint transfer complete callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the endpoint transfer status parameter struct from driver layer. + */ +static void _usb_ep0_on_tansfer_ok(struct usb_module *module_inst, void *pointer) { + if (UDD_EPCTRL_DATA_OUT == udd_ep_control_state) { /* handshake Out for status stage */ + udd_ctrl_out_received(pointer); + } else if (UDD_EPCTRL_DATA_IN == udd_ep_control_state) { /* handshake In for status stage */ + udd_ctrl_in_sent(); + } else { + if (NULL != udd_g_ctrlreq.callback) { + udd_g_ctrlreq.callback(); + } + udd_ep_control_state = UDD_EPCTRL_SETUP; + } +} + +/** + * \brief Enable Control Endpoint + * \param[in] module_inst Pointer to USB module instance + */ +static void udd_ctrl_ep_enable(struct usb_module *module_inst) { + /* USB Device Endpoint0 Configuration */ + struct usb_device_endpoint_config config_ep0; + + usb_device_endpoint_get_config_defaults(&config_ep0); + config_ep0.ep_size = (enum usb_endpoint_size)(32 - clz(((uint32_t)Min(Max(USB_DEVICE_EP_CTRL_SIZE, 8), 1024) << 1) - 1) - 1 - 3); + usb_device_endpoint_set_config(module_inst, &config_ep0); + + usb_device_endpoint_setup_buffer_job(module_inst, udd_ctrl_buffer); + + usb_device_endpoint_register_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_RXSTP, _usb_ep0_on_setup); + usb_device_endpoint_register_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT, _usb_ep0_on_tansfer_ok); + usb_device_endpoint_register_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL, _usb_ep0_on_tansfer_fail); + usb_device_endpoint_enable_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_RXSTP); + usb_device_endpoint_enable_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_TRCPT); + usb_device_endpoint_enable_callback(module_inst, 0, USB_DEVICE_ENDPOINT_CALLBACK_TRFAIL); + +#ifdef USB_DEVICE_LPM_SUPPORT + // Enable LPM feature + usb_device_set_lpm_mode(module_inst, USB_DEVICE_LPM_ACK); +#endif + + udd_ep_control_state = UDD_EPCTRL_SETUP; +} + +/** + * \internal + * \brief Control endpoint Suspend callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the callback parameter from driver layer. + */ +static void _usb_on_suspend(struct usb_module *module_inst, void *pointer) { + usb_device_disable_callback(&usb_device, USB_DEVICE_CALLBACK_SUSPEND); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_WAKEUP); + udd_sleep_mode(UDD_STATE_SUSPEND); +#ifdef UDC_SUSPEND_EVENT + UDC_SUSPEND_EVENT(); +#endif +} + +#ifdef USB_DEVICE_LPM_SUPPORT +static void _usb_device_lpm_suspend(struct usb_module *module_inst, void *pointer) { + dbg_print("LPM_SUSP\n"); + + uint32_t *lpm_wakeup_enable; + lpm_wakeup_enable = (uint32_t *)pointer; + + usb_device_disable_callback(&usb_device, USB_DEVICE_CALLBACK_LPMSUSP); + usb_device_disable_callback(&usb_device, USB_DEVICE_CALLBACK_SUSPEND); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_WAKEUP); + + //#warning Here the sleep mode must be choose to have a DFLL startup time < bmAttribut.HIRD + udd_sleep_mode(UDD_STATE_SUSPEND_LPM); // Enter in LPM SUSPEND mode + if ((*lpm_wakeup_enable)) { + UDC_REMOTEWAKEUP_LPM_ENABLE(); + } + if (!(*lpm_wakeup_enable)) { + UDC_REMOTEWAKEUP_LPM_DISABLE(); + } + UDC_SUSPEND_LPM_EVENT(); +} +#endif + +/** + * \internal + * \brief Control endpoint SOF callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the callback parameter from driver layer. + */ +static void _usb_on_sof_notify(struct usb_module *module_inst, void *pointer) { + udc_sof_notify(); +#ifdef UDC_SOF_EVENT + UDC_SOF_EVENT(); +#endif +} + +/** + * \internal + * \brief Control endpoint Reset callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the callback parameter from driver layer. + */ +static void _usb_on_bus_reset(struct usb_module *module_inst, void *pointer) { + // Reset USB Device Stack Core + udc_reset(); + usb_device_set_address(module_inst, 0); + udd_ctrl_ep_enable(module_inst); +} + +/** + * \internal + * \brief Control endpoint Wakeup callback function + * \param[in] module_inst Pointer to USB module instance + * \param[in] pointer Pointer to the callback parameter from driver layer. + */ +static void _usb_on_wakeup(struct usb_module *module_inst, void *pointer) { + udd_wait_clock_ready(); + + usb_device_disable_callback(&usb_device, USB_DEVICE_CALLBACK_WAKEUP); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_SUSPEND); +#ifdef USB_DEVICE_LPM_SUPPORT + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_LPMSUSP, _usb_device_lpm_suspend); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_LPMSUSP); +#endif + udd_sleep_mode(UDD_STATE_IDLE); +#ifdef UDC_RESUME_EVENT + UDC_RESUME_EVENT(); +#endif +} + +void udd_detach(void) { + usb_device_detach(&usb_device); + udd_sleep_mode(UDD_STATE_SUSPEND); +} + +void udd_attach(void) { + udd_sleep_mode(UDD_STATE_IDLE); + usb_device_attach(&usb_device); + + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_SUSPEND, _usb_on_suspend); + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_SOF, _usb_on_sof_notify); + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_RESET, _usb_on_bus_reset); + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_WAKEUP, _usb_on_wakeup); + + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_SUSPEND); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_SOF); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_RESET); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_WAKEUP); +#ifdef USB_DEVICE_LPM_SUPPORT + usb_device_register_callback(&usb_device, USB_DEVICE_CALLBACK_LPMSUSP, _usb_device_lpm_suspend); + usb_device_enable_callback(&usb_device, USB_DEVICE_CALLBACK_LPMSUSP); +#endif +} + +void udd_enable(void) { + uint32_t irqflags; + + /* To avoid USB interrupt before end of initialization */ + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + struct usb_config config_usb; + + /* USB Module configuration */ + usb_get_config_defaults(&config_usb); + config_usb.source_generator = UDD_CLOCK_GEN; + usb_init(&usb_device, USB, &config_usb); + + /* USB Module Enable */ + usb_enable(&usb_device); + + /* Check clock after enable module, request the clock */ + udd_wait_clock_ready(); + + udd_sleep_mode(UDD_STATE_SUSPEND); + + // No VBus detect, assume always high +#ifndef USB_DEVICE_ATTACH_AUTO_DISABLE + udd_attach(); +#endif + + __DMB(); + __set_PRIMASK(irqflags); +} + +void udd_disable(void) { + udd_detach(); + + udd_sleep_mode(UDD_STATE_OFF); +} +/** @} */ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_hub.c b/tmk_core/protocol/arm_atsam/usb/usb_hub.c new file mode 100644 index 0000000000..14fba799c7 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_hub.c @@ -0,0 +1,342 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "arm_atsam_protocol.h" +#include "drivers/usb2422.h" +#include + +uint8_t usb_host_port; + +#ifndef MD_BOOTLOADER + +uint8_t usb_extra_state; +uint8_t usb_extra_manual; +uint8_t usb_gcr_auto; + +#endif // MD_BOOTLOADER + +uint16_t adc_extra; + +void USB_Hub_init(void) { + Gclk * pgclk = GCLK; + Mclk * pmclk = MCLK; + Port * pport = PORT; + Oscctrl *posc = OSCCTRL; + Usb * pusb = USB; + + DBGC(DC_USB2422_INIT_BEGIN); + + while ((v_5v = adc_get(ADC_5V)) < ADC_5V_START_LEVEL) { + DBGC(DC_USB2422_INIT_WAIT_5V_LOW); + } + + // setup peripheral and synchronous bus clocks to USB + pgclk->PCHCTRL[10].bit.GEN = 0; + pgclk->PCHCTRL[10].bit.CHEN = 1; + pmclk->AHBMASK.bit.USB_ = 1; + pmclk->APBBMASK.bit.USB_ = 1; + + // setup port pins for D-, D+, and SOF_1KHZ + pport->Group[0].PMUX[12].reg = 0x77; // PA24, PA25, function column H for USB D-, D+ + pport->Group[0].PINCFG[24].bit.PMUXEN = 1; + pport->Group[0].PINCFG[25].bit.PMUXEN = 1; + pport->Group[1].PMUX[11].bit.PMUXE = 7; // PB22, function column H for USB SOF_1KHz output + pport->Group[1].PINCFG[22].bit.PMUXEN = 1; + + // configure and enable DFLL for USB clock recovery mode at 48MHz + posc->DFLLCTRLA.bit.ENABLE = 0; + while (posc->DFLLSYNC.bit.ENABLE) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DISABLING); + } + while (posc->DFLLSYNC.bit.DFLLCTRLB) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_1); + } + posc->DFLLCTRLB.bit.USBCRM = 1; + while (posc->DFLLSYNC.bit.DFLLCTRLB) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_2); + } + posc->DFLLCTRLB.bit.MODE = 1; + while (posc->DFLLSYNC.bit.DFLLCTRLB) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_3); + } + posc->DFLLCTRLB.bit.QLDIS = 0; + while (posc->DFLLSYNC.bit.DFLLCTRLB) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_4); + } + posc->DFLLCTRLB.bit.CCDIS = 1; + posc->DFLLMUL.bit.MUL = 0xBB80; // 4800 x 1KHz + while (posc->DFLLSYNC.bit.DFLLMUL) { + DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLMUL); + } + posc->DFLLCTRLA.bit.ENABLE = 1; + while (posc->DFLLSYNC.bit.ENABLE) { + DBGC(DC_USB2422_INIT_OSC_SYNC_ENABLING); + } + + pusb->DEVICE.CTRLA.bit.SWRST = 1; + while (pusb->DEVICE.SYNCBUSY.bit.SWRST) { + DBGC(DC_USB2422_INIT_USB_SYNC_SWRST); + } + while (pusb->DEVICE.CTRLA.bit.SWRST) { + DBGC(DC_USB2422_INIT_USB_WAIT_SWRST); + } + // calibration from factory presets + pusb->DEVICE.PADCAL.bit.TRANSN = (USB_FUSES_TRANSN_ADDR >> USB_FUSES_TRANSN_Pos) & USB_FUSES_TRANSN_Msk; + pusb->DEVICE.PADCAL.bit.TRANSP = (USB_FUSES_TRANSP_ADDR >> USB_FUSES_TRANSP_Pos) & USB_FUSES_TRANSP_Msk; + pusb->DEVICE.PADCAL.bit.TRIM = (USB_FUSES_TRIM_ADDR >> USB_FUSES_TRIM_Pos) & USB_FUSES_TRIM_Msk; + // device mode, enabled + pusb->DEVICE.CTRLB.bit.SPDCONF = 0; // full speed + pusb->DEVICE.CTRLA.bit.MODE = 0; + pusb->DEVICE.CTRLA.bit.ENABLE = 1; + while (pusb->DEVICE.SYNCBUSY.bit.ENABLE) { + DBGC(DC_USB2422_INIT_USB_SYNC_ENABLING); + } + + pusb->DEVICE.QOSCTRL.bit.DQOS = 2; + pusb->DEVICE.QOSCTRL.bit.CQOS = 2; + + USB2422_init(); + + sr_exp_data.bit.HUB_CONNECT = 1; // connect signal + sr_exp_data.bit.HUB_RESET_N = 1; // reset high + SR_EXP_WriteData(); + + wait_us(100); + +#ifndef MD_BOOTLOADER + + usb_extra_manual = 0; + usb_gcr_auto = 1; + +#endif // MD_BOOTLOADER + + DBGC(DC_USB2422_INIT_COMPLETE); +} + +void USB_reset(void) { + DBGC(DC_USB_RESET_BEGIN); + + // pulse reset for at least 1 usec + sr_exp_data.bit.HUB_RESET_N = 0; // reset low + SR_EXP_WriteData(); + wait_us(2); + sr_exp_data.bit.HUB_RESET_N = 1; // reset high to run + SR_EXP_WriteData(); + + DBGC(DC_USB_RESET_COMPLETE); +} + +void USB_configure(void) { + DBGC(DC_USB_CONFIGURE_BEGIN); + + USB2422_configure(); + + adc_extra = 0; + + DBGC(DC_USB_CONFIGURE_COMPLETE); +} + +uint16_t USB_active(void) { + return USB2422_active(); +} + +void USB_set_host_by_voltage(void) { + // UP is upstream device (HOST) + // DN1 is downstream device (EXTRA) + // DN2 is keyboard (KEYB) + + DBGC(DC_USB_SET_HOST_BY_VOLTAGE_BEGIN); + + usb_host_port = USB_HOST_PORT_UNKNOWN; +#ifndef MD_BOOTLOADER + usb_extra_state = USB_EXTRA_STATE_UNKNOWN; +#endif // MD_BOOTLOADER + sr_exp_data.bit.SRC_1 = 1; // USBC-1 available for test + sr_exp_data.bit.SRC_2 = 1; // USBC-2 available for test + sr_exp_data.bit.E_UP_N = 1; // HOST disable + sr_exp_data.bit.E_DN1_N = 1; // EXTRA disable + sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O + sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O + + SR_EXP_WriteData(); + + wait_ms(250); + + while ((v_5v = adc_get(ADC_5V)) < ADC_5V_START_LEVEL) { + DBGC(DC_USB_SET_HOST_5V_LOW_WAITING); + } + + v_con_1 = adc_get(ADC_CON1); + v_con_2 = adc_get(ADC_CON2); + + v_con_1_boot = v_con_1; + v_con_2_boot = v_con_2; + + if (v_con_1 > v_con_2) { + sr_exp_data.bit.S_UP = 0; // HOST to USBC-1 + sr_exp_data.bit.S_DN1 = 1; // EXTRA to USBC-2 + sr_exp_data.bit.SRC_1 = 1; // HOST on USBC-1 + sr_exp_data.bit.SRC_2 = 0; // EXTRA available on USBC-2 + + sr_exp_data.bit.E_VBUS_1 = 1; // USBC-1 enable full power I/O + sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O + + SR_EXP_WriteData(); + + sr_exp_data.bit.E_UP_N = 0; // HOST enable + + SR_EXP_WriteData(); + + usb_host_port = USB_HOST_PORT_1; + } else { + sr_exp_data.bit.S_UP = 1; // EXTRA to USBC-1 + sr_exp_data.bit.S_DN1 = 0; // HOST to USBC-2 + sr_exp_data.bit.SRC_1 = 0; // EXTRA available on USBC-1 + sr_exp_data.bit.SRC_2 = 1; // HOST on USBC-2 + + sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O + sr_exp_data.bit.E_VBUS_2 = 1; // USBC-2 enable full power I/O + + SR_EXP_WriteData(); + + sr_exp_data.bit.E_UP_N = 0; // HOST enable + + SR_EXP_WriteData(); + + usb_host_port = USB_HOST_PORT_2; + } + +#ifndef MD_BOOTLOADER + usb_extra_state = USB_EXTRA_STATE_DISABLED; +#endif // MD_BOOTLOADER + + USB_reset(); + USB_configure(); + + DBGC(DC_USB_SET_HOST_BY_VOLTAGE_COMPLETE); +} + +uint8_t USB_Hub_Port_Detect_Init(void) { + uint32_t port_detect_retry_ms; + uint32_t tmod; + + DBGC(DC_PORT_DETECT_INIT_BEGIN); + + USB_set_host_by_voltage(); + + port_detect_retry_ms = timer_read64() + PORT_DETECT_RETRY_INTERVAL; + + while (!USB_active()) { + tmod = timer_read64() % PORT_DETECT_RETRY_INTERVAL; + + if (v_con_1 > v_con_2) // Values updated from USB_set_host_by_voltage(); + { + // 1 flash for port 1 detected + if (tmod > 500 && tmod < 600) { + DBG_LED_ON; + } else { + DBG_LED_OFF; + } + } else if (v_con_2 > v_con_1) // Values updated from USB_set_host_by_voltage(); + { + // 2 flash for port 2 detected + if (tmod > 500 && tmod < 600) { + DBG_LED_ON; + } else if (tmod > 700 && tmod < 800) { + DBG_LED_ON; + } else { + DBG_LED_OFF; + } + } + + if (timer_read64() > port_detect_retry_ms) { + DBGC(DC_PORT_DETECT_INIT_FAILED); + return 0; + } + } + + DBGC(DC_PORT_DETECT_INIT_COMPLETE); + + return 1; +} + +#ifndef MD_BOOTLOADER + +void USB_ExtraSetState(uint8_t state) { + uint8_t state_save = state; + + if (state == USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG) state = USB_EXTRA_STATE_DISABLED; + + if (usb_host_port == USB_HOST_PORT_1) + sr_exp_data.bit.E_VBUS_2 = state; + else if (usb_host_port == USB_HOST_PORT_2) + sr_exp_data.bit.E_VBUS_1 = state; + else + return; + + sr_exp_data.bit.E_DN1_N = !state; + SR_EXP_WriteData(); + + usb_extra_state = state_save; + + if (usb_extra_state == USB_EXTRA_STATE_ENABLED) + CDC_print("USB: Extra enabled\r\n"); + else if (usb_extra_state == USB_EXTRA_STATE_DISABLED) { + CDC_print("USB: Extra disabled\r\n"); +# ifdef USE_MASSDROP_CONFIGURATOR + if (led_animation_breathing) gcr_breathe = gcr_desired; +# endif + } else if (usb_extra_state == USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG) + CDC_print("USB: Extra disabled until replug\r\n"); + else + CDC_print("USB: Extra state unknown\r\n"); +} + +void USB_HandleExtraDevice(void) { + uint16_t adcval; + + if (usb_host_port == USB_HOST_PORT_1) + adcval = adc_get(ADC_CON2); + else if (usb_host_port == USB_HOST_PORT_2) + adcval = adc_get(ADC_CON1); + else + return; + + adc_extra = adc_extra * 0.9 + adcval * 0.1; + + // Check for a forced disable state (such as overload prevention) + if (usb_extra_state == USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG) { + // Detect unplug and reset state to disabled + if (adc_extra > USB_EXTRA_ADC_THRESHOLD) usb_extra_state = USB_EXTRA_STATE_DISABLED; + + return; // Return even if unplug detected + } + + if (usb_extra_manual) { + if (usb_extra_state == USB_EXTRA_STATE_DISABLED) USB_ExtraSetState(USB_EXTRA_STATE_ENABLED); + + return; + } + + // dpf("a %i %i\r\n",adcval, adc_extra); + if (usb_extra_state == USB_EXTRA_STATE_DISABLED && adc_extra < USB_EXTRA_ADC_THRESHOLD) + USB_ExtraSetState(USB_EXTRA_STATE_ENABLED); + else if (usb_extra_state == USB_EXTRA_STATE_ENABLED && adc_extra > USB_EXTRA_ADC_THRESHOLD) + USB_ExtraSetState(USB_EXTRA_STATE_DISABLED); +} + +#endif // MD_BOOTLOADER diff --git a/tmk_core/protocol/arm_atsam/usb/usb_hub.h b/tmk_core/protocol/arm_atsam/usb/usb_hub.h new file mode 100644 index 0000000000..d7b2e3fab4 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_hub.h @@ -0,0 +1,51 @@ +/* +Copyright 2018 Massdrop Inc. + +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 . +*/ + +#ifndef _USB2422_H_ +#define _USB2422_H_ + +#define REV_USB2422 0x100 + +#define PORT_DETECT_RETRY_INTERVAL 2000 + +#define USB_EXTRA_ADC_THRESHOLD 900 + +#define USB_EXTRA_STATE_DISABLED 0 +#define USB_EXTRA_STATE_ENABLED 1 +#define USB_EXTRA_STATE_UNKNOWN 2 +#define USB_EXTRA_STATE_DISABLED_UNTIL_REPLUG 3 + +#define USB_HOST_PORT_1 0 +#define USB_HOST_PORT_2 1 +#define USB_HOST_PORT_UNKNOWN 2 + +extern uint8_t usb_host_port; +extern uint8_t usb_extra_state; +extern uint8_t usb_extra_manual; +extern uint8_t usb_gcr_auto; + +void USB_Hub_init(void); +uint8_t USB_Hub_Port_Detect_Init(void); +void USB_reset(void); +void USB_configure(void); +uint16_t USB_active(void); +void USB_set_host_by_voltage(void); +uint16_t adc_get(uint8_t muxpos); +void USB_HandleExtraDevice(void); +void USB_ExtraSetState(uint8_t state); + +#endif //_USB2422_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_main.h b/tmk_core/protocol/arm_atsam/usb/usb_main.h new file mode 100644 index 0000000000..c3b1698c59 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_main.h @@ -0,0 +1,101 @@ +/** + * \file + * + * \brief Declaration of main function used by HID keyboard example + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _MAIN_H_ +#define _MAIN_H_ + +// Enters the application in low power mode +// Callback called when USB host sets USB line in suspend state +void main_suspend_action(void); + +// Called by UDD when the USB line exit of suspend state +void main_resume_action(void); + +// Called when a start of frame is received on USB line +void main_sof_action(void); + +// Called by UDC when USB Host request to enable remote wakeup +void main_remotewakeup_enable(void); + +// Called by UDC when USB Host request to disable remote wakeup +void main_remotewakeup_disable(void); + +extern volatile bool main_b_kbd_enable; +bool main_kbd_enable(void); +void main_kbd_disable(void); + +#ifdef NKRO_ENABLE +extern volatile bool main_b_nkro_enable; +bool main_nkro_enable(void); +void main_nkro_disable(void); +#endif // NKRO_ENABLE + +#ifdef EXTRAKEY_ENABLE +extern volatile bool main_b_exk_enable; +bool main_exk_enable(void); +void main_exk_disable(void); +#endif // EXTRAKEY_ENABLE + +#ifdef CONSOLE_ENABLE +extern volatile bool main_b_con_enable; +bool main_con_enable(void); +void main_con_disable(void); +#endif // CONSOLE_ENABLE + +#ifdef MOUSE_ENABLE +extern volatile bool main_b_mou_enable; +bool main_mou_enable(void); +void main_mou_disable(void); +#endif // MOUSE_ENABLE + +#ifdef RAW_ENABLE +extern volatile bool main_b_raw_enable; +bool main_raw_enable(void); +void main_raw_disable(void); +void main_raw_receive(uint8_t *buffer, uint8_t len); +#endif // RAW_ENABLE + +#endif // _MAIN_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_protocol.h b/tmk_core/protocol/arm_atsam/usb/usb_protocol.h new file mode 100644 index 0000000000..639b80a804 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_protocol.h @@ -0,0 +1,488 @@ +/** + * \file + * + * \brief USB protocol definitions. + * + * This file contains the USB definitions and data structures provided by the + * USB 2.0 specification. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _USB_PROTOCOL_H_ +#define _USB_PROTOCOL_H_ + +#include "usb_atmel.h" + +/** + * \ingroup usb_group + * \defgroup usb_protocol_group USB Protocol Definitions + * + * This module defines constants and data structures provided by the USB + * 2.0 specification. + * + * @{ + */ + +//! Value for field bcdUSB +#define USB_V2_0 0x0200 //!< USB Specification version 2.00 +#define USB_V2_1 0x0201 //!< USB Specification version 2.01 + +/*! \name Generic definitions (Class, subclass and protocol) + */ +//! @{ +#define NO_CLASS 0x00 +#define CLASS_VENDOR_SPECIFIC 0xFF +#define NO_SUBCLASS 0x00 +#define NO_PROTOCOL 0x00 +//! @} + +//! \name IAD (Interface Association Descriptor) constants +//! @{ +#define CLASS_IAD 0xEF +#define SUB_CLASS_IAD 0x02 +#define PROTOCOL_IAD 0x01 +//! @} + +/** + * \brief USB request data transfer direction (bmRequestType) + */ +#define USB_REQ_DIR_OUT (0 << 7) //!< Host to device +#define USB_REQ_DIR_IN (1 << 7) //!< Device to host +#define USB_REQ_DIR_MASK (1 << 7) //!< Mask + +/** + * \brief USB request types (bmRequestType) + */ +#define USB_REQ_TYPE_STANDARD (0 << 5) //!< Standard request +#define USB_REQ_TYPE_CLASS (1 << 5) //!< Class-specific request +#define USB_REQ_TYPE_VENDOR (2 << 5) //!< Vendor-specific request +#define USB_REQ_TYPE_MASK (3 << 5) //!< Mask + +/** + * \brief USB recipient codes (bmRequestType) + */ +#define USB_REQ_RECIP_DEVICE (0 << 0) //!< Recipient device +#define USB_REQ_RECIP_INTERFACE (1 << 0) //!< Recipient interface +#define USB_REQ_RECIP_ENDPOINT (2 << 0) //!< Recipient endpoint +#define USB_REQ_RECIP_OTHER (3 << 0) //!< Recipient other +#define USB_REQ_RECIP_MASK (0x1F) //!< Mask + +/** + * \brief Standard USB requests (bRequest) + */ +enum usb_reqid { + USB_REQ_GET_STATUS = 0, + USB_REQ_CLEAR_FEATURE = 1, + USB_REQ_SET_FEATURE = 3, + USB_REQ_SET_ADDRESS = 5, + USB_REQ_GET_DESCRIPTOR = 6, + USB_REQ_SET_DESCRIPTOR = 7, + USB_REQ_GET_CONFIGURATION = 8, + USB_REQ_SET_CONFIGURATION = 9, + USB_REQ_GET_INTERFACE = 10, + USB_REQ_SET_INTERFACE = 11, + USB_REQ_SYNCH_FRAME = 12, +}; + +/** + * \brief Standard USB device status flags + * + */ +enum usb_device_status { USB_DEV_STATUS_BUS_POWERED = 0, USB_DEV_STATUS_SELF_POWERED = 1, USB_DEV_STATUS_REMOTEWAKEUP = 2 }; + +/** + * \brief Standard USB Interface status flags + * + */ +enum usb_interface_status { USB_IFACE_STATUS_RESERVED = 0 }; + +/** + * \brief Standard USB endpoint status flags + * + */ +enum usb_endpoint_status { + USB_EP_STATUS_HALTED = 1, +}; + +/** + * \brief Standard USB device feature flags + * + * \note valid for SetFeature request. + */ +enum usb_device_feature { + USB_DEV_FEATURE_REMOTE_WAKEUP = 1, //!< Remote wakeup enabled + USB_DEV_FEATURE_TEST_MODE = 2, //!< USB test mode + USB_DEV_FEATURE_OTG_B_HNP_ENABLE = 3, + USB_DEV_FEATURE_OTG_A_HNP_SUPPORT = 4, + USB_DEV_FEATURE_OTG_A_ALT_HNP_SUPPORT = 5 +}; + +/** + * \brief Test Mode possible on HS USB device + * + * \note valid for USB_DEV_FEATURE_TEST_MODE request. + */ +enum usb_device_hs_test_mode { + USB_DEV_TEST_MODE_J = 1, + USB_DEV_TEST_MODE_K = 2, + USB_DEV_TEST_MODE_SE0_NAK = 3, + USB_DEV_TEST_MODE_PACKET = 4, + USB_DEV_TEST_MODE_FORCE_ENABLE = 5, +}; + +/** + * \brief Standard USB endpoint feature/status flags + */ +enum usb_endpoint_feature { + USB_EP_FEATURE_HALT = 0, +}; + +/** + * \brief Standard USB Test Mode Selectors + */ +enum usb_test_mode_selector { + USB_TEST_J = 0x01, + USB_TEST_K = 0x02, + USB_TEST_SE0_NAK = 0x03, + USB_TEST_PACKET = 0x04, + USB_TEST_FORCE_ENABLE = 0x05, +}; + +/** + * \brief Standard USB descriptor types + */ +enum usb_descriptor_type { + USB_DT_DEVICE = 1, + USB_DT_CONFIGURATION = 2, + USB_DT_STRING = 3, + USB_DT_INTERFACE = 4, + USB_DT_ENDPOINT = 5, + USB_DT_DEVICE_QUALIFIER = 6, + USB_DT_OTHER_SPEED_CONFIGURATION = 7, + USB_DT_INTERFACE_POWER = 8, + USB_DT_OTG = 9, + USB_DT_IAD = 0x0B, + USB_DT_BOS = 0x0F, + USB_DT_DEVICE_CAPABILITY = 0x10, +}; + +/** + * \brief USB Device Capability types + */ +enum usb_capability_type { + USB_DC_USB20_EXTENSION = 0x02, +}; + +/** + * \brief USB Device Capability - USB 2.0 Extension + * To fill bmAttributes field of usb_capa_ext_desc_t structure. + */ +enum usb_capability_extension_attr { + USB_DC_EXT_LPM = 0x00000002, +}; + +#define HIRD_50_US 0 +#define HIRD_125_US 1 +#define HIRD_200_US 2 +#define HIRD_275_US 3 +#define HIRD_350_US 4 +#define HIRD_425_US 5 +#define HIRD_500_US 6 +#define HIRD_575_US 7 +#define HIRD_650_US 8 +#define HIRD_725_US 9 +#define HIRD_800_US 10 +#define HIRD_875_US 11 +#define HIRD_950_US 12 +#define HIRD_1025_US 13 +#define HIRD_1100_US 14 +#define HIRD_1175_US 15 + +/** Fields definition from a LPM TOKEN */ +#define USB_LPM_ATTRIBUT_BLINKSTATE_MASK (0xF << 0) +#define USB_LPM_ATTRIBUT_FIRD_MASK (0xF << 4) +#define USB_LPM_ATTRIBUT_REMOTEWAKE_MASK (1 << 8) +#define USB_LPM_ATTRIBUT_BLINKSTATE(value) ((value & 0xF) << 0) +#define USB_LPM_ATTRIBUT_FIRD(value) ((value & 0xF) << 4) +#define USB_LPM_ATTRIBUT_REMOTEWAKE(value) ((value & 1) << 8) +#define USB_LPM_ATTRIBUT_BLINKSTATE_L1 USB_LPM_ATTRIBUT_BLINKSTATE(1) + +/** + * \brief Standard USB endpoint transfer types + */ +enum usb_ep_type { + USB_EP_TYPE_CONTROL = 0x00, + USB_EP_TYPE_ISOCHRONOUS = 0x01, + USB_EP_TYPE_BULK = 0x02, + USB_EP_TYPE_INTERRUPT = 0x03, + USB_EP_TYPE_MASK = 0x03, +}; + +/** + * \brief Standard USB language IDs for string descriptors + */ +enum usb_langid { + USB_LANGID_EN_US = 0x0409, //!< English (United States) +}; + +/** + * \brief Mask selecting the index part of an endpoint address + */ +#define USB_EP_ADDR_MASK 0x0f + +//! \brief USB address identifier +typedef uint8_t usb_add_t; + +/** + * \brief Endpoint transfer direction is IN + */ +#define USB_EP_DIR_IN 0x80 + +/** + * \brief Endpoint transfer direction is OUT + */ +#define USB_EP_DIR_OUT 0x00 + +//! \brief Endpoint identifier +typedef uint8_t usb_ep_t; + +/** + * \brief Maximum length in bytes of a USB descriptor + * + * The maximum length of a USB descriptor is limited by the 8-bit + * bLength field. + */ +#define USB_MAX_DESC_LEN 255 + +/* + * 2-byte alignment requested for all USB structures. + */ +COMPILER_PACK_SET(1) + +/** + * \brief A USB Device SETUP request + * + * The data payload of SETUP packets always follows this structure. + */ +typedef struct { + uint8_t bmRequestType; + uint8_t bRequest; + le16_t wValue; + le16_t wIndex; + le16_t wLength; +} usb_setup_req_t; + +/** + * \brief Standard USB device descriptor structure + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + le16_t bcdUSB; + uint8_t bDeviceClass; + uint8_t bDeviceSubClass; + uint8_t bDeviceProtocol; + uint8_t bMaxPacketSize0; + le16_t idVendor; + le16_t idProduct; + le16_t bcdDevice; + uint8_t iManufacturer; + uint8_t iProduct; + uint8_t iSerialNumber; + uint8_t bNumConfigurations; +} usb_dev_desc_t; + +/** + * \brief Standard USB device qualifier descriptor structure + * + * This descriptor contains information about the device when running at + * the "other" speed (i.e. if the device is currently operating at high + * speed, this descriptor can be used to determine what would change if + * the device was operating at full speed.) + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + le16_t bcdUSB; + uint8_t bDeviceClass; + uint8_t bDeviceSubClass; + uint8_t bDeviceProtocol; + uint8_t bMaxPacketSize0; + uint8_t bNumConfigurations; + uint8_t bReserved; +} usb_dev_qual_desc_t; + +/** + * \brief USB Device BOS descriptor structure + * + * The BOS descriptor (Binary device Object Store) defines a root + * descriptor that is similar to the configuration descriptor, and is + * the base descriptor for accessing a family of related descriptors. + * A host can read a BOS descriptor and learn from the wTotalLength field + * the entire size of the device-level descriptor set, or it can read in + * the entire BOS descriptor set of device capabilities. + * The host accesses this descriptor using the GetDescriptor() request. + * The descriptor type in the GetDescriptor() request is set to BOS. + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + le16_t wTotalLength; + uint8_t bNumDeviceCaps; +} usb_dev_bos_desc_t; + +/** + * \brief USB Device Capabilities - USB 2.0 Extension Descriptor structure + * + * Defines the set of USB 1.1-specific device level capabilities. + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDevCapabilityType; + le32_t bmAttributes; +} usb_dev_capa_ext_desc_t; + +/** + * \brief USB Device LPM Descriptor structure + * + * The BOS descriptor and capabilities descriptors for LPM. + */ +typedef struct { + usb_dev_bos_desc_t bos; + usb_dev_capa_ext_desc_t capa_ext; +} usb_dev_lpm_desc_t; + +/** + * \brief Standard USB Interface Association Descriptor structure + */ +typedef struct { + uint8_t bLength; //!< size of this descriptor in bytes + uint8_t bDescriptorType; //!< INTERFACE descriptor type + uint8_t bFirstInterface; //!< Number of interface + uint8_t bInterfaceCount; //!< value to select alternate setting + uint8_t bFunctionClass; //!< Class code assigned by the USB + uint8_t bFunctionSubClass; //!< Sub-class code assigned by the USB + uint8_t bFunctionProtocol; //!< Protocol code assigned by the USB + uint8_t iFunction; //!< Index of string descriptor +} usb_association_desc_t; + +/** + * \brief Standard USB configuration descriptor structure + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + le16_t wTotalLength; + uint8_t bNumInterfaces; + uint8_t bConfigurationValue; + uint8_t iConfiguration; + uint8_t bmAttributes; + uint8_t bMaxPower; +} usb_conf_desc_t; + +#define USB_CONFIG_ATTR_MUST_SET (1 << 7) //!< Must always be set +#define USB_CONFIG_ATTR_BUS_POWERED (0 << 6) //!< Bus-powered +#define USB_CONFIG_ATTR_SELF_POWERED (1 << 6) //!< Self-powered +#define USB_CONFIG_ATTR_REMOTE_WAKEUP (1 << 5) //!< remote wakeup supported + +#define USB_CONFIG_MAX_POWER(ma) (((ma) + 1) / 2) //!< Max power in mA + +/** + * \brief Standard USB association descriptor structure + */ +typedef struct { + uint8_t bLength; //!< Size of this descriptor in bytes + uint8_t bDescriptorType; //!< Interface descriptor type + uint8_t bFirstInterface; //!< Number of interface + uint8_t bInterfaceCount; //!< value to select alternate setting + uint8_t bFunctionClass; //!< Class code assigned by the USB + uint8_t bFunctionSubClass; //!< Sub-class code assigned by the USB + uint8_t bFunctionProtocol; //!< Protocol code assigned by the USB + uint8_t iFunction; //!< Index of string descriptor +} usb_iad_desc_t; + +/** + * \brief Standard USB interface descriptor structure + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bInterfaceNumber; + uint8_t bAlternateSetting; + uint8_t bNumEndpoints; + uint8_t bInterfaceClass; + uint8_t bInterfaceSubClass; + uint8_t bInterfaceProtocol; + uint8_t iInterface; +} usb_iface_desc_t; + +/** + * \brief Standard USB endpoint descriptor structure + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bEndpointAddress; + uint8_t bmAttributes; + le16_t wMaxPacketSize; + uint8_t bInterval; +} usb_ep_desc_t; + +/** + * \brief A standard USB string descriptor structure + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; +} usb_str_desc_t; + +typedef struct { + usb_str_desc_t desc; + le16_t string[1]; +} usb_str_lgid_desc_t; + +COMPILER_PACK_RESET() + +//! @} + +#endif /* _USB_PROTOCOL_H_ */ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_protocol_cdc.h b/tmk_core/protocol/arm_atsam/usb/usb_protocol_cdc.h new file mode 100644 index 0000000000..1d36d58dbd --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_protocol_cdc.h @@ -0,0 +1,190 @@ +/** + * \file + * + * \brief USB Communication Device Class (CDC) protocol definitions + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ +#ifndef _USB_PROTOCOL_CDC_H_ +#define _USB_PROTOCOL_CDC_H_ + +#include "compiler.h" + +#ifdef VIRTSER_ENABLE + +# define CDC_CLASS_DEVICE 0x02 //!< USB Communication Device Class +# define CDC_CLASS_COMM 0x02 //!< CDC Communication Class Interface +# define CDC_CLASS_DATA 0x0A //!< CDC Data Class Interface + +# define CDC_SUBCLASS_DLCM 0x01 //!< Direct Line Control Model +# define CDC_SUBCLASS_ACM 0x02 //!< Abstract Control Model +# define CDC_SUBCLASS_TCM 0x03 //!< Telephone Control Model +# define CDC_SUBCLASS_MCCM 0x04 //!< Multi-Channel Control Model +# define CDC_SUBCLASS_CCM 0x05 //!< CAPI Control Model +# define CDC_SUBCLASS_ETH 0x06 //!< Ethernet Networking Control Model +# define CDC_SUBCLASS_ATM 0x07 //!< ATM Networking Control Model + +# define CDC_PROTOCOL_V25TER 0x01 //!< Common AT commands + +# define CDC_PROTOCOL_I430 0x30 //!< ISDN BRI +# define CDC_PROTOCOL_HDLC 0x31 //!< HDLC +# define CDC_PROTOCOL_TRANS 0x32 //!< Transparent +# define CDC_PROTOCOL_Q921M 0x50 //!< Q.921 management protocol +# define CDC_PROTOCOL_Q921 0x51 //!< Q.931 [sic] Data link protocol +# define CDC_PROTOCOL_Q921TM 0x52 //!< Q.921 TEI-multiplexor +# define CDC_PROTOCOL_V42BIS 0x90 //!< Data compression procedures +# define CDC_PROTOCOL_Q931 0x91 //!< Euro-ISDN protocol control +# define CDC_PROTOCOL_V120 0x92 //!< V.24 rate adaption to ISDN +# define CDC_PROTOCOL_CAPI20 0x93 //!< CAPI Commands +# define CDC_PROTOCOL_HOST 0xFD //!< Host based driver + +# define CDC_PROTOCOL_PUFD 0xFE + +# define CDC_CS_INTERFACE 0x24 //!< Interface Functional Descriptor +# define CDC_CS_ENDPOINT 0x25 //!< Endpoint Functional Descriptor + +# define CDC_SCS_HEADER 0x00 //!< Header Functional Descriptor +# define CDC_SCS_CALL_MGMT 0x01 //!< Call Management +# define CDC_SCS_ACM 0x02 //!< Abstract Control Management +# define CDC_SCS_UNION 0x06 //!< Union Functional Descriptor + +# define USB_REQ_CDC_SEND_ENCAPSULATED_COMMAND 0x00 +# define USB_REQ_CDC_GET_ENCAPSULATED_RESPONSE 0x01 +# define USB_REQ_CDC_SET_COMM_FEATURE 0x02 +# define USB_REQ_CDC_GET_COMM_FEATURE 0x03 +# define USB_REQ_CDC_CLEAR_COMM_FEATURE 0x04 +# define USB_REQ_CDC_SET_AUX_LINE_STATE 0x10 +# define USB_REQ_CDC_SET_HOOK_STATE 0x11 +# define USB_REQ_CDC_PULSE_SETUP 0x12 +# define USB_REQ_CDC_SEND_PULSE 0x13 +# define USB_REQ_CDC_SET_PULSE_TIME 0x14 +# define USB_REQ_CDC_RING_AUX_JACK 0x15 +# define USB_REQ_CDC_SET_LINE_CODING 0x20 +# define USB_REQ_CDC_GET_LINE_CODING 0x21 +# define USB_REQ_CDC_SET_CONTROL_LINE_STATE 0x22 +# define USB_REQ_CDC_SEND_BREAK 0x23 +# define USB_REQ_CDC_SET_RINGER_PARMS 0x30 +# define USB_REQ_CDC_GET_RINGER_PARMS 0x31 +# define USB_REQ_CDC_SET_OPERATION_PARMS 0x32 +# define USB_REQ_CDC_GET_OPERATION_PARMS 0x33 +# define USB_REQ_CDC_SET_LINE_PARMS 0x34 +# define USB_REQ_CDC_GET_LINE_PARMS 0x35 +# define USB_REQ_CDC_DIAL_DIGITS 0x36 +# define USB_REQ_CDC_SET_UNIT_PARAMETER 0x37 +# define USB_REQ_CDC_GET_UNIT_PARAMETER 0x38 +# define USB_REQ_CDC_CLEAR_UNIT_PARAMETER 0x39 +# define USB_REQ_CDC_GET_PROFILE 0x3A +# define USB_REQ_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40 +# define USB_REQ_CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERNFILTER 0x41 +# define USB_REQ_CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERNFILTER 0x42 +# define USB_REQ_CDC_SET_ETHERNET_PACKET_FILTER 0x43 +# define USB_REQ_CDC_GET_ETHERNET_STATISTIC 0x44 +# define USB_REQ_CDC_SET_ATM_DATA_FORMAT 0x50 +# define USB_REQ_CDC_GET_ATM_DEVICE_STATISTICS 0x51 +# define USB_REQ_CDC_SET_ATM_DEFAULT_VC 0x52 +# define USB_REQ_CDC_GET_ATM_VC_STATISTICS 0x53 +// Added bNotification codes according cdc spec 1.1 chapter 6.3 +# define USB_REQ_CDC_NOTIFY_RING_DETECT 0x09 +# define USB_REQ_CDC_NOTIFY_SERIAL_STATE 0x20 +# define USB_REQ_CDC_NOTIFY_CALL_STATE_CHANGE 0x28 +# define USB_REQ_CDC_NOTIFY_LINE_STATE_CHANGE 0x29 + +# define CDC_CALL_MGMT_SUPPORTED (1 << 0) +# define CDC_CALL_MGMT_OVER_DCI (1 << 1) +# define CDC_ACM_SUPPORT_FEATURE_REQUESTS (1 << 0) +# define CDC_ACM_SUPPORT_LINE_REQUESTS (1 << 1) +# define CDC_ACM_SUPPORT_SENDBREAK_REQUESTS (1 << 2) +# define CDC_ACM_SUPPORT_NOTIFY_REQUESTS (1 << 3) + +# pragma pack(push, 1) +typedef struct { + le32_t dwDTERate; + uint8_t bCharFormat; + uint8_t bParityType; + uint8_t bDataBits; +} usb_cdc_line_coding_t; +# pragma pack(pop) + +enum cdc_char_format { + CDC_STOP_BITS_1 = 0, //!< 1 stop bit + CDC_STOP_BITS_1_5 = 1, //!< 1.5 stop bits + CDC_STOP_BITS_2 = 2, //!< 2 stop bits +}; + +enum cdc_parity { + CDC_PAR_NONE = 0, //!< No parity + CDC_PAR_ODD = 1, //!< Odd parity + CDC_PAR_EVEN = 2, //!< Even parity + CDC_PAR_MARK = 3, //!< Parity forced to 0 (space) + CDC_PAR_SPACE = 4, //!< Parity forced to 1 (mark) +}; + +typedef struct { + uint16_t value; +} usb_cdc_control_signal_t; + +# define CDC_CTRL_SIGNAL_ACTIVATE_CARRIER (1 << 1) +# define CDC_CTRL_SIGNAL_DTE_PRESENT (1 << 0) + +typedef struct { + uint8_t bmRequestType; + uint8_t bNotification; + le16_t wValue; + le16_t wIndex; + le16_t wLength; +} usb_cdc_notify_msg_t; + +typedef struct { + usb_cdc_notify_msg_t header; + le16_t value; +} usb_cdc_notify_serial_state_t; + +# define CDC_SERIAL_STATE_DCD CPU_TO_LE16((1 << 0)) +# define CDC_SERIAL_STATE_DSR CPU_TO_LE16((1 << 1)) +# define CDC_SERIAL_STATE_BREAK CPU_TO_LE16((1 << 2)) +# define CDC_SERIAL_STATE_RING CPU_TO_LE16((1 << 3)) +# define CDC_SERIAL_STATE_FRAMING CPU_TO_LE16((1 << 4)) +# define CDC_SERIAL_STATE_PARITY CPU_TO_LE16((1 << 5)) +# define CDC_SERIAL_STATE_OVERRUN CPU_TO_LE16((1 << 6)) + +#endif + +#endif // _USB_PROTOCOL_CDC_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h b/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h new file mode 100644 index 0000000000..c984c0762f --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h @@ -0,0 +1,317 @@ +/** + * \file + * + * \brief USB Human Interface Device (HID) protocol definitions. + * + * Copyright (c) 2009-2015 Atmel Corporation. All rights reserved. + * + * \asf_license_start + * + * \page License + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an + * Atmel microcontroller product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * \asf_license_stop + * + */ +/* + * Support and FAQ: visit Atmel Support + */ + +#ifndef _USB_PROTOCOL_HID_H_ +#define _USB_PROTOCOL_HID_H_ + +/** + * \ingroup usb_protocol_group + * \defgroup usb_hid_protocol USB Human Interface Device (HID) + * protocol definitions + * \brief USB Human Interface Device (HID) protocol definitions + * + * @{ + */ + +//! \name Possible Class value +//@{ +#define HID_CLASS 0x03 +//@} + +//! \name Possible SubClass value +//@{ +//! Interface subclass NO support BOOT protocol +#define HID_SUB_CLASS_NOBOOT 0x00 +//! Interface subclass support BOOT protocol +#define HID_SUB_CLASS_BOOT 0x01 +//@} + +//! \name Possible protocol value +//@{ +//! Protocol generic standard +#define HID_PROTOCOL_GENERIC 0x00 +//! Protocol keyboard standard +#define HID_PROTOCOL_KEYBOARD 0x01 +//! Protocol mouse standard +#define HID_PROTOCOL_MOUSE 0x02 +//@} + +//! \brief Hid USB requests (bRequest) +enum usb_reqid_hid { + USB_REQ_HID_GET_REPORT = 0x01, + USB_REQ_HID_GET_IDLE = 0x02, + USB_REQ_HID_GET_PROTOCOL = 0x03, + USB_REQ_HID_SET_REPORT = 0x09, + USB_REQ_HID_SET_IDLE = 0x0A, + USB_REQ_HID_SET_PROTOCOL = 0x0B, +}; + +//! \brief HID USB descriptor types +enum usb_descriptor_type_hid { + USB_DT_HID = 0x21, + USB_DT_HID_REPORT = 0x22, + USB_DT_HID_PHYSICAL = 0x23, +}; + +//! \brief HID Type for report descriptor +enum usb_hid_item_report_type { + USB_HID_ITEM_REPORT_TYPE_MAIN = 0, + USB_HID_ITEM_REPORT_TYPE_GLOBAL = 1, + USB_HID_ITEM_REPORT_TYPE_LOCAL = 2, + USB_HID_ITEM_REPORT_TYPE_LONG = 3, +}; + +//! \brief HID report type +enum usb_hid_report_type { + USB_HID_REPORT_TYPE_INPUT = 1, + USB_HID_REPORT_TYPE_OUTPUT = 2, + USB_HID_REPORT_TYPE_FEATURE = 3, +}; + +//! \brief HID protocol +enum usb_hid_protocol { + USB_HID_PROCOTOL_BOOT = 0, + USB_HID_PROCOTOL_REPORT = 1, +}; + +COMPILER_PACK_SET(1) + +//! \brief HID Descriptor +typedef struct { + uint8_t bLength; //!< Size of this descriptor in bytes + uint8_t bDescriptorType; //!< HID descriptor type + le16_t bcdHID; //!< Binary Coded Decimal Spec. release + uint8_t bCountryCode; //!< Hardware target country + uint8_t bNumDescriptors; //!< Number of HID class descriptors to follow + uint8_t bRDescriptorType; //!< Report descriptor type + le16_t wDescriptorLength; //!< Total length of Report descriptor +} usb_hid_descriptor_t; + +COMPILER_PACK_RESET() + +//! \name HID Report type +//! Used by SETUP_HID_GET_REPORT & SETUP_HID_SET_REPORT +//! @{ +#define REPORT_TYPE_INPUT 0x01 +#define REPORT_TYPE_OUTPUT 0x02 +#define REPORT_TYPE_FEATURE 0x03 +//! @} + +//! \name Constants of field DESCRIPTOR_HID +//! @{ +//! Numeric expression identifying the HID Class +//! Specification release (here V1.11) +#define USB_HID_BDC_V1_11 0x0111 +//! Numeric expression specifying the number of class descriptors +//! Note: Always at least one i.e. Report descriptor. +#define USB_HID_NUM_DESC 0x01 + +//! \name Country code +//! @{ +#define USB_HID_NO_COUNTRY_CODE 0 // Not Supported +#define USB_HID_COUNTRY_ARABIC 1 // Arabic +#define USB_HID_COUNTRY_BELGIAN 2 // Belgian +#define USB_HID_COUNTRY_CANADIAN_BILINGUAL 3 // Canadian-Bilingual +#define USB_HID_COUNTRY_CANADIAN_FRENCH 4 // Canadian-French +#define USB_HID_COUNTRY_CZECH_REPUBLIC 5 // Czech Republic +#define USB_HID_COUNTRY_DANISH 6 // Danish +#define USB_HID_COUNTRY_FINNISH 7 // Finnish +#define USB_HID_COUNTRY_FRENCH 8 // French +#define USB_HID_COUNTRY_GERMAN 9 // German +#define USB_HID_COUNTRY_GREEK 10 // Greek +#define USB_HID_COUNTRY_HEBREW 11 // Hebrew +#define USB_HID_COUNTRY_HUNGARY 12 // Hungary +#define USB_HID_COUNTRY_INTERNATIONAL_ISO 13 // International (ISO) +#define USB_HID_COUNTRY_ITALIAN 14 // Italian +#define USB_HID_COUNTRY_JAPAN_KATAKANA 15 // Japan (Katakana) +#define USB_HID_COUNTRY_KOREAN 16 // Korean +#define USB_HID_COUNTRY_LATIN_AMERICAN 17 // Latin American +#define USB_HID_COUNTRY_NETHERLANDS_DUTCH 18 // Netherlands/Dutch +#define USB_HID_COUNTRY_NORWEGIAN 19 // Norwegian +#define USB_HID_COUNTRY_PERSIAN_FARSI 20 // Persian (Farsi) +#define USB_HID_COUNTRY_POLAND 21 // Poland +#define USB_HID_COUNTRY_PORTUGUESE 22 // Portuguese +#define USB_HID_COUNTRY_RUSSIA 23 // Russia +#define USB_HID_COUNTRY_SLOVAKIA 24 // Slovakia +#define USB_HID_COUNTRY_SPANISH 25 // Spanish +#define USB_HID_COUNTRY_SWEDISH 26 // Swedish +#define USB_HID_COUNTRY_SWISS_FRENCH 27 // Swiss/French +#define USB_HID_COUNTRY_SWISS_GERMAN 28 // Swiss/German +#define USB_HID_COUNTRY_SWITZERLAND 29 // Switzerland +#define USB_HID_COUNTRY_TAIWAN 30 // Taiwan +#define USB_HID_COUNTRY_TURKISH_Q 31 // Turkish-Q +#define USB_HID_COUNTRY_UK 32 // UK +#define USB_HID_COUNTRY_US 33 // US +#define USB_HID_COUNTRY_YUGOSLAVIA 34 // Yugoslavia +#define USB_HID_COUNTRY_TURKISH_F \ + 35 // Turkish-F + //! @} + //! @} +//! @} + +//! \name HID KEYS values +//! @{ +#define HID_A 0x04 +#define HID_B 0x05 +#define HID_C 0x06 +#define HID_D 0x07 +#define HID_E 0x08 +#define HID_F 0x09 +#define HID_G 0x0A +#define HID_H 0x0B +#define HID_I 0x0C +#define HID_J 0x0D +#define HID_K 0x0E +#define HID_L 0x0F +#define HID_M 0x10 +#define HID_N 0x11 +#define HID_O 0x12 +#define HID_P 0x13 +#define HID_Q 0x14 +#define HID_R 0x15 +#define HID_S 0x16 +#define HID_T 0x17 +#define HID_U 0x18 +#define HID_V 0x19 +#define HID_W 0x1A +#define HID_X 0x1B +#define HID_Y 0x1C +#define HID_Z 0x1D +#define HID_1 30 +#define HID_2 31 +#define HID_3 32 +#define HID_4 33 +#define HID_5 34 +#define HID_6 35 +#define HID_7 36 +#define HID_8 37 +#define HID_9 38 +#define HID_0 39 +#define HID_ENTER 40 +#define HID_ESCAPE 41 +#define HID_BACKSPACE 42 +#define HID_TAB 43 +#define HID_SPACEBAR 44 +#define HID_UNDERSCORE 45 +#define HID_PLUS 46 +#define HID_OPEN_BRACKET 47 // { +#define HID_CLOSE_BRACKET 48 // } +#define HID_BACKSLASH 49 +#define HID_ASH 50 // # ~ +#define HID_COLON 51 // ; : +#define HID_QUOTE 52 // ' " +#define HID_TILDE 53 +#define HID_COMMA 54 +#define HID_DOT 55 +#define HID_SLASH 56 +#define HID_CAPS_LOCK 57 +#define HID_F1 58 +#define HID_F2 59 +#define HID_F3 60 +#define HID_F4 61 +#define HID_F5 62 +#define HID_F6 63 +#define HID_F7 64 +#define HID_F8 65 +#define HID_F9 66 +#define HID_F10 67 +#define HID_F11 68 +#define HID_F12 69 +#define HID_PRINTSCREEN 70 +#define HID_SCROLL_LOCK 71 +#define HID_PAUSE 72 +#define HID_INSERT 73 +#define HID_HOME 74 +#define HID_PAGEUP 75 +#define HID_DELETE 76 +#define HID_END 77 +#define HID_PAGEDOWN 78 +#define HID_RIGHT 79 +#define HID_LEFT 80 +#define HID_DOWN 81 +#define HID_UP 82 +#define HID_KEYPAD_NUM_LOCK 83 +#define HID_KEYPAD_DIVIDE 84 +#define HID_KEYPAD_AT 85 +#define HID_KEYPAD_MULTIPLY 85 +#define HID_KEYPAD_MINUS 86 +#define HID_KEYPAD_PLUS 87 +#define HID_KEYPAD_ENTER 88 +#define HID_KEYPAD_1 89 +#define HID_KEYPAD_2 90 +#define HID_KEYPAD_3 91 +#define HID_KEYPAD_4 92 +#define HID_KEYPAD_5 93 +#define HID_KEYPAD_6 94 +#define HID_KEYPAD_7 95 +#define HID_KEYPAD_8 96 +#define HID_KEYPAD_9 97 +#define HID_KEYPAD_0 98 + +//! \name HID modifier values +//! @{ +#define HID_MODIFIER_NONE 0x00 +#define HID_MODIFIER_LEFT_CTRL 0x01 +#define HID_MODIFIER_LEFT_SHIFT 0x02 +#define HID_MODIFIER_LEFT_ALT 0x04 +#define HID_MODIFIER_LEFT_UI 0x08 +#define HID_MODIFIER_RIGHT_CTRL 0x10 +#define HID_MODIFIER_RIGHT_SHIFT 0x20 +#define HID_MODIFIER_RIGHT_ALT 0x40 +#define HID_MODIFIER_RIGHT_UI 0x80 +//! @} +//! @} + +//! \name HID KEYS values +//! @{ +#define HID_LED_NUM_LOCK (1 << 0) +#define HID_LED_CAPS_LOCK (1 << 1) +#define HID_LED_SCROLL_LOCK (1 << 2) +#define HID_LED_COMPOSE (1 << 3) +#define HID_LED_KANA (1 << 4) +//! @} + +#endif // _USB_PROTOCOL_HID_H_ diff --git a/tmk_core/protocol/arm_atsam/usb/usb_util.c b/tmk_core/protocol/arm_atsam/usb/usb_util.c new file mode 100644 index 0000000000..c7555c84c6 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_util.c @@ -0,0 +1,49 @@ +#include "samd51j18a.h" +#include "string.h" +#include "usb_util.h" + +char digit(int d, int radix) { + if (d < 10) { + return d + '0'; + } else { + return d - 10 + 'A'; + } +} + +int UTIL_ltoa_radix(int64_t value, char *dest, int radix) { + int64_t original = value; // save original value + char buf[25] = ""; + int c = sizeof(buf) - 1; + int last = c; + int d; + int size; + + if (value < 0) // if it's negative, take the absolute value + value = -value; + + do // write least significant digit of value that's left + { + d = (value % radix); + buf[--c] = digit(d, radix); + value /= radix; + } while (value); + + if (original < 0) buf[--c] = '-'; + + size = last - c + 1; // includes null at end + memcpy(dest, &buf[c], last - c + 1); + + return (size - 1); // without null termination +} + +int UTIL_ltoa(int64_t value, char *dest) { + return UTIL_ltoa_radix(value, dest, 10); +} + +int UTIL_itoa(int value, char *dest) { + return UTIL_ltoa_radix((int64_t)value, dest, 10); +} + +int UTIL_utoa(uint32_t value, char *dest) { + return UTIL_ltoa_radix((int64_t)value, dest, 10); +} diff --git a/tmk_core/protocol/arm_atsam/usb/usb_util.h b/tmk_core/protocol/arm_atsam/usb/usb_util.h new file mode 100644 index 0000000000..3e5b4fbb32 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/usb/usb_util.h @@ -0,0 +1,9 @@ +#ifndef _USB_UTIL_H_ +#define _USB_UTIL_H_ + +int UTIL_ltoa_radix(int64_t value, char *dest, int radix); +int UTIL_ltoa(int64_t value, char *dest); +int UTIL_itoa(int value, char *dest); +int UTIL_utoa(uint32_t value, char *dest); + +#endif //_USB_UTIL_H_ diff --git a/tmk_core/protocol/arm_atsam/wait_api.h b/tmk_core/protocol/arm_atsam/wait_api.h new file mode 100644 index 0000000000..b3918e5346 --- /dev/null +++ b/tmk_core/protocol/arm_atsam/wait_api.h @@ -0,0 +1,7 @@ +#ifndef _wait_api_h_ +#define _wait_api_h_ + +void wait_ms(uint64_t msec); +void wait_us(uint16_t usec); + +#endif diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 5720bc3c4c..b879bdac77 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -40,6 +40,9 @@ # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP FALSE #endif +#ifdef SLEEP_LED_ENABLE +# include "sleep_led.h" +#endif #ifdef MIDI_ENABLE # include "qmk_midi.h" #endif @@ -59,23 +62,14 @@ */ /* declarations */ -void send_keyboard(report_keyboard_t *report); -void send_nkro(report_nkro_t *report); -void send_mouse(report_mouse_t *report); -void send_extra(report_extra_t *report); -void send_raw_hid(uint8_t *data, uint8_t length); +uint8_t keyboard_leds(void); +void send_keyboard(report_keyboard_t *report); +void send_nkro(report_nkro_t *report); +void send_mouse(report_mouse_t *report); +void send_extra(report_extra_t *report); /* host struct */ -host_driver_t chibios_driver = { - .keyboard_leds = usb_device_state_get_leds, - .send_keyboard = send_keyboard, - .send_nkro = send_nkro, - .send_mouse = send_mouse, - .send_extra = send_extra, -#ifdef RAW_ENABLE - .send_raw_hid = send_raw_hid, -#endif -}; +host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; #ifdef VIRTSER_ENABLE void virtser_task(void); @@ -141,6 +135,8 @@ void protocol_setup(void) { // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); } +static host_driver_t *driver = NULL; + void protocol_pre_init(void) { /* Init USB */ usb_event_queue_init(); @@ -151,11 +147,18 @@ void protocol_pre_init(void) { #endif /* Wait until USB is active */ -#ifdef USB_WAIT_FOR_ENUMERATION - while (USB_DRIVER.state != USB_ACTIVE) { + while (true) { +#if defined(USB_WAIT_FOR_ENUMERATION) + if (USB_DRIVER.state == USB_ACTIVE) { + driver = &chibios_driver; + break; + } +#else + driver = &chibios_driver; + break; +#endif wait_ms(50); } -#endif /* Do need to wait here! * Otherwise the next print might start a transfer on console EP @@ -168,7 +171,7 @@ void protocol_pre_init(void) { } void protocol_post_init(void) { - host_set_driver(&chibios_driver); + host_set_driver(driver); } void protocol_pre_task(void) { diff --git a/tmk_core/protocol/chibios/usb_endpoints.h b/tmk_core/protocol/chibios/usb_endpoints.h index 9fad83726e..a4e5ed88fc 100644 --- a/tmk_core/protocol/chibios/usb_endpoints.h +++ b/tmk_core/protocol/chibios/usb_endpoints.h @@ -121,7 +121,7 @@ typedef enum { #define IS_VALID_USB_ENDPOINT_IN_LUT(i) ((i) >= 0 && (i) < USB_ENDPOINT_IN_COUNT) -extern usb_endpoint_in_lut_t usb_endpoint_interface_lut[TOTAL_INTERFACES]; +usb_endpoint_in_lut_t usb_endpoint_interface_lut[TOTAL_INTERFACES]; typedef enum { #if defined(RAW_ENABLE) diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index b798a8d1cb..2024a3bc7f 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -21,6 +21,10 @@ #include "host.h" #include "suspend.h" #include "timer.h" +#ifdef SLEEP_LED_ENABLE +# include "sleep_led.h" +# include "led.h" +#endif #include "wait.h" #include "usb_endpoints.h" #include "usb_device_state.h" @@ -28,10 +32,6 @@ #include "usb_driver.h" #include "usb_types.h" -#ifdef RAW_ENABLE -# include "raw_hid.h" -#endif - #ifdef NKRO_ENABLE # include "keycode_config.h" @@ -54,6 +54,10 @@ extern keymap_config_t keymap_config; extern usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT]; extern usb_endpoint_out_t usb_endpoints_out[USB_ENDPOINT_OUT_COUNT]; +uint8_t _Alignas(2) keyboard_idle = 0; +uint8_t _Alignas(2) keyboard_protocol = 1; +uint8_t keyboard_led_state = 0; + static bool __attribute__((__unused__)) send_report_buffered(usb_endpoint_in_lut_t endpoint, void *report, size_t size); static void __attribute__((__unused__)) flush_report_buffered(usb_endpoint_in_lut_t endpoint, bool padded); static bool __attribute__((__unused__)) receive_report(usb_endpoint_out_lut_t endpoint, void *report, size_t size); @@ -127,11 +131,19 @@ static inline bool usb_event_queue_dequeue(usbevent_t *event) { static inline void usb_event_suspend_handler(void) { usb_device_state_set_suspend(USB_DRIVER.configuration != 0, USB_DRIVER.configuration); +#ifdef SLEEP_LED_ENABLE + sleep_led_enable(); +#endif /* SLEEP_LED_ENABLE */ } static inline void usb_event_wakeup_handler(void) { suspend_wakeup_init(); usb_device_state_set_resume(USB_DRIVER.configuration != 0, USB_DRIVER.configuration); +#ifdef SLEEP_LED_ENABLE + sleep_led_disable(); + // NOTE: converters may not accept this + led_set(host_keyboard_leds()); +#endif /* SLEEP_LED_ENABLE */ } bool last_suspend_state = false; @@ -156,7 +168,6 @@ void usb_event_queue_task(void) { break; case USB_EVENT_RESET: usb_device_state_set_reset(); - usb_device_state_set_protocol(USB_PROTOCOL_REPORT); break; default: // Nothing to do, we don't handle it. @@ -239,10 +250,10 @@ static void set_led_transfer_cb(USBDriver *usbp) { if (setup->wLength == 2) { uint8_t report_id = set_report_buf[0]; if ((report_id == REPORT_ID_KEYBOARD) || (report_id == REPORT_ID_NKRO)) { - usb_device_state_set_leds(set_report_buf[1]); + keyboard_led_state = set_report_buf[1]; } } else { - usb_device_state_set_leds(set_report_buf[0]); + keyboard_led_state = set_report_buf[0]; } } @@ -258,9 +269,7 @@ static bool usb_requests_hook_cb(USBDriver *usbp) { return usb_get_report_cb(usbp); case HID_REQ_GetProtocol: if (setup->wIndex == KEYBOARD_INTERFACE) { - static uint8_t keyboard_protocol; - keyboard_protocol = usb_device_state_get_protocol(); - usbSetupTransfer(usbp, &keyboard_protocol, sizeof(keyboard_protocol), NULL); + usbSetupTransfer(usbp, &keyboard_protocol, sizeof(uint8_t), NULL); return true; } break; @@ -283,12 +292,12 @@ static bool usb_requests_hook_cb(USBDriver *usbp) { break; case HID_REQ_SetProtocol: if (setup->wIndex == KEYBOARD_INTERFACE) { - usb_device_state_set_protocol(setup->wValue.lbyte); + keyboard_protocol = setup->wValue.word; } usbSetupTransfer(usbp, NULL, 0, NULL); return true; case HID_REQ_SetIdle: - usb_device_state_set_idle_rate(setup->wValue.hbyte); + keyboard_idle = setup->wValue.hbyte; return usb_set_idle_cb(usbp); } break; @@ -317,10 +326,18 @@ static bool usb_requests_hook_cb(USBDriver *usbp) { return false; } +static __attribute__((unused)) void dummy_cb(USBDriver *usbp) { + (void)usbp; +} + static const USBConfig usbcfg = { usb_event_cb, /* USB events callback */ usb_get_descriptor_cb, /* Device GET_DESCRIPTOR request callback */ usb_requests_hook_cb, /* Requests hook callback */ +#if STM32_USB_USE_OTG1 == TRUE || STM32_USB_USE_OTG2 == TRUE + dummy_cb, /* Workaround for OTG Peripherals not servicing new interrupts + after resuming from suspend. */ +#endif }; void init_usb_driver(USBDriver *usbp) { @@ -379,6 +396,11 @@ __attribute__((weak)) void restart_usb_driver(USBDriver *usbp) { * --------------------------------------------------------- */ +/* LED status */ +uint8_t keyboard_leds(void) { + return keyboard_led_state; +} + /** * @brief Send a report to the host, the report is enqueued into an output * queue and send once the USB endpoint becomes empty. @@ -436,7 +458,7 @@ static bool receive_report(usb_endpoint_out_lut_t endpoint, void *report, size_t void send_keyboard(report_keyboard_t *report) { /* If we're in Boot Protocol, don't send any report ID or other funky fields */ - if (usb_device_state_get_protocol() == USB_PROTOCOL_BOOT) { + if (!keyboard_protocol) { send_report(USB_ENDPOINT_IN_KEYBOARD, &report->mods, 8); } else { send_report(USB_ENDPOINT_IN_KEYBOARD, report, KEYBOARD_REPORT_SIZE); @@ -507,13 +529,19 @@ void console_task(void) { #endif /* CONSOLE_ENABLE */ #ifdef RAW_ENABLE -void send_raw_hid(uint8_t *data, uint8_t length) { +void raw_hid_send(uint8_t *data, uint8_t length) { if (length != RAW_EPSIZE) { return; } send_report(USB_ENDPOINT_IN_RAW, data, length); } +__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { + // Users should #include "raw_hid.h" in their own code + // and implement this function there. Leave this as weak linkage + // so users can opt to not handle data coming in. +} + void raw_hid_task(void) { uint8_t buffer[RAW_EPSIZE]; while (receive_report(USB_ENDPOINT_OUT_RAW, buffer, sizeof(buffer))) { diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 4874d7c1d3..732fbdc37d 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -21,7 +21,6 @@ along with this program. If not, see . #include "host.h" #include "util.h" #include "debug.h" -#include "usb_device_state.h" #ifdef DIGITIZER_ENABLE # include "digitizer.h" @@ -31,34 +30,9 @@ along with this program. If not, see . # include "joystick.h" #endif -#ifdef CONNECTION_ENABLE -# include "connection.h" -#endif - #ifdef BLUETOOTH_ENABLE # include "bluetooth.h" - -static void bluetooth_send_extra(report_extra_t *report) { - switch (report->report_id) { - case REPORT_ID_SYSTEM: - bluetooth_send_system(report->usage); - return; - case REPORT_ID_CONSUMER: - bluetooth_send_consumer(report->usage); - return; - } -} - -host_driver_t bt_driver = { - .keyboard_leds = bluetooth_keyboard_leds, - .send_keyboard = bluetooth_send_keyboard, - .send_nkro = bluetooth_send_nkro, - .send_mouse = bluetooth_send_mouse, - .send_extra = bluetooth_send_extra, -# ifdef RAW_ENABLE - .send_raw_hid = bluetooth_send_raw_hid, -# endif -}; +# include "outputselect.h" #endif #ifdef NKRO_ENABLE @@ -78,39 +52,6 @@ host_driver_t *host_get_driver(void) { return driver; } -static host_driver_t *host_get_active_driver(void) { -#ifdef CONNECTION_ENABLE - switch (connection_get_host()) { -# ifdef BLUETOOTH_ENABLE - case CONNECTION_HOST_BLUETOOTH: - return &bt_driver; -# endif - case CONNECTION_HOST_NONE: - return NULL; - default: - break; - } -#endif - return driver; -} - -bool host_can_send_nkro(void) { -#ifdef CONNECTION_ENABLE - switch (connection_get_host()) { -# ifdef BLUETOOTH_ENABLE - case CONNECTION_HOST_BLUETOOTH: - return bluetooth_can_send_nkro(); -# endif - case CONNECTION_HOST_NONE: - return false; - default: - break; - } -#endif - - return usb_device_state_get_protocol() == USB_PROTOCOL_REPORT; -} - #ifdef SPLIT_KEYBOARD uint8_t split_led_state = 0; void set_split_host_keyboard_leds(uint8_t led_state) { @@ -122,10 +63,7 @@ uint8_t host_keyboard_leds(void) { #ifdef SPLIT_KEYBOARD if (!is_keyboard_master()) return split_led_state; #endif - - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->keyboard_leds) return 0; - + if (!driver) return 0; return (*driver->keyboard_leds)(); } @@ -135,9 +73,14 @@ led_t host_keyboard_led_state(void) { /* send report */ void host_keyboard_send(report_keyboard_t *report) { - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_keyboard) return; +#ifdef BLUETOOTH_ENABLE + if (where_to_send() == OUTPUT_BLUETOOTH) { + bluetooth_send_keyboard(report); + return; + } +#endif + if (!driver) return; #ifdef KEYBOARD_SHARED_EP report->report_id = REPORT_ID_KEYBOARD; #endif @@ -153,9 +96,7 @@ void host_keyboard_send(report_keyboard_t *report) { } void host_nkro_send(report_nkro_t *report) { - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_nkro) return; - + if (!driver) return; report->report_id = REPORT_ID_NKRO; (*driver->send_nkro)(report); @@ -169,9 +110,14 @@ void host_nkro_send(report_nkro_t *report) { } void host_mouse_send(report_mouse_t *report) { - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_mouse) return; +#ifdef BLUETOOTH_ENABLE + if (where_to_send() == OUTPUT_BLUETOOTH) { + bluetooth_send_mouse(report); + return; + } +#endif + if (!driver) return; #ifdef MOUSE_SHARED_EP report->report_id = REPORT_ID_MOUSE; #endif @@ -187,8 +133,7 @@ void host_system_send(uint16_t usage) { if (usage == last_system_usage) return; last_system_usage = usage; - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_extra) return; + if (!driver) return; report_extra_t report = { .report_id = REPORT_ID_SYSTEM, @@ -201,8 +146,14 @@ void host_consumer_send(uint16_t usage) { if (usage == last_consumer_usage) return; last_consumer_usage = usage; - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_extra) return; +#ifdef BLUETOOTH_ENABLE + if (where_to_send() == OUTPUT_BLUETOOTH) { + bluetooth_send_consumer(usage); + return; + } +#endif + + if (!driver) return; report_extra_t report = { .report_id = REPORT_ID_CONSUMER, @@ -242,10 +193,6 @@ void host_joystick_send(joystick_t *joystick) { }, # endif -# ifdef JOYSTICK_HAS_HAT - .hat = joystick->hat, -# endif - # if JOYSTICK_BUTTON_COUNT > 0 .buttons = { @@ -302,15 +249,6 @@ void host_programmable_button_send(uint32_t data) { __attribute__((weak)) void send_programmable_button(report_programmable_button_t *report) {} -#ifdef RAW_ENABLE -void host_raw_hid_send(uint8_t *data, uint8_t length) { - host_driver_t *driver = host_get_active_driver(); - if (!driver || !driver->send_raw_hid) return; - - (*driver->send_raw_hid)(data, length); -} -#endif - uint16_t host_last_system_usage(void) { return last_system_usage; } diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index a0b1e73dcc..959753ae02 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -27,12 +27,14 @@ along with this program. If not, see . extern "C" { #endif +extern uint8_t keyboard_idle; +extern uint8_t keyboard_protocol; + /* host driver */ void host_set_driver(host_driver_t *driver); host_driver_t *host_get_driver(void); /* host driver interface */ -bool host_can_send_nkro(void); uint8_t host_keyboard_leds(void); led_t host_keyboard_led_state(void); void host_keyboard_send(report_keyboard_t *report); @@ -41,7 +43,6 @@ void host_mouse_send(report_mouse_t *report); void host_system_send(uint16_t usage); void host_consumer_send(uint16_t usage); void host_programmable_button_send(uint32_t data); -void host_raw_hid_send(uint8_t *data, uint8_t length); uint16_t host_last_system_usage(void); uint16_t host_last_consumer_usage(void); diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h index c2835aaa99..8aa38b6dee 100644 --- a/tmk_core/protocol/host_driver.h +++ b/tmk_core/protocol/host_driver.h @@ -29,9 +29,6 @@ typedef struct { void (*send_nkro)(report_nkro_t *); void (*send_mouse)(report_mouse_t *); void (*send_extra)(report_extra_t *); -#ifdef RAW_ENABLE - void (*send_raw_hid)(uint8_t *, uint8_t); -#endif } host_driver_t; void send_joystick(report_joystick_t *report); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index e13f4b548e..b0c9758d2f 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -44,6 +44,9 @@ #include "led.h" #include "sendchar.h" #include "debug.h" +#ifdef SLEEP_LED_ENABLE +# include "sleep_led.h" +#endif #include "suspend.h" #include "wait.h" @@ -69,27 +72,20 @@ # define USB_WAIT_FOR_ENUMERATION #endif +uint8_t keyboard_idle = 0; +/* 0: Boot Protocol, 1: Report Protocol(default) */ +uint8_t keyboard_protocol = 1; +static uint8_t keyboard_led_state = 0; + static report_keyboard_t keyboard_report_sent; /* Host driver */ -static void send_keyboard(report_keyboard_t *report); -static void send_nkro(report_nkro_t *report); -static void send_mouse(report_mouse_t *report); -static void send_extra(report_extra_t *report); -#ifdef RAW_ENABLE -static void send_raw_hid(uint8_t *data, uint8_t length); -#endif - -host_driver_t lufa_driver = { - .keyboard_leds = usb_device_state_get_leds, - .send_keyboard = send_keyboard, - .send_nkro = send_nkro, - .send_mouse = send_mouse, - .send_extra = send_extra, -#ifdef RAW_ENABLE - .send_raw_hid = send_raw_hid, -#endif -}; +static uint8_t keyboard_leds(void); +static void send_keyboard(report_keyboard_t *report); +static void send_nkro(report_nkro_t *report); +static void send_mouse(report_mouse_t *report); +static void send_extra(report_extra_t *report); +host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; void send_report(uint8_t endpoint, void *report, size_t size) { uint8_t timeout = 255; @@ -141,11 +137,21 @@ USB_ClassInfo_CDC_Device_t cdc_device = { * * FIXME: Needs doc */ -static void send_raw_hid(uint8_t *data, uint8_t length) { +void raw_hid_send(uint8_t *data, uint8_t length) { if (length != RAW_EPSIZE) return; send_report(RAW_IN_EPNUM, data, RAW_EPSIZE); } +/** \brief Raw HID Receive + * + * FIXME: Needs doc + */ +__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { + // Users should #include "raw_hid.h" in their own code + // and implement this function there. Leave this as weak linkage + // so users can opt to not handle data coming in. +} + /** \brief Raw HID Task * * FIXME: Needs doc @@ -265,7 +271,6 @@ void EVENT_USB_Device_Disconnect(void) { void EVENT_USB_Device_Reset(void) { print("[R]"); usb_device_state_set_reset(); - usb_device_state_set_protocol(USB_PROTOCOL_REPORT); } /** \brief Event USB Device Connect @@ -275,6 +280,10 @@ void EVENT_USB_Device_Reset(void) { void EVENT_USB_Device_Suspend(void) { print("[S]"); usb_device_state_set_suspend(USB_Device_ConfigurationNumber != 0, USB_Device_ConfigurationNumber); + +#ifdef SLEEP_LED_ENABLE + sleep_led_enable(); +#endif } /** \brief Event USB Device Connect @@ -288,6 +297,12 @@ void EVENT_USB_Device_WakeUp(void) { #endif usb_device_state_set_resume(USB_DeviceState == DEVICE_STATE_Configured, USB_Device_ConfigurationNumber); + +#ifdef SLEEP_LED_ENABLE + sleep_led_disable(); + // NOTE: converters may not accept this + led_set(host_keyboard_leds()); +#endif } #ifdef CONSOLE_ENABLE @@ -438,10 +453,10 @@ void EVENT_USB_Device_ControlRequest(void) { uint8_t report_id = Endpoint_Read_8(); if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) { - usb_device_state_set_leds(Endpoint_Read_8()); + keyboard_led_state = Endpoint_Read_8(); } } else { - usb_device_state_set_leds(Endpoint_Read_8()); + keyboard_led_state = Endpoint_Read_8(); } Endpoint_ClearOUT(); @@ -458,7 +473,7 @@ void EVENT_USB_Device_ControlRequest(void) { Endpoint_ClearSETUP(); while (!(Endpoint_IsINReady())) ; - Endpoint_Write_8(usb_device_state_get_protocol()); + Endpoint_Write_8(keyboard_protocol); Endpoint_ClearIN(); Endpoint_ClearStatusStage(); } @@ -471,7 +486,7 @@ void EVENT_USB_Device_ControlRequest(void) { Endpoint_ClearSETUP(); Endpoint_ClearStatusStage(); - usb_device_state_set_protocol(USB_ControlRequest.wValue & 0xFF); + keyboard_protocol = (USB_ControlRequest.wValue & 0xFF); clear_keyboard(); } } @@ -482,7 +497,7 @@ void EVENT_USB_Device_ControlRequest(void) { Endpoint_ClearSETUP(); Endpoint_ClearStatusStage(); - usb_device_state_set_idle_rate(USB_ControlRequest.wValue >> 8); + keyboard_idle = ((USB_ControlRequest.wValue & 0xFF00) >> 8); } break; @@ -491,7 +506,7 @@ void EVENT_USB_Device_ControlRequest(void) { Endpoint_ClearSETUP(); while (!(Endpoint_IsINReady())) ; - Endpoint_Write_8(usb_device_state_get_idle_rate()); + Endpoint_Write_8(keyboard_idle); Endpoint_ClearIN(); Endpoint_ClearStatusStage(); } @@ -507,6 +522,13 @@ void EVENT_USB_Device_ControlRequest(void) { /******************************************************************************* * Host driver ******************************************************************************/ +/** \brief Keyboard LEDs + * + * FIXME: Needs doc + */ +static uint8_t keyboard_leds(void) { + return keyboard_led_state; +} /** \brief Send Keyboard * @@ -514,7 +536,7 @@ void EVENT_USB_Device_ControlRequest(void) { */ static void send_keyboard(report_keyboard_t *report) { /* If we're in Boot Protocol, don't send any report ID or other funky fields */ - if (usb_device_state_get_protocol() == USB_PROTOCOL_BOOT) { + if (!keyboard_protocol) { send_report(KEYBOARD_IN_EPNUM, &report->mods, 8); } else { send_report(KEYBOARD_IN_EPNUM, report, KEYBOARD_REPORT_SIZE); diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c index 8cae256cc6..0166bf654f 100644 --- a/tmk_core/protocol/report.c +++ b/tmk_core/protocol/report.c @@ -19,10 +19,19 @@ #include "host.h" #include "keycode_config.h" #include "debug.h" -#include "usb_device_state.h" #include "util.h" #include +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE +# define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) +# define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS) +# define RO_INC(a) RO_ADD(a, 1) +# define RO_DEC(a) RO_SUB(a, 1) +static int8_t cb_head = 0; +static int8_t cb_tail = 0; +static int8_t cb_count = 0; +#endif + /** \brief has_anykey * * FIXME: Needs doc @@ -32,7 +41,7 @@ uint8_t has_anykey(void) { uint8_t* p = keyboard_report->keys; uint8_t lp = sizeof(keyboard_report->keys); #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { p = nkro_report->bits; lp = sizeof(nkro_report->bits); } @@ -49,27 +58,38 @@ uint8_t has_anykey(void) { */ uint8_t get_first_key(void) { #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { uint8_t i = 0; for (; i < NKRO_REPORT_BITS && !nkro_report->bits[i]; i++) ; return i << 3 | biton(nkro_report->bits[i]); } #endif +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE + uint8_t i = cb_head; + do { + if (keyboard_report->keys[i] != 0) { + break; + } + i = RO_INC(i); + } while (i != cb_tail); + return keyboard_report->keys[i]; +#else return keyboard_report->keys[0]; +#endif } /** \brief Checks if a key is pressed in the report * * Returns true if the keyboard_report reports that the key is pressed, otherwise false - * Note: The function doesn't support modifiers currently, and it returns false for KC_NO + * Note: The function doesn't support modifers currently, and it returns false for KC_NO */ bool is_key_pressed(uint8_t key) { if (key == KC_NO) { return false; } #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { if ((key >> 3) < NKRO_REPORT_BITS) { return nkro_report->bits[key >> 3] & 1 << (key & 7); } else { @@ -90,6 +110,50 @@ bool is_key_pressed(uint8_t key) { * FIXME: Needs doc */ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE + int8_t i = cb_head; + int8_t empty = -1; + if (cb_count) { + do { + if (keyboard_report->keys[i] == code) { + return; + } + if (empty == -1 && keyboard_report->keys[i] == 0) { + empty = i; + } + i = RO_INC(i); + } while (i != cb_tail); + if (i == cb_tail) { + if (cb_tail == cb_head) { + // buffer is full + if (empty == -1) { + // pop head when has no empty space + cb_head = RO_INC(cb_head); + cb_count--; + } else { + // left shift when has empty space + uint8_t offset = 1; + i = RO_INC(empty); + do { + if (keyboard_report->keys[i] != 0) { + keyboard_report->keys[empty] = keyboard_report->keys[i]; + keyboard_report->keys[i] = 0; + empty = RO_INC(empty); + } else { + offset++; + } + i = RO_INC(i); + } while (i != cb_tail); + cb_tail = RO_SUB(cb_tail, offset); + } + } + } + } + // add to tail + keyboard_report->keys[cb_tail] = code; + cb_tail = RO_INC(cb_tail); + cb_count++; +#else int8_t i = 0; int8_t empty = -1; for (; i < KEYBOARD_REPORT_KEYS; i++) { @@ -105,6 +169,7 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { keyboard_report->keys[empty] = code; } } +#endif } /** \brief del key byte @@ -112,11 +177,38 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { * FIXME: Needs doc */ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE + uint8_t i = cb_head; + if (cb_count) { + do { + if (keyboard_report->keys[i] == code) { + keyboard_report->keys[i] = 0; + cb_count--; + if (cb_count == 0) { + // reset head and tail + cb_tail = cb_head = 0; + } + if (i == RO_DEC(cb_tail)) { + // left shift when next to tail + do { + cb_tail = RO_DEC(cb_tail); + if (keyboard_report->keys[RO_DEC(cb_tail)] != 0) { + break; + } + } while (cb_tail != cb_head); + } + break; + } + i = RO_INC(i); + } while (i != cb_tail); + } +#else for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { if (keyboard_report->keys[i] == code) { keyboard_report->keys[i] = 0; } } +#endif } #ifdef NKRO_ENABLE @@ -151,7 +243,7 @@ void del_key_bit(report_nkro_t* nkro_report, uint8_t code) { */ void add_key_to_report(uint8_t key) { #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { add_key_bit(nkro_report, key); return; } @@ -165,7 +257,7 @@ void add_key_to_report(uint8_t key) { */ void del_key_from_report(uint8_t key) { #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { del_key_bit(nkro_report, key); return; } @@ -180,7 +272,7 @@ void del_key_from_report(uint8_t key) { void clear_keys_from_report(void) { // not clear mods #ifdef NKRO_ENABLE - if (host_can_send_nkro() && keymap_config.nkro) { + if (keyboard_protocol && keymap_config.nkro) { memset(nkro_report->bits, 0, sizeof(nkro_report->bits)); return; } diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 9053b0bb3f..0e4f6e9def 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -194,25 +194,11 @@ typedef struct { } PACKED report_programmable_button_t; #ifdef MOUSE_EXTENDED_REPORT -# define MOUSE_REPORT_XY_MIN INT16_MIN -# define MOUSE_REPORT_XY_MAX INT16_MAX typedef int16_t mouse_xy_report_t; #else -# define MOUSE_REPORT_XY_MIN INT8_MIN -# define MOUSE_REPORT_XY_MAX INT8_MAX typedef int8_t mouse_xy_report_t; #endif -#ifdef WHEEL_EXTENDED_REPORT -# define MOUSE_REPORT_HV_MIN INT16_MIN -# define MOUSE_REPORT_HV_MAX INT16_MAX -typedef int16_t mouse_hv_report_t; -#else -# define MOUSE_REPORT_HV_MIN INT8_MIN -# define MOUSE_REPORT_HV_MAX INT8_MAX -typedef int8_t mouse_hv_report_t; -#endif - typedef struct { #ifdef MOUSE_SHARED_EP uint8_t report_id; @@ -224,8 +210,8 @@ typedef struct { #endif mouse_xy_report_t x; mouse_xy_report_t y; - mouse_hv_report_t v; - mouse_hv_report_t h; + int8_t v; + int8_t h; } PACKED report_mouse_t; typedef struct { @@ -254,11 +240,6 @@ typedef struct { joystick_axis_t axes[JOYSTICK_AXIS_COUNT]; #endif -#ifdef JOYSTICK_HAS_HAT - int8_t hat : 4; - uint8_t reserved : 4; -#endif - #if JOYSTICK_BUTTON_COUNT > 0 uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; #endif diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index ceab9eef9a..7efd085ea3 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -49,16 +49,6 @@ # include "os_detection.h" #endif -#if defined(SERIAL_NUMBER) || (defined(SERIAL_NUMBER_USE_HARDWARE_ID) && SERIAL_NUMBER_USE_HARDWARE_ID == TRUE) - -# define HAS_SERIAL_NUMBER - -# if defined(SERIAL_NUMBER_USE_HARDWARE_ID) && SERIAL_NUMBER_USE_HARDWARE_ID == TRUE -# include "hardware_id.h" -# endif - -#endif // defined(SERIAL_NUMBER) || (defined(SERIAL_NUMBER_USE_HARDWARE_ID) && SERIAL_NUMBER_USE_HARDWARE_ID == TRUE) - // clang-format off /* @@ -165,59 +155,21 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { # endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), -# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE - HID_RI_COLLECTION(8, 0x02), - // Feature report and padding (1 byte) - HID_RI_USAGE(8, 0x48), // Resolution Multiplier - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x02), - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0x01), - HID_RI_PHYSICAL_MINIMUM(8, 1), - HID_RI_PHYSICAL_MAXIMUM(8, POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER), - HID_RI_UNIT_EXPONENT(8, POINTING_DEVICE_HIRES_SCROLL_EXPONENT), - HID_RI_FEATURE(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), - HID_RI_PHYSICAL_MINIMUM(8, 0x00), - HID_RI_PHYSICAL_MAXIMUM(8, 0x00), - HID_RI_REPORT_SIZE(8, 0x06), - HID_RI_FEATURE(8, HID_IOF_CONSTANT), -# endif - - // Vertical wheel (1 or 2 bytes) - HID_RI_USAGE(8, 0x38), // Wheel -# ifndef WHEEL_EXTENDED_REPORT + // Vertical wheel (1 byte) + HID_RI_USAGE(8, 0x38), // Wheel HID_RI_LOGICAL_MINIMUM(8, -127), HID_RI_LOGICAL_MAXIMUM(8, 127), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x08), -# else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x10), -# endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), - - // Horizontal wheel (1 or 2 bytes) - HID_RI_USAGE_PAGE(8, 0x0C),// Consumer - HID_RI_USAGE(16, 0x0238), // AC Pan -# ifndef WHEEL_EXTENDED_REPORT + // Horizontal wheel (1 byte) + HID_RI_USAGE_PAGE(8, 0x0C), // Consumer + HID_RI_USAGE(16, 0x0238), // AC Pan HID_RI_LOGICAL_MINIMUM(8, -127), HID_RI_LOGICAL_MAXIMUM(8, 127), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x08), -# else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x10), -# endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), - -# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE - HID_RI_END_COLLECTION(0), -# endif - HID_RI_END_COLLECTION(0), HID_RI_END_COLLECTION(0), # ifndef MOUSE_SHARED_EP @@ -271,23 +223,6 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), # endif -# ifdef JOYSTICK_HAS_HAT - // Hat Switch (4 bits) - HID_RI_USAGE(8, 0x39), // Hat Switch - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0x07), - HID_RI_PHYSICAL_MINIMUM(8, 0), - HID_RI_PHYSICAL_MAXIMUM(16, 315), - HID_RI_UNIT(8, 0x14), // Degree, English Rotation - HID_RI_REPORT_COUNT(8, 1), - HID_RI_REPORT_SIZE(8, 4), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NULLSTATE), - // Padding (4 bits) - HID_RI_REPORT_COUNT(8, 0x04), - HID_RI_REPORT_SIZE(8, 0x01), - HID_RI_INPUT(8, HID_IOF_CONSTANT), -# endif - # if JOYSTICK_BUTTON_COUNT > 0 HID_RI_USAGE_PAGE(8, 0x09), // Button HID_RI_USAGE_MINIMUM(8, 0x01), @@ -346,7 +281,7 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_LOGICAL_MAXIMUM(16, 0x7FFF), HID_RI_REPORT_COUNT(8, 0x02), HID_RI_REPORT_SIZE(8, 0x10), - HID_RI_UNIT(8, 0x13), // Inch, English Linear + HID_RI_UNIT(8, 0x33), // Inch, English Linear HID_RI_UNIT_EXPONENT(8, 0x0E), // -2 HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), HID_RI_END_COLLECTION(0), @@ -516,11 +451,11 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = { .ReleaseNumber = DEVICE_VER, .ManufacturerStrIndex = 0x01, .ProductStrIndex = 0x02, -#ifdef HAS_SERIAL_NUMBER +#if defined(SERIAL_NUMBER) .SerialNumStrIndex = 0x03, -#else // HAS_SERIAL_NUMBER +#else .SerialNumStrIndex = 0x00, -#endif // HAS_SERIAL_NUMBER +#endif .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS }; @@ -1102,13 +1037,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = { /* * String descriptors */ - -#define USB_DESCRIPTOR_SIZE_LITERAL_U16STRING(str) \ - (sizeof(USB_Descriptor_Header_t) + sizeof(str) - sizeof(wchar_t)) // include header, don't count null terminator - const USB_Descriptor_String_t PROGMEM LanguageString = { .Header = { - .Size = sizeof(USB_Descriptor_Header_t) + sizeof(uint16_t), + .Size = 4, .Type = DTYPE_String }, .UnicodeString = {LANGUAGE_ID_ENG} @@ -1116,7 +1047,7 @@ const USB_Descriptor_String_t PROGMEM LanguageString = { const USB_Descriptor_String_t PROGMEM ManufacturerString = { .Header = { - .Size = USB_DESCRIPTOR_SIZE_LITERAL_U16STRING(USBSTR(MANUFACTURER)), + .Size = sizeof(USBSTR(MANUFACTURER)), .Type = DTYPE_String }, .UnicodeString = USBSTR(MANUFACTURER) @@ -1124,70 +1055,24 @@ const USB_Descriptor_String_t PROGMEM ManufacturerString = { const USB_Descriptor_String_t PROGMEM ProductString = { .Header = { - .Size = USB_DESCRIPTOR_SIZE_LITERAL_U16STRING(USBSTR(PRODUCT)), + .Size = sizeof(USBSTR(PRODUCT)), .Type = DTYPE_String }, .UnicodeString = USBSTR(PRODUCT) }; -// clang-format on - #if defined(SERIAL_NUMBER) -// clang-format off const USB_Descriptor_String_t PROGMEM SerialNumberString = { .Header = { - .Size = USB_DESCRIPTOR_SIZE_LITERAL_U16STRING(USBSTR(SERIAL_NUMBER)), + .Size = sizeof(USBSTR(SERIAL_NUMBER)), .Type = DTYPE_String }, .UnicodeString = USBSTR(SERIAL_NUMBER) }; +#endif + // clang-format on -#else // defined(SERIAL_NUMBER) - -# if defined(SERIAL_NUMBER_USE_HARDWARE_ID) && SERIAL_NUMBER_USE_HARDWARE_ID == TRUE - -# if defined(__AVR__) -# error Dynamically setting the serial number on AVR is unsupported as LUFA requires the string to be in PROGMEM. -# endif // defined(__AVR__) - -# ifndef SERIAL_NUMBER_LENGTH -# define SERIAL_NUMBER_LENGTH (sizeof(hardware_id_t) * 2) -# endif - -# define SERIAL_NUMBER_DESCRIPTOR_SIZE \ - (sizeof(USB_Descriptor_Header_t) /* Descriptor header */ \ - + (((SERIAL_NUMBER_LENGTH) + 1) * sizeof(wchar_t))) /* Length of serial number, with potential extra character as we're converting 2 nibbles at a time */ - -uint8_t SerialNumberString[SERIAL_NUMBER_DESCRIPTOR_SIZE] = {0}; - -void set_serial_number_descriptor(void) { - static bool is_set = false; - if (is_set) { - return; - } - is_set = true; - - static const char hex_str[] = "0123456789ABCDEF"; - hardware_id_t id = get_hardware_id(); - USB_Descriptor_String_t* desc = (USB_Descriptor_String_t*)SerialNumberString; - - // Copy across nibbles from the hardware ID as unicode hex characters - int length = MIN(sizeof(id) * 2, SERIAL_NUMBER_LENGTH); - uint8_t* p = (uint8_t*)&id; - for (int i = 0; i < length; i += 2) { - desc->UnicodeString[i + 0] = hex_str[p[i / 2] >> 4]; - desc->UnicodeString[i + 1] = hex_str[p[i / 2] & 0xF]; - } - - desc->Header.Size = sizeof(USB_Descriptor_Header_t) + (length * sizeof(wchar_t)); // includes header, don't count null terminator - desc->Header.Type = DTYPE_String; -} - -# endif // defined(SERIAL_NUMBER_USE_HARDWARE_ID) && SERIAL_NUMBER_USE_HARDWARE_ID == TRUE - -#endif // defined(SERIAL_NUMBER) - /** * This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" * documentation) by the application code so that the address and size of a requested descriptor can be given @@ -1229,18 +1114,13 @@ uint16_t get_usb_descriptor(const uint16_t wValue, const uint16_t wIndex, const Size = pgm_read_byte(&ProductString.Header.Size); break; -#ifdef HAS_SERIAL_NUMBER +#if defined(SERIAL_NUMBER) case 0x03: - Address = (const USB_Descriptor_String_t*)&SerialNumberString; -# if defined(SERIAL_NUMBER) - Size = pgm_read_byte(&SerialNumberString.Header.Size); -# else - set_serial_number_descriptor(); - Size = ((const USB_Descriptor_String_t*)SerialNumberString)->Header.Size; -# endif + Address = &SerialNumberString; + Size = pgm_read_byte(&SerialNumberString.Header.Size); break; -#endif // HAS_SERIAL_NUMBER +#endif } #ifdef OS_DETECTION_ENABLE process_wlength(wLength); diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 1de8c5ec88..ecfb022702 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -279,6 +279,8 @@ enum usb_endpoints { # define MAX_ENDPOINTS USB_MAX_ENDPOINTS #endif +// TODO - ARM_ATSAM + #if (NEXT_EPNUM - 1) > MAX_ENDPOINTS # error There are not enough available endpoints to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Console, NKRO, MIDI, Serial, Steno #endif diff --git a/tmk_core/protocol/usb_descriptor_common.h b/tmk_core/protocol/usb_descriptor_common.h index f782d83fbc..909c230a99 100644 --- a/tmk_core/protocol/usb_descriptor_common.h +++ b/tmk_core/protocol/usb_descriptor_common.h @@ -32,23 +32,3 @@ #ifndef RAW_USAGE_ID # define RAW_USAGE_ID 0x61 #endif - -///////////////////// -// Hires Scroll Defaults - -#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE -# ifdef POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER -# if POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER > 127 || POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER < 1 -# error "POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER must be between 1 and 127, inclusive!" -# endif -# else -# define POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER 120 -# endif -# ifdef POINTING_DEVICE_HIRES_SCROLL_EXPONENT -# if POINTING_DEVICE_HIRES_SCROLL_EXPONENT > 127 || POINTING_DEVICE_HIRES_SCROLL_EXPONENT < 0 -# error "POINTING_DEVICE_HIRES_SCROLL_EXPONENT must be between 0 and 127, inclusive!" -# endif -# else -# define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 0 -# endif -#endif \ No newline at end of file diff --git a/tmk_core/protocol/usb_device_state.c b/tmk_core/protocol/usb_device_state.c index 98ccfbc902..4cd241528d 100644 --- a/tmk_core/protocol/usb_device_state.c +++ b/tmk_core/protocol/usb_device_state.c @@ -24,15 +24,15 @@ # include "os_detection.h" #endif -static struct usb_device_state usb_device_state = {.idle_rate = 0, .leds = 0, .protocol = USB_PROTOCOL_REPORT, .configure_state = USB_DEVICE_STATE_NO_INIT}; +enum usb_device_state usb_device_state = USB_DEVICE_STATE_NO_INIT; -__attribute__((weak)) void notify_usb_device_state_change_kb(struct usb_device_state usb_device_state) { +__attribute__((weak)) void notify_usb_device_state_change_kb(enum usb_device_state usb_device_state) { notify_usb_device_state_change_user(usb_device_state); } -__attribute__((weak)) void notify_usb_device_state_change_user(struct usb_device_state usb_device_state) {} +__attribute__((weak)) void notify_usb_device_state_change_user(enum usb_device_state usb_device_state) {} -static void notify_usb_device_state_change(struct usb_device_state usb_device_state) { +static void notify_usb_device_state_change(enum usb_device_state usb_device_state) { #if defined(HAPTIC_ENABLE) && HAPTIC_OFF_IN_LOW_POWER haptic_notify_usb_device_state_change(); #endif @@ -44,58 +44,27 @@ static void notify_usb_device_state_change(struct usb_device_state usb_device_st #endif } -void usb_device_state_set_configuration(bool is_configured, uint8_t configuration_number) { - usb_device_state.configure_state = is_configured ? USB_DEVICE_STATE_CONFIGURED : USB_DEVICE_STATE_INIT; +void usb_device_state_set_configuration(bool isConfigured, uint8_t configurationNumber) { + usb_device_state = isConfigured ? USB_DEVICE_STATE_CONFIGURED : USB_DEVICE_STATE_INIT; notify_usb_device_state_change(usb_device_state); } -void usb_device_state_set_suspend(bool is_configured, uint8_t configuration_number) { - usb_device_state.configure_state = USB_DEVICE_STATE_SUSPEND; +void usb_device_state_set_suspend(bool isConfigured, uint8_t configurationNumber) { + usb_device_state = USB_DEVICE_STATE_SUSPEND; notify_usb_device_state_change(usb_device_state); } -void usb_device_state_set_resume(bool is_configured, uint8_t configuration_number) { - usb_device_state.configure_state = is_configured ? USB_DEVICE_STATE_CONFIGURED : USB_DEVICE_STATE_INIT; +void usb_device_state_set_resume(bool isConfigured, uint8_t configurationNumber) { + usb_device_state = isConfigured ? USB_DEVICE_STATE_CONFIGURED : USB_DEVICE_STATE_INIT; notify_usb_device_state_change(usb_device_state); } void usb_device_state_set_reset(void) { - usb_device_state.configure_state = USB_DEVICE_STATE_INIT; + usb_device_state = USB_DEVICE_STATE_INIT; notify_usb_device_state_change(usb_device_state); } void usb_device_state_init(void) { - usb_device_state.configure_state = USB_DEVICE_STATE_INIT; + usb_device_state = USB_DEVICE_STATE_INIT; notify_usb_device_state_change(usb_device_state); } - -inline usb_configure_state_t usb_device_state_get_configure_state(void) { - return usb_device_state.configure_state; -} - -void usb_device_state_set_protocol(usb_hid_protocol_t protocol) { - usb_device_state.protocol = protocol == USB_PROTOCOL_BOOT ? USB_PROTOCOL_BOOT : USB_PROTOCOL_REPORT; - notify_usb_device_state_change(usb_device_state); -} - -inline usb_hid_protocol_t usb_device_state_get_protocol() { - return usb_device_state.protocol; -} - -void usb_device_state_set_leds(uint8_t leds) { - usb_device_state.leds = leds; - notify_usb_device_state_change(usb_device_state); -} - -inline uint8_t usb_device_state_get_leds(void) { - return usb_device_state.leds; -} - -void usb_device_state_set_idle_rate(uint8_t idle_rate) { - usb_device_state.idle_rate = idle_rate; - notify_usb_device_state_change(usb_device_state); -} - -inline uint8_t usb_device_state_get_idle_rate(void) { - return usb_device_state.idle_rate; -} diff --git a/tmk_core/protocol/usb_device_state.h b/tmk_core/protocol/usb_device_state.h index 6d12f144fe..3be65ea7e1 100644 --- a/tmk_core/protocol/usb_device_state.h +++ b/tmk_core/protocol/usb_device_state.h @@ -20,41 +20,20 @@ #include #include -typedef enum { +void usb_device_state_set_configuration(bool isConfigured, uint8_t configurationNumber); +void usb_device_state_set_suspend(bool isConfigured, uint8_t configurationNumber); +void usb_device_state_set_resume(bool isConfigured, uint8_t configurationNumber); +void usb_device_state_set_reset(void); +void usb_device_state_init(void); + +enum usb_device_state { USB_DEVICE_STATE_NO_INIT = 0, // We're in this state before calling usb_device_state_init() USB_DEVICE_STATE_INIT = 1, // Can consume up to 100mA USB_DEVICE_STATE_CONFIGURED = 2, // Can consume up to what is specified in configuration descriptor, typically 500mA USB_DEVICE_STATE_SUSPEND = 3 // Can consume only suspend current -} usb_configure_state_t; - -typedef enum { - USB_PROTOCOL_BOOT = 0, - USB_PROTOCOL_REPORT = 1, -} usb_hid_protocol_t; - -// note: we can't typedef this struct to usb_device_state_t because it would -// conflict with the previous definition in: -// lib/chibios-contrib/ext/nxp-middleware-usb/device/usb_device.h -struct usb_device_state { - uint8_t idle_rate; - uint8_t leds; - usb_hid_protocol_t protocol; - usb_configure_state_t configure_state; }; -void usb_device_state_set_configuration(bool is_configured, uint8_t configuration_number); -void usb_device_state_set_suspend(bool is_configured, uint8_t configuration_number); -void usb_device_state_set_resume(bool is_configured, uint8_t configuration_number); -void usb_device_state_set_reset(void); -void usb_device_state_init(void); -usb_configure_state_t usb_device_state_get_configure_state(void); -void usb_device_state_set_protocol(usb_hid_protocol_t protocol); -usb_hid_protocol_t usb_device_state_get_protocol(void); -void usb_device_state_set_leds(uint8_t leds); -uint8_t usb_device_state_get_leds(void); -void usb_device_state_set_idle_rate(uint8_t idle_rate); -uint8_t usb_device_state_get_idle_rate(void); -void usb_device_state_reset_hid_state(void); +extern enum usb_device_state usb_device_state; -void notify_usb_device_state_change_kb(struct usb_device_state usb_device_state); -void notify_usb_device_state_change_user(struct usb_device_state usb_device_state); +void notify_usb_device_state_change_kb(enum usb_device_state usb_device_state); +void notify_usb_device_state_change_user(enum usb_device_state usb_device_state); diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c index e2d0c4112e..41ccf451fd 100644 --- a/tmk_core/protocol/vusb/protocol.c +++ b/tmk_core/protocol/vusb/protocol.c @@ -27,6 +27,10 @@ #include "wait.h" #include "sendchar.h" +#ifdef SLEEP_LED_ENABLE +# include "sleep_led.h" +#endif + /* This is from main.c of USBaspLoader */ static void initForUsbConnectivity(void) { uint8_t i = 0; @@ -60,6 +64,22 @@ static inline void vusb_send_remote_wakeup(void) { bool vusb_suspended = false; +static inline void vusb_suspend(void) { +#ifdef SLEEP_LED_ENABLE + sleep_led_enable(); +#endif + + suspend_power_down(); +} + +static inline void vusb_wakeup(void) { + suspend_wakeup_init(); + +#ifdef SLEEP_LED_ENABLE + sleep_led_disable(); +#endif +} + /** \brief Setup USB * * FIXME: Needs doc @@ -113,7 +133,7 @@ void protocol_pre_task(void) { if (should_do_suspend()) { dprintln("suspending keyboard"); while (should_do_suspend()) { - suspend_power_down(); + vusb_suspend(); if (suspend_wakeup_condition()) { vusb_send_remote_wakeup(); @@ -128,7 +148,7 @@ void protocol_pre_task(void) { # endif } } - suspend_wakeup_init(); + vusb_wakeup(); } #endif } diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 1f0f82664b..c8ab494253 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -21,7 +21,6 @@ along with this program. If not, see . #include -#include "compiler_support.h" #include "usbconfig.h" #include "host.h" #include "report.h" @@ -31,7 +30,6 @@ along with this program. If not, see . #include "debug.h" #include "wait.h" #include "usb_descriptor_common.h" -#include "usb_device_state.h" #ifdef RAW_ENABLE # include "raw_hid.h" @@ -81,12 +79,16 @@ enum usb_interfaces { #define MAX_INTERFACES 3 -STATIC_ASSERT(TOTAL_INTERFACES <= MAX_INTERFACES, "There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console."); +_Static_assert(TOTAL_INTERFACES <= MAX_INTERFACES, "There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console."); #if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) && CONSOLE_ENABLE # error Mouse/Extra Keys share an endpoint with Console. Please disable one of the two. #endif +static uint8_t keyboard_led_state = 0; +uint8_t keyboard_idle = 0; +uint8_t keyboard_protocol = 1; + static report_keyboard_t keyboard_report_sent; static void send_report_fragment(uint8_t endpoint, void *data, size_t size) { @@ -145,7 +147,7 @@ static void send_report(uint8_t endpoint, void *report, size_t size) { static uint8_t raw_output_buffer[RAW_BUFFER_SIZE]; static uint8_t raw_output_received_bytes = 0; -static void send_raw_hid(uint8_t *data, uint8_t length) { +void raw_hid_send(uint8_t *data, uint8_t length) { if (length != RAW_BUFFER_SIZE) { return; } @@ -153,6 +155,12 @@ static void send_raw_hid(uint8_t *data, uint8_t length) { send_report(4, data, 32); } +__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { + // Users should #include "raw_hid.h" in their own code + // and implement this function there. Leave this as weak linkage + // so users can opt to not handle data coming in. +} + void raw_hid_task(void) { usbPoll(); @@ -204,31 +212,24 @@ void console_task(void) { /*------------------------------------------------------------------* * Host driver *------------------------------------------------------------------*/ -static void send_keyboard(report_keyboard_t *report); -static void send_nkro(report_nkro_t *report); -static void send_mouse(report_mouse_t *report); -static void send_extra(report_extra_t *report); -#ifdef RAW_ENABLE -static void send_raw_hid(uint8_t *data, uint8_t length); -#endif +static uint8_t keyboard_leds(void); +static void send_keyboard(report_keyboard_t *report); +static void send_nkro(report_nkro_t *report); +static void send_mouse(report_mouse_t *report); +static void send_extra(report_extra_t *report); -static host_driver_t driver = { - .keyboard_leds = usb_device_state_get_leds, - .send_keyboard = send_keyboard, - .send_nkro = send_nkro, - .send_mouse = send_mouse, - .send_extra = send_extra, -#ifdef RAW_ENABLE - .send_raw_hid = send_raw_hid, -#endif -}; +static host_driver_t driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; host_driver_t *vusb_driver(void) { return &driver; } +static uint8_t keyboard_leds(void) { + return keyboard_led_state; +} + static void send_keyboard(report_keyboard_t *report) { - if (usb_device_state_get_protocol() == USB_PROTOCOL_BOOT) { + if (!keyboard_protocol) { send_report(1, &report->mods, 8); } else { send_report(1, report, sizeof(report_keyboard_t)); @@ -303,15 +304,11 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) { break; case USBRQ_HID_GET_IDLE: dprint("GET_IDLE:"); - static uint8_t keyboard_idle; - keyboard_idle = usb_device_state_get_idle_rate(); - usbMsgPtr = (usbMsgPtr_t)&keyboard_idle; + usbMsgPtr = (usbMsgPtr_t)&keyboard_idle; return 1; case USBRQ_HID_GET_PROTOCOL: dprint("GET_PROTOCOL:"); - static uint8_t keyboard_protocol; - keyboard_protocol = usb_device_state_get_protocol(); - usbMsgPtr = (usbMsgPtr_t)&keyboard_protocol; + usbMsgPtr = (usbMsgPtr_t)&keyboard_protocol; return 1; case USBRQ_HID_SET_REPORT: dprint("SET_REPORT:"); @@ -323,13 +320,13 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) { } return USB_NO_MSG; // to get data in usbFunctionWrite case USBRQ_HID_SET_IDLE: - usb_device_state_set_idle_rate(rq->wValue.word >> 8); - dprintf("SET_IDLE: %02X", usb_device_state_get_idle_rate()); + keyboard_idle = (rq->wValue.word & 0xFF00) >> 8; + dprintf("SET_IDLE: %02X", keyboard_idle); break; case USBRQ_HID_SET_PROTOCOL: if (rq->wIndex.word == KEYBOARD_INTERFACE) { - usb_device_state_set_protocol(rq->wValue.word & 0xFF); - dprintf("SET_PROTOCOL: %02X", usb_device_state_get_protocol()); + keyboard_protocol = rq->wValue.word & 0xFF; + dprintf("SET_PROTOCOL: %02X", keyboard_protocol); } break; default: @@ -350,9 +347,9 @@ uchar usbFunctionWrite(uchar *data, uchar len) { } switch (last_req.kind) { case SET_LED: - usb_device_state_set_leds(data[0]); - dprintf("SET_LED: %02X\n", usb_device_state_get_leds()); - last_req.len = 0; + dprintf("SET_LED: %02X\n", data[0]); + keyboard_led_state = data[0]; + last_req.len = 0; return 1; break; case NONE: @@ -527,61 +524,23 @@ const PROGMEM uchar shared_hid_report[] = { # endif 0x81, 0x06, // Input (Data, Variable, Relative) -# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE - // Feature report and padding (1 byte) - 0xA1, 0x02, // Collection (Logical) - 0x09, 0x48, // Usage (Resolution Multiplier) - 0x95, 0x01, // Report Count (1) - 0x75, 0x02, // Report Size (2) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x01, // Logical Maximum (1) - 0x35, 0x01, // Physical Minimum (1) - 0x45, POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER, // Physical Maximum (POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER) - 0x55, POINTING_DEVICE_HIRES_SCROLL_EXPONENT, // Unit Exponent (POINTING_DEVICE_HIRES_SCROLL_EXPONENT) - 0xB1, 0x02, // Feature (Data, Variable, Absolute) - 0x35, 0x00, // Physical Minimum (0) - 0x45, 0x00, // Physical Maximum (0) - 0x75, 0x06, // Report Size (6) - 0xB1, 0x03, // Feature (Constant) -# endif - - // Vertical wheel (1 or 2 bytes) + // Vertical wheel (1 byte) 0x09, 0x38, // Usage (Wheel) -# ifndef WHEEL_EXTENDED_REPORT 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x95, 0x01, // Report Count (1) 0x75, 0x08, // Report Size (8) -# else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) - 0x95, 0x01, // Report Count (1) - 0x75, 0x10, // Report Size (16) -# endif 0x81, 0x06, // Input (Data, Variable, Relative) - - // Horizontal wheel (1 or 2 bytes) + // Horizontal wheel (1 byte) 0x05, 0x0C, // Usage Page (Consumer) 0x0A, 0x38, 0x02, // Usage (AC Pan) -# ifndef WHEEL_EXTENDED_REPORT - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x95, 0x01, // Report Count (1) - 0x75, 0x08, // Report Size (8) -# else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) 0x95, 0x01, // Report Count (1) - 0x75, 0x10, // Report Size (16) -# endif - 0x81, 0x06, // Input (Data, Variable, Relative) - -# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE - 0xC0, // End Collection -# endif - - 0xC0, // End Collection - 0xC0, // End Collection + 0x75, 0x08, // Report Size (8) + 0x81, 0x06, // Input (Data, Variable, Relative) + 0xC0, // End Collection + 0xC0, // End Collection #endif #ifdef EXTRAKEY_ENABLE @@ -652,23 +611,6 @@ const PROGMEM uchar shared_hid_report[] = { 0x81, 0x02, // Input (Data, Variable, Absolute) # endif -# ifdef JOYSTICK_HAS_HAT - // Hat Switch (4 bits) - 0x09, 0x39, // Usage (Hat Switch) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x07, // Logical Maximum (7) - 0x35, 0x00, // Physical Minimum (0) - 0x46, 0x3B, 0x01, // Physical Maximum (315) - 0x65, 0x14, // Unit (Degree, English Rotation) - 0x95, 0x01, // Report Count (1) - 0x75, 0x04, // Report Size (4) - 0x81, 0x42, // Input (Data, Variable, Absolute, Null State) - // Padding (4 bits) - 0x95, 0x04, // Report Count (4) - 0x75, 0x01, // Report Size (1) - 0x81, 0x01, // Input (Constant) -# endif - # if JOYSTICK_BUTTON_COUNT > 0 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (Button 1) @@ -717,7 +659,7 @@ const PROGMEM uchar shared_hid_report[] = { 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 0x95, 0x02, // Report Count (2) 0x75, 0x10, // Report Size (16) - 0x65, 0x13, // Unit (Inch, English Linear) + 0x65, 0x33, // Unit (Inch, English Linear) 0x55, 0x0E, // Unit Exponent (-2) 0x81, 0x02, // Input (Data, Variable, Absolute) 0xC0, // End Collection diff --git a/users/_example/_example.c b/users/_example/_example.c index 5f9580d8e9..8e0778b122 100644 --- a/users/_example/_example.c +++ b/users/_example/_example.c @@ -2,4 +2,4 @@ void my_custom_function(void) { -} +} \ No newline at end of file diff --git a/users/_example/_example.h b/users/_example/_example.h index 72907d06d7..f7c7990257 100644 --- a/users/_example/_example.h +++ b/users/_example/_example.h @@ -5,4 +5,4 @@ void my_custom_function(void); -#endif +#endif \ No newline at end of file diff --git a/users/_example/readme.md b/users/_example/readme.md index d6ead7efd2..fdea33b67a 100644 --- a/users/_example/readme.md +++ b/users/_example/readme.md @@ -11,4 +11,4 @@ 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 . +along with this program. If not, see . \ No newline at end of file diff --git a/users/_example/rules.mk b/users/_example/rules.mk index af076dd7fe..250adc3d0d 100644 --- a/users/_example/rules.mk +++ b/users/_example/rules.mk @@ -1 +1 @@ -SRC += _example.c +SRC += _example.c \ No newline at end of file diff --git a/users/readme.md b/users/readme.md index 8a490c28ce..d8f14d8beb 100644 --- a/users/readme.md +++ b/users/readme.md @@ -1,3 +1,3 @@ # User space -This is a place for users to put code that they might use between keyboards. If you build the keymap `mine`, `/users/mine/rules.mk` will be included in your build, and `/users/mine/` will be in your path - keep these things in mind when naming your files and referencing them from other places. +This is a place for users to put code that they might use between keyboards. If you build the keymap `mine`, `/users/mine/rules.mk` will be included in your build, and `/users/mine/` will be in your path - keep these things in mind when naming your files and referencing them from other places. \ No newline at end of file diff --git a/util/docker_cmd.sh b/util/docker_cmd.sh index cb0c4f3281..18725db068 100755 --- a/util/docker_cmd.sh +++ b/util/docker_cmd.sh @@ -34,17 +34,15 @@ if [ -z "$RUNTIME" ]; then fi fi -# If SKIP_FLASHING_SUPPORT is defined, do not check for docker-machine and do not run a privileged container -if [ -z "$SKIP_FLASHING_SUPPORT" ]; then - # IF we are using docker on non Linux and docker-machine isn't working print an error - # ELSE set usb_args - if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then - errcho "Error: target requires docker-machine to work on your platform" - errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" - exit 3 - else - usb_args="--privileged -v /dev:/dev" - fi + +# IF we are using docker on non Linux and docker-machine isn't working print an error +# ELSE set usb_args +if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then + errcho "Error: target requires docker-machine to work on your platform" + errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" + exit 3 +else + usb_args="--privileged -v /dev:/dev" fi qmk_firmware_dir=$(pwd -W 2>/dev/null) || qmk_firmware_dir=$PWD # Use Windows path if on Windows diff --git a/util/drivers.txt b/util/drivers.txt index 0490bfa4ab..e8ed7bdb0b 100644 --- a/util/drivers.txt +++ b/util/drivers.txt @@ -5,8 +5,6 @@ # Use Windows Powershell and type [guid]::NewGuid() to generate guids winusb,STM32 Bootloader,0483,DF11,6d98a87f-4ecf-464d-89ed-8c684d857a75 winusb,APM32 Bootloader,314B,0106,9ff3cc31-6772-4a3f-a492-a80d91f7a853 -winusb,WB32 Bootloader,342D,DFA0,89b0fdf0-3d22-4408-8393-32147ba508ce -winusb,GD32V Bootloader,28E9,0189,e1421fd6-f799-4b6c-97e6-39e87d37f858 winusb,STM32duino Bootloader,1EAF,0003,746915ec-99d8-4a90-a722-3c85ba31e4fe libusbk,USBaspLoader,16C0,05DC,e69affdc-0ef0-427c-aefb-4e593c9d2724 winusb,Kiibohd DFU Bootloader,1C11,B007,aa5a3f86-b81e-4416-89ad-0c1ea1ed63af diff --git a/util/install/fedora.sh b/util/install/fedora.sh index 20a1488206..0b93326bbf 100755 --- a/util/install/fedora.sh +++ b/util/install/fedora.sh @@ -5,7 +5,6 @@ _qmk_install() { . /etc/os-release if [ "$VERSION_ID" -ge "39" ]; then - sudo dnf copr -h >/dev/null 2>&1 || sudo dnf $SKIP_PROMPT install dnf-plugins-core sudo dnf $SKIP_PROMPT copr enable erovia/dfu-programmer fi diff --git a/util/install/gentoo.sh b/util/install/gentoo.sh index 3c8f417fb7..49e80490be 100755 --- a/util/install/gentoo.sh +++ b/util/install/gentoo.sh @@ -22,7 +22,7 @@ _qmk_install() { echo "sys-devel/gcc multilib\ncross-arm-none-eabi/newlib nano" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null sudo emerge -auN sys-devel/gcc sudo emerge -au --noreplace \ - app-arch/unzip app-arch/zip net-misc/wget llvm-core/clang \ + app-arch/unzip app-arch/zip net-misc/wget sys-devel/clang \ sys-devel/crossdev \>=dev-lang/python-3.7 dev-embedded/avrdude \ dev-embedded/dfu-programmer app-mobilephone/dfu-util sys-apps/hwloc \ dev-libs/hidapi diff --git a/util/install/macos.sh b/util/install/macos.sh index 4db2f9be6b..a1b79fe868 100755 --- a/util/install/macos.sh +++ b/util/install/macos.sh @@ -9,24 +9,23 @@ _qmk_install_prepare() { return 1 fi - # Conflicts with arm-none-eabi toolchain from osx-cross - brew uninstall --ignore-dependencies --cask gcc-arm-embedded >/dev/null 2>&1 - brew uninstall --ignore-dependencies homebrew/core/arm-none-eabi-gcc >/dev/null 2>&1 - brew uninstall --ignore-dependencies homebrew/core/arm-none-eabi-binutils >/dev/null 2>&1 - brew uninstall --ignore-dependencies osx-cross/arm/arm-gcc-bin@8 >/dev/null 2>&1 - brew update && brew upgrade --formulae } _qmk_install() { echo "Installing dependencies" - # All macOS & Python dependencies are managed in the Homebrew package: - # https://github.com/qmk/homebrew-qmk + # All macOS dependencies are managed in the Homebrew package: + # https://github.com/qmk/homebrew-qmk brew install qmk/qmk/qmk + # Conflicts with new toolchain formulae + brew uninstall --ignore-dependencies arm-gcc-bin@8 >/dev/null 2>&1 + # Keg-only, so need to be manually linked brew link --force avr-gcc@8 brew link --force arm-none-eabi-binutils brew link --force arm-none-eabi-gcc@8 + + python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt } diff --git a/util/nix/poetry.lock b/util/nix/poetry.lock new file mode 100644 index 0000000000..e9ac914702 --- /dev/null +++ b/util/nix/poetry.lock @@ -0,0 +1,671 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = "*" +files = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] + +[[package]] +name = "argcomplete" +version = "3.2.2" +description = "Bash tab completion for argparse" +optional = false +python-versions = ">=3.8" +files = [ + {file = "argcomplete-3.2.2-py3-none-any.whl", hash = "sha256:e44f4e7985883ab3e73a103ef0acd27299dbfe2dfed00142c35d4ddd3005901d"}, + {file = "argcomplete-3.2.2.tar.gz", hash = "sha256:f3e49e8ea59b4026ee29548e24488af46e30c9de57d48638e24f54a1ea1000a2"}, +] + +[package.extras] +test = ["coverage", "mypy", "pexpect", "ruff", "wheel"] + +[[package]] +name = "attrs" +version = "23.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "dotty-dict" +version = "1.3.1" +description = "Dictionary wrapper for quick access to deeply nested keys." +optional = false +python-versions = ">=3.5,<4.0" +files = [ + {file = "dotty_dict-1.3.1-py3-none-any.whl", hash = "sha256:5022d234d9922f13aa711b4950372a06a6d64cb6d6db9ba43d0ba133ebfce31f"}, + {file = "dotty_dict-1.3.1.tar.gz", hash = "sha256:4b016e03b8ae265539757a53eba24b9bfda506fb94fbce0bee843c6f05541a15"}, +] + +[[package]] +name = "flake8" +version = "7.0.0" +description = "the modular source code checker: pep8 pyflakes and co" +optional = false +python-versions = ">=3.8.1" +files = [ + {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, + {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, +] + +[package.dependencies] +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.11.0,<2.12.0" +pyflakes = ">=3.2.0,<3.3.0" + +[[package]] +name = "halo" +version = "0.0.31" +description = "Beautiful terminal spinners in Python" +optional = false +python-versions = ">=3.4" +files = [ + {file = "halo-0.0.31-py2-none-any.whl", hash = "sha256:5350488fb7d2aa7c31a1344120cee67a872901ce8858f60da7946cef96c208ab"}, + {file = "halo-0.0.31.tar.gz", hash = "sha256:7b67a3521ee91d53b7152d4ee3452811e1d2a6321975137762eb3d70063cc9d6"}, +] + +[package.dependencies] +colorama = ">=0.3.9" +log-symbols = ">=0.0.14" +six = ">=1.12.0" +spinners = ">=0.0.24" +termcolor = ">=1.1.0" + +[package.extras] +ipython = ["IPython (==5.7.0)", "ipywidgets (==7.1.0)"] + +[[package]] +name = "hid" +version = "1.0.6" +description = "ctypes bindings for hidapi" +optional = false +python-versions = "*" +files = [ + {file = "hid-1.0.6-py3-none-any.whl", hash = "sha256:60446054aec54a767d9a4e97920761f41809a055c6d51c54879e37a706dcb588"}, + {file = "hid-1.0.6.tar.gz", hash = "sha256:48d764d7ae9746ba123b96dbf457893ca80268b7791c4b1d2e051310eeb83860"}, +] + +[[package]] +name = "hjson" +version = "3.1.0" +description = "Hjson, a user interface for JSON." +optional = false +python-versions = "*" +files = [ + {file = "hjson-3.1.0-py3-none-any.whl", hash = "sha256:65713cdcf13214fb554eb8b4ef803419733f4f5e551047c9b711098ab7186b89"}, + {file = "hjson-3.1.0.tar.gz", hash = "sha256:55af475a27cf83a7969c808399d7bccdec8fb836a07ddbd574587593b9cdcf75"}, +] + +[[package]] +name = "importlib-metadata" +version = "7.0.1" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, + {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "jsonschema" +version = "4.21.1" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rpds-py = ">=0.7.1" + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "log-symbols" +version = "0.0.14" +description = "Colored symbols for various log levels for Python" +optional = false +python-versions = "*" +files = [ + {file = "log_symbols-0.0.14-py3-none-any.whl", hash = "sha256:4952106ff8b605ab7d5081dd2c7e6ca7374584eff7086f499c06edd1ce56dcca"}, + {file = "log_symbols-0.0.14.tar.gz", hash = "sha256:cf0bbc6fe1a8e53f0d174a716bc625c4f87043cc21eb55dd8a740cfe22680556"}, +] + +[package.dependencies] +colorama = ">=0.3.9" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "milc" +version = "1.8.0" +description = "Opinionated Batteries-Included Python 3 CLI Framework." +optional = false +python-versions = ">=3.7" +files = [ + {file = "milc-1.8.0-py2.py3-none-any.whl", hash = "sha256:faee16fe92ce13eb1b0b4e24ac5b5003d7234880a8d21e4210016d70512bc921"}, + {file = "milc-1.8.0.tar.gz", hash = "sha256:cabe658de07ab97f937c7672b8a604cc825174c28d66d3afd047a9b4b2770bbe"}, +] + +[package.dependencies] +appdirs = "*" +argcomplete = "*" +colorama = "*" +halo = "*" +spinners = "*" +types-colorama = "*" + +[[package]] +name = "nose2" +version = "0.14.1" +description = "unittest with plugins" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nose2-0.14.1-py3-none-any.whl", hash = "sha256:dfbf0d90c98b8d7bbf47d7721c7554ffcca86828ec074c985bb6ecc83c445a4e"}, + {file = "nose2-0.14.1.tar.gz", hash = "sha256:7f8f03a21c9de2c33015933afcef72bf8e4a2d5dfec3b40092287de6e41b093a"}, +] + +[package.extras] +coverage-plugin = ["coverage"] +dev = ["Sphinx", "sphinx-issues", "sphinx-rtd-theme"] + +[[package]] +name = "pep8-naming" +version = "0.13.3" +description = "Check PEP-8 naming conventions, plugin for flake8" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pep8-naming-0.13.3.tar.gz", hash = "sha256:1705f046dfcd851378aac3be1cd1551c7c1e5ff363bacad707d43007877fa971"}, + {file = "pep8_naming-0.13.3-py3-none-any.whl", hash = "sha256:1a86b8c71a03337c97181917e2b472f0f5e4ccb06844a0d6f0a33522549e7a80"}, +] + +[package.dependencies] +flake8 = ">=5.0.0" + +[[package]] +name = "pillow" +version = "10.2.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, + {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, + {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, + {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, + {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, + {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, + {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, + {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, + {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, + {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, + {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, + {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, + {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, + {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, + {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, + {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, + {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, + {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.2.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] + +[[package]] +name = "pycodestyle" +version = "2.11.1" +description = "Python style guide checker" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, +] + +[[package]] +name = "pyflakes" +version = "3.2.0" +description = "passive checker of Python programs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, +] + +[[package]] +name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[package.extras] +plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyserial" +version = "3.5" +description = "Python Serial Port Extension" +optional = false +python-versions = "*" +files = [ + {file = "pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0"}, + {file = "pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"}, +] + +[package.extras] +cp2110 = ["hidapi"] + +[[package]] +name = "pyusb" +version = "1.2.1" +description = "Python USB access module" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "pyusb-1.2.1-py3-none-any.whl", hash = "sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36"}, + {file = "pyusb-1.2.1.tar.gz", hash = "sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9"}, +] + +[[package]] +name = "qmk" +version = "1.1.5" +description = "A program to help users work with QMK Firmware." +optional = false +python-versions = ">=3.7" +files = [ + {file = "qmk-1.1.5-py2.py3-none-any.whl", hash = "sha256:9c16fa2ad9b279ce9cc121a5462f02637611c6f54c49f9f2cac8ba2898f35b94"}, + {file = "qmk-1.1.5.tar.gz", hash = "sha256:2efe3c752230c6ba24b8719c3b6e85a5644bf8f7d0dd237757eda9b7b7e60b11"}, +] + +[package.dependencies] +dotty-dict = "*" +hid = "*" +hjson = "*" +jsonschema = ">=4" +milc = ">=1.6.8" +pillow = "*" +pygments = "*" +pyserial = "*" +pyusb = "*" +setuptools = ">=45" + +[[package]] +name = "referencing" +version = "0.33.0" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "rpds-py" +version = "0.18.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, + {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, + {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, + {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, + {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, +] + +[[package]] +name = "setuptools" +version = "69.1.1" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-69.1.1-py3-none-any.whl", hash = "sha256:02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56"}, + {file = "setuptools-69.1.1.tar.gz", hash = "sha256:5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "spinners" +version = "0.0.24" +description = "Spinners for terminals" +optional = false +python-versions = "*" +files = [ + {file = "spinners-0.0.24-py3-none-any.whl", hash = "sha256:2fa30d0b72c9650ad12bbe031c9943b8d441e41b4f5602b0ec977a19f3290e98"}, + {file = "spinners-0.0.24.tar.gz", hash = "sha256:1eb6aeb4781d72ab42ed8a01dcf20f3002bf50740d7154d12fb8c9769bf9e27f"}, +] + +[[package]] +name = "termcolor" +version = "2.4.0" +description = "ANSI color formatting for output in terminal" +optional = false +python-versions = ">=3.8" +files = [ + {file = "termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63"}, + {file = "termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"}, +] + +[package.extras] +tests = ["pytest", "pytest-cov"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "types-colorama" +version = "0.4.15.20240205" +description = "Typing stubs for colorama" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-colorama-0.4.15.20240205.tar.gz", hash = "sha256:7ae4f58d407d387f4f98b24d81e1b7657ec754ea1dc4619ae5bd27f0c367637e"}, + {file = "types_colorama-0.4.15.20240205-py3-none-any.whl", hash = "sha256:3ab26dcd76d2f13b1b795ed5c87a1a1a29331ea64cf614bb6ae958a3cebc3a53"}, +] + +[[package]] +name = "yapf" +version = "0.40.2" +description = "A formatter for Python code" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yapf-0.40.2-py3-none-any.whl", hash = "sha256:adc8b5dd02c0143108878c499284205adb258aad6db6634e5b869e7ee2bd548b"}, + {file = "yapf-0.40.2.tar.gz", hash = "sha256:4dab8a5ed7134e26d57c1647c7483afb3f136878b579062b786c9ba16b94637b"}, +] + +[package.dependencies] +importlib-metadata = ">=6.6.0" +platformdirs = ">=3.5.1" +tomli = ">=2.0.1" + +[[package]] +name = "zipp" +version = "3.17.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "6146ea1571def62c4f7ff33173e0144bcfd206c178936365bff8b4e1669b90ff" diff --git a/util/nix/pyproject.toml b/util/nix/pyproject.toml new file mode 100644 index 0000000000..fa62eb96c0 --- /dev/null +++ b/util/nix/pyproject.toml @@ -0,0 +1,39 @@ +# This file should be kept in sync with requirements.txt and requirements-dev.txt +# It is particularly required by the Nix environment (see shell.nix). To update versions, +# normally one would run "poetry update --lock" +[tool.poetry] +name = "qmk_firmware" +version = "0.1.0" +description = "" +authors = [] + +[tool.poetry.dependencies] +python = "^3.11" +appdirs = "*" +argcomplete = "*" +colorama = "*" +dotty-dict = "*" +hid = "*" +hjson = "*" +jsonschema = ">=4" +milc = ">=1.4.2" +Pygments = "*" +pyserial = "*" +pyusb = "*" +pillow = "*" + +# This dependency is not mentioned in requirements.txt (QMK CLI is not a +# library package that is required by the Python code in qmk_firmware), but is +# required to build a proper nix-shell environment. +qmk = "*" + +[tool.poetry.dev-dependencies] +nose2 = "*" +flake8 = "*" +pep8-naming = "*" +pyflakes = "*" +yapf = "*" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" diff --git a/util/nix/sources.json b/util/nix/sources.json new file mode 100644 index 0000000000..3985f75e03 --- /dev/null +++ b/util/nix/sources.json @@ -0,0 +1,38 @@ +{ + "niv": { + "branch": "master", + "description": "Easy dependency management for Nix projects", + "homepage": "https://github.com/nmattia/niv", + "owner": "nmattia", + "repo": "niv", + "rev": "af958e8057f345ee1aca714c1247ef3ba1c15f5e", + "sha256": "1qjavxabbrsh73yck5dcq8jggvh3r2jkbr6b5nlz5d9yrqm9255n", + "type": "tarball", + "url": "https://github.com/nmattia/niv/archive/af958e8057f345ee1aca714c1247ef3ba1c15f5e.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, + "nixpkgs": { + "branch": "nixpkgs-unstable", + "description": "Nix Packages collection", + "homepage": "", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "98b00b6947a9214381112bdb6f89c25498db4959", + "sha256": "1m6dm144mbm56n9293m26f46bjrklknyr4q4kzvxkiv036ijma98", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/98b00b6947a9214381112bdb6f89c25498db4959.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, + "poetry2nix": { + "branch": "master", + "description": "Convert poetry projects to nix automagically [maintainer=@adisbladis] ", + "homepage": "", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "3c92540611f42d3fb2d0d084a6c694cd6544b609", + "sha256": "1jfrangw0xb5b8sdkimc550p3m98zhpb1fayahnr7crg74as4qyq", + "type": "tarball", + "url": "https://github.com/nix-community/poetry2nix/archive/3c92540611f42d3fb2d0d084a6c694cd6544b609.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} diff --git a/util/nix/sources.nix b/util/nix/sources.nix new file mode 100644 index 0000000000..fe3dadf7eb --- /dev/null +++ b/util/nix/sources.nix @@ -0,0 +1,198 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + spec.ref or ( + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!" + ); + submodules = spec.submodules or false; + submoduleArg = + let + nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0; + emptyArgWithWarning = + if submodules + then + builtins.trace + ( + "The niv input \"${name}\" uses submodules " + + "but your nix's (${builtins.nixVersion}) builtins.fetchGit " + + "does not support them" + ) + { } + else { }; + in + if nixSupportsSubmodules + then { inherit submodules; } + else emptyArgWithWarning; + in + builtins.fetchGit + ({ url = spec.repo; inherit (spec) rev; inherit ref; } // submoduleArg); + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import { } + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else { }; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (name != null) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (name != null) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs + ( + name: spec: + if builtins.hasAttr "outPath" spec + then + abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) + config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if sourcesFile == null then { } else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig { }) // { __functor = _: settings: mkSources (mkConfig settings); } diff --git a/util/polling_rate.py b/util/polling_rate.py deleted file mode 100644 index fa3393787d..0000000000 --- a/util/polling_rate.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python3 - -import usb - -USB_INTERFACE_CLASS_HID = 0x03 - -def usb_device_spec(spec): - major = spec >> 8 - minor = (spec >> 4) & 0xF - return f"{major}.{minor}" - -def usb_device_speed(speed): - if speed == 1: - return "Low-speed" - elif speed == 2: - return "Full-speed" - elif speed == 3: - return "High-speed" - elif speed == 4: - return "SuperSpeed" - elif speed == 5: - return "SuperSpeed+" - - return "Speed unknown" - -def usb_hid_interface_subclass(subclass): - if subclass == 0x00: - return "None" - elif subclass == 0x01: - return "Boot" - else: - return f"Unknown (0x{subclass:02X})" - -def usb_hid_interface_protocol(subclass, protocol): - if subclass == 0x00 and protocol == 0x00: - return "None" - elif subclass == 0x01: - if protocol == 0x00: - return "None" - elif protocol == 0x01: - return "Keyboard" - elif protocol == 0x02: - return "Mouse" - - return f"Unknown (0x{protocol:02X})" - -def usb_interface_polling_rate(speed, interval): - if speed >= 3: - return f"{interval * 125} μs ({8000 // interval} Hz)" - else: - return f"{interval} ms ({1000 // interval} Hz)" - -if __name__ == '__main__': - devices = usb.core.find(find_all=True) - - for device in devices: - try: - configuration = device.get_active_configuration() - except NotImplementedError: - continue - - hid_interfaces = [] - for interface in configuration.interfaces(): - if interface.bInterfaceClass == USB_INTERFACE_CLASS_HID: - hid_interfaces.append(interface) - - if len(hid_interfaces) > 0: - print(f"{device.manufacturer} {device.product} ({device.idVendor:04X}:{device.idProduct:04X}:{device.bcdDevice:04X}), {usb_device_spec(device.bcdUSB)} {usb_device_speed(device.speed)}") - - for interface in hid_interfaces: - print(f"└─ HID Interface {interface.bInterfaceNumber}") - subclass = interface.bInterfaceSubClass - protocol = interface.bInterfaceProtocol - print(f" ├─ Subclass: {usb_hid_interface_subclass(subclass)}") - print(f" ├─ Protocol: {usb_hid_interface_protocol(subclass, protocol)}") - - for endpoint in interface.endpoints(): - endpoint_address = endpoint.bEndpointAddress & 0xF - endpoint_direction = "IN" if endpoint.bEndpointAddress & 0x80 else "OUT" - print(f" └─ Endpoint {endpoint_address} {endpoint_direction}") - print(f" ├─ Endpoint Size: {endpoint.wMaxPacketSize} bytes") - print(f" └─ Polling Rate: {usb_interface_polling_rate(device.speed, endpoint.bInterval)}") diff --git a/util/qmk_install.sh b/util/qmk_install.sh index 0829a917ee..3f49bd255a 100755 --- a/util/qmk_install.sh +++ b/util/qmk_install.sh @@ -24,7 +24,7 @@ case $(uname -a) in . "$QMK_FIRMWARE_UTIL_DIR/install/linux_shared.sh" case $(grep ID /etc/os-release) in - *arch*|*manjaro*|*cachyos*) + *arch*|*manjaro*) . "$QMK_FIRMWARE_UTIL_DIR/install/arch.sh";; *debian*|*ubuntu*) . "$QMK_FIRMWARE_UTIL_DIR/install/debian.sh";; diff --git a/util/regen.sh b/util/regen.sh index df40444f80..ab03018893 100755 --- a/util/regen.sh +++ b/util/regen.sh @@ -3,6 +3,7 @@ set -e qmk generate-rgb-breathe-table -o quantum/rgblight/rgblight_breathe_table.h qmk generate-keycodes --version latest -o quantum/keycodes.h +qmk generate-keycodes-tests --version latest -o tests/test_common/keycode_table.cpp for lang in $(find data/constants/keycodes/extras/ -type f -exec basename '{}' \; | sed "s/keycodes_\(.*\)_[0-9].*/\1/"); do qmk generate-keycode-extras --version latest --lang $lang -o quantum/keymap_extras/keymap_$lang.h diff --git a/util/udev/50-qmk.rules b/util/udev/50-qmk.rules index 338b4fdbe0..1cc19b4142 100644 --- a/util/udev/50-qmk.rules +++ b/util/udev/50-qmk.rules @@ -84,6 +84,3 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uacc # WB32 DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess" - -# AT32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess" diff --git a/util/uf2families.json b/util/uf2families.json index e35bf8d428..778af4421f 100644 --- a/util/uf2families.json +++ b/util/uf2families.json @@ -174,56 +174,11 @@ "short_name": "ESP32H2", "description": "ESP32-H2" }, - { - "id": "0x540ddf62", - "short_name": "ESP32C6", - "description": "ESP32-C6" - }, - { - "id": "0x3d308e94", - "short_name": "ESP32P4", - "description": "ESP32-P4" - }, - { - "id": "0xf71c0343", - "short_name": "ESP32C5", - "description": "ESP32-C5" - }, - { - "id": "0x77d850c4", - "short_name": "ESP32C61", - "description": "ESP32-C61" - }, { "id": "0xe48bff56", "short_name": "RP2040", "description": "Raspberry Pi RP2040" }, - { - "id": "0xe48bff57", - "short_name": "RP2XXX_ABSOLUTE", - "description": "Raspberry Pi Microcontrollers: Absolute (unpartitioned) download" - }, - { - "id": "0xe48bff58", - "short_name": "RP2XXX_DATA", - "description": "Raspberry Pi Microcontrollers: Data partition download" - }, - { - "id": "0xe48bff59", - "short_name": "RP2350_ARM_S", - "description": "Raspberry Pi RP2350, Secure Arm image" - }, - { - "id": "0xe48bff5a", - "short_name": "RP2350_RISCV", - "description": "Raspberry Pi RP2350, RISC-V image" - }, - { - "id": "0xe48bff5b", - "short_name": "RP2350_ARM_NS", - "description": "Raspberry Pi RP2350, Non-secure Arm image" - }, { "id": "0x00ff6919", "short_name": "STM32L4", @@ -258,40 +213,5 @@ "id": "0x9517422f", "short_name": "RZA1LU", "description": "Renesas RZ/A1LU (R7S7210xx)" - }, - { - "id": "0x2dc309c5", - "short_name": "STM32F411xE", - "description": "ST STM32F411xE" - }, - { - "id": "0x06d1097b", - "short_name": "STM32F411xC", - "description": "ST STM32F411xC" - }, - { - "id": "0x72721d4e", - "short_name": "NRF52832xxAA", - "description": "Nordic NRF52832xxAA" - }, - { - "id": "0x6f752678", - "short_name": "NRF52832xxAB", - "description": "Nordic NRF52832xxAB" - }, - { - "id": "0xa0c97b8e", - "short_name": "AT32F415", - "description": "ArteryTek AT32F415" - }, - { - "id": "0x699b62ec", - "short_name": "CH32V", - "description": "WCH CH32V2xx and CH32V3xx" - }, - { - "id": "0x7be8976d", - "short_name": "RA4M1", - "description": "Renesas RA4M1" } ] diff --git a/util/usb_detach/usb_detach.c b/util/usb_detach/usb_detach.c index 8047c37ba3..786ab5e674 100644 --- a/util/usb_detach/usb_detach.c +++ b/util/usb_detach/usb_detach.c @@ -31,4 +31,4 @@ int main(int argc, char**argv) printf ("usage: %s /dev/bus/usb/BUS/DEVICE\n",argv[0]); printf("Release all interfaces of this usb device for usage in virtualisation\n"); } -} +} \ No newline at end of file